From a19bead2680ee6d9d834aabe027e3f074e0d8ec9 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 29 Oct 2023 22:40:06 -0400 Subject: [PATCH 001/106] Fix edge case where leaderboard viewing would cause unhandled exception --- dGame/LeaderboardManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dGame/LeaderboardManager.cpp b/dGame/LeaderboardManager.cpp index b7083ea8..ce4643d0 100644 --- a/dGame/LeaderboardManager.cpp +++ b/dGame/LeaderboardManager.cpp @@ -193,7 +193,7 @@ void Leaderboard::SetupLeaderboard(bool weekly, uint32_t resultStart, uint32_t r SELECT leaderboardsRanked.*, character_id, UNIX_TIMESTAMP(last_played) as lastPlayed, leaderboardsRanked.name, leaderboardsRanked.ranking FROM leaderboardsRanked, myStanding, lowestRanking WHERE leaderboardsRanked.ranking BETWEEN - LEAST(GREATEST(CAST(myRank AS SIGNED) - 5, %i), lowestRanking.lowestRank - 9) + LEAST(GREATEST(CAST(myRank AS SIGNED) - 5, %i), CAST(lowestRanking.lowestRank AS SIGNED) - 9) AND LEAST(GREATEST(myRank + 5, %i), lowestRanking.lowestRank) ORDER BY ranking ASC; From 8cd5bf7b8db2fdaf43880b61a3c9bc7494ac86c2 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Tue, 14 Nov 2023 19:38:52 -0600 Subject: [PATCH 002/106] feat: implement consume item behavior (#1098) * feature: implement consume item behavior * Cleanup * tested with skill 456 and fixed some things * remove logs --- dGame/dBehaviors/Behavior.cpp | 5 +++- dGame/dBehaviors/CMakeLists.txt | 1 + dGame/dBehaviors/ConsumeItemBehavior.cpp | 31 ++++++++++++++++++++++++ dGame/dBehaviors/ConsumeItemBehavior.h | 17 +++++++++++++ dGame/dComponents/InventoryComponent.cpp | 28 ++++++--------------- dGame/dComponents/InventoryComponent.h | 3 ++- 6 files changed, 63 insertions(+), 22 deletions(-) create mode 100644 dGame/dBehaviors/ConsumeItemBehavior.cpp create mode 100644 dGame/dBehaviors/ConsumeItemBehavior.h diff --git a/dGame/dBehaviors/Behavior.cpp b/dGame/dBehaviors/Behavior.cpp index 26c284bf..b32c7c52 100644 --- a/dGame/dBehaviors/Behavior.cpp +++ b/dGame/dBehaviors/Behavior.cpp @@ -64,6 +64,7 @@ #include "FallSpeedBehavior.h" #include "ChangeIdleFlagsBehavior.h" #include "DarkInspirationBehavior.h" +#include "ConsumeItemBehavior.h" //CDClient includes #include "CDBehaviorParameterTable.h" @@ -200,7 +201,9 @@ Behavior* Behavior::CreateBehavior(const uint32_t behaviorId) { case BehaviorTemplates::BEHAVIOR_SKILL_EVENT: behavior = new SkillEventBehavior(behaviorId); break; - case BehaviorTemplates::BEHAVIOR_CONSUME_ITEM: break; + case BehaviorTemplates::BEHAVIOR_CONSUME_ITEM: + behavior = new ConsumeItemBehavior(behaviorId); + break; case BehaviorTemplates::BEHAVIOR_SKILL_CAST_FAILED: behavior = new SkillCastFailedBehavior(behaviorId); break; diff --git a/dGame/dBehaviors/CMakeLists.txt b/dGame/dBehaviors/CMakeLists.txt index 8a9368b9..d1926525 100644 --- a/dGame/dBehaviors/CMakeLists.txt +++ b/dGame/dBehaviors/CMakeLists.txt @@ -16,6 +16,7 @@ set(DGAME_DBEHAVIORS_SOURCES "AirMovementBehavior.cpp" "ChangeOrientationBehavior.cpp" "ChargeUpBehavior.cpp" "ClearTargetBehavior.cpp" + "ConsumeItemBehavior.cpp" "DamageAbsorptionBehavior.cpp" "DamageReductionBehavior.cpp" "DarkInspirationBehavior.cpp" diff --git a/dGame/dBehaviors/ConsumeItemBehavior.cpp b/dGame/dBehaviors/ConsumeItemBehavior.cpp new file mode 100644 index 00000000..c3b76fcb --- /dev/null +++ b/dGame/dBehaviors/ConsumeItemBehavior.cpp @@ -0,0 +1,31 @@ +#include "ConsumeItemBehavior.h" +#include "BehaviorContext.h" +#include "BehaviorBranchContext.h" +#include "InventoryComponent.h" + +void ConsumeItemBehavior::Handle(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) { + auto action_to_cast = m_ActionNotConsumed; + if (this->m_ConsumeLOT != -1) { + auto caster = Game::entityManager->GetEntity(context->caster); + if (!caster) return; + + auto inventoryComponent = caster->GetComponent(); + if (!inventoryComponent) return; + + if (inventoryComponent->RemoveItem(this->m_ConsumeLOT, this->m_NumToConsume, eInventoryType::INVALID, false, true)){ + action_to_cast = m_ActionConsumed; + } + } + if(action_to_cast) action_to_cast->Handle(context, bitStream, branch); +} + +void ConsumeItemBehavior::Sync(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) { + Handle(context, bitStream, branch); +} + +void ConsumeItemBehavior::Load() { + this->m_ConsumeLOT = GetInt("consume_lot", -1); + this->m_NumToConsume = GetInt("num_to_consume", 1); + this->m_ActionNotConsumed = GetAction("action_not_consumed"); + this->m_ActionConsumed = GetAction("action_consumed"); +} diff --git a/dGame/dBehaviors/ConsumeItemBehavior.h b/dGame/dBehaviors/ConsumeItemBehavior.h new file mode 100644 index 00000000..f3eeb330 --- /dev/null +++ b/dGame/dBehaviors/ConsumeItemBehavior.h @@ -0,0 +1,17 @@ +#pragma once +#include "Behavior.h" + +class ConsumeItemBehavior final : public Behavior +{ +public: + explicit ConsumeItemBehavior(const uint32_t behaviorId) : Behavior(behaviorId) {} + void Handle(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) override; + void Sync(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) override; + void Load() override; + +private: + LOT m_ConsumeLOT; + uint32_t m_NumToConsume; + Behavior* m_ActionNotConsumed; + Behavior* m_ActionConsumed; +}; diff --git a/dGame/dComponents/InventoryComponent.cpp b/dGame/dComponents/InventoryComponent.cpp index 7a7ca20a..4d737ab7 100644 --- a/dGame/dComponents/InventoryComponent.cpp +++ b/dGame/dComponents/InventoryComponent.cpp @@ -300,38 +300,26 @@ void InventoryComponent::AddItem( } } -void InventoryComponent::RemoveItem(const LOT lot, const uint32_t count, eInventoryType inventoryType, const bool ignoreBound) { +bool InventoryComponent::RemoveItem(const LOT lot, const uint32_t count, eInventoryType inventoryType, const bool ignoreBound, const bool silent) { if (count == 0) { LOG("Attempted to remove 0 of item (%i) from the inventory!", lot); - - return; + return false; } - - if (inventoryType == INVALID) { - inventoryType = Inventory::FindInventoryTypeForLot(lot); - } - + if (inventoryType == INVALID) inventoryType = Inventory::FindInventoryTypeForLot(lot); auto* inventory = GetInventory(inventoryType); - - if (inventory == nullptr) { - return; - } + if (!inventory) return false; auto left = std::min(count, inventory->GetLotCount(lot)); + if (left != count) return false; while (left > 0) { auto* item = FindItemByLot(lot, inventoryType, false, ignoreBound); - - if (item == nullptr) { - break; - } - + if (!item) break; const auto delta = std::min(left, item->GetCount()); - - item->SetCount(item->GetCount() - delta); - + item->SetCount(item->GetCount() - delta, silent); left -= delta; } + return true; } void InventoryComponent::MoveItemToInventory(Item* item, const eInventoryType inventory, const uint32_t count, const bool showFlyingLot, bool isModMoveAndEquip, const bool ignoreEquipped, const int32_t preferredSlot) { diff --git a/dGame/dComponents/InventoryComponent.h b/dGame/dComponents/InventoryComponent.h index e818d2cb..f4d38d43 100644 --- a/dGame/dComponents/InventoryComponent.h +++ b/dGame/dComponents/InventoryComponent.h @@ -118,8 +118,9 @@ public: * @param count the number of items to remove * @param inventoryType optional inventory type to remove the item from * @param ignoreBound ignores bound items + * @param silent silently remove the item */ - void RemoveItem(LOT lot, uint32_t count, eInventoryType inventoryType = INVALID, bool ignoreBound = false); + bool RemoveItem(LOT lot, uint32_t count, eInventoryType inventoryType = INVALID, bool ignoreBound = false, bool silent = false); /** * Moves an existing item to an inventory of the entity From 59303a232e7962c2cf5d34074e84420c444e20fa Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 15 Nov 2023 17:29:00 -0800 Subject: [PATCH 003/106] Slash commands: Update compares (#1270) use case insensitive compare use character name for kill instead of account name Use correct Id for muting when a player is found --- dGame/Player.cpp | 6 +++--- dGame/UserManager.cpp | 2 +- dGame/dUtilities/SlashCommandHandler.cpp | 7 +++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/dGame/Player.cpp b/dGame/Player.cpp index 65c7aae5..f2917729 100644 --- a/dGame/Player.cpp +++ b/dGame/Player.cpp @@ -228,9 +228,9 @@ Player* Player::GetPlayer(const std::string& name) { for (auto* character : characters) { if (!character->IsPlayer()) continue; - - if (character->GetCharacter()->GetName() == name) { - return static_cast(character); + + if (GeneralUtils::CaseInsensitiveStringCompare(name, character->GetCharacter()->GetName())) { + return dynamic_cast(character); } } diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index aaa4893f..0b26822d 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -125,7 +125,7 @@ User* UserManager::GetUser(const SystemAddress& sysAddr) { User* UserManager::GetUser(const std::string& username) { for (auto p : m_Users) { if (p.second) { - if (p.second->GetUsername() == username) return p.second; + if (GeneralUtils::CaseInsensitiveStringCompare(p.second->GetUsername(), username)) return p.second; } } diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 47037071..db27ee7b 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -448,9 +448,8 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (chatCommand == "kill" && args.size() == 1 && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER) { ChatPackets::SendSystemMessage(sysAddr, u"Brutally murdering that player, if online on this server."); - auto* user = UserManager::Instance()->GetUser(args[0]); - if (user) { - auto* player = Game::entityManager->GetEntity(user->GetLoggedInChar()); + auto* player = Player::GetPlayer(args[0]); + if (player) { player->Smash(entity->GetObjectID()); ChatPackets::SendSystemMessage(sysAddr, u"It has been done, do you feel good about yourself now?"); return; @@ -1042,7 +1041,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit } } else { accountId = player->GetParentUser()->GetAccountID(); - characterId = player->GetCharacter()->GetID(); + characterId = player->GetObjectID(); } auto* userUpdate = Database::CreatePreppedStmt("UPDATE accounts SET mute_expire = ? WHERE id = ?;"); From 8b270ca97a3c20ecdfb0a204dfe204b2cbf212a0 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 15 Nov 2023 17:29:53 -0800 Subject: [PATCH 004/106] fix: Dismantling basically being O(n!) (#1295) --- dGame/dGameMessages/GameMessages.cpp | 8 ++- dGame/dInventory/Item.cpp | 73 +++++++++++++++------------- dGame/dInventory/Item.h | 2 +- 3 files changed, 44 insertions(+), 39 deletions(-) diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index a814c000..0f750d5c 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -2708,7 +2708,7 @@ void GameMessages::HandleBBBSaveRequest(RakNet::BitStream* inStream, Entity* ent PropertyManagementComponent::Instance()->AddModel(newEntity->GetObjectID(), newIDL); } - }); + }); } void GameMessages::HandlePropertyEntranceSync(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) { @@ -5441,10 +5441,8 @@ void GameMessages::HandleRemoveItemFromInventory(RakNet::BitStream* inStream, En iStackCount = std::min(item->GetCount(), iStackCount); if (bConfirmed) { - for (auto i = 0; i < iStackCount; ++i) { - if (eInvType == eInventoryType::MODELS) { - item->DisassembleModel(); - } + if (eInvType == eInventoryType::MODELS) { + item->DisassembleModel(iStackCount); } item->SetCount(item->GetCount() - iStackCount, true); diff --git a/dGame/dInventory/Item.cpp b/dGame/dInventory/Item.cpp index 6a0fd82b..3b6b5c42 100644 --- a/dGame/dInventory/Item.cpp +++ b/dGame/dInventory/Item.cpp @@ -395,14 +395,13 @@ void Item::Disassemble(const eInventoryType inventoryType) { } } -void Item::DisassembleModel() { +void Item::DisassembleModel(uint32_t numToDismantle) { auto* table = CDClientManager::Instance().GetTable(); const auto componentId = table->GetByIDAndType(GetLot(), eReplicaComponentType::RENDER); - auto query = CDClientDatabase::CreatePreppedStmt( - "SELECT render_asset, LXFMLFolder FROM RenderComponent WHERE id = ?;"); - query.bind(1, (int)componentId); + auto query = CDClientDatabase::CreatePreppedStmt("SELECT render_asset, LXFMLFolder FROM RenderComponent WHERE id = ?;"); + query.bind(1, static_cast(componentId)); auto result = query.execQuery(); @@ -426,8 +425,6 @@ void Item::DisassembleModel() { std::istream file(&buffer); - result.finalize(); - if (!file.good()) { buffer.close(); return; @@ -438,39 +435,49 @@ void Item::DisassembleModel() { buffer.close(); - if (data.str().empty()) { + uint32_t fileSize; + file.seekg(0, std::ios::end); + fileSize = static_cast(file.tellg()); + file.seekg(0, std::ios::beg); + + if (fileSize == 0) return; + + tinyxml2::XMLDocument doc; + + if (doc.Parse(data.str().c_str(), data.str().size()) != tinyxml2::XML_SUCCESS) { return; } - std::unique_ptr doc(new tinyxml2::XMLDocument()); - - if (!doc) { - return; - } - - if (doc->Parse(data.str().c_str(), data.str().size()) != 0) { - return; - } - - std::vector parts; - - auto* lxfml = doc->FirstChildElement("LXFML"); + auto* lxfml = doc.FirstChildElement("LXFML"); + if (!lxfml) return; auto* bricks = lxfml->FirstChildElement("Bricks"); std::string searchTerm = "Brick"; if (!bricks) { searchTerm = "Part"; - bricks = lxfml->FirstChildElement("Scene")->FirstChildElement("Model")->FirstChildElement("Group"); + auto* scene = lxfml->FirstChildElement("Scene"); + if (!scene) return; - if (!bricks) { - return; - } + auto* model = scene->FirstChildElement("Model"); + if (!model) return; + + auto* group = model->FirstChildElement("Group"); + if (!group) return; } auto* currentBrick = bricks->FirstChildElement(searchTerm.c_str()); + + // First iteration gets the count + std::map parts; while (currentBrick) { - if (currentBrick->Attribute("designID") != nullptr) { - parts.push_back(std::stoi(currentBrick->Attribute("designID"))); + auto* designID = currentBrick->Attribute("designID"); + if (designID) { + uint32_t designId; + if (!GeneralUtils::TryParse(designID, designId)) { + LOG("Failed to parse designID %s", designID); + continue; + } + parts[designId]++; } currentBrick = currentBrick->NextSiblingElement(searchTerm.c_str()); @@ -478,16 +485,16 @@ void Item::DisassembleModel() { auto* brickIDTable = CDClientManager::Instance().GetTable(); - for (unsigned int part : parts) { - const auto brickID = brickIDTable->Query([=](const CDBrickIDTable& entry) { - return entry.LEGOBrickID == part; + // Second iteration actually distributes the bricks + for (const auto&[part, count] : parts) { + const auto partLocal = part; + const auto brickID = brickIDTable->Query([&](const CDBrickIDTable& entry) { + return entry.LEGOBrickID == partLocal; }); - if (brickID.empty()) { - continue; - } + if (brickID.empty()) continue; - GetInventory()->GetComponent()->AddItem(brickID[0].NDObjectID, 1, eLootSourceType::DELETION); + GetInventory()->GetComponent()->AddItem(brickID[0].NDObjectID, count * numToDismantle, eLootSourceType::DELETION); } } diff --git a/dGame/dInventory/Item.h b/dGame/dInventory/Item.h index 16f85feb..04d05d7c 100644 --- a/dGame/dInventory/Item.h +++ b/dGame/dInventory/Item.h @@ -207,7 +207,7 @@ public: /** * Disassembles this item into bricks */ - void DisassembleModel(); + void DisassembleModel(uint32_t numToDismantle); /** * Removes the item from the linked inventory From 78d8c5775249bfeafdb1c15532ac452024f522f5 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Wed, 15 Nov 2023 19:30:46 -0600 Subject: [PATCH 005/106] feat: make the help menu top 5 issues work and configurable (#1293) * feat: make make the help menu questions work * address feedback * typo * update defaults * fix and address feedback * newline --- dCommon/dConfig.cpp | 8 +++---- dCommon/dEnums/eWorldMessageType.h | 3 ++- dNet/ClientPackets.cpp | 38 ++++++++++++++++++++++++++++++ dNet/ClientPackets.h | 1 + dWorldServer/WorldServer.cpp | 6 +++++ resources/worldconfig.ini | 12 ++++++++++ 6 files changed, 62 insertions(+), 6 deletions(-) diff --git a/dCommon/dConfig.cpp b/dCommon/dConfig.cpp index f09a44c1..35048d64 100644 --- a/dCommon/dConfig.cpp +++ b/dCommon/dConfig.cpp @@ -38,13 +38,11 @@ const std::string& dConfig::GetValue(std::string key) { } void dConfig::ProcessLine(const std::string& line) { - auto splitLine = GeneralUtils::SplitString(line, '='); - - if (splitLine.size() != 2) return; + auto splitLoc = line.find('='); + auto key = line.substr(0, splitLoc); + auto value = line.substr(splitLoc + 1); //Make sure that on Linux, we remove special characters: - auto& key = splitLine.at(0); - auto& value = splitLine.at(1); if (!value.empty() && value.at(value.size() - 1) == '\r') value.erase(value.size() - 1); if (this->m_ConfigValues.find(key) != this->m_ConfigValues.end()) return; diff --git a/dCommon/dEnums/eWorldMessageType.h b/dCommon/dEnums/eWorldMessageType.h index 2a65fd98..4b3e2a03 100644 --- a/dCommon/dEnums/eWorldMessageType.h +++ b/dCommon/dEnums/eWorldMessageType.h @@ -36,7 +36,8 @@ enum class eWorldMessageType : uint32_t { HANDLE_FUNNESS, FAKE_PRG_CSR_MESSAGE, REQUEST_FREE_TRIAL_REFRESH, - GM_SET_FREE_TRIAL_STATUS + GM_SET_FREE_TRIAL_STATUS, + UI_HELP_TOP_5 = 91 }; #endif //!__EWORLDMESSAGETYPE__H__ diff --git a/dNet/ClientPackets.cpp b/dNet/ClientPackets.cpp index 8059b7af..daf0221a 100644 --- a/dNet/ClientPackets.cpp +++ b/dNet/ClientPackets.cpp @@ -34,6 +34,7 @@ #include "eGameMasterLevel.h" #include "eReplicaComponentType.h" #include "CheatDetection.h" +#include "Amf3.h" void ClientPackets::HandleChatMessage(const SystemAddress& sysAddr, Packet* packet) { User* user = UserManager::Instance()->GetUser(sysAddr); @@ -402,3 +403,40 @@ void ClientPackets::HandleChatModerationRequest(const SystemAddress& sysAddr, Pa user->SetLastChatMessageApproved(bAllClean); WorldPackets::SendChatModerationResponse(sysAddr, bAllClean, requestID, receiver, segments); } + +void ClientPackets::SendTop5HelpIssues(Packet* packet) { + auto* user = UserManager::Instance()->GetUser(packet->systemAddress); + if (!user) return; + auto* character = user->GetLastUsedChar(); + if (!character) return; + auto * entity = character->GetEntity(); + if (!entity) return; + + CINSTREAM_SKIP_HEADER; + int32_t language = 0; + inStream.Read(language); + + // TODO: Handle different languages in a nice way + // 0: en_US + // 1: pl_US + // 2: de_DE + // 3: en_GB + + AMFArrayValue data; + // Summaries + data.Insert("Summary0", Game::config->GetValue("help_0_summary")); + data.Insert("Summary1", Game::config->GetValue("help_1_summary")); + data.Insert("Summary2", Game::config->GetValue("help_2_summary")); + data.Insert("Summary3", Game::config->GetValue("help_3_summary")); + data.Insert("Summary4", Game::config->GetValue("help_4_summary")); + + // Descriptions + data.Insert("Description0", Game::config->GetValue("help_0_description")); + data.Insert("Description1", Game::config->GetValue("help_1_description")); + data.Insert("Description2", Game::config->GetValue("help_2_description")); + data.Insert("Description3", Game::config->GetValue("help_3_description")); + data.Insert("Description4", Game::config->GetValue("help_4_description")); + + GameMessages::SendUIMessageServerToSingleClient(entity, packet->systemAddress, "UIHelpTop5", data); + +} diff --git a/dNet/ClientPackets.h b/dNet/ClientPackets.h index a36384e2..5b9fd76d 100644 --- a/dNet/ClientPackets.h +++ b/dNet/ClientPackets.h @@ -12,6 +12,7 @@ namespace ClientPackets { void HandleChatMessage(const SystemAddress& sysAddr, Packet* packet); void HandleClientPositionUpdate(const SystemAddress& sysAddr, Packet* packet); void HandleChatModerationRequest(const SystemAddress& sysAddr, Packet* packet); + void SendTop5HelpIssues(Packet* packet); }; #endif // CLIENTPACKETS_H diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index 79dce1bf..e8f5915d 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -1297,6 +1297,12 @@ void HandlePacket(Packet* packet) { break; } + + case eWorldMessageType::UI_HELP_TOP_5: { + ClientPackets::SendTop5HelpIssues(packet); + break; + } + default: LOG("Unknown world packet received: %i", int(packet->data[3])); } diff --git a/resources/worldconfig.ini b/resources/worldconfig.ini index c0a0a10a..0072fc51 100644 --- a/resources/worldconfig.ini +++ b/resources/worldconfig.ini @@ -64,3 +64,15 @@ allow_nameplate_off=0 # Turn logging of IP addresses for anti-cheat reporting on (1) or off(0) log_ip_addresses_for_anti_cheat=1 + +help_0_summary=Got an issue? +help_1_summary=Stuck loading? +help_2_summary=Missing features? +help_3_summary=Get smashed? +help_4_summary=Want to contribute? + +help_0_description=Go to the DarkflameServer repository on GitHub to view issues and discussions about the server emulator!

Click Here to go there!

+help_1_description=Try switching networks, using a VPN, or using your phone's hotspot to resolve the issue.

+help_2_description=While DarkflameServer is a mostly complete emulator, there are still some features that aren't implemented. You can track these on the GitHub issues page.

+help_3_description=Skill issue!

+help_4_description=Visit Discussions on the DarkflameServer GitHub page
to ask questions and collaborate with other devs!

From a44f998bd1aba75553f2692a90fae85fea792dfc Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 15 Nov 2023 17:30:59 -0800 Subject: [PATCH 006/106] Navmesh: Update Avant Gardens (#1288) --- resources/navmeshes.zip | Bin 18455510 -> 18565835 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/navmeshes.zip b/resources/navmeshes.zip index 34835ed37a476ed1258b3f0890e3aa4569c1813c..c30535202fa65761ece86296234321cb1454f977 100644 GIT binary patch delta 1421062 zcmZtsc|6qL`}mJrLJ?Xm5tT}-CCP4Do~2T>NwP*YWoPW$!&WLvn~-HHl|m%hvW#7} z8J-xs83vPehQSOo^LTvE==tpR{C$4!Kknytt2uL>>$=W$uIoC-5DUjvH^oh_4vplG z6o?dzToox4DI6&hxjJ%9q-dmA;4b-Kn~z5AQ$ir zkO%k<$OjYv3IRocV!#hT37`~E1}F#M02P2rKoy`GPy?t1)B)-NKLHJZMnDsw8PEd2 z0|kVKZ-#;tkUL zI3tb>|7aW}xM~w0AKz*|*(_)CH=B3d?hM|{r>$=T{)dlGU0qF0#s02qbHD$~mu3O= zvlA2dKCC}>*Y{0N(y0QK#oKqcZ0Qv$S?_+VLn`0usPjp8rw?YEuKd-T;#s{*WA_cO z4c=-oiNDA@9g{iFD6@X}WQSJNnB>OY%SQGlo}Q--xaE*(C)3|}8jKck2ort|@Q zHxDcaed6-s3583~5TX`-?%5OE2T|L;7f9QnrTh6srr7N-K{KJS)nuVTFga~hP#S#* z!Ps?Xm_g@Nr=YP4sIzSF05+#@(d!I8C4d!bc*@g)qw)UoXd9s~WkSU;hm*I@>FicK zG@|IM?S1=&VR7}GwN8lm=AUst&3*S6)>3qh~!uXrW>l-hGC=r8?_|M|Knq-|d1e>M~! zNA!Q6o|o{MK@}{NLHC9naW_6AWf>gv0wa{1N!HgqO5Hc9-`H;9-02U0JYTnj>2AD! zD0&*qF48lvDwa%^6Y!dGNHGf3jZW0XEth!zM~UokjIA~reD0J|@5lR`>1N~fj}j2i z2t)T75$aujU1lEM!GNcwo^8ob?e?q0=N8Tj>L&Q$p?*btyP(&MTS~pZZnTAmqO%76 zJJ;FH@*f>h+UC{%r$X_a#A1A)qI0!j_w#O%Xr33^47z_$g-`Wi>6{6zm!reSw@ z@Yl8#@jAVbh-H6D=1`D)GFs?YP_lP6b5KMsSMmt(0Wi>rZI@QU;M10jWK8j;h+L`MN&RJR*kKIvpcK0=uz}Hv%n}p))EvXu1%*r3(476aB+`r#XDPbJdmJG)@ zgyJKz7=M|f)%VXtXaetGv^rnj%!NAZwRIFFsg>@ja&H)Rlll#TidmJ0*HZrIe~mJu zzZ$Px;cpX)SH4DV02*j6R(|*R_$6x>=DXz85k3eE%O}rB^+n7& zBqy6jV#Je^1iZ3y@#3j?`%JvGE##cctXf>mL8&y@m-zmYp243W2W?1}7XB6V+#3(J z^owrcOdmSA#4eCn9=yxKxuhKK9w-*ZD_0ly3@jO84107<8N3x0zAczh`bGO*f5~}u zGuLIH5F!jL?bOB!P*3vfV(nAXLHxLQC{C&4PuQ_<1)2h-wp-eI`x?sP)2sYFLh zsj|QWrj^BMx%+b^rCiLleBws#C{B6!8VcdlD~op>rM71=&Y7Zf&8TjM*0+-N?ARo1 z_Pz%DzP9esnV@~ircsRNd?}`d_&jhTpsOjqE(y-bxUlIHa=YVi=5oi{&1Qh0rM23s z;;l<-C-wVyQD0o(hN6^;6)Xg^<8I~-waNZp;|B_as3%hDiscG=PNV=&K_wIr0Fw6@?%LR` zZy4^A`dwX17tn1>={Y!b@(uQxkb{YVDU#kl^duuN2a^eFT8oLg1co<0X>+pTVDC*Z zr|m~ zyg!r|&M0Aj(QsDu_l3^Pct263jOYvC)5t*}+|sfzFLJ=gV)#JAJ#I(vU%9{4Aq~)G z^f%zshWe$*w8>MJ)O#!DN9^v9qZ)ku^7?}9^I9KM-f9=!6$Gh^d@1$UsJFqE9ORUQ zr}|LzR~IA&_8NcdmUs{mn;vmd9_Ep2l)D$C8=$t<^J4&3&o=DKG`Fdp%xOlD!Cfv5}& z+gw$adc8ZFHSytjKbtzE=G=7KA&E zXYk(c*-?xPAnFU_(n>h_UPm3q_uXJO5ha1{t~vgF1OEES$`woDd@0J^jM^_o?lY6W z4iwyDF3~tC9w8zHNC4FcY%(d#-{Lc-QM;>psp_YNOVj1rSO;&zALyQE1`y#pbNWKj z2lxT|D#0oGMQRuRHj>wMnPA^U4LFr#kv)_+Lo0F1{INj&vL{*9#QY@s(d7V=%{+xv z==nr%;RH0(gu?Za^`}B@uvGn;a204+Hti`>n;?$7* z5Ir`9l7%xk;Y1yXZ5jsc;>eMqyJT3L2)#_l zr799?s8!>LPBYNN`!*iFJY*|`tmUYR^`jiPMuE$d#dGI^Y?9%_@%cCLH5!;jw@^rt zWg3Buf@Shx2Yv2BssC<6BNOO#)Ad8VRoG}UNg8e+BCRh%ye3h^c3Z+*^e|&|J{>9s zS#)=5Vjgms#f(7KvTVVWwUa13n38UkGwM=@9Shi<^4nfr4!auK&FK=JLA5V;`O|PN z-H_!5wp$zUhy~AFLAaBS6+-q4GO@R~^?@|p!EQ+I@&8YKc+~-5kn|NxJzgTMOrpp9E37+k&pi|g<6TMVyT8A3t?>4ukhtkCdmsZ z;=@xU8$JCyf~eKVUo5Rk$a*!5qBF?9G@hSfx`2(rugu7NVR#v*)R{^+=E*KYtr5BBjRCfElVT@NFf0!N+yU(!enCb z?G&(o$644_$Vobhp1xqZw5<9KZU=E-g=01Jcq|uISrO(mCP7dq4MB%E($z>^1y|Y< z8Bc}afI(EiL7F;z!Y&)lS&6r3G9=2eB$H%|py&ncP#Lngi8Gp2JOD+H1uSBD8;z5J z)2pC095>N^=-~o(d_0HCH>`|q9VhW)rdQb!LBthSfQVAPhqM6yOxYS zs7geh9XJac*P}2sQII5;KGnfI(y|R&WV< zuvie65+XR;9ug6bYR+$8Q3baaRvID+BYFZ%w>MDPNl$-N4!dA9X9)=u-a00Ne$PBJ(S#@!~ z%SLFn-9~5uwHh;h>9;nLhzH$v4RSDyo%0<&mOxMVr!io2F+Zo_f-Z}aEj~23pmnI?K-X8s(5GMt55m!$ z>Du$lK@#Z&!rfHJJvZ1uR>~SS!lmB9o;Wgd_YEU}*V|7zA68sg7}?QJ*yw@Eshe!z zhT*VZdzU3+RhToFpLGV}^D9~F2rqZm(!tp?CL>45aQro-_m?NlFv_{V{pjxmOaaFs z=RR_il@o>(RB*elA?w>l2ZJSgiqgZN-&wp4H~_Z_zDx!IUnnvIeO^$MwVoNEZVUNa z97u7B62z=5w1s7Q54lB$)ZCG#EacOlg%H9Gkp6gX#BGAb={R{w_q5B4fiK5ssonKdu^Dj(zxl7&J=93M2c;I3;&ve-_gHXPy5URe*_WTQ-g6#lbq%xbPcje{+8I?}N(^N0Uiw5VRnZ z_8o3d<1O{BYfgcJTJ`TzpcqFF0fn$){mAY~RCORSy_aSD$1I*Uv`9#d1F9DTDD2Ed zpNbD;>O8=D3AW+{p+92Qz{X@COLf%@P=@g6k1~jsT9<^#ii=z5wxWn78L=nBh1Zat z|M`X_^sjH+BBA{pP;x;$BxNDVyucNiec{Tt+*M_zC%=;EL1j9?0@@gd;gGLT&$8A( z`Yh^v;+2el3||8(0z!NT^)vyc9l6v$lX&TVtHesWZ=s_^;KE8Iu7V4aIpd#=V9Sfb ze^mZLM@hql)kr6pQV26v99U!ezbO#N9xilSP!Qy z%U~~kSR^5&3&?3&)-r$$uRLAyTZINW_3n zk}Ezc;_Fdx7Qi6yW8B*lfN;cs}DCK_}M$s5F zC?;3})NqLjMB=w?A9buJ+}QFn_rU3Zlz8<6;uVm<1s&&uKy{`&(NH9}(=dt@GUrx? z@9o@%M~05D`6;v9dHO-JL-F>PoqJCEmhz>xai8Y z7zG>jJYp}|_Y)+^3nMuK5Ne2j64eiip1h}rso?MHK{PMBp*WCvH6+JDK)dTg#DTv2 z|DA&Haa6;=mf>WJ5T8j@)&KttoH*=6Mz(QCAVnUVME%X1v62l;dA`Bdg7Zg`K#Yfw zbsQ4tf3{De8vh7EMe+Lom1J;?1%fbY2#K!XDi*+L2HbqYc4_9}R_quss@M;7NRpL^ zCyN$}lvi+luOaH76ZmcSN@20$6_%(W5@_6!|Cq6r4!RA!Aw(;T4e|*^ zp9_Iy0uH)qz=y#hA6t=PL87jPbt-`VuN9xH)VHm_l-R3I$(QxA3&}7WY zO=U$yAQ^iPq0kXCpoAp?-nB?S!f{@L-T&M(c)N$la6m!dNJmO4xY)1o#ub+Z9L!Pw zk1h2>&_ND15(x}rqwfA+_Y4SG#mR|4F4G~DJCdG-+yv%sVY~JIzVS$dTPAXbWh;rK z4kaS<3wj7)0-Kz;>HdGF zSpGS%@*KBF1VcxnfXaDr`#+xfeaZMIcY>O`2B8i?$PF?~utdP4mYZp%?H{vN@;!zQ z?mem%NLmHg_A9Kx6LXC7UM>{g`bS*`9VZK`Rv{EH<@?Gtcqa5FsZuIrzAm{&okF&7Zm1Xa2D%;O;#hULXUk57etHyU4SiCUoB z9?P0Zja{-}`HqcW@le?el@T)a%`SG#WKXCVkN@z}e_*lfK0irI85;U!^D=hsk-f4J zP2cwJ*|^n z@#*`T_U#uo|G018zV;=(G<~xotyfgqV`Q3}yTE7#HWjJ@`R{b}E_zL|v;Eqj7!e(%vB)z-|<`)SUs_g(}d@2_Pa;GUf|++W>w zxz~5QEhNh%eW?ZSAG)&p7GU=JnY?2tcS2koq8Nx)*ku++nq?PcyeoNo_t&ZQvBRfU zt5B{b7Onf5x#ppAn_%0`-DrHwiLntoy!`O?0DTSRLy11$KIQFAdm*!Ns&Al^!*anB-N;)!q zQ3qp{{0Khl+H)_quF+IJP+0rT8i%)vog}E19LdfV6MIpkd;xfP@|HJ^y^uAl%Ts^4-?wP?+>*{Gn{L8-;?9n1q&gaYq&IMhjp_B*cQ6;J zvm#xKdbK6D$}%1L(wQifmbiH)<07SJtJ?j~*FNdyh36jAz4}Y}`V~{$6--=4`uDN7 zj^0Q5i%uf$!8O#ZGsAhJnuip6_YZQIU80n~o3~(Ie=-wnTz|aS-sto-!KWlKm=mW4 zlLKw;4th^8K6qZSYhH-Ny#CN~z0&c-STj^}l^fG_)D^v{9lCZxXBU3v0v)cN9hJzZ z){E<_dSN`ns8vH-SY{M6c!RPK zv}W`vch?P4 za$XIG#t(y=4=rLAZC$rSl4iz3+Mro|pvX3^VsI;xQ+CO$tS8Mv_*km^a87y?${RKw z{%z%~lJtF_a`A+`yj2c(3wxN!&ocl8Itj2~?7s_I$^3*={wx^Jhh&B#f)!A3-4bdY zGyeB-#cEFx&6VY#mGu-^$U2s)5L_lp#T}ke{ak|^5?fwTD*^Ge!{ax^=%D5MJm4R= z5q>hltUy{qQ5san>V>(SCfhkX;9O#5B6r2w<5Mq_d(Izc^0uN(c&oA|cUNQP_8!9y ze7(lb!NxbZk+;BqUmWyrKxZuc&p=NZ0(QnOx0{QHipKorwskO2#|=?6 zGpZh!>G3b);#VyxVH`Cm-x`74lKcoH05^pqbukQEDQ0{TaA9MkaX9ChPJW_?#pnTb zBq|JayvTYoZZCzS_>gVf5BB2L=&ob%&*a|bqAbr>3CJNbBuQ1d*qH#Oc`#;-hG*DQ)S>hv8Y-E|yT-ux5q0ob!Xbf`Mm?a1N#VHnS*1IFDkffrl4Rq}K!`!| zEbyL(;^!3JPDVEV|IYbm3J?I^#jva3zC(DV0XXq|rR|28QOsdr6bPK(Vgy*=4HYHC zVS_;ZT!edHzT_*>jLUnxq-FoF!e_|PRywqWZr9z41EGu+hNHs}jS9#JMAk-Te1{g2%Fm!(dHg@a zaX=e+R?aF|PXiC#>bJc_;^=9Pn5wJ|h94(fUNH*-rVF!3e4LU{Bs+#dd-Qv+Dz6QG z1Z(}-hqGiziEb;z@kJ*i87pQLijR@%6#fy!3u2l8jN^j`Dj?IkCEiJ1Xu&;JLwdJB zH-X_+SHV_6o9PI6h!*6K8nk(*7&xa3l302nb^;42{aFjrq9f8|+!hwCg~c4t{BK~; z1bMR(Fs~9INzfXwP+}ZXi#CG(?;Kl!W?tx1K@frnv<*Wr6_73P5IF0+IDMeVJ9|6+ zIa3dpARxm{7$yiJl`#y+@OQkgLwVlVhA={P^o-TUcmX6&N3_T|VHPgl19k%00EFrp zwO6V{R^k8Bk3SiqRUkrSB&2Q$2TnTJ50(EK$5R{GLWacX(0UdP?7cKkZRp>i$BO*X zTRIeh_>lM=@Sun+m8LlP(4+=A5P{2lf)0Ol&^t@$PR__mCOryARB$reRo7A!tpkp& z^PQg3dF$@Od@XoPzi8&%lAi~X-RiNU*Vk!gqu09_QAV6(4&rqKRkW*3JC`Z_U2o3d zZV6O-?^n%YsWahWX@;TE)3}PO)7jh18=v+TS{y8}2`?*G{cMo@9mn}#Cz+o0Tsq?V zbMFPLBTajnZKkrWCr9#ow0wuzb#|@gHU*JczXz7vT{AC6aj>_Hf)fRz+2II_`~y=$ zwU!>y_uATR5{=EYBNUH*XECd(7gkTp*K6uZA z1jbZy9LAv1dm;Uv)Tg9}b0HU$trFY+9hrH73leK;Om#_8PP_H$^0>h^Qhw|n5CR;7kJPOASk*Pbk zMBCn1AI`oL^VP<{%3(J5@9|5sV~SAw`L9>^$=268rFpa}V%%e%R3;h-)jV7*Riavk zP3uTg^+u>sc%`*B8#5O6v2MIfJ5H<|s0?Uo5DH|Lk-P8zZ3Q_5w-Lm1 zf8>%;LimeF>vC$B?QBR;Rzjx#$1NkGTf3|OF$IA_-z;m)-Lfr3x&42y%|%Tu2& zVEx^(YdYgII+X+EKiT|T6S|-y<>*YT&8zZjkAl{9bT8=z&RBEnhbU9N6$z6HT^lP; zuU~NgA)Ql9CpJ(LKiJ%Acm!olz5iw#P2>`t9J6Fai`pnMVrGS&*`9*fsAQDqGeU*# zT1}mPv|#obBZJTE`Mn?(eyj~-7+JkZ~q{19MhJiOWomPaUu9?Q@E4+ z_KqtfIo+TA53+R5jP01zOo*Pjw=gjog;B{E-UtHiRJFy$y91iKLqDMCl+85{Q#KFj z*w_Uk6Z>zSbD7ElyMARnD9tI^hvd|E3_Rniu`6d(jR*`SlK{jRjq8j9RxDkCaOU+pU=oTWA$AB(Ro93m({e zN#TTW)-yT&C4$h{)K{otB`?ZVAR%Ou7$@ow9;Y>v=YE-P0g|xNHpB@eVIU7AVVnXB z#m6Dl=)8I90=v}(OSy^~iVfErijCpq6Y{DB9PqOBn!!?K70_OK;n`9m{t03DOA(fok-AkKO>{% zMUWik_Ki3-Uz35?t2P_Em+P|v54ZVinLp^Z^=<9vS`H;^*STfVP7PF?vCm|96ASiW zuby~FI41eQ-$q5#7q{O^H#Q1lJ3R5>Ub!N6aEQCF%haXa$>D5Der2}!TS$J(HMxL6 z+~zusY}V~-%JW+^r0&brW-@8I&Jncff=chu4AUlBD>f8U%%%Ho-C~R=!`UYmdhdi@ z|D^6ZUvIF@MpWUcokVh4r|?+HfFd|PrVs0;P3L@!Yhy)q6o5Jx0 zQ^0EL-f|TFvtuHmpi#qZWNCrk2wx;pV_Ye?<0VP(cUZjTwYm~yWG$W4sd5~40Fhzd zFZfR*X0j$2`rV1GY`w1lcu5BBj~i%@20SDm#D|OQlxgbY^_M)mc+ug@kEoDwBCJ>t z9R?nfr-K=8a?QBMbsV{WZ3366908cdhs?@S5tEgr`c^Y?zWnYSkMo*yg9ZhX1o0oPPoydD%)OJFOxBD*3V#+82}2ka;EIP*r*KGM zLrXX5Z>zjkevLvB{j(S|6tq}4)UX>btl1QWr=Yj4-41!4{l##r;dznQse&I%;MUDD z4Ii*9UqFZOBoy(UYYoyYTHpOCTdw)DRm|0;2ZJa21;Gt-eHe$z&!D=pZDgR*8PCzA zH}%pr!%3tmCT1zcjyAv47wB3vZ#mHAi|V*o8dQR?Y8_1%j*dv(CB5}O)r#8TShVL< z=IOBmUKW2%pFdWj&)Cl6 zfvVJqUnK`(3?3ZZtT*AYR7Sk;)M?2khT2CD>WXDdEX^}U6)11tU>liJ!l_BZgMk5j zi?Un4*v9*-SxIl)W+*VMv^{n8?8S8ymAJI1Nt6^P-CoY#=r6%_qdguG^$%i4>lq&* zOK4f5k$U+&e2Z+DP&g2)I#d3+FIHJ{o{afL%WL=bFH$D>luFglS=HxT;jSChFI>0k z!&u+2?9M@&XeS=bImf1R7sZ^0c+hlh^W-B<>uY z`WoW{`v;MpX&R)r?mJ~plJh!BqJ+G%hjjinn3=-8H8fF>koOh7VYQm8C6k%^$RYE- z#Dsv24M}6@r<@`XJsunkG1_Ovbqs0Lx1V;Gk2F^QA8sqJb`%l;yI~wO|wL4uET^zG9<;) zbMb}_t9jioz8x-eU!SSc;pZbzXhPP3XvYuk9%E3M%&f9sB8NUw^~QpT4|T*9l;?&# z8us6@Lk&f_53Hr$*z-v_nyHKYNP(80CS>KHB^m~g$j7>DpD%lteq`(CIhmLf>G%Ef zM}CZc|5`TO0=Zc~rIIpR-SoY)x}m6y1-V9-1Zs)GufONk>P$uUgWs$~sV~U2<(Hv* zMuak7mrKV0>vw78X5TgJzQ%3MY7 zg%97#qbY?Vv{;$7^Gtm|PU7=QQzQeYOp`j$wf`F2`?JYHsOg*7tLaS#lx?A}q6%9F zIzEmK&Hchr^|r-oWW+$?>!?vpX;AVF1&AX#eO+O@Z7j=0h7mXuso%S~9>tQMoxEe1 zYj{6crC#xMuu3-a&g7>UPWh3v2|Ee1*LU8q=80nVn|iIKg(S?}E6NzxvxzW+wHJ3jVgFCbB^R}iR&6rN z3kNC2`mloc-x|}&g(g4K2bq4!`DvQ`Lhkvmo8_M5DOPJ|+9!6#+9h*W)%9!)pWL{W zO=p)nBQ3ti&wI5L7=ODuGbOpz=802bQR?&$sV^4~N;++mi60L!)>aXNJR0eY9KySH z_rJnzOR{9Jf9%HM74K3%>cM_skZ z$MU7f&olSDKM<)k%1@(SKoTuK4v}@<>JkWEsW@9@(>WP6)7}%Y`aQlE`cZHE*R{r~ z`Hh-267tdt`X;^I1A`@;Vj_OF-y`I1c7r{#H1&lC)t;;|%Kb8`zU|0&Wd(l|;nWxL zgMWJjGcWnWj|_xmFoye5jI(|vu+CZMObOdOr2iP%?tbpv{;gN*BTqo2o2q4RBk(si z#kQe^DCL>u8Ff<=%cu7WwJV|MdfC0Q%jnF#1sL+f=Qi1|@2#L3=4(3B|gI z!(+;peUBs6q&}4v}@o=?MtRdo;baCjeO^+uVuoCoHE{xS?7&sE!+!Gb* zagkS_<>@2=j@WuAGr=C8N?$b)Ua@1-~YEK&EqZeyzP(ybQ*=4HMuNYoDDtsE+wNGk5nV^#=`= z+luPyjy`@IwndMvl~#8^aiDp>3g1U7H&^5NV9yjyty79!A%T&U*W;8u`v}5Bd7^B7 z?XYO-rfiJ>{H^^levMLJ;EC+wwhNebFMN-?w`dw^qP41DL!4wpu`7d^K=>@_=zKjc zpBx$Kbj;_;ra0qOPHQI}xdi-kkENiD+?-Xjz2&X`VIH~RO7|xphe*_m51^wK?tA~r z$nCylP;KU_$)7JB6!LXnQK!{H$c=+{tSoP6R#U}d>OW~>%OCTVtOiaHhWh_$_ci?@W=#&$^7u1oATmv49U$VV#g=No$f`O z;*x}Pl=}L#lGml$zM&?1w9%(JN`-GZ@BJZsOWG>pkcssP=v*^ee$eScWEy+DQz~0F z9UG|Esf~ZOY#qLEH0hOGGryj-no35{ZbK$fAlOc8K5VvC77 z(nkhrKsy_(2;L@-&+BO0<4vSvqIo@dp#TD|vjTM0Tb%0|YjhD+xq8h@II&qJ^VM^_ zw@|O&Z=rH@NSdX{&(Q<#(yLPtSzf-Nf#!8{I47PDf8)N}s=vIhT#$b+ za^b=S`*)`=gj<%B)%~UM{B-|QZ}i6J&KB$6ep9?Rd38Me%J3F%%1nm(s+5n7oUqSd zYAzX4j=EUveKGLb8uj4y&BfF}nm-d_+Tc>}Cah0tDc_gC7!1xSAr<2=Gy`fXyTo|X z3Tdg8VJ_A_Bzb@9?`x(VUslRq*MWGpE{zqYJ{s|`EYBGocl*mqbq~h+TbB2)WL?!j zjT*rVhL-ihFQHk|5e0Ip;NthGbCg?dkH>b(rD2j^$n(j~m6hwkUe)lbuiQq5y$2hd+<9!Jiu zK9Dm~zs<_yaK*+M9Vyj4dejQ}BbeUSg|T-7$RcEi^hy1E$d&m@x&6!FppVr9k>JrM zv_0Ht*DvVjzF7t~KBebgC?86tLXNJ!Po#SmHu#v1slT(xG9gb1cfXKjHn}`$tbfpP zVq&5%wA%QxyG&JTGk%-)O$mi6F^`;@`qNSl4h8z3{H(5Bl?fb6kXJRZE3$cF)UW?x zyxt+%U>WngcmpRogC^)I(L->jQDpTn{OR3D!>e*3wH|wqUlrbM_UdO?S0G$vp4GVw zl5XK0`)}zeVq%SQ%c!=MZ}zM4!e_0~36V!6nU1$(*4v&AiXB_0Ci}@Vx**7OfcDe~Q`#hra4egVj*TY;dY_a0(snCx#(%W0zH!uuaMhFDS2k)X zjh}w&y|^>_Q*eO@u{ftOnA~;=ha#3oFS=_50c$tC9*gQF+qEyXRBghNtpG%PT2SZ2=*{GZ{L0Izp&0bZ~aQ`l+*qpx^!DVSO3o1w9Rz_%613T)&vbY8P3SmZCl1} z>OwZ3=)?`3-oaHjy7V4u)$tI5cHPR(d%ZvsR)0?lg_R@VoG%!z>61yE!>47f{!{N! zV@Dp%OX|k@g&rN#&9p#X97SjmaQZcF$$pR>E)Or;9=^hrE8p?AB4hK(Ws#JPMi(#r zo_GvV429E=uk|)dnS>mz5OWDLxV!R_nL^ib|QCAWC;X6=v zCWhNY3Q&(}k&--ggu-xi&=}(b%8Fb7$}YKDyn1=Je_?Ed8QrU>qd-}69DZ}|p6Plo zC1P@mEl@GA}qmU$uObl69MU*5XB+^kXcQ=q_-#XZfdgPjZE^A_Vh zcT-B1Z7$@l`GHiJ98`8V+Q2!jb=~PjC++Wp9nWgwtJ)yPrt_oOM|7@LH#SmpcmbZ&pU%NFqG)}FrV7d(~_4zic98 zS*7Y7Usf%tnU%QN*&w5_hladlW zLn;}Gt5P>}lha$wSO~a+Y!cib%Kga-2nR!bsbu< z=K4)o#o0(b$7A%X05;B)l?^!C$B~w zZZ5?fk1M_PFe0k*HmF}mFuN7?943M}e7WbpwcoLsulbnJ;uDtQlZCt3Dc+EiQe-ji zRe$V9h^2CUp6v^QYNKW1FmaPudh99PeM7oic`z2+K3B8l7D1KNWtln=e9C}bFkp_(9`5dJNdAm|1&0LV$kY{>NoNE zI-;<5=_`Cv++)Y)bE+|`t>3X6&17&T@%zc2-6{ zvMnh6e9hZwWp)^?tw_MRkGh*w%P-FKaSnE(|4v?hnO@%3;4x$K^&+=yTti%6^1ueC znXNHhsUpGM{vK?5Yz22@oH^>QqNRkpNtny=o;gD67t_W;{k9pC?@PSzv3EF^q_&T& zfjZBy9;LU5?Hm+%sP$UN{UOm}cHzke2YyvA!yS)?dgt=~no!T&Gq%%D_l055?$`CX zUBZ;{ou%tgO2hZGwePx#zb2e?H5r-uPVvS3HRbr@;B5t?(Y}`Z#nqP+s?R&6{Um+! zmwkKMV1x-Ds*FhNu(0bj6IrgU^ivz>KD@jh@-EoowMZO;Uh1;L8cqG37$|R7KlsoVVa`14jNu%xTtrEDRh_)Bs-hwr_N_6ofu76Zw=w&r*B>C;{w1&q0Z&yFm zhdMi$=R4;r$F9t|3RhQ@oLM+7|Ku7867p`aO4_4w$`Rk0EDmSwxk@+8(59UCPR;ZW z*+m<>Kx}%3PfLE$66LTANqFJGTue&t)W;e*`(>=)vhPvEY2v9b#&s9%w)QFm4chMU zSbr_WUXKgoi8`9TQ`#~fF7M6}wrNqJH>FAUB`=LH3j9xQP$LD+}G#68uG$}EzgJA|Kg_MKOfi|e=emn3-NygL5lOx z`d^TB$|Um6&xG*4#!aUuSz&D8fUM#94%7q(O+xN>A}-fm-B6om4QH+e?s>l7?^4u{ z#i1P!^4|n)&kA1M%z8DEw{?Q?O2cLPgyr|e?GNvb{VKhukfT2m2yOnVt}|OcC3YkX zH!8V~;$U(i`P!>gi_1wQs}%O+1&b!9Q5r zz4Q2on=fyWnU7I<{r0@5NP?WbO~>;gy_0Jd_|6^tK`j^chlcJHzhw|K%Y76fGlKa~ z;l2YXA6C<-bui)JTc0O0drMt!c?VB#_a?mKFwVlC)RWAX-zL5fnlOx=sSO>E=5Kem zwpyFuDsm3Z-yVPMoL+oF>6rlg;Ad3Z<;h)!!QTSAQe#?Hx9|Qqck7a~PMaxGevCl9 zrq>uYuxi2z5{hS!IZZJ<^xCg)fmB1fTJ0M(c8osto>%+6aQSi_zXf@I*#C(mg>MXZ zP}ausyT*69eVI=$`#tP&{gn!ItQ*abvR^!W#YDAE_lB&u3h%jpvF28}#z~VQ*V_knoEpbSPJKT# z?uaxhU2=o6=J!Uv>g2XWHTe<_#EIoh5^^!mi1zF2Z*;usE3b;^U(9OI`6(tjCsaD) zXZtLgPQ9e}WYSM1-^H+Lp9o(zq!(ZH`iJqh*yRmBD;u4XF6ekO&O^sco%e_$k{?vn zzGdu1Z!@{B_i=e!n{@K0JAFN_gJwRMD)*Sjuc%5b3|+-Loj-WA##f|4I3F<2%sbr}WIM-u0O=c7?5L zXa>I^(y{HkXIkJu&#Ak}xN%Ms_xDHr>bT6Q2g}Jqz04~P8GYZ+FL~=yZCjq~8#^hu zV5kf2H4f0i8QGL#nsqyA2>cdO8nuwqdg*Jtwv^j`V$?R+JEH0++*5rkb_{h_VH5Lf zT5;Q>$=j;^+ct&CiMpU^N46Czrci6O$-W_^m)H+es|n+G*5fp(=f}&N!dVH9b=%-P zCwykldIri#k+Phyb^92@z-iye-${R)4hFnJ(sAZ;GQmbl}uA45kn|yfm|k)H>bwo3$w3ID>M*Q=}8^e4eu@yaUrOxgt|Rg zMiEv`Cd0Gplc8^C@q;*Xi|T{kT_UqxiF+v_ii@r0(}R4Jkg-@5*;Hx~<0xt94*t4PzG<~ymsaa_ zPt!p^a(Z-A$xzBq$PpSly+lW@8FVR^99e(! z_!+c~;^$i#ZULz-Q0mQsr69tGvsycq%nuE3dr)_)Zo;8B!AIIxy3R&6L8O)T`l3VL zP09E6)?zM6q2Kb>dH$5@wL14rwmzomL46;^qi6GMe_8;YAu<&&AV=8F@9`sN$n##i zGyQ1DDoy&8_A4k-*SDj@)AFTOah>Af)oq&=&OC;`B@?$m*S`FJOuctB z9Pb-8o`xh^L_{Ydh`LI2Rzi?O4WdNv5xtki5IuTymQ_AN^xj#0m1T+E%VI_EZLNKM z&+m86`~Ej)<~sLz=9xM3+}AVLech$Mu69+NUU6Ux4_!jDesC`_J2Qx)cZ792$hYql%sNLn}?!38W3~xwWVE^>JZZy6OPFd9;D)tgM== z?>2MkW%LjT*ro>PV9e5*xWBK43FgwTP%-}mLXGWjCWLI??A*xu@Rd-QUCXXWh%;|f z9cgG9C8CrtWfD{7&gD*ZoNCc%o}aE+Fvp#BEpb$uj(+TD@0a?5Qp(&$zl{ln+vQ9a z;pIn%5l3qc4aSOqO|rc+Rbm%G4)_akRKDpO@iG82-tFyg$%gT$a%j<9p68?G+r7A$ zo4lKJOH5HUS5IED?OReHBccMu<9qnYk7guL5IuwbMn|A@o4lLP7_H<)rQgHf zC-F(y_{wbj%T0WY#1v5Z%TGC`~jsg(cf>XNP8Gq?G{Z6ux%{L>LU=9cR!as9tA{G$=^W4k=0 zyLR=BVu8!vf_JF52xEFaBUwOwnUGFi$?FYkcP{U@_(qksdb-25k#vp#^^ zuGqSCygwM>KcfJ(#R+sl0sD@CyR+`(I`P#_P#CG=`4|_+qsHd=F@3EKaIf!A^-Rcs zWS@dq-t16eV;QtD0p?5zeuUx-`?6XwtP%c)r}o&0Hi&fHmZw(0uZ7vNihR8bl0GQS zZw|JmU87o{Le&;}!tSA)V;s@XWlM#HwnNvI%2VMwra+*tVqz>Fd;Ig*9bYc|Jh27; zVP;57#b?)RWbJ2r!sdA@W!&|XHJ&=D?pclw*CT-)pL%w4+?B6;va8^0O~)1qOylPB z(ZU^NgiAw<{C`YUH+8QXCKDuGt)wY{_D_`cJcC#4Wym&FLDkm<2}KH)|5c|0A&d+ntRO} z_RiJzk!p&2qy0!fUZNI0n40^c7UqV-F6#5FTmonULyzyjLa}xiROP*>f0H--FS8MP z5oK@G{je``8QQ3hOa6&2%Do^parS@woS35$K)g7nrc@1wP**mXt_(?s2!o2JM~KQ7 zby+mY?k{y6n_UWSOQHrFYbR$uPiqFhzR-`i@HZW|Zo z@9xyg2G&Y%9_pLHJj?3DVP)};1Q!>Q>tDFmca$Y&HV;Yv=4CDu=uE3PH*wilmJB@v z9-CXvH7_3ASJpbr(q2*AZnPIigr)bSz6QVfToOB=Nv;PHG9{_Wetd)aLxB(W?v-(V z!g|9R^G`Ik`{H+eSh_`90l8i9p4xx~tDlLap9!^}3COR!Ebjc9H!2UNaVFa+*Dp|J z_)b?p=9`IGIqA!c0baJUDsu}W%Z+9-;EhgYpe($4eps}b-qfI4pv~$~xdY&BbRA+2 zY<*ZkEg_@yojvN}&4$9d1V|Mogs;2<`IrgQWvWjZ4E+W|VpOI%V$5q&>`g%3bA~MR z^m1wT!FwNXM>E&%apBr`Zjx4(!kkIdf4jfNydb2j>dqhDdhrM%ps2-HMo16boymM? zPS;gX(tE=lkl_~62$T8=>h=49uTKfwv2;KhDGVG}4lv!4PF$<03{_i-$%bw{ zh1J(BC0F3;w(3C6PLbC3fNAI1Bgs6Z5BO}-WrPp=5&X4_NUd(r_rMOjV6wlU#1y^u zC7PTwZDV%ndT~kqtWWCjwQI(&#D7^|qGbx>`jeYG%9>U5JI-HOwuD*4*obYYNDGTH zzsH%D{U93rT6K!z_W+*6j;-g_vRsZI+Q^NoMk(`pmRH)}ALJ6HE>nbF;F?OOKriP4 zs76wPcxGQ%Z+(^Y++NI^BNX<8#2Qkr&TCqT_=Z{}7gi4bq z;xeSkb43VeNft48EFDsGne51V8VPsIo+5Kff^S?kGhJf_m#(Is$ZQur9c0vGmASL; z{q_niP5$zh*X?_GJ8JxPo@oIg$EV1dV$NiZr@|$Gle`v! zJBO4&FI7VOR*S@KKQ{m|c&)4~V$SuQTc-nxNU^^zDLYbPyf9BpHJx!ru+7nTC)?B0 zanHtFcv(I$i61O3Y1N~`2k_&Dartw~N@0LF_C%~xkAOy~%DSRJ1{m4K&6YK4F2%RBcz$d~ui0X`TUr@EEY#Jpq44}Wv6ZiTWi ze>7^VWvKyNhVQxE;hib|aiYj@CV&eXwgH87(s3(Z;YZ1BC*ciby>(-6@x|}(#(#)# z_1c&@AO&74TDc@wwKNRtZlT^ke|yEc=QoaL%|4c_kNt8D=PAZ9ErOrz3ctM^ZQyvY zM@7+xlICA0NOEOt2R~_$dC>1h-V-4Bc?qfLOOAfw?)Z>{>zozO$*)!{GfAc+2ai5F zC8W$+a135$8+N1AWGV6Oym%L!G-Pe%3%6nhEV6Y&UcYBJV=nS)0W;H{{tHIOw_7V? z8e+Q*F5COIuBS9m@CQ)O-%)qzkPzo3eHs&zcI>Aoli|h;&WjH(466L=e%Z8Mp|QiF zsZxa&okhCW#O~zg4HO6SVi0dkU?wCndZg_hz2r?wi|yUNMGb%bVEAo8A(KSkW)(r;1Ba|QXSKNGghFRQ$VDM@H#_jyy-m$c` z#XulRoF{R9jL&E~Yk5;E?<zCHjTw;kmNMaB#y5*(BSnjjh$tpk~xn zHs<&FF3?VV_bU1dGHV^>BUd+bEpF>$H}^ggW(yNAFWC6uMTP*zttwD~(RvIraSi11 z0&e+Rf}Q;qAqk|xupt7~VPb}5w-=C9i^+oCG~1B1Dm%8L z{B|b7FL-Z*E`ltg5ze)cWhgn6I5%!~`?-f6NvD^%V5Q4dfb@kWgrQ{r;Zu|*vx!VY z;6UP(4Nl^U)3_l*w^>4H7l>>>;odynO`q2DXxYoO#6Iy~k{R4PJ)H5Y_-MT3skz_b zn9xK%-M4l7d~2nBY58Q6SY;Ib#_R1Fj2UtT>b~AqUn|s_8!e%1;P(r} z6gHQrtR@_vo9uBJa#Aa$_a?5BdCbae+?G|tXKDsB(7)LVxQ;i24w!N ze&IPkk#iYS$8p1VK##}d@QvTnl>a!ZjHoJ{_ypw zo!mdt9_N>EIsA}guk0oHa?fLR4=JKaL1O<_;N;oq-*&|hu+e2P(;&(w)^)M(|DABg zCk)BEkR*{Gg-8^r8*^+0QB)byy_XZyh(bP-R~Y8VHOTB+&ljE?tP0KjMx*zv=UZ_2 zRyIMBu~`3fZBtgx?g_C=Z~WA{$&_M+ZO$O8w{-Qa)ce)a$RW8lZBwRSqp3L!YvFXq zPk_}gfg%r#V!Oc)t>7xivOseJyO{y~%Hbb|dB2wCNlOIAwu#0{WCpado4S9xo;9b5F$IJ-^5e5FO~3R8383 z82;FYVIXhFyS9rP8a%X3rEDa*p8Xd-s67UUJ`40v6~>LZttEUf4ehE<5I7tw>h9jw zZ7J1OhBkb^!`d#_>HKhB$jRYuuNX8T)O7;d&wtsm1a?>xq6I%vnGg&3>&#To4J7HC z=46gN#Xs6J*0VsBNE$ZDTnHg;Y*&Vy6Iw)KOBZ?UtLps*=p{+~Hvx$P0VVUicgCPT z4YfByKjy8fi%iWwKc#m)cWn*!vR{VWSA2}d)QIU6!4+ z{n%Ecs_@HPd5`%!9=S%}#ABUW0Sf_rP~$)Kub@h6uRHYDb`0R4DFQts%T^0#ag1ud zmtR(GNX91Xd--9;Z*r^iEOysFYb6hNoYD@u1>$1R?2}5*D^Gvf@EF0tw4Q7X`{lT) zm_Z;<1T!qY4wan2jR-mK1vo^wVkUHq6s0L)WCoNdvXm9tqWeeLP|0+Fn9v=u%KiYan5ODo%CC;o;Ssi<8>C8WSf$jnQVI%(vB+7&ol(C~nMr zKhvGz%wHRSSFSJ;VO2E-f9*vqaInD>Kx(eOx_fKsve~o@xHN3mh30Ucp5w-6tiMwK zsRLz*d45V)x)mko90Neh!YV#-&RmTAwUuKe^VccHuGES*+WqQ^NT%>0&u17V8|^8Z>@o|_)G?+^|>mc4#Kef4KUf;~T!N5aUgx{h0 z{es${SwuAEsWoMmA2@L4;!=W)Sj1n+#c{0yRj@XTH}E*q17_nNZejEn?xLQnyi;mVs-F6Nvfl)(3TW zq{QaQ8gWm~0S(#7I;EraG<~!RBitbjvtn4fpxuk5uj|2!>}tCk4-CI(+>)l88`P3= z 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


HuA2df33@-B;x3K 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ΞGJ1A)d#NrCkU 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 Z7^TboRf2IIlX|y%uA@Y6!8s>3HOt7>DU>$ zTOf!|5WPlA_tL_lw{N_%X_RF$&={Xa+h9VvJS!cFd8RR5M_!U@V<$zllUICL9O$T= z5ne@5)dPovQP)j!NdYTPLW9+b^&=MCsLb%B#;a{==V_tO zC!yK5a%t$#YTmCdri`RZT^jXSA0@1+-Se+Nn}mx26?c9mr5DJWM<}&_Q&^S5L#a(%4fUM&j*%QE=H=^jFb#6hHO46N%8%LG%LRh zLEFDuqKe^N$~6njJSGrFvbePL-PydPqdJ9I@JCg)eVe5Pv)v zd(lnTQqyAeqq7FNEUu)#AVT)a^Y!B!$1@T2SMIvH8fhy*)&zmG@@#NhnKr%F!=Xv2 zicecA0&4|@71Ln1P(dVnTY9r@gg1s(D;4BM|K@zOdNp1~P3Tg$+Z*ZG0*Cn9o+L8p zx){9>ll8kn?N2l`6>6k-qi}>!yXr9Z>?uGlCr0CiCG=;A?=1S!_+^&k2 zelf}4tAKG*`Sx2_aMP+TpszXM`FSO`N5-G>!A&( z9)GP9GzC;YzvL?#zWM2k!4>ptpa+GjmSCC62vk2uzW#ztni#`y?fMx|{Qa;gG&-_! zTl(84(xpWDQ{}SMIEgU6XKgMA`|HN^j_u3dS?-B3oHSVPZ1IdPAmS?4wNBL8tZ$?D zdkY6CG!pSJmcBku&CfAm2Wyz5El>6f)>rKL@`Gf#8T`{uz`M-dhfoa|`q+5dH>Mf3 zZSh_|e{`Y;J?!{tYd|ICQ_D6yb?hiPoHUlN%yubrv;VCKU3arEWq0+(bzIPH(@OM9 zk9SK#>}7RXwrpKo0MgBN<;01o+joR6wN83Ncj-r=W*PoCJLeRYFK>fj=8krRg>~Il z$;r8Uv93YMocq%q?FXQm@kV|*v8&=_UmTx+hWl+M=k+1Det>A8c1#w)1OGb8flwqg zc4avmB{q*c6mHR}o!WF(QNLeWG|m^i3}yTyOXhHKHw$$EaylB+0Q8GpRPPs_a+}fB zpThA$8*RICBQm$vcJXd~r2geeThCh>)m8|+O=rsJ*jB|6QnwOz`L~oo4IfQ|q7k*zy-Aa^kfY8=~3s_%4pG_+255Op=^fG?=O?eWF^gS)OaT-lI5p)Eey#J2Ocfx!c?V#~9PT2hWV!Z$xj=1Q%%j z91t>G6Wcj|n-F9#2XAUESX|*~zGdN)9`=o8%GK6~H*L7d=^Gde++@(%!SStW=1#Mb zpB_@oFJ6Nyq@GeNEMAw&c^l;YmD?1W=moHB!J$A$BNV&Y=q`$C58ptaHM+Y52#t7! z1C9dSSg-(E*%*awm5#!G=Ed+yDWGvjg)khXx?Af2fA@9XFYBhxRP$CSRyGI=7^5J= zr`TIxdTg8?T7;1ug9D?*g4!ID0Y8DOT%m0kqxN_Sfh!zz~Jaz4t8*FDAG9o+~Vl^dnr?AI*&$C)HBDK@s1Gj-W zx%XgamMwe2Qe{G1 z^VLERqk+lZz*8flE0;C07Rl+tZHsD@B_AZw@IfE0sB2q1psO1*;h9+H`+62hP6e}I zf+PGR22F<3{1WJdduq;EvM^gchgaN{4GSQ0^o(=a0VxDq4G^l;nYTmRwU<9-_;+nI}*6cof9!f^?q}#9H8$>Bx>fzbMe;PMmcPEw zm>A5}p*1*Iwygip)^&pusFppz9OH=woM$r2Kb8Py+qM6VaCz*GY7iaRjP?fZdV+a6 zw9?9L3{-!**S*rH$hyNpJ6)7*NL*d*W1d!19;7r&FM(q7Jy}g>KX#ni-!0gb3gAFn zwW@88ze}&C+0Jo&Ad!H3knCe}E5Im|8R|q4xAcM^muVzPRFi2u#4b=lH3I|PbrY`= zHhLheC4K1|^UlGC%|_i9mwW6*a*Uxc=YT@rm_?Z#;+jw^q?~cU{*~jZ%9wo~!pu0p zl3?0^s}acc8KfXg${RXXP>)iKNm!Pv2!1PF0^2fq3_QOiu$&H^ z%|bSNzE`S(jTZted-p39{d61)cfTkJ7sD)5V%EmV(MmU7ajtyL|2Ox4E7-J;FT zK}=bzU~YBn^K81pt61oTU`&#qw$wnm&!$pQ^IEWJe)8JSx@SYS`^)F=v+LA043u7Y zhPG<9o)pBwGe-(ro-NIKOW9!G&64?W8Q+Eaa5-KJQuc}RLJOo3W`H>i-@FYNziI%r zrd&@jkV2f=w$P8Z787+E>RemXb;`JYhiA%BLkWV%=QuZ|&Rex5-GK?qh_y$^5HcxS z0HP$;-l4H}eKEGiYu?=vd`{27oH_W;4l@-rs?4khVfPjCzri*Y2>#l(Z;qR2HSpiQZS zxw%^>QWq5n1MoXT=g%1MwPoIDHx8)_ z6p}1{jy}Z%Op`smeul71*~`NCocTEArvZ*=qg{gsSZ(n3K=M69s&c=Mqq#E`D^w!g zT{yYZ)9X8;Y-o=L{`B@9E}u(BDP)HCI&Z4Mpc_H-=Jccv*2hC|=#hN*(x}-X$+Dz! zr=k1k^0meznWIwYv8@$DMKB5I04;nBL2!{tk|sUtJHPfZ=(8CS&*ymas`-Fx()(=>Ic3RCQ{l4HbJ}W$bh&HqB0lRNGxckiwe;%g_p0G%{qQXDX%{L7B@EbgLmDG=jrt#R# zYR_x5t=xWxC!?SQBu0%bC}2+zBIUPDp^utNhZ+urEoULQtq*;I&UGe7b(6b<=zOn7 z&$Ud}CPM&9rj|%7o-+?$0X02)$4dg|qkCN`G|l8N{Gp9x3xzbzj%Czh_)md1_4+2I zL+xWyw>jkyxtA@OFr`i;{Ub&BKj6FQv2t?~xtd%(()0ah)Iwb;Oy}RH38iyR_}uxi zp%uYPjXJQ)VgSN-oHv2ms-S@h4*qmUJ_-+r6$Z@m!Cx}lVNEas68Tet%cf{QX`W3o z|79yJGCA;3zj%_R#w<4Cn($sS?kN_qp=XP)e`S;Asr<<)KHpP%h2Q@CL*a?N+~94aRU?nfh<=5QZkX52uq?yvDK zKsC{l_nFZP#)ri;{E|=+W?#8B&?_BNFzxu_&1*7IpKi|_=P~hItPpW!`9TI5GjZKO zlL6S&Bk=qytg6O&J1#vPVJuXbLIe*O*kgfUH=xnaeh zsQWGz_sdI|;I$~zJgZnIigJF$TP@P+w0_b%rQP+n+4{c|>n-UN_+aLEJkzGd4~6CY z?$(8`#RI{E6MlO)_N+b5jVcXeinZreQjd1retJYLO8dUKxIM$Z`xqtP^TL)k%J8&B*rn1eR!DTh}dfP|c_cWbFo5b+0414w99D5RV z4P4Qt=t&$($bGYXlP2&Qif}-s!r!sitHiIg;Z%?rry%_DMHZ za`jw{mfDri$4YQad*W$zaoeM-uR{ zM;ofe2nL3{Rfz}1$2+b75gZ=u#zeSps@&DPoV;VPR)>3Z>7 zyz5WCR|%)pSI-z%ZcSIN=JZw8O={Y3m%PKufh?nJ$yQF3EZR!n`v!;kCB83|YmtRnFLszNIWh8vV0Q zIBtu*c`mZ^fmtLXQ{&QGe=zb{pRq*b8}&QB-TOQ(&B5+pSR?picX3e}S{jyl+vW-L zf5|L5|0O$0&`OTsMeXO22RX7mIW51b^}is5{}X(?W?@d75E^g^2#MF_&ahK}y5)bp z`2AbX?!mi^a`ne^XW9J<7HuCL%S=jHDN|Z!{nBggPev3u5)6;;aA(DC)8m}|tV`GQ zz2UW2?3I|1H@=_9EyKg`e0-72Qc5>5jKU^&M2r)Xgl2^T4o5q^(FfG`XgSBL)Mm!1 zvz;l%Da6d5*7x|MfbRPS7s8GC`J% zx){e_#hk$pX@BX4uJ+PtRWd6_1Sl0wZ&+^sGh#cX)a!?@CjZ@~$Zu;Vq!MC_713i1O!x4+rM|EB|0Cp8Eg}wUBd%$cd4yeJNdV!{bu4)&Akc|T>4XA; zn`?=L*a3D7Ah0ebcS(ztJz4o5FfX9d-DDL4{IQn6+f}8~LbRu@W9j^{LJzSJVqwgy z5WxFhc*2hW3B5(*I0pg?XFK>9LVvM%Hd;Nc4G2?He;C%(AKUlvo<4wy42T4D)=&o4 zo51P=1Od-;jAF3;|6%X6wqrQCGcM_{*1G6YEE`Ih86`p@jM2G;0%4(84Se7pcUX8z zmY_k0`aYb^!*3P9+%5Hg<|NKzIUZuU{ITu#<{XCra_s10g?l*7y*cuMz)>R|37T{F zD`m>b;Om0_PO|@J&oh54p+DC3A$GSD+K!7@%eiYh z7u5FcZ*{&V7y;bV|9~&2kT0kAcm~8;6be548>>ozoxm*v3Sw@qisEnPdg%wBMwSu# z>VB~Zh5Bs*44v5ehxa@K%-H>xNZdfNUKH4Jk_Jp`*mV2-DZ{;0v(KE(0>LvM)X@b` z(aKNJ1>|T5xceB=eh7Yo?lbK)V6Z3y`eJXcSO8ogOe|hSYe7gii>@4Ib+bcuho^gA>FxFdp{H|c|0!{eEzFYMS+H23H{FpK8AVRu*4kVyG15| zTkmV@S3OY$q^Z2Eq5d7odn(dB{{gXqm^A^tsN(>jVYL@_kcV&}9DGf=Eb82lE}_K`9Vs0Q zSqr&-p}~_RFb8`+lp9on4m}W_=avI{gm;av^BCjDBsi@>1YaW=1^jIYy$u!MBAW$` z*Ql$0)R9X)d_L|Y)H8N!0L9aYZ}WIH3WI0ewI#-024)IP5{gJcmmeuJNSTlLxZ(95%RR}*K9)NIynNvM>=RehKLZeOysCpZbM>dZ17 zyo>2QFTNH6xd~-wX!M02f{(wok-}rRWR#}$q&RAb$M}eBXXjqhl;O~nRepzl%Xs7b z#a1dc4BY4(QBgT92@FruvzHH7Pa|W#oydXxc?v%*(g!@4)xaxx-F;q4V~TdeA2@Cw zSZRhj<+TPJkHw2&m!C-quB1P#n-~F{@`z1ZgvG}EqD>kNg6IpSw{U4biQUNFG~U;I z%Z_Pk|I{S*$RGS=VZqDZ%&~>ThxAqz6ufX!@qYRh_;VSY6p%Yr3v#v$;h~~$PXoyz zt|6PN1I^v64YO`T=oe`W6Fa9Z^llG_qWjUTX-WT_(*9mMrtz?&kub~6^Y@`(<0P|I z(E6KRdu#bs0o3u!jWSoZK9wMJSk8?>wj|J*<6(9PSSm?;K^^~?S<+J+NQzaSO=wB@ z805W1ezrmcAS9P>2aAQYgKA$zso#CW=!s%MXK?kt=%=KTUm6f)nODtL5_s_EGwpK; zKb|?69Xf7HY1)q_iiV_4td#d~9QIC&)fRdxN9~q8;$;h1YEm~Box;nvAh@C# zdflTf(4oQz*~@+FS-0#>C~8%g41ZMRUN@wNlsC3_6}m!1i*0OPJ!b(D`e9db%~{8X zd0OB>I=8u=pXcua$wZp!i&u}H`r3q#7i96`wKr6AFz?{$O1~&;^iT;q(sy1%1iS>= z`zU+J)LVZ^iyoe(q8b|QT{@f8+!-~g3;4D2h3l69ify|mH7yl#1qXeEj8y>Hgn~Oqkk)&T+s!vEdOWuyGcCjE(jIgT+6d(D zS@nQ=4f4_S`NhH=HL0bqLCC|NS@nVX@EY{sb}zz2%{J9UgS<`egD7BpsPxMI<$ioR zmN%p#J$#4rU@X^9JV%V zuqXP`Ur)|in6ho``@FuLJ6#|+c%RWwB{SD~+1UjYA~#KgLTBw-7Z%4O3qzh0k=O|$ z$I=uROR5R$k`j$3(NNRyYr1w$FD?;-{2h z5VM%M8yWduwAt0BuIteZJ!e#Xu-XgUzV3=;Jp&VJrxK6aI3o}sVW0QbX_t+Bu<_c1 zeh1riL&{zd2J1w;mPAtT(CnT%r(uLGrBNaHau;aD+b{YL3>s4>vZ&y7Z+IVqoY#UF% zLMa6Mcs4sn|Frna0+6ly2rXwS!DOQOLuc)%EWmt)XG@p2dctRMq_z%|&qmHg(NUvEZocBS+kD4?ofB>_4(w!O#FW1rF_LG+t6Da)^b<+51{?s^5&FWI>0gQsz05oD z@;|}L{K3J*yqxUIr=)z=VU1OrLB?G)y*<q2=9|q0pp(R{!9W1J87a$>{5AU+VAI zRS`s70NJ4CkOr(S!%;C-%#_cL#oOPGXY*m8K~D5&!q(<`uJg*JOvx)d^u~fQ6a;+o z)!#o8pVq7Zy1_pd#{0hZ0luF}=BB>4@KSmC`fZ!&u4?cX=8I?gY!I&EFKHlh!>u;O z1T&9{j+ZqM`yyU2HAt=0v_vjQ7eo#7SCqpHasV;d_l0v)@`va`xY&qUIq%HoccXAQ02(FjI;{I zh&&}w*P!yf>97?eB7t%ae4oLozX|$;btqCsz0dLM6lTOSjS~zz6J#)y-Yk{vCKubs z@HGJ_%ChzwULg$lFxFc|+Qm|Fx!sQhso`_i<5M<=UuI%N02ApD^5%!X#tf`EHZO3O z5rBTRJ>IK6#pmI>VgaF|z=qcWSz0F|`XGw7=P_+~zBKo$&UuQpq4G*}6JYf2_ikML zz4Q{1MvlX$6*ExKfT2MY%1@!<4+yIM0t^>w*qVK+UAvhscf*sinS(ON1536o9)qmwokHnN6603R8Uujs~U{Hr&|BWK+>uHU-|xK1m~@~Fj2#KYJpd zFEU>s$FCK{%CW*5^-+%%rk%PcIn$|rqenoxL!L$yPDf|hHe$G*i@tn0>fWU|8{m%{4AF_Y-2RcO1VZ9<0bf81+bfa#xn$7#CJ_7TAy(HP>*EjHGHr{T1%HTY30%u-2& z=;qQ;C)LrCy<_(88p}2rd7G)@g=$XWnZZuZC3uH+j($Ya1SijdYp?LFD-!HR*&-s% zF)~`tZ_yvdEO#T)-TvBY+vs$g&!Oo!`4PnW?SMHf@gL{_eapkI|(tY=zva62qp z990zc6UiwJT;ukTIO5!Pb!9GJbM^>H=oXXcJG(w_aK&r+WtjP#ct?j>B5BIK>^W~l z#ruK~F|iLkeMvyynTNLkU-H#mj)vY{q${~;!8hwOu9f9Pp4 z|8SZXxjwDwJ204(KOM}YDP9Ve4;Rml7&*nT}ZhP345QZeIHahx>sz`$ReK+1%Etfk3d07@wL^VHk- z&@z^$Jb~o3KJLm7saC0TouJGRJM+`3{5;MrDOn4x%bJ*rnP*R>Ua@;EO3x#-tL)KK zX(+%s3+2osgkd;l$2>e2VmNL!y^sD)!3YCc0G$`I4sdq@eKb+nQg)06=`(DUTO@XB zCDREP@b?ttlTSz(y@|vc`vd%)SYdzcs2~n@au~H{zKJcx*(6KmMxXaZ@t*>zh9`6q z(3qk3rO&@u+(EJG{y_YC`|tJk!{H8WfC7q-A2yss<}fO0SO&8ItD3Ff(;N*tfuTWK z?b`Go&rmQ5J=5O*z2J#I)}0We7a(ZSb~`XMc;BPy#NNI}<@}((anS<%zuU1&IdNfr zH5<6Tdk-(N`rd%`jrLxAyl{v~`jB65*~qz|o_&%0F-F|;<;1`@0XhCv9S(>$ zT_%_b`L#rn|BH{okE7C^5q<>V3ok?QV%vlxGLl-Q3R=V#v?m1X#ZN9#pXgTmTwz;` zJJlXbnb*vSxI5ZQloq?xnY~|pOj$AYv%JRqJh>hCgTi;THl8eE75CO3iBU=+) z@BM;SXVu8r`24({E~og~-L6-%LxoN~NoG}O82hPAw;OI-{uP;haRSVxCfci7?9O#I z=dXpP8)ZI1ZXEhfQ*$k|>>$61ME@R)=%4-O9wm&zixYE2YE5PuDr~rko#2a&t+2S8 zR`mV#cB~3UbG&oNOSfBnX2LOEhZeWrtbT18gkrTCd!cf&=g57fiC({Xd2Tw`*|f4e z1uuG2M}uLop*T`mFb8HTEr^#|F!SI16L`^1myZ+#llos9(ybIt7{H!tet95JhV zWQ})qxwcU+>WHuWGyEn0%wHlBun}YAbCTV*%LyAP4w2)*5}+hZN8)jOI#=`PaOl~d z?$m{t%A$ETZ&++g{))g==u&R&62q1;gaV#HUdIF5Zm2tQ0E%CkG20F)nLYxn+v&fP zRR829(4p*;xvumG&qjNM@F-gk@yA(k6ZBUbwhtz1$kkKV>3*;&3Y%ZN%GLQj@}-fd zru6;w`(qF0B%2?*!b?%sJOFqxVy+uQ>UYgsc&;xwyrY#m1e0M@+R;i1wuLHWM#j>& zQg3Ln=GxDVWQy+d7QlscK z{3J0(a#Y?vjlSCK#XWhRxKj5Y1R*q^TQyQg$VXS#m^#0H%YAjKX+bwwoaTLQHS zHm?Rol4H!<%4j82)}HK{wDGQ&It!{Z3ReJ0AdZi&h9|%OY%~@2VIt=gm-2jmI`;_= z)3tHj(9X?_serF!*Y?OUHs3Y0Ej^k#q*Zs*Snmxyf8jtfp#pOPvL*otb9 zZC8CI0Gwt+NbEN~xw?ha!(O3ekMnIib4{dx#XD7cJ#f%e;*xlQrkBT;MxpfWz-8tw zNlk)vQg_m{%c}U!lYeMzMJ?Y*rqaE@abf6f23ZCDcJ;9nW2rdrq^onLBxQ(<=kMGY zj>Fvt+!4Qb?pUJpo*bTZg(T;K*4d1rMv?c~#;Uq&Qz2tY3R~4&auc!WJ$Sc8r}B#M z)NRlhd+3;(63YEVjzLqzT?zI4s+@FKOrcCNs_KV)t9^gy$BnJeoAA$@?rUOh@wX-f zCu=D$r1z#STMgw24xJ&DWkD<4-fP|e`25Sg1Z#?0#6k0S6PmMa-KAFv5zguTo`Lr4P6h+j`se6N5Du*95A|?I$1H z-gH3X?ISTi)uNQb5^ypQm>IT);8}t@2#?p=o1sD4(Yz&4fGW0O(Z$?A;ajHv028aK~-8 zwCMHs+x1Z)-#5u|D(qWj>Ak|bYFy|49$3dP^F48S;B?naw6)AgM6V>=WOs##Ss9{- zY`OZR$HhyL#-_7I-FXbZrgR&cnjND*XE!d7tFEbiu54~)9T3Uoo#CoqX;i+_Gb+sp z32-Cy{jicP8K3QUV)yco=rTRT8PKm}=9V~N7e3f)(m6ausiBMx z>%=U8)6gH7;s-CXGqUVELG!bCc7f^!sodv{yGNn#mF9cMplpHI**f z(bWI7>}VX}9vaQb6Pdb1HMZdV#V-urOQBWr_p(v5e6#a4k^pG{?2*r9HOeaQJ_Wgy z4J15evCWb?uv~AGnA=Mh(a5ArxS>?B#tZ17@w%Y8F9mre#hA*`&PJx(!aK(DiQ%>h z!mJoZ#&8CCH#xUtHIU8Ce(97ue((%12T=dvuTONDlML%s#FdFT& zEtcrlfAzTWnV3Q;0O?Fk1(|=DBY;l3`-dBIoHZ-|*7}9GL2&fe{nEVQKoe#x zOH?X#ZF}qALHqdPt?i$AES0%cpgfAyO*)2=!AIvc6*gMa8K-77P3{OPX(EF5bXvw+ z5>UR0H}=pifBNgF;v^nET=knSH6uHA4uG_Q#Pia z@=TZS)cgO{yUE`@-&2r|R;^6R1cPx*mC?MXPDI<@T>^K6XZDSm*L5N_3+Kf+|J<{v zj@v;$Z!WcaUH=*Uv+kYCVvGzuS#J`P;y-fWtoH`8h^C%?Pg8n+(PbGr#!L6xcHIZQ z6Yxca;JiFF6E*r^HS=)v4q}j`c{X5}#|$9L5AZkF0(BK@K*iY3zwedZ&u*8LXT-UW zI--hZ;0nr`a1iL_{(d^+&%3wjhIhQi-TUw=fX_4WB2-v^yE0hzo8R=9yHDcSu@{-$ zoHyVwwc1VSjTc35JK_8|J^kx2;SMx?`A1vaSZ$r0XmlXandZCupJGSu*tD@TZwDQm zp;vzY#)Cal$Y@$9IF7tnG@c)|c1Ui<#_&POAboSoNyLGYs3LYrsvx=d*%hN24o{@>YD;x zkd^nRAcfQRgyGn`{9*){1_Am*3Si2L2{B1-o6B$Ioa28srWlCwy>2&r4Y@D$FC-zf zqTW>e1)+doVa1%2V6wlHU{?S0$EN8y*gZh9&Sn$?->)~|2vHR@yU6x4r>z6jvQLhp zSwJlKp88_(i{ZOLVi#Z3K&8fACh&v6kN>o%XPSz@*s42jK#|G;tU4~oRou9;7;4Sg zd{|Vx+vC0|Ha`#my!10ckVxjY#nh8u#14ixkREsGa>WrC4BsvXdWXBs>Gj-g>Lr(3 zx?jAH8sHs%RatULFt0xl(G`j3Od-hd#S;6B#V$^3z~YU8-XnO(FonWk5ult&g?2G> zDIM+pUE-Sk1OaLN30R-)hYpeWeDBqJi~jyOcdYqm&vG7#j-jz#@bVSa6Kv9QFoyN4 zP42c)t!IZioQz)#zDyZg9Pc|~eA4c6oWQAuD$!Et`=&WT6}{;GkzbxIXZy`|AC($aC$4@0C(DpQjaj5%|#1vxT@= z^{T(y1UIS|PAu{})j;{=6~%<*J#*|Hgp$u3DNu*CiZ5Q*S8XEQ=&uZNt*F-?Sqs|H zo3NmUX?G3Ws+CGTAeYjJD?dyrBjdkvW37*Ov*TDBYg#!XA9o@Z_RG%eTmy!-WsU6z z9CO3x_}l8lFnJZf2kt_OTy*JK8`$`M7ivHgsG(0JG|rz~0LOzD>D=+*nkmzWM|506 zfs;^@(C6pvuVte+$j@3(Z68x?_{@*8q}gqMACMvONg@g3YFw0lM(BUs0}sKXzI2x;$EAAz7RFC+Z_r_p2r1d3Cvr#P5p@ z>lpmzGfSVQn$L5ajBXUZ^GSoapRU#keUYxdnqzB^OY6^J#kC`k2I`Nji}TRRaZ&~& zt530R*$B?oz#hMt+w4H7xyN=}_1977_jF>yn|`_4)qwsMdbSR<_9AV<67o#|{Qd;S zwTO6ZM5?eap_fE>lbE%nQWiebL;0-gKU*SMvB4qS%EL#C|Ea*4S9h;X8u%POl|X7p zSfu%;F1s{%!k;6Y8ZSV`E$o96|CC^0hc;!_y7jPUj^4Ox5>d{~zit&U-UMpoEA$qZ~Dw|Q7&nOaK((=cEb$3CvayB{q@ zw_sWQF`00OFX z>|?i_PIyx{$u(k7c2uIGgLNnaQ_Xj4AER|ZC`_OyF^}YLtG2O>)sEjID-py0$JBd9 zHPw9Y-zo~yL6lxZ1f+}fuA=mg^d=ppNeLZ}f`W7b=_M2?N|W9b5D1;ndvBq4l0ZW8 z@V$S}i~pOfm6d(w%*;9`vuD=6uFr7k!Uls6Z67xJ_#nEWJAec|Jv=|D<_j?tMi?dV zNp9S}KirOmok8n$7cKv#5F2bimHXGmVO{Ti1ka`h(Nt*1;wk~SH_S!{j{8|y9 za*cWcsWPCv9<7ePa6C=9M(Yb-ob5*s^Z_DW!xO)br2_iJeh(i|H$@IQF4CsKU(|1^ zEEFNSzL87mU84RCKkUq!kd2O;Y&9?3Ppwu@B7$$i>w81o)=`vB0b1Bw^(IpRqz&8x z&DUv8q_}c>u?EAsR988pI?A#4E#8^mjJSia*Y$P8Nx^+hJP^c6!X@7$zRcpCoBFf( zw{_*z$Y;#GJn3{;*1SJP^$rPD)Q3-OobM0OGT;gJ6F3lsGtW;g!mab=Dh8I=;Yp!* z59PYCs`awTE-|gr1?M|W17@2Ie!qe*@kiubl}A2v(+MQeo^;gBbV;r+<7~?XB&`U} zVTu9<)2^-39>Z-7pO!CgZNbUVuYgk-3G1o~r{H4AwXcfQ)k?yGL?H$>$XM8>4wHV@ z098-SfUXDG3^UzcHyZ7Ea-zJxrTHPvH`;DSAuFstbnb~{lY@({@sT#og>@BvXeLTVW#5D7M1(d$EbHwS zvt7x*L9@U|8yXvHAH@Wjedl`3l{1eO7Ti_J#y(^pti(`HmfGr7Ua82vmQ}q*v{Rad z2b^%{bX?~Q?MxNX&O0~I)Bxr!_bhY*syvtEQY`m5PO-QTeBJ|&yfu>A49 zxr1!GgX8Q9%N8-LivQw=b-+FaO|V6R-?2?KMOQvevl8+7@Zg5hV1k{s3B`X3#arCP z`?g5od}q3={DLLhum^B7Otfk*iaQ;AXj6u_l>#1-~jvN9pEUb-B=^{{NsYP%yzP+tH8 zQh-}ol~5c>*Jb-o56x%xpLv2Rog#n8M|eJ^6!$+Jb|lWCo)0XY#4tM^0T+@zFZ#~f z>gD=0!@L|1h~F1|%4ymt`6kj$yBk`&7Mm|JmlXJ2HvaLcx$=G=(c(hR#4K95ri<;S z^rkZSB%T)c(5vKz;Nh4J!&`>pXYb-M_W>M!X6OV8hbaiD|5w;F&=L0k#6ja$@J2Ur z#5gt|FYHmnN&Nqkshff+%B!v$%*P?+)zkl*qZ_OVRP)$M?HFHtL($MXq` z;zY;a%sWTmiNXyr<;+(uK1)pK{>o85>fJK!@kUG0ywLr$%oEh&|3DpVlNetZ-v2`G z7ZcOR<8);8mRBX-c=V&Wxa1!B%w?7H|utDc)z-pH~3u`)Db( zL%Oe^;mvUH64cvbDeS3y;Ff}57(ezJ^nDL?lgmiVTm6=sS=pu{0v?gA$Ho@1Wt zEs-MJ?$fnDl6WFh1di@E`|tv(RrPkJ{U!M#_QYJEHT2sUK$?2Ov zE?Ue{FO17&%%oPnJe1CeMh11N`@Q0|dUt5*_R!n5^G%yp7iakhF@|ERKX^6JrA1xc6-XdghddHNkdSJQ~)Bpva_vrM-4w_=_x~!k(s? zIHKXHO}Sa=SN98t{GA_pt7ci1N8lgyO>0AUgAhJl--(HxC|y7Mlv8s{6@M<~IdO0+ zf2j& z$O3%226dFJ5^K{t);}=;E=gH7&u_CbLS2D&cab1cnvgg~sMQ(6wlHY^&l@s4AyjCa zfQWPGV0azCk)JX(nY!N0;4=KJgDw)i^xS*$hE z-G*FXqPriCXDfV_a8LT-I|=-GCjY@0HV^?Ejq@=SBDfl>fB!mcponyi7tp zb~k0&&1(7IyvRYESzUWtQmgyR*@5F_*u%7U`#l4|-U=tGR^;ekO5qO2%|(i4qKow* z&dG_&=!5JN)$D+^B*R2u+k273@;e!49s)!_9}sa_UX@X9ASvF?V0#FIuTyS-cV-yV@agP*;YEsz#_LMOvueJ9(zO$<+IDX@|*$sjRe)t8C^uBp94>YmK z`D7mANm!Mm%GQ_IWW*g@R7cPR8jZ#EV8bE z(?aGp<{y&H>h}(8t@MFFvHMi;okdY~w4Mk@W}Vd|-0_E-v0?Y4-aI{Si+#_}gIu^W zKI(00pQjQ*(2^mN;LSI91rVIH>vD5nDHr!xb#wUaZ??j~N( zp7|5Z-YTQ4dT3N|y|@M8*`oJ)3J6Kp2+^Gnpc9z*S&Et+cQ&?*f3OPM=-C`#HEo#N zw$&<-9Hdb zH2)F%l&Gn8*^ld3R?6yD$P|YS-c`kEK2;u9G+s#odNual{`)FD%MTFuR{-pvNjr=}{^ zer`5y3i-Uv*#5kXQi{Tpg9+JRzkPdWeJHj#y1+MP|C?lmR4ymRYxBX~XED23MJw*^ z8yP1<`NlA0v;3f*WxQbxKzd&RQ+P7uDZP_YhZA@ZqfP;5IT%>8eC?m^U z{+!0>0aG+Lw?pe(E{07C@=9KYy~-hk0Ckd4r43|j_I#|j#gBw&ZTc{qbse1&G(9tS zUhM0vL8PDzGlM9?;<%oZG^P<5&oD`PXw~(~9?2?A6|!;!T&JCMzGGq=4$pC)QtCtu zIIe0;GYUKSS;%Su-kDyEdY`@0$~jaWdxB}#tbfT%uqNA%Is3mwlSc>1DLu*~=X-2V zck;!P7;lsXjZw=)np%?0D+{0Uw+Dn9A0%C{9^WYHf@C+CSXih=Mwuh`cE0xbe`S+W z^%&!Qz&%N{_Ozg&AfR$gSjTTsjfQf_iU$-|YrPWj8=2${U|``q&2qzz=C0=#F7DmG5^Yao?Qen#u~$xM&)^9U6@U#+X5>of8rcx`e~ilIO7q*9;$!pPWa zxnGec(eKJM;CM^H8K?&yi1^GBNB)5&v^`%*r0Y}@z>S|8=ORJ9y@CE_mY>+QU+f*j``z6x@mKYwlHZKo)A3Vx^s zW+>*>*uJ0Vbw68uyX2StCgK+UM;B3sVO6{3VGHvV0I|6ne63Be2`~4&yQ%%tqRbaG zOIaJ?`2{IQY8OZuwQ)2KZIGxmmWN7Eo(H+-T>UZdvUJB{UIzpaZLwqas%NUkn9QQC z?yGxvSj;Hf?0xxQvnQV&SH7p}(l$|zNpZbC3wsflp1%VN=M!L3bLBg?pYl!dl!0_t zPdlXog;|pP3w=kxtfSdm^MiF?m9&^Y_c-AXDmamj0+Gdi!G8sw5oJ+S3Ri*N%*hQF zpAeh|SN42c?7WCkAU2z}fYy+=Oj%xhwhQ0-O+7l%!ry(- z*tP}ooN~5QSLF|>{i<>XZZ86Sq!2Of5fDm-#Hat!=iVUwPlL@Pw2@lRNA z+B0Zy;>FUgj2O=Kl2qWP6yE);xqhrXBOFBH7k+wkT(@^0M@NmFPHLMxu!x1u6a%M0 z(%9*FbgIKmUR!a@=5;nii*vo}RpOjs?^GvI7<+tkkv0`phzl)|AcoRzVZ>W`w<3P^ z!GKTy>l_Kb2<2e>Kka~<*22hNsQOKci}^Z5gT2`7`({Xbr{8-n!su7%-l8Fl3(|Cb?f zh2rChaoRN4cwb6P679`VD&KwFCeJa7U^(zini+tzuOFHGuV+(4!(%}G{Tt_o$mowh z3|n)9P7)D433MOX*aM@EZDd!w9sZH}$U}U$)i>VqcVY|MxSw~eEeyw zfASQ!kUmm`Zo`+j*OO*5ZM^2G!1Ct!ONSH~#>fXg1UHtom;)wH{h#B!FXGZGuh!EV z=uP+HiV9tHu2Nb?&y4kWW%68-|Cs$Cpr2Q-S@@7>^o-=UjBv6{_rBV@P9D_d!_rrQ z{accCZvOl7*}~X|1NO4^sBtB;PRgC_SRXc-D$7ldPY2sq0oMn`%*C&^oRc9r<&sO4 zPb7qGTy%IV%H#kIW4Ru$Mj5MCNvIn==**!#BKnqMSp|FW(?$mGvnPd_n*K`)4{c+< zkY5QmrMf+_Ol}t=?Q2Zx0+IR*>BNB7%a`pj8vDTw)yu@Z$i_^Y6F&ikW{auY_g)rG zp3PWUPDceP<$RE!&}n{MM;B`l>So??yps5&?)R59ub5T9=l9&ZjdWNTVt_m1`1Abc z8D&Vv+;%PLMn>16L!(0X%(DgyHxx7Fu}r>bTn)1O_ZwS_t~q}?z2QeE;SgWre%;Ce zFAbJx9loWXu^FhaYsmyt&NuhtE<;|0=-a$eE1v~Ts`khAmxd3U#7#6w@0m~}jO`h0Clp z&GErwhweP)pHagybpNuvynKd8z0RERx{LVN`Z=i88R~w#e-$r0@-pWLol7bFIqZ+5 zYca#wkj#RI^EtC^`$Xp!kFs#?zPY7i*XO>=O%XAGH-h^@%<E}FW(Tn$*#^~?M|QSfH(ZB{IqyM*a7DQIz2erjm2XSdp4zae_k z3r)UDx*|U!{5IOEAfWaRi}#Fz+J_)e!Hg7e$5h#QD5TxcaZ?8)0{UYyO+OLITQE+O zYajYiXt&`Ow9+ADVDl|D#WOi@Y>tYp!~K<9jhBYRuXS@^JlLZEYM$DZ<9Xd(l`lHQ z%FL%t6WyYwX2j2u$Tkc$M+ zdQVq4HTiX)+jUnix}n8lkb4vvdae}RQSr~>+@Q<6PU)7bYm$Z4x@&d)mdISJs+nRI z@-tWKt+{wrKq*KKn;u`v>imYuC?7Qw3?6M(B5`dq4o)g#NJL_Cs@+}j^+op&EIb)Y zWA97~)}8sm?9mBSJ-@FTPuxEeNPGp@>RuI=*!fw{v*>OR1b8u(inZn656Rt!^d1-3 z+{M0>nLrDRBFg3C*cJ|@SX)W1Np>7^mpL*%+2%Tx+8BT^coow@xWswu z(6+Au-t3f#8&Y{Fbn8k{(aU_amK9nfrm;Rp$*c?=D4kb$E;^UGsM!^bwgT+(?m1GO zNa-Z*KPr6*q72@x=qmI4rpllzxHpr!-q3s0e!|zQ)f1*^s8jw7b*pM|zH7@M#)sj+ z#U_vgWKwoIfnh@(oVLv1NHjmjK3*{_Q|%`Cg3O$lRq`8dcVGa&!oPsb4!7B4ZZQX8KMb-1XOwz#2%4lM1oqxH_5oZrQ&*Kp!ksP)Sd$eEq=h_j9q1E4zml zR0=kYj27y&<;$s%NxSg6)2qgRb1!mrUiXLu#PiM$SJ76AP4(xXTPx`54jwqikBjx# zELxruNH6yNMMhJ%sXWVWO&iL4u^*iE{k_0iDQxb7#)`uF0FA`&b{Yee^#W3t4pwGb zV;6GV7`p|>kdV%<)Gw@$V?;$)k$f@rGqR9tD8n^4_?2zkN5#}EEakUx&F8~R;jA{s z^1q(zDU^QLj~9*8UoLRED1%Mh=pHWQI>RkJPeJ*@^Wrejxq*Bt1<*C8s2b;h(yn{Xg(L0z zbA!SEZ2Vb@_tHKpSk-y)!%misjLmKzfXD**-X#7_wQ2a=Jo(20({|;5Ku0uEW0)-= zrn-K^M#8PDz3Ss+`=6xdC0(Ur^}qb=d1GB+%S1vM(DuQ4Wh8g zrDFdNAeJH>P|@|5-z^^_oM~2sY*cwWCI6@^zy5idt!RG)?#cPvhQHVqhdROsh@qj6 z77uJpecMhU9S!^SUiJw;g?Uc}l2$LPkhKc>m#^ZOfDpe}?S}+Wmmgm&$(!)M@W~wb zB$IV_I%!qfF^J1GLOLX#)`W|ep(T0Rx8$;v;2n$8V7{I_ZLj!y`Ke^;mRLT2^AacR zK9Tna3vQ!^b&JD?JH)dGAUUaO8rSiZrNv@Yx@hocOPEWw^V+LpcZxC74SR0Pj{Mm4 z#lA4I35c0Jh?Kex?x+ITF|8E1xcUWZMc;Z>E;eU|ntA&u@oNrIn=YvXna%6z3}cO1 zzBQ3Pv5~%!kJ-nJ%1rukk4)B|1#`(mW9R()(QkHXPSVS?IRj_N^8e+ziEGLR}Xx&&t_0h8nyKefc_L%6-860QY3>G#&T>4}-6lJSq~lK@y>>v%(qp1c1APLnte#mTS*+_ zkjx5fkTD{IGZy#>%i)<5nVJ1CK6zSdbFX)gac=Tmh-doCI^fq_=>#ao&t*P1{7We? z(W-A5xHkM)AWH?KT-5ep&i+u2BZcV8N7S1H%57)9GkeIprr9WfapSGgk*(!ezupgq&(?Vg0c*fn;)-*0V0*9yNjDcPLo7uDY^7pYT-W23;Nw zKFm-22ZSj{CDpZkUID7}bKxU`ETZecc++#%0p*R=My_CKlSQgxmd6?kF<82r`C)lW z8ZKsRwF0V<`(pOg2Tf1ptm`jwu3i5d^qn5M3>$V)8$ioVJ(m0sDTFItP)L_lqi8gi zUAhe$gzSP<*>ny^Wtoo~c?F$gjayabPWnI3pV%3S_-W_PE9CqAXvKy6c&G*ZYIAa< z*g!uU7`oOG|lOKY5_tE*bI6@O(F`rw{TMncI9V{I?@a6vFJ-J`(0kG?S)B+wtsj z_niK8^7edocl-oVVF^nx1;L59 zD*1z~JFS{D;#f}#D&a^hA-u!Z)A2bydQF7hF zdZGgRYxDZDFfkGm;4Z~lYU1g^Gi@7e%!bif*1UWa$QgUpe^hX2BLLXqvbp|(d)niF zH1i$DP#oX?B*gcRs+}Ul=gy&3dllEN$bz%Ys1%Je?wO}R)m=U&=eN*~oTIx}{*jub zJIw;U_l3sd*1IP!@JKpjUte1_D4X9_dGymG9W36c$Htp>e1KtXr;xq$X}HvMoh9U6S@6HT9RvhMv)8} zPEY8X)<^aOFLMSS;8l`tK(=(gm#BViB8-+|Pt&jAm#RTp^m(^3qB z+UEvdTrg4h^iR5XI7ZMb30w+p`%_@|=`uRvShvlTL0>d4^ZGaKIGlazKf5h!qwJRu zmD?s`mtgrf@O*$W*t^e4&ux43-cTMU2s@JYvXW^j(c%nJ+f%>ba5}vg_!s}u2U#xg z()V*P`H1fchLGD9LPJod@ehEgbnwY`{F2e@gp42}PVdyVC?}}e*lEk<^hyUPiktibyXEez!qs|Rpo8ZP zgMTL^U?}Gy8bnJjNrHm;MO0@2ug`N$BZIRLmKBtMD7tKZ?>Jrn`}qJp=-c{71#1GI z4cg>0jG+RQG^Wt9LFX_kd7=08(cbehZvWuwNzpg|woussx)mhte_vk~ncXiIq!k1L8#bQxaa1LL%*m-E>l7{HkDL=&k<#4^E)|z`AYrzt`lA-@j znkQH7a!N}UCYqQgTI~;_7yS3)P>zh_ktT$-&T^hMBDqgC)p6y4hItcdf;gQlCuQ2D0jj4Go42_&RW9TM=ASk z%S%~S3ZLk9wyurpHZDSb$=hhk5?2=g;&@Pz^w?ZgItT2jSM}8CD_^3e+Shdj0=xMz z2iK^!6pSoO;T}RmgK3_x#A0`Abg-!m`uOMf(YnW${YZpbx#sP~OW{&sXuwZURt4~n zAoXUMe~Fnk{=0iPplJMj(4~%Gj&M5sLoC~zTbu5b$Hz=|g;g_`gB7iMpTDwM>hd&u zk{*Y-z<5IE(4{kE^5v1(#3S#E9XSGbPNHQo!I3o+j`f>Oh8$md3`906#wkZKG)70z zR7pSa_m3Du;U*33qWh_0HyY~fNl$>qTt=KBl0`#l+2O^m{fj@6XD?pk9UmnnAX*Go zHl^t+Cr|w#KV<_t9aVzu$;8*=A5;GPlG1a!4{0-J)lVZk{8m4_>ZZ6S{f|dOyrAEf zJE_N2gH>C^|6R_#%r6QDbN#@)OpPKAvVtCXGvJqLRfv@)nm)V#BSr`G=dA*8Z02U` zECP{^3hJK-{QWaXhf7J`y*7NKCacemy_URU(QSKW2FWkiX(#q4C?Guu(z#I+-B-Lj zI8aPR?;X6^c`Wk}N(oPT-7L_Mz3=4jbMNF9;Cyh>^La_h8x<^rtZ+`2MIWm>BkPA| za@uTky_SNvRdXBcYbYf)=OI8-I1E2$t9hwk%6jY49S*53;=v!nS!b9;-Qb69`JDJ( z?S{_l^4U6tkNv(A$ab_@O=UY466gboI4A>$v3Ja ztUJUCwlm^*k|*jUOv@{-$6<2p7PeO)`ngbBYty~rBIU`t;`9muyXF+zX7R(py$nhM zeuQ+l_d#br<#t29Wm(hepSHd521lbs;(!g#cDPzQpBS~g#B*x8NP1kMdmMj{xt~Hb zLva)MUjK0K$rq%vq92di*}@Nw zZz>#*9pjVzttd~xC#}SD(h;4tDYI#pU|TFS>;%sM!|!TK;=#mcc<15)V5M*sU$OKY z&j80e7`fjrx1W-dRl*%PV6D2)(1;W07R@kT&KhSG*o+01C!NuFKd1y>7XUj0jnEd> z4Z;TTj`Vow02-Qlg3r>vgXd1&!rwFp4avYN=Q!hxEM?`o@I4IhbvkXK-2dX`V(`E} z^l}dxIONX42d{crImZ42w5Ruft|*)??5EcRXnn^g#~@Iz%p9HL^BjH7?f$#24T!<} zn&MjgVfZt~;r^z|*%XEv!s5B*hKjm~sZQK#RH@^T2I|MMCIXTV-{>hkav2Uzeu44l zN$)t4>EAM$eNv}D{D|)SCsygt^((1##;>SD(!R3fz7I+R2Q{I#DQ*LO%c2FFg3a+4 zui%|$BI7b-ETV_KA1y{+#L?w+00vZ~^$7RAmXlujH9euVGUVrMaGIm=qU^w?bDJdR z>);VW*=$tvK*g8%i<%lbxZ~c_;WblK!dh8#T-?;^?W%gb`6uQ)IvKFI9XfN^Uz(n zROeSd4Sef4!;oAW%_kMZ#uGsj;LXTJn^S?b*3HH$z8?PsXOalNT6Yippd!My)_<=P8=j8#nz#A z+1+)>7WEc7q>b5^kE0o{pLKVo1#7-JB()#l$s2yt(qj4R!t^TmW*Y{mO{isF*G|mF z{0yXx`}I5JISd*0sch&m*VBi%T*tq8c({s@a8F|9HQi@|wx2@4hUk&kcqFES_Lscx zL|Iy$n_uzh0jP7#rvzB1FkP1rLVImP!`9y1Vl#mJ$bB%r7fbUJ|ASzA)sViJY-XzYN%xs5N^??an?b})8UlLb%KD?GR8oV_Mm0>Fp^!%%PJp# zgfV&ZydX`;X{qm6S$oH{d_!15;oIyGR!Bj%)Ky7nmgI=0Ab^C{sIv`;Z8UG-a8*6X z+(@D*j?sb*ik-yG@x95PV9dN;^*6r$Fx;s_S*KM|HcLC!C#69N7}vxuWoIarjRwR7 z!(LE6zXHA%29_-yzH>{;$S?{{ zuzHr}kZLR;JXI5y&`?C^xD(ATj~|T$?wKcJ0drliyMIMBY%O9A!_K2J9KRsov+~r8 z7>(V4sgcS~6o^7WQ!?*E+2)ck#_^tL1?QuJG9oXs3ht=-meGtor@+ipxDGM~NipS| z9$Xf1Tnf9e32?ya)@IOa3mI(lS$^xGGVD=e z=~CULgqVJR)JlEuQh3p}ww@R={jw3Mwu_beDCbdLB0fDvxL=nmr4Rb?d5^J%%hCLE zVB@<|+^ICd^y$s9g0Osv;lW$iEuER^OW21iX(#SEhoUylYHR%bT%WhodTo6Yz%v-4 z6zk7wcQkh-Vuj!yoKE+w4`%tf{E!10N{KDkpOHaRstp3X56d@oKjOk|#y+iJhR!uH#~o_%*15pS2C;eIfsvwd4GVBG;HtlDe|3Dh5HoG@80 z@3^#aldi?G;s~9OGK!5ksOB(0Ci3#FT#1N}1>dmlv|udzJWb)n#;3Mzy8zGN$TrI! z5vw7l4kN|Ik$|zFS0EK_)0LY|$!4^-nO1)r)V4M61UKj%XY)nHm*Oa2vS%0OkqCkC zK(A)}cEfI@e$QfsA8|LQ+S}b6`7^Rfl#ikeBCo{`lLFqH{N-?Q@8bZbD81tUws8VA zulzKohku1+A7V`jYHe|j%j!XJn5l=L_1GnEk%+1Vm`;Uf;*LSlTw%rTo++cx3!S9x z<~IwBXp^BS%V4jca%KdN==kddA71G1?FxC)C^pXxde;eAC^kpP8;XqgITV%NtYjJK zTH?M_U)v*V(T&jEI;aWY8w=C-stws#G%shY;RHs_K;CSq_U*m2m#8|6 z4}pDYa@Ct|&vBmDGV7keYccSMbZj{!3b4(3_B_DNwc`3zh0vHh=gX zbAtr?vv&6=hEPrWr2vo2D;YsuZ&=cNw_3)j;`C|8_z{q5i2acAy8|McQR9hep z;f?yx#QhR;D`f|Dz!|b=S*`3{`L{4FX-<8YBk^SR{R)9q9MLsr2yJSWoM-$q^w&VU z3Z@mNw~#r4YryI;QvY|`3UDE2W^t{Y?R;DIkv8dN$Fd7?W9nD%@BJ@9=~g1KXU^Ii z>$iP15ZJlsv+cMs>l%m0+O~2nZ1A;Da6JROn<1!jjJ)Tm`3zAH!GgE?vR+9v(Z%78 z*Y?>CYD?%K);3rCZ7qa7y61GwaIhMi=IjrNW-sXV02Keg&#(`V)XcK>+8UGV`DIo) z6F=~!pO!ylOO5MJhqo=(Cf~ncQnZ*#CBKgLizDGx8r0Ni_|p>7Mx!-ytTOes?H1@4|4GPL6I zs;%@Mn6uvCY(M9#LChVmPhNjW)tRQe<`m>)=&S5?dL`Pm+a2G&t)X@^w(7awkbaA0Qd~zzi-dVlBQPUMtWZd@!)7Dk-p&D3C(nKUH<^ zAMR55w3_i9#asXI>!_O2dv1A4+s82WlBBmW!K~ALGGxX(WSj`gXTMDuU09>x<^|3PQp${e@-Z2V5&Bv{uBMF+)BXaL_*#{*?|Pv(LJ-q#NKwbCrmJr zK3`XSkfb~jk~xcBnhYeh{{bck`-_Ob%yH*zS2FeCx9(o6NInkQ;<8zQMOPSz>Gi&O<+SW=w()LQrSnqM(IHyjO7u)MX)ay+ z4rKZ=MmHfSd~3&%S2=G<_c&j=V_9)CO?)Vu2X{~YnzN6)?airbn2a>on`^A#ITOz6 z1?roo8v^pYy=j=n+-?PL5_%@p3RGUDg?9+)i0aomiGfj1I`Bhw zs=w$*KzQ{TE>Zf!%IdKb2$ko-m=nM=Z7nkj&ouBOj#F;DDqc-9`8s?IU?$=~aw66u zb;GyUm2BG#>#w5tTdfYFmFM-egZ>6QuvJ@XXJotB;0LFAvp5}D6@m$IGa(&DH$LPg zO%C}2t)mRrq9Y{rb2JC{{o@AqUOKNB9McrVutj{j2u+vuX?b^g98)&!s4HJww;fD5 zwH46Ft#=qf=3Mw19J5LfFvV0q=Z`7$o`?BP9wcqY?}#T|$Nemf!A*sDL5`{or*K?P z<*NH0^v1^(7BNr=_CA>h4^EOqI;Q+ns0I-QUF)+`evS%wxuwGbxG-`j?_&Rju}3n zkDR90PeA=#%3Fi%lvd~LUT{^Ty`lgi_f~hS)8_3PFLgws`2 z4q>lvX$y}r1E4A=KK&2i_P`ue`r|IDzF4k>fC#bf4zHkxtO6%uf z)}o)mQ>D@BQPBX3tJ_a-jU?BE#vEnudxyj)EqGSS7f^Dd%2(ty)ZsyQX26gA4W8L{ z(pfV6<0~Gfy^P>^9>VocXWAY8Z^tes1^&)1$4nJ``gSa#8CV=Sa{M7TgilHE-F`6F zId~Bg+-l`0zil4N32(Vwe#@Y#%l*@6)SolAeS$gG03wyLx9@#k4v4cTTATHY&uO1( z_-ScuN>TJmhv@mfx1{}Ox5$gS+uodF1`@FL`K!_9>lM@}IS)&^S`*^2nx6`a47Iou zXeYatP6PNYc>@#rPuwP?`No^fb~6w?r;==5!8GevTn>G5y?JcXPtEDd=9iV`LfuJ) zg`_1Hv$vBgT3I^53(2S+Km6mRqbE0_v#{~&WB*G@2wR+E^>T-Kq~x-3ZQxnGWM+|& zyKj$V5x8CVywiW%v8&!H$67#JZOpjO_(_i`>xiaw9MC#EqVGt<;w?U^X*F#TCPhn+ zy4c=(joya=v{HiN9B9Q&(CbPT>c6KEP}b{sCmN~>47YH|iN@EScO)#nKI?UN1T&OQ zfAx`F^mOOk6Uw@+clN8o1NPjBrrhgOa+Qac)V6f?tVhfx8zy&(c=%O0QC3)2vAoI_ z(CdfE1UGatH_2>b&c!3n z;gu8WEqT!$^9FtTxyw**wiL4U5b*i@cSR8N$MQS+h%FBC<`Y~+nSz>ylK=X-l*YzE z6xr#N=B}<0#3q&bl<-B-8R4|@DWR#u);puzav=P2(vc70B{drv_~S7BN+>AibA%99 z3YNbjLQu8_cZ_Tu;%T+Kx-UXa(esq<+wqMntaLt^(+Lk|wGCu2wMu(QRM7603#lv}?oxx{nYA19@y zMgVEPRl_xN(S4>FigxgqL^sIo!UMR0E#2-%ncYPeEca3ZC3<%wXcbD4!!js^J)!tUrzv z8x#88=VP5FLURy#0`Ux~`m7#I0$}d-kSyxjZjic6aFPM20&4)q%!J4jJs~Z!PaA)C z`7yK1U`V`}`0CY8)FM-=lBbJlNPIj*v%U4`GFIKJU2R&&cqhvF(Abm&^O_3cN1W=B zClN=(a>w(-u+Q%7{p4cgFKD)h#UA?(U6?uRlNSLkW$fhjNS`Jjk`<#`z}yr;Wg^>S z?v4(w?GUi*9tCW$M6BGcKvr*8#=3fA88emlsT)F+#?~#^TX<||j>z#Yom_pRH$m|p zIb4&p!Z?J<^2SBG_VZz9g9nA^u%>@vixKfagN-Gbr@LELciYn*i%`xWU3aORyJaNl zv()`x6WJdvDuiQ-eC(2dNTWfi;hlr5^}A9!FRHeRWXRKJH2v^PnTIa7`K0tdm3q05 z+r_!^q^}1h4_0N*k9uY42E384%s_)jwXg)kk8qVue&4>__y!}UEnD;Nl{rm0V4<&% z@qD59>H9eN-Ub>N>cS8Dtg(HnxFKKfl#*es6hDO=?v$FgM>znlFnsBaT!;z_)jGyY zWHaL{GtuD5|7%&hwF%aam%58shBOuZ|1B#W(-v-H_Fw@_COIuX z3eck!UVRF2yS^59|5oJQeEETPNcR8g=Kx&{iW@*(_kBiq`^Z8+tVyw+j6(TxQY-8L z_??{F0Ouz6o%XXFxpgWyMp>Nbv!aut)x+?>3HlqPoQYEK1Gq1VEQj0j6GZm)@x;2+ zBBKJ-emCh2t!#q<_}1{l9KMub`<3)H+N=D(`LUs9licnPLLkw{XY+5sSPSlHZud;I zcK!c&Ip6Sg^9mBj+BbL^UE|TRAv6F)uRs%5@GPNtHjpP4YP+WJzrhPW!tKSgiv7QV znJf6|yZECASnzV+3BDo{?=5o!)_I3U5rsIdfY%n7(AK2?*JQ*BAk~3qBgRF`Na65K zYf$x@NJ%5Kkf4Ig$}+d45Rbyb9Yay)n==zm0B!XONy#>aZcvk!!d}$gp$)plmG#~`!0gg6)@WaU)~X%la^2GIcnNdwF&*CO zZ6vG#vOO^(G-NgvZ+z`%#qM%N988>BzG5l|~deDewSp zTN$|mZrSulJpqo08y$BKvAcKdakx72XGv3rUtAO83ef>mE8_{d=%TtIlsZeodEi?h zOmn66B)nB#$`~`Wci+fBlS1v(iZYIJQRDrlg44|+x0jg+BByY!!pmTX0t6?yK#Z%r z2R(Hnb{17Mzo8CL<+Eq96w6QvLC0memPzsry&@y_NP$JSJVmM)_7_u7hezYsV}g3A$)vqXZaYmg zCscwfDPpSr>otP{Hkg$QI8*g!I5*K7K5F`9_)=Jl99Y2uUOE6ooEM+1$Pvh7FT5Zc7NJ}hr6(*o^Y z{I)Gs_(}I*hEha5)b=ZIFDEw4v7+aR^mzPnVw#uMd%os*HvgUAYCv55U(N>S1k+F` zMg5qoU27;yUxXUM1f^neU-~HQ1*h#0a=VIOYbwllOKRObU?S3a$@cW79-?-< zy0Bxc(14GHd2%%a9QcR^A8W`j%Ja;B(mJd^)_`#T3nBHuFIQ*(I~hSrB6Bo|Np3&A zk_*Dqf++_@F16e_xpV>~12v8xL=q$4*xV6_=WKP?%??kNy?Uc%7ESz`mGH(8)ux&f zr13s}Cr#v%H>Hj07iApS9m5=o5I>)L) z86@`EJvu8?7IJr9xX%hsfJg{gO1A%OPkvlL-j1BdWshugJZP{Oxs7;q95KljY`GnR zV~xDTM>i{Y*yw$lKJqDu!8^f!wih}+do5rp+0cH*z?@%U2MQE#4z|lFOj{;de0Wfe z!1z#uaSY?d0DEnyJV}`AyIMn0mt;4#2hHVN-k7wJgB}*IlzfF_soIk@xdqwqKNA$7 zoqCsZ^vr_Dd>eW5@X#yD_Hv}~9$A16<4dcHsvbr93O+_dAtw$w`6uU%sUzz&iNKX= z&whHjaedN2T*x%}cC-Z-a`4|A`2y~)LNVb^4JT7DATJEJ-x(#8Lm+Y~v9t#w^7bPU zV_i(>pSSt0bWH2i!12VvQ&d;XoTr}FJy`>oY#o474ZDbLDdc-@>c-c*rfPnR{ zZQaC(R`3S9!nnVRPl9m|!sjJx^$;jSmH!AhWxM0I@VS1oIydbYeh4x|GUgu1&~MI`6-4n)>ZG_s%|vQX|}v#1*b!dzF<;H->y@?|1Jut4TY zD7W)ipt2vF1EVJwIX><+(S0XmTz=G+8mw|=pz2S4`oK)~TPKt5(QPu+3doT4p8;U7 z`Rc8U?Kaa?{6gFryxE0cq#f`*-vZ)^4){6d^E<=UQMW&D9?Cjc_jeooCfhxfX%)5@#?(RU57bz`6 zr~J6%!pPoZ-<&ya!$MTToWbj<_t!ufs7&L;t0uUrgs9|{3=s6cRG;zvxFKxk+WvKr z9Mcb*+h}Ey&)pd488LE*7NS%$bbmcd1R=_yJ>Kl72g?b9x*x$n0q*xkxyLPMzn+F+ z<#s*TMaDrCUrS?K>G$I!&CK16-Lh(&7uM(QeSG^8C$+%Dy$e{&f0c=nWd%~CsPpu5 zG=9&8h>cakxuv;bAT7vB)5wuFM~JMa!oJCY00yjaIT&}|c{cp`S_6stAw6WzAm20S z-zv|r?`S@nOMd2;%i+y@qSB=u{Bq)r1)zQH9(uZV`{B8^$OCaw4?o{(u`~CuuS3Xs`%)mk;u?=IH1zz zBS)#1v`gp=iwxfT!py#J2GlDe5j8PvabYs5nhOx>B^{~yyr;_Jnx|2)+p*TH#QvR3 zjl(PCP7)9AOW!GT(d{-SF;Z{w_1DRQvaaTrKi96cT##||)Cqdu1{_lcc;PM`+G^9+ zJNM}6EXrXql&v5+?p#)p zLZO-a7q7L5(mj4=0iRu6C+ZXb`4rSQ85W$s&AbQvZc+os6#rGuITBCIpy=6X^3=&h zd8MC4aK}EXvn+#-F}6BVH-2vac9-?dO2=K+MD^*$jd<_>54Au_zr;KO`(#X#Tu%`= zE$ukSN5lHsQuZ{Lxn%;LJ9mOvuZi1NRX4)*oIH;?mfDAod(14myX{$jd7cYpd0lbN zrL=`RxqkZse?RCq7u(;GHt0M2?WF%?WV|o?2XL<1DQ#zx#0OvF9#+-vE%&s7?d{M1 zkE7h?k$wl?za|BB2y5l{iFOZcGvp;LK}8 zw}t87EZgaDehnzTIVG?qAkm+ZpS~z#he^Kcj4Zj6bQ^s?;31uVJGsx`r-#0IAhf^p zmfa_LOTfbao)Q$VzF)xO%DHW=LKtG%;&K72d1^=26=KHkkoHLOlU~7vQHGvp`-1Su z7n(=dmt_h^&GtWtJehNf*WR%lzFdOqh8W3J!r%CRj#fQJ&YN9*(XV4w7 z$XOg-4&4Ft)wzm)RgqkUrfCJCHH=#{TEk(!;p){oPd)!$90U5LV%M5b?JF|)Vh@q?E&rtJ&e@lA&bo7k4suMp9_k;X z&P#1*_p~0OyjIIC-f1Ck(zY%8)6C1B!~K&vmo=c>b6Kl@NDR8d;7!Vd(6^{g!)pGD z@@8v!cf}u=cVA0t9W;@=`=uQ-m$i2LZ!piH-cRH_CS<7pDsl!}v(bmYOD~e=JTt@k zC$*p6mAu+B=lZ7=Bo4gGpbw=<@#^Jd?sqxT2iJCP`nAaAu*uv`RN~quunqO|@51X4 zcX1jb#pCS(A>Pl+MAt|HIP1fn4NQWlCO}**J6kac5iel&jti@UkoA1FB8N z$g7S^er4zfD%WfO zkG*SwuBtlI`<#33^PGf`2goCU(rFQ89Cd1~O4Ou!X=^1Qn2rymPHS!LI58Hj)~Tog z863OB>GZLtT4^#-r@Z80FeI(HH&9ecQITAK7e$eoajn5>qay=?nA!ioU;noC##gs=l-A5WNn z;R{=5_M2Ti?95v=CL?yu14`*h#Ef$uB(~(B^hq#&a?schkF;S2$(Rgj;}RNd3EDGa zlhEEQ7vnH6_YpdDvGU9P(XWVos?|8m@iO0$%a5vf!wHdmv@q~g*daKtKQ4bWw7DU= zSkAYBY%M~$#IeJbON49%Tz0QmjMuM!i(HnT@f|^5>dms+)92i9>tZdV;qFD4(*-nr zjy`u^oGUK&x|aDWxz6Et!fa%i+aNf`C=&9#2#l?$bN(?dSerF>q3pm2c9fLY^D^Kg z$_cD@5F2y<5zM<+?L}M&^_67q0?OlMIh0kO^TXxs=Oi!tq#SWcAje6RUr!W&h)Y1< zmEFmd-f7t#%P#!r9>g4Ck+XN+jWz<-pS-YA(7?Ng&$(Osq8Hx0OVel15j5DHvwyS@ zZ4=Pb58R0~wAod9C;AXYgYQzdP}w7<`#TZlX02v&FjE_&5f;VKWe52|=Un4tT$-u- zNj`Q&sJh;Oo4{qi##O==0jm!*(w3r-qoz z3-~IYwC=va;tAyg)HQY4G~7e^Q;a9%o=`vU|t4u9g$o8 z6!N1pA3xr=*Oq^Jh-=FMTg8vY$G&RugYp3CDBUz&@I$p36hDp-ezXyO93}jiJ=|-{ zI}!h`eE1)=_2Dx^)Ca)Q#C0<*{3+(UN@rR$Q{5VSZ@fhJp zKjFum;ns&D`1jlTaPpA-^+m*ApKIYyF^4+E3!pQTSJx??4I2Ls2>y=~{8`fAKX-Wa zAyayOx=p?-?JF~X)=`)rENQJ_o0@|kY93zqp9=cxbBVt`!{P_!K_Yb)+9Bbu&p;aT z88zJU6Ns})|XeMROA=h#KgS3Hr_525u z*C7||S0)#Ko4N9=JZRNm?^%4jj3EqmUWCc@->7e{pj94L&2NoqP#_pSCnxo#8KUU>QjzVz>-$%a_SIc7tmj&^SeqX zX6d}qbEu=V(s`=?#eAodeXz-)6~uRji0}OBaK|o&A2~lE8~IUv165mKgImK z1yuuR#k0ZU53-|u;!1+QNAUlfV;p}kY3+sompSr&d~$ZHBY$7MydS{a#EyPe>}W9e zYb!N>-FjsO+7`&G&XiV&>zB+*-}G3Sq~~Z_@m10A9Zl1_a2=DP;kus+G@U6eL3-P^ zxz^eJ5y4Xg%p-X~!Y9gsR_^bV+&NgId{$J};vbXm;Ype3hX)a#6%zC7u(v*2WzLXt zSIIR6K!=6TLVt9HEjJ%lCXU59d&e{S%;frio`|F~+bhzUmNhunp?!+lZw$_oROd@! z{JjNbdaOS8ZHq4~{YZQ!tv{;kqwE=}1LJs&s5g;~_2GQjO6IFi%Mk~vbqz|Ng933N z$fb$jT}vmZ{3dE+f*w=P<8(p898zy-Ldx$Ycz-rc^+0_`O=3OXt7yEQifg*&Kmuuh zhyz=9hmnTwy=h8F-&=FQ(>jXJ$)bfW#xb{8WT&ab2#AqmGW0cOx z`6YcWe;nmKu;-|-)~st7fh!kEQ07IA$@g=@MmJqTv#^ORtu~&F49~dx)ChU=ueFhe_HxT2xvb;yeq%PYd%VPgHRlh~Axf>hU_RN%B)Pu1> z6|rYf9w*BT^}y6SEXRk-+#iWO`>P!GY^3b(%HDrLdj|Ti?AhM>w^P)fQ9E&e`~HI| zMZZ@6Hqx+G4`|cJb+LW6-MW4M;gqmXv$4IfPnT<&wpX;Wi;a&tJcbkWs_OSsnU*g6 z-emj#ri6{W44(rutQAuFjIr)j!iGW2;#`$fz8&@Pc(q}}VZ){n`eZ^+EoA3tUVwD8 zC`r;FM96i_m4I!Y>kp^eP*3X9)Sl7)yS2^$+@`j9(65-tssmy3RC$ko?$__Zm<(*5 z_*zkK`XPJt{YP|rxW7dH04Q)GDR=<*J zZM12~U0hlHT1t)gxmHhql`(Tdh8!!<{hD0$p#lAx>^%~gv?E|ILWK67Fl(ejPndp< z7fUJ`?PpiZe$6qor^rWoHkeEPIJO?<(j}z}%HPL$d4$vrqbudSew37bQQqRKUjeco z;{Uq2{XNINp7{GSa`=077N+v|@dExHE|(TcLmXj z6+~Cco42Qe20_1C|1#2$|Ep*iGdE*AjP~a(y`bX(+5P=!F}*?A9AU|DIIEu{&c*e~ z8Ur)NnGyk3hiW zcvy&xV>tMq&c_3J4SIKAznbd5m3Iq!r0TJ{F0>232$WA1<;~KkmdSFLKT7_b9zWo3 zyjk}ndi4Fmr}p?h6V^qH-CZB3dU&2FNBF-&woBMggM_Sq&p9r_W#~LIR(NKP^`I(` z-<5J+=-f=OCCaYMXm7Xd${oaJ+_AqWrRFui*xo*XR(6Tf%1+!t?8mzqw}#-pnuj2lDo4GFaBV24wsz{v4;zkdYPr|kK>rG$NT~EfxeW4TB zznm}UbdS+EGFxUnx&Jo)HrT1KdKKahJebk`XiDu3v$_6pr01M9Gkx-FE3nP_&%+*5 zQSM%Uq8!#J?8EDXoru_%H_EMz7hz_8bs~E(OCF!r@_0`GZ}MO;Dz`lPNo(!qXLGEP z@TJdG?=rH$8VQg=Gd8r$lE+FSgRk+rnx$(soteBAawRTJR1oQ~fC#ZNZ%v_(uaD;XU&6Ldd3wse#aoz^fzuF+;Jfs7;b`x|YNGjdy zXJ0e=;(X2C)BgWcJXa`I3whFK!2fZxR~cNaY+jCfxAEb*C{vK@aMg%8=|$ZSr^KFr zGcew`JOw#8AYZf%y|?2_58?H(&(BVmT=7r}=CO``b|%JrZYVr51na8ges2*F9N2qO z?U@gIPe!5+N=q!tVs6x0y8(O5fJWXJsP!45{GyBrX&Gcjl*h2=| zo?-ph167}M9EHo%9J0sPSy}cWB4yxz(~=HLIS5F-J&v+W+lTq*-jOwqV)S=q^#dGJ zp}%{HF7G9_VlS~FE323C>+2+aFK@pNbD#FsFG3pTlP_++i$7D)SMcu+8rI=B4bX5M z#+NIa7vgpC88OY7jZ0(Aw5aX9x5@m%q@{)+F;AB6=Tj|znp8$I5Ye6 zTv^d^=0f&S?XwvYu^0YDALp8XF;X{b=DeY?(wA+)-1PtKypzYm|uY8_&xQFK2v}@d&on;q_sb^HY+v&JFrp zk=RS+-sFqDz@94G+P8DAWn1SH8#kZWzJI>)R$$~R3|`)z;~^Q?9C1M>mQe4JB4 zVyqHkmr983BDAC8D(JHZGA0At)h^etLjR;)tVu=NRhm@4te^d@v~R~*KIu?nFS>6p zbMxo>%qKQP?TwqA=VQjpccPwU^cq!D7W3hv{E}Xy+KX#eGk#cq>fuhQmnvr3>5q}^ zUD+Pw1N1iMr_|0-JbQ>ailCcHPanAPG)qtWh)yl#b(t2MR=TZpEmW*OuH+fyb|ab3 z9YJywzdqbKih_ST^W`Xxu<`%=5b+1h75_!_+}(#_6ACD z@94!?ED~q&1iZydn2Yp>e7xs4^%35mI|$zU1$Ynq*1UhS(c=9=!td*NU1su=hHiPX z4(}myP?Yy&g!h{W@5>4Azc~!N=amZyj~5c&zyA2IIKS89doQe8)ZNy%0qIN19^~x> z2H$=BKHh$R1CAF?*!X03TjP2>*CGbI2fl|B5GRKtz;77W2HwZw4vb$X!aRPC!!O;9 ze19t+-^-KMS$XFTV$Z#BA-=!aX!!oUs^cN6?iAo%~? zv4Q_P`S9nzbqB$}wg~=Vb%s$M`~h>lUVK@9y@h`n!Tc6p*EHSGt&QzA~A zMa}~pL-4=xlgA(C=-{1#hIWjHfzGtF<9UvC^QI#P@P7A|C2QLn+wt7m(QW4=9&qMx z1addV<&L@*_c^>=|&<~jYQt)bH2Q`0c8y4a`zvcS6h?VST{8? zD}7>b1GbrVxIVq8?3&u9uJ*cz&X9Zfx*^Zwwj=J9aM>&2eQ%$`<#T!Tc}yP-M`MA5 z{j_+(iI*f;N!aJLQ5M7!EE@PMQ4+8cA5eJ5htb=^ddw2al~@*Bd&eKg>ks9Bli{&R z79%qJg*>(?A?Y}D^$XZ0kXt=ww)%&b3|E};J&sKW;yszy1r3JIOzx;tav$^x+RbU3 z)c1PK?UDOGf}D*@s^8Pk8igz>nN#}4hG?6zWh>5s=$dgi|GiI%vDd0awQYS*;cvfu z-(8&d;yoHp{{fee4%}n!onPL6jcp*m?8@K=TqZi|lFR3$SH1O*T)#WePEA{VH{t>3 znJznjF=7U}X^~J|=J}|+fCQJI1j8MtiUa>PQ>nHGWFBqAGsMSay+k~6lM z#0ukyuexctV}(dz{Kwn)Upz$o0ds}_lBx|B{`Ca&dw5-D@+M8U_6f}E2``G`KaRu- zTS%->P4I6TZv5kje~=G<{##Ea_Ar^pr0!w=ovpUeA$vA)pI%LTx}+f|L+K6j^S9(2 z;0Y$@nB9DQode9|x?Ou+u8%TNDs!J`*}=Sv5?Kyd&JV}qr(}M9Mviqf2?&vhyvGWx zqX9Y5^Yh=|ZOP0=A{!ft%)G(dHFX)fwQm#7+b^oxh1X%N{p@{zJCTNbq(xOPa=qS! zDlXa)2&`$RGIOWZs>T^(l<(2Ss%yd*3FJUsD=HxWt$1^(dezF``dU z4q;h*eQ8i8>pduv`;X}M6Iq$G(dDd6*TeIwbXlwch5D$hcUg`P=hqZs)4!O)ifz;v6Q( zUiMi8Fh9aMiT1iu$_p)v$AP?rQC@O>CfRdZUmD_^7RZQ_mnmc;>X=o!S~Zu`k`-^d7zw^lS8-7Vr@GiE~=zxVJ@R zJ|6M+nL~8?%Q#flA)SF7{g5FNdQ=j^FP}kJeiLsg|e@i~! z;pRAh!;r>mQLHEXnUIke^erb5e?n+>lC&`pFUjj5Va|!h=eXO<*&NQ~q_Ug+?0fck z%g4&vEb4z0?UH^3o-52kBbf_3{(zMmg|atB$1qq08A5g#pO^Z(d; z*66INE6@Gz<9mh>3@<^15&|S7AovJqz#1TbpaLprgaV?|Njnl}fI8!&bz~HZ!{{_p zrA@n*k7br!t4cu7=@M6f@>!)V^%20JwOSm9jx#dFx};HLWzODbpL6!T`M!jfsYKV@ zAIU!VoO|y5_Sx@q&OW?8r!6CKHl5MtoE~f$O{@9j9?+wv&5qWyLbSP<(cm#z*Sx}i z!kM~Ov{QDkABr%n3trqjMAD$5&Bcsny&QX~a@#T*#mYN%G`)>vG)AyTw1@f^=;~KC z=IoZReNMM2yQa6+~H4mzJ{HVs=z#5(31LzC$+(~u~;=+mZe0O3n z(#qL}mTcLI-@P@i!cpuJT`&o+MZC7NM zHjlu5pih9CSL{Il7k*=i5{(wMJ}6%`9?P-6#t)s+sBps9rF)d`NeFeaEcao56%OsX zbN#G|XO}SFlfh1jqI2|B*?nk_{x@qch(|p2f=)52R?}f;?Dp_nOmE%?-mMKl`4c<_ z`wYgM6_7pU(o$(BNSgb`0!bfdBi+>31I?XHG<0RQeC2SdLxC2rQfIBWm~g@PwrX!) zP~>_6?5*|4*YE}L)|ZUWJ2caOPhxba;YBFNu&iX=(9A%phi~N1D?KqJ1K9|_l<6nD zNc{<_hutDW$%h^+hEaW5UXDE@Np{w%_Gj|#83BH_KFov=Z#Oc2Ze)C( zT|b8O!Tjv8>T<+0?7c7hpsc3(sLEMcwsI`qS3b{#nu8;EgkZFDJ{XOEZNj-0=sP32 zMDKf1d0XScP|9k^&#H2)h4-E7ograeWb55f|IR4JqodgT=O~tIoVDTYW1}cPL#L9x zgy>H3veI2X*zBb&@8dU#zkBK4knZ%Gm$dVSf^v$d32v;bFnaG;>sX{0fbIA%$Zj60 z=mO@(fCm#kty2|Am4g9))~e#!rU^e0$gxhkCLf~^!%z>7FneKb`2>|AgYSrpmVl~$ zIPqp&mito~+CzB=m1Br|Tknb-S7~kNoQ*4bh#zRVmM?w){APXADG}e)^2}~oH+8** z4?eb|M)NDQIjQ)8rfHzdSC}t3n#B*kb$ZU(7{llzd=Ara9KVu(e0I+0a6ISAQ;g@p z7+8O9dc>czW3W`#H6IPbdJOg0^f;$h%EseWHXdWxc-(P%;yL%%O_O}Q6Mx6I-%~KG zt?_s~2i$TG;yEL6j7sy3(U|bO=T)aT?+N2#{hB!uzs8QsvDP_VU_GwQM^AE$M%yup zwXu26v22X~@pR9BdzN;OfBCJmSbmTBJ)FI);~)8bfjP_Z_%lzYA@O@|D*Zc!PZ3!I8Vr?ohCz(GE7g z!r1y8%j#D+=ImvcGIc20<7Y3Ysb#)1-&IeVVxsch6)EF?D`;=PK^p~qSa{P|Yg>3@ znawfQ`T{Py?=Uzvmh69a-|JLktmm_U-{4&+SN7Snmy=~GPbNym>#d&iCYxDN~0^dv(9VyV-2pZK)zZ2j*DbuJpjmF$W)^8TB|6bz*D9J%0+U9C?-jo);vr7XHeD@h2%<_^{@Qe zVkuJw7=8~{r^tTrQN9ddwggCa{(WcQ_w|*3{hxuqMV-;FBS^mJ-{o9_Sm=4b%*x|5 zgIxyuWh|dSnT_QnSeu}X)*VPVMfd$q#a}41sm}zp@z}G_9(4=B(eDAB0P?`g_LKDxCni5%$j%g*qR?>ToRTiO(jO ztFkZQ5ZY%`i%{=1Eu4pP5@l)ATq*08NS(O@&jefY?qY;dK7a2zlxa<`&qsL(I(E{B z^Rmb8ScEzg+VE#V)&bnK@ak+?(L#iOF@{imExs3W2y?iR>1wzS?}E5gW8G4et6*E^ zd#~2Z4y@IdzuJollW&HfdFuIYkuO|F&;MW>FNUW-#9XJy1t%yT6vZJgjm}{M=L{x1 zCz15Lgq!p+_m|^)uIE7b(RTt-6v%dg@}1CL&^a$8woy-?EA{YuNCzdT_a|n5hKi3^ zxiV8Ijxm_zWDaxBtDq9xHzlCHQLAe4vy0 z7gIg-r^QX0)1uteyJ#zp%EamW;d^y?qO?wqo3i>|4`pkF%-*xKGLwQhyGOgYCrRU9BjIqJZE6b*x1gEA-m=USWyX96NI^~pG7xY^>`9G2NK7&QM^{IFpcvnI{d%&KRA;z(DP|S>liT7bNdc|l*cGrS$=DC1}nslJU=x55>V`@Ov;pxPzI^;m`nl5q>;G3 zt29$U^WVBYL3w{hqAvuJ#YGul>m9^nX(l5EWB<^fDi4%@2M9k>f5Oxcz_OB2&{Eas zyyTeQ!{%bH$uSpGKx3unV$$8r#ekf!@yDAZ@kc8&mX<6>U8rGyEkB-TvSew=&EzA^ zL3rwV#p_F(S5b^o!OCBno4vpNMiZ}jKJ|A7{$uOk8u@X5`%R`jybEJDgXeVF&!etz zPGA+2;a-VdBP{+zpCq>0z6bjs$M~OMhj?Dc@0<#PVZQV(;?-WdPU>X%zf0WKv-8&a z+*i%FdQK1;JkNN46==u8H=~WT_ueazE&v8Q3ghv9%+vWxam|7!;FhD$d$qC1k+}Y9 zoSB~~k>x@xpD^W^ENd*6O3o@Yv4^yLK0&cerNec380lN!$3hnCh+J}vzshuYT@HRM zB>%x<`#tjUBk-V&HQy15HCvuq%y{is>&-0gd`AcdoI)IbbL`4n%sj#F_5Wb>JhVCZ z*ghN&e0Ie?y#JlLZ^~y0ZvU2q512kzRfl2h|ATKzdtpDu7XWTPx*vH~^P#?i9CNI~ ztPfLBQN8jQG;$EN6KL%i*VBE>iB&@I6^*#wr-JF%3hVPaT6eWW<@2(Stho(o9O9-xn~$$JP&4TpbJ0GCV}7EP zB&n1Wm^t4B%=tQAJmsVU%D3;OL@Jq3>+yU?`eTlNXV0Hfy8byMYwSGK2~$o>iKD2R z*E@*+C(ZNFUYECI)Sj0!#ZSuaAo+6oojQ*nm&YkkMv64Ze$I}7cFb{JaKnq zUd76VpUb*T`)jC=0iK$A4bPFfVJ+N0P@`p)mL1ThV@%5>;1_5Z+f?6aVJ4?;Si2fy zjcQGQmX%o@OxA3?^)7k8-L%ni$7j+5uh4pDC3%z`kXwGlP409y_rmfdCy>Olstp}NW8PE2EynxA+K+6<~ zNK4CCDY~wE4Q<+u9sh*-3uv?Lmb)bFAHX?(mp}YywbYgSaqY<3zrU;I@uLS&zH~78 z;(AFbu9A+x{nH>{D9<{a=iw$DpsrLPWed%>XkWy}Vdf=(YhN&OMU_XBobahUFEPZ- zzx0=Vjy5()OGZDh^EzNaM@+cMs$1 z(7BSnSA>2;G&Z1Pp~PD+nYl~NYubX@CH;q#c**dVD(}slN%8QXBQL&`Z~w=H@LH5b zr??gc_(}8D4KwZw@zzGhLw_~nzAmulM-BJ57G*qJFZ2e}Vdt>5DBnKaYf++q;}yBi z3FH4Or-*;RxyFBGzYQV$-@tG_zTbu}upYCM#{UF{|6eowPh|LC*URxgF^vDkr-*;R zxyJveZ*2_Wzmnnn_*)yhz-5*1E=D3BrD6Gdu!#&EAa~VCq&FJ}jCQtrMZ~sFG{~YH~7lrkhoizT>WBC6q!~X>g|M&KC{9h2pfBF>h54hC$Z#!}% zgny26sEfjS%uX8r=QI2tV)(CO_`k20>8F9?& z9sF%J2B^+d)a4@KQa!}{pg!j%@xO-c_3snm8<+T`knJyscN60SUa@x5+abQGV)Xvd zly|awK2mU1@jJwS6PITFM-M4p>AW=i(DvVA8x3oosA9Y#a;)d!^y?G<*ttf>oT94p zo+$pXQjDLW>P%tuKZWhZoMQK4@;1O1u8!ZmYxCKO&tN{kyYsJ{$U4ooibIIo`oouH zIc(Mw!aik{2Y}@~0oocQu1FNIm>87x8FRM&gsCsYa*SwyQPl?`=XGJN*u!*aVT2a- z_ovwyyO#Cn9=9RiW;Wy-VH>{q&Fs|mn`)HZ_(nF;5j4Wzy-wpwAw(A0%YE)tA%bP+pm@_t2M|JVAqTN#GyckLRA0b+A{pd5jx zDeo_o&!n<{gYz-lOnuHv{+_-}C-==ETM{IDUAC?az>4Gpd$Z9PQ+;}tR#W#BAOC> zlAT-%g=r>s5tB0)v3UY^UtDDMthkWm56mMTw(AssM77eVI8U%a>C;#*nj7eDtq|lZ z@pUW&WE72Eef`XATS2=Vi6aW*aMNIE z3%}Tg?E$v7X`JnEw7NHebir2%iO~7yab@d&ia1a^Tj#5v_mL;9oOU8>byH@oUnV3w zbp=< zZQd`BZC*sMgDN1u{sh@zecHVdpVspFz9TOySlZ@~Y<~%51Kba;|CNC!FW75j2Ef4g zTK;G`VRdG1{>^23yNv&H+wMAQ?TOfbRLgH1cBV2reJY)mOT6l6+x$NjA7Y$i8jEdz z#%pbRvd4rTTluG9-OD6XFVFHExkUG{vB%K#wzRgUpJW5 z=e(wcbHkmH!$#LM8Kd73@5V+4I<)@cixGd((pc34zeKqHu(Zo>`lYem{p){!Vc_NR z`Bl}RXKE1!8rHO~>C>(YGhZBvcX$j^bO*mc#mgX`;!I;Qewwx21<7(BXzM+;ZsTI| z2Z6R846oJrQ*HOpg65=N5_c_E_+3^p8|lpR12CHC>~q(LJXHY@q@lIpA$hrt>?B{( z(g69TTl4t`5;vDKS}M*#OF<-m&tS4!fA2-+@9mDv8CcqAc<}|a>j4f9?M7JHFJV~I zPXnVR?SndbazokmLqI<^+N$)tFPw`R{anoU1WjYPn*K}WOvb%DUsm)J6Q_57KzB6b z%9m^0H8su7o^>>f@Tcd^&isvh=8h<{vRmIQY*g{<2AMq@W^GpU` z9vXlDdevU}O3xa&?Z|d&Q`0r4X(Tr9GMS^TBahAB`;pi_(Up0B-noRyB7%{6zHD=z ziuc($TQ$s1`aZS)yqw9wY$>JaVkXW7a!J!wi?QW(S*@)tGG!%~&M;-rTB?4SwB=j! z`TR9uyJ=t!U8m_%Kks#;>wp%mE&p`Hmbdix$n8Ht82tRn3!Wx;mVq^0Yxt2*o-wqj z+l1h4D*hQ=C#&Rt73CG`N_U~P^@i4fzK&RVCZ=0?7MrfxAgwipa|CH#?X`60vVS?w zwh$3ovSsCE7bDfFdPn5Aria&M56U6q3W&x|W?eSWkF~)!M{ICQGgZY~Nyc58ZL4_7 z&`cGhrRD23Q*3Cqfo~IRB$)7G>g$T0Q=q&JPs* zdVe806}@ThGiLwk7>-XdTo_;U$v&Jd$8MV$$F?I|jg7Q?-8Qs;>g#7@wH)TTaWUrw z1ZCl@Otcq&<9KGF=9R5XP8Z8xxy8s`U0=X>3ph$)Zm@&`s?W(=ay+jMEN=~t@Rs&d z#t^LIw0&58*eBV{e3BnWd=kqa4UBIdzP$zgRp7IRc#FD!`DId0Z=yM&1!z^flacX&DamXQ&Z4prj!%#t`_81or5l>bJHO|+BuQ}w!gyqPM)bx zBaeW+qqs(|br8(nfxnig;7#G&*?iBI7s*$ZKz@O2OleVIxJd2$&}%9BU?wTu1ApEV zF_Hy;m@g>@jCR%x7B6P^of$T7ug~rWGuW9^Gi*L4-o}}3eMj&2?CgV?WXHkVepsv4 z9+7PNyu^!pLq4YN^m~xB^Oi7klq4L&4w3?m6UXXf7~}%|d*#49{0Z@H=XArbd-p0B zcpYNgct53hz2R$5AdEV=^$Ftd+1YDf--L317I<3mpKMclnY7!UM7XIb3^%;^Bf{0C2)$QC+cC&Aeb{t_)fy}y+q3M63GenE|xT57_5B=lkyW?Y+-_pL3M_evQlX-)Q-rVy{L6iCvy#&5_cUTcc9h zFXa8!sEi|aJ8%10{UV-hp8py6)UvIA;-P`oAL10bzNFvFx?jZfMY~nnYT}oZynitA zMVCK5C*v`rUj}CJZ(Po)izJ+qywZ>K+wqC#NPJ?ArC%)hf7yC%Tg`l9ov`EHhg|tu zVc(Uf&6sBH!%h=0*l7D6P`aarz_pf6f!_w1zr1`b!k`zB7fYKo91LBXNgdpODD&?G z=I_(78uXWeLEnAz1_2Lm2L0HCItZ`tZ$jN9Y>GAb914SOVp96kyo&LYJ=7)k&a7ZN zDqZ6E31euBG(;%a^0jwAe87o9$P19lfr31YyLCO;cUUk2>|ILb}o7bH|nBLv$^ z;NNl0{$+6Q%(X&JE&ms=Bc-mJZ|l7-`cUb~qwBR#LGPu{1i1h<>+tV?j?*$|dAXD$ z+-BXIs3?F|0G$dH9jeGFdk!a zB=|#OhNRfb`uE}Y&ScwvWn1iPCEDlkwvdHqu^qbKC-?7=zbD!-Duz5!&hH=0`?p6! zEFW0^rPJ(tBwl}3j(EM|El1n@`Q!CKYo!l^p{p!?NOjcAH`bsIfq29-bJrm4!LJHd z30_e;P3bO2{+g{*KxfF9mz0N4-|T-Z;sc(n`y}yOa_@=9=(Fd4Bh*Mx-bSApj46F) z!FJ@8*P;~5`B$B0J4qbr>>PDSYM!ch4ZEpB0(_g8QFc;5xjnCo+& z(e`ODbfxx<;aS2aO=}ozf*Fhd0b!u08V|px#}F8O(T`Th-xBr#jU9zqc|1q{Z*;yI zWnxG6{vq&>U3YAMYkwGT`=VkWvFsCK(d+Le)KB3sZnum^EvrlVZ>E3`z9iJ6-LP;G{3fVE;22Vk76YY0oJU2#i3uo%K zklD~bfW(7KF_$3PKFUPX@39jdW2TwpV{c&m6n+&`wBD(Ty zCZ~qf3=tS`=qMYu#>^|X+MFv1^UYJX?Qg0?ehp;&SYg}Zc}ma77|rKwU!HE~kAxBD zKGXZu==cDCc=>*yefJkhY&Kv4a<6!V=|5)mt1mMBIdf=Z?K4x)$-(C*a%L*{R@~WnLljcp; zE)~xp{l|2FUtMQVDr=iI<;%%&oUJ2v?BD|HKRr_0t@`b_&W}i3XQ{=Tl-HoIvChD% z&W-Y5!SlEje?UI=h*|&X*BU->R-OFypAb)lZ)&O&btC|b`t@=A`yRvV@O>`S^K*AA zbbLR5^c=?nAB)tY<^1E{c4c7bH6(}ao0KvpkTP^=w>9`niQnyc zX5?WJ538+47-C)Eo9x^0h^Uue&i$05kBFG<{F=!q{OnVLxrc>SwSjnfRO|-hJ6z6yjDbD;JlNk4_W6UoLsbo%+T%~wt>M`V ze&DEmi{o$~?hOcg7|Xo@-B=KdhfX|ykz@%!$$Urb4XET8#8>DVg>70-y%hD4ZI~yj z-rKAxQ1{b%@FFf3h2-rk*D68(F+3Y#3qEgqB-Rg`{=T{O9-m8JPZ&8mG)s=ABoALA z;Zhm5%y$M8@QjHeEU@Hgw!Bnwbmabp$Y-bnH!PIv55NvvB;eXHnc&?;nZ{0kVYk6^ z^;)J27E6BOI`gt6Qtpo9&s?J8K=`|D;`+V~;yU_2`q8?_ER5n zFxsGV1q|a^R<4`DoX_&3B0NmJWl$VV8!r41+$~tJ0D%qe4!a>(2$qBdhYc2j2X`hx zg1hVD?(XhRa9!NpVSzoo-*qIQ%ptb3J*^IojCE z{TlH-lN_6ThyfAmajD5?arBLb|MfZ-#p3n6;$xuoIaSp${eS1!7ohbLzaz_ae$(9t z)q-sukrJ+Q{oW3c1h1rw#JrweKC@Fbb1j<*-sqWkoACfU@p&525RZCOogMDi4-#cLM<&P9L&c5oIPrW(=!KT*m(qYgCwfHu7$$IH+=l+^(i*0 zC&>pJQMn+B6ocA1+FX6)xZ*c)g~P2m!8yx3Ec`|#5s8y+Us7FnofyUrQWsK3! zS5n&d4%w_#KElY&5~&VJjLPNC5W&^Mc_%#Qh78d+V7Hnpf{s#VtS-lU@TFLdqg{{O zFDQTxw{6E;{lb}U3N{Eu6XtjrzdCzx24U^acj<HV*$w^*Y-9H`z}UW96&u{16~EBb8+K(X#@XaLD}wr8c_1E;;KZeE#I_JXr%?;SAV zVJ06k^p>(WRE&?_it%@WvXoWm>N34K!Vr#r?q;8KNSok}bjbBo%z!;|JW?twqX=3Y zpA4_;jG`e9Ggmf;R0Pz&z4iYNuk+fF>HW--TNKg z@cNy-EHX&cp5xw`=-&C|2q}V*qYM}=PGtNZFkj}nV?%_YLsjY{iF4CcC8kdOEGI;# z=FweUV$ueQZYJ7IXk9}$FY0*%qO!K-kz?L(Lfuw*?S%0s6?=1O4Vy*fKYPXf=8Z#s zJFXd-N^<+q0Me9EccaY_1J{s=x!jgqPu%n6A??v1r=nu#>pAshLJw+?l?HH4xSBGX z#BD7!v9fcl*s`=k;PUazYD1i#qcx`)(=#*`lC*2(rQ6+ zf|Z?8vc0p9;0LJ126CvS8?yRk4I+B4f{T2)GmhC>;XTo|tYa~eN%S-?tqoS(SS>IIx8(f-#GW)RD6!++(S4X-Ad{?`H!vWmp;MqYvF zk>!}A9%^cNb81`fCf=MYqX=8PfTjxT{PH@r(URJ=wIYnwn`*WXOiz+m z-PaG=X*KydGEO~>XOjQH<@}-669NBn&Qgm42-Ak#FnR{Mz_Czy@CAv>LE%6;HlNVM5q%6Nu=;-*~v_ zqtN$ruA-tqDRq9-_xQ)aqmJMa75Cb~H*cYzy?jgo!5NdTnnWMj_;t#BRiPT%hMCMD zmj=h;w7{2-LLP ztKZ9a@65~IeJh*29mTRnuqXaf$j$sS$;EtKJRvH~Kv6+1Gf!S-0srZ|IVdCny`&)Z zB0s7HK6p+X=hGuIm+$tYMbhGlmz}-Rw70?CLYIv-`2M7er@Fx~R{AebzP4oeLLA3! zSbc9Le>xQse=B(_oHOiT%_p%X7Uldq+&bID{j0 z4jXKxxOXsC|IPWKay+P|%%-}>{cRI8{jc+N8CmhJyxBymWQR4&wRgPGb*FJ9#aM8! z+;^mZwMb+`#s&T`s}l9oF|9G=U)x}&@>`Re_yGi{U))#kumh!=E~N5MO4=t#lo?AJ zSYdgkS7`Q$*Yr2~7~S+=i~E-xo1RnXe?1V+Ggs1->vLrG_v`jk36_+-&JyZx%4Saw zWY0ZI$=jw`dI3{C;Ml+IjYlvOjeZOEO%YbH){y4)6KNs2=%{y!7_>j-chAM{1KOxR z+8Rn-+V-lE8xp4=@N8g^J8ShtTfPXPJLCG>`pf~q)z|n@Upro;97kzu^o_+O^ zwYT*&H({Z0j)m9=op#NV(cUmRMH<@vsElm0pK35Je;ONUtNp{koy2RttgnuzRpvhK zZdY&lJBl7vjZL^7gyVuRT?ktsP3?Jai5Xxs(I#IODP#q`hH)->YYbmZU;M5DZgwT# zV&=Y>=RU0bQ(!oXj(R1UmkY^*b+}g2N7_*Qn0SrwFjhS`PPtt4l9PGBn~k#hO0LCc z{xM_``r@xU+pC4_qwSzG_YT+xbIp)>-#DUbsBbYqK@$JF53x!WUG8%emN}8OhKUhP@g)8E(SZ8 z5w%-UzYw)qZSaR!Y1k)^y0USv>PIl`H%3wH&5SKfrvT3DeR^x#6^Z}Q0U1hj?WGq7 zT9UM7{j_6Pm-lk44CUd#oRFQ$hATuZV3}x85X2KM&D%Edw|-3bFvgBIi*G`o9h7+da5GUS=b~(!LNv;?`xJ-FWh1LkfF<5Xj%@&j>uRy|t2L z5!|!ld$KBqp5b?~>nL!%kuzkdOV$jq7Y`&9POcA_e7FlGq*&=Xb=>TLna{H? z4EAxDj^z#-11fYIA_uP}gd{M-nR8a`x26J|yNud3g8H^;pAvhFxQX=dEmmeVO}_`w zzsENi@CM{G&+>uwItncAmUk|A$0a{q6uYVxS31wyl3dbTjOG@x{O3v3(~OGDBaD)6 zx^ZZ0RKBH4eE-O@elNjH-@z4>Oc_B<;Sq3tNl zjEdVw!Q<`B$UWbxSr2@=q=Xz8V`{!#=@u3VXSt{9+5r_M?6#SfBK58bK7CdzMrV>Auvp2Jqylxp0bKB`Qk z{(-4?F$na7mFK-aYQk%-ITWrx8;Xntc(nO+iygl{Fh1egX`0|2J?f5QD35-97U3I% z_)nG0o@8f@oP==R5Qcu5x9aae-4qesKS^QN%{308;-Q&jDX^zB0^HaKD;)z4GvZIUgK%>-7}PJE(+$9ns_m0>guW zF)6f%+)y8(TIXVNxb|{mtzOBZ_d$We3w>cH$uQTa6^HEx22Php8yHPAc85GVY&u-L z6__)cvF%AyRiWIm>j^h&olE8R0*`?6cA{RmyCcpK=kt8;6gT9-1`{c4a!^!9Ole)qWSzzhU_Q__{l6yuf#?UyF>9{E|JyH-=@cJBqrI${2o&dfukc3+Va;BV;Mt}ra}B>aa%HfzhxKWF1xVF zcs5M1IE%g78Qfmirc{?#x0DtA>7VLJJMdt zH@AgsJv0rC#zPl|JVZ}J)?uTMfUx!hf9z@3#G^1H;aknK-mjv$pvJ+5=>BxDjK;F^ z=IBtK7?f-GEZ9SA%bFU=dsb>r%yO6rnMHwUki-OPUN?qU+KljNn`1? z4k6fHB?+d8y}eu}63vwtX!IY?r_Y#Z@s$%-36;c$3pABbS%jh-Yc7Xey;3H8w2uFG zB%VU(BseX|bW~e<^o|m+dzV3BFJZFSt_A&m@Rk}xZd&o*$|*%c-CdoB!bZzrSudk*PHEH8^VkgOx=0$(S|5}xFyJLmo{&N(|u;9%&s8hgqT{PS= zo)lciDg;#*g9PYqPuN8Xv`?E3*eQ<9_m{lk_fPjbXJYMr^nfoA4)=bV42M65Q2`CG zi>a9XXl)6NDW{A2>dj0r@1jP?KsVB!eI3uE_@qp)j$N=I=RC#ap^-u~jo!BPgB^8! zcvmM_WjFiQL-p4z`&#!pHi(W{a}%V+x7&5^E6eeW-c4XL49pLZ9bk+*>?&h!_rBNI z%!2N0Foj(x%K%`HB20I?p2m%=@O?b`lI8lzb*4^ncUS0s`XAFe1u&z;w}|j#W{Sf#CnL-Ebi>dnr4^+~}ZV^O# zGl}8WH}kb)`T7gsckIe_^5nW^6QSdUem89GBRK4+0O3$re15eJdS8$3}R>1G`*1`2pdvwj;MJ z65d>yB|odYDV=$L4~Xo)6^Dg?UJ^mz2j@d;M+*vd@~oXf6T?xb^Yrwhjzz~ui#rcH zQw3_@@&b=zk^}l+eBl?elhexF&w#wm&7iQsxRLwg7yiBg zp@_bi+Ptx~A1t$7fRA~?!GMQhIc0AS!gK8qnB7_an`~j!$me2&JKHL=DdCzDgC1_B z6}GYD!-Z=V8s(O3a{EhbS=n+?tK4;JkM5OU;ZpM zvA@(sW4IUwdQ=tN1Dxm{pD;&*3b@?=1EP2BbrrXLH|(|nATgXT&_t){ll8r^Y273U zRrGBlhxoCmGz$fZD95&A=pFZ~>L{javuIVG`2KAA$bl;vmL{rgL_1SGK;>MX7|V*%jQ)N6@sa#j3onv01^G>2lY+W>twBJ$WWY*6 zza({Wc(4YLC?O4yuz7vAZ!>-{Fi)LpDUNuB%F1yyiXtbVP7)By+_CWA=VO)%qqC$^ zO*pPgU7<1~Lw-^+1Mm5Rh$P)=K6(?L!1-|5Nv_m?<~*tMH{aq%H+%G7221{&F-5T$io_Y7lc`!TPBqobW^xI5oXH@uPmy zkgidY4wg=43h5kkySj>#rLDf6O1Yy7x#iXe?YoNka&(t};KO)~+9a&Bb77A_moE;E z(d}xa9rMhXV7y;hKig-XUsSR(lr0`{PQ_?-LeS?L|9n5lLsJ!w^x7FgBE5DHhU_Eq zSAIas)YAlucgE(XY9vN$_}s7mTshB4?&45EcE7o?!P%D}!O=$lUo3-?Z$>i%s_5oz zouc=co|>1z>+vX~f4zEwl<7YkSx}Z)3GqD z>pyP;Oj~bu0#6Z*WBr><+pAuU&6eQ7k!_$g!+x>B25U3jxH60HN5Apg$Sw z*bg~r5#=jle{b+>_M0wc@UCz!=>{YJQ}dj+mGYEpftl_7iPxpL2wJ4OL!=>`O|Mqezl zl1BJM4XkZq|5eH*7NuGL->j=64D$wrtSWmhKG3JC8b)3ODm_&h8S}Xhp4}q8>nS%X z-B&l)CAJ|641^`d)n82xj1#fL*8Y<-KhC^)-=oDAIW z^ez;1Bgd5t|I4->0X5{>Fzmb|U_p3U$GSt-!X$r$RH!YO2S5Cw(9m4v2Ee`QW(R@~JkHDq!9G(CRXUUq$@ zB3RxW^xcW9!vF79^;*d}&t^rS;i_`VOF8Ln`D*&eG$(erFnOULi4OQ8r3I18e!fVASnti9 zq0TcuU4LLboWNR(<>3*^=w8M>T7DxYHF_N~^jJE7t?xrqeWLd2+_Rdd@MGT3#x=&L zr^N;+e;^b#*q55!8P?#q4&W4$3w68O*=`h%e|eS z%rl`MW^x*v0*p6UuxO++P+`h2&UVaxldDx^T%w?-|C3M zG}{&8%?~liXvjGX4M8_L>?8#~hsDjH!uU~na9sTC0kooz==uz%pT2dyoEoqwT}wFj zB>oq{KJim^F~U8Mu$9tGMEs}n-pg!_*x2k+ZC8}qww?2+sT9`rm7~10==BwOF0pul zlYosKvAC0e_SNmeWEKOSW8vM!SSelD7X3%{CPOvbykn-;9HWMjT*Zn4qwBm8Pej!W zOr(Zo^}yR_aKCf51S9Xeg%gHA39h@yKdME?C&6GFLXMjs(xiHcq=gjV6C$%JyH6Mm z4+E~Zo}OC0gnb9!y8kMVeD9i?xA=%$=bYmy*BShakK8|x7%Q?G&e$~RB+$z;>sNNn zKmC%;pplmuEBW=Zyo_t-+@0*=E6Q>Ll1*Q=ryFpT)eyGo6Y`JZf8maO)Fm+YVdBZ8 zIY^s9(oD>D1#v-DywcA!_aqFZRt{co#EZ#URn-(|Bi7r21^$Mlqb zwfuh8TYt14%Q9O1x@6|a>Te8)r62i|)jCp#nc19X7oUKPa5|PUAIT=Yokn|W&<<4_ z(-8oxwwk|RqPHI%nK6vRyOsY58{b_N*>mNOZOb3zN}2DYrC5{3S%xf^3lcv8Tor;& z->K7SVz2OAb5AgJCc{JHOp@m-TZ=CJS6w}Q?C91rDZXT`JPWkbK-27ZWAhOd*UdblgMTxCty~N zQ+w&h)Az$K%w!&4?0Qw8|2p-pm!s1BOA;M5`_sW(&FAMf{y@TB~LV~pWUZ1 z%4o<$zE>~QqO!Oc+^vcG7`fId_ZvPzwez}a-cKOaq3ZIeAFsq;rfs#m$YD8JRFqRx zj*{(Sw(vZ{SHvhTE)vijT|)+6%vv3;*`Im+-ZOwF+i*5!8EZM(xm42sM)cX0~PQMVM9ERE0{0mb1$CSJWEmRXXbBC=g zA}m$hm;j^(Hn;FSEPFjWj&%g8Vm=SSm~(ECDMP9ADnc|G87iksKWT=1Mv~aKeGqRA z{T|rce_v5jsegrWuL!_9K>+ltZraOB>W3!M9DK^W{~FIK zFouEFA1jPrHqxg`eghw{{C~8*w^jF{qz!^vQ{Q3ujbNzam*Wr%tzj;N3^eawlNj2> zM^vmDN(viu#+?Bgrvq~P%{!wXQZ>f4wKHdog%(ftJqAXb?DY5K1)hdpLPj@jM0Nk5 z7%_q!3Dz?t=08c~q`!%E=kHT8K{Z<|BRCFx#vY(&cv@VPk##2^kB87fR!W0``ZyFMbYH| zugU)4IJ+m|OoC45Z^D9TkKV}!mOyz}3$aCP6N$+Qh8v~;DEJs_M$HD0KY{U{T$X!tWPh?b|3RwEIr zE~4R3bYY@6;4xod+GAE{cp#e1OfUJfV(}A=@6mhjt(%eRtp<g7cIEp9Gib*_Jf|z6AaSsy3os&+>7!Xv#J5L^Y`pjiX&%N`L{TqKVqhqtut3; z!%jm6t=?H1s)F}7uQ#oukwAshIlW84ZJYHX4DU%TO2YK&yb-vW4Tm62^1A)|6XO=PMM{b7RGVAu8@A_PLM^+nPap^l#K3pvgM+jWo7jscI%Gx=ZGl>{cTyrT-2-dAjmD`lVJ zdSdTQNIkwR_SU#CcdUO5g#_!GvSX8L^rx^AxzjLhF#hhzB0}~X`%`w1N7phfHsrhz zU%o|(qRhz5gEZ|c^o>S(`S|y<_78yJu|g7|#7n{D%1glsp=-h4+(#CVEA2@)6aEF~ zomV}d(w-0HIZ1yHG@$l!I14X((5y^$EiT>9>a;m`WZn(ZC-WNm(O#o^EX3W1=@+xC z#2*~@THb}-itByYrfKxQ-TP>H#bS}$RLvudCo$DJ*~9=>xF`uZC0$^CrSuAToNK=M zA{*;n3PtJ{x{cl&j&C?FuIyN)$u1ywJ)2jSJTPwDA?>D}7mq|3zbHQJT7C^6(LtjU zn%Mi9enD)BVnnLz8n-npMy|bKQNkkDmUJmvlmkV%S1lDUGC@i&Wa()#Bj^*NMWoZJ zaB9;(mhz%gC%E%zk}Gq#et={^ zyc>D8N+nI)!K&TvRRYvbQ8(41k#|KWt}S}2mE-;8`&pfz(pQi0HBp&l?@G=C$68)<8n2+dG4J1{zLFtQ#WYEW|wRl#;Zo%AX&&t4hGJ=vQ>*X|6T4H zO82Fl>gxE3&XRv8J{49mBsRRciO|)DIURbjCT#zK>*@b|0=JKBa=%gwy%X%InN=a$ zX)O;(WFi>#=nyWIy#vEWRLDYFA9xOf9uzXh3!>p7MNaDw}H10lKTZ&%w%YOTT{&p^{PwHT%zUn2GoerVDGo zn$_#Ha*DQt{qVk=8Cqh8i_Z6`+=(-5d-Y+~2E@?8k#d6Y$Oi}g-C^_I_ofRg(w0m) zMVD@3>iM?&733*R(VrDw)VlcC(@_K)2!Qvh_Uxi6YF(jHk`sml{)Gv5#W@i}d3WE-umzPv z4V|-_ce9ssnWN)PP#W{n0gYK$#n;D1H7A#T!k6obxp&Zg;Q=a3^=I9VBecVth0jD9X+zh?XN|WiR zBO|NfKug#LxyQ_0DvFh&C7)>6W$5F92c9SWS>N&O!TuaYB@%%<7VH5%%$etS@*9Jk zi=D3?%;KtXZDts@>Q*tGs|9|mPu9L}I~JbRqN9k)d6b;h^5&?9q~hI8mId0f#hX0d zYcz1oX2AtmPQK9`u-^%9lWGsf4pOJ#J{D&JYb%Y7XRPcIrT6&(0=Vl60%eg=ZH0t~ zcylmpniz|juqah80XuGUST;t*x$dgkR5w#4UNhMhFF13EQp&JB@2H#W z(%eVyRJ$Dawa(E{+xPE*gQ@Es)VJ@6kpDF{?rC-FbhLPrgAu_fM`&kQ(^Y0ezn#_q zuVv6Y>43=5ACjx5kwe8l*mbBpkv}NDpB%JP_!3NqkshRZJejA_hit{B)EQS{Kh!-& z&H1iSS$eCU)3}|tRL!GBq+a9K`L2&@%Yh@86AE-r#d6l3o>wAQ`Vb@XufRR{4^7QW ztIA&O7Eq{;mO$y{e^eKr+)DJz%*hS_N5^ZQb4!f~Byb>DSe$i1CHG;t>(3d2+{_e| zeLcDo^t{(>3nZ&x&)B-J(4V?D*iJN#y;N_yKX15!3}q#PCmxb;RH*}(%WtV|1P&Q7`@6tHa4HudNgZsHJel}8h(A!ZOapFedkyol6ytCK^^1V3PYdUMB&ONW$IPY~{0CkEyKgOCdS-4nLYs=Xs zPBW$54?OH3sqD6!bD^VKi4|XOq(bdMxJTf(2=M?|)WM9;i;J~`*NWAyU&2=r<4!73 zZfLa^45EanB}p=Ls9RmmwO7D`!Q(mOTj|Y`9b7!8*x9C`lNTH}F)rw@D!$dz^?kxI zCDJH^wGca&-zkNafY4g54{Qsxn5q3}A2@BQTGdBmPb+k?)vImNA_^gZ{r;J#;gSaM z%YGH&8b0$%^J^odsLo~E49PEaTiSTho3q~(WcvPaXz|T)i(9{pPcC2;;+%dWmuBWc zamRTnyg&@mkiq5@CNWWukrv-~vyO58R7*PG_z(~*s_sf1OW0wX)zDmVus}R}Wko@P zXo|y3#*%$PBRmJW#5MLx2+!K5CmPv?&v~cd4w6szPN#J`EanXUcK?i_vrS!FEJUdz zB^p0lw1g#iR$57ymIn+{Z;9UX*u*d$@O#x;E3ur7gQ*O0%vCd(tf0+)2`}a#lC^GP zo8gd9Blh-)Oxd=3C87fkCZS4>FFqTr6QJ4e?(Mcz6{)u=3GHIz0X_@-r-_+1JD$T? zV;{uXN^uXvm@Q`cPJHa7FM8H){{+-g-a$iJx(}s}hO|u0kid$YX5UhigwnbalooO3 zx3NHJ@ySVf>%X^5PK6BLwq+2{@(C{TI zON!kVaGsh?`)mDA0&Avg!T%h4gf7lYZMRYJ=gG6T7k;bGu4rp>ynY??QU6Z+$vars zB=23yTfmGyQb4=If79*N=^oubUjCg!l4>YdU0!6BVg#;>&_r8IzO4p7BKq{|>tS}) zmT0<@0a3;Uwq(LMh{O#mLzVIJ(|efGu7NMuZ@ddz(tDfZDWfd2WF77PZ zk9wwvb5nl8AbRVW-kVg&+iURS`%e>HvL42$cY@%L|Im!&v~?9JEF7bViX8^dr*8w! ze*qXWzKI5u`l!+EEfS4*MYyq@R+?YQ=PePNL2_~VpNm=5 zvVPim6;*p)^_5f~ve)=c$#vFux}bJB5@*#}G&#bj2&lS#HC>gvhJlQJit}$)0=o^? zY(eBTN@2%0Sr^yDO*_pW%ww<)TR%Lj5WT6m!R4F96Wuj2J}J66(%!4uvyU5Ms!CXp zjnz@-!{Gfyadsv*D754f>DODErkv`hyKyiRq{Wv#(0{3T%~xiahV|u}>og zG+Mu(rT0L6PrffbV4xnjcr5YZj{%BYv*1O?8g}F6rS8X4vZ(mv^4759?a&jDBv~xK zU4@Fybscl@V_ei5*oXsN4B3&bS=zDYW1va4lQq>DRUEMw^DOIdTx804@Zazj@~T=$ zg-79i%j6+si!N^Gv*$A4KTEZ4_d7|iZ~8h%XV&%Q4mICHQDe22;G@9vZQO)us9=fN zB*aWpwK5*j+`J9_6msl!*NN zqB!LsIolvWcw6#3^IrJ)@ym$>3(IoCC@(^wk}LI zXk=VTwv>4pibh6n$zi-bh)6S#`(Jm5#sOJrB?hCk|v#vXyZ4ihLLLdxb1nu*$6=@kQ{lH|{Y)&6a$D|(h{ z(-XF`5wNw9&_oP)oKlX;vuaLP=ex@uZ)4vL59r2&SzR-+FZfs$N!{Ff;tK~dudbzx zB{g4PuyG|aQ%t*-&Rv)?pP6ZpEQ1V?)$N?;OwT;Vt5>`A@%=RW^4E!s6kkWwSv_~= z#kd-8UY)+(&89n|2)@RUoc(@Jrs{J9CkhJje^%ddoKpm@?Cn ziOAp<|0B@!doKFT-HV!=7HG9KsC*_BNAyOaP4N)F@2B_#(^2;d(VQ8`ZIju|Uj)d` zO>Efew(+&uf*DDYY$Y4#q;rG&cn^e7z)u@JjiqOyW{?;Q+*c9g@3`|NHNox`y6zJR z&jRR_7bTNdcYv8*h*9gcw)E4&BHch4xWQ{M2k7W--Z7ibINhjQwKd;koz}H7j{-_6dFQPOlkOG=2*6tP*Ui#a-1f;CW3| z0{(5FgM84r$RpwdwPw~?ud~I3nd*(+!rmso48#{0Z3^Qk?23w@-$ceQqMW^uo$n>JqRXq2iq47-2H;}KRS;2xQPq~)s4=?_fSjXd2-J&UaZkhD3*7beumHsKEs|FduBAGy)I%@gr&y~D@&d+>`eM^^Nq zY8nk$NAgg{a0_uPJ!_*qgF^uvdJCN*X$TmsDt@B-xNs_4!oUOG0T(%?Fz)0#EPWu6tnzMTmq&M`4 zX|kI&vk;d_*c^OTWnHl=ZDtp6Blx3Hu-Mr9Um?f;9F>Q8F3)C3fcq3M;<8{BD^tJ> z!spYqt%LG+iJ*PHORrvEyW>;vo&J%MFNLQr3~Jkj*WD+{EwE+L>dvn346_)dFG&m> zgO=wpK#ofmiJ!I#?jPpv43$P8LYv|?DSu8;%Y-+}bbqlw9nW=lHz)W1T2${)c0d>2 zB3m*mbV^BIz>Z=7ZjjOv5Vo#I&v*nPFo>h*baJ>%rD{Jt3f+Kt$hb%|p}=rHNI+3T zqhf!MO?^NzyU;R;)iZ*<$0kKcI8yr@I_cJYYL&7KJHA*H$MYl!XmE{<{G1{RXK|#kzY=X*%kniPW#u z&^yOs`5^`fR8$@=qhj|T#$epA2{;=g-k_v)m4$a|6?k9gwH=WWq- zu4YyM-ag7)P-uE(HpNYmmN47XZHnnwtP_RnI?pEEy@Tnh77IEm>?f8s3p2wuo-I&p zY!`vF6K;UVSv|dbL!rv8_U!8YA^Xt))#puBaLB2cP)N{ z1=`Li;i!0yi+Ym6OwATjMo(FJ)^d^;zmBp!{_Iw~n6N?5ym_w?0&8-Ma^&{R9SqKt zw3n1GHJQH1&HU>>eJjy>fjYKkn?~`5RE1>UrCA0D?MpAG#%YtHx&H(@+7R3G?2a`9 z-Y+al$D#{AcJ7S%Y0W!1072mzUl#Km(-MLg!Yq#L@4bFD&5>6&@L!q$?~dVAe~mp} z$OkTPf$&^_u{|dhDIMO5*U(rkhU)#R4;EwJ8 z6g&kU{#w(}Z?n9rzYAw>Q+|W+=_#3gDcTj2liHlwa`?qqHjjE4^7t)EJccLw9;Zy2 z_Ex)!kSN(~l%R!=l$_768*9buMgu(0kaGMW*{Gj#c?+sFKdIm(t@o|HK_|LhG~b? zSp!U^(xH8EK!80Ct}Bwl%y_P_RYz!XTI(P5!gZNG*_}g|7ewH2WLJ<-k=7le zp>-}}^5Q8KKRh!kV{>LGUK}Zfh%u04>B~B-QV1+H zZrk~0%(OXnl0{wPi^%nBsDY!K@C<-{c!xdihVbhBkLT$2K)02wG?9YKUT9V~+hwF% z=E}^RAcCYOz^lBMgRT#SZ>vbSC+7L+g81%-q)%9fx#N0mzTAj8TX!_w=%9*aig;%FYc9iL8{G(Jm`=8=#`aaC zc0#uv4dW>(3+|1OBAkl>hh7Z1UYs$lLcOm{%*9b4ADsxlg;f~G59;Q+N~{yFOH*Q= z*CAO@+2?0ZeQkC9Z-!{vfdod%nW1WWsv;{^U2g9ZSLUOuYIGSE{OqTc%nN}6m4M@{ zn4sdSz-#eTIiW;fTGsHesG71UU9I>CsgS0|O&5{6`1WCo&k`OBXTHcwSBWmObP?q{ zO*&C(wdpWzKK8AzM^Yx6U;7pG)O%jL*DR&|J9-tvgbBCcp3yv+2Ci(kpVT&=THI*$ z^lDYE`|g!e(%M*dcJ+ykq%Cr|b1Y??{-ef`usIj&;t9X1Xe^ctG@5%#t!XwFc#gJM1KW4C)s7TUe#mIChXHB)szz46}{d z(v1ljM@&+>1Gfu&0D1$T^=4ZI%~Fj>D#8MO4bw3*hLgWa3_KiSwzFI}K4DN=J{a;c zXfxPaAY%MXH=oyjz~~C&GRzWJrrC0O)g~~ZU|3j|n7}sA>41Km_)qfNz|h{;x{#W8 z{4Eu7G3Z|Sr^n04Db?wG zSV-$Dl}j!BJ&H2pW2DSM9S2gwEXyU+g` z#GBMdpJ~M05$f@BzHM3>&Jqe@EP}uXs|cl+nX6AfhH1^fit!`*)hqaC9d)d$&9&r6N zE>^U*+fobi;%w2f(#yqX_{PU-^;hU{m#9?msd$6cFCX$4!QwkyZM5s`kz3?dmk$); zA^4|^;S`9+^5Fc_rnGv1QO=$-%4f29=;B{09rx?QDvs#NH?Q9*gj9@WS;yuSt#ABt z^z0t`#a^u0fa;Gv-r8DF1z*cLCvGLT$$K2Y{H8R0y3j`kPFkVZdBP{jTR3dA0`{;PAVqj@v)TtOP3Y z5ju8R)3Sd1`Mm}X777u$MR#be6@ap^9zwfY7V+4d79Q9=$lylC@sDtURB*Lv~0DDfZbnGZcz%xIac_j*}8eV1bloLFEZSY zs{GPBt^39Ncf*@i*`9b@xaY|FkfSg1FNawEQJ=I&N>ZDi{H-1BTAOojTOxZk{X5MN z$Zsd&)m~=IOP8Lk6D3HDT1_Vp3r?3diK_i^`_9mtkHhRa0yaJ-?BKDtoEOvv1+F>z zQ8v5G*QQyC8g@dj5M9S_+yN`N!v2Gh^0$AE3-dDD34Dw;czkQd+A&^|kH8E)^OYn{ zuSBzrp~ZhJOIJUvy^tuy4C?mEt6tu79d_(WYld&}obu?mto+h^_Giycx1IXZYYYP5 zPvt>%h!WAawr!Dc^AMIEb};PQV}%!6-i>E>sjl97vA6bBiOC^OKTsS6kK@$gxYPTv zc}y{RW2;4KR~OO0`koPr8@ROG4~vylTGh&2X|cFep)rE}AC}HKuF3Cz|0*CNQqoca z0xD7>9g~(;kuH%^x^r+#OP7G;2$AmY?ik%LdNhpMsO`7+=llC(`{%wNyC3JVot<;8 z*Xz2TlMKc;+xy_$a)HjoN1SDxh~%N z@w_$omTcACwJ2YT(z5DWpuH?E#HS|*G$YQj(9~HG2nQalKujtCdVBm2C36DiRz2W2 zjP~7c_)jPWbeemw+@mz;WQ2DmZ*-NcyqugX5HdI&CX)Kdcu8*ipf2Wm=U~2!^6W~L zE70!5C&-OYVL_xZzH9x4+i)Th^;3XUS*>_T>QHhjvLi*^am8T5@hjjZv{f(lc%Q(8 zfA=qmJ%A$rduE+$)hSGjPT7g$Nf1H4V0Qedlyr|vb@(PwZdOlvXmot&3Q2&PJEy)9 zvTX;CRqU!ew@mQMA%e1zUB{9medqlM_04DebOLD-O92%QETcSZ&a6hsDWtW@s9g8> z+cB+g#+?Ywiv{LNke0M!vRSDN}Crbf? z9sd2JY=18!XDnCbbPcg(yT%x0V{U$-%S3OkA+gu@f-qgVCoszmOrsPwgSGSogSyk! zLxB_>S~t<0pNJ`n9em@)vfrTV$Zi1)UI)g_AG3Fcg9%YugS71v;$np(H3wha*CmIH?T_Kn~Vfa_DJT* zw%@UmDbG<~VlEjbqmAudW9ySh`nS;DZ{KlUKE1O_t+b@h9oLagYFqb-R0ag~%Cn2I zlk}tH7YQO;rDpigLF+FlB7X-X7b+9 zfkJAcuZ2Oz?iHLd1^3<9x$wBvcuwTlDvI;4>G6g)7tJ1Fo+hZRD5r)RS)Q!b@*5jC zcE$r+g<1{U^a>E%gWAuD19(8d*k{f9mqw1Jmm%cN3ZGJPSWcA6_%R_2QWTZr8vcO&DK9% z(GPDma8S^f+L(X)>?-=Gc@Rm6b3|Lo*64ZDFL+L+gwjzYT6x*67_Il$bDRkts~*aj zPLrcBy`Yq<(e)JYqS(5WEs9-C5_8vcQZ}>Sn7a{f70OvU0&H{Th2k#(URC?<$h{50-i@R1WVCZ}3&XkG*jwE%F!$-x0s1 zy65$Mp_w1BtdygZ4w!F_?$jgR`on)Jhh345rrZkRR|FFPS|)JqV1b|Ha1kEk` z?LLIQ1LOV(jm7vy3xiHDMW0bH+l@BQ80^H{cU@9fsXH-NbwEEqPKDWHy<5E75hoB1 zR2ys+HZOBx?2h$!adu-ua!;VJiyv<--{y8_l*q6Zw`P4|;8`_*CWFs2gD`-W|Cvm4 z8Lw|@u$Y=%Ph;EVGRzjsGZuEf@)?O#Mu)dp5|tG;IzgPF4FnAw?>%rme_^dlWTg4H z?=ofSY<5xEk!}>RuY7GoVejShw1$4Ef0tkQKiTU6O~Kjt z+N+1_ac;(RJR6qn{AE*dIIRfsbbrD6<|mo5auFCrb=a9djCi;tx;P})_!9lFX^ z4VSfWt3@ld+6Lh-%v15ypOGFNA}>Q?>QY=(NhW(OV=noYVF3)Wa3JN}Oo80*Ao{kr zW}m?LkDrj{o1`cqKPJ}mD@%$V4jgME_rV4q8$Wk#$#KRW7jmo&c%I=A2HzP_ zE+4OguOCP%Y)K7U*^5EfI|Q<4v#r*;HwPrSjR@0$)|nHAAchAx#IX4hbCrV^CgqxG*D#G8+Rj8Z+?T|2Sp5?pxo}#-)>P8(m{$4mq z+Jxu>1rLFE294$bQEMs$>kPS=+i7T>Y0OUQ*qRXPCUZ0bDCXEcA?|aOP%!IPGZB$` zc2}`-$<;cq1beWP`TcF#O%;_YH=9d+JW}8Zss)cz^!2sbIoAwX%5U-%o9FL#7iU`K zh}S_MLNG*vXl1?sGslL7?sMHjS%onY$8_2ztA)uAFlU>8sMY|94oq9DNJJzqCa+om zjnfU}0WK)`@%5v5oVR>|Kmt-cq1paD_7ES4HQ8psTU|qfFqF9Pq+_+9EXmHTCTrYg zq&RU~Fz;riw#t%9seJ-6BdNK`o1xQzs=|LQ*(d3l2d0GRk<6$orbO)X*B;I={6D1$ zEcxrBd@dT^ULETx3Rkz*5e%p$5j%{U}E#1~>(W7A%#9JvamNOU|O;@g^C zd5KK$GuGE&xufuHfyrueX6_#6+R6L|?*UIQAJKF0t_#YWNj4k5xC0DicxJd6pbOM8y74-PoLmu zt)<__)zusyh!wa8{x&I#&glLvAPZbtMKr&n4X)8XV6VKiiZ2d*_;$v)JL+{CED_GD zKN2}i0f@2sdl`G> z_2Coii{!rwqPlq4O-ETlf5i#t&nnneZPJN4 z5m9Sd-2F0Fdc9fcJ&lSPz+O+|F1la%T0p;-qvmt3Ul~QTp+tFVkE!(|h{~Ezd5C_; zhEq4=hJcfbve}Yn!b$gtY_BoLTgmbgb8#jFOe{U3%?@&hNT(_$vf+-tkF|P(416ks zFhvBTB#72vjwerCpHYlZaJ}7|n|*`^luj_g9c|8fbj3uQWp4REW7EaWU{R4{iD-a; zpxUtG?H|?|ZlvsWT3VE({oMWoOhLl_13z}JLz~@QDj#CD^Jhp7uwW*hbmhM#X z$*A^OYvxot_CJ}DGo|Cd+05U8fj&alk=~NnS>GaMZXqee*xZ_CqdJsqqU!*&c}=_?YHp(p9Q+?6s0 z14j1CMumgJx{yB-2Fr<}ju3v&2JR zWzTV|yQXIuI*}J`A;XP{H#S9|LNpUQkFRm|Y6q`ho%-~C7yn4Jol8uqI(`zjxNjj1izUQWzeVcb{(|Mf+N$zDK|R~>#a>lM zGpv9}E|i(voKmjqebdLgD59p58+hxYhJ(oFO87-VMjYq-qdC(AEs@S1q9SuiUWqQ2|3!v*)E0}2A#sjTF*x-0`zv&I%G}S{*Gc4h|b!U zuj{$e$pd!=*=p9S4dWf87rOscUPS#o+jRaGrvB~0Xp-scP=?|IN4D$Yd@%xg$#@nj z_p|kkeFx6nRbovqwIFh6JX}Dx_RAqcDLtM(u-1jX&Ig~AI^aPFrZQ`xHVn9oc}{Jc z6>#_lEyRA&m)V|h*J@*lKx3~-FIrkEE)pDaS2AV5EBVcuLTaadk^^d+aC-5!?^b=j zcz=9ub!D-JGD zeFV-S4h1RfD;Hq*@%rt80bbXIb&>DiHUC~FN}(qnv=EK=Hi(6={dy7(8^`+(BRT92r_C?^M zl~BO1E5ikt;-a>(5r0uw!gBb~B~S_7j1EYZYTkL8G)eZ=?h_mw7hZ9df}LyH>N4h(9*AA^%Hu?{$_uBd zmb&K)S%0bQZ$XR!G`2}w7bhO|8LSZK-f***R(i$k{KQO`mk!cRq>mAPdF{sc@Y}n( zEZI*5q3HsjdY7*+pHvzJWh)oLX@F$Z@q?cW4L0b@A1$>k2WS zX1_;zT2c3rH{~xF$JK_4;N!KJi*ZsoH#VlXV;R0TKGhmP)B)1G&11#$ez6)Y^hRPH zhI5!EJUNpD1F5t|{|I+p0auTuS2G-R1rMVCoGU-XYdG~;^SO?5t35cD_BGDHW+ZYW zpWjJ_V@>%6>N8AWo^PP{QNNXQqf-}2?$wTMrr1{>tpD~CQd-pd{e?G;PRMNLjprSh zNT#_lcrFVN=$2Ha6;|#-CL}7}4EAmQ)B@l$Ap74zAjp{UgNoQ#v#2HzEfueC0kPJT_1^g-1==WGxD z5($n1CSV^?gLZCFCbipn7wRjtDW<$&hx#4CT?L5!*HIaTyx~|$6l${^ug=HRy4tDx!X`(lO~I z!KYtn+1yFp1|@qR0}`Li=|Mx1dg00!YhNP^^F}N9o#x_8DsC%F|73xvtiscXJY=&E z?@9FEDg1@~j?BTez`<(Igk#VlnWi=774-8P+tz6a1KYu?Z$hPECjp}1Ac>~ui-6K7 z^@=z&?kvmj=#`|n#{lkkki%Is1&wQ0MAJL)=6Dm?L&MCk{jN;AVo7~y*O!pVThAV; zmY=iGKlaR%+CUhi?oDjjVuEkin8XX#3%LnWP=GzQs!ZZTKQO}U2m=RK82 zF@BLEsc8yswOks9BS^*Aa2o9F0p=Jhqp3YsER)OvY(3@9ioYAjrAOA`|1~}--qSwQ z=fS@cSMp&qOh2wWa218wZ;3LjYV=f1a;MlM4x~HtFizvQ6gr3ofBsU%k6;{8Bx9x8 zrfns=iL8FvWW{dmspn!Z22}SH^ApQ5&oZRaK|$mlB#VdqDRjn*dr$xnz6x-6V8n1S ztcxOOSOo%bDqpcG#Z*1%$!--eA^@y0q!vxb%$n&w_nSXpTOa-ivClYRSuyUZr(xDw1tc zCl`ZvZ;14FLz`@TCYXsb^b6JRSw4oEJGWJzs5lb(nCOhlchFu8sC7ayiYQN^agLnD z2FZEb4NzXf|B^O&^sWkmfH3DBLabuJ)r$eR{W0DIXc#uo#s-c8puIr$|J^vtDE#$* zJvg1^*}CC~HtgUf3%JVrR$&a2qX?{|@gmOpu`~*~Ddxg){WiQghr08B0iY`Y1pE1C za&*Tr(UjVpd_`P2*4QbJfhghkqA69{_)035RwQP!aayeCjp&=f>{w6XZ>k+q%b3rWW(0pWamL*3gA``Xts>m70F~f+U?PFV)RC z(l+Ox*8TJ5-b73v=a_j{Nv~8-AB!{Deq}3=yOauz^J90*$d{YR*xy7T`(S<^YbUN< zFlDse_WC+dsw~fD`Ma6pdp81PTAgV+q5*%gOEYEMn$$O)1n;BCFz(XS$$(#Hz_A5H z&U;B;iRR54M_1wkp^YqkVcNR?Zv5(gEXrkkIqcVU?UgLwH+2s?$-OQ6$V7*lM^!G$ zv=*BYOqgvkHU83HS|||o+bR5%b^mfq_FMN zTGksW%Q5V`3Erx6=({U$R8v7W1{!{XA$K||HAiCv*D?0BsEKv1L1!VGX@~hGuBD^< z;{IpGTt<*qce4qgnd+DU(H1n&X{S#L$hTD5rLG<8Tg7YgC#^f*qEj_icfCV6s-%76 z=uYFOmg22?97k|UE#9|*sQ91<@&_hEitaNJn~e;sS3ZK6t~11&abv~Q z$9&rg6ACyPO!nXITQ-;103-E3(^oy$Ew<#|W|i^GIm%959Y{xI$cgCXLV5fEx7I|u z1*&Kt?pP?_N%Isu-D5EU+2t{QG;nhkD|ywN7kv<2@rxu+8^mI1$Z`%4OZK7CMMidj z7%p-Jo5x#Mf^0)YNt8@&wk}UiJX^O+0bk87b7w3N?72E(A6MMxSVa6^%*h4pLvQF( zcc^#=f0x6^-`KxY(IO!W{lNeet+UuQNC($jqDFW!hR;?=l11{RpXp~K2daKD<#hb7p3Y@+_o)@lg zYgLVBulr_oLp5mN4>i2iYN^YM_S^BVIgND@#`-D?VC(hooX7>n5+%ST3CwfSq;?6< zP8$=%N%_`9XK$&{x0t3DADZS8853{N&??G)#nCj6vLO$J&IGOVvvNe27LPj|5(((3 zJr2Dc{?kN!_-W*?GpUwfKLEyActcia+s;SIN%3_4<%_pC$l$dQuc&r!$J>9O3J}d( zrn#jgks+7#y%#GuuT-)5gJ2shgSCQ92fB5i6*P)t#x>FRb~He|z0d4!1y4G$xs6ZP zYGeVO-^d@eE};usuw0jBj+Nn7@O&a8B~(fLVlJ)R#+AL&{CfJDErtzJ7nGFBaRX6* zk!>D6Y0Dcb)hM@FS$QJDHDvB5o{VyEeJS~_@_~=EWH4*-Z4L02MaEo~ovH*Z*JUm% z*?HwbDfE_woaN}(isjw`2e=i|{ghBK!t>{pSL#=I)54b5m!#V+pP+YcypmA90d&kxUeKE*bOTrayW=p7U5tnb4_-Cz3z219W4hCKKaEed~r(|2<{b#k3 ziN1oHWr7fjPbHAqd(Xz0JM#sk%4wFn^foD zcWCu}7~t-(!vE-4IR2)V4~FZ0Lyu2E z%&?v@yz9=BU$Hs$t=>;f{&?%3!}FeqYmJfJX7DZJKB;)GJM;9YFW;a(%ax^ihF08D z)R_FQhqyoWZgWOHL+80B}`1Ims=o={&To4qK7?5=%}E3$pzDC{Tk zph}+Kcr$)qEoazLid)4<+jRZ3k=o0*wwd^Ccq6&Zb(!KY=2fVwlB`X(Q^%o1)JMyQ zsRre``z0>K@viZe{TDU_v!li=+XS${KgOMDeLGieSrX)4%k^<>dE|xY=I=br&YCB- z%D_{CEM?NCcYS7n|CY&O(p`%g@FZpPYTHw!nM;21Sj@r)GNK_O z&N1^ptH=CWbri=(@h5XWWQ4qQY1*&71FqUn$UCpJiGi=~ix8-%(+)DVO*PZsmrt5}CjARKm{Comc9Q}VC z&yJK2we}fba=l&0@cUyF2+(cMQ5Y@#4dB%}CfNmr>5QsSw=<6*s(;rC2Lh3i~w(m|Gk3Y|;M`3OpyT~D>z@>O7Ux4M8LI+^H8m{ylvqpg9nYnOYoxwFlh7BnG zqy5KM-d>{(vr4Ud2HL>B@E2=<9Od|rJ z^ta@M)%OZGkg)d9oKC=&mW+@YseO?IA4ogCF@)7BeelQ+Ra%Hk2B2E>Ru$Qag*|#x z1QiuIkh9o@m#hp0>5djIHZ_8=uUP^^a9L=XwGna*pF;ljj#por(o?4X=qvnacByw$ zGdkk4nOgnglFm1<2D*YZVa<4#v|O(2{yS1|7(Lp%g3VqqswLJWB%dvQ^Hp=iZ?!aA z`PoZao6$jz)IW~D0<0h4l%9mH&bF!V;U9Adm@xJ8Ynn_^XIom{RygO&pn6#_9m-^F zbl`7|Oc7AQ-DW6rvB*1HLeIr&KWLb_xAV)^!ME7 zo<~m6@AG+DeZ7~|i*FUV3R%DH!Qm9izyrfN^htyDlBh|lS)RBaI{+F;uQUwl$;02C zc;TM%G;Q|}AFPPE%1GP_=Dr#l<~Q5Hi&u#GZAaEL)%{oSQSeNQ?5K8>a)07kWOivU z3V$X<)*k$Q4=|#DWD;MEZ4&HwJPs&c1+$*$rxt|Nkqq9Yn)seJKinqwy{U%^snP#q z)VR3!k5Rs#BCT|9v_5DtiRc2F{+6Sq_>5{ZwlGM5>`&A@04?#dJ7Owpq4adPfm-B& z9MOa4DZLjL$S<0Cn8OtP*d#t}Vo$tTrG|2%u)a4?U@fb#xDAp1^G4q>T-R}^a>Iay zJaHc{k@{@8J(M4GqO+t{9!OXIJmag?k!fD(G~Z!YqeSdsOhb@Ut>I-7DdFvRTyK25-2(6|4+bpr+l`k(o zznq8*iVO3Ml$B?Ec*aO8qMUEQ3wQI3i1pb9d^WACpv`#d{bO?F8sP}#!w+rFF+14- z77|h3F;lCtd}_Tk3VZo9v|Yq0X>2XTP=Za5G4FhJW^I_-HZzH0`a@SG!e=^8PvCDb zA8(!!5BP|(!+v=8Zg*xNxF<9Wv}>H*hKrR0_=YmBiT7AG&lKZA)KkKpaK%Y#rzE6+ ze(7mfe%9Gz!y5*A%u>eut_bWYQW~9Mln4C_l>&WAi`=Q_)8*LWQ#h{J7mFIXNLw&X zx-uH96HkM5ig5Pf1QF<8{M!Vxszm+$RxT&B`0pa4f53l5>GV=IS?2I@hY_7bt;CzS zyKfNCxUV=p&!L;PPUq7(p3}$cS7LtwW4ffnKIu=IvNt_vU-WPF{LlMz5`mCx-@_@g z>zYil1jZ6;yQrOU$!tt!S;0(uCj9pi-ZSF9vPgy(4Y~Lq>~@jeWfDO3ot_CcRqLvz zEqXgqjo!qLz@gv-w$k>-AA16sAb%&xUF70Hd1vWgbc^&e{R4_t#;l@yjK?{80wiM_g&`4$60VfR^K|OK>BLN zKf4FBk3~PFj5mZ~COsQMB4JQsI=TY0$NTPp(!sjIcC&%?+MEba(#&#a_-u>2r)Wd} zD)DO5QATX7gwU4bQ2Vk;U-$t~)XLfg395xQUWoEeLN1v4hSCGw)m~?6EB`GSWt%-2 z4Re3S)Xdu{_M0cOtgJ+)%fS$lx}M}Oa?>T7$n?VN;!*4t4}(vOUMHFC5A8*8Xg+=- zEad=?es~+^6^ouB8KT~B%?F8Gfw+73Nm(V_?w&TIskOi4&KlO?LOg-qg6Z8!eC### z#i|J+`$sf;IvKBwB0O3y3JcG>{5-aWqNe`ZgHfLYvn!E)(25HR{hatAp%PfHWJ!F@{f*72eNd?$PMTQxT(?t6L#{ag#XwxHT#Ar8e0_v< zJnafXxjHg@>&b5a;7Ikr#VAnd73hdllEg84wNX|93n;m&es1q8>v6{1nOfX&vW=$z z5%P(8J{WM~j^MeJj)&aYDocRZD7N`MTO;p6G#U(=}FMKGw>g0N%=nqIr?>9soNdqA@;ei1Gf zjRHf4POhGeWR-E7e2p>e;dk)SIR{CDTWicfB;jM2Aq5DUv8^C_thw}x@KKRH9*q-b zuc@uog$jf1^1-rKQ115w)CfKrcZ-Y|&f=wbJF4y1Z!P-Kb^B1^&jwvQkAw`$nMOso zv0A^AOfWT)Eir$c==h`5lgz_@Lpy^ki!Yb+oXtDOVS4*n;3AzEubKw0c=)MbQgT~F zv1*ti6Q}$&7uAr?EQd#*holS0ZpeyP1n&WVk5~*LkU5+D2h-lz5;BlN*d*1`75j(F zhw%iUl5csH} zsib_L0!vW$r7QGOLi2dTFzdj3%?q=8ZAoW^X$6QzAby_0Xa_yQ{=XE2Ry&6&=c`M1hu0ee$WH! z#a~ycjoZ3Tkuxfitq)CTG>}FDtuoWwuWuhBMyHE|%!RQE!ba%`-QpE)gf5RGM)jyUn|>6U7+7HDuVc>u&41x&Gh= zsg-#|)7J~vVLhCaO?o=V%DbcZ8%LNY*ub6bU=UF{4EG0n&~6~ogqu1xEeD)ey`+uY z2VBPn6tC!W7n$ww(xWNCt74_`)?4j>djz&f#%H4FhzgW0_x9|@xhB`j)+4l1VY)0gJ)h$itlPNl)Wz7|aQP|qgDq{1W6kjh?`5f_ zD0Zpw)&`UejPIk{2Of2SEspmzgqhrj=m)Erd5gnq2@lvzf3z8X;Q@XXm+v9}#5-=g zsOfiJI2m+imX#>o3~4SMZ`O`7i=6KlZbee)3;Q+c1o# zJqElp*GYvt_kF@GN+rB^VHiYd}^_qB| zyen5A&8qCpuEtmThLsZ+8;OEh7di^hXkP8n_>iuc2l2OFcnfkkJ z)JD>%uiR2l`-xx9t*}sMo9$iv6P~hCS(?3(QLw%L&!m}?{f(_Z&%o@RoEFx9BsJPM z&iSWl9(RfL5f(!)Ylzif-&W^qI*dWaybW=)iSL=W&mh$PIHFzu5tSQm9P3jgdNKL9 zDfB;TuOO;aqdW!p=sqyckxNRVPHQ=kF@EBamIomNRt7adYcC$?>Kg55WfO zq0(@X4NPnn-2;;e}j+M@CYGe!{?x$2526 z>}u=RQx6+>e*Ee!f8EA=k4~)!;E)`-gAbL{3X@QBn-)5e`O5`=O%QpuJyq`K+QjEg-p7Qj@j3$27jw zE4qed)@sC_z~innnG&(z;jFI-r_x+A56hGfc%=1&LJgGNFz;SDzmj_kW4Y5vE<)(U zN^S`C`8pT@0m?Iu8|~k&e)gB9|_V!Vi91_q)lcf*>Cie?l*~d_vzNk zugofNPSsqGMS5}1TK$yqWe*E}C%W5uyw|DJbgq%)R~cA%*CFs!blN?+QN3(7P~htH z;9Vg`w%O(!wiZ!4X5YkzUgnzJo46tQaYt*h0|oM1U0AQluESBrAa8?J1vo@)WZj!h zu|+aocyPi{JcXM7>-n=ab%S#7+|UG;;C#=^UP$|4*LXEMFc2~6S( zdx6czY0 z)mtf18i>6{#WFb$*PkbAd?h$3B>0ciiAjCwo`X?WqqC?BYEoab32TXg73wjIdrLyD zWz9%KU&Hpk>ek7eJrNTX_9s{Wq_4E1yBAg|CnJ9AdB^g=1|M{7XuV(GANkvBQe}Vz zwnJhpogW-?{8GQxTq|m9zcEe_0LXH{zU_Z>;adtwAKK?m{AK&^)v=3hu>@|@YC~&J z4o$djtNDDZc~J@vv`&_|j?O&K@Y?FWeMs}N>OtV1P^B9^rl|EuL2(+QIU}sf!|s;# zI^6Kl3rR|KQO|=1{Yh~(sViQBEY|zKBAQ!Qb2D0NsrM38UVG{)n3*ud0i{ZDCNrvEg>b$+Ytbwx8dHT>% zxHb9rGKb+GPl~fIMDM#^fn;GDt!7a^uSGI^<*bM;iF3AjU))-lpU|8ntXBk&jy{TB zmPKtsJ(-4UUeoOHQyLT30gQUP;>9B1-hkUFQZZkkDZNA&dGy7K8_jQvF@cRTV=|fX;!Nj-VVB-c(~M5d%}VEruJ?V`m5oMo)ql2z&1{t%lIaPN0@qsAZVo<`ik*iN z!blP4+MiqKF`_{HXQE829`nV0mYuwHduGWuvFI0jgh`vFI)eIi&loyuhTymK?+uw|KJ+i_#N5at zaLFs?xHs1%8N5R;hvM?0;S%xYfL7|j4>v)Cy0udpW#-=f-*!V=kO#)8I(ztJj6598 z&At;p650RM`u*4UojR+w0+WCa$n>nmYGbzrt@iQ&q(Kqr#6(ozht)P;_#Q#+Iu|JN zesWRz{!6){p0;hrbZVbhmk^yVe}SAmYUtn8EMfWVp85j)r*sBy zHn{(sH5hDuK8&tlN`VR%HL@iLrNORbraYg6wo2TcL?7z`r*TZoC4jf5W~0vph#3UN zSgqNMmInj(HgT=PA8-r#nailg7K??XWVc5vi+ECPty3D3-^AH<-Q=TvOrCE&TDY%8 z#(TSxkobv%OA zc!T>}VR_LGFnjE?0Oh;*rkChE(lq0~n*}1lC~-eS9P7RZuklx+ zIweKQ1cs|-4vddl*K9Jw|Bd_gK8nR8jSfu0 ztYce=6aQ>)DU0)Cb8KC;!VIZ2q*1Z?^19(_=6Atasd$6r<$Ev%hTWGNy~~f%JuAG(d`uoxirzHkn#Y0B|&oZ00RH0>Uw=!cf7q(_tkDg z8B^m*jq*7z*ZuME#%7Uk4Y;{y)AMHTjLpFSd(xcO@~@L&R0ys|CNOoEv`6v_k-=NU zGtSqCH(DLV@BcZJY4Fgv>CJ92-Zqamw_ims+7Hq=KmEZ!57|7#3{#pqNoG2^S|o~` z*GDk?R;P#ZhY(l(-P+6BcbDG`>sKd?Es_8mXdG%0aZua#c*flk0(XWE3|8d+w; zyn}O{0|t_H>*C&9N~x1SI0xspUuipw63k7VnZbBqJmoOoCpS1HT( zT5}G(1=j6(gkzu=sOF;&18B}H>^Cwhj)Su$ZRp#oR93LkO&&B?(w@xm;j_%GvhA0BONXmD}yne|C5r0BNw-d0`7aM`#^Qy{d|k-(lj4dy5KyRN4XLWE40 z`K=?_u{Bdfr&240!Ao?gCMm|7BNXV3N5S{TqkxA3EtP0GrXGwgYY(U|w-*yt`Vvhr zY7ZM1z}0$3$BmvB_Qx3FV)~xm8uRxe02>MnU>Qw;5o>&h25x0-jBqiyaBB}^_Tuk? zHn-6nsAFanE&-DFJ#C7n6XC0R%)XcT^3;%#94Q$&snFUcnie1NKhifo&Ky>3C1P@7cFNfx)}` zqB}L^ARW>y#aCHf7tLh_wUh13{_MGdl6XJf`eCJU>G;rKcDIf3ywEPD^2<=KzoFNy zX7(JTu^HGC-L2#tiPaK5M1kg#nH;|Bd0QpUZ%JagCn9-f82w5V%}vd~A-}5wk`{e% zcuv24Gpn#O_u+e8H1eXxR_FwnI=l$GR9)`+YsywI;1M^55SH%S%8}`lmu^~6=8>Xl zy;vN`y}hYjTe=`<2^TKGa@PoJ`jYJVGP4%EXOJ%#fB=_j=Mv{ln2PgX2!lx!#rHht zDLO5M9pU%ig%Yq&as46OkY8jpZZux~oPpz+=t2_#14pb#^}lfuI!8dWhwE%lEA;qg zW=UTJ2rb)#ZUP@g(`jFeKc3S#TVuK`E`YH|95;>QTb0&7Wq`M zkM+ixU1<_Rdhq2Q^qT+_dAynw@#^5}s9aZz%rW8*p1?tzVr=4F zh_mm0-Hg!<*G0l-1voS0ihbe}=u7mSVeQ5*-qZ~m)nJg%EZ!qb(Zny-G_@1_VKy|O zSBuRmh|EMXdfSzv#iIYSWyR$?#Bulu%XA@yt>BLai#6-wveTMI z1{L(sD=y__rF2C7TaOS?WkZ2WNWi{V>w6%pPviE+9P_K1^&hM*#)oL^taO0kpKnz| zUFo~W`VL?3um1!Lj@RqmT9s|W7cC+jvr<#U9`By%JZsg5d%rkQaGdk2|D0sT_5S{| zBm&pBvyV|(+s~I;W>*Ivb_XaztQc+Hr+H+~mR6MDBYBB!^Sz-lrib1-Obov}-Y$t* zwIr_H{=)ZaDcSV3Zg{ePllugz_iFp=d?CO?Q68N%jD$UdzVd6V##&Eh)+jTPiCKec#1uY>tRtyQ_m(NS`>0d zJ3)1q1efpM)=}BS!sUg^qkc0>8mF82+PHtg)Tg5)SIeVjiD|&x*}L0T6rq8(gG(`6&aZD(&{+(A($Mz7H~;*dCK<8@f%)@tciYRh)nH&%c3KBqs}>&@hn;XHhnk~dYyT7rz1*W`I0g67ys#Q3JOx32r|vDUA!y*C_5SOa7Q?YUdwlI3&z@2v;J5*2*z-@V{}+P`Yx^ z|66Oi1+ZTpF78yNELIy-eM|}!*zsoLSxaV+OMOD?p&N#>;&A%?cl~>Q4}CyXrlv=; zkvu(Ppm2m)C1DS;sovfU%so?)>72J+?wTh8mm$qhdEBjZ_q6v^>sWilxE2s^E-8zF9dz!9fQ_ChSfV6J~JS|#`~;>q*yQWcCQY8>JC^7xqjtKUvdOB zTOIl4rS6=XXnJ_N7|pWck(`0l@JD^h20U30GY$z(1x1f7AHg3la$Yetj(UO;^K7XD zFQw$3hzalG)v`Oxr)ez)wCcYPDzn`kLXE2<@Fs}w>S81a;rQs_KR%5Y$)iMhqBDF~ z9|CxypL0LS@x*?GM7mBYPA|+M-v~~T$C>pF6g`8WVK;~!C>Zn843(6EQXeJ-fOdnv zJnFulyk}>&@5&nVhAM(bYCcjT_ zyzA~Ee0J9JuIwW7m2!H|!elo<(+QA-A%{rONQ?i+(N%{v`TcGEf}ql%bSNnTBHc_t zKt##{rAtIg7+sHaGfEmJk^<6Qqesc;?ivjv#$aQ6`MuZm{CVO!=Q_{%#QEI!&9}5X z3Wz!&oy>h6aQ9++-th7CyDBde#3pP+c+8-~Mn$uu7aOisI(#>$BX55s#@VfEs;fdp zins3#VM~wD4OB_HYe5C;&4d(liH! zn@KsB9oE}#sJMxcsiw-)pXT%5oPmG&%r2~n`T^SEXAIB%X}nC2rhlHcNslx6zLrT> z@r5>eET%P-JIz_LDx>3A=|$&+mo(8SBoRYXuPuEc8re4_|3`VR!wk}4${IuTmy+D0 z*KpO#iVEYD)tu8+uhtLgt*ryX8g+b5jh_gMapu>g=)dbQLkdG-74&s)ry-ry4##Jz z0sskQi5>u52Sxaj7kCeox;|0Du$16*nEgI^Ys;RtK zZe_K6Q+ULFmSfq)(c2UHnRGnPF}7wA$lq`vJF*fz^LQh$HEmw%vz^med?@$!-{6Zy zkGw0=wIwGEw3c`*`cw^Gt*1Sm1@LCMbOZg!Vb(Y2?2@p%^=1BYE$u_ zw#h@CdQi`~+x`fznLO*{Orqu@=%T*EPfy9&v$s9Ut1j!ao%Bv3n3N9{=0KnQAS_ z2ls#vWuSjU$jSUqoGAV*nUDbu5nCQ#eT9BHiM3den1070t9<>2vxo>PX1=L~d;C9- zsyu>31pg^{GE4x{wEt|CtHj>UM}=AW@j%TNcb}ZaV9e>{b!&Na2_943Qjrb;Igzg>gbw zr=?UD<&Mp>KBEm6Pik~-a4gB*ZA>fx+xcFai+^WI1X1`In?3NOPZ9}>NPPh(oYNfN zaSFd4XpV683!X2~2Jgu*Y!1%6SQ4I(3hDlM(8z9;*r!v4c1@aX!)k{f$W@ry4oVp} z_El`=_xU@ux#$H79+(dB!^aWo3wY|>EV}e zV=lu3d+t?D0H2yLiF$Vl5NbTbBOJ%>8phOY4J4$3yA6&YL_kuQG5U{&AV7<_QnIWj z3*mL}O*Vqy^a#h`?u^@MUJ5^kW)l;>relbRI_Y%J1lL-3y<3OSGlPZdqAt`al3r3?3TZiz*J*Kxw+ znId&@48od=uVnH;jnt@1sc=MYJm}Lz&vpM-I>Ogb3{f&I;UNp*>k339ti|)wuAl=> zSQ)?okyo!usPUkirH^|Uhg`h`uOFxQak;R?b1g}Hf<7_hM=iGkumDhRi}L~pE`EH< z1qWd>oA!v|=slGA+~l}Fq_|%*>d^4*en3qqJ*$Y?qM<;GD9> zvsGm6Nv1sHX8Y`Mf@XUnVx&n_eCY)~(py9cc6K{AW#0x}>-#A!N4<`|6KvEvEpkK4 z%pdPdi(#=W^N<#xbkhIcm=gE*fuH)1%5I;tBm{X2R1xh1YxH&#f+#4ST2d4Yt;J2k zKDewm_!&9o;4)9-KvVd@gjE?p%!cxOc@eQWFz}Wm+qC-l4)3YrR=B6-4xdpjBn8XZ z#`iw_l3G8@^k1*+2qVaRlMeBIRHr`L*CraxV^9bG4(h=DWAs-rA<24Px_aewnQ2`o zJj2rhNzH0Lv2>;^JeD%fA@CJtzXgJCSG3u)JRkFG_@#3biey>)k9Yzxn{mGIWMsbr z0{!fBA)3TT@xne{k$=qZWqJj{GHbwtk-Y?b?tTm$;4*48v)yw-74*Rem1mRhe=c5Q+o%1w8#w}@cpkA$l&a{1wN zO6;prp%#s3+MB z75C0cWZ3o%0d@cKA&*w-5B7bWE>w?axCZiVPi{D+O8R~K^S9l)#}aRni8G8-1VZUjO{>jpG zhDW>oowhVuss%UXSe9ziK8JK^ia@x6fh}k1pFubap>G~!X$Sul=zFHHdT(6sq-Ru; zXZbY^)hxbg_&ztk$dA1>uWN)R3mQy?Ew!66Rz*Xt(`t5SKX+#k^&w0naJZBGQjw-6z?`eP ze_H(`ajA&6#?F&t^<~1HyhQNZ?QV_H!`lkmGsygg8TGxK$gNt*zaK@<&NUQXU+0zj zl)sR@BpU1g@QP0-(?3i4tRv>s^uzMiS+Bl<4^`WrReZ|zR^4Q+)AHLbAA5x1G}sy& zTIZom`Kz@IoMmjiyT3s0M&dn&0>-gCI6K~q*qOV!EWiY&9poFkH%)D^Q!r( zbE_Azrg^f4Lb&dzU95|vA)?J`)3VDKF;kd&kh1Ib_=OL}_-s_atK@LBvyY9uNfUjK z0ivhJ;ImHLv|gU|rB=-EH=kvjU+)dc1iO9=b48Ea!y8x$wf)ECVyL4;;4%J3er&G) zm;bj)20_WIO%tEyFc1~VQ}tlNrpO=626I++TX4nQTX<@b68S({d4%7 z?AK(#z>g|d!4U4P0u-HqY8}dS@YobePOy7}Lk#|}!}O^RGsbf0vCdS`qd~k|X;c!% z^hPQU6ileS86BvO0U~9wpXmr~Oc&1b5xe_P#+%kQ<1JIXLW9!8dz?J@=|?!K+)L4Q z8a(1AK7xwjq`14FZF@FFY>UDga#ySqv6LQTu_Qxo*Ui#p_{mfilbb-(?zi1ntVb}c z8K?IU`B7{1Br+aw+#n-)RhgdAqIky7s81-$<{eH5R zNuY9=GiWb$JatdE?EF{q2f~eVZuLp@9=w5k-7K0au&2(V@^HR-(=+Glew#WgjeH&N zBS-C58~m9)Ux0uspR#p%YhR;?Ds99i}FGI zU~?~3&NRdG#rWh^{NW@S&H&526y{@pyB_7Y`QGF7e^$oBpwKInKIdqv6bua0f*ZuA za*}lyWMWY^51OCAGUAe8-<-o!o=4H7`)*F#@@f9^4V>*>b3)~Ufv zunbiFlnENGE00SlUQQo)E07AlhioNG?)jMsIvXcPgzsSpfi`MAZWTMMdPrGd3#nBl zvJ|nsKLtg}>d*BsHIwM}0g?%HyQZt9%G=%seHh=@3#8A+gYC`G^J)hdI{ON)R}HV} zzATgLBmr+X!~TGh!FQ!Lv-wVDeX3Zqw@w!xEz&Jg*=8t!xCfv-C&mSdTJ}pBf>bgg zoDO2XZvHC}7Ynv@2H7XW1kX;wnNpkBSbz5070o=tPG2+p7!(Qxl<>&w79Vn^f%a>i zMK|FX(uNjn9lifil?&ldj1h^c_*E+w(~1op5k0Lj@`oL}sm!wK9U6bH`GpKWxf-f* z+BbE1FW3oCN0|{41aJ)5Oy6?7w)Na$OPfD>y1qjBZ8)p25q$-GyEm#G(?ajF-@F9B z(qr=BoKr8(o>u@)N#VWDO97w;lYNFeK9uqT!=?=QmFPubIW`Wn5>KPvwR>3AfUMVY zTUeDe_ug^#Dgg%%%4&#KD0KVrSVpQu#^rGfSa0s(<>E`(=LLmLKCC?ss{Ct`ay>Il zGsQLY>2in9_v?se`8Fm6Cq#`>>L}64+6!CSFP-O|CjdZ91MYx^eOWaUzpr~*+~{Ab z1aR~PCtW2Yw|u&-m87=d$yWYu35`-7&XFT)H10{%HFwv zSuWE4zH@rl)aeaQDoEJpa8nqYy!ThYriz_|ucWFOcpv6dEoXv`#7%U^)BmfV_gy1-xGIsaO{zGCm^&xiQT zv9z@%QDC_E=*Hu6dYa-7v8ao!V;Z@HUbs=T5&B6^ZuDq~m*5WzF}-Wyr{jVAP~c^%p(Gzm})K+^ORx z+VJfmBCY43-sM_%ASWZu!38Ff*#EqcU3yOMjB^vE%L`|os&wP|>*Iv7Jg{RTe1keP-p)T2l8SX-h-LH+hX= zO9PyDO}m*e`1Rku!J&cgc{irw0nSAdr1o^#tw-fXJsJuk<-=yJat6|!*^Sf@&>`}27FR8d_ zJY4J-(4y$1FqVRE*7y0hkv6kFaQ2077}&oM@(_0ZR0Eb-|Lq} zE!6v|h2QvzYD0cQT-Nx+y~FNss*R zHsaI!N7gV6=`1sUSthDai5<8%L0%pOOe{ekPOzG+$it^TpxIoS)7Izm2J(YuBK0tPOie(_W6ahaH4l%;DkvtVf9vm-C#pw9ig?)+R zIWBj>BaVc1X;I-J_7)K8bRF}n!zs%vV;fklUO{SaBF5w8j!UjAIO&~B)mY!z#{Ln9 zzfZR;?se|^7CReFcOe>^vQo5>YqOy*0y6ILnXF(=u}rX(Tn_*S;p1*$P$NPCEkI{b7E4F|^UXn@Vu84I5Z^nCkcelkvEidWC@6`O6HxmBUsaj7nCFxh^ zlUHnXhazpuW<1lQkH6ieSo3fz=x$#CkM#M?SMxZ{&?38g` zJpbVx^GS4=d>sRP6NMW)ls}Ybh9ACt16MX57rFQ>lucH?DePc*BUf}5Hr#Q#@^08q zJWQ6TjZ0xUOVQA*Rdt(ugsM%Een--gVA^uq;(g-r=Mm_8%iID(kFA=l2H}*+y46k( zgpzL;rdddW2@!OC_q!s+p0!GBN1WwzS0hHybsSG?I3xpzKe@@8r>}tz8aQ;`%S2dh zysUgmPc%fzy8ifrmyRY%Ki}Xdl+(*0V7aLell33Mtw?N5x@%Xk#iqve{<6*Ab>_GF zwoVRZPHF8ctvSR;&VR@(xeqiI`s3W?cqQYzyR~bNwJS4?&nQ%mK<~^Nt)p`;adNX5 zw{E$ikOzN({qWzbQt5Kp?XrxjQHr65uc2i-`~E6?EHK_O1qb;fFv(b)UD)!s?1{&g zu7&8|t1>2&dcb2yJ=C3ouCb8azrTBeUW)HV1u7 z7%U&d?%a1`#6?wbQ!?%@x*uRF2hIyW)h2`gzz&B1PLz~#^(WpGHEj3Y1G>2kp40U_ zs+j?^f7olqP^hdXBQv&H)Po9rMoTN^*%FZtNif1i1hZ>@WuC=H za=u0<?fh9!3^h{?w*^x{HF2F zN9zE<1n%{C%`_JY`0);3n=B{}%R;cU@WAv`mKUP^0mcHyVo(tn$%TtWnaUoOtK!>3 zo3j0VT}P=4nr7_V;^b=+4)q1f>8hY9=eKhK|6LR-?iRqUo zo<$2%GP(05$5-U&2k_gwQH@IijV2SK#c1HgiT~I4Lh~vgw;=0Z8f z@4AGLs$X=9xyy}Q(!6aJKnJup#P~#1IwXB`?*nmrmV8T6wiR|}Yv$W$y7H>F&bkGh zT{Rvc*lPDoM_)9%Q~W?!u%@|ap+{crl&0?eh*k59z8E{`(kuLjiol4CoO*r?JFq5v zna3tZD-2z0ynrWZAHAZgcTL~rthwjilEXv!K*5%v@p<|K$7@(aYuh%u_^A3~FzTGa z5*FM|W9d?^I#Mgc3*R3WS6TnyRMP|J1tD5x zD$Mq^{R}^s?bM@r%!P%GYOos_V*Htf_X&oJ5-+kIm?pkTv{SId8+J*o7$oyIGo(tv zhg6M~t7l16hV4Hg@72vSNV1_e2JyPERWke4OU)Q9k7o{VJ!Lmc=JL+2sC_!SQ8P$; zI3WpH?-y%6w$ht=r9LPBrv=c^NGX%zXIoBk5N*2_^NuBvvDIe>ae@1`JgF7os7z+g z`5wzNcHzX6ncBH`-FPpYX+V+e*kPq8U?dFUu53qHqeZneXNyEcw=IR=Re15zr#_9i z!#rR23(x3)sOlcJj_~`o_$k-nZSqX9V5QV2i?Ef8*S4b|PUl~)l|bXV*CJo~WnfNo zHr!8F>!0zaLZ@KHhcWhPce2uqD$N2)!JLDScVIrTl_2&U%K^2H8TQo5MY8DYh&#P% zGAR;&Y~(jg)ORRHOdxvGe#l>qSn+ragd1``LCLW0R#I zj1k>DB$Y*XX6G9VJEz6^K8DxDK22T=8!S=V>NuNedJl;q;qx?Q{h*3f!i8o^OFEy1 z=&=z{`9IgTzz3{o{lVy%;%wE)AUKwhMXCOww!7B6{x9hq#?(1{bKsayWSB<*n_$hB zsgf}eX1crppsEV02TgkvH81cV$Agj&gsl?G*A`j@4$KbzwACdoiIpuoBZOxS^@r=u zePxr@f1j`{(u4VYj7nFUhj}WK8cE(U+dV(*>BrEgfWhq(n+53c#!O88UcVH{)ZnG` zi0O$pW2A6y=DGZFx;*wSOu*|kd0>iN&W^y?x^u&~NBzWP3A5^T^cc{i*N+PU(h=GzjK01uO;o3~>pRwUq|tUtb4) zMvOJOQjGzZdshj5B}U8VmX!O354)8~?f(7(D90&OV?I#J<{Ukbga#3V49{oWpuH-y zpl9`et^SSuxi0+_sln8gm$eJpZW$xYUnn~55T5?7uRoDwgpdoJxj!7W5sQ64b9Cgg z4wu$wRJ^r+`7n>ta~%o$!r$vu5!uJGM0Ki175&Tvvn+SNBKgklZMAw>G%|;GWa9TA zFn23XYAQEO@Qg_9z+x7JA8rn3llvRZcB;`Ln;>0e1%KiGI#%o8Aeq&PuSzbZ-mToI zWM}`RHr0-%rY~z*d&6#bY2&EwdBR|*9&7`v^29mJHqBINYfwMVU|#+)n05Z0l|8IV zW42vIyLlv@%NV<;Y3lo!)Ck()RN?a(u(`eWhJa48SgdlmQ)>EECjTxngD*mMeE!1m zsa0a&QNG_qZJm>NnxMKLLZ{<#O%-gBls5AKi@kVwBS!nN+=TPMoE2@hbS5rBx=cvBu zZ(2?iXbIiB`tD0P=dW8|*l{nIRr1x)naf&U1_0 zvjFxDQHHY#G%#{D)_Rent#s%_AY5}z$5W)<5TBjqC{OSVQ+;*^O{?e1-A}2ZYDE{m zBZMG&rjgm#&MG4F_*+M?+c480=bX67;M-9l6)-3H?`yu9QGC7tUx#z%4~4817RiOz z-H-GIr=`rYcqbf--Kcz{$z(Rn7l{%Zu62(%IAcL0(hP8?g15BOi`(n|zox0$a>~Q- ze0}R#-iX7Cw{BIf_RrGyrbR^=a8dqfda|oe9Czzp%!YW;ISHd|DY6S|gx6b4!&*!g z-i(Ymp}Xhr;CU8-bOx7s)#K%PQ#YS~WNZmS&Wz`G8g^RKqn#4I&=$saKhhjLr(P*H z;j+w&8=v7uc@l4h_^pL6|2hrvX;>=jl2|MWyT^=i8#DIcJTmi_+`Hy@MB&4M;HY86 zE`Xfuod?(C^dy&vlo6G^6nl`wFRheQ94dlB!#Jz|ruTz^+o0Gm!FXcrme{5X)3*#e zl|k<7F%zhhhW%v;w8Y_|LOjgU zx}UwQX*DWLDCfD6vBbf$k74VtP65&rSTil*vRd&C2H3iV-ne(Q0y;KA!FVnPwFd|^ z!APmox~Uc|fi&wxqK*Ge2B*dYDaV9ATtEdM6%3_yhjjU2Z`!!i&S7w4YPjVei7yRD ziWp^=p``$s+DPfuqneOD+qGM3apoK@|IL1t@k^@Tm{7I?3poWf=KePHnL-{jbBYy$ zWQ?6QHrVGkio6uD>}g1lAMsio?#r>ZgO`YuA_#2C*Uh(*HMMwRRhSN<%ElV-0nr&2 zF|^R-Vn*&8&qD-3;cOZ`trvRq@kW|*d6||edlEwa(^OY4lw&i7oN$2pn@k?DPdKcg^=_hI z^l6&;f7xiQr0cMsR*1{9`|;O#{#Hkt{_m3%04X6X?33hdfb~_ zzaLfv1y1Z|PAp6Ge(P|}t|h0Fe8L29`$jVH2e8yk zhfpDx8fkk97u%rA)E&ND*S>`>Cempj-JE-;QI<*SLD%>N8(%`y_R-X3Q*_M5&u3UB z*(gHL=Csbf%6RwK_q`EMo>f=Jg`VS`*i$*JMnyv}(x#r+ zPk+tpn0m@2;KftZLM+u&OwCo^FvLat@Ps<2k0tI+h}|Yr_Z0=CZ@`jrQANSYBKcWP zYfHbFv{xcvW5#oBxr@{KQhrx*VuNYszra14{q$O4_rBGPa z9j4EA&bFECc7wssfZyxKyA82yHL+rtj3A9>jF)tonqVrPvLo~xsLj_;97zyQfDV2z zpmXNz_*dy?cIP;Mzyu594Nw#qMV)TCDeVu-hf0;|s7r}~2j{lr`nRjuKA-L>}N?wTq zk)PC^6OB^(iUbPWb4}7J&llVh~LL9wzX7_?#vfc#cNjpuvKC}KO1H=6Y^W6_hC^Q>LAPf(a)@=s0LOu zSNQh1yp|fS(OM?UKH2Xc5EITp>bVba3a^b)&%*YX|J4D^ZQMw|1fp)@KBfMR{sN?6+Je@`G0FjP?Ce!t&@n6^^YpTz)w)wKO^{n+ zsVnA93qzkb>)Yl|%6Ghedy2=G#5Jnc1jkC)&h-0&L*6p9aSGDHZ({M5liS}e2RR|d zWj!n>6hWY+63Yiu8-3ZPJz(%~$mX8V*3I)!)(*up)1y^2Ka;?m|a39avuC z*^exe<>yb*mhbQ^=YFS8#PnILA%v3ASnBF4&!~SFoJKB7myt%AWKGR4hp@hVw_Bg! zWDJh{#gFneklw)S7wlq@3}bG{;^EoSEH{g`$ny8=4ez+FfBj&MI${oAf3vZEZQG2Q z-M!lub*ouh8F1b|wLIS{STwiBH`r_Qq0#f#rC!b`rl<3U?eU%OuN9N4k=`T>9EIhmDtT}{fPK<6XYlJbUVd+$LyVGi`tps47C;m zE)rT9_8Gni^ZpKcUgh}h>VX6Gamjh;GFQ2|U*w3=GAfCKa!<#|0F&I&N*4RGsUQ{- zkwoPeeY5#+FYy_vCa_7wA@PZ^+8;On6F<%|Z8y?0)t%wGO$|+t-H6!zqwnBvgjMCS z!P>1megNW)lFGq;X5uyLK8U=s@ybuBtkII}Q2)`_O2XR!f|?zIUh5`Ve{ju)GP+4L zAY^1>F9Mpd*NGOGX5B(E7#V_Sz2*1MVS#JwR=26DTK)~yhng2CKV79idu(XJzA>5W zhsiWWgpbo(pz4&rvnO?@*xHah_$aanKt7 z|2UyGLL=e&_jwPV*^yl(xcky?VoI*TBQfa(Tz&BY@{=+j$Z%4hk(OsrUZ-1#;H8 zaZacjgMpIuy@(KhJR$qdA0JWcYPJN*Sf&~CpBHPW%n{>W;*k{3`KShZO4p~2Z4VLS zcl;viowI%;A+qt`HM%L~Xr?6>;~YW(!9G_5?Yzsv< z{ePtck4#%wC5KNBn1nCF2Ssw(QDmwL7nTawNFd;*0`O$8u82x(7%H62a60H0%zJ(Y zO+mx0Tq$vjO3oPG|`0qpJF~^|B#!U8G{GU1aS~{DMY7W8ZjNnx|{|(sGL;T$YMU z9iYQ-dbu{$miOlN2Ma?hn|eR0g0Gpjv>Y3$ZI4BuwP^FUuv16TRm(79v zQy#OEIk$Lsw0hukhkS_pw*xSDJ&o zbBAr7k}9^mv#EavdnvpINcw_6M=-pFmZUZvleCtVrHq|E%i`YncQ)&i0**RT@4kq) z&-6Kt#q`eHUihlt*F0Y0tuhbCLp88Kb%gxT)F$!#5BvAU3IanifCcn^Tnv|maQ^Tk z7Rk$8H2I`yx?Td3oH=?^phG*hBu8lD*b(F^7S5cSzE#h&GhYGoDRa zSu(}n7M7hUOsS=?se_CM=@>;$KkmK5T&5|LC~BD(p&sPk)mKH8A`{jZ^h@h8-}c}O z$!8yZ>^@yYRGRcr;(#~Zj&}}Kep(IEjMx5)_F9&G&OK^SErpsv2q?TJxUc-`?nQrO zt&XpZVy?fJ##>4iz>5Xvw>VW9%qtI1*P8+ELrb6<;YQ7!`sX=L; zzT{m?W2S9Oex~Adf0+U5jTYVyMjf!MQEV<(T&UY3HlzHd_b%{WRrB)a34A($*!>ot zO}M7vWdZ+5MYA^2*g9v5cw;b$w zfP8U4dC5`z8@#CD$57D^>_=Q{7N4Fek$=5rg0%^}&JOX*aM4>He1)}~sfm+D7l=ET zY7YCV8OBM(wk81GmD9v)20ZVA3Qc*whFg}KqafOvOvx@bQGouObfHFX?Sem(GG*LF zkTi^K#g8uK;hDM9{WJ_$Zw-od{rw5nOfmbY-pq#hJ;QJbK5bt$aS7QVgHR+rR`02v zCSCi~lZY@dc4^ht#4Be|#;`5vT(JiA&#V$z?H_+NzXDhj@98Yz`?tG$Lt8!323Lxt zNIg|vc7=jZti3J+y1Qxa9r-;|$qx>@se{4u)(4LikS`E*UsiI3Z; z^ZVT}Q93->4F^XyXVoP%!wcwlBooS!;RbUJs5QqLAj@ zpxy?5jkTYu6jJZu4-FxpoZv<)u2VL%VW*#TvTR>4pN!PQ2y9yG?H>m#w zACaT5Y&x^hg#_vn@=7)TvKQN9)FO(SgElyq2W}Kgnv)kaCm)%P9)1OKXinU!<^Jeo z*ckjmcoiYQ!$jMKk;pCLHJN;UYz8b${OnZG?pkqraw(`K|6DAd^K{Y^_3x}R0 z(Rp(G793LyR&#;+BvGUA1td?KZBA5Y{EvRv(E0ULiQ!iM$ah4F&hYt; z++t(fp-~m?c8*-M;uyE@2KCWo^QBvAkZbz(;(^e`K*3{bMLIvZ5etGqlB#?&iyavbu~KTemyqbz&5YU$^>c`LXBrq zKGJebsbZf0ff!e2bLlD{f`ZnIi|r$>p6%}mh+WF}A{<|WoHP?pqZ0wK%FPSw0k1&q z*Vjfe;P?V)Sh%*Li|o&2*@Hb~QAou2hk132jI^k?U*|}+R|k=N-!kUE8zD#H?!4if zAAwN9yl8SEtKMZQD$*2tJ(;Xvuf-P&Pfrc2*f#?0SP%4yyiE~iS-sX)Mi-(vHa8@` z!H_`TnfY(A73Xy$joLs`7eQsmC=6U-yH#5(p|#HW2np}@4J3Q%W%P1DW?PAWN&sYY zS^3M3HCnx*P2U?<`|3yv5JUKjZ3j+7$*BvCo>}n3AHY~@xkHkhxOa@Mzkna_ND&_P z8w&DXZ+YBbboz*UjWsM?2l3xvYj02`$A^OwxFhaV(=k7<`+$(wlpZcdm6-4?@PC3{ zi`ub3bu3{+9`!#EvuRuP+b%%50~h7-v0x;@hOHM6=^zLY6F8`Gz-T{;5YR@lW$0BF zaC_*(0-?6=6BXmQP#>#|KhlMWS6s-GWoxJN547rnkA3Q| zPjnz)`4oBK(E|-Vl1#a8|3jag)`S#_XY$wSGUV|%ac7NZ=Om?QH@Ucr}zCSj*299!pS1%E<{m2@|z} zEOTzfMtPu-ogLZYhdxm667-RoZ`rZh`*c0*Dim(Ys9@cBTvqj6z z4Wv_hgk-{BQC%;R=TNz)U-lL#O??#N@^X0%GU9WV+4Fs5bxCDU2Hx!G12WC(Q!2$s zEQREHOkUR5TR7etXsygd!`p1`tlFg90tKD^BF8KV;_rJtx%BG6TuAtb-d$D>hH~}7 zpvqm>I(~STjlwfy?R1&;$7vo9ElpYG!E5P}cN+Eo&o)dLF^krnZlRyb?rZD8p%Gj%|*b z0*Brmr1ws#1|uqhO&(ZRy8UR3+>E_rAro?06XN7m`!7&iC|8!{QKB1_u*6cH{Vw-r5xFEGE=`=`pzvd!@&Of4~`#hZs)g- zS{Rnp6tAx$?jJ=cWU{k9MV=xzT5MBQ92zT@V`y9!9?Z@k96he5y9o8x?z8w)IbW`` z7sfQD!I`o6UzKg5^fZ0lqfBf0+Z$>c*^jxUx@#$qh^RtEmFElk1Lm@Kjo?V~^ zEvzjN#l%-lh#M?N8 z&yw6*vOK}`8Pw-mZ0Og*pr_yp?xfjQ^tJymY=sZOsbst2OQVd`fMdEAHw;tj2y zv~s%>E$jG!B163Q{eRah8H!l~&niC_HFV=-BQ!rIG;Dz63~xwGkj8V%uN9u{WZM}1 zhtm~VUwtuD(`AKF6bnFF);qhnpZW4o zGdvwSGQqsQF9di^nd9_napk<2a!w2|){ipHUtbnGVqF&Cezw37PWEu?fAt@}WJ@W3i>smKex?)GfD@rj0g8b&m(y{u)U!ena-6W+Qs-#^#!|SK z<86U=%yH{kg9jkyTknDL7RF+ZVd>nP;wVCd~^$vS?b(J#!WfP z2863TFjb3Q);jsnoOT$6mt57?mcucwjy~zkl?YbnyWh@*{`R;t*Om%T4M+mvtaqkK}@g&KQDOn^PcfV7T59~c2a7{vT& z$MU=dg0kQR{N?{%h`c`Cx4cD_1TtYihDVa>P8+CfPaWLr?@A7(Jh5ck@rdQY8R%e~ zo1Xhc+Xiz~ZrsniR#Y2kBOye~fBV;+d*1YKH>Dn7qV0>OjZse$)>Yq0b{}RKD9@Dl zPTw9n4^|fnRwo#L&8X#*!wbpct-Y}OJl!_JQ^$qC|JG(Q`bgzF)uyU8Zki6~^aykF z0VZE@K)S+ooe~@-?*wg4#q3|+SU+%)ovp6;@twn*o2>@OJ~4>LZuCmh;$Tn2@xou= z(AK@j348m{FPT!@H~*o&jiD5Y!E0P%&xPI1wm|5YZ?0@sfnV$AzNPeE`xyqfB!KDX z*KJc4Rw?_#BuFHGTSyR?DMNYgdP_~h(T--0+V_t3nB=3bWXAbgrwth$#(B4FJ#gbc zo81kV#}uaO^q=aGw_^4md>_h4MtxKW_;Ie{ZuTr}tOJbN$W-b2N)f$REGnOpY;AJx ztL1O)C)F*#3IA@QGTg>O9cQDz0(^eDUDVF~diRff5V@vTS(b=OB9c3Pa;8tFv+m-8 zx#X~CPmL~D>YoLgb)#;mL_uayvurs{TE1>#{<&@PP23-GLWOWB)e|>+a;`q$o3O39 zUNEbe#oa`AzWMnRebmq@MZZkm@8KIcK$;HkcUhVdzLb~VT^A32#Q&$cpaLNBU3J}~ zZc+zV;EH{l37qjB)Blll)=^P)Umq7yDd`d^0Rfc;kp^iI5E1F_?i}h;(%njfgmiaz z58Yiu56uh=GcV8Y{qwGM?pk}DbI(5e?7R2(!#$8PkgGMuZx5{kAIh>lnm7gUJW1=x#Ig$x!qi73aXoasx&L$m0>;AtNE$JEiylnj;0 zr)`oduKUz6{=B4Zow-UXiL`E4;|c&p-j0i%hr3l3S{woyy6}IczpQI?9CJ-_Z3!rR zT9z9HRN@%+uy8tJ-|wL*yQmX2Y#awPa9~JcbIbEc?z0G>qC(3e3FWBh`RAJyIO(_M`bJ!ku)fc1YLCEAB zt!)y(8a!G_S)W@#8uo{^6srYPi=ucoHgC%FC%(N=jFi z%xWH9x1s%ZJ&yr81N#QTbrpYon#29XrS*hy$}CH1;7I?Q!b5hqH474B4!QfRR0wM~ zmYAGeu5UX;7}ZUqd&Q0zJV<B4=#S+DiR4M z%5Z4>X5l3sqMQ}s-G<3KwCLTsworOw#l@G|Z^IcJJWzCq;?-7v9B92t0dZ^zB8U-+zr< zmf5S)eeIO+LAW_9BI;aPYT+T&QX&$~{C0_u=c#!(H;cW+ox?kWd&8`7*1JyFHBK%* zdExo{=+_FLyqmGD%9B*K8dUN=I_2d`rwLnnc;`YEi8|U zb*9ff%{+_p-;;GcF?+J)74KO9aay8JFHd@H<%Lw1Wzy(fd%cr;8HuGjD6dQdmQ+Sp zi@l{hO3vPAb1+SkCmcnblV@|py<1?I#ow2>LnD8gF?eO9o(rWkT^q=Xl+C(mU>|tvcdyTjOr2gI_tbv$A zv$065$mIHK8T@h6*y`TL%fhAI-K>-hvbphUT#PFp5dTMlU-G!ZV%4vQ6FYHvC?MnM64x6`Ir7P0=Tq)YB6;}xQ?Yh+C3|*3x zYs>5OAx%|{1CZ)xaKtm9f`iya;jC2X-~1)v_7_p3pKoY$uE-7pKK5cnsk(j%^tDU< z7(5Ne-EbjU`e{JP&$4&6>F;50jGK<$ZwU(4h+lZ#hzG)5ET{(+TJX#@aL5^v$M@>Z zj2B%V;10;*G}C%zS;O0C6KjsflXAc53am7e(4r4PVkST|2|2PtBWbl zlcM26TLUhi;!5!$^$A?0S6{Yv!`NzncXGg8)+ge9+9tSu=k{7^tp{$V`zvGPmW%>{ ze6S$GF{wQR5bic|5u|}_KUZER*uqhuDbt~BgpMHZ*bNT{#Di@ z+?brWIea1zQzUgl5>q5`q6bqXeIkY6ZVGP?V6-J%VyYd*Nh>n<_DN%S$Q=~l6zFBI z!0_>RC_bNXUF#2?3*yS}&U1-}`H}bQ#9WEkb1u6g1g`+bS=7&Qn?4PWwSMo>x(C-k z^#Y==59-lYPW|mEeL}3n_REmSMe7OL+oLuzGR2#*YNxRXVdmixH#p*71R zN8e2uhk9B{TgwE7>=CYKo(t3h3zXan{t#;`;PsLWPAFkn`cZ9y|LM z#VaV{`eCP{J^JI0mX(q(x}}+B>yD&41Fmme2TzBd(6;s42KOYH`A^R4Sm2#14T|*M!)ltHn|qN8kYXKw#dt0g_xNvcJ>Uuu4xyp zQ?faz6{b1ybl%#VL_Ax@2a*HkF50i_IP*tM9er(%$doqosPf|03!xaV(`~AYfb85M zTr^#3OVdt_a3+JPsfpdvF!1OCQCa=V6Cjeezx#(_S=e+DNg?L+KeGA8WL=XfH@0W~ z!klzOr@M^w3uJPCzxq>5qPga(m}=&aHr(DWLH5?(TIU3euFwvNLhi?#ZjWypZjm?t zh~e0kQ8!izlC^5{??im!1!|;QW0yY<5Y`hKEdOTP`?3r}L9d0|++4B!3!^!s>42pA zK~uRFYy^RvU#r|7t*7ktoOe0VsX}UN0}UlpTe`{H(3>sXNrj}Wd%FJ&0V}1V41ai% z{L7W8v(j4KX@cN3un%aOFqoIA&UNO++GWW|s0c|1+A&x}zxn4vk9-0mb2{HP{qu$D z;=BqWg=DTH6R|TX)az!KGQVd|x>aDwtAF33>{fv4fwIQT(AsL|Hmi1iP-G!HMVC;$ zyM5`@W~XqF+&~OvUUnM-Xz6=^0^H9vbp{V~qeUaOSSEy=AxzWK?)v^`Dk=#F>wAg= zh=KHy_=CHE0}rHb`Fv)kD`Ph^yONQ}SCZ`}uG0`^Rve=*-_nm5)-P5p-o6ejdNSbA zZH|?8#57>uJ^+5ZRlwI#1l?h+BXu3;KS8&@7NOuFis5GezAYgOME211ZJU(8o!CYj zx!V-}m@tU=%gUW4>j~114{;h2-Wc2Y+McMgcYjgvg<|_`YDjDEAG_btbDiABF4D6S zxh0Mh?K@Kt*ra(2-L?JWUxp8&skw$Qy&RRVu=Js++i$^Fp=A$B$+I0UwI~W->)cl{ zU#J-Wmg1k5fYpfg0UO?-9z&RUy_znH#JIT3EPdiuymQqq)4k>Gp zMMfTv5Obd046p0Iop;RlXp4;qdl9@cgR%Qs?XpX+S{y+;4itKM(l#JIf^r&*+ zlea7ty^Iu zWY9Ntqu1+m?2T6Ot`GE-roymK9Xt3^d|h5+JH%lXi11je7~ZxX$snTXna30=$zir- z+|2vht?yvV#A;=A`J!us{O34${x%FRTAp{Z@u$K(UEkF^X2oPl5$06nPXmDzd_=P*N(SB_okp~$%LU=(BUtIhcjd9K-7_j z{|tV2^edlD`n8!x&w;Qeq_MYpY!eMo5gCTyZ}jVx%BE2@m^T!AIpd+$(hD#0+s_)( z^wfdKw>A^uI{w076Z^Qgk&qflJtg)N{B!&kkZ5L1%ar@OwKA~6X8arruft+*hC<_j z7}nm!sjvN)s!Y3RT<)hd?Dq7Z+GU_1dc(`(E|1?lk*m%;$28vDM_MyN?GtvJp+kfN z+%8ku%_*)XW%PzCUJ?e@c$y8PT)doaX_JI%lvOp3%C}DiR9Qr|&u=N3#C8=X-uJ-K zftR4peZokHP^FC1R9SkATIm;hrMgeYo7TZoA7_bc@uH66B`_K$G_>r62`AQ83h*)x z3D1e^4V7|j+q)4y{>^%$9r){njUT_ar32wrqs%U>Jlj2RQ?4+1glY2i&o}4Ah#7;y z#-Ot6?yjZVA3r&$wgxJ1pPT&X;;i5R15;i`YAN1-A>ZMDop9zqfco#Rj=QY!XEVRl zeQedi<(wrn{)0*%F5p;+yiU2IuT}7RH(i^c)~ICc(%8mzl+W7S9nAuFJ2cJ2FlorV za<@tG8sB*EIhitlLi>hp=hYD%QO$4H<(ZbbijgYIrlZ;0rWn-rLl5 zNw!g<6Bw50k(Tp^oZEjp*37Ukn8{Rlj^5#Y`v;})+^3}^Mpu6vbm&lAXXwsr{f9sh zh~4)~sAvsr4L*+vl;yX_ZnQZO;s;jjho_-@)N=mFMl$cxb|!>%|&bv{4M`J(Dp+;(hwhm zOMu;FB>qX|ePbr-)!el(jmPNlE3nm(0C-i(=3$2F`rrcwVVrQv$XuYPa8VP!9xL0*@ck@RsfG=NKeY$#b4kGFv4KM%JS5T1 zHSL-Hq?S^SVJ+V02s=6Ije|QE_zYdz`1>_OmuE+uo@iI~FbQ_>N&j5UvMJas)ZcZk zsBU)Xi+NP;q#PM0yrI4Glh3>L#T$hcVk-=PwrGx-PH-pl*o$A$rlWunQ zp8NxMdxY+X{pB!$jurrD&bsU`Kb)OB?=GD4%A_{}Cu}=jW7ln3i6tJ)8hH^O=YT|d8W>zby;O}ot^wU6kJk}+=Yn{V+v2OmZKiX1D_a5rG9#;C(#wJPy}E`R43+x9#{r@oc1R=*N;<7eOUWcBCI z-)5G$%p26-;?Fusx?iK{a3U$36D}inhi}8q>DnN;{Sgj`AS$sC+FSVWKqLCPzbMDM zQN5$u93Z$&`le4mc{}4}dr*>H?GXQLL^e*69@X>;(Nsi;^}OSs1_phS%c^W}XOjF< z$uD-@v4h262ggg#@`k0#Xz_F7y;JjZ%0}BJ$-}2-+gS--JL0*Qy`DOYcKIoyW36fh z2oEZ8K2}mNwrj_kcN8hLh7!I5DhO|dWBqpW1HjH~+t_iKE6}lrSkm)38ozLX>OTn1 zE=;p~>$EX*8(LYk1{Fa9wf;OpH5&0L{U6R~JftyVv!ZvG@WGDLQWse%_|q74`iH-D zu3o%O^O(9IXd57SO}k|*t{W1(2`7npw}jJd_9OMmcj@z-vwOTKrtV*S38Z;e%jjQs zQ9yR$mBc(((AuMyPZG-loenc@33ry^QWy1**ljFTxQqI8ZfyJKDOth3pK$PtVKr9V zydP(wens2V;4b}P|ES2}4Og;Wzu415tNQ8Gc@CnJ5K*{ zFaNysjaqLw5r{R$`b|e{%r2w~5g@Gg{h8XP;!Y20ye}l(j5tipO&ag9H#dlQs(t5T z!0(oXcFp%XHYA_F0N=-xQ4I#izm~0=()X|*z)BF7_7~<2_q6u3p>88zd?UvReYiZ+hN>`%-fSHh$i{6ed zTB!VJaU*Au-n>T#XGIWCn`rMQ9%X*7Oy0K5LOVtkp;ON9JEpE%KgtjLDSZKZRIlh0 zZxG;T7p;Kf(E^Ve5UAbz^uYBw(R2!O(Iso-JJ9i)HN)1_b$vO_{*cQnF=ATVB}`95 zv*d!!M9f!pyyG^3zby6u^WC|UcWFM|OO}V?t38KLLQ~Q=Yu+gf$5FjzWXWkBYuc z&3sbC5+SwF+ynp6^j#`W%HD+wQE%)!&pXeR(#WI{lUS73AfVTI=Q^hkLtmZjHe zqKP2(Jw08)Q@A*e=WH(Asd>JzA<|p$Gf(R!u_a+1DK81=^?eG1D9MV(Wb}QwTC1x(M=76Sncy`a z)CTBY=)J=_Na28|P(+btG6VY;E_YyngUCnVWr|53BllEQj7iH%Mp* zDB)j9#=WzUf#n-Eq8tJxL2eR%(@A{l*BG zgEl5LSV%;4<&@7i8jN=J`nU)8%i^$j0^6qR*rpT8_5fc=T#0d7O- z0m2crKNC9`JFBm>u@w6=PF=^Il(S$sZ35P?)mQU)(-psQYXB05@-uzTgDnDN78Cz1 zlddr4i;n&BT~o{+nxcbiIW9=^xf#-xn77oTbi*Q4tC+UtU)>`uP~VvH;6365)46)) z$As2a9pMdPphDoi$MTQnTe~0VO=HKlMvxF|%JChoLL2V_l)&bLkl$^VCU@7dQZcyi?4Jz zrHSj#_38TkkkP~oZaQ1sX`asUQS)D(q5@y0i&p+6!2OSS?a}f1Vjn&&Ta$=+n}Lu@ z5s;7_ZOfljAc=Ffv*M+7Gmk6p?izL!OXj<8{r=|iS5=2YoE!JY!c^el8mbiX*g6~6 zraxDu#1)+P=;A^ID0Z z9cR?ilHhEZ&0WpkzSuGgU!_MKo~d!d~BPw~=cbH$|B0ZRTcH`E>ZU*TW} zr43CF+Q}*asOY(@G@G#gHmE5{2O z@2B%z%I==bMNu=meWi-XRL8n$ry&=-^YIZG6-()R>UunQUX?C{OdV0$MqJzXmizF^ z(*BwxQagW=5*c#H*JyKy82OV=N9`Cpc=k+mPAo^e2N2gM-|~_>m(+2`^f1^AbQ=G4 zpm~i7t(+41x|g9K6!gQ|WR5|wE8YvtdevyE+mA+IV6bvmY$cKVsfJ6Rtc{?&a;w(m`>i zq_BH42LoH{sgw;mbk+sH0(f8(=265Q$7_*`4zE%^~l7YE4)}`-poH?H|9vx+vu%!sES~mq1$j;%T z%1SVi=D2}?Eb{dKu{j*W3x4R!f2uH3g;P0>@5tK+*to`k2uGN z{`EJvvfb~8z3WU0v#XWwC;^cf7QuVk$PU|h2(khi6Hhe5%|J~S{aF>iV7~g`t^2+( zD4*6GHWM1)W;CMW(LhI4h&p>z2+W!fG)_oq8{SuSAQ&++fVEFs@6x(A;od0Qm8)%?K}V|LVXvTin_f|JD_Eu{SJO z9~9&Rzc)sNa4=O@r4Ej6Z9&cuz)D1Xdf_KJCGk?oUJs=}hl??OmAlxf%&Qy9)|SeY zd$NFzX6sLM|HUa{#Fy$TwC%}j3BKh29Wx%Y{l#?h?DGQ}8_n?(v%C5GT3a})yJyGF-3mZT--TBQ}R}9-g zKziu*oel>qSB&8%6t}d9^sMUhf|1xb;!6PK(X$8;8cw!sUX}rtom(KkTKSf5zr;!4 zpKanhei@f23UbHRH;sNO&7a4~2Ot|&NnDw(8Oyi+>h;6JpORu`cc=IV4I( z+cnC!&XIUR92WxMzsRznzu14uRD%LKkUpnPau#a1OHJ1AQNHO3UZ{Zv)B_ZNMtRhF z!}-gB?ia5p!Plj@N8%mREcF%{mqzFGSF)XAj@w*L$glgy1+TJN`zuApm7m?}ja;V1 zYp@$Kz7~=K6$uw|5BLG9%K*Ko4h9F4SA)3}OwkHje?b{90#o!8GZRI`{gTdjMk|PAr*l4M*R}mGX>sn3 zuaahe9DdI)BNDN#3_(2Vn+Zg2Lr*+@&YV^9QqY94xHM{&$t{>2myL2yKNmJz5q?ydKBqwj$@NI#GQLGZ35Bj*Db`6Cj)40Hr zfYwc_XZ5R*xNV`7fs{d-9Q$CK4|H&0{|)#XfIdWO9Pz+lt5T=SY7AbFV*6RPFF}cx zrlk#pPRLf_NA_7C#ppgUhxc4!?9t9&E#0AJuTUSh}RN}7tL)L7mzqSfFiWrPi1rAyP%UTYdzTsm6M<&DP}-?jesGq7NF8BkUj zw~Pm!vR_^Q)+h)8WwIQy^u_>>HN`A6|6&MVSN5yGuEV2LrhJ>*(uOoiwRd!7vUsx0 zOz;=bjy$=NtY7niuFe>Uch*{h?vUwR>h--m(<(>YX@F?-k&49ruJ1(C+e7+v`MM%H zf1iSHWq6YX;H25lI1e{QVf3xmczay*z)TmqZMXY0V{7U*6N2Cy+yRKeHTZ7&o&8cl z_8H@-?1*U22z#<}eRJE-euml0{7}vB!8NB}K?1=}?~_g>&wUE0vVBRa;{3rfhF&`% zN8|ID!8%m_bce@s`bhN|^x!9U?_OG#ve$E(Fm%O6jRkU3Z}*Du5~sZ|pV6g|)xx+G zElZ{4Eb-)o*5F+#F?|9^%>sg5L(wOgEy!<|*48;$r@7T9YP5n)H}n`g6EqR_5iJ`Z z;(|SYS!1_ojNfIS2r&-*e#QEf9J>x`ddesZ_^+(0g%+v2F&z8{m!mX1LVM}0+3_Ek(c&Pxmvn=Y1=&kq{cxQl( zS^rk}h6ysTygx`qL=m7CQeXe^Z{ZOqw+GpOky%~Ozk2E7d0HdAfH6Lq`#{RHLBZ?C z@G&NpXCGt!k1A_gm1gM2PHGvnA;JyMC-zQdwaR zhrb`*?M+e97J0h>)4ork)?}ugY*oH|;rC2=l_E|w1FmLhVNp8q%vnVWQ+6EY+URcY zs05Y-m%8I*jFuxPWpY{lP*JnH6prgl3&+7T?|OmGINUMPFOpe3WqJ7>5|;j|*bJ{r zWN}_D>G=C}f9yqRj%&qJGv|P^{GROX5nw=cxej8KZF0Z>v!vtPnda=cS^$Rjm=2Z= z`MhRVd&3gU-xKZf5B&P;dP~M9!&?syhqQDS|JC`?@1k(>{=#fGd6X7jsvx5nO>w8v(-NJEjg!`&Ji2|*EXWtQ;lCE;sN^myRa7v7fgDO4Vx zy{pR4KS^3z2k3ZZCQ7n>S(je+^6Od9#30FFCi0X_Z*Z@})#}S_i0)XH14RvA_rvpg znPP~vMcP=Rpd=5|8uk^yPQ&uEIXTMyS>2dLV>e*X`i+3}^R@-suLIiHszQ0UTKu*q zrFIN(S=+Ztu`@#2L+PKFgvu$`=`UjpPE68-$;oZJ)2bZZyI+zXLEV@ZAVulJZX(&{ z6Vn_o|)>e5U@SN#f5@fvWx*>zpU=;SdFs@dc>SnuBd# zHXP8%zZO-Yq2I3M7vAWjpR?v7`ChR@`t__>32 z-^MDpKbY|ub27n84T(xadH{N5CL!NC^ht@Zy{pd>IX*<;cq;(ZKe&WxCwWJ6VWHR! zL}pk77vus`^7}DGL*cw)2VHGu?FK7-0ezsp_By*n!%!GKA0cC!A-XSP zbkkjSDX({z?t$qqyGC~gRZlKTmYI+6O9-|UZBm7?8Ph+wS(TiB&lIZ<8Si%;^i+7c zp3c|;5SLW`S zCN6tW;G_G@w zVZTV?$`n(zYdCkkW=8&1Tr+SfuvgY2K)MjFcTWU?EN+J^IBzwkuJXJX@T(HnT1xyt z{*{t~xYJg{_^ANK;=ERVe>-L?ei*{>bwqDVw(^T`5cxhEGX~)6P3hLId?!M1p|(@WrRU6L6a6 z*{{f4p)PT>r`|HR7JH=$XXL_lM`_;P+7-Z2>zr#Ux{%lT%fISMC8OV(y~Vn zI$aFAcjP#D>xfcL@6r{DjFP69-|0~t4}4VaK^fCtARlNtn*A>IgL!G0I(@c5?uJwthjqrH)eR)oW>_ zO3(@T%{BFH7oD5S_ZpuSu0YTId*<4QtwgLrkNL0(j2PIXeKVGtowUM4NKs5ty2P_- z^m2K_oOOO)Z{vH%2JhBmE=h82;KfC|WF*|fedJp;hk1A#`z&o!W~qK`9)=?W?JIDH zYflF~%{*_+&>FzKDfoBOhFc3?`1xI}Ok>NN)16WrkYmW2dZ$Lz94%MyyvE&6_7UO$ z<;lxW<1KzWi@K8|nkz$k<6AE>xP4D!B#v5T+@ov9=k9nTZmoacrxyeUU#Ai~0X@Py z&tXl(Eqj&^f>TS0l7V2Ml4iMRcjKlkFOj*xm|8Ag*&BdX)*=TL&YpPL5;Qa1n8d++ zv3%l;mEDkmL&Q);!)%1yA4(@aKQD!#Q{#lMC49KJPHZ^&N=cL&dOHOD=(a^HSf2o! z`kQ(37Vh+yW^H=}IsT0spV6l^gGnFHhL;YKHlD%#;@K`EB2;;)|ne52u@grWFo?t4PW{$7Mpd zs}Wqq6{u!blbMrg{TZC8mbVd~5#DwEMGP=ARU2#CrOK58Ga8Ua%#*`bP(3Zo*aAqB zi_H%kJ!%`h1{L4A9pazA$2e6&Z)0;oCwnWPiwV4D<%B5saD>07oi?TAl3Vzq7#n|r z-Sfi+v#a#ao7fZ4VJ*Xz@80_FlV#6Qfus>PK{n)BT`e*JfrY#jcMhv#E6iFkkV-1MHqzZT(=eK0mL;_wq#jm!DoX0@($y9 zP8~NK?}Xg5f>_uqV`nzbv-7R`78TC5dKK_d-;mj0S@-F(cV~_6(@O(p1a)i ze}w(rYn7alAcrpndEPYZy?v=Gk|YGLLEXO`*4p?Og3Ej?ZR+DTbc{!0nogZE?zi_# z*Lb9y4L7a;FvrDKI|H{Fm4^SotK7CsvoqP=aceF$i?bK8;)#9kVz|r9&wIYh#$N#N z_e32(s$ZVGT(&+(Hof;meP`?6%F*o|XMX+|j~ElumMftoyepwn$F8q@iM*(v7?Z5o z+^tgQ2-I}Ngr*nm6VyjM*6)w$ zSd87%Upk#d9L*6Mv+P8CjI}i*rKG)IfS9XucPxD{qYnv9G4C^|-R9AzUPuct29g{< z^~{f0U9*d)y>jQ#IOB7G4(r?6Kf9)2q-Ma56ix{=jK7kL^Q_~ecR9@f^R|R4Nf~cm z_rEI@mV`zXb$NI31Q_5MA86kZM{EC3s_Ql_ zLN;ed4|BHxXM{R`7W4RNKxdGaORC0lCyr!q#GyqImN)wVa70 zzR+2bI=kpHKi#=}$W?gHo8@*GDGq$|p#kCt;6R1sKi= zJCpt{>_%q&`7D?BqRJF_d@5+_Wgg_+eWsni%@h|q-8rBaxdX-kp zvw-fAR|#2)IIXEPr|61-wmHP~hJ8?!?11XJ=;M_+L{4E-j@z`TPY+Cwy{1ei96ifN zxG20d?l7~LwCEru{!QSP8RR<9kSX$2XkGF+ed5%vrb4Ko@(FN^psD`UI)6OtQW)PN zUbqDRnl<43#>r-MgxLOvFWTZQwW*j9M`!+!p#_JLp474u!F_<+IogAgp_hq{X@w8d za?*ov0f@p6#I{dH;r@CwXsT*o`i!;$cU2#V~yw~z_AJNY@*VFQ07@%2*~=iRX3{S;!JE- z_VJA|VU#)h8edw@rSwFO@xdG56=CCRB@D$@uY}re#ny|qU&Rym^ zC(GA|_bxRZsAD+QRRP$3+2coS2-v5Oc;olhW%@5!R#BBT3GGz1YGs!Sj|;L%$o-%X z);(rsx>xu%7OI@BH%s9c3>vqP!|baPgM54T;~d3jEmj3n0JH)tOyRyM%)b()nj%qRq$l@|G;_qI??wYjheVB@ z?p)}v#v>gG4k-}ETK?D=Y^B#RTaRwso72v}|?N*&0F+umG$ydgJm0@nkYL?6tU z81ghCPb$ni7~w;YO^wZef+LBq((S!NuSZf+95gYTTUz*W0BgM?;x9Z+ zcwfYrqM>rsG1|iUN1^X`_-5b9X005?3TY5YZO>rQM7y$=TEs*=2x)PwJiINZ5jR%w z6>CDJ&-B!sDH6oo$a`b84QK-N#>d&#&`^HiQQZuV2zaqq_-Vxf*BXOmia~PtE&tm! zbite}g)&GJS0UyPVxwm*3NP=mT9+;JTN~K=)DEjdiPNgj9@NNQRI~QSF=K}eR;S*J zs%m@~DYv67U&q*WLfWbi^IWLd{IcQbTaUX04YWh8zjL(5e}MFeRVo9f6_D{2^F{0Q zh5g#!_Y-?0Wyiei_g8)DQ=T~6TMy4rYmDtvAav*Td1J+ULLqGP6q%LVI*AeCi_3Dh zgsz7~tidi=g%{iJbom`luT4ERT4@%68&#%bYWjryUce`2aEIj~Wk{bsfii7ZG~{duuU-z|w?jrqdXG#>#C*bY7*w z`0E_V=U9GA0N3T&)OVDxPYx9&y$G%8XT+l9znXS5zG7g!g@g?7iKrxQuY2{z9nH_ih36z3zsGW+)aR2(8S+}vtkHGkhXHDFu$;>q#cTDp2Gi5<(Ti#)#XMT~v64SGe=8Ex zGOSz#WC-Nsx_#=4)~nINI;&Crz061iDDS{RtZeqquam z(`Qsm-L>(WS#ZGb3`O@i3=74<-vD{q27ZF zZGp@)pzR#QBvuGl+TH3Hx_80WCt4E%DrP5!V=gK*3lA*&jwYao?Pa6Q>Qh`a2{$2I zf?#oE`viOi>wv>jleN-$2WMv``wisEe)7~;VM{s4Eiu#2p7Dt5=7DhNw+1`neL4>- zvzMpfQ4+38O=MHc_)w_F3`BtTgO$Q8>I*?Ap;q5qPZJ4&JpR2p(C_}ZaSMUD%~pxU zL5DRwub;>_+sb*Ss6tcJ$M-D@NDNK(po+NrgIZ%shC7PoCmDRm`PU=;MYb^GxmeiQ zYwiKgPt%nBO|-<3_wE6Xy3e-RsZtmE8|^Fl*6+?VO$n=_lC)&vXps-7gu%bHeu;J#x5MW}Cdw#-7#2PP7 zx&na;dISSvqQrO+?j4R+XQ+APO+QI7d~Ep~CD z@!Xcy`C3=B&8=C-45CDWQ0vTy|HO(}Fw#&;bf_%$0RX8@OOK#!p!JRCJBHm8Pyn=F z&ay5Luh-`0O!koseZsNBMp8&r@)-&v2n8iX0@rU~a)=mj_y4NI!k}ITJ%L~BJusbI zXaJa8CdKFs-@gTIY4X3rUQ-=-2|97|1%a~g#ndt{ZGL#@px1S?c;D} zio9jw|E>G@+*@4mcg@H_R9n!0!01OeA-1hT)APV7AVcfeY3$On2LQWe|Jl(oye#NW ztOem*x)lpXqHUtM|L0E3Y0|k~xBqK0R`qqLWG~n2-~>+fn?Imne1|))PQo-^Bwp`q z*TyT`3s9Uxn*wK&_^YMT+a#i?%hMr>ubIa2oRqn(GR4H`@_gx2WcOBz4))+c)YaDA zYwv;@S4H2mxydgLyk#;Van#=Di7~HdZ64y~K`dvP2_ziJW$aFikq>t=* z!`^^$7Lb!e)4NmthhNg@B%73p47z_;Yed>Sk(wCZmr!G!lcH;u0df=x-KwEJju{kS zrH#`N&JkBT`xe;;ymKYG;TE+rIzLthu@g_+OP#nDi5s5~L&e)NOt&shS)HTN?<42( zu$-SdpLua7ZSg(D`(b(R9&P;e>>-J-e?&_i0;CB#>CD^hwC@}uI@h$y^>G??^)u`{ z%oGrV(a$}At)pv4v95zU#fI$hb`O2_Os{FhFQ~oZW?0*v_EwR-s_&-d^?4gyd#gTE z6^s=q|JHlz$@OtBhCAdsgI%FU1^yQYeiD}*G>Q&B&NJ$g>{D2`87e@IR zxSfRtQIR2h_iGy4qmB1pc)MNhO`bnTo!dTMoH`0=E301v_$Ny1k{xlrLc3VINjSXS zQ>xW88YZS1&l{9yy=jzf7scyH`Ezy~RUbE_k?KLH^l$8Puh~+;B7+>2zJSVjRcR_A z(xg)QB9kP;UWxh3)}IFXQ>0`AWe{zE5YRVSJVR!8V|S7TKPr{LT3|xc?H(1oRi%)N zu$MDpirbT3c1!N8S(Hj~{|9|Qg1?gy_Hv@EJt3}Z*$auBOf7p}+S7<%JJ{Zc*vxWE z%Si1Bb-g(}3~|}Oj>4Mx6U&{O!Et&D$$K7EWRGpKX5W@}xSHfZ?IL>&dZFxb=Z2T)TTmzyf5jfPt*yUxBU88)C{YQy%B0Br*Lfa z$XYP8#5ymkY$DY7bR>;yzm}6a%Y*WqDzJTnW*v_AHIawJJ>6du`*iF>cpcbqYwA;> z@IylBH&7cG!n)h6-Y3K(uf9zRN zw89>x6-J;B)ZI7FKCAmE?3gvc=B!AHm$Y63?3eas_Zhrc`-orrn8Azvn81kGvs5tH zVG=LkH(X%$wb>VZvgbzpzI}_~a{HLmJ@1<+Ggz-q*U=5l?`|s6VR5}l>+s>j>oDhc z4XHhJ^a%dAS|3@?9|xUMI^4Saf0Bd_Q(bMEf2r0_s<%`>;dwYmMbWB$5Y^khMOSct zU=8WBIzhv_m)42$Z%rQ)2fdfd`?dW3<@)!yLuv^rjW%Z-(tV-DI-l0Hf)rf!cbi-UeCOw1WR?{n& za6@;BaCl>ly$lB z4R~haDKiqbfnxpD${9mwc!t`51imG$`WMsC|JBNiG)>1hRtC#3wkfoy78;Kb{XteR zdv966;PY`4x3M2L^J3dBsPTW$vc>p@bL5N2zU_<59GU$;9N&U!fAJmo8#n_fen3uu zE10*Uyn|=BO|IAXC!ai)%Xnt2&L?Y{e^IQ?PWk>h7vTL5Ppyw9w9Ue2AvU$LAnwDO zo9uP7kcRb984fa+MHYkkn-_B5u|mx0Y~RD$(Qd%pDBwLp7J4w3^O?`*g+WxoqOhW9 zO}oI?(Iv)Sfv3jdf6pc1x^M{@dnc9|dk>d%TFR2iUdN2Rf3{Ol7#L(1o4BoWu^ETG zi$%>o=Q9)w`<>1)MdrzIxkBKeTHfy`Hlm-{j(%cO))&sl`w(wBbN*NH{$*#>$CKIw zeZD(3zP9Onq+!09s6*;xIM&ma>!rm!6VD>@x$o^;87Ix`jL*_uz~`DipKAt;+Ypkk z*c2wuS2p&+f7pu(Z7*s$<;!;XR{Ff@551IjnDd)$R^p#iNYrpXwnRM!(23(E?MdA! zSC0YkYhpW76844Kg|K(3rlFrWlez}!wkBaCsO_M3LDA|xCN4BZ_NmeI=IOb3-o$Cz zPKDFHtZCJ!W#?E;i@!BB(Wkj%J=S$lG`zEUPgC61f3qIv3!OWfkp}x1_MXM(8tXBJ z8H_MT_KViiL#snTq5(#8fnMVagIiA>)tJEOU>M;f00x5317@S{{ik@Q2ljSb>k@XldC!^B zf5%JOY?=!v`?t}0TCytr&|3J(eceOqGA~S?izMnYn}76qN7_Tr6+WAuzfpRn*;i|? zlsS0t@jTfF?A|5GnB<`z&;Nbf#^KH)b3KzgfSW1B6VCX*yZB^`qYNwnn{%qp7f@S7 zZItt`XCVFSzpstEetbIiY2021XP0H&e{_n^^-|oUv$-j>+%%K{fb;Ln`GjzS2dUu$ zIl33L?GS$43(|HpYTHxKY`hk_t=g588cNs}IK8?N^=cHqu9od3{Wz|3Cy_YJq!PA8 z<&%|dN)H>OolIi16BD+DVwqyRbIv4z{jLW7%!x>YZRwnIqOQ9K?<%I@J$;pve>4s6 z!CHIMAzyL4tj$+r-qTe>VzGjoZo;<_tr}Cezije9ITv%teQEbt*|XxY zXxR)tS(?BaByON~XT7W)`BBlee~sTe!-w;;X?;KSyr`E2RnkR&A@7FB;?}GoYG5V* zaanws;O6);dwR$0=bm2BX@#3tD-TQHhUz=T0rV@TVI5J>dz8e1p(meQA1|Hr1$lo= zymZF|ZtJ$^)w9hVhVE?Lreh~5BO(T9p;)j=oTp9OfiLPbZPZm+k&cy_f5!}2N0cHs zAT%Sim6Gufi6?v(u#z^hP&+O9<9y;$GjDJ%HSrR52#uw~#xo>s6Je;mySlENV`Uxb zC#zbR4(#KUSW?#tOY~Y{NnA%7OI7lD)xU~`x{hlDTN!0#d&zYoTs|8KmQE;9Lnx9y zfy$p`$+|?R2uq;DCRUkCe_)B?gyLuF{M-;4o}W5@yrwBOC}yC4G~3Xftw7gudTb2m z1PHv1<9)Vay`oI-cs|B$!~BBE+0zk;)?;CME}toZF?EiJiBQ@_>r3o3!HT3A!4qJ` zNy)JXeA6}L`~Y9f$*~5bPsW}(0z)wNICBJs>_ZGgAJ-opHm5FYe{x|yCxrY%V;uEu zybX-4+>r_~VPj50-%F0-{P6gJi_<`lS0Smkg#t&5u+YOPJrw*;RyaLaq+@Nv1 zGOCi-wr-DDSClQCf79bS^1o!w%86xafz=Zo_J+YRVAsS1!=jj=!7H>C(+c~PRy>A2 z%^lk`-M@4j;`6r}y&eKG|lmqB)!nLk>W35+_2Fh)O)4_V4@e^k2uR9W3$71bujux@_s z;k8xNUUD9lN#?V^SY`|xPjo*ujP8S8ni!3p(0!`!&{j+Z*5pNb_m@lI)OpkzMPUaIF_+~z2 zcbS~H(?#mze+4EdZU+U$??ES!F=@cZH-W@JPbx9rs+2KrX%AU2Y@EW@_!^k`>t2d4 zim5kwTQLpuss+3DYPzOfClkNnBciiC?gQj9VEoR$;6&L$I46*zG23%(_jU zI~9^KEG($`=b#&!{1E%P$!%Ml&JgT=o(CG52l_bpW@^q4SljS^@3Pi^GyZ3Zv*?Dd z83o)Qf5w)Pxg=cExgROfT5=OY9Hyz|6OLquE<=ZaBLASG}FPf45*k1uZAXORIWeR8&CFeNFPeWv%c&D ze}0De9N}lA)qFZI_Rm>M>dZyr++bX{cLni3t|*8vllJWMvx3XSxuk+%e8Oc?ZnmzZ-nEbEYa$_75H&lnche@lq3q->x-N=F0|SQ3TO2HqdRFNbT3v_BB3 zJ({BZVQq8o$1{xoF{&odJ7_~0qWQrnknIA84@RMUUi3HDg3Zt~h1VtX(_EL2C-eTv zMKYy(yOgbP39juTn+tYU+1#6Vy_B%IH}dPYrZs41frfov&~H@xPkUAF`3YhNe}6u6 z>kztSXO8#Tp>5(5#8xWr$u6@t#?kgmSU6j@>iu3}!R$|Yip)tWh+i{T+KNx8e)9hK zL?dA>v7W+ZTBkRMW?c7JogT*=}gj7S{Fj zMty>Y`?&vXXO8HPk*Zzd46mfuZZXwfygtEB}vD~O+6LB_X8?#F=K$2zkA=}$!; zrE3REzp97PHF}np*>ZE0?<+4TKxWB%zTpjgM!YrujX_&`j|KEdW`#z zPoiEz|K<)uxAi=U`(yEbf6#^NXwF;r2*<#aNW-(xAJ!l`MRP}K1Tm{z=NqrYz4*IhN&=e_8{_4UW%VMw|RA zi3^|oySx@(Rma;K`Sq(37xdaj-*3CTKCE<%rYgDT;M5W^nk?CKpypoXVl;pS6Qj8& zfr}b~i#K^&Thmh*y97F#{Zw9IN#W((br13W&&n9eJwxfPI?mhskcM~Gw0~Fjspa>- zC-3L@d+y`>?;_6?_x#hJcf*AlLSYjJ&h zP5b?b0}+$FpWAYS17$zB{IV&Jzux7x!geiN)Q#|p*UFlGgEpV%*p`^byoUB-lALE$ z@armmy;ItY3ibxS9?!4qP*+BgcA+o7(9c7Eb^T5#r0VmQD%oDrzHt4TPVCECJ1H>Mkv#vwa1H?9|Jrsav6Sqkv_7&2z8v)&dDvtFs)t*?ln$hcC zOSfCq#P6hZ6^VOP8GB(7+Sy>%|Ff)&!$AFttI7JCf2&PRefMgUoB6EfU?~2*49G@& z7sN3F^(~x<=d8P(`^4QcUa^S#bwclEExL=3Q)}~?zOnJ(EA8kryfv#aKIxL%aNL0$ z1HDiCKl9ta?OoQ|o!@v;eSF02w{bhtou61aq;m0Mu8((+x^AcK$GHJGdXjc(Q^1ZWo3eZRMG2cSm)MKFysfjf zD?uwer0j?@LS9v266btBB6ZzH8H}+%I|%0nfAF7sg8wa?lfd^eh?QB~F}1gjO2XE^?($H;9LI%5KpZ$>s%My7!P2@3} z$fM=poa6BJZRc{_ca=G#vJYkQvvM*ST}afPJmUasPl6njOeXl5giO9ene-5u)DW3`<6zgG6#VZm$N!on|Ia)?{sYey{}<+e{2b-~1j6&{d0R9) zNh_K4AGx3WA5HlG4B>x{@c)~i2L4Yd&;MK@QTubs0oMKmo@@TU)0*J_Lc;SF-qzV_ zXqb26Gej06^1p`g|5?KSTEhQt9h};qfACGqTDvfA_1o9(dak*nD}VP#4W#xbcPyYj zH*&WhW%OD(8S(FVkH~212r^1b|FNu$-f1;5dUWN+gp7z>HuJWq&(JWx$7hJV?2%-Y zBQn}ZWK>tM93`Va7xMZfWd!@-7ZMqDO*jf=1mC*vwKq2|lYYvw^o6L8*Iii`e_v&d z#Xe9QSSIjU zkoL9w%lZwRSHC3rgr+k2gdFkT{4z1wC5vx78)UBKe^>k23HcM5Z$0tevpRPRKj)S%~R0{NWv_3$VAl>$Q6}e}WH<;6|01-?F2aw$w8B5q11!OJVRk0FXg<3%No^yZacDmD) z>>K|Q?hX9nyqEErHA_Y&KYM%BrTd=!Reb*si;}w@JA%3e z{P}_}W?Tx-K<$!`dS)X1utteEALK!gjA$s}x;o(K%yk&nG?Hfw;Cz7_bKGd26NUOk z9@I1v=L}+Q9?J{(e>jK3d4R?DQ+VBs1*JdHyq@+dw(YM=PS^h8c+$MSWs}A09fYSJ z<8#4Y11I`KY^8(nI?LvxkJ>5r0D&Kqvfdu>V+papZap*hR|nyj*@@0e*Yn>u^afdb zJ*7?p_aKo*pJZBpOKczI8>i``09_P~p6LxWS~MbbSGmyI$ zZ)rdnY|(g2e~qTgFhVb}9~&mP1PUq2!OXy1^3-$j4q5449FsFnWhPfe!MLUq*eNr4 znZVC*;a`C>-k>>orpY_HYXU7D+XdMW8zEAPmC)##|@le8h zeYvijKOyG>Id;*`GxH8hb8&q35nhdF$zM_aawc8{fBw|_^hcIiyxK~5vX$^^tY%?j z&@AAFmh137)Pi{PNK0d)RjjRV9+{8#1-y*oZ4>&T04G{E;r)h|TQ&S_?@gSae~tc^ zpTe(hnmlL4)gh+pa4NeqOzJq~r16{hx;~ol@My!^j?`JWXZ{=6KN`*_{f6WMmNzLm zIq5F7e{%uP)%+F3XsE9}@mJMxc<_=Iq;+dUDdy4Yy(0+kn7!w)umi`isLqRpaW4CB z&BtaQ_`Z;Nff$dJwEZNvgk#~;Ogft5eFw?g`evH_LzLk}bvS zzLd#KdHlkMrF~oMJbJ7r{ zDgFm|wAnv)cFYyE86ZD?jL4zKy6tVG&%wFC|E~BOk~b9YbNC02zpaDQlk>&aQArB- zf3-i#`9jdSv*@A5V6UL_cMd(!xL(qH?tw?}nZv9!`Q#-JH?Hs76rXa_$mGI9k06gg z-O1xui~Hcm9r)=AE_a)7A6M6Xka=NI=sAMDOJa@#ejM~I0pAY%I`HYBJ}m=Zj{9*T z@aqB=$qQIsEMPI{S&{>o52O4I(|fmOe|#ckjJUvYE{p2(<1j8^L#^k1J};=0%lsf; z&Zmuma31L;>)4zuF+Y~&ygA6QlIMAceqzaU1(C^3bD!dP-Hi6sxA}9kW1G=02RP9u zXjMVvwxa8Y{JxNFcqZ6uV0cfc;eELMM~!XWn=ua)V`{c^cK9UbXCQSsR<4Gxf7dQ) zC8yS;9YgYlCG1Ff)oa&IV~0Bxrf-5<(WH3)q7g?Jw%W!^tl!SeWr%b#I{Hu6*bL9S^09O1ykMRCH!q@W% zzmM+vIhTno2(K)9PONtu3X|cKeq<(FSgbWl9>hu{vmUko2(PpIBM43>F_;RnK2?zX z#xbS_v#VqRcz+kEuQ1lsB6aRCIZEtnP?IlJCRBd{w4F)LA@nEsp#7Iff5*iWN;w^W zfwY6%xY1o*a@{Jn?gM?-OPx3G(9e*UrhPg*>H1E-A9g&Sg*~79JATCT{7?io`SL;F zbd3|Jn+N%cB3D7n-*7E|O1=V1{)TJYP|2gBz)&uK1#EaG`5W70_1n2T%XySg7XKY& zPRZZKxjQWRTTNu>+C#t6e{!>$$kVlldbB;Ty69z;Cvkr(UwgJ-EdJy6SGheX?vLy0 z#WhJhvmNil`zw#e%~0>sP1#>EUXJmT#9ESmUda=#8Lyez<<4s+k3U3U_D71{{9nfB zsVx`s?7aMI7rnyivW44hr5yj;klz94A0K-ebsOBrbt8p;#hy?uf1cYb3?hVwLo6>4 z)EUb1^!y2|!JLP+9AWHWPT>%o9}>9fd3anC3a#SdxoK*04}p*ip+St`G@Qc2z_&V= zt^E%c4}aLco39mbihZ#|Zw!FpHR>6FA1eA+4h!ACaqb(OpA9^_a|`CgZ=Cx&@;3D7 zEARR(;u&nL58L-}e}3MAYtj5euWSB?*TQ|!Hwspt1^NcyXqx>|pVlzY=a~)HfIQH= zT3Q2vF>~Tso!9bEKE%Ae??C$p7;DX=y?MrwxY#(c)}X&c?kgDXd*kF91oj%aAKGp9 z7QEeL{aQwP^DMLNwXaiN?V$FZggpZL1de8@ZIb%e=e8XDe~N9gUUU@4g{+9%dMB*0 z*t-?uVK@)`MqhtSKR=Yqd4<%s1$th*UqMj7-*1FGf9tbtdOqznzKPY7y?`q+>;?Fz zxED~-^|96iRsAeZ^}zKB7H{hoa<^&j7mW%|##lVqy9IORuTKaVHWF=uQ9+2My(*j7Zejy`D~%11OJeveOI#FirSR6<8ME-# z!^dq6+wi<8!28B;LtI^#$caP$F$K?#iD#}$`0<47P54=Nl;cyv4f3_ch4?;+)@`Uu z0iNBt4bL4t-kgKa?A|S4cu%mql@>ErH~w#Vml3HQe|~VL;OhRN@t}Dtp5g8793B__m5P(SgztNaJhW8i3O`(Q)BXYCs=`u(+37Fsa$0fh5>M;eA}xVJMe4l)DJ^v2*jZwm{$j|VCT>bAOoPk--_Ub5^a*8ee+Q((ygKJc?G4eHgQy6wp;k@=&WF5USLp_iJVt4o%a??QP zfSyr0=V+CA7|BbNS{CH zY5QJ!4Kntm&bf!qGjXNR>!jb!M6;(If122&-tr`CmvyVpQh6NASB5N!N&TZVetSAg z5RU+B9`^Z93;TNSPxYA^tK+6+SZ8yrJOf(J#>hTYX+2)XIPPYUdS8E$!fU?#{*xr^ z%HJH2dCF_RU;4aI^F)i+juKu|Fr2k*NtA1Nd*>L0A@)+!Uml0vV2W=QKOQB#e|D7c z;9CB9`^FnsJ-@y4JPp_MS0W7k5n2+Jh+kMU;j`d9fyd$bwuaZpd%i~Aa~D3NsODza zKaA@Aak0{g{wZo+RHL@~-U&Id&ZFk(HBfv)n7n@={cc$6@R^Q~_Ka1XF>$6neQkJW zB8lk|*vkNiCK5k;qO6&FQs^qVe`k$rWJto^p1FcIAbz!noL{YKQa0*Ir^>9U?A|68 zlXC0a+azR9%JBd9p!#w>s0PzDER?~gm(N5<4;a z$H!d`eB#Rb@(o>t3H$KE|Wd;j!9is%)e-Pe_(n_FstXD z8GA_6ayeGD4#(*C7wP2e}%hnuPc%z4^inn&{{FQiW`5|C;qU!Y=5_k__zf2CK?+c zJdvE2{~d|bO(J!?Cy~6z<)n`Hayt*=>tuVU%DNXd`8e>SJ^349FKP{uSWwVONY!#8a&l+ZM+1!PGa@EqA z0_N}Y_}=rmobHtHe+>RvJJDCKB64c-^`sZjA#4t14@9)=iC^ey$u#Gn!r0qVNrh|e z0lSloE#OEP*Z(Rbn{Jia4-UOyWYeiO`FiX=A&xX zd*_yE$S2U3zKY0Hy8enfhuZP-xiEQfQ^`wfM)|op$mid>e^tv5i~~L{MY`njaiN?~ z8~5Tg+d*RBS7$gMl}lpGp+S65kQo#A`lcm6y+mfJ`!Ck;k%k7&_uVKDPc~mHWCr6* zMy{B(BGJz_@gU=A0^d7!ZbLP(gR2Q&Pcpph-2cbPogdUba~ZSqXG*xfi?VWJ`vm+G z%O(AMJ}&0-e`T5WG-_;pI6p(qa-oDHQob_jL!hCFDO_pMb3x);7-tl5fh#daso+GP z@aK9uFN>=_@jbD*cpv<*C-z<@<2l2Vla^kNaZi93R9?>CN7NAeyn(+qwpGOGV{$Di6kFg`wB2c>(AVCRxjNY>gxFNdqR%O6L&TtU8db$n*67?u0Xl~O$FVz;@K$r%;NT@`1;nZ@yp*C zncO)23WPtrdPK743PInKmlRs(=ddncBn3=FcNWKPLaDBBsj8j_o}mz)opOzh+b&cGQuj-aE2Pip$-#n-Ff zet{DXg8*~+Wf2HfvWZB;nVD!<*TgEx8g*@!^99PD%5=T}=w@v8n=KmF61u(Gd9$V` zf57ltAaCZ?*i8t-xq}-j|0WK#qzV_1I+3qPeDwt&YUlB>PUQVvaCZ1y!r2>*YXq+ zb6;uKr##!w7bw^zu#8)>TEgRCe_?+|fBuh~;`v~Jhvj;sczK4--8bVCDPuwRiI~$e zDG)W3N3t69U#H9G>Da}XQEiYnn7-rqFC+WX-^tL=N7Zr+XQ>qn@?q@rJ5ua(BNM$u zR;riYqT!arZ6aUd#GlleG?TB1bGlb#Nczaemv9Ee^dSb3 zQs+_UQM*$}jC_i*51lDQ=BCKrT2lTbF;0emFJue)MmqKKeL%Jzl(GnQ9UnaVdqsYg zH6GPDIZv)t${&TBVN&C@xARuce_z`$#?rK`4f7I!2WReRMV$_CMagY?J!|QO`<#Er z6eqRZd)(;cMhX8fKkSDbKN4~x(U2E$qpDx|fO^r4Rq6Fk=!hz9!w4Nw9Yk2Zmhq6B zpBfC4Yn#YznJJ$a<9t@n=Ut@FjG#!)r`<>9eDn-iPn*-|2o(eK$T*XZe*nE;e7@zj z&qw5Q0g>A$_TH^^1i(NCh$T;2dXLUa>FK-|{Y7}+Cz{)3u2mU-W;yX4mlL0IIp%o5 z8NdaV%ViEs5jh8;E}zK1$5P|hwti5xfKtz3GfVzO^g5FET##E&gNqD9$ee zhV{t0f5mdlfr40oJR|EUxm9r#b%u}jJm9N-ikw2GN0F90HJ+jKL8kJxx&Y?|f7GU| z{gVUGXz)D4HMkc0H`is7Q%-M>tmS{1Mo#mjj`Spc2CK^qvZ>^Bf5-DHQ+!J!J4cC3 z?RuzS$IBnk@XneQ2tz-FDf8jA zZ{V5@F!bexwf|_t{Rl%WC!FRi1+|$SX*1I+)uwi_dzO^j4o6zWreC`1lNl%()=@#9 zxl>6UcLF;EW>d}je;ulq@f|L|{#zynnNKP=uS{54#^2eY^7dERiY zIeQ04TE*^1+izp}sN|wK59rt*y?@_x9eDr79~C8A?p}d0rk{SlD7mZie&j*52d!n> z%i#-lj>9SLFszLibzDE<_@NvpCmdnnD7W(52#feREcGlsf0J>eUus<-#*?*do3V?y z6n1`9p!l+iuhAp$^(W+-@AIc><(b_O+o0#u>H^L?|47#C?`F^iqqW=*?gNATD_yYe zuGN+<*g<5zZqLISKKA2>5C)l4u+k+;FMR*5)k21gOEir4H$JH0y0s5#*2^#JDen6)}{{RtZDr5QG=-U{vOPBYJxE)aSkLw?LOBJd=_T>Opy6O_pLwDQX7dyvTM z_tMDgP?-aycr|Abc?B6&^15iwW0t(GBQjUN=MgPu>xlgAyrna)`nBCS=dl4WJagmr z)dOJ2_r7tCcrDmZ>xe9_BQkpY$B%OO9fa%WKg#9!AU;#Swv(^*2hk3P_iXDvfO#ce zmh+QBe|On+H0YY{OP@VT>;jkg>`|139CF4?toLx?nm(PZ;{ICTU#y9G=uD}7B;}2s!v}2WnylUz(`L|$akvmJaAnW{jg(sLe5>%ANxeg z*hPF_6)lxx@zEPlFU0bcUVw29|6fVs@nD3Ue@`ptGwk|s*PUj4IFM~6=XC{ZEjeFA znw={C*$jgJg9QJ7M)2QxmgAp)*M$WC*Jr?g>=f}2I5$4(KUnxbPH;YD zf6r3`U_~#76y?|%H z-v!qkPXeBw`aurj`FE2~Vy}G|!(1v1uTjrT!!rmh4WFye<=^TMv4Llqx*zQCzIr?d z+4y;utxs|?;Q3Vb3E)iOdC96H7M>|?e_<{aRbkce>jaT zc2#tQoKJgQ*u-WL-U!n0Mnrx`my9#<#-786HE;N1|I6ZyS#NxpY-@NS4&yMN3z}^h zUK9Sw;bfxk=Nb<70z53aF?9C*poaZ1O0XHxUR@Cn^tG(L@U zA>oY+iO=#L@kcHqy zvKO#c_CMze{-I+Bzi(G=z8t5$F0yrd-f8M~;2Fg~v#xp9;vb*z%mvrHYr((|is#_| zspxj+LZaK>C$`GPM7KYArgeLlrbpWAVjKTMP80utbF;P{u;rKF{FYS*e+IycW{MVB z*Vc;&{{NHUzk%R??OBe0{#`c`{0~io|FDz`hpe@k@DDgQYwPb*)>eaam`k+&FL}=z zTt{`@+1-10_wKG9SC(yT%NQ^uh6G4>4ud6v1V#dbU-*H=%LF?G7b*#y6qgQe#x2A% z^-KelM*)XQ7#VC!wq*z^e{zz$jq$W90pZ7;aZ3&9WLk)eQ{prs0rh;}IcLwed+*hC zaAVnUe@Nf%Ir}=_^L*z!->2b*H2~Ly_B#Sr_@lfq(w+r2UE{*|FJk93=onk}u)sy? z80EhxSij^C8M^CV!}V?An|^v|Kf)h=JsU=Q-{{^LiyyOI#NXCZfB0*N@Bgk&;P3a{ z{|&fM_!~O7CvKb8?&Z2o;0)Rtyv-4upSqcUQ$={m?!6M`_VrG=CbV}4sW%b%mXS^ro7ntAnGR=?1BZMCx(LVO$G3L5}eq_CzG!q}Q z`Sv`Hb=~ePw<+@6f4&f7ol4tTPCKbII>SUvtnhztL0Wn#%4NRA=c<+U`D&k3U({ao z$H%dn&|0>Pt;Ndh^8mWhw$__5T1)feuC|`0rOW(K!AMiio(NvozZ>DlpQuXE;}DKZ zk~YnlG*^_xVm3LA2`Qkj22Ee=eUdxrYjXbw$e2gtH1&s;e=(oN)`FLf=eXF8c;6Ax z#dg1z)gm1T`M*Q9Ph>@Z{QDmvI;5tI4q;>;9V==>y-94S!GsN^>Ee4Ue}b^Ep#}?J zMOO+=$``89QHNY6<5~f~KNmU#_n}`->L2~BT+<&V9RdRvuV1hu!d=nd<#GFJ%u(A{ zgT%giEn#12e;h1-@U;S1;jPA=K~Bck7OF<9A5aDA{)!yNV}P2;I_5FZbtCCF1xs3FYJZxvgCaWF64gD^$0ph} z>UaX`zH#K3#oDXYqvAh47QKYdCKjPHm*fy&lEzBW8PJBdpPq}+S&W80+JG>ut*l$w zjrv{4TmtW2FKwv+@6~lk!*Cv+L1~f2f20CqdWA;Qm$IsacS=~n%3ii3TdO$z8qI|M zn#p=jGoiocI9;M228D8?cLRd{ySl_e?80X zG!1vPZEk|=DSejnWth#xmvNZ*GOpIX40GM+`!X<3ji}v_W)fHZrEqg~yf$%N8QVeN zyEJZKY_;w7R17y12hi40-xI+No|uzS+?2H)T8QoND`LA{Lu|M2jZSUib^Xso-`Cat zOqieA)71WEMHsKQu4)s1A8|BLe+ozZdmbV215rQMSP%tf9=#qInVS; zJL3`leFFaD2Op05{PRHppJD}^uUyPalS;cr+I9`waSccAJ#wK44jVw6hNWoiWS&e5Jj4UFs?ye>ZeryS+@ z!&qt?;XASMr(+InU2PgxfARqO9P#*HOUC~rGXAs3_;($f@n@fQ{Aa~=%&AAIV_+<` z9k4n!{&dWtt?Lkh+ms#f9U`0A$m4$<8UNps@t;k`|GCl8F+&IclIuz#ySPo3)%iDt zuRK=@AN<{Cleyk$C4A*$B&_gL%2y6!tMHMpd?1Doii5qC4-~*~e+|XW(57#PP$x(A z2^MM?@^B76P!Xoe;4Gb(za{tou~`JCzau%B=4hOz=jgqCY`w;>u|8hs@Ivc0Gefsa{0^36|8(3MT%#Z*j7H5msx zL03Raimn<~tccN7f1c11v{ATWO>fiSV0GBh{Y}*KOMh0y&;O~UH#mQvfVXAC=UVTJ z=rB)cGEe9&Pv{Wu?`at7xIllu@mpcOQ^6}k$Y%-bLtdF&P(hhoQkMKrd5>OSDQR7K zG2k!F73DJ)tI%ezQsXSHuVPH@u&ZFM@>VV4rS08Q6715yfgAA4OBbaj~=H{e$~liSBzcq$7yuBt7YQp37P0gI=qm;UnKPC zC1fIuzmkbv`uJ9+s@AmxV^hg^jYSI?bAA>-1Ne(*1NC|K3BpJ#{kb2=Yt4_=i;;4wg{QK z_Fi#*TQ(-s#rYoe7oQZ#%V@M$(YVqv$nSP!gJDK6vW_m+OB`aOrCHK9EGlmZZJuFN zUWzb#^t@ycBvI;~=B>e;?nkMqZJeyIUx?JXS+wmczV+ycU&3 z)Y%kXp`Jeh+r8-e41a=2zTccH?HW$W_FNhJ1~Pmuk%v1U)jZh1DwEF|S3{!5=oeTSN{@&?DU~B3?x5krSmh$e9E_i@;wZ@RtdE zHi6F}@VNy33W2{$;PVK4K7lV7K?hk5j0&~ji8+mSA|rs`Hk&d7H(-8 z9_Fz5Ct=4xFUrn_?RWD&TvmO^&!5)D@5B47tBk?4&)lE3BRuBrZ1~+Kaem%6vRt0E z;j@N^xea;vZoL2CU?%pgf4R6Ln%j+if1*vCeCeo0aQPCv7uj z--G_;{jykCJkq%szaH)HvQn<;{kBxLRREymi#qs3)KwhtO_Q{+gcJbp3f671I z4)=rOiL%|r`G#trgmg&XPrc7ryo-LH3G&#H{o&2vSjh36(e>hec5>?>;Li)Bmf97y zi#<=`c+ejw^-xWezq;s;%cq$nhu9ejIgpa`N0o=fEt5kG_(9naUgK>s8-nWThQqfL zJ-s{zD|@27`_8bVUfC9Zg!3M_e;3@B!cb#QU90Sm_U>=sJyoA147N!7v^x+Ue!wf6 zZ$zw7Ys(;&m`k~lUqESZ;W;o%)$K~=0GvnWJQ7Y(9hnky5;^F@Y?$O585aBda82)e zIp=}>4cE6Q`8dorNIlB+jkQ6{g^s7ZyT?nu5tXwZ<6MHco|rpzInr8Ye_>@v|ezct~piLu|{t_b&^f_5`e@&8WCDgj#)jc2$HAZ@wL2*!Kf+kLIwqQl895 zmNA%}F>IBS4AuxN&+xdy%GfS*9gle#m-tMzOn{sx>UdWqbKrO!|0_n_<&Y!W1x-(k z<-8ZikY#idGZO74EAr!Xe;1J4Mqeo61I$Q#n$p4zM(_c`I4YUa*1aeuQ>ZL}wj>PK zP#Hn_U%{$>5{CZ!*51PBn_>=Om+=icG7qrw58A6_Rw1g{(uBTb_$MN?|!V_OCqGv0WT`AAGBj{P6QSBF>72^p?%X`<(({SZ1 zq3?$M2v$5rVZ}rBe=8PBU!%wS&lTq!$Tl6BCrHCYE;@LI82nqI;`ne^40^YuK?m{0Vt)SKulyk6(pH4MRzsAmn$vuuIj zN6@*}0>O{Kv-Sew=YLV>?K55!b60>rFFN-~=BovI*&_cWe{2(d9r+Mrem@;U6wM_h zuhu2>p_kz0U2-j=j%9+AWxGXqyDsXlj_U~TTdb~>KIC*z=V;!amf(G*3on+iA#q$o z+T&{%v&h=Tm5H?r&EtOKwUV#FpE@(*@jT)EJmKZ%T3Zl?HI4k*t0EYlfqcEKQp4n0 z0nd!&3|y;Vf9MY|`0^AC{X3>LYq+~b`u>72Pvk?M$PKuEM}2>E{|2ugzYDHySksTW zG#XZ1gZ<&)(&atxlUV88LINT&HQZO#%le+v0e+w=H~CIKi^^+=DVf34w0*QewTqdYcd2j7U)=1)d&4#q)&>RcgT60z-+#@fsFY&j@p_pWhI<9rJoP%Aycl& zfSqJYy9ee!3rVc?La{!B^Pi162Rhp*{DJ_R8^v>#{5?_RhwP&Rd zECQ#Zf5sv@Lo%^P`k-%Eu1!_R{`uEixb5GMvWwOx2AvYEZ>x1Dxd&JKy3A|Ky*$<>Lf2QN6V7qG`=g$)+XSw_WMj=nV1fPUgPDrrGu<&7d&rEou&Lx zc0#Aw!FU#+&cpGFblf-`t{S2Pe~Yoy>bMHWtR|r&^?$LCLp%<(rD!j@Lyq(98^k_7 zvxt3MMek&`4mza}}tyArZ?7mUMAh z57!7i<9`?RPermFWU`X&koVS-vKQ=NOXvk$16f3TPn)#7H8%;FY?;UBzJ%i?ueGXC zqxL`;N{(>?=xS}mx$fX#rSKUgYD`i2q;jfFk#a^ID>(!C4kyZddq6`%j@0qL>I;C6 z>qzZ%bu9AI`}}x3t1E5$E^1-FCVYKXg0IsOr+*VAY)O23q&@CmzLfZv&x`w)TQ3Mz z4cPW+7e)NIZ|$WLu88p$c7o@` zdV=8DOk}~Or9VhJ1n0@JDyNmhinT~6W#j0gu_GNs2oLZ#)%+?~AGf={jtw&&U zk$;R&OPseBwkVqA@U9(Q*J7r{RH7a3SAR?HFXF(!7Yx=wEi3xFA)c@EOGlZn6L?em zf~Up!pYko`XXuxN(Jp8`CxZ8_JvX{GoyfCjt9+fSG+#;|k9y-(2HnGV1DWFx*jhyR zBrVr+KyNPAzFpQMd1e%1Ku7ey81Y;)l=djC!F-qI>trM4a^>Is5YY`^E@JcfqRd2*iJKx*{c(tpPZb8lPjEd|8Rz`xCZWf1vq`@{`Lp1P-=)QjTs2ME?rx z563Pa?TtZ&j8EJu+hMJ+$dBW18i@rsy97U~IasDlECBG0_EV0H@gwEI>3=K67Ql)J zi}7PycO9RP?Lprp!fkue|JS*HBG;z^hWm63?7=x6z^b+w(_>pi^f&C@snx zx#kad+Va_5e>hS;HAu}s2Y)JhMEodjxcyhS@&~858ui^A{QbaqQ`zLXD55lw$ z(pvrQrj@nT2!l@8+nEi|`nU0TEyQKLcfYt6)+d!5Ff5j}OfWO7EW|QpaJ}C%(zee< ztCMyN-!M#{H@Rsy;~8GsXTI$)-{k!6dXat&6Y?TgLS8V*|G8kIq<{FA0>F3}WMzLi zcGwT3&qhF^-C#w2oTg?I{e4cEb^eT`g;KU1$O!GT@e@89EhC^U2`d>xVa5OL-PK$N z?`cx~I|km0;D$ACHL3o9t0P_KFBa<)&Jxa+je6Nj^alv;y;)3UxmSt|1yT@ zWJJ78+GVa?!N-#Gp^;%3E;t-7U>=`KxfKDc@B`*&f`~77lz-&Ije%+}%2%8Qc9S{N zxh3-WoW7+CAH`R{4=)vKXE$nI zG6>8vgqJchCL4I^X2MH1lN>192rq3Dyu?mmUK)viQZ8eZPZVyzKlS5p+FWl9p-!?J z-7wfUgt^lq+kX_}VhZAY4cl@U#QQ2*?k!2%>jTwZl(soeen)8gD`jX~?dvP;4=^Lz zJ}~>3ETL^96 zLTI~B)3(|7*`{q+wW9RAdGaT@V4=X-#(Nm2`5~0)HGemKoNMrgQ10J5{#UvD)Hj>5 zuUCYJ7kr#sf9Orr0h;DBhTbdY$h~5&k>SeO%(#d@$KW0Vy);@i+QygmcP@$NTRgvn zFFcU2Q%3i}*s5`Ee);9tIJfX)$U_19BLRkeJ>c7ZclJNzU@s=DGqk)skPG&S_3oa@ zVXmWI!*H!ycUHNd#m`=)-bKY=GP*9kim{k4e2HFTVoS(cQiWbOHg6;Qu8&pT9$!4i zmwz$;4F_Jy1^arMUOu@BzdzsEgR%YlR=&!|tEcHVJ1au}>>uV}PZaRt=?}ij$F!&E zub!+5>9u04dzywXs}%dD(vFDVSF!uJ-wF0kWpMwbYiF44WEhS6ufW_0Q`jzl67n-W zX6Ogm;amLpHGfiZe&*v@OZ<2j6!GJE(tpNENqQSMf*%iPOVL^F>aG}_ja|Ko(@HP; zy2tW1mHP;wo?tT$z5%&Bx6MB7j_V%30b2E1Jww&6x+f3-# ziRe=N>_qIZ*!wEhaF~{1F})=}A6QJ~y0~*gB_}CHG*WeB;38$=x}K z(}#6YK|8QVBak$;1?Mre&%19tFXYudLAd$pt;ln*r@Wc)pMQ2A_JLdhv`@o<=eZ3i z=!@QG&B2Yx#|K#us(p?B$KJC*S$|bsckbui_q%WAz4KL-X8!HA3W8#{>aSzyv6 zi`7)7ODH7~@Do4JK~!cinZ{3GFbHZ}O=GHIN~%jkQ$7R80P+T_5s7JuGbUNeqK2j# z%%CAsKbfAr&pzkw`{q4{ETWjKyrqkM?m73)y=Q;VIr}3SHe(CV#hStp7k}VJ+$bcV zl>ZN@(IY=FiZPBcNg^=}EFgZ5L}Q+aMQq9wezy3pq}sEq6$R4?C@XAH;wS0qd@qmtiRTU zWJ3*;2Q_#6(_ZZpJgfVk5r3!PTQ#fun+U^Re%ov7rQB6=qK3(jnmfKB@7+ynv2_w( zdjhye#rw_b{yKyI0b#(kh9SPc?X`bI7-S5-PhP?BoUZ&P)QReuo9H?B$@fuk%$y19 zA7%zH@*-8jP7%Ti`4WSF6+ca|J0hk(Y0mzlJeNwymjgV3gS(wju78y%#TN$skiW{944bY4_f{TnA(^FF|FUE9J@ zx~GQVl%6Z7KlRXhWq()h_6s#kX4f!T&d0Pp_Km#|i?#pSl)Qewl*hZ#=YLlBgK|v3 zmwq2yPfFQ;pMp0@-gWOsc=3ir=-zT;jDMUbrL`;7kb`bD8F1HylJQc^tJrc{Pl11f z{4XPgzU%6mS&o~bHJ5@d*TuY6mR&1IMql7Jh_`T#Rr^OKhJPH|jyOp1CA=SG_-OGG zwKY!{l1a&{-!*kB&-3;3{}1iKDW?5?QQJYBOz~@}9ijW{*?4G=qPC5EFvaw{qQp<~ z;sDbbe^f+oG2*4E1nV3MY1SX!uUKbv#=?tM6zx|8vUq0qT4@Jv$~{n@k-BBIl>3{| z&aA%UE*!IXNq+D4dMNtsw(Vx=flY0*G1el| zBSqIe21gkjSwuc5MPoeDS#Xx_kll^;cv|V82}$w00Rodh2DMsK>wd2HK-X!#H*oN>kltI!bjUlhuWNw8c}0H48%XiY3;v{uDv?Mg;#JI_FFc6rkPqn(~dvdW$eeRrntowivh*WpZX^S3^O<6nJ0 zS-@P8Zj|lkL@h}SmS;z;s2dY8%pv(A;`PVn@Oou9KlPuUW`1hGrN(PREFQw^T87KX zvaf64-wmwsx|YVA5?+@uyjC;3UVp{#+H+>|Q?F(C!&pmNr)hljmBYtX;e73%IL&j@-VdI6fK}4wlM3^}Y%QI@CBkWqe%8@KM9?aW%uot}~sl{Y8vh?Jqa~SBK~S zqSKszm~%7#NAsci?_hJjME12d1+bQF9Sj%4&i_?x{%hI%U&H2q_nDsmK7XA5m&(om zHDP)5XQwHTV9w3_f9u~KhKY|lnXlj19$Y>HaA5GU`i>bPd@vkr zmVJK9W&?NSx8xQdsVe-ztADjKrYE-GKE(?c+nZ7|tSWFI>@s%95+kgzXR( zOPmSIZ#HMb1mk-C+Eseopm-`+ON(oQGcv2L*}}bM@65+XLC$K2{w|zzE!nbkkG4%k z>bf47U+}HF@2{@Lxx3Wzajsi?HV5a!`V0xqk0?KN)b%hwwa#rV#D5QwhK`tZlWM<8 zG&NGZlC-G5R>c>xg6KuxW&M& zOW;p!Y;yGqS7=$Crh9|Rh>p4D_MoSAjZ#JTs&Z+}wXy65LlT(Th_{#H0^ zIq;JQF7aEoVvfm8J3H~aLH?*3Q*sTX{ZTA0;z4~Wp?rG17`*MPh}VH~dP>g09){N$ z!{F7W?=FkiojVL(AMSOsA-pnNZjgQbjok+B8X&yVm{YRbu48t?NM<+O5a8A7{qXS$ zeh(cCem}hw0cV_A)dQ%eS z`(Do1XQwALz9Oo=8`VsVU`@9H#L=7Oa3sHHKhxLQVSn^>lHhWFf`AtjGrw+52uEp# zmz&p3%eFRYcuuw}zs)gnE-k%P9f5mCy^MlgYaruDUf(wuqVE+l={`G2p`SqLEU7Fo65X^gPkG?(!@d2^{ zV85js_kTMc>&@Z4fP>ZPS%@3^!OFrXUz(Yn-r0@v|I6Dh#(QB;i=S7=(QnC@vcs1Y znY1k2-%ME1Si*|g@kreDg^zoh36Y4!MchvaKbbHz`;M^-f;QkswLS5Rax^V*_bQ7O z%$4v-jMKS`OZcfiS**XD594?A_RS%h&NJFw-+%iza^AKh{GuG!mEVDNmjLc>+=0G_ zO$(Mvn%<87Nb7sAkn_I{&s~}pd`{lG4SkamQx@XlYgo z|9_#*J>8F}AL5XG5i9t|c9|}70{bK?KVs}lS4y03$GTsm&}PsPRL-zt|W)j3E22}Kg*QwThp zw4xXn9JS(!B*q3uY{|D#pqMw2H)H19?0?N9&b~PZgLZ}F-6YNl?{`p6zK1@AG2<`t zUNS{(3(u5YU-egsl0Qi^4=`T8v`iiW&FlJnwj8emf15q;jcY=@eu(k$A;#Zx58p25 z{7K~9#*M3`TznGwwX^oiS;!X(aL??HEadlty^cd~ugFeMD7bpct@1hBY0T|%ynm{7 z)F}Tp)VI^H-?tP0mLMMHKkio%Dd|J6tsNJ?*G3)>Y%WV^y9e?I49VRV^4+sr8GpAj zJ<6_Itt^iK=~2wNgR=wd*XpaKj$2NB*dQ$j87UE|9^b;@FOAE z?^FEQu<>hB7i;+bEYwDX{5k-4<#(db)Y0~}$djO>UBi39euUc*@Rq`NM0jO*GfI0- zp2_uO3ybG^TFU(PmoojzU~6em)5>WL{9Ns`13y>mCZ%67$J4Wlw?0Za`%CRBycUor*G5s8#f;&N zcTx91{hAt4>n8}qLBFE?pp86^BNNyz`MW8+wwhUDZ53r}tN1W$E1-8x`zvd=glK;b zqw(8ow}jyS^@@Jy9R4??W$_A! zO)T1-7wAK1-Na~^V2fzm(mJ6*(KD{OmMI#J0Ns99*^BN+Y|X`Gd`#Z7^_g!Y?SU@G zxo%XsAH&xl&2At$Gl$Xe*4h7>ZEaF`ia+`|;tbYMkBxd1?}eNa6^}oTatUJSb?z2v ze^K6+q{FN<{}>oanEuYoT+ycgv;*lm{`-i_lSzwY>r+vIb0Vt*bUVPv;cLUy|(^=+1g z#lbtcUFD#5u<4qj5gr2;E7BaHwc9ebwpzyYz_K7;n#IP5WhC#5u4~zkdH6Mt}IJQ2tqHd(5_}^E1@1cqO=B#Z#$vov&u7O6mun`fX9-cXP8?!SuuI zGC7U3esE55RtCHT{9}Cn+J6+{rN2CUQ1ZizD1%;a-#-L~aj&=kz`)yPA4J}RF?ZHJ zkG!Pet^vi9chgTqGde!NK2jIGFUL4 z6l@;EuetXs&Vb&~1Ynb01M{eKak_Bl-ye|rp$BVHRDJn-DCdqmR9VpUiZ)CrM+)x2 zTb>Km1*uSzB8g`i;!S9s-;L~q8 zAn7PoD9(2&^+JYnSx`RNdR*78F|xlN*R|vQv&H+SZDCve#`r$lJ@f8uaPDrr+@VfX7!*`R8iClPH9ME|KqyNcr z9Dneah9S>8#Jhj?@UIl#$+hr~*}uv{ZCS9Fj<&x?c9$>5oG^TPwEdTge?OioG%$W_ zV0?O4?J;@p^9G)tIDj_W(e?ox13VtYy#_Pp5GRFgC{5um+rM^|J;B!BfT!a9ZJXlk zg|;yTRC?4YEIt{Yp+X_%*WKVB$(TWxpf)N8#KJ`AHhv z6A9$bUlhq5k7%Tk;0lW0@>xHZJ0NSc-0AI1gyhcgo>)%BDpeQeb$Piis#kryDVpYXH8FpVTf&-*MAk4&*?!O57$AK!CD$%WlvNV=1qvSfHolC@9`cx2l5Vl%GUH*_&xx~hpDe%8T}q;UyrR1 zZK|j5h>9ULEA%H={lVhXJ&W>fL&cQ9{(zG?&-AN!PLORN!CZ5EiU z8H{~g&eo1aW6TTklQ+9_-0|?44xc zo0ofd@5t|`3ZGcz;&sS-V(LpkFk#46Q~yTMe;^j*GtxEOqpsz~Jduc`WIM(7!ID-K zau~;wY#+?G+=Oo>AZMzV6v>z`{1i}LJ?4%)U&_tnWbc7r>jWluEq^(?P5x4K8Sp#$IX-_vO-PRSCMt6f)2?KE zO5#$%>-ti79oBProqy!@f(bPt804(Fw|XeNDN|V2QbpI(g}0m1Ikgs)y8Olp`L`4d z*Hs;&l)N{M&xhJp>sl%m{G~*pm+6DIdy=`XJU!=_kIw;}0ndc%V9)k4ozctm&AJxf zz`acOq=(S~qC^cGZhux88SR?;Bh0>4`#YdRXpgZ-M|h+oe1G#)7wd58{%X__frbdj zyes>cv;+M-_I#z8sxW4rp56gEE$B~@4&!o|_ouKwh}n;WJYxMdrbeXt*&QO3Gr(yJ zbdg&Iw%P*w+HMPUl-EXi>A}8kqdic%Ug|lKHmda~;W)d_;V6S+687ouf-c4Hmbxyo zoZ0W^1bWXoCx57|E!vw!hU|L#g=THr4vH6=b$mF=|KG>t|7L4Io@(uVaAl2>Oay%! z)49StW%t(5O}@4%2p+-UI$E!!bPjq)$=uO22ISNRl1CZ_pLvjvpkpCt4Z=OD-Z;Q& zjgl#>c(fYrQ_$N-k5uD$(A5hjWKiEOUXlu3=i?_ItA9cnH|?!-X#Bdml>A#tR&sd3 z1O>x;V!cU-=@*Xc+N75~$W7*1(TL|pV-YLnM%l|k6Jl6cL*Hi5I zdS3=8@pUC>C+tHSn3Ilc}hy-)AkNYC@-O0rT)+(xRKke2;*^u8re@T4s2XJ-zd9_CCs zG0d4X*b3TiIMFjEWH-!bcEB%t#)M(2mp7l;2Y+zg?|TmQF~I%npTj+<;6% z?G*c96zOQAGa&Y6BJ=BB!Qw7f1beRH`{6URkK)-vBCY;TTBr}0&t%7ZCR64!Sp)M6 zF!%}X?Hoz=e0AZxV`mwBJafDjUVnT@Hr6s5qFZ7 z<9{Zpu7NM@a%nR*gTzPhoL%rNU^Y=tWCnSRqC7+% z0}{rO2^*5b8{G|OM`b=hSj^dzQ8N=ag6^_rvxXJSswkM*uIlRU`o8;^F&qt;y?@M9 zf8F1AzgzvQ>ZSpqx#+?Um#DVqDGco@gv6ZRah9N91b>lc_<+hDT^EUrU&*En)H!E*K!&A7E`19emdD zBX;(&_&&q>_pR+O2H3I08Nl*fXR$rxUp+n6kra}FqVsNe&Zs?yT;uA2n17z`V{rCe z+#l(Itd}20k}pp%9Nks9F@O8;d*PYcwwD#n zFt5IMuX(p@wWXVm?nXaRz2_dB^UWIc)2NOXMj-SWB0JBKe+`nCC+E~*^_VXtlI(t0 zS}B3xHcm7H+mGB|YUXK5bD~gs-^p$)$`#Gikn&r@=0$4kJc?Jt=71T^+dDO6_r%)3 zy$OANmYqj&X0fqm5P!)ztdpu`c_6RTIrwlc$?J9>NcVL$zoK=)|LO*TAX0WV&RzyfkL@!prdUpz6daGmt86}`B6T-Dh09^4DQCH?2J4|k(Z zoYXW<_VaGkzkfhy+jdioS z^?Z_BtF))CPZ<9YT57Ar&QCbCET5&8`G2)6N13%r)Y!FO&c!x1E@o41ixe;K7g3w| zOwCc_=kx3R&9%%Y^!v*WTHJOWVx;nZ+5cm%S6H~Wdw)1^2Hsd-<0h|YVM|NnZ(ZRh4P(eN6(76wLq@vc}!lr7m-(xQ5&17j>TrI zZ0%Vvp?|7<-AiZ}Ep3}1dAJL0n?31UWSd4IDc|#!EPS&9}6eQ1-`~v3w|&FP9Si zDSs=EpmjkBafzu{HjTX>+GoTFQ&#gF{n2*#YN2(a54P7Kr0p%FJbbH?blfva@s(?@8~~C>XH}HC%dEn zZJ2)sbZ4;vJ^pgZR;%d*#%JBx)*tY+41a@64q@{cbJ)3^bI3OUx}C)a+DV4bu=5MM zdJdEu*xU)}FA3-m)bp}0-&-xImI*^_9ulh_yF+s3~BHiGrR4BvZYU4PTj z7Dg+44`#R@%rO0}{!{F@*7j|czqvgV4rW;IY(6e9HfvJX3+``=N0^VxXm2Pxb9t`C zwEs(sWAB#=-)BO+t5}Q+#(}R*x>xFz7Tm|_(O8`Q_4P_mw@Di^E>>?FV)h zhmxj}Fi{sL$8(Ha4s*P>%EV|?`^&N#sh661^*pFa zVA(_7UP^XZ8u5_xk$wFYCV%tQ1?I=kVe{k3BJ<-Q=Qd{Ya4cqGWpdz*@5!-b7sjtY z9P^;mZ@bW*THN-ak>N>9Za-{(7=1R#;RjmBLk7-x*v3hi9$8%d_YpeV)`B^qlbC){ z{En~UQ==8gw;$IJG5HMG{JF?8miZ))K8$5^*|;{G*7bl44!1Js&wn4UZQ%~*-_D$| z?6b;mu^6h}PeI2`p|92XS=~e9$6yRY?N1z!Wn69KWNfyteB#wcu2lV~Y)>Y4J+Le= zwyf$e$!7D<1r@$(u>@mA3zcgHtnuB!5`RVZF!P&Sr0r7wF zBPcHr8{uv49yhyc=9m|aTxeaxpULk9IfC|(e{=Sn8eGo?IdF#;!*{)i=lxy_QNVa({MX3FgIRq(7OKu6)`_IBCa8rrCOxlAt7$5}6<^(#Z_v!d-+q>N(0a z)#VXJ=UqfPOy`ac$@Zdp(0RH%jBJB$VraI4>Xi%+#az|rvc2eeL!}>^6_r`!bfjL# zfU;DNaYC_!>I3YnoR5@&CKm6#t-u=Renh9Jj|=%1pno^D4qfrUqY)jtkLkV>Yv-X3 z1^Vti^Q3Nl5p9hVljmcffo?s~uMV$k8e=r?^azKx&Nq5m())s`eMplke~*t}Q{j?ME`N;njhzE35rSsFb3GBGVQT9cst5tnqKM=@jIi6=V{@T%f3W#PUX=A(Y9 zzpZ3zv>uM%e*)LbU6ggOUibVUQ?H%}cXkt%r0de+DAo7N?-xld4q$%K?RoqnJ(o;# z9)CsihCx4RU3K@kg%Mq~g6Wd|Qx{0x@D}#v$+eG5z4CUI)^A$JK%3(OHeCbv-!pDu z4$a#r8*hQsTW_KM8{XpyNxzNsJ;CF$kAcpHPRz#Beh|-7i^c6wNAS2_Y@bjem>%-A zj(}L+2pfZNM$mPT|HoLY`XH14gR0G!#eWydnJZ3MJ4eud2PvT#anGK|s@6|`OZIzN zIJ{M11NQs<>Ng*g^dYo83Z17B&Ci^W0=$=zykx07A*JICC$pf{%8b06MEOgXs$ZQJ zsnXt5pLZ_zvFO=a-#o>$wLnI+ybSHJG$Jo|Gt3X`u{4L)GNx&-v$HoIwZ6Hylz+{g zEMRAA9r|ORt!4Ww?`J`j|C3IU|G;z2|C0w-MEF0H@%+TW6*;u-v##=AJjVEc8RP%s zjQ?+)=KPoMdMD%m9R>KG?jrwz=Qcj@bcFvW8PA8c*5}Z=&os^BT!M6Sg#QZ||No5f z|LtfDijR}0!vD_soGr}fC!%~##eeelJ}aN+ED^hb&%nP?6HkV~XE+2O`26aSju3b# z^r?Ix!fDsPAMX2L(=`Wfl(MkQ_6zSLm&Fp?*eP}p zC$;@X?-)NDaWTu`T+Dp^MSpf*aq*v@{~4EsZ1iID1`r?Ye*C>~_@vF(JlN9-AI}~` z`tQbgk$D3bd{__8$MgsTy%7V-=7qA)Ffk!jO7(f?1eS~!gPDwG^T?>D_by}C3dtzo zLSrOx!EYiM31oTZn2pj8@I#=p)f>@=8~NJ1cpYemp6V8uuM(r}Tz`{zlAWzW@2Njs z8GrJ{aKX>$Cbr;NZd)?tBJW3j?=r@-(mXsf`EYd2E5bA2ljhmTiH9RROE8{|n)qv^ z)%blF`NwI^b4`212d(A&T05TO?8XxENkJyQrg(`ltfk|1zjrvlruD90kgVjBkLY?R z-8Thv-qPrp)9n<;9DnE!JLVsX^vy`t2UF_~<+jPd_Brw9MH7UI8r z*XeA`?;hiSJP*(5bj*K)jrp%f_|JI`b(|i%U}M$qYn-rkNPl~nZBzW`{Q_;8j>P`hn9++@$(4oICiGhy^2^xj)bes#=P<4~c`<}U}db~9CA|1W15Va->1M8}VvE6H|&ytNeycbL=sF0DTR z+`W5d=FjBlFQ5H$gfO{gke{sfc`*2Up5YI6nckMsc7N+OQ=j)EdAOV5uSX1j9>bru z6N4gi9e_D&lf4r2^%g~yKUx2wIp#mKFq^B{#5RD|J{#}nPW`ufmY-b3{I}K2#((eh@ZSpZe|41q zy-$(les<%ncBjmgq9CX=m4HW?p!8k0{EpDz;8_>0Tt6Z6Jr)>!{S zFxvaw=abLSWu3`wJerqM7=b?YSsz2$m4CHlZOind`n-L-cD&fae9Jz0;(sJ*lE<#( zghIbs`|gLa`Mw`Z+kG?YOQ74=fuAD6Q9U={b)bX0HlY84IQV3PYIARZ&zd=Ale||L z8so_u*Q5VgIl>92UH=d08-Q-sG&~b{X)XQe2j{(V_G^pkO4r0xO7i#+QfseeF%w3M z2Dbk63&2bvU0Q7K0KsywA%8c!b;yQr{Za7k-LPTx2J|a|hYhRO%j-(U{2);tcnLUw z)W=-}ghP7F?%nE>Ke>xyBEEQ0meaDVvc`MM`U)1`Q{}#5hpcy~zAx3gBF{(i_5o%W z^vz=zWJqUeyC7Y}E&xnv+y)mkMsOR!8^htqi9eKB-K6xAihpi+=vkzvyyJx< zmo-Y?75M4lbAg_6uZ#4|W{NxC*M!eRdgD5&?^LW$(+6%$u(O#wTp>YGXW_Daja6Jv z=PRpyULC@CGKTR)%nwfGtQ!}RvwNKeYZnMcyM%GH9UAPp?Yg}iqd`{a^*Y3OvLnDJ zc!tii09pCK?yV!vpnv^ziq5-uQCmRUsXzqB)*)W%KNfZ`yo7KPu-A<=-{;b z-hUp){(m;MfhzAbS#1PwX^hFH+w#|F|Lh>)UMH zIJbap(1U0_ZWOW&Kpw1Lv?d~dTy9#AG)P(5Omeoy&?6`2(tq$QE@yWB5F|xMzoYYq zJXWO6co%e+?38DiZf7*$9zHOyDE>mp0L&`}jn?jUK8(g8PlwoJPK+_7`blH7Vdq-I z$EF!;rSG!2s_k+={O;Ii!uAU{S3USzG7S8rqt5NMdoFp9ub%{6lAtwy3R}$vo3<=) zF0t8^^I}c%aeoV2r+i)vYblmjfW8I&=I*RM>I1G}KH$m-);Nw@?|a(NYd={nF}Out z-?$pD!+0?DyFS^%ViOfoFoP6TDqd&yhak^@@i1 z%&B!N)xFy-tz|^h-OYM8^QlcS+?L0DP0W>M^=>TYu75sBs`m*KB@sOG`vcl<*5WS} zsqbc}lx)`xr7nrz=;OJ4YL6=zozxq8k>~r^w;4PcP+v>b2JHFCMk|W}qZ34XvFn_M zd(l3C^?Z$XT=N>$8067&k~GFSjrL3>{v5ZF&P!s?K|RrE&r|~a0rDMyp15JW$_In7 z?^%{N{eMx^&-hc@ueLM4N9eIb4IoNq)0)C0wQ))29hx&KrS=}_31~C&f9uhYPL9^GFiD)6b$UX^=e zIe}wIbEcf?^V;YV*X?X=bibJ1*6Tg>`Ojs9(?V;bL08-O!O~d#!0O3F;|kKTDcNqh zw9&VqzHQyOOpak&R4n1;r*J%jK2J10MY=kWzUVSVOWQqhm!dJokbKI}@ZC!HiqO(( zEPv5-3F<7nCz4NlgeS<>$QXMZ^lp5Ov&w7cI-9}YJTpL@?3?(X)rr1HQk)}QV2^PB zS*sge(m!a+Jj-+!qkTp@&$9R*yAJoFA4z)85oG7zX!nmuu48uo@o4P%%W%#~Dx-7{ z+H3rrwLoDV-_5mqJ;0v2)9Mr!G2d+>V1I54#rl^^J4?~6N0ys54WBH>HdEe7%JvH1 zmD?qzlgqGuew|7`?UnlMBc>nsX38S^a!&@(uJm6Z&cb>Zd9CVqQw*Yl$}eR42`^R;&$Hze z;=89Tmlm^2C6=#BTK#r@OuuCauNM=YCae`YpA>Y7jh!uw=r^u&S~osv?98BXiM@VA z(O{Qq8v1k8#3e=_PP=|F_N~g5TYrQ!=*))Ei*Vcn`xDyCY~F%#y4H=0kcRjLyc5us z+g+p$9+?i*-=%b>r9~cnrmaoq|Jb`47`uw=Joo>-`|dvPn%y;vZ5-?roMJ*SBq4#_ zG`j`t6)gq~2G;zT@SB)w?Z~1jR5+vNs0~V6q3&YVe~W)vytWf~kAGnE=NPEH zD_KfRRYesMlB>#%0@&L*XXebDd-uMzTN(0&fNR%yZ4;${LGm%;9KR`m^=p8 zi2bbIFZ{>$L^uU)Mr#9y5^0OmC-L>Yg|=b-K}tkkKyMczDWAjg^I>8XNE|_oWQYPN2%+e zy$$-q^C>PZ$zp>qiqf1aIzgf6t9`W#Qu{=X<3<7Q&8_QzsQN~3dfy2XYg2k*x6}i_ z#b<5x$nR3^Af=anR(~SAQ+7P`7fgGc{Qq>+OSWCYccR(}_S@^Jw!$$OnHW1fV)u6h z?fjqVb~9eT+2k9#$OjWyKU|;MFK9o4_q+P~p_G8#T8}o17j#?A8%B614JN*$+GV_7 zA%vz>e=Kr7y|cw#EWY!(96zC~j|Z9`r;gz#0FT&M{zEA}%71m(g+E@2{s6>i7GAaz zZ5z~`_pC%7!`zp*A3{B+;*BeihA~9LxiCiMLwfjq5Yr)=0DM4$zw#uxzPxbm3V9DZ zbZ*T<^1CeEdw2(4KQ{A}3h~`k9p9dmX40&F-x)ODu;5|DP2jWO`wtvg`a=p6XmxQb^ApfMpCCEvMH5G{=fAJ>#V1Oxsp@z+?^pVP z@LJ8?oGR**iMrnxIUgxcD_LCTj2dwn!rMs8M=iVszOi#R%Tjoo!ovm2B_3|X*vfZy zKZtYw%9nT$c?A5KH#aOt%vAF@%OoDAY4{F~s~j^qmcoDdwwTc?c4FKo%&cAZGqvSP znfwqyzEs|no+D!Ysq>3?eMe)jkxjG4HZguqDL22}dy3&Cqxo^?DLc=~$B3sat^(ew zFOc}Du@_@8S7^Kij9qPO(>bekj9b#-`x<*;Z-9$SBoapaj-2PrIl^W7h687NlynEtCC#N#b*MAfNRD*C50VSa5n$_8K>*235O z9g#ii`2~q(1t)-cx3K7htR7t@0;;~98YiZdCVniPRIs)zSOMGSD2P0)SrKgNs|Bi*nINT8tVmHZ0KL{G3!sy z@hvl$G+cflg-IM&4wN4lMH7y3n(%|;3Xbm{G;}g=r_SN{fqZ|84v&+gOK}Ox^$eHt z{ZIlU_nvR5XP(gm4V0383%+07zA))@<*q?m1D_Q>0v>bkoH9onlu3{~I1s)}SZCkP= z#jnGRM@y9@=tlz$FIkzp|X~rk>M)R&uF{h-`AkzT$FzB*Cq#{?Z|!T$I`n*pY}g}{Vu_e4XewC??w9F3;gQKJ>SDIzgg&3 zXZ_`UcpPl$dG{&$om<@M-ygge$NcTxuH=JzrJmY>d;rJWRt(~C4{AJ%l6<|16NG<> zs`2dBIc`+vVBFs;I$o)WzGD)`B6g&$97%mtk`_-Q+jT_|P+iAN&Irk1V@4)lGBW8W z)SoMpl4t&%#SuQAk;zcMw=W3m8=W>rJ$rbTB$K@dzmt;5lG{o9_ zyY7+lru06S&$R5x@zZu<+t%n|*!Y9b z=s?qGaUWB$3&f~nc0WM(n6|M`q8P4|PV z-&L%>{?*0CZs)kl@%H9=H6CIVkN1BU>6J%=>XeP&#qnUnKQ_DwkAt1R?}c zz(2~tdytJ8nx@!sExZRDB)pH?Z%yHS3Tqh#!?-N1^u=931LvbHKd^Z^v^nhFrND>6u%CD#!apeYY8#aA?)- z3j2Q}s$365nK($8vp;`|$JVD&3{o&`4paI=c{Q%6u}6NUR!?HEe;m^g>MD+&M^)H= zO71>I&Ked+VKnfJLot#yEZe~TD#Af zKceE(n8!Y%?A8Eu!id!s;xp|3Kc5dh`vmoaaMFIFU~6IoVMc!}G#06WZTs(#a-bq|2vRKYb8QfOwqQTjhN{Qr*JqCyOn0~<7I^Et=YSKSDkhnX+;I4e@ z8QivQ<=0ZXfY*PsZG{je)}L#qOBuPiU~&7*%sY-Xf3>rk$4!ja;|y*Cb`oxP_g$C5 zZH}=+yjJg``v|j+uhftFux_h>nO~( zG+aM!zuxEqI?k`Je!~J&I~B%cY2d4&a@QytV(D@Fe58NX{VXta@4@-fuUD9_e&cpS zgS`(t99M2Y8$>;;oA9^Om@ExCBCgzsbggxlTwj#6Y*8%1S1T(_TwLXwg4bA9IsxPI zl;0DGx{NQ7-Pdxw@imI7el2POPf#pE<*SYtr_{(l8mINiDa2(dt|Ov{t4K$OFAj|=o?D}d3qt9XV7a4snqrZQ|=<^solhNlh`T|COnbBWi^j8^u zA)~*>=&v*SB1T`#=vGFzG5Q;f{u4%j^F;Nw7JQ%45gSur`<^EHxWm=~I4H}OZeTR! z=XUqqgcyJ9=c1a`*{OV1=nF&x5L~BI%sCT#4zjhnPfwdJP#uBCod zwajqH51HI2@1(Xlnq{t>oCs$b>wQ2TT}Uj#Noqin~_hM1tg zPsJ$xg!&aGC>!APlnv30ZJ+f|GJEe^8^X)<=dLY~81o#nAS|*Xa9e@vQLbNGm&|`NF}DNqy2H~3(f32TXAsYAJ!0wZzH3ki zL+(V}el7ZG;B#`_&us#@PL_t)V_ca#iiUM&Jzdx6<3W|{a<1chx~?)bToe7t5w}V- z?9bUrRf=xofNk#8s`4%N7)cOUYOSLG4mN!95N8i#%F)k zE1;M1Jvr4nHn0TjJb|0?S$&;jTVKOQC?lVj*nEP&l=n}-^TCQxc~dI>Y3K4zMILNM zI|1zsy!)cASsx-Motm;y{M0(W7Sw4iO!v7sSwC&+IooL6wzTm#onaX?k z%*Oci*%Y!au&x_^g!S&!K#`Z^74%y>qVebRq((cEe> zB=yAg5#O)f3A7Eu^O&KYuKvsRnoif;HTlk-)8OIC$tw!v^Z!=cCjqlhsC@<7XJVWv zVVmrcAZ35p^J%X()t{IcMWp+!eG+54km-+fI~@a2?Sip4pxq$~`!=y!iLDJi95*R~z&{)xI>6geM>N7u0&yy-dhOQ>eHdOl;< zH3OT)<_}zw$se$G$8h=b>f%;qYYa0RWSHspVW#tkS6yao95~m~R-X?uJzr|?G&I}? z#mtFT_czPX!_0nxF4h{Ot?Nqu9bdcMr z-u)-IZrUemt+{3}Pgntra_XyQaWw1Sf&BkIB5Nz3^+jBGEO-p*wHk`zty%w-;~ zo23yWR(;dZrAoUw*XAeDCrs5W@<-YDX{;z_)?kMq>C9da5OaAhu%C)KIvZHbPSdz% zjU9J6z24>>crCYld=m4UYGHrDm~uGA91Ynl*?3GX z+2ghfti-aiXZscZOu~I)VfI;#w{2niOW4kx-{?=*jQ!&eSu+-7!Olz1OvxUX8R#RL zXp+|x-RI8Tz-lI6$7=RI!)nI*ogeRg2IalZXSu{@AE#cv(C?#GZYDfSJHIqN_5ArW zhrTQg=cL|6*V%v7ws@$6#`GRe(`pWXhQ!JPs@C3d-j}s^BGV6lO%33F`##0>?0s%z zwW&7RoF)<2ck4*n6N>(@@AIRsm#<$U{g!MFu;HQC5{n6(ry4{xIbHYX%D8-H3z_{s zBWDdwowijdPrYu8H8k-4iN_90v#U>SR zLYdlR_wauap`G_~!cH|0s%7eAu-C_wO)Xsb%yryE$NsP%^JgU8Gx5yoYRShimwlkD z`1RNWew82ZIXJDlx?Ax#$$KiM;RFo`0cM{ezrlqig3!Y-VQ*q%9MsOkh&r(weg3^B zKW%r?qT4D4@mexT{)*QPhS+{}J=@0odO5yDUUh#jo|W_2lwKoqP7S@*tZ7fTYw0z3 zjy7h{l)@a2GZ!yu8buRMahk9N#tirDH*_*@KjyD-%n6Qz8)2?qW3}x!T6y#sExMSF z+icguxSN^%5?Q_GM4e`Bf%q8ewOVpLmP~o_;c*#(cd&TZeu?i+bze^l+7^%B;#Q4} zn4Eu6os$ps8{N<$et)?J{|m7rNpyd%j+D=QKJ!7pm{VK2r13;6%?CR>AqWM-Gq30WEHPpDtXSbs8Jw_SX88?k?T66MR7 ze3ut6JM`R~I8U99jrq*)tQF@0-nPD`o02guSJ0QGNv`r_48|n$-op8Dpoe?j?4W-! zBzs)OV9esyG!6FVP}xTsY+Eje@o{9YkkKc0rCR=46p^zoyda9U{uD-n?D^gn7U$74 z*1_A%WR}sSk5GPZRC0>)d!t_W2J*Yr*2;6YDmxQpc`Msnqu6QInmEO@F8eGle0&+F zTKF_qM>dp__dxO~@SR`%VRKwvefWPZT+gwnuV8p{*5xtsb=RW~)2GtDg!LCt;11e> zuVcnR10K^gCy zU&_IbL_bSkKco6Fumj|ju;b92|EO^6;CS)2?90-GH=HKC=&0hkN#Q&@~Bnj_0=~EZ0Q;+NIpDj8P~0x(27IBazBy1+*#F$Tjh{GXHZc z!wyC}TebckQ8;g~V~h1aoh_`+=1t09MI5WnCe5kwPbL#}8|N=rzbA4≦=aKlQxh_^FP5wzd3Jz!Jih^^<>pmBN)n3`;gl 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

)%Z}G|$`OWn6(k37#Xr`H9*njQ|% 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ð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%0DFJuQkrB^j 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

&Dk#7x#WOliT(e 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

SVC`Vn)m2#u};+F4vc9TVP^2$OpZ#>xsV|sN1 z@TH%p@$cYq{KDaPaFYaOR3=i(Y%4nGWhhs{lK<^0U!W6u72frip|4exAojZk5BLSm6lqw~F4ui6rm&xBf9Ci58>jC0 zkiL}dQ(xxoDF+7MwOdzONM5O@PCOcE1NlXCZkLd{Pq!?lQJ^8n&B)px(RwQ_(|u;^ z*WOG$xo38hDregA-_(2e+#(kJfgk>4{)ISU|MIKjT{+6;%DykFi)futu~`$bV!gdlDsn0v;UZrmy|Zcm*&&yDdGIecAIi zdncRrngagh`G(8eqYYE6kOd1JwdVPQ55nnFS7owu^Ho{RuhBu|8!igBK710Xfx$&b z=3&Q}$CE^xlXoY39^-O2(skoE0PH2REkZ6T;8OQ+V~e7}5;qTetvjku?DKYCX0RW3 z!CmrbtC3fdZ&;Q2%KLoNoV(pUbD@&&TNH7tmBoUkMZo2YwIVa|#5nr?M@?Qmz5_0= z_Nkbt>^wr-^gF>(vNCvKxh04Xr)!mAg2_X$N+v<6(7zPq1eMYG=?~n!fX_x_@Z;rh z(TI9BzBqa#yaR{!Gu0mMBZ6Oll^QhE)en&UPU5x488N3!qyNr+ve?(=G{irNyP|Hc z^dXkq`&peePccOZHDwKax2mgln|z{Z*$PolIhH#PP;nxJfb$0_>=mr0y;lboJl*il z{?$9&{kAx=Q!w-3pS}>i0tyIO2d+a~;dn0k`2emAvS)FE{6I7eVt^q$JxJ%gd*Kr# zGKRer+HSV=prmX>YwMP2PwZX4LWSbu(60a++bLEp(bbD*mYRm3?#TtBDX)9B969`p z9vh5*_O_A!(m#+#@4=kHR?Yju_R2Z;b-$atd;`Z4)4r6~4P^VG0CiNzFZg`a)Qta6 zF&`af6hqRv!w1LTNoc%ddx1@t*Ze2ROt9!r{6u^5J=dCE2r*x$$2EgZX%e_nURU~Eb2uy0 z=tOHDM#MjzfVOX&z~Q3g27H+rW&}zz9@qK~^Zz5?FkVdU+o@&hN`A()x(|c?l?V-R z{Vl#~@FMx9vtq5pYNe`5($?XhL72=tZu{>E3=E#MEHvEIRarhHw+FA=MiIBiY$AYX zNFGrsw2gbNnQRm{HyZ(Oq&U@5NOcO=+egUcI}xk3%~8hz@t**_oxjx*EC>rj=dys= z*pzw&p7adX&rz=$>4qm?FHxX`<<>u=IOR-hIKwn9GIE74UpHKIYtwk$$^eT_uAPE?*?&h9Q z;k`8it&eB}I8jnR&9g@H9!%r5SZH-wCh2mz?|inj75%fHwW#uEZXi|>WG_WiCX>xVRoA7MGoP0Y z(zDpdM!Kx>L28l9`-zk z4EscX_1^J$6C&IJSXeNnbGknGJJ`-0B-V7>1{4=U6@@C^S|;ahil!~)%*=IBo{zt# z@A*u4N{<<}jAqU>#=_joH#n0b2yz&V06ij1;Ulz*U9R%C+Pip-p+l&60KpEi>M z27{iSO=vdeu2>#%ZYLNPN%2#TiMbl{7CKl8{Z*eDBqO;@o%03l8ka%UJ(>S%i@BR^ z;*ZBvXTVXQdnY4irL--V58nEa(o{{(kZ^H)?FZQ8+TKJ$dh6GRUDt<==QmE!qf)j+ zCR-|%xEQ)8R`_IA0a%f956>R&1X~0HZi*^4wh!&d0@nTx-p20~2je25_bus|v)kZu zdwE9xa-E%?A0Az?xRxH3znwYG@gHl3=Sj_N@N?hHi(;sY2%K9C2UNmujm2BsYY7LF z_V~<|v8)L49Ap z_MtqzitMzIgzST4Jy5Ikw$#mLbuk*B-*=t6^dQKO{θsZm2@ts<~jC4i;;mxcR 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


D0{rbWly4+th~jeLbo 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 z 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
  • 3rx{PP#5a}{7*d(&L~f@Y>X}ZEN$mUQgr^jS{rM|h?VNvvRqRN zTnhFQ|2(G9;QwI4)4>8T5IifQ ztCTK9U&x}6al}}REUK`_C0gKaMOX8Iuc;V_sRhxW72QEDRvj$A8oZD-5eH+R85gGx z1HXz}?YjLk+J@$$eG6S1U$w}|JX^`NU6mmnR{B)xW3N5Q9eZCobO_GWDX%N_iB&Dh zXlogmzoc}W7>77XE4$hTUp(=@b*$?)S~A?EA%3W1wsfvTk@?Kx zY}-T|l~cO&FGVYx_Ugm=-62tkeY!?UrAcXn_Hf9qJSly{@HhPP?7$RD9qL(Fvh~B%6-mPx+ZuQk!yKArCz4zR6|C@8> zGtZg#yzjg-^Z9(9=YgP<0j7(nVaj95)U494QIc$AH{a2^aBDUiH z(gTD?vt%gYJL=ONjf@j|+te{rlZWtUr~UL2u`QFSYm9q`T`}=1U~fBAH<`(L;RP_( z7Q=k(vGCT~kH8poca&)cjbnXW!LA)6RBcQ;+xV z4jK!joWR}|O}vZ%e2tP7na+1KPJBLi`pkaT&A(CCr`Y7$t?eBo_6y+6O&p_`fhSr! z#||*C@d-~3|$WFNQU3~z<9|=eQn9$o? zOI|}6I%uv5ScSE?(I8la2u0Sse7I?i3UYP#&KqJzk6ttsTGr_$cIF zS$DZ=U8QMGHrwC7KiGY~EVCZ+6>ri17S8YakVw3w&g1&4|F)nF5j&3Op<>(Nl+$&S z=Kw`$Z?rwZIspUELlVuZm83l#AB(|1t7S{YSBm8Q_CK^TvFNgYk z8V{CQVo?SjZhzgwS9!gtaHZSvX z+DtPWZeLp=1R(NTf0&3c5GrfsJMnU|p4NZJLB0(b`}noBmuMoY`#tL7zLsIRF0Y;^ zWa){-H!=NQj(e;pa#P3?qQv}&ce~YZAVw&hXMFC}fl&^Mp7ZcIlkCw)>0CX_CZqn{ zud~$X7=5{2SEju?;s&jS$CM+(pU*`!3f}qmZRF&CeXdwlX{5FagAe=8{d&!l_RcYp? z{;)1AT(Wr-cKJ%^-%VYKtmmgXUk)-7xSks=jeAki-c@_edFnP z1IPvttSBc&$_HqEAF{y;Uro3C-MlFK-NpaGOm~5E6SvOK#rrTGk3L*vTGlyIx3P-Vvxo{O$i(VNer z>xSpV!;Radj42|wi-4kWf#7s|Zv zU&3G?r$sx7k+dg*l$uyzat!vARhn(O`75}f#|t`3=v&TyO;;1mwFjwN5QV`2FvBTl z9l4OAKh;QU^p;Svy>@Bym&0FZoRw0yDtSqY{YGpB>(|#b>kpOXzlL-kFCMqHOb+=i z(-N0x_S!s`NLkBgvqW(Pgfmt062S&cPl{9uj3e#KR9d)xe?E3|BHZ~bym@v-VsAF^ zqR$yGhBo$*iJEyb$ml1ps&DoK@PO!)w92Jnd`|IVmo!IH8~)DAng8afLd#3%CH4B4 zpp9hS1(|a zp*yS<2MluOW+lS1(i0i4OJ?HtCzf+!YI)sO>zyUs-P*S`sokqWhC2Zx72qTLp3jht z9EF!B7ST7#X8n&{@bu=160T+Y{f1{;Sba=R7Q}Kf?<10>-TkGPrz{sHDo3cIdYx*Y z0{rn{|7r}oI!$$I+L)WCl05@?bg)N6LXk%X?vnk05L3__KaYKjm9e-kv}w>3zIo(h z#qPUleqZOXx~?&gI16a6A+5?lvut^S1xIY{B@5w{CA`fGh$-f8-{r>w-52I+cNV71 z(`mVTFsMOW|59LEz`hmSaggu&M6+aKE5hav z>+xD`)yVsF7gKF%qN@jsGY;e>mxczISyw^RN!|d^!Q81OHwf_kj|ZG4SZwu7$Te^} zXt(Glc}$R6JZ24)E2ww5YG}5I59TO`*~|u0J3o^6BD;0{W776yg)+o<(*DTsj_U01 zoYTH{3O0qFYMD22s}1yeGmb3BZ_6U);HwLvZc#QAjSm0KXXzvVzTY^z0$1X{*N6zy zzt}=YET}VS&e8x*C3Ef_HnQXIaT6_K+I2%Y7au? z$#|pe9dF;8^b5%`m5}Qf2b_I^qzqvK<_rHp-@C^o08^=?D$rz!qXz+@YW0`v;8CdR zY5#u-=he21mK!Nfz<)MZG4v;c(~OIy*9KJQ;Sta5@})Xd35olK|6&RLiM*TmHt5=5 zR#V9#%!C-0JQ(OTZyXl)4V8nkA_kWd8LCo$#_BJqlTH0>YP>6NmgDoEUv5@ZqVz2K zEb;7a3~$YlHA_-i}VC^^&l2Gv-&i>RcGThJR~@d z%nZ5_qHIkL=WBmTyh-8I{w8Sic%-SG#PhDz)|n)Q>DFy8oH4G<%<5z&4V$5ULzq|& zK6$8qQwm=jG(CCnl!AZ#E%vUe3(q52pgJ9YM{4)c`s7oM>u@fG zP^AE1=-e-l&^bhYT|+#bKJIrI0yVtcd^!^DUf`D|Q0(4PSbgF0k^Euyt*RP*Jg{VC=I)N&l7EElsM+5{rHA zj~513&v-f2XTd_V&T~98MJ*Sybp)~hB^JvmW&#;~Z6#w+bAl+wv?6Bdx_WJ$>>UCDT)$P?Dh6>x($CDb6OUuxy$h@pyit}x% zNo-{92XrajpIU|ODr^0_Z-A1xIRs zKZY`@2Gy?R#+gW}?qumE-nvRVf4BM{{M`EiHPYjDBPGF(!zH(5JO>WUGzGRtMtxb)8;T5mpi-bL3(|6!Ia_yN@HHRNwff4Oz z-!G>h|BYiuZA0>uRF=k$)5q96MOrP1CKy)?geaVKq&vwA)XcM=%x3LMYTxME=<%_t zW#ZfJ4)o)muv_gvUzUlaEyK|4qKZIw&qQ;lFTZb*EC@^d0xm*x7I|$n=YvhA3wOTG zvb+(shMT&ECSWd$yQRBQHZ^F=rDHyC(l55Vd?D&AeEhg`J5uyC*Q0Cl^70S*sCCT0 zDmFp093$BUl4AS1U8Q$yAms(JD10OP_n3oEbzCJP^X25bjNjA5S?Y1F)rxgIZohJL zCqo(I`&Bsp4g(LI?Ef`o2@T#|O}KtWU!^P{)Oh=JjZn0oNC(spEKTrrb>AJ_OLai; zmFO_r%ckkqTRBA6Iw?f>-5MqlaQ>mWq+9Crjq9Cm1p)J^*O-{f7a)~AV}*=li{V&N zfxv4=xv&qaGh&E4cG%$UyJit>Y53S1AIW@Op9FY+`y;{!N_FGcdKiC>?+SatiV=SRCytm_V-z`(p<7#F359XIF;*!ex zaSILkVK9Nepf`=*aF@?BJ^y~7QLfMBXkKS+-ls}QEFY#W=j?~cZ*Q;D z{?+H|5+e{yK@dP1*X~?yISI|7Fze1#5WT??kszb|EEj=XGN0KdimO+K4CEcDwu~+n zA*)uToeOlK-6HZ`e-xc&Z=f5(jb?2#wp~tAq&DDQSRU%$$ft-Xjr`}0lv=7d4su}8 zi=0NJq_1Q;{OLBifze=PwS-Pe&vfcRJ&jI`bJ=lGr&x2lC+05IXdHVsQ+%}Hd>i5+8;CE1d|9YT{ z1V8Cj8z59Ncra$?Ym21$vFRkz#2zSrFf%7AGzcWh@?F3C^+4ie*K3*%xlm+1D%#Le zy{?dd_@J`g!!0Y?B7k^7&~t6wmG%;|dc8(Kk=5fnWYeGh;^uvD9wmjRERm4L8U{tS zRK)^y$N`0O0IUuaizgZ;L z<&zLSb@gx?rfYNb5wd3dt0W+Br(}_~Nm&jc_b@f`{C-$8kp1T*!QMKxI}WDJ9qI?l zGDzZD5IcZ;d8no$12AgLn3ofy$%LvQlxQbU?n%bjJ!e7htsVYAvnigy6 z-AVv&Oc0bMaDT4PB8jx019~f1dq9Z48xscsqR*l&hR|Oj1ybc+WR*VdMJjD5hJfse z11;C#e?(Vpj)itVa8_*QP>CMeBgXM6U$a5>Ba`dio}=b}$bFR7$xcuX!$bc-<1x>H z&SMMBv9i8_!uiM7nU_|0pH^qubI9g9XJ#KG`22Q?bF;V+%aSh{03vC_v}`kEA5e}v zZ!o~?x*U2ym1DjBi$BsO6j1MwEPs~`Z9p>L(emh8cIfhM$z3_NCnIyX#q?7L>LKVDFL#G);i zCdEL8@&_RYJOULysTWd zKbM?%BGcy|9L3f<&z$d9@~1b7Y0x zZZF4-Z(0&c~bs8=uLGqtxYRVwiw_qwj)s zt-23>+_;g3Wkojr+_Z8{lcL1!s0pBKk`XQZD2CHg;pzZkz`($2>bsOR&UA!*E^@D9 zi5q}Se{^}eL(#l_dF|(Y;^+6v28tecDTDk?rM)mcH(Y~)W=4H~+S^q~3g70lt0|C? zD3tczgK5J-)>_Z;fQqxndk$uHfnMv^{}BhRL*AR5$PUix?2Dft)5^nnWOX)uhbX9} zoDJ7@Cd;Om9U|c3u6{3Ae~Md{MNkdJkOGqdF>|DDx&cWii6Q`Ii6T^{DidnKCn^GxsVfBZ~Ba&hAxMGx8&RNf*qwH8s`@F+Vm<4S z*@2>$*%KPp5DqtEk*`h-rTGH@N`GAt2ASl$WV+KBae1ax9*>JeH(Z(Evl1KMn%Kf2 zu93Zx1a`)R7|L1xU^{h97Y{NSj?%tkFLdDhAxw46KQ!Sa%H>Ea}-Sdnm^TW49 z<*rwDx4uK(v+X`p5u4nuI?gG9K1=NvTezG17h8?=hzueIQg2eJ89m^-_TEyq1;RVj zVvI3V3-ZfAC7|MYq{u1!x9QvuF@&bc{3p4UisTo!T}F!NC40gis?J)n^HBvsC8#)A zST0~V4K)~~AU84HM}dqc{mGqb-S7y;GlO<7Q8yHAg3QR;WvRF;1#`wxRN-56I5jKJ zcs4BwQIFAY^u+Q9M&NQqzJN=DpY5Y>p?vQWVOP3rCzqEJ53OWchZk}+(YL-#cwv(+ zqn50VD{Lxq)6?0sZ#Q_;0oEz@TRYFpHcf61Vf5K`(Wg**SS?~R%?rU;$Uh*xCbwEv z(N^dZ(hWgYjJLO!bCJ(`hkK=-a0_3j1{C?LBZsFfFjOvUfCwvP6w$r)ySbM;{cLR0 z$BPHxv5Q5TS~}++BbGN3@cz|+r2Z?#zk5D+(cw;kn4{+kvi)nkiN_)1^+9auakO`q z9YLCGjH#Tl2SQ2bSK#+}y5rO_)M`JEpF)uPd8K|Wzo0NDYpj(o>ovFwzLxfhoD$;* z(ZT;PHuDz%0#1l@MwBuX+hqM&4OeB6xp%`5`d50?e&f9&0bb88GCc^zq6kp)z21a9Z~IE^$_@{KB-}jw*W*#W^k6IjNYyYDzR)X0 zg1q6%W_nBkS_Vz~xRe+P{N2L7bLFcp>QF6VPu5|0I4?nv4`3JA9 zQ(1tr3e26B%^_0*Cp5X#n4bRgc%PK42#nBrLy`^7E9-%7a;>1mYRM-FlCDo3Ny(@# zs#=9RS0i$kC^6TVKmLAm@UQWMZ7jzL@G39i_9U*n!$*IA#iTS?!=%6RWGwN2KzP$y z(q}p@^-9&CR*NG+MfkFtX$oo(#+F6DRVJdR!A%eK zP#YN+DaHW{81)268T8AUi6S$m{L4KOJPlmX2ZaW{`24c9kuxo zX(Pd3p3O6NetD)x?hT*H>NS*|sMEzSRhPTde1)u)Wh4#J8QY>q#}*z0G|@`LtW{kP zk@O_?I{J0Xja-yI)?0Ys_RkuiU5qAJX!tQgbbrKHXIgsuJ7hAO6U9;sp!-+HHheVc z{XNa(h2Ed$k1+lNy)-UFk51jTbVSkX^^5LltDXlwocERgX^&f4+Zy+HN|2n|5RJs# zJycdZJpWT6-kMM0CMJ^r)t=$vpsDxj76eU|jT8-Pq3NVkMra{LCMd1>j4Do@#@?gY zXQ(_G)(o3SJ9y&aHN7ZMLN}=Qw?%Z?w3wI6Y)ZpPb)eQqa=logq(d+IIg!}eGB_(^iE=bB`A5uAT3 zG*pz{w*|*z0NgpK5ahlUFC;n=ppSF^O%NekTLQ9E+fn)1&MOKa=3}aE9Bk7RnwduK zgF#Ny*(AfJH6<~&fn`+^kukfr^%TEdbZ@V6sJAKp0JmknzkjCwEm!qrVp z4CPC*Yqlc*^4Q~^%PbavhwBV!WW4s&n{}^j)v19$+dvnkCKg}FL}#LNGuy_ zSB^arkUqd@@9Rw7ko(IuZL{YI3uN341Kgh;vzuvhHx9owe5;u`kx-E+U>BQO^VnwY zVqq=JF}9&?N{{;PjC>4qbe*_H?ms<=Yh=Hxs%i11WL;rk?e*jZnYEF%zb30$NVjXt z%ek_umWoob8Bsabb-aQkg#5pmZkvsk=1PMRH;@`I(8iDSenSCn3~UtzJ&+7@&?K(p zS7mnYLF;|h+AV!K%WvcS?m?TdBhHlYVP#uw(HPU7TKL1Kjn?XS&hMIs31x}#1TwKA zVx{N2ImatLH=d0?ygNzrQixNQpjNJ82{b1aiV<2%^M*pSNSW_kY1-2<&h7lUFA5q> zK3q%!MySQVriqVrA@(DzHFt!nRX!l1!4LL1kt+u@=>Bk+*PuUZc=Q1mT3@D99-lTo zbM733(%M%ee{@xFea!n-;U*uOO-b{Ny@9Z5Vbo%~PG_(3Gn4hOGp!qL9=g!A>F;0R z-C44t*Dbkf51!V!-!Iwgf;Nd|@S5#Fxx#=i{vvB#Q7ehdvF(@Gku8Jvao*m02)(rn z14ZMhH{#2dy5m)M*6%Fu*Vyz<=*lL2=A#$WPgFNIPXDcqmG0lEfmfjybMMZf0IFcM1n~&K4N`EG7sau?zWfx$5OAKtRPhVKDoWXhywvw zQ>lOSq2!~vw$kkhzzti&+N7$?oR7XBa@pMW^~-HvIA`4}bU+galB)0e|KS~bUFF;i z&FpMdyVm}=Ty@T3X>Ar5FD7M-$~tQtt!0}x@nFa12zbxe_ny?R8f2unu%zv zRxBmE)$%a(chIL(pV?fQSEr!E1n3D$*p2^Yb@VZNlV5&chLp6M?2M=q{cnji zL*>%2yg$Ni1b7u_TsG!%po#k56opMzUy5vfQT8+n8@<}xiK;G73xZJqL;%#iZDr*0 zNzhVPN^AT6+sRq8t#r;CNH&N2**c3fG7;nkN##tXr;%xue6E@j?_&VlFwG==SL~y6 zx_LHDw9lI7zJF(|@vWPwd5nAlQm7AfUA4u%s1~&;CMLX>@-uyT!xxQ!^Sn9gj? zQ?6r!IOI$V)1h-Oa+MLLKkAXSCg0V2BxBq{aOpxOC-~GvG8Tp>@?FY$^ShuzSE46% z&CT??b)U|UvUMOzlsBQCa>9Uu%<6+^mQsqGa7Vg>&&CYlo z(pQCDoCdhdOU?^oM6=q#n%L5j{7kmSqs4OFGc8pL+ANq{E&+cPp{v9S4OjFYwdmtQEyUjTd1!;vXeDI>Ye#wa z&~JpB!f-D%(G~q@FRom3^>oemj?8{96%baH=qqa;v&WhUYZl;AI)?!U*-yR!=^9tUT8a5KR?g zf&BluF9xzmVTz}5_W<`pNmnXx707-*U47a-tZRvHi~6yc z{)X&_Uw#Pf{kuV+m(7sZQTI;1XUY|5L?4KX+Fdx77YLW?X`eXIm<46C+nzIXN5eui zCy%~`Ab73OxLC4Pv_Os`Ya5iH_uqf>D<$5aApt+CY=aa?$n&mQA; z4tU?lt9cT_j7(`CDM+xL7k$>Z5y6F~-|>}~>;6o5R{iLqZ{iW5%L4O1WnyZ>6RCnt zSM^gt-a{i-N!!MV{3M1rO9D$@?F z-^Mtc*zE@InRSB6XMLANHZ1J@XyoZj9Uk;PS!*f~fCT&~6&a%qNGhPnK!m*iqN~fX z8D_OltSxp#l5ORDNBT#|gCGs$=1v%yUR%XPlOA`ANB7VYFx%Tn6M@JJ8tb{p6%OdgTV)R zH@4l^^g!8D<(<}`aX#+B&IodkXvs5|Uz(}Tzw-9pjYlt|lsDu$%aY=&{RhHLFi~fB z1tjHLTg|qVzAYS5%nP407Us#S+Kj(nLye*7Ob#*&iytl9pD%2nt|^=V`U^q@0HQm3 zD~QZ|WREt?s1_J8$h<@FWW+C`Tkz;5wQ<6M_cvk#x+)*JcpXG(^GDPeE|L{~t;ZUp z8M_DeW7?SLI!IPs^Hkxk9?{m&TFBKx7|{xd8>D1NdLkH2pd zJbX`QNvyILBmlSuaKkpe$6Aogzl9G^?6;9VNnKm)Cx++suAq1H6@Kyo@&mCQC(JLB z%?isI2MA>qQgMlA!{Rp$Ehb89xeCMMr#B91&_8}h-&lQ@2m(@T@u%^%urZAEHzFDp z1*l@@9&ZUmWx^w=cyy}>JitsW=f<|CXrb8pk3EJv1hCR`m8DF5ZqZ)7jau;q&a1Jt z5E1!1<@bjIO)Y>HEy{X%kE^WTX?+)|C^C!oRtX%RlqCwg& zp}#z$t^hM_8&gp|MX+5&6}oW0hF~fWe|T$moYKJ;kHai7N{S zCJ@`UcA~b0j`W z1drP1y`?mK9-d+_aA(ZcWLQj9EC%g~}=`jX+Csm${MF?76A_T>dQ{i2Rg zx#%Fsx8Pvy^2Ni;TvLYZBH{TM$a^Q@Q=5yXVbe#8{Fc@Iesk9H#lwD0Q`|q6{f5C? z)6yCjt?-IgCs4$0{VmUOVDy&Ps&4*tew`wDoo?`?*XM$4mNV<8jTxY{=`)y0p>|nO ze%H;$FX|#Lik7-jdTc3Mk-ss&#%v)5Liw_@vA<$Q#NrH+xfJttG5zveoenC}@F&%L z@JY|*k$ekS>s{tD=~r~$dQedQHLeMm;#{qx5t#-@G$pR2Dp;6+O!L>?6R z`fs9)9?q;@89!Bs5Dx_oQ+hmD^CMP4LucT(mkC6NpAr|GUl~mmkaw5S`38BMy1&to z%1z^heCRL@<@6x>>R7gKMhyDkP8<_palL9}_T7FPwphL0o7PIT2B}wagJM@}4QsehgRqvh7f2YK=e1s5X%oN@+9nLAdv# z;V!1JQ{jcTOCx}kDqpwkVnn}6i72Lg#5kDkXC3iFhCp}V9fGPMR&Kud{UWhDadJbI zf}nZ7>^JVyjcnc)?UZ)vW`1L(8$7L=?<9o3H=7HrzZhp?d{}28WU;fIwUF$nG@E-V zoYu(yWgEe?aQ#W=5B^zorXNE1>l1qN5lFZ3c7u%){0YG8)GZgum$keZcFE?6ZoFVK z^m`$c?^(+VNCSy%A4|6#I3W=)R#~_S9B&&Abc?9(DhHI{57J z^)#RYx97jK9wp&@TKd)d3IQ`$kX%5WUbsAVBApa}SFfguQd!hR8Pr%Cg@?8fr{jmJ zw*6#xIe|R~!D`?QE^>PoY zDDaQQWE$Gy9Fyz=+4ubw%woV(GV(LR2_8rsU@)EawqL1sDfY7B@ScgbuNQKgfW6g7 z#C^jF}Mob==Fn|-K4q_cj3Yia^Kdodz3zeY5tx`@2yY6qcc=b z0xeYlOVPA-f@|^RGpG%3pYPfCnh3B9?xm(1#nOfm^Mxxj*HxQ9q~H2%flC=*Ltz;` zAe~nuXKhAE(-?63KWi{kb=rCSm*|?Y{6B*i#|fS6jjf4&^R#{?2bQ;HQoKpIv#ih9dT=1TGBEN!&LsWs8X*4`n4Qzvsp4 ze_KUITyQG-r{(NPE2v^f&*NWWN=x;F0sX5kt^6tDzo2IeXCMHoiVX!a0N4--}_aXXIhBoJo)qN8{^;>9_ zL<#24Lcl$^76_}Z<1*6(zY=#;oIhr~d*SJRWd2?_w6Q-9jP%LQs(CHnC&-l2bv4h_o9=&fwR{mWNw&Eje062ixGxM{o)2ez z-(NMYwH*ys8uz6@S_Cqh|ct)L6;l3XP$!8l{7<}Ml{OojYMG0KD9ZkwJ%d* z7rx28Naua5%7k0GpOuOH76UGMYnA(=i2J;c8#cwhjwn@zY7l?D8e+_avXr3c3K|Grt14@7EX0 zT}a2IO#FbAp~|k46wlVh`mG#-pX0OZ!JZNoZ?k`kN0Oz9djN!)IhtVVTnIAN_#}&|z z6T69-Fu~M91#E=&!smWWVv`oCYwq-WfxT*G7rJ406QnqEl_;e-81}BI^1c<~=;p{E zE_iurX?WS4bi5O~ts)n)pm!x_8B_fHA?kElf_bX$?|lW*06@(@Eq4{tARYHy&8YmBTe?pVH9 z!; zr02CC>T~QEzAn<69dWM>oq70lhcO!NMT%!S_~4pQK;?R_z0sB^EcD_|*{Wok>!=|E z)l4}$dw=5S85`q|8Hs_P48WA$(hM6m=;X9}sdw+@WsT}UTgxi6Q?@0B9Xi|)-k&xT ztnjqQAN_0v&4wl2XsB>@zNYV+X?|L5*)oQgi5AXPCEZ98Y2yVpUu zGh>RqY_(_ItMx;U;LZ__Z&Mrcvcawj|LjhHsM_$Wm<{G7%gsm|DuxtuhHrv1?;g;T&R!#XOSBy6oyqMk;3{Z-=kKgZ39M+L>FNULM)_l) zkrA%tE#Ty?fLvUeQ-G7SCI`^r$iuBzy)f+A-MJ6v$R>Qt7_xQfk>su{Bf;lfJZ|P1 z6;hKhp01{k8C?~JW3 z$kl^(h=mBYcF*rCb1k>?qF<}MX&Gj`OzNGd&QuhpYV?cfWUQH`A)|d`{!TnZBdbQeAQ@nOl_9;Q z(`xyk=U6S^Wrg)90VQ>UNMHG@qVD+~3P$F+eswl0FTz;cpK~jfkM$PaJueSui%}DW zQ7l|yQ&GdS%@C9q3Z3PCu|HegECjpZIZVR0BgqSwNl=DIc`kMN7UkH%%OWBx>lQJo&4gxnD{zu%%X1;7S#fVa-nq~~x_^)uAWjIrp;5f~>I zA*NGSEcZ+Q6M2r)d9FCsV%2UmyFkF zvAg!?d>2Rlj>V>`zJrVMCwGoa1E!IM~o68e3={g7H<)XEYXXIRV z8yZGcOTOV<`mDgXD|NvJg`c;tf8<%GqA72m6d59=i==&JxxmLn6`yy)Nc~EIapgfn zF!YtjdRR3{gNaNC1gx#V0QU;)QX2HMFw+y5IL*$Db-R0@poE4Ar<u0HH-lu+&3kJ}4RGL|5)?-<54 z8Hq>l*V_K(;4AVT*8u1NEepMjDxkMB&E6M-sx5ob!% z(c=_%fwn#QvY~%J)(AY(+!v`zD?U1^Y=mKdp4rnxu$??ORvNcj4^w~pKElO5mH!KZ zo(V^Jr1+0M0vneYKDJ}baEzLLEn)~I;#8YUG-kL9^8lU?{|jFmZ*`xeG+dRojAG?s zNTQ5lM&;tn98!gI5n4u5~Cm#8C^eNtaNScxwE@g z)A3=<=h*xEiq^X$@2Hjd#uIN5P70MHytUAc!sin_n@T^h@|%^w%>D>^!ty`y4qaH_ z=Mg}?ieLYZzrUV|kIlfAv)<|yq%;9g+y6f*>Ie{91qfDwRVgF@1oz|9wNBW)i!l4l zWH;K`N+y}QsnMzU+l^n79SeLrf_=$6#SVGCu$nxslam__l>+th`| z6)fopW}SHo6!+taR2K0g+&Gk9F#ad<1AQUwXU;AB#CQDWcl`VVyjm{^U!R6umfF4X zlHUR78E&CaOO56aZovRid_DCI{0SD%xQfqr9l=A>kO@u$G|N^#nC1KVc$`WJ{1_nypiMJZd0Oa~6jrnaElWa2 z|3iZB!H>yW_`V@WQf|e2vb|;G^t!EjKTOANb_Bwl`TE-{EEy0dI3CKj<_)8L2Eu=u zA?+c9A%uiKQEbLSlMF*osr?i_(wl&z#-|81oW6&FM~K8!POjdT>Av{+X6Z=WT4;+g zL9^B*d+I*0XH%AlG5*I`9BtV~=%|-gqzV%<%}Xn1baD!@0cnO&?JEap7}Lev*S49p zG`P9)g1tRiI7oHK-@uLvS}%T`74bQILh(*wm$g6jny->@VQ~JpgG13n;RTg#FVcHB zRS&AxgZXm{^k>C#tZ;z8Tl-k|PPWTx$909%6Zc2JS_3~gat{$;CunNcl2-3r+V1rQ5les@$|1M~17EGUr4TY8vOq>w7 z8E~AolWrL2nF%@)fM7qewdu|9YnHfsy6P7J$8T`2Gm#nL>G2zaxZOwZ1T#fQ&|4g; z)F;4f2-kdXK0P)JETld}g0lylrQ zg69eG64@>E*`(K5Uw(pPU&UDGA$U7}$o1Mi0ww$zJ89xXb^C?sL%iYt&1Rbt8GXAZ z+4KE8z@qM?(30k+NwUqBp3Es|R$Oe7~eJwv81=?Y+*;S>@dJS=y)8mEv^4S4d`Z3M4#T36-Am?CaoEj5~ey`}B zSzvK;XstMJi0!Bb#E4igt}^Pr zHLiPW=B)0g|8jgK^WAgvep4IaO&;j^fCLN0Ck<~2wlSsXo@MrPp-25VsOo`CJm<`r z`ziP9zAojw^i~M5qWDmlx?uw!-Nd*$Hsf{f&HE*-rX&H*3Hul8N4mf_#|?0l-A@d7B40qG0HUKFvg5r))`l(a4VIj9M6K{KtOz;JN{ zvaM~~eP{}V>1qCxiH@;Ma$Rk8z2_h7q_h-&f6{F6kSu3a_P^yFoyfk@d}oe5Q~JE; zFUwPH!vot%Qv=FyzJQrP4{lQP$w1g8-0b>$_`4JaeX!+ZnJ&*w}u*|3*C(_0X-sCrC$;+X7#-R30{G zRZBC#X&d*sN;sT$;b-bJv3l~@>WOEWYV=cxy)EdpM*_^6eCt0X3%Usu@p1+hqHCBC54=KgTHWWzJhK81Ja60Q z`1qa1Yw7|7NB^pzc;yNNg1# zS;dRq&aGF5^|2}T!m7h!YUgMz^JN1e{gu2mU~|$K{ptUoL%DGK5dl{?BfHbRG-Gsa z36;wXu{uSKIq$)|lJQxlqXPx4uO>jPWk3CDu^AWL`fO?_BsW5b{o7#?Wz{A&sw8#g z>T4B?7SBJdUQ{(?{}Cm1QVO6e5wq!wps`ZjgyHKQ(X4)c@d8!Lzc93*?q?oDy?0*7 zhvYhSto|L2C5n;{Htf;^_k>FtzX+vjo@Yn)o5mkaMGdg`C&v#IMFG%f!YZ2; z+&R|37V=%!T%*mp)jLPH9<5f=dz`V2BHls1>)9gW*qXg-H+2`IM=15a44aFD+i&5{FEs-8q=eK7mm1P$p&#gS99EPQp0R$B za#TM3&&UU)1V=*R9DL|^-aCD8&(7eu`9g>a;#;O=Ke{PAA^q@OH_#$@o%0id>04Dy zoTT~~m7!{%%LuFYW63v%&ZP(fI_;*}vq}83rnj5WU8SkCAxJ8i36SV5GVn@;r;z8^ zk|pD491l7!tnjVL-!8p;4zRju!RHDv&=yQO?wn0_(wx4spe9O;Y4g*lk)R~=J>So= z5q$+NtzEx-x)}YII4%R_|7kQZ7i4PXa6Z#$3fmiMRE-RIp7m|Sfc4BOV^_t1h>H3R zASUla(gyn`$zSLq0HAA2*Un2*%|EeiC$<|?gRlq|C-@xQ&48`wYC5gl+O?~)hnl;6 z12UNoGdR??3Ss1=cEm0M0H!#KzUdMp&9_~Mvi@A zEHzA3KMPuS^~U6-j)@SDxvpDpRpzfC6zh~qQn2V&MlKy7-SgQY{^e9l#;S|3Np$*u zy=Vo{Ui{-y>VOB_J-4N1%?#)UY5D>e!j9I1Y@OZ0GFq>qAyTJBrVq$Xh6+!DB{Dz`T&KZd~ToF(<7e#-njTolMos`VT*y4wwY_Zu^QbcUS$q9G-`391TdEVFlK*PiBLy`T#A`y z<(Z;-#G#S*eux1K-i7dvS$}!;Q8nv01|L@CuNj#bcWtSg!Vw{xBRybTdb0$@ zSd7*NA-rojA`kP%+R21G1!*~$I5?=^h7liWV=fP$rF>+}b~xUe4Fw?<={segKwDDw zUZyN62=1____*2$VrN5;jrci^OCUmm1NAsz!63yYE#*lJ74=H_0URMLm?PoQ!e9Mi z>JfFghS3M9ha9KG9G4F{#G}bL5ZKK6V}0P*SM0;=3l0?6v=f0>^B?GzN%`9nxd_4N z|2g#Kn{~Hk3%0KRAao#Me;{NlRL-b}cpvzh?YI!J@37khd5w5DPcvMBdG5wydj z_&vqkMsF$vN8#yyv!p!n_O(p)32#BN6U$EMxP6iLaSMe!JmollHh;T?EGCZ)en-d~ z;+DmU`Vy(qyh1&cgF&mmgJ;{fnP0Wds5v7alBMME#-d_@d;2aZNW1-H7Ko_q^2o=U zr#qxtzQC#xS10dQohmK9>;lwy4;0-kdWm!1@KjhJGxjCfaQ)Bt!6;*)odm}vbm7Nj zMBli>YtowCGV}k+;rX*cU&C_WtuxM0;655@GlyIhW+%JP(8G2_cEBC#&%A{@jVhuY z<$EjUVnnzAa0q0qp4!MCv#By><@;jbhq1kc_T7`${qrv)msmU|9ci#XZ9N))C37mf z5spSoxhcT(|6(vibk+sWgVWZ~bTz79@(%M+tDe7Qn1;mGSa)HYgG3uA?rg^|IV_G} z{@RzH9~LQpSob<6kDSh}zk<5k*TbD9+9$FoDkP5yAdo)S2&Dtr9#E$q$A=e%!Odp|!4130%R!*xv408g12e0Ri##nKk31mcc?)&KJYM3gQT)Er zTIv(boXKEWbC}fFu&Bk}UIvqyGp4RnD1|V@fLS#WiGHprjT%gkPunD@&_bU;rCl<8 z)e%a->{Iu|)R*AHLkbf@NBe03>ixZVsxVgIa<3ri&s%OuJp1a+e&=Cw;Vvv)` z*IP1I8=pqI0;0E_4kCivJVcDUk0nZiKGz&27AtKQ57pDe8GDE+?4!m;9DOQ|( zyw1Ls@ef|`RMY$1$po+Mae7rkhX)c+v%bH-ARfb<4*QTv#qM-9S^8xaOy9sGB7VL+ zTdRf3Dhrl+M22X&p3NYBRL1Yt(v8`u4&v-X^U;NJdh1w_pD+O|+u~_v1n|ycqlx4^Lr0}H zSPH9!eTl$2N8YTM+fOA~@;#;x>+xcvcY%G9i@@_=O#Wh3 zcp~URtKrsjC;iPue#rf7if~c;D}AE00w2vfE0PIxFoRsm;~3 z==T>s&ax_HR{ir=yThMV(Zm_w4Wi*HDxe-5~2QgnnfIk(Z6GfWVQJ2PM@ z+fIA41C#5OB|qxtRsm7MwQ=66N_(7>Ta#5f?KNE7-rsY@mB#Q->}&W*(pzP@BODjm zk)M0!BdzP`*5ly;lYb%p^$W}o2Y9#8N>!~xRaZ`iKU5Z-ZK99I(BFIoL?Sf^-3UOeeN;1OITjdWbk0)Y9{!+xJ5ai6uGbL-< zr_=;RhqhC^J*PT1Dtzolj-29t<8yb%NSJe?*#JEeFzaJ_IzBo=iyDk=d%qrUoMg!8 z)Y3%_6Ey0kLjaJ!)SED%m7@fx4~Stp50`mJe;Jx7N^t2*k%=#jajx&68Lv9R)G1rA zhM*^DKJ>y=Pn|1=tAC!?*s->w?nw~cR_J-Y<7Y##qrT-^=yK+6aVBO-#F2f3ec!9d z>?YSI(|?Vo-hC~{hKn8lT2w#HubH(JfMcnrbjXtY4hV!(3V(Hsgk}V=JHFmwiwxpc zA^&&U+1??VS|2YoR%%{9Hu3JvY3^or68q(O_4~4g7mfECkLU8gAMDNl1)&h9TXY0d zryE>zo+lpi9KRSnMckh`zp)_N)nb`+8RCwEzqjCa%u*1D^HXBiSbY#*P+?*>`uOj{ z+#-wv76K%Cm)`C}yt|ggZOp75-s18r2kPB_ukmxuxb31M9^jxE(^kGnOQpuRP8;dM z%a%K9bNxDugO>fF!cT=KoywVCrOkURCkIQo%E(`8X4Xh3)CTa%{doD?g4i@{P?`At z!^f1^ckgapobQ)xYfdy6BrVKZjxHlJyw6(?TU&sdzuBADcQ4z(2P2Tn^?Hn?6%-;o z5Q@(NSnGV{lcX%`d|)5y$ggI>LK+v}-fR-sqrVDxyxOz)c|7m>K*Ox;a;>kil){q= zyt1mR8J#aq{=WUN@0^{-dqpOOyQD#+BH1c)BSC7<=tf_y>DWb!YHC1JeudPD?wVWi;)S z2BBh%RK+)OQpZknWym{0WeVNgSti8kCky6(>m`{H*WSpB*VcTg)yAslqop&RuK=1I zMe7DyfVjKa4;i?LG0CO0j>vIMe2?*dp^d7}+ACJ_jl#Z+(e;i{p21EgU3GrMQc*E{ z^AT8Am?&_)S=Uc;6G(QNHS4~2t3rFn_FGW)+oZ_5q&$enSW%Y}gNJV9>mwZHG@ZhX zj%^!JAq*Sn`HT9mm)sQMD^k%7rog~C*rGY?L_chOhXX6qz`teyD6M_C>pgE9f;8+; z+dxYWC+#bhJiIKp{*lSeX8V{nkM5A8A15(XMR<2Ex38Jxp3s4U17^sn^zQcB!lp!s z$5=p2_@Qa(s(#Fi<=0RYMz*PE#~}K4y0ODcP702BP~3{7hCHP29f8q41nB#w?mKpl zT`^im#sGh<(XzvpRZom}`&hs1B$U;^5b_UO(6mPKibkKUTqv%;`!AFY6^b`3Kwj?E zvftpIhBbn6B~UfG8sZ}5l=p2vb9q0h#6@g}q_+sI7cr(k&5`Y|p7z{h?nFIqtNsqC z%tE=JV-x|`>-dtd1R71T0Gsxgd{F}a-10b`b|6?st^_E{(4N@85n5Lew#T$z2a1idN`V#*j?8)8FHN%XJkjRQR?#N zX2l&MrGO?_*ln)&c$FbZjQI!|kcu|a_|fuf7;5)C#dnEo&Uk=@u)VOsjp3ktul?lm z;_`Jq^w(m98-e7FUYlvxPsYwzvPS<8dzFlS&R6RBr~H8U#n{G82(NSX#^E5lxQFq} zdXJqXK>h}7*(SoU^BXr@66M72=_7I^u=h5HZlM_ z{Xfi>ml*rfmXI{CSlKGdfE}=4BPkoNSy%dUq;p1`N;Jdux%+_10!#m!fy!Mh9P&R| z`?}p;fFmXtaS!t`)iUwcHL=h1O|;sZXhrp?>wk`VdbPwDg2mITSJAa24ar+Gi(Edu zt&#!PtDd#a-!5H$!8blQueVo5^zRqz+L-B`T#F2lEo%?(rAp6oigOp|utXtojg&jl ziMUH2mpCcb4CMlgQ}*0Z_-Sk`>f(o$4!c{%9I#U8fa2 zIGbN@h;nd)`r1ZIA4I8KUGja;-R6#}Se{}%snC5ky1q54vuPsY#x>~a!XXI;Exy~3 z`7bIXQSH4in%>*r&XrVjkrT-tXLSt8m1rIKip&0H+h4FNLG`E5oOSli+KB#{3>(V4 z1yI>6+{gx1FyHL`nz%B&@RsdFy!^HmQh~cS7v2?~>C3xsRgK?EDi$^|Xo)$#yl!8r z)IF}SL+_6K3SrZ3Z^B{%w0`+RA`M!lf`Yv@S+W(ah19PN=T^9}#4?Ktvr>*%S7Q!B zb94Vi`u4sR+1{nWx8aL5oDp(ITE~qhfKhAAm_=ZH(CO}%?=KmYtk5shiOHkbC8j_8 z_`Y4ZjDZH>M|^L9b#^R;jP}(bxADq4aCa3Ock+O%CjJ(AZVx)bYjxsF1Mxk#$a6go z3yi4TW;4q!Id@<2+{E%mF4TCYwV(!*eU+aNGb=T5F!^! z^Hy={F)jE|^_@nS@zT3?A#7WpW@;yEeSsFGS_a+`tC04aQ!+Z2!$r_8^LBcHcVDqj zlX%EB+_10s^Y^^+UxclnA^xxSyG&XIBMy{W80+6HxSbcx$_9*=WNe!@mIRP^U8Ie= zix{yXab#0yhbYqU73X13JhKweHZy@vTkG!^bfDJHD znvayq*$+-flF9cmT%~76EkuWB+wfVnncL>mviSP+jButhFUwdO$n2j;~dyc#)W zWkkR3V)z}*s0&{x96J(p8}t$aOys)IM%3mFqgFy85seX3=$5=GQ|Nm!eT$vhiK)3C zCKRD#`End$hME6*FHdP^_-{086@_v_jp0>GXM+ERBZ;N2eQmY}a9j=mGsl(7@(Ad| zbBQCW+qZe7{2!TH5$?YA0`kl8m-4u4vOvrA0i)^TZjDy;t7%lX#?o)#`j_hvq6}Iz zx?NC1UNAENyLR$ER_Wc(4#`qy&icGIrSdx@!Ban0%j<)6UdZVf&L-?PCkwN|+RmT7 zQ|+GpyZBBwD!Gb;3qN8#&QfAw2cpcyJlFWB=f{%|DZ2pO_4D=*n9+d}?+idA)}S?g za(X{TRqoG;_{o3=jC2=ZhOud2X3I}e%oFuk6fAH2z46oQ)t*z;-DZ8mnSv&#a%JgE z?@x%dWuWR$ThY@UEDHGa*#I6cM6sA&V%sA!|3cSAcz1I?%%HWR2$JW#u*oda)SH9k z^%yf`$0v>Nx%w9(rkx_OYE;d8vl2G@WtwhFU4yTp=`DUQ_X0bb^;_S}(w1Fh_U`C+ zODmG!K;?Y@uuE2q@HMpbW?mUbG%N;z41^2sy58BwGoTGroLZj3WDyr8lm+m`x*pMk zKTpSwz4e#UIBg7YjMHT5n0i;)me8l-9%r_KY&Oqw{=;+F%zd1aV-)F(YoN5Mu%x$g z;~h0ymH2hpFAk6m2|E>}RW#Bv#%VCr$cM~G7BSiVGGds!k%=)qIhN|4^l`g9#W|{f z!Kg=>PcyR=BsaO6BoDq#ewCgFVtDD+_^bYbwFT^#mRsZQwYV&9uBY#TY*VkS<0Sl@ z;z))h3W#_$w^x8=gKMca8=%m5dprM+D$iIseP00A-{nIgcUOVYY_QbbOm6pM0^ z9R=Y&V|Z8vL=W{j(oB=$FLAadC7<)CX=m4iguMVEcT@|+R(zlfQ3}3L{1a2D59=h2 zyRoA^4r%Ug`_i2dW|k2kwD6`?JaL~A>2)tF@H`g15ceerbeq}u^NhC8Cs<^i@kB*r z^tJ>T3517J8= z3Yax#On@)i{lpu&Dw6p~K7)lAm%p&=8Oqp|a7tdDZi1}ai+#pX%c{8GJqjoeQl#(&Y@EatkVZ*`*g0a~CkL8+5ff63WdNR>nS4=VTul zy-56Wpk2m(1|x<%%_#>s&cq)=$a2c}i_7CdTsmwa|Jo!H6?rk7oZtFli-i6?6^ywk z(#0mTSysFRQ!?BUS&96qOX9$1xRBXhDP5}T-xijx)=&PWJ^1EPpQuh7!}QVyCWVk@ z#jkn=JEDV+2nnEcxT5rho){1O1Z)Sk5ote4CfD9fXQ|%W_$C0|olP}{Pq6jeYg1C{!|!tvH8fxO7%yG$;~pv9>ZYA<7d>!yhIkBp z9pj3&ZE8AJ8wMuIZEu({pZa2%rS_%YbM0HIB(&_5DDDUWsAUeRr_c^|@Z!gsLhH4Jm+%CVK!PS1PX9qSJX8^+g zO~e=*r$0{l($D=(Ix>CAr=e_wt=23guki5m^XsGqlC15#HjYc9jyRF7xuwYHOm|NHMk#{To356Rj0`6WplK38i;!P zV7@j3v|Hr3uVUciwn^TQ~the@whCPn*5r!U2zGb zU-qE+x6L!5?0RQD&Wq{hti>W=UK#`QN!LZSa-b?cO@pSI^RwQC4-*M8Uh>H?M)5vH zW1sz$6L%h&Ldb$kru*!Bvso=j-TQaG6t9{Cre#_bM?LS*9I&~PV+OA7q|nZ57uwZ_ zEalrWr)7-B>3m=0_%R_NqI}ZWTLsBNCb^`HfBHhuQ9RVCYwbTeVCUh3gvfv zw=L1$h_bA}^L=aBMnf4stlPb7s@vW3vwG5osl323(@J^g+DY!%MTN(me+Xh_s7lUL z-!FQrJ55ze%)#W(=cInFY~ArMIQnp5G@%Y4P50W%_Szd;nm1ZwlKA&Q2WaBSaim}8 zOJ=4q|5B|a&p^g$>F}~pU+0?zOZ7)?!Pku|_UvPYYJFZwe{%9g(?2+aIZ;RY zB}E$a&kmQK7Fg1w-yBg`&9&nH@N?=-*$jn0AVCq<8|-YN~k;zdv5VQDb_c!0hN|$`lwO&CKJ<-Lx3aX|ouROJfEd zGR{IRpS8yvJAF#_-cD@1O~Tkn23tt`Jajw~a*n1X@9~(U6M12|D46TSw%eU*j{MOv zY%00>EJA6G_nANN~VK>ht%=f`u@Nda;0sOLB%@Ae7vAdf9g@+AaPqFH6xE) zQ{*^LTyWzA34_s-S1jwZPu}CYSk^`S2zkH0f^dvW>I#kzBo)*3H_u*89p?g4kUKv< z!z2ZJBwz1)sf$dP!N%u6{!xKq76u`WgkM|^;zgDE{NlLS53?0bp0AlI=g|Xafl@9d z{k^+sbF(^3EN^?mMQf%+SyqRF{bEI*bsmS88HZM_bnz!vRJ51<{ z1Di>FXMv~%AIQfm)MT=JQ1A2iAnRKi^giT2GT%4oPdezw|5Cz~jgNn9vigfp@IIp+ z@)xSBH%iESmntc#FSPLe5R{Zlu!k(cKWb+~o#opz^gD!PZv!Nq$ormOW5h^0Db=@3<_ zC{!1Iqv+GD3Sm>(s!UiQS5&E5mWUoUkD2o9KbNqF?nSEM>^^VaFJg>`KB@D@Rp;}D zncsQqOwc&L2~RRDlzDCAJrP+~Kc90`9c$c&MT-eI&XHb>b%X#z4e4{s{jchhV~<0* z)`u32>?ros##q{s)vXR@j`tXrRdW(sKkFTn;O;nZ(YIl6n&0*2b;K)M{m2~6mjhD} zkYogp^GgnPO0_Td%`lxV|`|7mFi{*f#j|>a&&2Lw;1xRFKhC5s%z(b z&7hZIP{#88ae6@GTp}6++XGeCoh6s@O*BY!4(J5=;m>D^whiTzqN(39~N30+U~#xdrG ze#_#Z>HZcge%Su{ah9Z)&pEU~tr$xmMLoYKy|#~uV?jvHavV1jJUC;neH@*qc!}0o znA7N;R58P-SWgL#Nf^dJyQa|0mTs@%F59p3ywaJ)p$H zJ!{RUbN@mxi>vmC$w^?Y-UwcClH(#beObMy(>CJVz}H8{#wgxN*%unf=r9#+`j&}} zK7v6=I%J4@bj>tG^3x5#tGs~y`7?8>)vFxnZBQNouE7&LO8ihb0ZKYDHkr*NnDHxi|_j*Z$a z-`Zj>6I{ysy5zqFNpd5><@UyUXO}Tl-oZVAF}u!4Yf?a_ax=rlEr4{4ry>ZkF$Tzm z+fI*Lb<*2D%V1iYPAowvS&__^dk_MkuZe%je*4%t zoMQu%eC5=AuRnXZ;Mr=AWaD=v@;3kc9)EFvOhDrGkCQu+ec$B%4P2ivg8Gv)wq%h2veF83kaY?{V2zYFAahDyZ;!gHmwVQ2GpKcz zEYUHe_OpcR%Wu!EF}DE#9|UaXwFi~O#siXSmTaF*y5{t2^s)vHSVCkVOAcqcm)~A{E)VN%s zDGT)Vt!VfDH^<#o)Xt(7x7BnP>!-yMZkl@zn6FWCYSR3C`o3P~PvtVZ!6yQA8e4OV zp1%!GzO3W~L$wy@sjpmgj>Zq_dY$HuOv1=wY+3kruy1bE7@FQwUNohGf-$w_+;2%( z)c6F=)lnK|D?@!!0R5|WRlbfJuVIYXW6&(++ry>bmxzbvvr5;8e`q?|n!PKYs5NVi z^>D&IUSpRDR%{vG?*0xkFMJ@_9^*Q#bhtmh&T`P@z zud|DVuGZs}BZgI@%zGgpwS+Kvn2)r6?ax-o*m8P_ju>+e>Ry!TOPpFMYG?QPkeJJh zMQ-HY@IA61?jXS{fJ%nWMQM!I4894WpN^0smz75+rTUA(FhRzwtF7U zYu%F}jv* zdf+e&14D|-;w0v8hM_S1Com%3^>@Ao0t*rSAq9oNj(_f!CKq!%GuAylt+4RllO)dF zv&+9$bUO;srLS6M_iL@XyDmohPxWUaQ&fp$9!1H~?FyjX&*FXZciE$WtJnIi!)T2!3!;`jomJZNLR=5g1b`nxEr@ReN*EX|!zf9m56&TOqI#AQB4&sx*bpBZ<-l5^eNV;Ngky#rN@1eEKe@A?8Vew!)# zxtbJJZ2g5l#eHqnG%sMn=fpQ$^UBM#n?o`K4PEyFM<8ktcYWPME($YJCGS*=MdW3L zZ*@|D04}|DqB18I{k;V<=W?fVkF9U#N=;>Gn=^N$y`t%Bqj8VOXGu4~O{~S4h<^Zr z(cNJFbgC^$|C)5$bg5;q=NY$boMpbAf8PG-(Dz(AQp2iWQmv`6 zgp)S97(N({^j6oy6IEjA#s+@MeHr8{kf9yJ*MT%#2uY(8oCjkm!bja)oeY|-+#p~r znzx`X&x#f~huKTGam4kBrxzX<{ofd=1?U+!Y!posSh~pUEZJwV0K^b^-SW~FhNC$) zrHotM9v`y?H>n2wN1VKWZgR288q-0}3m1PcxL^|+49fFS#o>!`UHecc@3*R=rKUeo z36E=&pBh^Ch8+K0{C#*>tnl^H%1Qc{;b@Em+psxacxc={$Fp7e81qHa@Rbme=JMEK zNLJt(5&QZWsUN{U62K^KRyBq0+ePDCQ~sTEv3nOTH8HMSK!1J++>CS(h#$^B4^nc# zlfrW{K05{{NQ!mv)HzGT(cxRz9Z&nzHY-TwU%(n%dDmJi34V_mI%tJ*&Vn?ztUXyW z`Y+!1Ps!w5dvu@ehI8RN9PRfpuymw$ZyddAsu}yPtG5W^mVdLkvc?v3I-)tnzaC%z zL`RV*?V(=fu#gp2)f42e_6)IDW zU4N-lL>8XNm!#}Cp500ON27+UQ?|UaA%$#}PWKlJ|z2YW#z{0-D`>tABSoN8a==rE`Afb zGHN)?m>8H~Nbg-k%t-!_@w3h-Y#MW#hRaON{NA~Cn)Vykb=CTHC^cFa!zD4=i_aDk z$2?w6LmsVPSm~;%w;2hU>w=#o0vIp5?4&1a4EN8Em1+g zbb1)U-an49ZuU{&m5L6*H}$CjiGos^94WVQKg>lXdAs&Ympfl7m|RF}R14-TrF{uE zbHJaJpW8pUD`!mZdS}X9|24C9b-!_={+#u*F7kd_^s+;<)kql5zhi!>CPeEuGY+Z5 z(jYbjK&JVd1%?l*&YkDL1S}DxdUP)b zXqG)g);gwo8K*v4h8`P{?dP^d?fA(iIqqcx{Hq)XPtGth6folmBektyaGh3?4vZ=3^fo?z* z?Y$}W$}&w~p;0F}5#GWlb<`RePYL>(g8RTiW3Tn4I3?X^>YK0Tr4=vyVcl-^ zEWuk?xlW&2IZ_4}ti|n5uVxd$k8}drk?S`w^%k74qvQE$ixyNg@SkNsk+348@IK|` zpU$?dN#+)*CvdNxcz&x0_P*%LDWK-YkTUr^ajHAd!h>1kNit!Tr4P9d%#*kg{GmT> z%q>%#oI&@i8Jj?xuppR`5I)9(tYwi^>Lx`+2KAd3TmQH5`_)C~qj`TbuxjO5BGp9mGa$LHZ;MhG5xYif^_T^~GPq)$k&kzodHMBAV z<6&lC>qnC%FFJz|FLMifQnImveJnc?epajuq*nw-qja1<@C46rU6NbLQFW}rBIQ8C z1!K21)04J~?D}KIKJz6tfO*~d-Utc7|1R=J>QZ0F&stYJQvDMKXfo`|RyIx^aI$Rc z?&~4ipn(HmHKPnc0lD$B>WWO?-K22?jceoZp(jMu4ouEQ zY_rD3I*H3D?qXD9yanw)S{pOU5<-^wYi^u#`?UAgbO1sc>;(*~dCZypHC}L&4{Rg` zC_q=KbA9!0zFf7+<1Btl-lYiNEhAL@A!5i)@W>EuWo}n>8AyQ#RT4ESZeZHiKNv)% z{p9#nFnO5Li@QLZ8J5$cAg$T=P!AyASu&X(7;^Tvx7e2@Q4p6OHr?sFD|3DARuUos zW4d=*AvYdQ0nCndff4|;hs!OaVkUb*gzwTT3K4-Jqw16cWI4w}F8Zv-{&`7+nBc#h z9?{L>UDVEQh9xCH8}}N}&>gzxphLvTX|BmP&J$DBi1%ruKXHx!j;F}frKVQCkD{ns zi8Ev-|9BPr;^wJ;V#8Xe?n&la#G3Fm$RKx+hF+5&_&z;dY&6rHcAA9J)Zs2_3ijuI zHCx#G8Ws{&q^YfGTKQ>4l&1JZUrk#s^CSNfWr|z&Co3l`x&x_k?)-hh7RQOg;_t0O zuV%RE6W1Hv9;}m&ReDWiooQqVTqOvUpJ>#%Sfe^N*9C`D=ZpE3B0;UWw8X}nSYo^H z6H{ye?XF`hwRtp%9;a~M^T|j`aR~1L<8yjZ{qeGS|AP_cR$jd&AsP%|-urBKQY>Lfz`V35p#40N$Z-e?M1+1IzTSy(bdwFe`O*SsgF+irBoOm%KG_UGF z@(dWq%5d)4*o zBt>3FedkCY38MC~?)z|#pcO|Py-K|B#f5G^2) z3Vi@Vfmb7NCEJJl)otvl^pJ6F3n=W;23FjvHS3CTHb_x+=G~eiURQqFjX4|=Hs{MtqEBAw@ z2ukDMp4;*NhF*;@D#8zEjjsx~fUv%}HhZQ9iP@Qcuh{lHP|vo}m8M>IX?1%Q)GhM* zsjI}F$m5Qm=@Q^Bj7vH)h4EW(xnJAry?;oz?nW~{L~+s*lfgZ4D^<}^)+Nf@(9oDs zaLrZk7=sp1R{#T5DDvP6DI?1^?x8n`I+KH{|GXCZ}va-?{q%MTWM7Qx|( z1F=pXv8meP5Tk!SiG=Hb1h$x$rmE+tV}=G<9=RE5$_geW@uh$)&$*Do#wu2>p8@n> zGh9OB3;V^#wNt5z0~rK=9EBEz1_~6Tjm4yx1`7SgXv{zc-j14?5%Dex10px{aT>7m zd6#p2=Av``ce^9e%w|pU%!*p@Qo5_0RD+H*p;82{baNVS^M+Zm*vE8O z@jrLLL|Q_NSuWs8_|DM5xeoN~(2ox4L7(XTY7@`PPt+tgusLA||nW}p~ zIOO_y;NR4LKe$_wyK=2akLWB+0Z z+0=VW`U)--;A4JPx$ncRHGy^rVA$&724p@lB1zIKw)@QMx4bRFRigYg^h+i!nX}Bh zbhddyT0%>JX+o;t#NIDwlZ*Hoe{OTD9WhPl@7D{Bt=iW*&oyv}k8 zhh^|AB-E9s2ksXa51w1VVA$OHZOoBPq%@IH)Uci?YLuzGTCJD9)!MTe*R+W&iXVmw z*!zC=O>}vOdt`w{>^2%)XPU}QFS&thz=YS)+5ll&k+s})bf(5q3GA$RyIyL-=*>>~ z!)m}u&~WBT`r{{XPkm!)Z@o%b_34MDHwePE5Udzj`B2>_-OZ4^sV-NB*aJyg#maBr z%+pIAv#b8+9zHlRb6UPwG4@7#7wj9Oclkw!!m6;n58E#ET~icK&VfAL7hO&rd)3!c z4NP+_)3tCGi?qlck8Xv#i@DDTU+)iyT^1dP&zTFMbKD)4Ey582sY^!XIcIj9vL@Fl z)7NMG$B~VSPfwRLiX5cm$SuYYPPg=rl;zb!fvbSJFckqg@%B;0%{acB0U?f^6G13Bo?Nf~D@j!LBA7ysw z%7fpwm+suSP0Pzoq4zKJHM_;%&n&{d8k&P#*S=1$FTlCWW~fgqmS~H*6pX!r&^A`z zF`_`@jwO}l<4c?a^?>vYVrt`;u#>>p*dtx- zvV9=(5aX+|>@gD!D#enB^z8eBhiq*doq!nAUV<538IF7&hb$lOzj9$+pb)%wQqo0mr< zx+bCV3X*l1FhgRH@3YC*)EWd+cmzFs(AM_!QoQ%tnnpvbo%sE2WbRV{BA^d1H#5K5 zz8vz7;(11^L;HnuVN=f!Z8|#$j=A}2R%%CWYmuHZ1n*`vcH5_>%n-Fd+Kq$?V$mz;@B{xB83eI$)sS5SEGvX#4h)NNzC-ed@3e6CPpi9>T#`gCU~lEFL82 z%Ac#e%#5d*zSlC2FK+&ziK7a~#43&I!(3$!T|1A4e+Udhs>E=Ayfb~72Xkxe^KJ|c zBgaB64-_FgoQOkMySspy2>G@h$@h?3p&gcy08gEt zF-Vk@+KULVXy#4%LXP^Z_7WH8%uUp0;uzI)--N0g%KiB7N?a8eFCkY%3-_&a8;zCj zuy!vywaNP7RC?$_zDV{2m@aJh<7*NW#)pbqcB< zjcx1WjuwPQWtE$F&$uf+_rr%6u{}*A{#hhjt$|^tO^Jg}#00|f|N4XLAd>_R1WOzb zO_2ZO3KBoT^E-85N53UNZcPq(>7za>5RuE5=DN-gEu0lwSA$k}>GZ3L>9-`PTqWmcO@VrZXi=1$7}QD%A^uzr{Xk@O2{# zYB!ORU{AA0(Z9W%rua<16)SRlv9-_rSQ(HnuW1W_E-)Jv%F)B2hrWWh*b{Zvub<1l z=3A@%se4zySuxaWI2si&1tH`}J8SCFu__u!iK2zArXhH-<`EhK2d_yrOk+&2Xc5?y}*pkkD zJM0>iC6`i)ZrsW%S~T^mzZoK`zvY5Bwq#LRous8YTE zje2I~cR*VjrSS0?Rah3sJ{kwsfp%Um=Lf<}Lvp4}qcKZGtwq<@>S!ecAW*KSSd^fJJZ_K3aUN)&W?5|{V@w%=OxgY3CU#%}KD_Ba8b$hqc zp<}T6_O#Q@Z*Gd# zWX}4fe7^SS^5?*f50_o(>%p%00fYeS^)NOX3H8wQ`F?LDwo-uaIx9DI-F9M6-A?Bq zk=B-^miT5gTH_qQBHD;GLGz%s7k4KxlG& zM+H69g^Vlch_&(0kN!lH2)veNhqY+anlUN<fs^6dT3xrkKeCKbd5@#oC8&F&S?&Y zpWGZ%8p4jhBX^5X7el-^+2@993ja=68qR;&jZ#1F274TIX~t(q_${RuDaa*97lqX8 z2B?%>w*$d2CCD>7o0fE9XSwK2E!etAsp)XcTsg9@F}V0_ch=!cbPyYj!>)7ILjtC_ zpXFelvv#+$4-~&xZ0pl`9aG#c5}1Oe>kO-zV@XzY3$QZm8m}H4fr?K2-`&&_$v!~( z8&W}$JDN%t9cJ2HL|axr)^;YAAwE5YEJ<3@y-iD;72bRJezKnE*8yWI->3GPw>(Ln~`n#CNL@LG7N!BFJN`19hMZM z12niEZoc~2f)uk#4S&)|jciNDXDjZa`J6_qQR@8f*$GqvVYi`hq^ z9~RlQF>bZ$?4X5fbzI9sZKAaCb!~vT!-_}LkK4^3tH#+-4{i)Y$g%B_sS4tzi zEmsGfcW$+6OL~vtHJ434Sx&FY{&d{KLORK^S0hm&b+UT&^)_UCce4|sYN;2>_b(4Z zOxSE~emV2LG_%$!OD*I1)*k`07{iqo{Azin$eu5q`p(vstiAH4vCU^vB(5*}Vp^cvMDOgb zle?Kz(9YjAjHYM;{dmZ1Spe^d13h5R2=LStXK_5qE`=_=LY$EhNSV)q`yKvTv)V>C zHj<(WT6CjU&n{32NKi-i!5IG=*j{P_`n=6s12)ny=zo@K)-8NZB&k!^>U~)KSLgtA zPAU;T+JCaHWn9G6mngBRzA>x8%2jE-y*s$>W zkcb+Bh_63tCSR`y$VMWDoWm;eUM;tnRDzNFr6Dg3^F&Rx_X?J&tD3o9zU!s%Z8{6 zQ@rxU7Z8cwUthzDiy>!gh}wo2CN90|Ro!^FFj53k|| z*mbkNfE9N9sdWQ5D0QdAr>e2xc(F+4cZtC}^4fkkw^lFu!(jSAF~IoM2{e}r`>B~t#Dz4D;ptYp`NA8=-rBMgT-XYZvJ1!31(@Wo17nFe3h*J& zn1uCp_==m(^euyD{qOUPKjXUb>k?xx{1b3R!I(X-L%=r~iyVE1E5(<`y-`||6G3Op zI2Fc$1~X2BIT{9I#;;GH$za?yFR%k3?_OEPqkHrM|If0iE1<{~AY=vp1%a|W9(Pzy zSr6j1syMC`mZ#hXB)7VU9~4Z)IK)JpU02A4oronyIOpDo7g22qA;F+i%8JzxXA@oa zRA=wI*Sa6Lig=z({ZAr8)or`5Xx$F>_CmhP2>EEc%WMUp#;1CWTVcnjif+wC? z(?y%=YU`&IYxUKApSn+Xp`Su@{wy)NB}h(B`+UX5(2%73JZegV&t#1KRZAYBC%N5) zFvn4cGk5v<*X(Vezt?l^;YFj#9>s^N^V=hy*)ljFnOvGxrNw@Rqr!pE6AS(hCaR1) zlP_e`nh~UW+NP_#@cdux8d<>B{qwkcr)w(0u7Xe9Tnm03G4LD|GQf1;!k2g7%yqmR zIh~n$=_xW$T*gzLe`K|23O_pkav{LvID1C*kvZwptaNi9u$y$^90fscw?CS@=c-1g zZtL1X`lryUtyOQtd5w)OUc7?*@~7dyedX&Z0p!!LqA|)qO{+!ch~oO9833SyVO=~A zaEU^;PN$)CtUUFgw}OHF)DT?m4qFN$u8R z=5Vz*^N$tj>U~o0D{~D)72+(CODBK0Qq2k%?vE?9UoPdUZOvYNTrQsE+h?AKX0=?_ ziRmAO4=Jf#K#C!vEV$g6gK^fa8@{8z(o+6cY$k}vf9VR;CF9rT)57N`UrZk*_QL57 z%mFv2D^E(q5|>J6aO(3;7k`%gJyb=J<*)-QDXPz;$Y4YcFC5D&sGG{OwuP_Daegey z+t$1O$7OTyCFnt%HZ8dv4<;Vz8AtH(X=t!IlV}*p{(Y&!m4oolyJ-fOlH{LsSRTPm4@9a>8Z66*r~G2}4@3eq_q^ z3<;CpxqBE{t}`?v7l7%pjK5)}y>?Y4A5QQxkBfl>T2*Qn_tM@oWwy==qVB_s(}X`( z(>QOluC?Het6`h9t^Pj{7}!oqx4jW@u?Ag#%c z$j>ylc*J-~w6n?1n%8%*PQ<(!Rr23tslzF?^QeiktZlv8Ws#7Zkp0->PYL}-6d0#1 zGKYuY`;hlMv1*X(P%^C@zJwMIa1To-j$5q7iD}m+tK>epQ&A1!X`!tO`?Z}rbrMv4 zOl{d{$Jw6!M|)(@ldni~t_|P=b&}X{$`hW87j9Zvr1oaqHK#<;Fmuk67Gt~-mcUyE z(k4l#e@=DUyRFsk&bb*q?Vq_4sHmK^RmMmb;@hs_RoU{G1vW09A4DlwLbI2k4N09RfgF=6Yx6+QOad`liXZ<;F2-_SZ9OPwJIY^1TF`@M`s*l5GGgd3r z9@9|liKQW`g6sdZ@ODrj1(~i-`TVd4d^ss*`5Hpq4W5=x({Ne6S^fEtlF(V0?5Ba! z$KXhXz#3*)8e6jW1;8@bAwQDu(MCa&)h5y{r)xNm9~HYR`!Cqk{kQvH@tNul2IMon zr~hyfEW@j|fii4)HbR(mQWgr1NQesWg`BPv)r9XM&{v zhV5#oJ!KXqdb=o9yCv6)F}2<31x9;Bev^Hn8vA!cF52DF5TIaJBlZvccyTY`$fE2= z@cy~K+xX>L2QNhBvLqigesrMqU~Vxr=-e0jeXN^t{}O>h{|)qPXKl|=0)PG+ir{!K ze}Y_lxS}6IE-AdGdUx-%AB`H3{4NHI>dH5%s*I;`IEm_7D;!=l;t&vA>38E0tP$B9 zqenIfc1Ia40(~!*HVhSH>AkQdeew;>o*Oi-y4ULpZSg2wa;M$AUy`K_se7M;ck@DA z1Z3H7U@ir4VCr;HXCr8KHr7c0p<`3g`$4uIvhA5G#i%*el=#I)gNb(Y3_oZq;a*R@ zZhOzslE4SSyf8!*qF=!{kut|wtc7=k`(jz>$h2-0Xz=*xFa-WsX2o^?#lqW7&f27g zoQN`qTPOO;d(^pV9iJ?c&VCaLEcx?7_-6Oqza27X8kc_Drw)9DdaIh>$6s>+ye-d( zDhO#jWDOKknpUb$+{;-hXE1#&Nz}Gz)K186E7C%lw#4Jy(zAK8_eQrOxgU2xLi=qg z>0s?580eQQjyX6zFIf`WdUcRo|97qC=AsH4dWNv5!7ZMDvXFg~STfM`@lkcO&a=vA z45=2bCbn1SF}qruHc~aKg^Dt8@z&WDgztLW`o2@&00f5LIaXO`kM;mkuyKfix4HB& zqQ$pub+Y`TH8~D_AC0=%AxrP#^hv9PiK3XuS zINC`3p@fZ3NU=N}zf}_Bt4r}ZCXp7v2AbWZuq^0$SFwQ#XCG9D=4qI(`9DdhleSh8on^8I-=~vN z%BhW>C2@2v$F-|T*R?0T_0gF7qUHZYgJSZ?Tnl4ix-B$woeM#qz5Tj1&&vtKf{ToE zgIPPhUnGVzJ}bY@_xcKdVeFFq9_$ZcMQZ&MlNB~p9TELn!GwBjHtE9mC)X&fSIh7E z-ec17u=v0GCYBGTMp(dKKIz6Zf(u_l+J0if8X_986YNs9NBF#KB+1~l;1NjJn8_oA|Y5*3iM zf_vNrdT|U5M4u2=clxWvA@9kjfE=B4+~iqUn-9;Oile&4Hf)EG1-CwQk3b)MYQA(ZV~0L=|LO{#_esPDxLd_Jjs1F2p$V`yy{|b9$T%zG zA|C(VHZtd)_{HP;jfeC6x|sV{bF-QizgIi>zuANR(-F z)!IEbxRNxBiK10lDYl{L##0cRhZh?EG{%{7f~8a0dajLeq;0VE^DtctsbgDY!U1FV zZG5FRANVuJDa`Ph4N&9`dD=t$zEiKq-mZ1xrZ(FEwt@z})D8FVOY?1jvris2v3ZrK zb{h5I4CM2niseyzrt&jFixb>qx)z8G_?+$3u-Ax#{hPA~OlvPT|A88$+nW2&Z387< zH_p18H_CfKr3i0)#JsB8+oE4-94I%z86x99ED`+}bu3?Y0EC_(a9!+CLvrum_CKo( z*6`xBtx+P_o^BgQvdzqGDBCkLSgF2BNPaqh?^Ge46m^;~U~${#W= zYrjui{q3cR1|eB=OW#Idr+S==V!O~Um;4%Ma6j$(#WsVWFx#(7W&b zw;WwKB8!!$`&T1mmwWX(;-=y)%afp76P>xgSbzJsOsaJ&`e_$^ z9j#k`d*O>Vy@~tR7Y!>xHuq$Uj0YP&aA!I9rCaQzfr}OS{T_(O>1k#6uVfh~P`u3Z z624|m!2y?c;L|NuI+oCQnc(}`>Al=qiJAk|@F%g60_(t~2tUKRA?6N(AM7p%&0BEi;tCpd!qq(ozb zCkXnzS6cQbSzr41%R4}x&&GIyD3=6Fu_3RwMA&nEKV@+9)qt~b#-R0bUq$G5xHCkiKyWV!xG4HuN!Lf!1eimStQL}+~!>z^=I6gLVssZBA`EZ zb5xHvn;(k=^#*lk@BJ@_6yZfxK0;+sV=^{mu|I<`Ie6w;$#rvd5rQ?e{lAaWB*F^a z1#se@aXL8lJdT^4%Pf|F;g|Z^cO6$ z^#2FNt>8321NXXcMR-s+JMJDHWXW^mUQYqU$kyF+`VXBJ;X{F*AG1F@#u?|YgMKIC z{^VZ6KLAs>gyU6RF?iK`6_WpMDBWGW3qF>f%?yMhjq)rmWn4fy6G0d zfp?l~kF~F7++NLSTdbH$ba8_k!cRgw16cbU%A(kUJ&yv8^N1B(|Y z>oTji>+bEec$22&z(}sVGyc-V_DF(^GFiZS6VkyD>zZbz>iTc-mS+d|204E8O2oU5 z>ay_#**l$Tl>hDsqDrPnfKNFN`b)u)n)KLENW*4zAadSukH4KV_;i0? zTee@TQo3Yd@$3y^*t8#q}uA@xXh=ZSGDPhU|M>R>4&jWImL%pe=xD$DSgiQCT#>tqs=1_p9 z>-#wt0bTY6h8P7;PqVOohW7P43iOq@57uT4rl(Ct^U~h!a#B z>{G`tmeH={1PyH1W_0M`V+iwUT9Yok*g_A&e3j-$5`Sf4S$qwpe-1NmeAJ9Ke-4*{ zJonnJ4KEJ-8rfJ+9AH2F-40xjF->9MF}8Y;@oftQD`0q3E{VSq|2D!rDX_04QmZoE zT4R4epK5pFzxME2=3vqt!+OK*8YoTx^(EOna^dxwZQpU@w#xcia zj_zmLU+;e!IGE{YAn2Exe=8%r)!&=X`uNL1`_zNf?kCDN(j)_CD}G-Ur1Y@g+KHeU zm;LrX!|=WMZFy_zg|BrzyL<=&m(UuT9Lwmd{T@miiUgqY*Yhv*}VAPTH)&tJgqLzWdzu*+|2;kOf7KHX>zuuktMVC_syf-iOp0t+B zc2i)nV7_TwMj0Wc-!1$3i@NI`U&84hd^XhwFxS#wPO?+J;jB(`y00i!pqKhAP&1U@ zHLzh$`X%k9&mqnqD$yM-Kq~(!u3Opv#}E0?u_)}X;%GX+IM%!-QGJk?x8hT;P1YZ( zv{Z2k>Xdh(BvE8CM}!pjnCzJ>2x6<>yeHru$$o1vtUX;pI>@c`+K?Nf(>VqpmYbW_ zN%ohYMEnJiIQTWRa(oAWadpU>2@={~pDy-bl|l|FA{({0Q$RQwWg zWH5eLPRt6x5FzMPd468C=OjrxI#l0mqqt7_w3ff8BxNwdWX1F4y24gt;?tD!=k^oC z0-#em3451}wKIwF91SaswOd42lDpbpV}HW$2Qs_TuSXKD_Zx`?Hysx^6hM*kPlF%N zbJPjoCfa*fEVqn%G%7ANAUeYi;zKB{REb0!odeKLqVW&+5P9?Y)I)HA>B8aTjUftN zjS9TSvs)Y77qRXb%+{H)87=Z@pRp76U{ENn+80zuIH55^mp6Xo-Ty^qjFdY;A_3Jt zo_{2h-6g#jiJOrO!zBsg&AEa(1a%j0`?+Dv(pM1=^AoddoF2~e=M_7KTS^I(8qh_DOq{`I;XiETi*#0yuTn4CcCQ8-!^*;&*u%yQI)7V`PuO#sZPY( zpdvSDrTkB!4YsJAmN}+ttwo|862I`d2Dw|6$N1O4$;7&JTU!!(DJ68Eay9#_wk`fE zLXpU|`Zn8OhaWZ`J|_JILBI8azcL*Nc@aYCTmzl38aBWxPNw z!y{(hnZ1gXgP%bdB?Q7@NZ9d>=?>X23f!RE$7lMFLBpgxE2J;55?9t}ztiy5-vCnO zG{#hLbfqk8X%Dpq5&AdVi)DoS8NNPVD_Kc0-hXZBWazOSI!`$oB(j-O4|qyXNPcqE_7VJClLTJVB}IX!!EV(nOu5etIVoQ>y- zEuE_@6xLd-{7oUjTcforwRip#t+Tpc4O_m$kkkHpZ<(T)&P<@-a3pd;ncISP_&YNx z&x{6sW>`h~vzva4r{~hn7qXJ?>^bd$3YIgF4j3VZ0}^{B)-?qVz5tKbbXAX<@xwHoF{{{7&IGc~fu2f*tvKnH zVP^O9e9a2eb#2Tb7i`r62x6FG8!u(my%c=iLS@r8Y6E(|Xju~0lL#Y)_=)vEl`5B+ zN8nW(vXBA78XS>In1a*#<2-{$3oHv>EsZ}rNo~i;TXokNU8@83&xAC4WgdLAv}Nck z0M|2AKj8}}iN|LWZp+mI+4llzA4BNpk5qOm+L>Bh+-(#l?WJ&l0QZkCup)m*rWhq`Ok(q;2|6Z3^K?Zg6>C7lwV+D5>e)*b?sEkHluiW;b zYq;R|;WefftzOc<$!z?{p-XkeY5U*cpTiG*aF(w!^dKr1v~`;K+Y?W>A2#8(lPO;7 zMmrEcJhxIFjeL;--0;An)s!}_UTxP$&4~56drg3AJYBz6rD?@I@5%2Li;CJ$c@pz{ zuRQrft!`lS@x|l}KZlR5x{-+02>Ipy2Pz+m3cWV1**A<5e!^`Gdx-iofLV@H-yk-o z_bg^}@wG;RYgMmlH{TJdzrdzZ?p9OoN}WD~V17{c0zFG5&?wV>%PujIC(vrd4{9lG zBvKkCR>H$iCL%)YY##{oeagt*aT|AwUSkZ5FyIiRH)$p<^M@Hs!VLM0NL5TjjMPe1S zb=I;sekI?IS&zaM7C>|!6=}a8S-^IFUr1u#*3}4D&aSHMSMX=Y5}z#5_}lPVYQR$)6FBSoOI&EN8KVDa)mj>PL1K`92*^87s2DdY%iC`~X;8o?8Gi$UC) zw_oR>5$JNyd1mH5ZVo

    3f%^bKF%*iLJS6hJ2hVvfiC)_|mf>yjjnU+4$I5`cZ{z zGX@Jx9nUw~v6;CVkA(|Z6?j}|1~dIhv)MUm>FATv7AbY1SYeCtv@jFlYHFY|N<_q6F+lH+tR`m()l~#{B1DVReg zaGE{?E?!;4A3GbF1T&c)8Sxb>Ocyj9A6G9UxaK_^VDdE2Y~tZ#7CI$=v8-pJJC8E8 zI5VH-9?6{k7{IY_t>Fr)v}nooct0WfA|Mjo5t8@>tBvUQ+Q_tqyCf3f_$zT;fE#nf zje%;RI(IMwJw^SvAB`WpH7CxdN(9AEC~e+ANmB-`wIax=@W%Yr6j;eH;@;c4$)sfF z^)0fW0w4cpVHMFG&P+2M(Yc^t(Pp$AdxvvZEIyU#mY8uCY07YSWSy_+J}QW#PO?*b`8cT)t2ctvvAwU*lt89QiZZ3)DFJ=ZeW__GmnJS!Fy zWlOkX)prIAF^-czplhpm;^r70t$REeJGgl_rTjjP14&oGNl+pyk_*Q^&rW_$IFBOx3|N^0CE2Cl zvZr}6oPE@EpeVU{FC@%(w81-ySUu=v$pcZ;yrR6x%UaqQbV!ha|e)f&(n~ z2Hxs#y-_Y_{y-`yiTe zv>KLNwrS!vefDgZ?ThEAo{Mas-jVLcY-psdsqThc9#5na2O22pYwCF^nmC<`HwN#SsgF3qIabyYl6-d^s;3Pa~*D3UZq=#8z@K7B=94~ z*ofKZ8($`npMcRsy?#^QfA<$BUU@<``Lhbn7!vk=ZUoC!#5(JQDJT|$_cQo7Yl2iW z{LY-K`zV6z@B+<%R+q$%5cQVp)fREq~Pq;tnLI zc9@X-FA8sre~1$ud`gTtbf&G@5?UgMWF!jFpDBj^^|MSJ7ePVscd4_&-Nm_95aW%8)ij8I&b4w-&n5X4#vJ8>&dq$ z-;b>=`4bFRjG4}tDyOOrATc4L~cp0 z0QqL92a@O_IlD8;&!FdGG0IG2rHQJdle1zEe6xu*OZ4YZy!?{yF1cyxEN?B?NW(dQ zcx=}`1^!WBK_hn=Y<@IY@aWn1lYinS8!aJz?8N2uSX`m-*8{2+j$oKvNyhl}GX3YI$^X@kTF%iKY{m z7Xs^W%T{P9&n#NC`)-NlxymKEMzn<-zK; zm8*p#0CikaD3p_iH_+sVo`|^gkk^&30!^(`+u{=eoV6-Da%Z${fZQOM>*=?N(zt!WCk_Zd2(j6^PX$n7G zX{&fSdsIVeBJEEczl;*~83+c!BF}FoEK>WupfB3cj+fmk)n&d$=@k7J2o4V3${S9rOy-0$iGSu!vglr4@2BU6s*QNFq zC~}R3S8x0ZT%(1YeM2rtMBzlcfem9L3A>6OV|q6U^FD&#IIKLpqEbUo+T2WNOyUoE^^I|r-a|BX*_6TIPAM$7J_-jb9eg`lGtg_(|>?>e8z$({{%dpntR@i6)PJTDhl zo{4Bpb%RP~k;rFw%1yFEBeeb3kEeW_Sy4LR-RtT?x&^B-4{heg91~CM z<~INH?u(f90~1i>M)*KBs^WomY;J{`vN&VfC6$LnNi8A`c#q`HUtQ8J-tV!;z{(W< zbZ+1Kg({a^snZsqrJz=NV{I_!{XV7ba!%!eLrSgO`yAPa>5~@YlOxH_cIIM*kDKd# zq9tEAHXcy#IeWHGq`h#{GpM8$dz8A0Km2**b$#vQ)^8s=_c;Nr+necu)l3L|tS{b| zN^4XVgBB961b!L}6PJlqX2N5xZYtC-p8J-OgUPM)fcX88#j?)me(%{Q}1E4hg? zN?&AV2>=`SWP!Im!&18`HvdGNj4Kdq`Qe!r8r=5n6C&PM!QU!p_G(J^^xGg0p?pK? z7WD0p`hFFZjqj44cBFH6Sb5T4iwa+dYhOYJ?Abpr0s@fDG?xcE0{BihVd?{fewz8M zuYXQXv&ihj)TLqX;g9~ThfA0{R|&5~TvYPz`wzW^ZPqe7Exz;*=KQc0BZ;hyUV7|A zvC)#V;b6w&eP_TWqnf!~n8`HhG>~I99%{&EHw>TlA5)5JjWT%Q0kj*e!AB;Ztf%Ee2=<|GQO;1O~COt zt4RE|g4jtCIY-u4uUp>QH(}}MtG7z0TP0@deL%M1s|U}rPMphxEQ2dZ_Pdp@RnZvj zt9E7|_a4ct<6zi``|l3DYb~LCPn)sYxNU`_s68h#c`xe$xbKS|D;X(*?#%sbeIE12 z{dubeO8ZE+N5Mz69Ax}%v7CFytS?>s%Z*I^_H4WQvb~#x31*x`D zv-qCp5+%lMz9>Q1co^DD=Y+}gRL>~eJZSuGPV~_$q$!`|0&l>t?lL#!Su3-n{Ncee z4PyNaM`L0dLdfmYUR&4h;N?&zxYzqF4TvtA`!?%GHDr5xG8{Yfs;}i$)%7dLHoE(@ z?*m)@wc6fSklQmwA8}DbQYFj$Txa3-b{175v+==MU*xCz^cpyu8Lou9;?4T~AX#S0 z!q6WGF5-itdqwZk9O#jbBJ>Q0MIslu?{Ze;9|8z9JY ze)okg_c`|qUEcG}u#V3Y`u8WjpXw63=%`&}+^L1~jQH|$179H_LB7LM&Lz)@NT#nf z0@@0sJDL-QEB{H?bUW_d4c__k|8)xoG?7@EI8{c@C zACFBTUc=q6rB`2X2*@367RPNv*b^+>{J36gKt5U>TpC%zfUvZ>@Fh6CqL`4LLb4l8cZ2odII3r@=XO zB6bTjHszPEE^8_hpMg(rio}WvSod0gjw)pzB-=Az6aQ12eQZ`Ff-q?!2PKqwE~GM! z{;bg+Kgzt4s0kKi{&kS^)H&l~XJ2fswA*>HZ*%r2zQXzJ{>g2tpr@WKMSu1%FopPa zhS^QE425_I-Il39LS@pPg)ER~!L=V^+U)xJjN(deV)#jK=B%hgd`E`U^-`Q}A3crO zJ+XkSq`}Xi5Bn|I+m;$BVo^y*`_7Qjrx2j-%%sL7SXnt~UR!4HT%={``@cl)8sKAIuY|T8fgq!^ z!rhMR7i}S4)4R%!iMN;j0Yu)mXTI2MmGJ@+z2n}j?4yQd%Cd0$HJ z{Al)*in#HlR?P&dzmEr8#0}UkV|h2``iI8W8E%Wvj%Q;bdOG<$Zf%i!aW}KjujZD& zzU5p65;Q?irzg`3R*H@jf9q3U-KtWv_)Gy;-qI5o2)M`yE5EcqIFk7tu|m;tlgEDS zStnh*-0%c7SC90-p>I{}NnKBTQT!03TY-Uch>c7hq2+z3$oPP*6IWJrN3-Z%GTMj} z=1zt`Uu^E-YgC|Qo`R<+p5aFLLl(T&7i!wMFU2EA<_=J&5YtFd({6`+GiyBsoMPKP zZ7t6rzAb0nhf*x;<}=Ih(TfW?qj5qv-4`QnL*Yz7XCu-3l+%Gc0U%I#GqCsk;XIG-xz!lo#BjhRp$DjUYI562C=B&$@q@wh;{~!I$#e%k&b=maCtcM#DZ{Mz zR5&B=O(fVjZ!YXPCe)?f8o%L<%!AyvO+JY5L|w_ld*DQEYJt$6x#r&Nuz}IEK|R4e zM9VSyp&|K6P(0mHNAT;Di><@M(A3JtkGS=&L}7RU*T9I-(h`AVlUlw1y4e^^=G7Ri zm>b~?v|%=(wl>uZ->qIQ(~nL90^QD-p@^nF3cpfRZg3rc42XBzjpWVY@}Tj&gsutBSKO3lR;*l1Wte$M?r

    ?_@S#0YMW7zb#f@HytVQasq5=&Um+3Lo4mfCYJu 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%0D6*naCj!iTHi7k-u(K038X?|z0FBuG9 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

    iNn3`7xDi9)Z=z`f{?;>26l6+sIWq$6W0w$ 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 z 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

    w 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žr%=xhF#B4y(FF1{JoE-}BXt6+E3>eWHxn?aNB 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 Y9vjeiTEv{9 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

    ?}!PqRNb-rbM@h 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 zⅈ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

    =GdrxgA#M$<$?9? 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�sx#Hj>J${6dNe8W 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%0D$E9W{P_u-ZSDf`&@q*@UKihZkC3i-P{j$ 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 Date: Wed, 15 Nov 2023 17:32:17 -0800 Subject: [PATCH 007/106] fix: Ugc model pickup (#1275) * Ugc: Make it so we dont bin the model Users must dismantle the model as opposed to accidentally picking it up in model mode * Fix editing model in brick mode * PropEntrance: Remove debug log --- .../PropertyManagementComponent.cpp | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/dGame/dComponents/PropertyManagementComponent.cpp b/dGame/dComponents/PropertyManagementComponent.cpp index 63c321f6..1fc38119 100644 --- a/dGame/dComponents/PropertyManagementComponent.cpp +++ b/dGame/dComponents/PropertyManagementComponent.cpp @@ -423,6 +423,25 @@ void PropertyManagementComponent::DeleteModel(const LWOOBJID id, const int delet return; } + auto* model = Game::entityManager->GetEntity(id); + + if (model == nullptr) { + LOG("Failed to find model entity"); + + return; + } + + if (model->GetLOT() == 14 && deleteReason == 0) { + LOG("User is trying to pick up a BBB model, but this is not implemented, so we return to prevent the user from losing the model"); + + GameMessages::SendUGCEquipPostDeleteBasedOnEditMode(entity->GetObjectID(), entity->GetSystemAddress(), LWOOBJID_EMPTY, 0); + + // Need this to pop the user out of their current state + GameMessages::SendPlaceModelResponse(entity->GetObjectID(), entity->GetSystemAddress(), entity->GetPosition(), m_Parent->GetObjectID(), 14, entity->GetRotation()); + + return; + } + const auto index = models.find(id); if (index == models.end()) { @@ -441,14 +460,6 @@ void PropertyManagementComponent::DeleteModel(const LWOOBJID id, const int delet LOG("Failed to find spawner"); } - auto* model = Game::entityManager->GetEntity(id); - - if (model == nullptr) { - LOG("Failed to find model entity"); - - return; - } - Game::entityManager->DestructEntity(model); LOG("Deleting model LOT %i", model->GetLOT()); From 0ddd20e2b55e9ab040cc532873ef59b6618826dd Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 15 Nov 2023 17:32:30 -0800 Subject: [PATCH 008/106] fix: ugc Save rocket and car modular assembly data to database (#1279) * Ugc: Use persistent Id for rocekts and cars * Remove comment * Ugc: Save rocket and car IDs to the database * Correct names * Database: formatting --- dGame/dGameMessages/GameMessages.cpp | 90 ++++++++++++++----------- migrations/dlu/12_modular_build_ugc.sql | 5 ++ 2 files changed, 54 insertions(+), 41 deletions(-) create mode 100644 migrations/dlu/12_modular_build_ugc.sql diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 0f750d5c..82a7ee77 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -5119,6 +5119,10 @@ void GameMessages::HandleModularBuildConvertModel(RakNet::BitStream* inStream, E item->Disassemble(TEMP_MODELS); + std::unique_ptr stmt(Database::CreatePreppedStmt("DELETE FROM ugc_modular_build where ugc_id = ?")); + stmt->setUInt64(1, item->GetSubKey()); + stmt->execute(); + item->SetCount(item->GetCount() - 1, false, false, true, eLootSourceType::QUICKBUILD); } @@ -5562,13 +5566,6 @@ void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity* InventoryComponent* inv = static_cast(character->GetComponent(eReplicaComponentType::INVENTORY)); if (!inv) return; - LOG("Build finished"); - - GameMessages::SendFinishArrangingWithItem(character, entity->GetObjectID()); // kick them from modular build - GameMessages::SendModularBuildEnd(character); // i dont know if this does anything but DLUv2 did it - - //inv->UnequipItem(inv->GetItemStackByLOT(6086, eInventoryType::ITEMS)); // take off the thinking cap - //Game::entityManager->SerializeEntity(entity); uint8_t count; // 3 for rockets, 7 for cars @@ -5603,50 +5600,61 @@ void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity* } } - const auto moduleAssembly = new LDFData(u"assemblyPartLOTs", modules); + ObjectIDManager::Instance()->RequestPersistentID([=](uint32_t newId) { + LOG("Build finished"); + GameMessages::SendFinishArrangingWithItem(character, entity->GetObjectID()); // kick them from modular build + GameMessages::SendModularBuildEnd(character); // i dont know if this does anything but DLUv2 did it - std::vector config; - config.push_back(moduleAssembly); + //inv->UnequipItem(inv->GetItemStackByLOT(6086, eInventoryType::ITEMS)); // take off the thinking cap + //Game::entityManager->SerializeEntity(entity); - LWOOBJID newIdBig; - // Make sure a subkey isnt already in use. Persistent Ids do not make sense here since this only needs to be unique for - // this character. Because of that, we just generate a random id and check for a collision. - do { - newIdBig = ObjectIDManager::Instance()->GenerateRandomObjectID(); + const auto moduleAssembly = new LDFData(u"assemblyPartLOTs", modules); + + std::vector config; + config.push_back(moduleAssembly); + + LWOOBJID newIdBig = newId; GeneralUtils::SetBit(newIdBig, eObjectBits::CHARACTER); - } while (inv->FindItemBySubKey(newIdBig)); - if (count == 3) { - inv->AddItem(6416, 1, eLootSourceType::QUICKBUILD, eInventoryType::MODELS, config, LWOOBJID_EMPTY, true, false, newIdBig); - } else if (count == 7) { - inv->AddItem(8092, 1, eLootSourceType::QUICKBUILD, eInventoryType::MODELS, config, LWOOBJID_EMPTY, true, false, newIdBig); - } - - auto* missionComponent = character->GetComponent(); - - if (entity->GetLOT() != 9980 || Game::server->GetZoneID() != 1200) { - if (missionComponent != nullptr) { - missionComponent->Progress(eMissionTaskType::SCRIPT, entity->GetLOT(), entity->GetObjectID()); - if (count >= 7 && everyPieceSwapped) missionComponent->Progress(eMissionTaskType::RACING, LWOOBJID_EMPTY, (LWOOBJID)eRacingTaskParam::MODULAR_BUILDING); + if (count == 3) { + inv->AddItem(6416, 1, eLootSourceType::QUICKBUILD, eInventoryType::MODELS, config, LWOOBJID_EMPTY, true, false, newIdBig); + } else if (count == 7) { + inv->AddItem(8092, 1, eLootSourceType::QUICKBUILD, eInventoryType::MODELS, config, LWOOBJID_EMPTY, true, false, newIdBig); } - } - } - ScriptComponent* script = static_cast(entity->GetComponent(eReplicaComponentType::SCRIPT)); + std::unique_ptr stmt(Database::CreatePreppedStmt("INSERT INTO ugc_modular_build (ugc_id, ldf_config, character_id) VALUES (?,?,?)")); + stmt->setUInt64(1, newIdBig); + stmt->setString(2, GeneralUtils::UTF16ToWTF8(modules)); + auto* pCharacter = character->GetCharacter(); + pCharacter ? stmt->setUInt(3, pCharacter->GetID()) : stmt->setNull(3, sql::DataType::BIGINT); + stmt->execute(); - for (CppScripts::Script* script : CppScripts::GetEntityScripts(entity)) { - script->OnModularBuildExit(entity, character, count >= 3, modList); - } + auto* missionComponent = character->GetComponent(); - // Move remaining temp models back to models - std::vector items; + if (entity->GetLOT() != 9980 || Game::server->GetZoneID() != 1200) { + if (missionComponent != nullptr) { + missionComponent->Progress(eMissionTaskType::SCRIPT, entity->GetLOT(), entity->GetObjectID()); + if (count >= 7 && everyPieceSwapped) missionComponent->Progress(eMissionTaskType::RACING, LWOOBJID_EMPTY, (LWOOBJID)eRacingTaskParam::MODULAR_BUILDING); + } + } - for (const auto& pair : temp->GetItems()) { - items.push_back(pair.second); - } + ScriptComponent* script = static_cast(entity->GetComponent(eReplicaComponentType::SCRIPT)); - for (auto* item : items) { - inv->MoveItemToInventory(item, eInventoryType::MODELS, item->GetCount(), false); + for (CppScripts::Script* script : CppScripts::GetEntityScripts(entity)) { + script->OnModularBuildExit(entity, character, count >= 3, modList); + } + + // Move remaining temp models back to models + std::vector items; + + for (const auto& pair : temp->GetItems()) { + items.push_back(pair.second); + } + + for (auto* item : items) { + inv->MoveItemToInventory(item, eInventoryType::MODELS, item->GetCount(), false); + } + }); } } diff --git a/migrations/dlu/12_modular_build_ugc.sql b/migrations/dlu/12_modular_build_ugc.sql new file mode 100644 index 00000000..68e417bf --- /dev/null +++ b/migrations/dlu/12_modular_build_ugc.sql @@ -0,0 +1,5 @@ +CREATE TABLE IF NOT EXISTS ugc_modular_build ( + ugc_id BIGINT NOT NULL PRIMARY KEY, + character_id BIGINT NOT NULL REFERENCES charinfo(id) ON DELETE CASCADE, + ldf_config VARCHAR(60) NOT NULL +); From 7bbe5ffc39529097c4169b94ed92ec688de18dc3 Mon Sep 17 00:00:00 2001 From: jadebenn Date: Fri, 17 Nov 2023 18:43:01 -0600 Subject: [PATCH 009/106] Fix falling from Spider Cave not smashing you (#1302) --- dGame/dGameMessages/GameMessages.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 82a7ee77..33717059 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -4170,6 +4170,13 @@ void GameMessages::HandleRequestDie(RakNet::BitStream* inStream, Entity* entity, racingControlComponent->OnRequestDie(entity); } + else { + auto* destroyableComponent = entity->GetComponent(); + + if (!destroyableComponent) return; + + destroyableComponent->Smash(killerID, killType, deathType); + } } From b68823b4cb25a845986c6d8940d64e4c7b01dcca Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Fri, 17 Nov 2023 18:44:48 -0600 Subject: [PATCH 010/106] fix: properly check friend list limits (#1300) * fix: properly check friend list limits added a config for friend list limit for the brave that want to mod the client to sanely go over 50 moved the best friend limit config to chatconfig.ini where it should be cleanup loading these configs options a bit Tested that the BFF limit works and that the new friend limit works as well * fix typo * fix member variable naming --- dChatServer/ChatPacketHandler.cpp | 21 +++++++++++++-------- dChatServer/PlayerContainer.cpp | 18 ++++++++++-------- dChatServer/PlayerContainer.h | 18 +++++++++++------- resources/chatconfig.ini | 9 +++++++++ resources/worldconfig.ini | 4 ---- 5 files changed, 43 insertions(+), 27 deletions(-) diff --git a/dChatServer/ChatPacketHandler.cpp b/dChatServer/ChatPacketHandler.cpp index 72383c38..f9ab18c9 100644 --- a/dChatServer/ChatPacketHandler.cpp +++ b/dChatServer/ChatPacketHandler.cpp @@ -96,9 +96,6 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { } void ChatPacketHandler::HandleFriendRequest(Packet* packet) { - auto maxNumberOfBestFriendsAsString = Game::config->GetValue("max_number_of_best_friends"); - // If this config option doesn't exist, default to 5 which is what live used. - auto maxNumberOfBestFriends = maxNumberOfBestFriendsAsString != "" ? std::stoi(maxNumberOfBestFriendsAsString) : 5U; CINSTREAM_SKIP_HEADER; LWOOBJID requestorPlayerID; inStream.Read(requestorPlayerID); @@ -204,11 +201,12 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { // Only do updates if there was a change in the bff status. if (oldBestFriendStatus != bestFriendStatus) { - if (requestee->countOfBestFriends >= maxNumberOfBestFriends || requestor->countOfBestFriends >= maxNumberOfBestFriends) { - if (requestee->countOfBestFriends >= maxNumberOfBestFriends) { + auto maxBestFriends = playerContainer.GetMaxNumberOfBestFriends(); + if (requestee->countOfBestFriends >= maxBestFriends || requestor->countOfBestFriends >= maxBestFriends) { + if (requestee->countOfBestFriends >= maxBestFriends) { SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::THEIRFRIENDLISTFULL, false); } - if (requestor->countOfBestFriends >= maxNumberOfBestFriends) { + if (requestor->countOfBestFriends >= maxBestFriends) { SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::YOURFRIENDSLISTFULL, false); } } else { @@ -242,8 +240,15 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { if (requestor->sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::WAITINGAPPROVAL, true, true); } } else { - // Do not send this if we are requesting to be a best friend. - SendFriendRequest(requestee.get(), requestor); + auto maxFriends = playerContainer.GetMaxNumberOfFriends(); + if (requestee->friends.size() >= maxFriends) { + SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::THEIRFRIENDLISTFULL, false); + } else if (requestor->friends.size() >= maxFriends) { + SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::YOURFRIENDSLISTFULL, false); + } else { + // Do not send this if we are requesting to be a best friend. + SendFriendRequest(requestee.get(), requestor); + } } // If the player is actually a player and not a ghost one defined above, release it from being deleted. diff --git a/dChatServer/PlayerContainer.cpp b/dChatServer/PlayerContainer.cpp index f467cfbe..bb14a096 100644 --- a/dChatServer/PlayerContainer.cpp +++ b/dChatServer/PlayerContainer.cpp @@ -14,10 +14,12 @@ #include "dConfig.h" PlayerContainer::PlayerContainer() { + GeneralUtils::TryParse(Game::config->GetValue("max_number_of_best_friends"), m_MaxNumberOfBestFriends); + GeneralUtils::TryParse(Game::config->GetValue("max_number_of_friends"), m_MaxNumberOfFriends); } PlayerContainer::~PlayerContainer() { - mPlayers.clear(); + m_Players.clear(); } TeamData::TeamData() { @@ -41,9 +43,9 @@ void PlayerContainer::InsertPlayer(Packet* packet) { inStream.Read(data->muteExpire); data->sysAddr = packet->systemAddress; - mNames[data->playerID] = GeneralUtils::UTF8ToUTF16(data->playerName); + m_Names[data->playerID] = GeneralUtils::UTF8ToUTF16(data->playerName); - mPlayers.insert(std::make_pair(data->playerID, data)); + m_Players.insert(std::make_pair(data->playerID, data)); LOG("Added user: %s (%llu), zone: %i", data->playerName.c_str(), data->playerID, data->zoneID.GetMapID()); auto* insertLog = Database::CreatePreppedStmt("INSERT INTO activity_log (character_id, activity, time, map_id) VALUES (?, ?, ?, ?);"); @@ -88,7 +90,7 @@ void PlayerContainer::RemovePlayer(Packet* packet) { } LOG("Removed user: %llu", playerID); - mPlayers.erase(playerID); + m_Players.erase(playerID); auto* insertLog = Database::CreatePreppedStmt("INSERT INTO activity_log (character_id, activity, time, map_id) VALUES (?, ?, ?, ?);"); @@ -191,7 +193,7 @@ TeamData* PlayerContainer::CreateLocalTeam(std::vector members) { TeamData* PlayerContainer::CreateTeam(LWOOBJID leader, bool local) { auto* team = new TeamData(); - team->teamID = ++mTeamIDCounter; + team->teamID = ++m_TeamIDCounter; team->leaderID = leader; team->local = local; @@ -376,15 +378,15 @@ void PlayerContainer::UpdateTeamsOnWorld(TeamData* team, bool deleteTeam) { } std::u16string PlayerContainer::GetName(LWOOBJID playerID) { - const auto& pair = mNames.find(playerID); + const auto& pair = m_Names.find(playerID); - if (pair == mNames.end()) return u""; + if (pair == m_Names.end()) return u""; return pair->second; } LWOOBJID PlayerContainer::GetId(const std::u16string& playerName) { - for (const auto& pair : mNames) { + for (const auto& pair : m_Names) { if (pair.second == playerName) { return pair.first; } diff --git a/dChatServer/PlayerContainer.h b/dChatServer/PlayerContainer.h index a0a40058..000164ac 100644 --- a/dChatServer/PlayerContainer.h +++ b/dChatServer/PlayerContainer.h @@ -39,13 +39,13 @@ public: void BroadcastMuteUpdate(LWOOBJID player, time_t time); PlayerData* GetPlayerData(const LWOOBJID& playerID) { - auto it = mPlayers.find(playerID); - if (it != mPlayers.end()) return it->second; + auto it = m_Players.find(playerID); + if (it != m_Players.end()) return it->second; return nullptr; } PlayerData* GetPlayerData(const std::string& playerName) { - for (auto player : mPlayers) { + for (auto player : m_Players) { if (player.second) { std::string pn = player.second->playerName.c_str(); if (pn == playerName) return player.second; @@ -67,13 +67,17 @@ public: std::u16string GetName(LWOOBJID playerID); LWOOBJID GetId(const std::u16string& playerName); bool GetIsMuted(PlayerData* data); + uint32_t GetMaxNumberOfBestFriends() { return m_MaxNumberOfBestFriends; } + uint32_t GetMaxNumberOfFriends() { return m_MaxNumberOfFriends; } - std::map& GetAllPlayerData() { return mPlayers; } + std::map& GetAllPlayerData() { return m_Players; } private: - LWOOBJID mTeamIDCounter = 0; - std::map mPlayers; + LWOOBJID m_TeamIDCounter = 0; + std::map m_Players; std::vector mTeams; - std::unordered_map mNames; + std::unordered_map m_Names; + uint32_t m_MaxNumberOfBestFriends = 5; + uint32_t m_MaxNumberOfFriends = 50; }; diff --git a/resources/chatconfig.ini b/resources/chatconfig.ini index 26b26cc7..1bb1d1b2 100644 --- a/resources/chatconfig.ini +++ b/resources/chatconfig.ini @@ -1,2 +1,11 @@ # Port number port=2005 + +# If you would like to increase the maximum number of best friends a player can have on the server +# Change the value below to what you would like this to be (5 is live accurate) +max_number_of_best_friends=5 + +# If you would like to increase the maximum number of friends a player can have on the server +# Change the value below to what you would like this to be (50 is live accurate) +# going over 50 will be allowed in some secnarios, but proper handling will require client modding +max_number_of_friends=50 diff --git a/resources/worldconfig.ini b/resources/worldconfig.ini index 0072fc51..0b15973d 100644 --- a/resources/worldconfig.ini +++ b/resources/worldconfig.ini @@ -40,10 +40,6 @@ classic_survival_scoring=0 # If this value is 1, pets will consume imagination as they did in live. if 0 they will not consume imagination at all. pets_take_imagination=1 -# If you would like to increase the maximum number of best friends a player can have on the server -# Change the value below to what you would like this to be (5 is live accurate) -max_number_of_best_friends=5 - # Disables loot drops disable_drops=0 From 7f623d358c14b38e580035105d4d71623c019091 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 17 Nov 2023 16:47:18 -0800 Subject: [PATCH 011/106] refactor: Database abstraction and organization of files (#1274) * Database: Convert to proper namespace * Database: Use base class and getter * Database: Move files around * Database: Add property Management query Database: Move over user queries Tested at gm 0 that pre-approved names are pre-approved, unapproved need moderator approval deleting characters deletes the selcted one refreshing the character page shows the last character you logged in as tested all my characters show up when i login tested that you can delete all 4 characters and the correct character is selected each time tested renaming, approving names as gm0 Database: Add ugc model getter Hey it works, look I got around the mariadb issue. Database: Add queries Database: consolidate name query Database: Add friends list query Update name of approved names query Documentation Database: Add name check Database: Add BFF Query Database: Move BFF Setter Database: Move new friend query Database: Add remove friend queries Database: Add activity log Database: Add ugc & prop content removal Database: Add model update Database: Add migration queries Database: Add character and xml queries Database: Add user queries Untested, but compiling code Need to test that new character names are properly assigned in the following scenarios gm 0 and pre-approved name gm 0 and unapproved name gm 9 and pre-approved name gm 9 and unapproved name Database: constify function arguments Database: Add pet queries * Database: Move property model queries Untested. Need to test placing a new model moving existing one removing ugc model placing ugc model moving ugc model(?) changing privacy option variously change description and name approve property can properly travel to property * Property: Move stale reference deletion * Database: Move performance update query * Database: Add bug report query * Database: Add cheat detection query * Database: Add mail send query * Untested code need to test mailing from slash command, from all users of SendMail, getting bbb of a property and sending messages to bffs * Update CDComponentsRegistryTable.h Database: Rename and add further comments Datavbase: Add comments Add some comments Build: Fix PCH directories Database: Fix time thanks apple Database: Fix compiler warnings Overload destructor Define specialty for time_t Use string instead of string_view for temp empty string Update CDTable.h Property: Update queries to use mapId Database: Reorganize Reorganize into CDClient folder and GameDatabase folder for clearer meanings and file structure Folders: Rename to GameDatabase MySQL: Remove MySQL Specifier from table Database: Move Tables to Interfaces Database: Reorder functions in header Database: Simplify property queries Database: Remove unused queries Remove extra query definitions as well Database: Consolidate User getters Database: Comment logs Update MySQLDatabase.cpp Database: Use generic code Playkey: Fix bad optional access Database: Move stuff around WorldServer: Update queries Ugc reduced by many scopes use new queries very fast tested that ugc still loads Database: Add auth queries I tested that only the correct password can sign into an account. Tested that disabled playkeys do not allow the user to play the game Database: Add donation query Database: add objectId queries Database: Add master queries Database: Fix mis-named function Database: Add slash command queries Mail: Fix itemId type CharFilter: Use new query ObjectID: Remove duplicate code SlashCommand: Update query with function Database: Add mail queries Ugc: Fix issues with saving models Resolve large scope blocks as well * Database: Add debug try catch rethrow macro * General fixes * fix play key not working * Further fixes --------- Co-authored-by: Aaron Kimbre --- CMakeLists.txt | 12 +- dAuthServer/AuthServer.cpp | 33 +-- dChatFilter/dChatFilter.cpp | 12 +- dChatServer/ChatPacketHandler.cpp | 90 ++---- dChatServer/ChatServer.cpp | 33 +-- dChatServer/PlayerContainer.cpp | 18 +- dCommon/BrickByBrickFix.cpp | 86 ++---- .../CDClientDatabase.cpp | 0 .../{ => CDClientDatabase}/CDClientDatabase.h | 0 .../CDClientManager.cpp | 0 .../{ => CDClientDatabase}/CDClientManager.h | 0 .../CDClientTables}/CDActivitiesTable.cpp | 0 .../CDClientTables}/CDActivitiesTable.h | 0 .../CDActivityRewardsTable.cpp | 0 .../CDClientTables}/CDActivityRewardsTable.h | 0 .../CDClientTables}/CDAnimationsTable.cpp | 0 .../CDClientTables}/CDAnimationsTable.h | 0 .../CDBehaviorParameterTable.cpp | 0 .../CDBehaviorParameterTable.h | 0 .../CDBehaviorTemplateTable.cpp | 0 .../CDClientTables}/CDBehaviorTemplateTable.h | 0 .../CDClientTables}/CDBrickIDTableTable.cpp | 0 .../CDClientTables}/CDBrickIDTableTable.h | 0 .../CDComponentsRegistryTable.cpp | 0 .../CDComponentsRegistryTable.h | 2 + .../CDClientTables}/CDCurrencyTableTable.cpp | 0 .../CDClientTables}/CDCurrencyTableTable.h | 0 .../CDDestructibleComponentTable.cpp | 0 .../CDDestructibleComponentTable.h | 0 .../CDClientTables}/CDEmoteTable.cpp | 0 .../CDClientTables}/CDEmoteTable.h | 0 .../CDClientTables}/CDFeatureGatingTable.cpp | 0 .../CDClientTables}/CDFeatureGatingTable.h | 0 .../CDInventoryComponentTable.cpp | 0 .../CDInventoryComponentTable.h | 0 .../CDClientTables}/CDItemComponentTable.cpp | 0 .../CDClientTables}/CDItemComponentTable.h | 0 .../CDClientTables}/CDItemSetSkillsTable.cpp | 0 .../CDClientTables}/CDItemSetSkillsTable.h | 0 .../CDClientTables}/CDItemSetsTable.cpp | 0 .../CDClientTables}/CDItemSetsTable.h | 0 .../CDLevelProgressionLookupTable.cpp | 0 .../CDLevelProgressionLookupTable.h | 0 .../CDClientTables}/CDLootMatrixTable.cpp | 0 .../CDClientTables}/CDLootMatrixTable.h | 0 .../CDClientTables}/CDLootTableTable.cpp | 0 .../CDClientTables}/CDLootTableTable.h | 0 .../CDClientTables}/CDMissionEmailTable.cpp | 0 .../CDClientTables}/CDMissionEmailTable.h | 0 .../CDMissionNPCComponentTable.cpp | 0 .../CDMissionNPCComponentTable.h | 0 .../CDClientTables}/CDMissionTasksTable.cpp | 0 .../CDClientTables}/CDMissionTasksTable.h | 0 .../CDClientTables}/CDMissionsTable.cpp | 0 .../CDClientTables}/CDMissionsTable.h | 0 .../CDMovementAIComponentTable.cpp | 0 .../CDMovementAIComponentTable.h | 0 .../CDClientTables}/CDObjectSkillsTable.cpp | 0 .../CDClientTables}/CDObjectSkillsTable.h | 0 .../CDClientTables}/CDObjectsTable.cpp | 0 .../CDClientTables}/CDObjectsTable.h | 0 .../CDPackageComponentTable.cpp | 0 .../CDClientTables}/CDPackageComponentTable.h | 0 .../CDPhysicsComponentTable.cpp | 0 .../CDClientTables}/CDPhysicsComponentTable.h | 0 .../CDPropertyEntranceComponentTable.cpp | 0 .../CDPropertyEntranceComponentTable.h | 0 .../CDPropertyTemplateTable.cpp | 0 .../CDClientTables}/CDPropertyTemplateTable.h | 0 .../CDProximityMonitorComponentTable.cpp | 0 .../CDProximityMonitorComponentTable.h | 0 .../CDRailActivatorComponent.cpp | 0 .../CDRailActivatorComponent.h | 0 .../CDClientTables}/CDRarityTableTable.cpp | 0 .../CDClientTables}/CDRarityTableTable.h | 0 .../CDRebuildComponentTable.cpp | 0 .../CDClientTables}/CDRebuildComponentTable.h | 0 .../CDClientTables}/CDRewardsTable.cpp | 0 .../CDClientTables}/CDRewardsTable.h | 0 .../CDScriptComponentTable.cpp | 0 .../CDClientTables}/CDScriptComponentTable.h | 0 .../CDClientTables}/CDSkillBehaviorTable.cpp | 0 .../CDClientTables}/CDSkillBehaviorTable.h | 0 .../CDClientTables}/CDTable.h | 0 .../CDVendorComponentTable.cpp | 0 .../CDClientTables}/CDVendorComponentTable.h | 0 .../CDClientTables}/CDZoneTableTable.cpp | 0 .../CDClientTables}/CDZoneTableTable.h | 0 .../CDClientTables}/CMakeLists.txt | 2 +- dDatabase/CDClientDatabase/CMakeLists.txt | 12 + dDatabase/CMakeLists.txt | 17 +- dDatabase/Database.cpp | 118 -------- dDatabase/Database.h | 31 -- dDatabase/GameDatabase/CMakeLists.txt | 12 + dDatabase/GameDatabase/Database.cpp | 40 +++ dDatabase/GameDatabase/Database.h | 12 + dDatabase/GameDatabase/GameDatabase.h | 55 ++++ dDatabase/GameDatabase/ITables/IAccounts.h | 37 +++ dDatabase/GameDatabase/ITables/IActivityLog.h | 19 ++ dDatabase/GameDatabase/ITables/IBugReports.h | 20 ++ dDatabase/GameDatabase/ITables/ICharInfo.h | 49 ++++ dDatabase/GameDatabase/ITables/ICharXml.h | 20 ++ dDatabase/GameDatabase/ITables/ICommandLog.h | 14 + dDatabase/GameDatabase/ITables/IFriends.h | 32 ++ dDatabase/GameDatabase/ITables/ILeaderboard.h | 14 + dDatabase/GameDatabase/ITables/IMail.h | 54 ++++ .../GameDatabase/ITables/IMigrationHistory.h | 17 ++ .../GameDatabase/ITables/IObjectIdTracker.h | 19 ++ dDatabase/GameDatabase/ITables/IPetNames.h | 21 ++ dDatabase/GameDatabase/ITables/IPlayKeys.h | 15 + .../ITables/IPlayerCheatDetections.h | 20 ++ dDatabase/GameDatabase/ITables/IProperty.h | 38 +++ .../GameDatabase/ITables/IPropertyContents.h | 40 +++ dDatabase/GameDatabase/ITables/IServers.h | 21 ++ dDatabase/GameDatabase/ITables/IUgc.h | 32 ++ .../{ => GameDatabase}/MigrationRunner.cpp | 45 +-- .../{ => GameDatabase}/MigrationRunner.h | 0 dDatabase/GameDatabase/MySQL/CMakeLists.txt | 11 + .../GameDatabase/MySQL/MySQLDatabase.cpp | 113 +++++++ dDatabase/GameDatabase/MySQL/MySQLDatabase.h | 245 ++++++++++++++++ .../GameDatabase/MySQL/Tables/Accounts.cpp | 37 +++ .../GameDatabase/MySQL/Tables/ActivityLog.cpp | 6 + .../GameDatabase/MySQL/Tables/BugReports.cpp | 6 + .../GameDatabase/MySQL/Tables/CMakeLists.txt | 22 ++ .../GameDatabase/MySQL/Tables/CharInfo.cpp | 78 +++++ .../GameDatabase/MySQL/Tables/CharXml.cpp | 19 ++ .../GameDatabase/MySQL/Tables/CommandLog.cpp | 5 + .../GameDatabase/MySQL/Tables/Friends.cpp | 73 +++++ .../GameDatabase/MySQL/Tables/Leaderboard.cpp | 11 + dDatabase/GameDatabase/MySQL/Tables/Mail.cpp | 83 ++++++ .../MySQL/Tables/MigrationHistory.cpp | 13 + .../MySQL/Tables/ObjectIdTracker.cpp | 17 ++ .../GameDatabase/MySQL/Tables/PetNames.cpp | 26 ++ .../GameDatabase/MySQL/Tables/PlayKeys.cpp | 11 + .../MySQL/Tables/PlayerCheatDetections.cpp | 7 + .../GameDatabase/MySQL/Tables/Property.cpp | 57 ++++ .../MySQL/Tables/PropertyContents.cpp | 54 ++++ .../GameDatabase/MySQL/Tables/Servers.cpp | 23 ++ dDatabase/GameDatabase/MySQL/Tables/Ugc.cpp | 71 +++++ dGame/Character.cpp | 111 ++----- dGame/Character.h | 1 + dGame/LeaderboardManager.cpp | 10 +- dGame/User.cpp | 45 +-- dGame/UserManager.cpp | 180 ++---------- dGame/UserManager.h | 1 - dGame/dComponents/CharacterComponent.cpp | 2 +- dGame/dComponents/DonationVendorComponent.cpp | 6 +- dGame/dComponents/PetComponent.cpp | 29 +- .../dComponents/PropertyEntranceComponent.cpp | 14 +- .../PropertyManagementComponent.cpp | 277 +++++------------- dGame/dGameMessages/GameMessageHandler.h | 2 +- dGame/dGameMessages/GameMessages.cpp | 129 ++------ dGame/dUtilities/CheatDetection.cpp | 25 +- dGame/dUtilities/Mail.cpp | 173 ++++------- dGame/dUtilities/SlashCommandHandler.cpp | 103 ++----- dMasterServer/MasterServer.cpp | 60 +--- dMasterServer/ObjectIDManager.cpp | 49 +--- dMasterServer/ObjectIDManager.h | 2 +- dNet/AuthPackets.cpp | 95 +----- dNet/ClientPackets.cpp | 27 +- dWorldServer/WorldServer.cpp | 189 ++++-------- 161 files changed, 2114 insertions(+), 1516 deletions(-) rename dDatabase/{ => CDClientDatabase}/CDClientDatabase.cpp (100%) rename dDatabase/{ => CDClientDatabase}/CDClientDatabase.h (100%) rename dDatabase/{ => CDClientDatabase}/CDClientManager.cpp (100%) rename dDatabase/{ => CDClientDatabase}/CDClientManager.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDActivitiesTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDActivitiesTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDActivityRewardsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDActivityRewardsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDAnimationsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDAnimationsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDBehaviorParameterTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDBehaviorParameterTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDBehaviorTemplateTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDBehaviorTemplateTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDBrickIDTableTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDBrickIDTableTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDComponentsRegistryTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDComponentsRegistryTable.h (96%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDCurrencyTableTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDCurrencyTableTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDDestructibleComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDDestructibleComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDEmoteTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDEmoteTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDFeatureGatingTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDFeatureGatingTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDInventoryComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDInventoryComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDItemComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDItemComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDItemSetSkillsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDItemSetSkillsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDItemSetsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDItemSetsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDLevelProgressionLookupTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDLevelProgressionLookupTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDLootMatrixTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDLootMatrixTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDLootTableTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDLootTableTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionEmailTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionEmailTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionNPCComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionNPCComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionTasksTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionTasksTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMissionsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMovementAIComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDMovementAIComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDObjectSkillsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDObjectSkillsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDObjectsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDObjectsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPackageComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPackageComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPhysicsComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPhysicsComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPropertyEntranceComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPropertyEntranceComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPropertyTemplateTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDPropertyTemplateTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDProximityMonitorComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDProximityMonitorComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRailActivatorComponent.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRailActivatorComponent.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRarityTableTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRarityTableTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRebuildComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRebuildComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRewardsTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDRewardsTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDScriptComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDScriptComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDSkillBehaviorTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDSkillBehaviorTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDVendorComponentTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDVendorComponentTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDZoneTableTable.cpp (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CDZoneTableTable.h (100%) rename dDatabase/{Tables => CDClientDatabase/CDClientTables}/CMakeLists.txt (93%) create mode 100644 dDatabase/CDClientDatabase/CMakeLists.txt delete mode 100644 dDatabase/Database.cpp delete mode 100644 dDatabase/Database.h create mode 100644 dDatabase/GameDatabase/CMakeLists.txt create mode 100644 dDatabase/GameDatabase/Database.cpp create mode 100644 dDatabase/GameDatabase/Database.h create mode 100644 dDatabase/GameDatabase/GameDatabase.h create mode 100644 dDatabase/GameDatabase/ITables/IAccounts.h create mode 100644 dDatabase/GameDatabase/ITables/IActivityLog.h create mode 100644 dDatabase/GameDatabase/ITables/IBugReports.h create mode 100644 dDatabase/GameDatabase/ITables/ICharInfo.h create mode 100644 dDatabase/GameDatabase/ITables/ICharXml.h create mode 100644 dDatabase/GameDatabase/ITables/ICommandLog.h create mode 100644 dDatabase/GameDatabase/ITables/IFriends.h create mode 100644 dDatabase/GameDatabase/ITables/ILeaderboard.h create mode 100644 dDatabase/GameDatabase/ITables/IMail.h create mode 100644 dDatabase/GameDatabase/ITables/IMigrationHistory.h create mode 100644 dDatabase/GameDatabase/ITables/IObjectIdTracker.h create mode 100644 dDatabase/GameDatabase/ITables/IPetNames.h create mode 100644 dDatabase/GameDatabase/ITables/IPlayKeys.h create mode 100644 dDatabase/GameDatabase/ITables/IPlayerCheatDetections.h create mode 100644 dDatabase/GameDatabase/ITables/IProperty.h create mode 100644 dDatabase/GameDatabase/ITables/IPropertyContents.h create mode 100644 dDatabase/GameDatabase/ITables/IServers.h create mode 100644 dDatabase/GameDatabase/ITables/IUgc.h rename dDatabase/{ => GameDatabase}/MigrationRunner.cpp (73%) rename dDatabase/{ => GameDatabase}/MigrationRunner.h (100%) create mode 100644 dDatabase/GameDatabase/MySQL/CMakeLists.txt create mode 100644 dDatabase/GameDatabase/MySQL/MySQLDatabase.cpp create mode 100644 dDatabase/GameDatabase/MySQL/MySQLDatabase.h create mode 100644 dDatabase/GameDatabase/MySQL/Tables/Accounts.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/ActivityLog.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/BugReports.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt create mode 100644 dDatabase/GameDatabase/MySQL/Tables/CharInfo.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/CharXml.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/CommandLog.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/Friends.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/Leaderboard.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/Mail.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/MigrationHistory.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/ObjectIdTracker.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/PetNames.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/PlayKeys.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/PlayerCheatDetections.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/Property.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/PropertyContents.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/Servers.cpp create mode 100644 dDatabase/GameDatabase/MySQL/Tables/Ugc.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f6d240a..635f5f44 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,7 +214,12 @@ set(INCLUDED_DIRECTORIES "dNavigation/dTerrain" "dZoneManager" "dDatabase" - "dDatabase/Tables" + "dDatabase/CDClientDatabase" + "dDatabase/CDClientDatabase/CDClientTables" + "dDatabase/GameDatabase" + "dDatabase/GameDatabase/ITables" + "dDatabase/GameDatabase/MySQL" + "dDatabase/GameDatabase/MySQL/Tables" "dNet" "dScripts" "dScripts/02_server" @@ -329,8 +334,9 @@ add_subdirectory(thirdparty) file( GLOB HEADERS_DDATABASE LIST_DIRECTORIES false - ${PROJECT_SOURCE_DIR}/dDatabase/*.h - ${PROJECT_SOURCE_DIR}/dDatabase/Tables/*.h + ${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/*.h + ${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/CDClientTables/*.h + ${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/ITables/*.h ${PROJECT_SOURCE_DIR}/thirdparty/SQLite/*.h ) diff --git a/dAuthServer/AuthServer.cpp b/dAuthServer/AuthServer.cpp index a18657ca..c6d434b3 100644 --- a/dAuthServer/AuthServer.cpp +++ b/dAuthServer/AuthServer.cpp @@ -55,14 +55,8 @@ int main(int argc, char** argv) { LOG("Version: %i.%i", PROJECT_VERSION_MAJOR, PROJECT_VERSION_MINOR); LOG("Compiled on: %s", __TIMESTAMP__); - //Connect to the MySQL Database - std::string mysql_host = Game::config->GetValue("mysql_host"); - std::string mysql_database = Game::config->GetValue("mysql_database"); - std::string mysql_username = Game::config->GetValue("mysql_username"); - std::string mysql_password = Game::config->GetValue("mysql_password"); - try { - Database::Connect(mysql_host, mysql_database, mysql_username, mysql_password); + Database::Connect(); } catch (sql::SQLException& ex) { LOG("Got an error while connecting to the database: %s", ex.what()); Database::Destroy("AuthServer"); @@ -74,15 +68,12 @@ int main(int argc, char** argv) { //Find out the master's IP: std::string masterIP; uint32_t masterPort = 1500; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT ip, port FROM servers WHERE name='master';"); - auto res = stmt->executeQuery(); - while (res->next()) { - masterIP = res->getString(1).c_str(); - masterPort = res->getInt(2); - } - delete res; - delete stmt; + auto masterInfo = Database::Get()->GetMasterInfo(); + if (masterInfo) { + masterIP = masterInfo->ip; + masterPort = masterInfo->port; + } Game::randomEngine = std::mt19937(time(0)); @@ -134,16 +125,12 @@ int main(int argc, char** argv) { //Find out the master's IP for absolutely no reason: std::string masterIP; uint32_t masterPort; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT ip, port FROM servers WHERE name='master';"); - auto res = stmt->executeQuery(); - while (res->next()) { - masterIP = res->getString(1).c_str(); - masterPort = res->getInt(2); + auto masterInfo = Database::Get()->GetMasterInfo(); + if (masterInfo) { + masterIP = masterInfo->ip; + masterPort = masterInfo->port; } - delete res; - delete stmt; - framesSinceLastSQLPing = 0; } else framesSinceLastSQLPing++; diff --git a/dChatFilter/dChatFilter.cpp b/dChatFilter/dChatFilter.cpp index 8d2015b0..6e81db3b 100644 --- a/dChatFilter/dChatFilter.cpp +++ b/dChatFilter/dChatFilter.cpp @@ -32,15 +32,11 @@ dChatFilter::dChatFilter(const std::string& filepath, bool dontGenerateDCF) { } //Read player names that are ok as well: - auto stmt = Database::CreatePreppedStmt("select name from charinfo;"); - auto res = stmt->executeQuery(); - while (res->next()) { - std::string line = res->getString(1).c_str(); - std::transform(line.begin(), line.end(), line.begin(), ::tolower); //Transform to lowercase - m_ApprovedWords.push_back(CalculateHash(line)); + auto approvedNames = Database::Get()->GetApprovedCharacterNames(); + for (auto& name : approvedNames) { + std::transform(name.begin(), name.end(), name.begin(), ::tolower); //Transform to lowercase + m_ApprovedWords.push_back(CalculateHash(name)); } - delete res; - delete stmt; } dChatFilter::~dChatFilter() { diff --git a/dChatServer/ChatPacketHandler.cpp b/dChatServer/ChatPacketHandler.cpp index f9ab18c9..0a3caa8e 100644 --- a/dChatServer/ChatPacketHandler.cpp +++ b/dChatServer/ChatPacketHandler.cpp @@ -30,32 +30,17 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { auto player = playerContainer.GetPlayerData(playerID); if (!player) return; - //Get our friends list from the Db. Using a derived table since the friend of a player can be in either column. - std::unique_ptr stmt(Database::CreatePreppedStmt( - "SELECT fr.requested_player, best_friend, ci.name FROM " - "(SELECT CASE " - "WHEN player_id = ? THEN friend_id " - "WHEN friend_id = ? THEN player_id " - "END AS requested_player, best_friend FROM friends) AS fr " - "JOIN charinfo AS ci ON ci.id = fr.requested_player " - "WHERE fr.requested_player IS NOT NULL AND fr.requested_player != ?;")); - stmt->setUInt(1, static_cast(playerID)); - stmt->setUInt(2, static_cast(playerID)); - stmt->setUInt(3, static_cast(playerID)); - - std::vector friends; - - std::unique_ptr res(stmt->executeQuery()); - while (res->next()) { + auto friendsList = Database::Get()->GetFriendsList(playerID); + for (const auto& friendData : friendsList) { FriendData fd; fd.isFTP = false; // not a thing in DLU - fd.friendID = res->getUInt(1); + fd.friendID = friendData.friendID; GeneralUtils::SetBit(fd.friendID, eObjectBits::PERSISTENT); GeneralUtils::SetBit(fd.friendID, eObjectBits::CHARACTER); - fd.isBestFriend = res->getInt(2) == 3; //0 = friends, 1 = left_requested, 2 = right_requested, 3 = both_accepted - are now bffs + fd.isBestFriend = friendData.isBestFriend; //0 = friends, 1 = left_requested, 2 = right_requested, 3 = both_accepted - are now bffs if (fd.isBestFriend) player->countOfBestFriends += 1; - fd.friendName = res->getString(3); + fd.friendName = friendData.friendName; //Now check if they're online: auto fr = playerContainer.GetPlayerData(fd.friendID); @@ -71,7 +56,7 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { fd.zoneID = LWOZONEID(); } - friends.push_back(fd); + player->friends.push_back(fd); } //Now, we need to send the friendlist to the server they came from: @@ -83,14 +68,12 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::GET_FRIENDS_LIST_RESPONSE); bitStream.Write(0); bitStream.Write(1); //Length of packet -- just writing one as it doesn't matter, client skips it. - bitStream.Write((uint16_t)friends.size()); + bitStream.Write((uint16_t)player->friends.size()); - for (auto& data : friends) { + for (auto& data : player->friends) { data.Serialize(bitStream); } - player->friends = friends; - SystemAddress sysAddr = player->sysAddr; SEND_PACKET; } @@ -152,35 +135,26 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { // If at this point we dont have a target, then they arent online and we cant send the request. // Send the response code that corresponds to what the error is. if (!requestee) { - std::unique_ptr nameQuery(Database::CreatePreppedStmt("SELECT name from charinfo where name = ?;")); - nameQuery->setString(1, playerName); - std::unique_ptr result(nameQuery->executeQuery()); - requestee.reset(new PlayerData()); requestee->playerName = playerName; + auto responseType = Database::Get()->GetCharacterInfo(playerName) + ? eAddFriendResponseType::NOTONLINE + : eAddFriendResponseType::INVALIDCHARACTER; - SendFriendResponse(requestor, requestee.get(), result->next() ? eAddFriendResponseType::NOTONLINE : eAddFriendResponseType::INVALIDCHARACTER); + SendFriendResponse(requestor, requestee.get(), responseType); return; } if (isBestFriendRequest) { - std::unique_ptr friendUpdate(Database::CreatePreppedStmt("SELECT * FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?) LIMIT 1;")); - friendUpdate->setUInt(1, static_cast(requestorPlayerID)); - friendUpdate->setUInt(2, static_cast(requestee->playerID)); - friendUpdate->setUInt(3, static_cast(requestee->playerID)); - friendUpdate->setUInt(4, static_cast(requestorPlayerID)); - std::unique_ptr result(friendUpdate->executeQuery()); - LWOOBJID queryPlayerID = LWOOBJID_EMPTY; - LWOOBJID queryFriendID = LWOOBJID_EMPTY; uint8_t oldBestFriendStatus{}; uint8_t bestFriendStatus{}; - - if (result->next()) { + auto bestFriendInfo = Database::Get()->GetBestFriendStatus(requestorPlayerID, requestee->playerID); + if (bestFriendInfo) { // Get the IDs - queryPlayerID = result->getInt(1); - queryFriendID = result->getInt(2); - oldBestFriendStatus = result->getInt(3); + LWOOBJID queryPlayerID = bestFriendInfo->playerCharacterId; + LWOOBJID queryFriendID = bestFriendInfo->friendCharacterId; + oldBestFriendStatus = bestFriendInfo->bestFriendStatus; bestFriendStatus = oldBestFriendStatus; // Set the bits @@ -211,13 +185,7 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { } } else { // Then update the database with this new info. - std::unique_ptr updateQuery(Database::CreatePreppedStmt("UPDATE friends SET best_friend = ? WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?) LIMIT 1;")); - updateQuery->setUInt(1, bestFriendStatus); - updateQuery->setUInt(2, static_cast(requestorPlayerID)); - updateQuery->setUInt(3, static_cast(requestee->playerID)); - updateQuery->setUInt(4, static_cast(requestee->playerID)); - updateQuery->setUInt(5, static_cast(requestorPlayerID)); - updateQuery->executeUpdate(); + Database::Get()->SetBestFriendStatus(requestorPlayerID, requestee->playerID, bestFriendStatus); // Sent the best friend update here if the value is 3 if (bestFriendStatus == 3U) { requestee->countOfBestFriends += 1; @@ -319,11 +287,7 @@ void ChatPacketHandler::HandleFriendResponse(Packet* packet) { requesteeData.isOnline = true; requestor->friends.push_back(requesteeData); - std::unique_ptr statement(Database::CreatePreppedStmt("INSERT IGNORE INTO `friends` (`player_id`, `friend_id`, `best_friend`) VALUES (?,?,?);")); - statement->setUInt(1, static_cast(requestor->playerID)); - statement->setUInt(2, static_cast(requestee->playerID)); - statement->setInt(3, 0); - statement->execute(); + Database::Get()->AddFriend(requestor->playerID, requestee->playerID); } if (serverResponseCode != eAddFriendResponseType::DECLINED) SendFriendResponse(requestor, requestee, serverResponseCode, isAlreadyBestFriends); @@ -338,25 +302,17 @@ void ChatPacketHandler::HandleRemoveFriend(Packet* packet) { //we'll have to query the db here to find the user, since you can delete them while they're offline. //First, we need to find their ID: - std::unique_ptr stmt(Database::CreatePreppedStmt("SELECT id FROM charinfo WHERE name=? LIMIT 1;")); - stmt->setString(1, friendName.c_str()); - LWOOBJID friendID = 0; - std::unique_ptr res(stmt->executeQuery()); - while (res->next()) { - friendID = res->getUInt(1); + auto friendIdResult = Database::Get()->GetCharacterInfo(friendName); + if (friendIdResult) { + friendID = friendIdResult->id; } // Convert friendID to LWOOBJID GeneralUtils::SetBit(friendID, eObjectBits::PERSISTENT); GeneralUtils::SetBit(friendID, eObjectBits::CHARACTER); - std::unique_ptr deletestmt(Database::CreatePreppedStmt("DELETE FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?) LIMIT 1;")); - deletestmt->setUInt(1, static_cast(playerID)); - deletestmt->setUInt(2, static_cast(friendID)); - deletestmt->setUInt(3, static_cast(friendID)); - deletestmt->setUInt(4, static_cast(playerID)); - deletestmt->execute(); + Database::Get()->RemoveFriend(playerID, friendID); //Now, we need to send an update to notify the sender (and possibly, receiver) that their friendship has been ended: auto goonA = playerContainer.GetPlayerData(playerID); diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 6fb54594..5fc861b6 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -78,13 +78,8 @@ int main(int argc, char** argv) { } //Connect to the MySQL Database - std::string mysql_host = Game::config->GetValue("mysql_host"); - std::string mysql_database = Game::config->GetValue("mysql_database"); - std::string mysql_username = Game::config->GetValue("mysql_username"); - std::string mysql_password = Game::config->GetValue("mysql_password"); - try { - Database::Connect(mysql_host, mysql_database, mysql_username, mysql_password); + Database::Connect(); } catch (sql::SQLException& ex) { LOG("Got an error while connecting to the database: %s", ex.what()); Database::Destroy("ChatServer"); @@ -96,16 +91,11 @@ int main(int argc, char** argv) { //Find out the master's IP: std::string masterIP; uint32_t masterPort = 1000; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT ip, port FROM servers WHERE name='master';"); - auto res = stmt->executeQuery(); - while (res->next()) { - masterIP = res->getString(1).c_str(); - masterPort = res->getInt(2); + auto masterInfo = Database::Get()->GetMasterInfo(); + if (masterInfo) { + masterIP = masterInfo->ip; + masterPort = masterInfo->port; } - - delete res; - delete stmt; - //It's safe to pass 'localhost' here, as the IP is only used as the external IP. uint32_t maxClients = 50; uint32_t ourPort = 1501; @@ -158,15 +148,12 @@ int main(int argc, char** argv) { //Find out the master's IP for absolutely no reason: std::string masterIP; uint32_t masterPort; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT ip, port FROM servers WHERE name='master';"); - auto res = stmt->executeQuery(); - while (res->next()) { - masterIP = res->getString(1).c_str(); - masterPort = res->getInt(2); - } - delete res; - delete stmt; + auto masterInfo = Database::Get()->GetMasterInfo(); + if (masterInfo) { + masterIP = masterInfo->ip; + masterPort = masterInfo->port; + } framesSinceLastSQLPing = 0; } else framesSinceLastSQLPing++; diff --git a/dChatServer/PlayerContainer.cpp b/dChatServer/PlayerContainer.cpp index bb14a096..8b9eb744 100644 --- a/dChatServer/PlayerContainer.cpp +++ b/dChatServer/PlayerContainer.cpp @@ -48,14 +48,7 @@ void PlayerContainer::InsertPlayer(Packet* packet) { m_Players.insert(std::make_pair(data->playerID, data)); LOG("Added user: %s (%llu), zone: %i", data->playerName.c_str(), data->playerID, data->zoneID.GetMapID()); - auto* insertLog = Database::CreatePreppedStmt("INSERT INTO activity_log (character_id, activity, time, map_id) VALUES (?, ?, ?, ?);"); - - insertLog->setInt(1, data->playerID); - insertLog->setInt(2, 0); - insertLog->setUInt64(3, time(nullptr)); - insertLog->setInt(4, data->zoneID.GetMapID()); - - insertLog->executeUpdate(); + Database::Get()->UpdateActivityLog(data->playerID, eActivityType::PlayerLoggedIn, data->zoneID.GetMapID()); } void PlayerContainer::RemovePlayer(Packet* packet) { @@ -92,14 +85,7 @@ void PlayerContainer::RemovePlayer(Packet* packet) { LOG("Removed user: %llu", playerID); m_Players.erase(playerID); - auto* insertLog = Database::CreatePreppedStmt("INSERT INTO activity_log (character_id, activity, time, map_id) VALUES (?, ?, ?, ?);"); - - insertLog->setInt(1, playerID); - insertLog->setInt(2, 1); - insertLog->setUInt64(3, time(nullptr)); - insertLog->setInt(4, player->zoneID.GetMapID()); - - insertLog->executeUpdate(); + Database::Get()->UpdateActivityLog(playerID, eActivityType::PlayerLoggedOut, player->zoneID.GetMapID()); } void PlayerContainer::MuteUpdate(Packet* packet) { diff --git a/dCommon/BrickByBrickFix.cpp b/dCommon/BrickByBrickFix.cpp index d9b589c1..f8a9e022 100644 --- a/dCommon/BrickByBrickFix.cpp +++ b/dCommon/BrickByBrickFix.cpp @@ -13,9 +13,8 @@ //! Forward declarations -std::unique_ptr GetModelsFromDatabase(); void WriteSd0Magic(char* input, uint32_t chunkSize); -bool CheckSd0Magic(sql::Blob* streamToCheck); +bool CheckSd0Magic(std::istream& streamToCheck); /** * @brief Truncates all models with broken data from the database. @@ -24,28 +23,24 @@ bool CheckSd0Magic(sql::Blob* streamToCheck); */ uint32_t BrickByBrickFix::TruncateBrokenBrickByBrickXml() { uint32_t modelsTruncated{}; - auto modelsToTruncate = GetModelsFromDatabase(); - bool previousCommitValue = Database::GetAutoCommit(); - Database::SetAutoCommit(false); - while (modelsToTruncate->next()) { - std::unique_ptr ugcModelToDelete(Database::CreatePreppedStmt("DELETE FROM ugc WHERE ugc.id = ?;")); - std::unique_ptr pcModelToDelete(Database::CreatePreppedStmt("DELETE FROM properties_contents WHERE ugc_id = ?;")); + auto modelsToTruncate = Database::Get()->GetAllUgcModels(); + bool previousCommitValue = Database::Get()->GetAutoCommit(); + Database::Get()->SetAutoCommit(false); + for (auto& model : modelsToTruncate) { std::string completeUncompressedModel{}; uint32_t chunkCount{}; - uint64_t modelId = modelsToTruncate->getInt(1); - std::unique_ptr modelAsSd0(modelsToTruncate->getBlob(2)); // Check that header is sd0 by checking for the sd0 magic. - if (CheckSd0Magic(modelAsSd0.get())) { + if (CheckSd0Magic(model.lxfmlData)) { while (true) { uint32_t chunkSize{}; - modelAsSd0->read(reinterpret_cast(&chunkSize), sizeof(uint32_t)); // Extract chunk size from istream + model.lxfmlData.read(reinterpret_cast(&chunkSize), sizeof(uint32_t)); // Extract chunk size from istream // Check if good here since if at the end of an sd0 file, this will have eof flagged. - if (!modelAsSd0->good()) break; + if (!model.lxfmlData.good()) break; std::unique_ptr compressedChunk(new uint8_t[chunkSize]); for (uint32_t i = 0; i < chunkSize; i++) { - compressedChunk[i] = modelAsSd0->get(); + compressedChunk[i] = model.lxfmlData.get(); } // Ignore the valgrind warning about uninitialized values. These are discarded later when we know the actual uncompressed size. @@ -59,7 +54,7 @@ uint32_t BrickByBrickFix::TruncateBrokenBrickByBrickXml() { completeUncompressedModel.append((char*)uncompressedChunk.get()); completeUncompressedModel.resize(previousSize + actualUncompressedSize); } else { - LOG("Failed to inflate chunk %i for model %llu. Error: %i", chunkCount, modelId, err); + LOG("Failed to inflate chunk %i for model %llu. Error: %i", chunkCount, model.id, err); break; } chunkCount++; @@ -75,26 +70,20 @@ uint32_t BrickByBrickFix::TruncateBrokenBrickByBrickXml() { "", completeUncompressedModel.length() >= 15 ? completeUncompressedModel.length() - 15 : 0) == std::string::npos ) { - LOG("Brick-by-brick model %llu will be deleted!", modelId); - ugcModelToDelete->setInt64(1, modelsToTruncate->getInt64(1)); - pcModelToDelete->setInt64(1, modelsToTruncate->getInt64(1)); - ugcModelToDelete->execute(); - pcModelToDelete->execute(); + LOG("Brick-by-brick model %llu will be deleted!", model.id); + Database::Get()->DeleteUgcModelData(model.id); modelsTruncated++; } } } else { - LOG("Brick-by-brick model %llu will be deleted!", modelId); - ugcModelToDelete->setInt64(1, modelsToTruncate->getInt64(1)); - pcModelToDelete->setInt64(1, modelsToTruncate->getInt64(1)); - ugcModelToDelete->execute(); - pcModelToDelete->execute(); + LOG("Brick-by-brick model %llu will be deleted!", model.id); + Database::Get()->DeleteUgcModelData(model.id); modelsTruncated++; } } - Database::Commit(); - Database::SetAutoCommit(previousCommitValue); + Database::Get()->Commit(); + Database::Get()->SetAutoCommit(previousCommitValue); return modelsTruncated; } @@ -106,21 +95,17 @@ uint32_t BrickByBrickFix::TruncateBrokenBrickByBrickXml() { */ uint32_t BrickByBrickFix::UpdateBrickByBrickModelsToSd0() { uint32_t updatedModels = 0; - auto modelsToUpdate = GetModelsFromDatabase(); - auto previousAutoCommitState = Database::GetAutoCommit(); - Database::SetAutoCommit(false); - std::unique_ptr insertionStatement(Database::CreatePreppedStmt("UPDATE ugc SET lxfml = ? WHERE id = ?;")); - while (modelsToUpdate->next()) { - int64_t modelId = modelsToUpdate->getInt64(1); - std::unique_ptr oldLxfml(modelsToUpdate->getBlob(2)); + auto modelsToUpdate = Database::Get()->GetAllUgcModels(); + auto previousAutoCommitState = Database::Get()->GetAutoCommit(); + Database::Get()->SetAutoCommit(false); + for (auto& model : modelsToUpdate) { // Check if the stored blob starts with zlib magic (0x78 0xDA - best compression of zlib) // If it does, convert it to sd0. - if (oldLxfml->get() == 0x78 && oldLxfml->get() == 0xDA) { - + if (model.lxfmlData.get() == 0x78 && model.lxfmlData.get() == 0xDA) { // Get and save size of zlib compressed chunk. - oldLxfml->seekg(0, std::ios::end); - uint32_t oldLxfmlSize = static_cast(oldLxfml->tellg()); - oldLxfml->seekg(0); + model.lxfmlData.seekg(0, std::ios::end); + uint32_t oldLxfmlSize = static_cast(model.lxfmlData.tellg()); + model.lxfmlData.seekg(0); // Allocate 9 extra bytes. 5 for sd0 magic, 4 for the only zlib compressed size. uint32_t oldLxfmlSizeWithHeader = oldLxfmlSize + 9; @@ -128,34 +113,27 @@ uint32_t BrickByBrickFix::UpdateBrickByBrickModelsToSd0() { WriteSd0Magic(sd0ConvertedModel.get(), oldLxfmlSize); for (uint32_t i = 9; i < oldLxfmlSizeWithHeader; i++) { - sd0ConvertedModel.get()[i] = oldLxfml->get(); + sd0ConvertedModel.get()[i] = model.lxfmlData.get(); } std::string outputString(sd0ConvertedModel.get(), oldLxfmlSizeWithHeader); std::istringstream outputStringStream(outputString); - insertionStatement->setBlob(1, static_cast(&outputStringStream)); - insertionStatement->setInt64(2, modelId); try { - insertionStatement->executeUpdate(); - LOG("Updated model %i to sd0", modelId); + Database::Get()->UpdateUgcModelData(model.id, outputStringStream); + LOG("Updated model %i to sd0", model.id); updatedModels++; } catch (sql::SQLException exception) { LOG("Failed to update model %i. This model should be inspected manually to see why." - "The database error is %s", modelId, exception.what()); + "The database error is %s", model.id, exception.what()); } } } - Database::Commit(); - Database::SetAutoCommit(previousAutoCommitState); + Database::Get()->Commit(); + Database::Get()->SetAutoCommit(previousAutoCommitState); return updatedModels; } -std::unique_ptr GetModelsFromDatabase() { - std::unique_ptr modelsRawDataQuery(Database::CreatePreppedStmt("SELECT id, lxfml FROM ugc;")); - return std::unique_ptr(modelsRawDataQuery->executeQuery()); -} - /** * @brief Writes sd0 magic at the front of a char* * @@ -171,6 +149,6 @@ void WriteSd0Magic(char* input, uint32_t chunkSize) { *reinterpret_cast(input + 5) = chunkSize; // Write the integer to the character array } -bool CheckSd0Magic(sql::Blob* streamToCheck) { - return streamToCheck->get() == 's' && streamToCheck->get() == 'd' && streamToCheck->get() == '0' && streamToCheck->get() == 0x01 && streamToCheck->get() == 0xFF; +bool CheckSd0Magic(std::istream& streamToCheck) { + return streamToCheck.get() == 's' && streamToCheck.get() == 'd' && streamToCheck.get() == '0' && streamToCheck.get() == 0x01 && streamToCheck.get() == 0xFF; } diff --git a/dDatabase/CDClientDatabase.cpp b/dDatabase/CDClientDatabase/CDClientDatabase.cpp similarity index 100% rename from dDatabase/CDClientDatabase.cpp rename to dDatabase/CDClientDatabase/CDClientDatabase.cpp diff --git a/dDatabase/CDClientDatabase.h b/dDatabase/CDClientDatabase/CDClientDatabase.h similarity index 100% rename from dDatabase/CDClientDatabase.h rename to dDatabase/CDClientDatabase/CDClientDatabase.h diff --git a/dDatabase/CDClientManager.cpp b/dDatabase/CDClientDatabase/CDClientManager.cpp similarity index 100% rename from dDatabase/CDClientManager.cpp rename to dDatabase/CDClientDatabase/CDClientManager.cpp diff --git a/dDatabase/CDClientManager.h b/dDatabase/CDClientDatabase/CDClientManager.h similarity index 100% rename from dDatabase/CDClientManager.h rename to dDatabase/CDClientDatabase/CDClientManager.h diff --git a/dDatabase/Tables/CDActivitiesTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.cpp similarity index 100% rename from dDatabase/Tables/CDActivitiesTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.cpp diff --git a/dDatabase/Tables/CDActivitiesTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.h similarity index 100% rename from dDatabase/Tables/CDActivitiesTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.h diff --git a/dDatabase/Tables/CDActivityRewardsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.cpp similarity index 100% rename from dDatabase/Tables/CDActivityRewardsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.cpp diff --git a/dDatabase/Tables/CDActivityRewardsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.h similarity index 100% rename from dDatabase/Tables/CDActivityRewardsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.h diff --git a/dDatabase/Tables/CDAnimationsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.cpp similarity index 100% rename from dDatabase/Tables/CDAnimationsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.cpp diff --git a/dDatabase/Tables/CDAnimationsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.h similarity index 100% rename from dDatabase/Tables/CDAnimationsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.h diff --git a/dDatabase/Tables/CDBehaviorParameterTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorParameterTable.cpp similarity index 100% rename from dDatabase/Tables/CDBehaviorParameterTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDBehaviorParameterTable.cpp diff --git a/dDatabase/Tables/CDBehaviorParameterTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorParameterTable.h similarity index 100% rename from dDatabase/Tables/CDBehaviorParameterTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDBehaviorParameterTable.h diff --git a/dDatabase/Tables/CDBehaviorTemplateTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.cpp similarity index 100% rename from dDatabase/Tables/CDBehaviorTemplateTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.cpp diff --git a/dDatabase/Tables/CDBehaviorTemplateTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.h similarity index 100% rename from dDatabase/Tables/CDBehaviorTemplateTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.h diff --git a/dDatabase/Tables/CDBrickIDTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.cpp similarity index 100% rename from dDatabase/Tables/CDBrickIDTableTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.cpp diff --git a/dDatabase/Tables/CDBrickIDTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.h similarity index 100% rename from dDatabase/Tables/CDBrickIDTableTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.h diff --git a/dDatabase/Tables/CDComponentsRegistryTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.cpp similarity index 100% rename from dDatabase/Tables/CDComponentsRegistryTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.cpp diff --git a/dDatabase/Tables/CDComponentsRegistryTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.h similarity index 96% rename from dDatabase/Tables/CDComponentsRegistryTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.h index fc461989..fce4f6aa 100644 --- a/dDatabase/Tables/CDComponentsRegistryTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.h @@ -3,6 +3,8 @@ // Custom Classes #include "CDTable.h" +#include + enum class eReplicaComponentType : uint32_t; struct CDComponentsRegistry { unsigned int id; //!< The LOT is used as the ID diff --git a/dDatabase/Tables/CDCurrencyTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.cpp similarity index 100% rename from dDatabase/Tables/CDCurrencyTableTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.cpp diff --git a/dDatabase/Tables/CDCurrencyTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.h similarity index 100% rename from dDatabase/Tables/CDCurrencyTableTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.h diff --git a/dDatabase/Tables/CDDestructibleComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDDestructibleComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.cpp diff --git a/dDatabase/Tables/CDDestructibleComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.h similarity index 100% rename from dDatabase/Tables/CDDestructibleComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.h diff --git a/dDatabase/Tables/CDEmoteTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.cpp similarity index 100% rename from dDatabase/Tables/CDEmoteTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.cpp diff --git a/dDatabase/Tables/CDEmoteTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.h similarity index 100% rename from dDatabase/Tables/CDEmoteTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.h diff --git a/dDatabase/Tables/CDFeatureGatingTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp similarity index 100% rename from dDatabase/Tables/CDFeatureGatingTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp diff --git a/dDatabase/Tables/CDFeatureGatingTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.h similarity index 100% rename from dDatabase/Tables/CDFeatureGatingTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.h diff --git a/dDatabase/Tables/CDInventoryComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDInventoryComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.cpp diff --git a/dDatabase/Tables/CDInventoryComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.h similarity index 100% rename from dDatabase/Tables/CDInventoryComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.h diff --git a/dDatabase/Tables/CDItemComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDItemComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.cpp diff --git a/dDatabase/Tables/CDItemComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.h similarity index 100% rename from dDatabase/Tables/CDItemComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.h diff --git a/dDatabase/Tables/CDItemSetSkillsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.cpp similarity index 100% rename from dDatabase/Tables/CDItemSetSkillsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.cpp diff --git a/dDatabase/Tables/CDItemSetSkillsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.h similarity index 100% rename from dDatabase/Tables/CDItemSetSkillsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.h diff --git a/dDatabase/Tables/CDItemSetsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.cpp similarity index 100% rename from dDatabase/Tables/CDItemSetsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.cpp diff --git a/dDatabase/Tables/CDItemSetsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.h similarity index 100% rename from dDatabase/Tables/CDItemSetsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.h diff --git a/dDatabase/Tables/CDLevelProgressionLookupTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.cpp similarity index 100% rename from dDatabase/Tables/CDLevelProgressionLookupTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.cpp diff --git a/dDatabase/Tables/CDLevelProgressionLookupTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.h similarity index 100% rename from dDatabase/Tables/CDLevelProgressionLookupTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.h diff --git a/dDatabase/Tables/CDLootMatrixTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.cpp similarity index 100% rename from dDatabase/Tables/CDLootMatrixTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.cpp diff --git a/dDatabase/Tables/CDLootMatrixTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.h similarity index 100% rename from dDatabase/Tables/CDLootMatrixTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.h diff --git a/dDatabase/Tables/CDLootTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.cpp similarity index 100% rename from dDatabase/Tables/CDLootTableTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.cpp diff --git a/dDatabase/Tables/CDLootTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.h similarity index 100% rename from dDatabase/Tables/CDLootTableTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.h diff --git a/dDatabase/Tables/CDMissionEmailTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.cpp similarity index 100% rename from dDatabase/Tables/CDMissionEmailTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.cpp diff --git a/dDatabase/Tables/CDMissionEmailTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.h similarity index 100% rename from dDatabase/Tables/CDMissionEmailTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.h diff --git a/dDatabase/Tables/CDMissionNPCComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDMissionNPCComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.cpp diff --git a/dDatabase/Tables/CDMissionNPCComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.h similarity index 100% rename from dDatabase/Tables/CDMissionNPCComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.h diff --git a/dDatabase/Tables/CDMissionTasksTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.cpp similarity index 100% rename from dDatabase/Tables/CDMissionTasksTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.cpp diff --git a/dDatabase/Tables/CDMissionTasksTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.h similarity index 100% rename from dDatabase/Tables/CDMissionTasksTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.h diff --git a/dDatabase/Tables/CDMissionsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.cpp similarity index 100% rename from dDatabase/Tables/CDMissionsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.cpp diff --git a/dDatabase/Tables/CDMissionsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.h similarity index 100% rename from dDatabase/Tables/CDMissionsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.h diff --git a/dDatabase/Tables/CDMovementAIComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDMovementAIComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.cpp diff --git a/dDatabase/Tables/CDMovementAIComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.h similarity index 100% rename from dDatabase/Tables/CDMovementAIComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.h diff --git a/dDatabase/Tables/CDObjectSkillsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.cpp similarity index 100% rename from dDatabase/Tables/CDObjectSkillsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.cpp diff --git a/dDatabase/Tables/CDObjectSkillsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.h similarity index 100% rename from dDatabase/Tables/CDObjectSkillsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.h diff --git a/dDatabase/Tables/CDObjectsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.cpp similarity index 100% rename from dDatabase/Tables/CDObjectsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.cpp diff --git a/dDatabase/Tables/CDObjectsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.h similarity index 100% rename from dDatabase/Tables/CDObjectsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.h diff --git a/dDatabase/Tables/CDPackageComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDPackageComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.cpp diff --git a/dDatabase/Tables/CDPackageComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.h similarity index 100% rename from dDatabase/Tables/CDPackageComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.h diff --git a/dDatabase/Tables/CDPhysicsComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDPhysicsComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.cpp diff --git a/dDatabase/Tables/CDPhysicsComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.h similarity index 100% rename from dDatabase/Tables/CDPhysicsComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.h diff --git a/dDatabase/Tables/CDPropertyEntranceComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDPropertyEntranceComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDPropertyEntranceComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDPropertyEntranceComponentTable.cpp diff --git a/dDatabase/Tables/CDPropertyEntranceComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDPropertyEntranceComponentTable.h similarity index 100% rename from dDatabase/Tables/CDPropertyEntranceComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDPropertyEntranceComponentTable.h diff --git a/dDatabase/Tables/CDPropertyTemplateTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDPropertyTemplateTable.cpp similarity index 100% rename from dDatabase/Tables/CDPropertyTemplateTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDPropertyTemplateTable.cpp diff --git a/dDatabase/Tables/CDPropertyTemplateTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDPropertyTemplateTable.h similarity index 100% rename from dDatabase/Tables/CDPropertyTemplateTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDPropertyTemplateTable.h diff --git a/dDatabase/Tables/CDProximityMonitorComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDProximityMonitorComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.cpp diff --git a/dDatabase/Tables/CDProximityMonitorComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.h similarity index 100% rename from dDatabase/Tables/CDProximityMonitorComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.h diff --git a/dDatabase/Tables/CDRailActivatorComponent.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRailActivatorComponent.cpp similarity index 100% rename from dDatabase/Tables/CDRailActivatorComponent.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDRailActivatorComponent.cpp diff --git a/dDatabase/Tables/CDRailActivatorComponent.h b/dDatabase/CDClientDatabase/CDClientTables/CDRailActivatorComponent.h similarity index 100% rename from dDatabase/Tables/CDRailActivatorComponent.h rename to dDatabase/CDClientDatabase/CDClientTables/CDRailActivatorComponent.h diff --git a/dDatabase/Tables/CDRarityTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.cpp similarity index 100% rename from dDatabase/Tables/CDRarityTableTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.cpp diff --git a/dDatabase/Tables/CDRarityTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.h similarity index 100% rename from dDatabase/Tables/CDRarityTableTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.h diff --git a/dDatabase/Tables/CDRebuildComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDRebuildComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.cpp diff --git a/dDatabase/Tables/CDRebuildComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.h similarity index 100% rename from dDatabase/Tables/CDRebuildComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.h diff --git a/dDatabase/Tables/CDRewardsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRewardsTable.cpp similarity index 100% rename from dDatabase/Tables/CDRewardsTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDRewardsTable.cpp diff --git a/dDatabase/Tables/CDRewardsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDRewardsTable.h similarity index 100% rename from dDatabase/Tables/CDRewardsTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDRewardsTable.h diff --git a/dDatabase/Tables/CDScriptComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDScriptComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.cpp diff --git a/dDatabase/Tables/CDScriptComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.h similarity index 100% rename from dDatabase/Tables/CDScriptComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.h diff --git a/dDatabase/Tables/CDSkillBehaviorTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.cpp similarity index 100% rename from dDatabase/Tables/CDSkillBehaviorTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.cpp diff --git a/dDatabase/Tables/CDSkillBehaviorTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.h similarity index 100% rename from dDatabase/Tables/CDSkillBehaviorTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.h diff --git a/dDatabase/Tables/CDTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDTable.h similarity index 100% rename from dDatabase/Tables/CDTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDTable.h diff --git a/dDatabase/Tables/CDVendorComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.cpp similarity index 100% rename from dDatabase/Tables/CDVendorComponentTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.cpp diff --git a/dDatabase/Tables/CDVendorComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.h similarity index 100% rename from dDatabase/Tables/CDVendorComponentTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.h diff --git a/dDatabase/Tables/CDZoneTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.cpp similarity index 100% rename from dDatabase/Tables/CDZoneTableTable.cpp rename to dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.cpp diff --git a/dDatabase/Tables/CDZoneTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.h similarity index 100% rename from dDatabase/Tables/CDZoneTableTable.h rename to dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.h diff --git a/dDatabase/Tables/CMakeLists.txt b/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt similarity index 93% rename from dDatabase/Tables/CMakeLists.txt rename to dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt index b6a02b02..43ff52b2 100644 --- a/dDatabase/Tables/CMakeLists.txt +++ b/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt @@ -1,4 +1,4 @@ -set(DDATABASE_TABLES_SOURCES "CDActivitiesTable.cpp" +set(DDATABASE_CDCLIENTDATABASE_CDCLIENTTABLES_SOURCES "CDActivitiesTable.cpp" "CDActivityRewardsTable.cpp" "CDAnimationsTable.cpp" "CDBehaviorParameterTable.cpp" diff --git a/dDatabase/CDClientDatabase/CMakeLists.txt b/dDatabase/CDClientDatabase/CMakeLists.txt new file mode 100644 index 00000000..2645c215 --- /dev/null +++ b/dDatabase/CDClientDatabase/CMakeLists.txt @@ -0,0 +1,12 @@ +set(DDATABASE_CDCLIENTDATABASE_SOURCES + "CDClientDatabase.cpp" + "CDClientManager.cpp" +) + +add_subdirectory(CDClientTables) + +foreach(file ${DDATABASE_CDCLIENTDATABASE_CDCLIENTTABLES_SOURCES}) + set(DDATABASE_CDCLIENTDATABASE_SOURCES ${DDATABASE_CDCLIENTDATABASE_SOURCES} "CDClientTables/${file}") +endforeach() + +set(DDATABASE_CDCLIENTDATABASE_SOURCES ${DDATABASE_CDCLIENTDATABASE_SOURCES} PARENT_SCOPE) diff --git a/dDatabase/CMakeLists.txt b/dDatabase/CMakeLists.txt index 9e55fbe2..20f37bec 100644 --- a/dDatabase/CMakeLists.txt +++ b/dDatabase/CMakeLists.txt @@ -1,12 +1,15 @@ -set(DDATABASE_SOURCES "CDClientDatabase.cpp" - "CDClientManager.cpp" - "Database.cpp" - "MigrationRunner.cpp") +set(DDATABASE_SOURCES) -add_subdirectory(Tables) +add_subdirectory(CDClientDatabase) -foreach(file ${DDATABASE_TABLES_SOURCES}) - set(DDATABASE_SOURCES ${DDATABASE_SOURCES} "Tables/${file}") +foreach(file ${DDATABASE_CDCLIENTDATABASE_SOURCES}) + set(DDATABASE_SOURCES ${DDATABASE_SOURCES} "CDClientDatabase/${file}") +endforeach() + +add_subdirectory(GameDatabase) + +foreach(file ${DDATABASE_GAMEDATABASE_SOURCES}) + set(DDATABASE_SOURCES ${DDATABASE_SOURCES} "GameDatabase/${file}") endforeach() add_library(dDatabase STATIC ${DDATABASE_SOURCES}) diff --git a/dDatabase/Database.cpp b/dDatabase/Database.cpp deleted file mode 100644 index 5fc76786..00000000 --- a/dDatabase/Database.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "Database.h" -#include "Game.h" -#include "dConfig.h" -#include "Logger.h" -using namespace std; - -#pragma warning (disable:4251) //Disables SQL warnings - -sql::Driver* Database::driver; -sql::Connection* Database::con; -sql::Properties Database::props; -std::string Database::database; - -void Database::Connect(const string& host, const string& database, const string& username, const string& password) { - - //To bypass debug issues: - const char* szDatabase = database.c_str(); - const char* szUsername = username.c_str(); - const char* szPassword = password.c_str(); - - driver = sql::mariadb::get_driver_instance(); - - sql::Properties properties; - // The mariadb connector is *supposed* to handle unix:// and pipe:// prefixes to hostName, but there are bugs where - // 1) it tries to parse a database from the connection string (like in tcp://localhost:3001/darkflame) based on the - // presence of a / - // 2) even avoiding that, the connector still assumes you're connecting with a tcp socket - // So, what we do in the presence of a unix socket or pipe is to set the hostname to the protocol and localhost, - // which avoids parsing errors while still ensuring the correct connection type is used, and then setting the appropriate - // property manually (which the URL parsing fails to do) - const std::string UNIX_PROTO = "unix://"; - const std::string PIPE_PROTO = "pipe://"; - if (host.find(UNIX_PROTO) == 0) { - properties["hostName"] = "unix://localhost"; - properties["localSocket"] = host.substr(UNIX_PROTO.length()).c_str(); - } else if (host.find(PIPE_PROTO) == 0) { - properties["hostName"] = "pipe://localhost"; - properties["pipe"] = host.substr(PIPE_PROTO.length()).c_str(); - } else { - properties["hostName"] = host.c_str(); - } - properties["user"] = szUsername; - properties["password"] = szPassword; - properties["autoReconnect"] = "true"; - - Database::props = properties; - Database::database = database; - - Database::Connect(); -} - -void Database::Connect() { - // `connect(const Properties& props)` segfaults in windows debug, but - // `connect(const SQLString& host, const SQLString& user, const SQLString& pwd)` doesn't handle pipes/unix sockets correctly - if (Database::props.find("localSocket") != Database::props.end() || Database::props.find("pipe") != Database::props.end()) { - con = driver->connect(Database::props); - } else { - con = driver->connect(Database::props["hostName"].c_str(), Database::props["user"].c_str(), Database::props["password"].c_str()); - } - con->setSchema(Database::database.c_str()); -} - -void Database::Destroy(std::string source, bool log) { - if (!con) return; - - if (log) { - if (source != "") LOG("Destroying MySQL connection from %s!", source.c_str()); - else LOG("Destroying MySQL connection!"); - } - - con->close(); - delete con; -} //Destroy - -sql::Statement* Database::CreateStmt() { - sql::Statement* toReturn = con->createStatement(); - return toReturn; -} //CreateStmt - -sql::PreparedStatement* Database::CreatePreppedStmt(const std::string& query) { - const char* test = query.c_str(); - size_t size = query.length(); - sql::SQLString str(test, size); - - if (!con) { - Connect(); - LOG("Trying to reconnect to MySQL"); - } - - if (!con->isValid() || con->isClosed()) { - delete con; - - con = nullptr; - - Connect(); - LOG("Trying to reconnect to MySQL from invalid or closed connection"); - } - - auto* stmt = con->prepareStatement(str); - - return stmt; -} //CreatePreppedStmt - -void Database::Commit() { - Database::con->commit(); -} - -bool Database::GetAutoCommit() { - // TODO This should not just access a pointer. A future PR should update this - // to check for null and throw an error if the connection is not valid. - return con->getAutoCommit(); -} - -void Database::SetAutoCommit(bool value) { - // TODO This should not just access a pointer. A future PR should update this - // to check for null and throw an error if the connection is not valid. - Database::con->setAutoCommit(value); -} diff --git a/dDatabase/Database.h b/dDatabase/Database.h deleted file mode 100644 index f4d13da3..00000000 --- a/dDatabase/Database.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include -#include - -class MySqlException : public std::runtime_error { -public: - MySqlException() : std::runtime_error("MySQL error!") {} - MySqlException(const std::string& msg) : std::runtime_error(msg.c_str()) {} -}; - -class Database { -private: - static sql::Driver* driver; - static sql::Connection* con; - static sql::Properties props; - static std::string database; -public: - static void Connect(const std::string& host, const std::string& database, const std::string& username, const std::string& password); - static void Connect(); - static void Destroy(std::string source = "", bool log = true); - - static sql::Statement* CreateStmt(); - static sql::PreparedStatement* CreatePreppedStmt(const std::string& query); - static void Commit(); - static bool GetAutoCommit(); - static void SetAutoCommit(bool value); - - static std::string GetDatabase() { return database; } - static sql::Properties GetProperties() { return props; } -}; diff --git a/dDatabase/GameDatabase/CMakeLists.txt b/dDatabase/GameDatabase/CMakeLists.txt new file mode 100644 index 00000000..c32007bb --- /dev/null +++ b/dDatabase/GameDatabase/CMakeLists.txt @@ -0,0 +1,12 @@ +set(DDATABASE_GAMEDATABASE_SOURCES + "Database.cpp" + "MigrationRunner.cpp" +) + +add_subdirectory(MySQL) + +foreach(file ${DDATABSE_DATABSES_MYSQL_SOURCES}) + set(DDATABASE_GAMEDATABASE_SOURCES ${DDATABASE_GAMEDATABASE_SOURCES} "MySQL/${file}") +endforeach() + +set(DDATABASE_GAMEDATABASE_SOURCES ${DDATABASE_GAMEDATABASE_SOURCES} PARENT_SCOPE) diff --git a/dDatabase/GameDatabase/Database.cpp b/dDatabase/GameDatabase/Database.cpp new file mode 100644 index 00000000..cb4f989a --- /dev/null +++ b/dDatabase/GameDatabase/Database.cpp @@ -0,0 +1,40 @@ +#include "Database.h" +#include "Game.h" +#include "dConfig.h" +#include "Logger.h" +#include "MySQLDatabase.h" +#include "DluAssert.h" + +#pragma warning (disable:4251) //Disables SQL warnings + +namespace { + GameDatabase* database = nullptr; +} + +void Database::Connect() { + if (database) { + LOG("Tried to connect to database when it's already connected!"); + return; + } + + database = new MySQLDatabase(); + database->Connect(); +} + +GameDatabase* Database::Get() { + if (!database) { + LOG("Tried to get database when it's not connected!"); + Connect(); + } + return database; +} + +void Database::Destroy(std::string source) { + if (database) { + database->Destroy(source); + delete database; + database = nullptr; + } else { + LOG("Trying to destroy database when it's not connected!"); + } +} diff --git a/dDatabase/GameDatabase/Database.h b/dDatabase/GameDatabase/Database.h new file mode 100644 index 00000000..3eb292d1 --- /dev/null +++ b/dDatabase/GameDatabase/Database.h @@ -0,0 +1,12 @@ +#pragma once + +#include +#include + +#include "GameDatabase.h" + +namespace Database { + void Connect(); + GameDatabase* Get(); + void Destroy(std::string source = ""); +}; diff --git a/dDatabase/GameDatabase/GameDatabase.h b/dDatabase/GameDatabase/GameDatabase.h new file mode 100644 index 00000000..7d8c7de9 --- /dev/null +++ b/dDatabase/GameDatabase/GameDatabase.h @@ -0,0 +1,55 @@ +#ifndef __GAMEDATABASE__H__ +#define __GAMEDATABASE__H__ + +#include + +#include "ILeaderboard.h" +#include "IPlayerCheatDetections.h" +#include "ICommandLog.h" +#include "IMail.h" +#include "IObjectIdTracker.h" +#include "IPlayKeys.h" +#include "IServers.h" +#include "IBugReports.h" +#include "IPropertyContents.h" +#include "IProperty.h" +#include "IPetNames.h" +#include "ICharXml.h" +#include "IMigrationHistory.h" +#include "IUgc.h" +#include "IFriends.h" +#include "ICharInfo.h" +#include "IAccounts.h" +#include "IActivityLog.h" + +namespace sql { + class Statement; + class PreparedStatement; +}; + +#ifdef _DEBUG +# define DLU_SQL_TRY_CATCH_RETHROW(x) do { try { x; } catch (sql::SQLException& ex) { LOG("SQL Error: %s", ex.what()); throw; } } while(0) +#else +# define DLU_SQL_TRY_CATCH_RETHROW(x) x +#endif // _DEBUG + +class GameDatabase : + public IPlayKeys, public ILeaderboard, public IObjectIdTracker, public IServers, + public IMail, public ICommandLog, public IPlayerCheatDetections, public IBugReports, + public IPropertyContents, public IProperty, public IPetNames, public ICharXml, + public IMigrationHistory, public IUgc, public IFriends, public ICharInfo, + public IAccounts, public IActivityLog { +public: + virtual ~GameDatabase() = default; + // TODO: These should be made private. + virtual void Connect() = 0; + virtual void Destroy(std::string source = "") = 0; + virtual void ExecuteCustomQuery(const std::string_view query) = 0; + virtual sql::PreparedStatement* CreatePreppedStmt(const std::string& query) = 0; + virtual void Commit() = 0; + virtual bool GetAutoCommit() = 0; + virtual void SetAutoCommit(bool value) = 0; + virtual void DeleteCharacter(const uint32_t characterId) = 0; +}; + +#endif //!__GAMEDATABASE__H__ diff --git a/dDatabase/GameDatabase/ITables/IAccounts.h b/dDatabase/GameDatabase/ITables/IAccounts.h new file mode 100644 index 00000000..1b1f85a7 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IAccounts.h @@ -0,0 +1,37 @@ +#ifndef __IACCOUNTS__H__ +#define __IACCOUNTS__H__ + +#include +#include +#include + +enum class eGameMasterLevel : uint8_t; + +class IAccounts { +public: + struct Info { + std::string bcryptPassword; + uint32_t id{}; + uint32_t playKeyId{}; + bool banned{}; + bool locked{}; + eGameMasterLevel maxGmLevel{}; + }; + + // Get the account info for the given username. + virtual std::optional GetAccountInfo(const std::string_view username) = 0; + + // Update the account's unmute time. + virtual void UpdateAccountUnmuteTime(const uint32_t accountId, const uint64_t timeToUnmute) = 0; + + // Update the account's ban status. + virtual void UpdateAccountBan(const uint32_t accountId, const bool banned) = 0; + + // Update the account's password. + virtual void UpdateAccountPassword(const uint32_t accountId, const std::string_view bcryptpassword) = 0; + + // Add a new account to the database. + virtual void InsertNewAccount(const std::string_view username, const std::string_view bcryptpassword) = 0; +}; + +#endif //!__IACCOUNTS__H__ diff --git a/dDatabase/GameDatabase/ITables/IActivityLog.h b/dDatabase/GameDatabase/ITables/IActivityLog.h new file mode 100644 index 00000000..a67b61a4 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IActivityLog.h @@ -0,0 +1,19 @@ +#ifndef __IACTIVITYLOG__H__ +#define __IACTIVITYLOG__H__ + +#include + +#include "dCommonVars.h" + +enum class eActivityType : uint32_t { + PlayerLoggedIn, + PlayerLoggedOut, +}; + +class IActivityLog { +public: + // Update the activity log for the given account. + virtual void UpdateActivityLog(const uint32_t characterId, const eActivityType activityType, const LWOMAPID mapId) = 0; +}; + +#endif //!__IACTIVITYLOG__H__ diff --git a/dDatabase/GameDatabase/ITables/IBugReports.h b/dDatabase/GameDatabase/ITables/IBugReports.h new file mode 100644 index 00000000..29a6180f --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IBugReports.h @@ -0,0 +1,20 @@ +#ifndef __IBUGREPORTS__H__ +#define __IBUGREPORTS__H__ + +#include +#include + +class IBugReports { +public: + struct Info { + std::string body; + std::string clientVersion; + std::string otherPlayer; + std::string selection; + uint32_t characterId{}; + }; + + // Add a new bug report to the database. + virtual void InsertNewBugReport(const Info& info) = 0; +}; +#endif //!__IBUGREPORTS__H__ diff --git a/dDatabase/GameDatabase/ITables/ICharInfo.h b/dDatabase/GameDatabase/ITables/ICharInfo.h new file mode 100644 index 00000000..416dad2c --- /dev/null +++ b/dDatabase/GameDatabase/ITables/ICharInfo.h @@ -0,0 +1,49 @@ +#ifndef __ICHARINFO__H__ +#define __ICHARINFO__H__ + +#include +#include +#include +#include +#include + +#include "ePermissionMap.h" + +class ICharInfo { +public: + struct Info { + std::string name; + std::string pendingName; + uint32_t id{}; + uint32_t accountId{}; + bool needsRename{}; + LWOCLONEID cloneId{}; + ePermissionMap permissionMap{}; + }; + + // Get the approved names of all characters. + virtual std::vector GetApprovedCharacterNames() = 0; + + // Get the character info for the given character id. + virtual std::optional GetCharacterInfo(const uint32_t charId) = 0; + + // Get the character info for the given character name. + virtual std::optional GetCharacterInfo(const std::string_view name) = 0; + + // Get the character ids for the given account. + virtual std::vector GetAccountCharacterIds(const uint32_t accountId) = 0; + + // Insert a new character into the database. + virtual void InsertNewCharacter(const ICharInfo::Info info) = 0; + + // Set the name of the given character. + virtual void SetCharacterName(const uint32_t characterId, const std::string_view name) = 0; + + // Set the pending name of the given character. + virtual void SetPendingCharacterName(const uint32_t characterId, const std::string_view name) = 0; + + // Updates the given character ids last login to be right now. + virtual void UpdateLastLoggedInCharacter(const uint32_t characterId) = 0; +}; + +#endif //!__ICHARINFO__H__ diff --git a/dDatabase/GameDatabase/ITables/ICharXml.h b/dDatabase/GameDatabase/ITables/ICharXml.h new file mode 100644 index 00000000..c7ada075 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/ICharXml.h @@ -0,0 +1,20 @@ +#ifndef __ICHARXML__H__ +#define __ICHARXML__H__ + +#include +#include +#include + +class ICharXml { +public: + // Get the character xml for the given character id. + virtual std::string GetCharacterXml(const uint32_t charId) = 0; + + // Update the character xml for the given character id. + virtual void UpdateCharacterXml(const uint32_t charId, const std::string_view lxfml) = 0; + + // Insert the character xml for the given character id. + virtual void InsertCharacterXml(const uint32_t characterId, const std::string_view lxfml) = 0; +}; + +#endif //!__ICHARXML__H__ diff --git a/dDatabase/GameDatabase/ITables/ICommandLog.h b/dDatabase/GameDatabase/ITables/ICommandLog.h new file mode 100644 index 00000000..63595360 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/ICommandLog.h @@ -0,0 +1,14 @@ +#ifndef __ICOMMANDLOG__H__ +#define __ICOMMANDLOG__H__ + +#include +#include + +class ICommandLog { +public: + + // Insert a new slash command log entry. + virtual void InsertSlashCommandUsage(const uint32_t characterId, const std::string_view command) = 0; +}; + +#endif //!__ICOMMANDLOG__H__ diff --git a/dDatabase/GameDatabase/ITables/IFriends.h b/dDatabase/GameDatabase/ITables/IFriends.h new file mode 100644 index 00000000..6f96f441 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IFriends.h @@ -0,0 +1,32 @@ +#ifndef __IFRIENDS__H__ +#define __IFRIENDS__H__ + +#include +#include +#include + +class IFriends { +public: + struct BestFriendStatus { + uint32_t playerCharacterId{}; + uint32_t friendCharacterId{}; + uint32_t bestFriendStatus{}; + }; + + // Get the friends list for the given character id. + virtual std::vector GetFriendsList(const uint32_t charId) = 0; + + // Get the best friend status for the given player and friend character ids. + virtual std::optional GetBestFriendStatus(const uint32_t playerCharacterId, const uint32_t friendCharacterId) = 0; + + // Set the best friend status for the given player and friend character ids. + virtual void SetBestFriendStatus(const uint32_t playerCharacterId, const uint32_t friendCharacterId, const uint32_t bestFriendStatus) = 0; + + // Add a friend to the given character id. + virtual void AddFriend(const uint32_t playerCharacterId, const uint32_t friendCharacterId) = 0; + + // Remove a friend from the given character id. + virtual void RemoveFriend(const uint32_t playerCharacterId, const uint32_t friendCharacterId) = 0; +}; + +#endif //!__IFRIENDS__H__ diff --git a/dDatabase/GameDatabase/ITables/ILeaderboard.h b/dDatabase/GameDatabase/ITables/ILeaderboard.h new file mode 100644 index 00000000..84d44eb2 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/ILeaderboard.h @@ -0,0 +1,14 @@ +#ifndef __ILEADERBOARD__H__ +#define __ILEADERBOARD__H__ + +#include +#include + +class ILeaderboard { +public: + + // Get the donation total for the given activity id. + virtual std::optional GetDonationTotal(const uint32_t activityId) = 0; +}; + +#endif //!__ILEADERBOARD__H__ diff --git a/dDatabase/GameDatabase/ITables/IMail.h b/dDatabase/GameDatabase/ITables/IMail.h new file mode 100644 index 00000000..7fbc8230 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IMail.h @@ -0,0 +1,54 @@ +#ifndef __IMAIL__H__ +#define __IMAIL__H__ + +#include +#include +#include + +#include "dCommonVars.h" +#include "NiQuaternion.h" +#include "NiPoint3.h" + +class IMail { +public: + struct MailInfo { + std::string senderUsername; + std::string recipient; + std::string subject; + std::string body; + uint64_t id{}; + uint32_t senderId{}; + uint32_t receiverId{}; + uint64_t timeSent{}; + bool wasRead{}; + struct { + LWOOBJID itemID{}; + int32_t itemCount{}; + LOT itemLOT{}; + LWOOBJID itemSubkey{}; + }; + }; + + // Insert a new mail into the database. + virtual void InsertNewMail(const MailInfo& mail) = 0; + + // Get the mail for the given character id. + virtual std::vector GetMailForPlayer(const uint32_t characterId, const uint32_t numberOfMail) = 0; + + // Get the mail for the given mail id. + virtual std::optional GetMail(const uint64_t mailId) = 0; + + // Get the number of unread mail for the given character id. + virtual uint32_t GetUnreadMailCount(const uint32_t characterId) = 0; + + // Mark the given mail as read. + virtual void MarkMailRead(const uint64_t mailId) = 0; + + // Claim the item from the given mail. + virtual void ClaimMailItem(const uint64_t mailId) = 0; + + // Delete the given mail. + virtual void DeleteMail(const uint64_t mailId) = 0; +}; + +#endif //!__IMAIL__H__ diff --git a/dDatabase/GameDatabase/ITables/IMigrationHistory.h b/dDatabase/GameDatabase/ITables/IMigrationHistory.h new file mode 100644 index 00000000..21f27b4a --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IMigrationHistory.h @@ -0,0 +1,17 @@ +#ifndef __IMIGRATIONHISTORY__H__ +#define __IMIGRATIONHISTORY__H__ + +#include + +class IMigrationHistory { +public: + // Create the migration history table. + virtual void CreateMigrationHistoryTable() = 0; + + // Check if the given migration has been run. + virtual bool IsMigrationRun(const std::string_view str) = 0; + + // Insert the given migration into the migration history table. + virtual void InsertMigration(const std::string_view str) = 0; +}; +#endif //!__IMIGRATIONHISTORY__H__ diff --git a/dDatabase/GameDatabase/ITables/IObjectIdTracker.h b/dDatabase/GameDatabase/ITables/IObjectIdTracker.h new file mode 100644 index 00000000..cbe34b6d --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IObjectIdTracker.h @@ -0,0 +1,19 @@ +#ifndef __IOBJECTIDTRACKER__H__ +#define __IOBJECTIDTRACKER__H__ + +#include +#include + +class IObjectIdTracker { +public: + // Get the current persistent id. + virtual std::optional GetCurrentPersistentId() = 0; + + // Insert the default persistent id. + virtual void InsertDefaultPersistentId() = 0; + + // Update the persistent id. + virtual void UpdatePersistentId(const uint32_t newId) = 0; +}; + +#endif //!__IOBJECTIDTRACKER__H__ diff --git a/dDatabase/GameDatabase/ITables/IPetNames.h b/dDatabase/GameDatabase/ITables/IPetNames.h new file mode 100644 index 00000000..e82f4905 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IPetNames.h @@ -0,0 +1,21 @@ +#ifndef __IPETNAMES__H__ +#define __IPETNAMES__H__ + +#include +#include + +class IPetNames { +public: + struct Info { + std::string petName; + int32_t approvalStatus{}; + }; + + // Set the pet name moderation status for the given pet id. + virtual void SetPetNameModerationStatus(const LWOOBJID& petId, const IPetNames::Info& info) = 0; + + // Get pet info for the given pet id. + virtual std::optional GetPetNameInfo(const LWOOBJID& petId) = 0; +}; + +#endif //!__IPETNAMES__H__ diff --git a/dDatabase/GameDatabase/ITables/IPlayKeys.h b/dDatabase/GameDatabase/ITables/IPlayKeys.h new file mode 100644 index 00000000..0a1db389 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IPlayKeys.h @@ -0,0 +1,15 @@ +#ifndef __IPLAYKEYS__H__ +#define __IPLAYKEYS__H__ + +#include +#include + +class IPlayKeys { +public: + // Get the playkey id for the given playkey. + // Optional of bool may seem pointless, however the optional indicates if the playkey exists + // and the bool indicates if the playkey is active. + virtual std::optional IsPlaykeyActive(const int32_t playkeyId) = 0; +}; + +#endif //!__IPLAYKEYS__H__ diff --git a/dDatabase/GameDatabase/ITables/IPlayerCheatDetections.h b/dDatabase/GameDatabase/ITables/IPlayerCheatDetections.h new file mode 100644 index 00000000..939f5118 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IPlayerCheatDetections.h @@ -0,0 +1,20 @@ +#ifndef __IPLAYERCHEATDETECTIONS__H__ +#define __IPLAYERCHEATDETECTIONS__H__ + +#include +#include + +class IPlayerCheatDetections { +public: + struct Info { + std::optional userId = std::nullopt; + std::string username; + std::string systemAddress; + std::string extraMessage; + }; + + // Insert a new cheat detection. + virtual void InsertCheatDetection(const IPlayerCheatDetections::Info& info) = 0; +}; + +#endif //!__IPLAYERCHEATDETECTIONS__H__ diff --git a/dDatabase/GameDatabase/ITables/IProperty.h b/dDatabase/GameDatabase/ITables/IProperty.h new file mode 100644 index 00000000..54994b51 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IProperty.h @@ -0,0 +1,38 @@ +#ifndef __IPROPERTY__H__ +#define __IPROPERTY__H__ + +#include +#include + +class IProperty { +public: + struct Info { + std::string name; + std::string description; + std::string rejectionReason; + LWOOBJID id{}; + uint32_t ownerId{}; + LWOCLONEID cloneId{}; + int32_t privacyOption{}; + uint32_t modApproved{}; + uint32_t lastUpdatedTime{}; + uint32_t claimedTime{}; + uint32_t reputation{}; + }; + + // Get the property info for the given property id. + virtual std::optional GetPropertyInfo(const LWOMAPID mapId, const LWOCLONEID cloneId) = 0; + + // Update the property moderation info for the given property id. + virtual void UpdatePropertyModerationInfo(const IProperty::Info& info) = 0; + + // Update the property details for the given property id. + virtual void UpdatePropertyDetails(const IProperty::Info& info) = 0; + + // Update the property performance cost for the given property id. + virtual void UpdatePerformanceCost(const LWOZONEID& zoneId, const float performanceCost) = 0; + + // Insert a new property into the database. + virtual void InsertNewProperty(const IProperty::Info& info, const uint32_t templateId, const LWOZONEID& zoneId) = 0; +}; +#endif //!__IPROPERTY__H__ diff --git a/dDatabase/GameDatabase/ITables/IPropertyContents.h b/dDatabase/GameDatabase/ITables/IPropertyContents.h new file mode 100644 index 00000000..c862ca94 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IPropertyContents.h @@ -0,0 +1,40 @@ +#ifndef __IPROPERTIESCONTENTS__H__ +#define __IPROPERTIESCONTENTS__H__ + +#include +#include + +class IPropertyContents { +public: + struct Model { + inline bool operator==(const LWOOBJID& other) const noexcept { + return id == other; + } + + NiPoint3 position; + NiQuaternion rotation; + LWOOBJID id{}; + LOT lot{}; + uint32_t ugcId{}; + }; + + // Inserts a new UGC model into the database. + virtual void InsertNewUgcModel( + std::istringstream& sd0Data, + const uint32_t blueprintId, + const uint32_t accountId, + const uint32_t characterId) = 0; + + // Get the property models for the given property id. + virtual std::vector GetPropertyModels(const LWOOBJID& propertyId) = 0; + + // Insert a new property model into the database. + virtual void InsertNewPropertyModel(const LWOOBJID& propertyId, const IPropertyContents::Model& model, const std::string_view name) = 0; + + // Update the model position and rotation for the given property id. + virtual void UpdateModelPositionRotation(const LWOOBJID& propertyId, const NiPoint3& position, const NiQuaternion& rotation) = 0; + + // Remove the model for the given property id. + virtual void RemoveModel(const LWOOBJID& modelId) = 0; +}; +#endif //!__IPROPERTIESCONTENTS__H__ diff --git a/dDatabase/GameDatabase/ITables/IServers.h b/dDatabase/GameDatabase/ITables/IServers.h new file mode 100644 index 00000000..ee74bbb8 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IServers.h @@ -0,0 +1,21 @@ +#ifndef __ISERVERS__H__ +#define __ISERVERS__H__ + +#include +#include + +class IServers { +public: + struct MasterInfo { + std::string ip; + uint32_t port{}; + }; + + // Set the master server ip and port. + virtual void SetMasterIp(const std::string_view ip, const uint32_t port) = 0; + + // Get the master server info. + virtual std::optional GetMasterInfo() = 0; +}; + +#endif //!__ISERVERS__H__ diff --git a/dDatabase/GameDatabase/ITables/IUgc.h b/dDatabase/GameDatabase/ITables/IUgc.h new file mode 100644 index 00000000..024636ac --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IUgc.h @@ -0,0 +1,32 @@ +#ifndef __IUGC__H__ +#define __IUGC__H__ + +#include +#include +#include +#include +#include + +class IUgc { +public: + struct Model { + std::stringstream lxfmlData; + LWOOBJID id{}; + }; + + // Gets all UGC models for the given property id. + virtual std::vector GetUgcModels(const LWOOBJID& propertyId) = 0; + + // Gets all Ugcs models. + virtual std::vector GetAllUgcModels() = 0; + + // Removes ugc models that are not referenced by any property. + virtual void RemoveUnreferencedUgcModels() = 0; + + // Deletes the ugc model for the given model id. + virtual void DeleteUgcModelData(const LWOOBJID& modelId) = 0; + + // Inserts a new UGC model into the database. + virtual void UpdateUgcModelData(const LWOOBJID& modelId, std::istringstream& lxfml) = 0; +}; +#endif //!__IUGC__H__ diff --git a/dDatabase/MigrationRunner.cpp b/dDatabase/GameDatabase/MigrationRunner.cpp similarity index 73% rename from dDatabase/MigrationRunner.cpp rename to dDatabase/GameDatabase/MigrationRunner.cpp index 2dbe9101..6bc3954d 100644 --- a/dDatabase/MigrationRunner.cpp +++ b/dDatabase/GameDatabase/MigrationRunner.cpp @@ -32,9 +32,7 @@ Migration LoadMigration(std::string path) { } void MigrationRunner::RunMigrations() { - auto* stmt = Database::CreatePreppedStmt("CREATE TABLE IF NOT EXISTS migration_history (name TEXT NOT NULL, date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP());"); - stmt->execute(); - delete stmt; + Database::Get()->CreateMigrationHistoryTable(); sql::SQLString finalSQL = ""; bool runSd0Migrations = false; @@ -45,13 +43,7 @@ void MigrationRunner::RunMigrations() { continue; } - stmt = Database::CreatePreppedStmt("SELECT name FROM migration_history WHERE name = ?;"); - stmt->setString(1, migration.name.c_str()); - auto* res = stmt->executeQuery(); - bool doExit = res->next(); - delete res; - delete stmt; - if (doExit) continue; + if (Database::Get()->IsMigrationRun(migration.name)) continue; LOG("Running migration: %s", migration.name.c_str()); if (migration.name == "dlu/5_brick_model_sd0.sql") { @@ -60,10 +52,7 @@ void MigrationRunner::RunMigrations() { finalSQL.append(migration.data.c_str()); } - stmt = Database::CreatePreppedStmt("INSERT INTO migration_history (name) VALUES (?);"); - stmt->setString(1, migration.name.c_str()); - stmt->execute(); - delete stmt; + Database::Get()->InsertMigration(migration.name); } if (finalSQL.empty() && !runSd0Migrations) { @@ -73,11 +62,10 @@ void MigrationRunner::RunMigrations() { if (!finalSQL.empty()) { auto migration = GeneralUtils::SplitString(static_cast(finalSQL), ';'); - std::unique_ptr simpleStatement(Database::CreateStmt()); for (auto& query : migration) { try { if (query.empty()) continue; - simpleStatement->execute(query.c_str()); + Database::Get()->ExecuteCustomQuery(query.c_str()); } catch (sql::SQLException& e) { LOG("Encountered error running migration: %s", e.what()); } @@ -98,9 +86,7 @@ void MigrationRunner::RunSQLiteMigrations() { cdstmt.execQuery().finalize(); cdstmt.finalize(); - auto* stmt = Database::CreatePreppedStmt("CREATE TABLE IF NOT EXISTS migration_history (name TEXT NOT NULL, date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP());"); - stmt->execute(); - delete stmt; + Database::Get()->CreateMigrationHistoryTable(); for (const auto& entry : GeneralUtils::GetSqlFileNamesFromFolder((BinaryPathFinder::GetBinaryDir() / "migrations/cdserver/").string())) { auto migration = LoadMigration("cdserver/" + entry); @@ -111,25 +97,15 @@ void MigrationRunner::RunSQLiteMigrations() { cdstmt = CDClientDatabase::CreatePreppedStmt("SELECT name FROM migration_history WHERE name = ?;"); cdstmt.bind((int32_t) 1, migration.name.c_str()); auto cdres = cdstmt.execQuery(); - bool doExit = !cdres.eof(); - cdres.finalize(); - cdstmt.finalize(); - if (doExit) continue; + if (!cdres.eof()) continue; // Check first if there is entry in the migration history table on the main database. - stmt = Database::CreatePreppedStmt("SELECT name FROM migration_history WHERE name = ?;"); - stmt->setString(1, migration.name.c_str()); - auto* res = stmt->executeQuery(); - doExit = res->next(); - delete res; - delete stmt; - if (doExit) { + if (Database::Get()->IsMigrationRun(migration.name)) { // Insert into cdclient database if there is an entry in the main database but not the cdclient database. cdstmt = CDClientDatabase::CreatePreppedStmt("INSERT INTO migration_history (name) VALUES (?);"); - cdstmt.bind((int32_t) 1, migration.name.c_str()); - cdstmt.execQuery().finalize(); - cdstmt.finalize(); + cdstmt.bind(static_cast(1), migration.name.c_str()); + cdstmt.execQuery(); continue; } @@ -149,8 +125,7 @@ void MigrationRunner::RunSQLiteMigrations() { // Insert into cdclient database. cdstmt = CDClientDatabase::CreatePreppedStmt("INSERT INTO migration_history (name) VALUES (?);"); cdstmt.bind((int32_t) 1, migration.name.c_str()); - cdstmt.execQuery().finalize(); - cdstmt.finalize(); + cdstmt.execQuery(); CDClientDatabase::ExecuteQuery("COMMIT;"); } diff --git a/dDatabase/MigrationRunner.h b/dDatabase/GameDatabase/MigrationRunner.h similarity index 100% rename from dDatabase/MigrationRunner.h rename to dDatabase/GameDatabase/MigrationRunner.h diff --git a/dDatabase/GameDatabase/MySQL/CMakeLists.txt b/dDatabase/GameDatabase/MySQL/CMakeLists.txt new file mode 100644 index 00000000..9114445d --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/CMakeLists.txt @@ -0,0 +1,11 @@ +SET(DDATABSE_DATABSES_MYSQL_SOURCES + "MySQLDatabase.cpp" +) + +add_subdirectory(Tables) + +foreach(file ${DDATABASES_DATABASES_MYSQL_TABLES_SOURCES}) + set(DDATABSE_DATABSES_MYSQL_SOURCES ${DDATABSE_DATABSES_MYSQL_SOURCES} "Tables/${file}") +endforeach() + +set(DDATABSE_DATABSES_MYSQL_SOURCES ${DDATABSE_DATABSES_MYSQL_SOURCES} PARENT_SCOPE) diff --git a/dDatabase/GameDatabase/MySQL/MySQLDatabase.cpp b/dDatabase/GameDatabase/MySQL/MySQLDatabase.cpp new file mode 100644 index 00000000..259c3866 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/MySQLDatabase.cpp @@ -0,0 +1,113 @@ +#include "MySQLDatabase.h" + +#include "Database.h" +#include "Game.h" +#include "dConfig.h" +#include "Logger.h" + +namespace { + std::string databaseName; + sql::Properties properties; + sql::Driver* driver = nullptr; + sql::Connection* con = nullptr; +}; + +void MySQLDatabase::Connect() { + driver = sql::mariadb::get_driver_instance(); + + // The mariadb connector is *supposed* to handle unix:// and pipe:// prefixes to hostName, but there are bugs where + // 1) it tries to parse a database from the connection string (like in tcp://localhost:3001/darkflame) based on the + // presence of a / + // 2) even avoiding that, the connector still assumes you're connecting with a tcp socket + // So, what we do in the presence of a unix socket or pipe is to set the hostname to the protocol and localhost, + // which avoids parsing errors while still ensuring the correct connection type is used, and then setting the appropriate + // property manually (which the URL parsing fails to do) + const std::string UNIX_PROTO = "unix://"; + const std::string PIPE_PROTO = "pipe://"; + std::string mysql_host = Game::config->GetValue("mysql_host"); + if (mysql_host.find(UNIX_PROTO) == 0) { + properties["hostName"] = "unix://localhost"; + properties["localSocket"] = mysql_host.substr(UNIX_PROTO.length()).c_str(); + } else if (mysql_host.find(PIPE_PROTO) == 0) { + properties["hostName"] = "pipe://localhost"; + properties["pipe"] = mysql_host.substr(PIPE_PROTO.length()).c_str(); + } else { + properties["hostName"] = mysql_host.c_str(); + } + properties["user"] = Game::config->GetValue("mysql_username").c_str(); + properties["password"] = Game::config->GetValue("mysql_password").c_str(); + properties["autoReconnect"] = "true"; + + databaseName = Game::config->GetValue("mysql_database").c_str(); + + // `connect(const Properties& props)` segfaults in windows debug, but + // `connect(const SQLString& host, const SQLString& user, const SQLString& pwd)` doesn't handle pipes/unix sockets correctly + if (properties.find("localSocket") != properties.end() || properties.find("pipe") != properties.end()) { + con = driver->connect(properties); + } else { + con = driver->connect(properties["hostName"].c_str(), properties["user"].c_str(), properties["password"].c_str()); + } + con->setSchema(databaseName.c_str()); +} + +void MySQLDatabase::Destroy(std::string source) { + if (!con) return; + + if (source.empty()) LOG("Destroying MySQL connection!"); + else LOG("Destroying MySQL connection from %s!", source.c_str()); + + con->close(); + delete con; + con = nullptr; +} + +void MySQLDatabase::ExecuteCustomQuery(const std::string_view query) { + std::unique_ptr(con->createStatement())->execute(query.data()); +} + +sql::PreparedStatement* MySQLDatabase::CreatePreppedStmt(const std::string& query) { + if (!con) { + Connect(); + LOG("Trying to reconnect to MySQL"); + } + + if (!con->isValid() || con->isClosed()) { + delete con; + + con = nullptr; + + Connect(); + LOG("Trying to reconnect to MySQL from invalid or closed connection"); + } + + return con->prepareStatement(sql::SQLString(query.c_str(), query.length())); +} + +void MySQLDatabase::Commit() { + con->commit(); +} + +bool MySQLDatabase::GetAutoCommit() { + // TODO This should not just access a pointer. A future PR should update this + // to check for null and throw an error if the connection is not valid. + return con->getAutoCommit(); +} + +void MySQLDatabase::SetAutoCommit(bool value) { + // TODO This should not just access a pointer. A future PR should update this + // to check for null and throw an error if the connection is not valid. + con->setAutoCommit(value); +} + +void MySQLDatabase::DeleteCharacter(const uint32_t characterId) { + ExecuteDelete("DELETE FROM charxml WHERE id=? LIMIT 1;", characterId); + ExecuteDelete("DELETE FROM command_log WHERE character_id=?;", characterId); + ExecuteDelete("DELETE FROM friends WHERE player_id=? OR friend_id=?;", characterId, characterId); + ExecuteDelete("DELETE FROM leaderboard WHERE character_id=?;", characterId); + ExecuteDelete("DELETE FROM properties_contents WHERE property_id IN (SELECT id FROM properties WHERE owner_id=?);", characterId); + ExecuteDelete("DELETE FROM properties WHERE owner_id=?;", characterId); + ExecuteDelete("DELETE FROM ugc WHERE character_id=?;", characterId); + ExecuteDelete("DELETE FROM activity_log WHERE character_id=?;", characterId); + ExecuteDelete("DELETE FROM mail WHERE receiver_id=?;", characterId); + ExecuteDelete("DELETE FROM charinfo WHERE id=? LIMIT 1;", characterId); +} diff --git a/dDatabase/GameDatabase/MySQL/MySQLDatabase.h b/dDatabase/GameDatabase/MySQL/MySQLDatabase.h new file mode 100644 index 00000000..bed79bb7 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/MySQLDatabase.h @@ -0,0 +1,245 @@ +#ifndef __MYSQLDATABASE__H__ +#define __MYSQLDATABASE__H__ + +#include +#include + +#include "GameDatabase.h" + +typedef std::unique_ptr& UniquePreppedStmtRef; + +// Purposefully no definition for this to provide linker errors in the case someone tries to +// bind a parameter to a type that isn't defined. +template +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const ParamType param); + +// This is a function to set each parameter in a prepared statement. +// This is accomplished with a combination of parameter packing and Fold Expressions. +// The constexpr if statement is used to prevent the compiler from trying to call SetParam with 0 arguments. +template +void SetParams(UniquePreppedStmtRef stmt, Args&&... args) { + if constexpr (sizeof...(args) != 0) { + int i = 1; + (SetParam(stmt, i++, args), ...); + } +} + +class MySQLDatabase : public GameDatabase { +public: + void Connect() override; + void Destroy(std::string source = "") override; + + sql::PreparedStatement* CreatePreppedStmt(const std::string& query) override; + void Commit() override; + bool GetAutoCommit() override; + void SetAutoCommit(bool value) override; + void ExecuteCustomQuery(const std::string_view query) override; + + // Overloaded queries + std::optional GetMasterInfo() override; + + std::vector GetApprovedCharacterNames() override; + + std::vector GetFriendsList(uint32_t charID) override; + + std::optional GetBestFriendStatus(const uint32_t playerCharacterId, const uint32_t friendCharacterId) override; + void SetBestFriendStatus(const uint32_t playerAccountId, const uint32_t friendAccountId, const uint32_t bestFriendStatus) override; + void AddFriend(const uint32_t playerAccountId, const uint32_t friendAccountId) override; + void RemoveFriend(const uint32_t playerAccountId, const uint32_t friendAccountId) override; + void UpdateActivityLog(const uint32_t characterId, const eActivityType activityType, const LWOMAPID mapId) override; + void DeleteUgcModelData(const LWOOBJID& modelId) override; + void UpdateUgcModelData(const LWOOBJID& modelId, std::istringstream& lxfml) override; + std::vector GetAllUgcModels() override; + void CreateMigrationHistoryTable() override; + bool IsMigrationRun(const std::string_view str) override; + void InsertMigration(const std::string_view str) override; + std::optional GetCharacterInfo(const uint32_t charId) override; + std::optional GetCharacterInfo(const std::string_view charId) override; + std::string GetCharacterXml(const uint32_t accountId) override; + void UpdateCharacterXml(const uint32_t characterId, const std::string_view lxfml) override; + std::optional GetAccountInfo(const std::string_view username) override; + void InsertNewCharacter(const ICharInfo::Info info) override; + void InsertCharacterXml(const uint32_t accountId, const std::string_view lxfml) override; + std::vector GetAccountCharacterIds(uint32_t accountId) override; + void DeleteCharacter(const uint32_t characterId) override; + void SetCharacterName(const uint32_t characterId, const std::string_view name) override; + void SetPendingCharacterName(const uint32_t characterId, const std::string_view name) override; + void UpdateLastLoggedInCharacter(const uint32_t characterId) override; + void SetPetNameModerationStatus(const LWOOBJID& petId, const IPetNames::Info& info) override; + std::optional GetPetNameInfo(const LWOOBJID& petId) override; + std::optional GetPropertyInfo(const LWOMAPID mapId, const LWOCLONEID cloneId) override; + void UpdatePropertyModerationInfo(const IProperty::Info& info) override; + void UpdatePropertyDetails(const IProperty::Info& info) override; + void InsertNewProperty(const IProperty::Info& info, const uint32_t templateId, const LWOZONEID& zoneId) override; + std::vector GetPropertyModels(const LWOOBJID& propertyId) override; + void RemoveUnreferencedUgcModels() override; + void InsertNewPropertyModel(const LWOOBJID& propertyId, const IPropertyContents::Model& model, const std::string_view name) override; + void UpdateModelPositionRotation(const LWOOBJID& propertyId, const NiPoint3& position, const NiQuaternion& rotation) override; + void RemoveModel(const LWOOBJID& modelId) override; + void UpdatePerformanceCost(const LWOZONEID& zoneId, const float performanceCost) override; + void InsertNewBugReport(const IBugReports::Info& info) override; + void InsertCheatDetection(const IPlayerCheatDetections::Info& info) override; + void InsertNewMail(const IMail::MailInfo& mail) override; + void InsertNewUgcModel( + std::istringstream& sd0Data, + const uint32_t blueprintId, + const uint32_t accountId, + const uint32_t characterId) override; + std::vector GetMailForPlayer(const uint32_t characterId, const uint32_t numberOfMail) override; + std::optional GetMail(const uint64_t mailId) override; + uint32_t GetUnreadMailCount(const uint32_t characterId) override; + void MarkMailRead(const uint64_t mailId) override; + void DeleteMail(const uint64_t mailId) override; + void ClaimMailItem(const uint64_t mailId) override; + void InsertSlashCommandUsage(const uint32_t characterId, const std::string_view command) override; + void UpdateAccountUnmuteTime(const uint32_t accountId, const uint64_t timeToUnmute) override; + void UpdateAccountBan(const uint32_t accountId, const bool banned) override; + void UpdateAccountPassword(const uint32_t accountId, const std::string_view bcryptpassword) override; + void InsertNewAccount(const std::string_view username, const std::string_view bcryptpassword) override; + void SetMasterIp(const std::string_view ip, const uint32_t port) override; + std::optional GetCurrentPersistentId() override; + void InsertDefaultPersistentId() override; + void UpdatePersistentId(const uint32_t id) override; + std::optional GetDonationTotal(const uint32_t activityId) override; + std::optional IsPlaykeyActive(const int32_t playkeyId) override; + std::vector GetUgcModels(const LWOOBJID& propertyId) override; +private: + + // Generic query functions that can be used for any query. + // Return type may be different depending on the query, so it is up to the caller to check the return type. + // The first argument is the query string, and the rest are the parameters to bind to the query. + // The return type is a unique_ptr to the result set, which is deleted automatically when it goes out of scope + template + inline std::unique_ptr ExecuteSelect(const std::string& query, Args&&... args) { + std::unique_ptr preppedStmt(CreatePreppedStmt(query)); + SetParams(preppedStmt, std::forward(args)...); + DLU_SQL_TRY_CATCH_RETHROW(return std::unique_ptr(preppedStmt->executeQuery())); + } + + template + inline void ExecuteDelete(const std::string& query, Args&&... args) { + std::unique_ptr preppedStmt(CreatePreppedStmt(query)); + SetParams(preppedStmt, std::forward(args)...); + DLU_SQL_TRY_CATCH_RETHROW(preppedStmt->execute()); + } + + template + inline int32_t ExecuteUpdate(const std::string& query, Args&&... args) { + std::unique_ptr preppedStmt(CreatePreppedStmt(query)); + SetParams(preppedStmt, std::forward(args)...); + DLU_SQL_TRY_CATCH_RETHROW(return preppedStmt->executeUpdate()); + } + + template + inline bool ExecuteInsert(const std::string& query, Args&&... args) { + std::unique_ptr preppedStmt(CreatePreppedStmt(query)); + SetParams(preppedStmt, std::forward(args)...); + DLU_SQL_TRY_CATCH_RETHROW(return preppedStmt->execute()); + } +}; + +// Below are each of the definitions of SetParam for each supported type. + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const std::string_view param) { + // LOG("%s", param.data()); + stmt->setString(index, param.data()); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const char* param) { + // LOG("%s", param); + stmt->setString(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const std::string param) { + // LOG("%s", param.c_str()); + stmt->setString(index, param.c_str()); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const int8_t param) { + // LOG("%u", param); + stmt->setByte(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const uint8_t param) { + // LOG("%d", param); + stmt->setByte(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const int16_t param) { + // LOG("%u", param); + stmt->setShort(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const uint16_t param) { + // LOG("%d", param); + stmt->setShort(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const uint32_t param) { + // LOG("%u", param); + stmt->setUInt(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const int32_t param) { + // LOG("%d", param); + stmt->setInt(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const int64_t param) { + // LOG("%llu", param); + stmt->setInt64(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const uint64_t param) { + // LOG("%llu", param); + stmt->setUInt64(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const float param) { + // LOG("%f", param); + stmt->setFloat(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const double param) { + // LOG("%f", param); + stmt->setDouble(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const bool param) { + // LOG("%d", param); + stmt->setBoolean(index, param); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const std::istream* param) { + // LOG("Blob"); + // This is the one time you will ever see me use const_cast. + stmt->setBlob(index, const_cast(param)); +} + +template<> +inline void SetParam(UniquePreppedStmtRef stmt, const int index, const std::optional param) { + if (param) { + // LOG("%d", param.value()); + stmt->setInt(index, param.value()); + } else { + // LOG("Null"); + stmt->setNull(index, sql::DataType::SQLNULL); + } +} + +#endif //!__MYSQLDATABASE__H__ diff --git a/dDatabase/GameDatabase/MySQL/Tables/Accounts.cpp b/dDatabase/GameDatabase/MySQL/Tables/Accounts.cpp new file mode 100644 index 00000000..801f444d --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/Accounts.cpp @@ -0,0 +1,37 @@ +#include "MySQLDatabase.h" + +#include "eGameMasterLevel.h" + +std::optional MySQLDatabase::GetAccountInfo(const std::string_view username) { + auto result = ExecuteSelect("SELECT id, password, banned, locked, play_key_id, gm_level FROM accounts WHERE name = ? LIMIT 1;", username); + + if (!result->next()) { + return std::nullopt; + } + + IAccounts::Info toReturn; + toReturn.id = result->getUInt("id"); + toReturn.maxGmLevel = static_cast(result->getInt("gm_level")); + toReturn.bcryptPassword = result->getString("password").c_str(); + toReturn.banned = result->getBoolean("banned"); + toReturn.locked = result->getBoolean("locked"); + toReturn.playKeyId = result->getUInt("play_key_id"); + + return toReturn; +} + +void MySQLDatabase::UpdateAccountUnmuteTime(const uint32_t accountId, const uint64_t timeToUnmute) { + ExecuteUpdate("UPDATE accounts SET mute_expire = ? WHERE id = ?;", timeToUnmute, accountId); +} + +void MySQLDatabase::UpdateAccountBan(const uint32_t accountId, const bool banned) { + ExecuteUpdate("UPDATE accounts SET banned = ? WHERE id = ?;", banned, accountId); +} + +void MySQLDatabase::UpdateAccountPassword(const uint32_t accountId, const std::string_view bcryptpassword) { + ExecuteUpdate("UPDATE accounts SET password = ? WHERE id = ?;", bcryptpassword, accountId); +} + +void MySQLDatabase::InsertNewAccount(const std::string_view username, const std::string_view bcryptpassword) { + ExecuteInsert("INSERT INTO accounts (name, password, gm_level) VALUES (?, ?, ?);", username, bcryptpassword, static_cast(eGameMasterLevel::OPERATOR)); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/ActivityLog.cpp b/dDatabase/GameDatabase/MySQL/Tables/ActivityLog.cpp new file mode 100644 index 00000000..50fd6b79 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/ActivityLog.cpp @@ -0,0 +1,6 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::UpdateActivityLog(const uint32_t characterId, const eActivityType activityType, const LWOMAPID mapId) { + ExecuteInsert("INSERT INTO activity_log (character_id, activity, time, map_id) VALUES (?, ?, ?, ?);", + characterId, static_cast(activityType), static_cast(time(NULL)), mapId); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/BugReports.cpp b/dDatabase/GameDatabase/MySQL/Tables/BugReports.cpp new file mode 100644 index 00000000..4f23941d --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/BugReports.cpp @@ -0,0 +1,6 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::InsertNewBugReport(const IBugReports::Info& info) { + ExecuteInsert("INSERT INTO `bug_reports`(body, client_version, other_player_id, selection, reporter_id) VALUES (?, ?, ?, ?, ?)", + info.body, info.clientVersion, info.otherPlayer, info.selection, info.characterId); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt b/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt new file mode 100644 index 00000000..e9593ba9 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt @@ -0,0 +1,22 @@ +set(DDATABASES_DATABASES_MYSQL_TABLES_SOURCES + "Accounts.cpp" + "ActivityLog.cpp" + "BugReports.cpp" + "CharInfo.cpp" + "CharXml.cpp" + "CommandLog.cpp" + "Friends.cpp" + "Leaderboard.cpp" + "Mail.cpp" + "MigrationHistory.cpp" + "ObjectIdTracker.cpp" + "PetNames.cpp" + "PlayerCheatDetections.cpp" + "PlayKeys.cpp" + "Property.cpp" + "PropertyContents.cpp" + "Servers.cpp" + "Ugc.cpp" + PARENT_SCOPE +) + diff --git a/dDatabase/GameDatabase/MySQL/Tables/CharInfo.cpp b/dDatabase/GameDatabase/MySQL/Tables/CharInfo.cpp new file mode 100644 index 00000000..7406e69b --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/CharInfo.cpp @@ -0,0 +1,78 @@ +#include "MySQLDatabase.h" + +std::vector MySQLDatabase::GetApprovedCharacterNames() { + auto result = ExecuteSelect("SELECT name FROM charinfo;"); + + std::vector toReturn; + + while (result->next()) { + toReturn.push_back(result->getString("name").c_str()); + } + + return toReturn; +} + +std::optional CharInfoFromQueryResult(std::unique_ptr stmt) { + if (!stmt->next()) { + return std::nullopt; + } + + ICharInfo::Info toReturn; + + toReturn.id = stmt->getUInt("id"); + toReturn.name = stmt->getString("name").c_str(); + toReturn.pendingName = stmt->getString("pending_name").c_str(); + toReturn.needsRename = stmt->getBoolean("needs_rename"); + toReturn.cloneId = stmt->getUInt64("prop_clone_id"); + toReturn.accountId = stmt->getUInt("account_id"); + toReturn.permissionMap = static_cast(stmt->getUInt("permission_map")); + + return toReturn; +} + +std::optional MySQLDatabase::GetCharacterInfo(const uint32_t charId) { + return CharInfoFromQueryResult( + ExecuteSelect("SELECT name, pending_name, needs_rename, prop_clone_id, permission_map, id, account_id FROM charinfo WHERE id = ? LIMIT 1;", charId) + ); +} + +std::optional MySQLDatabase::GetCharacterInfo(const std::string_view name) { + return CharInfoFromQueryResult( + ExecuteSelect("SELECT name, pending_name, needs_rename, prop_clone_id, permission_map, id, account_id FROM charinfo WHERE name = ? LIMIT 1;", name) + ); +} + +std::vector MySQLDatabase::GetAccountCharacterIds(const uint32_t accountId) { + auto result = ExecuteSelect("SELECT id FROM charinfo WHERE account_id = ? ORDER BY last_login DESC LIMIT 4;", accountId); + + std::vector toReturn; + toReturn.reserve(result->rowsCount()); + while (result->next()) { + toReturn.push_back(result->getUInt("id")); + } + + return toReturn; +} + +void MySQLDatabase::InsertNewCharacter(const ICharInfo::Info info) { + ExecuteInsert( + "INSERT INTO `charinfo`(`id`, `account_id`, `name`, `pending_name`, `needs_rename`, `last_login`) VALUES (?,?,?,?,?,?)", + info.id, + info.accountId, + info.name, + info.pendingName, + false, + static_cast(time(NULL))); +} + +void MySQLDatabase::SetCharacterName(const uint32_t characterId, const std::string_view name) { + ExecuteUpdate("UPDATE charinfo SET name = ?, pending_name = '', needs_rename = 0, last_login = ? WHERE id = ? LIMIT 1;", name, static_cast(time(NULL)), characterId); +} + +void MySQLDatabase::SetPendingCharacterName(const uint32_t characterId, const std::string_view name) { + ExecuteUpdate("UPDATE charinfo SET pending_name = ?, needs_rename = 0, last_login = ? WHERE id = ? LIMIT 1", name, static_cast(time(NULL)), characterId); +} + +void MySQLDatabase::UpdateLastLoggedInCharacter(const uint32_t characterId) { + ExecuteUpdate("UPDATE charinfo SET last_login = ? WHERE id = ? LIMIT 1", static_cast(time(NULL)), characterId); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/CharXml.cpp b/dDatabase/GameDatabase/MySQL/Tables/CharXml.cpp new file mode 100644 index 00000000..91a6351e --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/CharXml.cpp @@ -0,0 +1,19 @@ +#include "MySQLDatabase.h" + +std::string MySQLDatabase::GetCharacterXml(const uint32_t charId) { + auto result = ExecuteSelect("SELECT xml_data FROM charxml WHERE id = ? LIMIT 1;", charId); + + if (!result->next()) { + return ""; + } + + return result->getString("xml_data").c_str(); +} + +void MySQLDatabase::UpdateCharacterXml(const uint32_t charId, const std::string_view lxfml) { + ExecuteUpdate("UPDATE charxml SET xml_data = ? WHERE id = ?;", lxfml, charId); +} + +void MySQLDatabase::InsertCharacterXml(const uint32_t characterId, const std::string_view lxfml) { + ExecuteInsert("INSERT INTO `charxml` (`id`, `xml_data`) VALUES (?,?)", characterId, lxfml); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/CommandLog.cpp b/dDatabase/GameDatabase/MySQL/Tables/CommandLog.cpp new file mode 100644 index 00000000..c8ae365a --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/CommandLog.cpp @@ -0,0 +1,5 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::InsertSlashCommandUsage(const uint32_t characterId, const std::string_view command) { + ExecuteInsert("INSERT INTO command_log (character_id, command) VALUES (?, ?);", characterId, command); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/Friends.cpp b/dDatabase/GameDatabase/MySQL/Tables/Friends.cpp new file mode 100644 index 00000000..da9b34a3 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/Friends.cpp @@ -0,0 +1,73 @@ +#include "MySQLDatabase.h" + +std::vector MySQLDatabase::GetFriendsList(const uint32_t charId) { + auto friendsList = ExecuteSelect( + R"QUERY( + SELECT fr.requested_player AS player, best_friend AS bff, ci.name AS name FROM + ( + SELECT CASE + WHEN player_id = ? THEN friend_id + WHEN friend_id = ? THEN player_id + END AS requested_player, best_friend FROM friends + ) AS fr + JOIN charinfo AS ci ON ci.id = fr.requested_player + WHERE fr.requested_player IS NOT NULL AND fr.requested_player != ?; + )QUERY", charId, charId, charId); + + std::vector toReturn; + toReturn.reserve(friendsList->rowsCount()); + + while (friendsList->next()) { + FriendData fd; + fd.friendID = friendsList->getUInt("player"); + fd.isBestFriend = friendsList->getInt("bff") == 3; // 0 = friends, 1 = left_requested, 2 = right_requested, 3 = both_accepted - are now bffs + fd.friendName = friendsList->getString("name").c_str(); + + toReturn.push_back(fd); + } + + return toReturn; +} + +std::optional MySQLDatabase::GetBestFriendStatus(const uint32_t playerCharacterId, const uint32_t friendCharacterId) { + auto result = ExecuteSelect("SELECT * FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?) LIMIT 1;", + playerCharacterId, + friendCharacterId, + friendCharacterId, + playerCharacterId + ); + + if (!result->next()) { + return std::nullopt; + } + + IFriends::BestFriendStatus toReturn; + toReturn.playerCharacterId = result->getUInt("player_id"); + toReturn.friendCharacterId = result->getUInt("friend_id"); + toReturn.bestFriendStatus = result->getUInt("best_friend"); + + return toReturn; +} + +void MySQLDatabase::SetBestFriendStatus(const uint32_t playerCharacterId, const uint32_t friendCharacterId, const uint32_t bestFriendStatus) { + ExecuteUpdate("UPDATE friends SET best_friend = ? WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?) LIMIT 1;", + bestFriendStatus, + playerCharacterId, + friendCharacterId, + friendCharacterId, + playerCharacterId + ); +} + +void MySQLDatabase::AddFriend(const uint32_t playerCharacterId, const uint32_t friendCharacterId) { + ExecuteInsert("INSERT IGNORE INTO friends (player_id, friend_id, best_friend) VALUES (?, ?, 0);", playerCharacterId, friendCharacterId); +} + +void MySQLDatabase::RemoveFriend(const uint32_t playerCharacterId, const uint32_t friendCharacterId) { + ExecuteDelete("DELETE FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?) LIMIT 1;", + playerCharacterId, + friendCharacterId, + friendCharacterId, + playerCharacterId + ); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/Leaderboard.cpp b/dDatabase/GameDatabase/MySQL/Tables/Leaderboard.cpp new file mode 100644 index 00000000..22403abb --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/Leaderboard.cpp @@ -0,0 +1,11 @@ +#include "MySQLDatabase.h" + +std::optional MySQLDatabase::GetDonationTotal(const uint32_t activityId) { + auto donation_total = ExecuteSelect("SELECT SUM(primaryScore) as donation_total FROM leaderboard WHERE game_id = ?;", activityId); + + if (!donation_total->next()) { + return std::nullopt; + } + + return donation_total->getUInt("donation_total"); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/Mail.cpp b/dDatabase/GameDatabase/MySQL/Tables/Mail.cpp new file mode 100644 index 00000000..63f5ceca --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/Mail.cpp @@ -0,0 +1,83 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::InsertNewMail(const IMail::MailInfo& mail) { + ExecuteInsert( + "INSERT INTO `mail` " + "(`sender_id`, `sender_name`, `receiver_id`, `receiver_name`, `time_sent`, `subject`, `body`, `attachment_id`, `attachment_lot`, `attachment_subkey`, `attachment_count`, `was_read`)" + " VALUES (?,?,?,?,?,?,?,?,?,?,?,0)", + mail.senderId, + mail.senderUsername, + mail.receiverId, + mail.recipient, + static_cast(time(NULL)), + mail.subject, + mail.body, + mail.itemID, + mail.itemLOT, + 0, + mail.itemCount); +} + +std::vector MySQLDatabase::GetMailForPlayer(const uint32_t characterId, const uint32_t numberOfMail) { + auto res = ExecuteSelect( + "SELECT id, subject, body, sender_name, attachment_id, attachment_lot, attachment_subkey, attachment_count, was_read, time_sent" + " FROM mail WHERE receiver_id=? limit ?;", + characterId, numberOfMail); + + std::vector toReturn; + toReturn.reserve(res->rowsCount()); + + while (res->next()) { + IMail::MailInfo mail; + mail.id = res->getUInt64("id"); + mail.subject = res->getString("subject").c_str(); + mail.body = res->getString("body").c_str(); + mail.senderUsername = res->getString("sender_name").c_str(); + mail.itemID = res->getUInt("attachment_id"); + mail.itemLOT = res->getInt("attachment_lot"); + mail.itemSubkey = res->getInt("attachment_subkey"); + mail.itemCount = res->getInt("attachment_count"); + mail.timeSent = res->getUInt64("time_sent"); + mail.wasRead = res->getBoolean("was_read"); + + toReturn.push_back(std::move(mail)); + } + + return toReturn; +} + +std::optional MySQLDatabase::GetMail(const uint64_t mailId) { + auto res = ExecuteSelect("SELECT attachment_lot, attachment_count FROM mail WHERE id=? LIMIT 1;", mailId); + + if (!res->next()) { + return std::nullopt; + } + + IMail::MailInfo toReturn; + toReturn.itemLOT = res->getInt("attachment_lot"); + toReturn.itemCount = res->getInt("attachment_count"); + + return toReturn; +} + +uint32_t MySQLDatabase::GetUnreadMailCount(const uint32_t characterId) { + auto res = ExecuteSelect("SELECT COUNT(*) AS number_unread FROM mail WHERE receiver_id=? AND was_read=0;", characterId); + + if (!res->next()) { + return 0; + } + + return res->getInt("number_unread"); +} + +void MySQLDatabase::MarkMailRead(const uint64_t mailId) { + ExecuteUpdate("UPDATE mail SET was_read=1 WHERE id=? LIMIT 1;", mailId); +} + +void MySQLDatabase::ClaimMailItem(const uint64_t mailId) { + ExecuteUpdate("UPDATE mail SET attachment_lot=0 WHERE id=? LIMIT 1;", mailId); +} + +void MySQLDatabase::DeleteMail(const uint64_t mailId) { + ExecuteDelete("DELETE FROM mail WHERE id=? LIMIT 1;", mailId); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/MigrationHistory.cpp b/dDatabase/GameDatabase/MySQL/Tables/MigrationHistory.cpp new file mode 100644 index 00000000..a0afc341 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/MigrationHistory.cpp @@ -0,0 +1,13 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::CreateMigrationHistoryTable() { + ExecuteInsert("CREATE TABLE IF NOT EXISTS migration_history (name TEXT NOT NULL, date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP());"); +} + +bool MySQLDatabase::IsMigrationRun(const std::string_view str) { + return ExecuteSelect("SELECT name FROM migration_history WHERE name = ?;", str)->next(); +} + +void MySQLDatabase::InsertMigration(const std::string_view str) { + ExecuteInsert("INSERT INTO migration_history (name) VALUES (?);", str); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/ObjectIdTracker.cpp b/dDatabase/GameDatabase/MySQL/Tables/ObjectIdTracker.cpp new file mode 100644 index 00000000..f22cd855 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/ObjectIdTracker.cpp @@ -0,0 +1,17 @@ +#include "MySQLDatabase.h" + +std::optional MySQLDatabase::GetCurrentPersistentId() { + auto result = ExecuteSelect("SELECT last_object_id FROM object_id_tracker"); + if (!result->next()) { + return std::nullopt; + } + return result->getUInt("last_object_id"); +} + +void MySQLDatabase::InsertDefaultPersistentId() { + ExecuteInsert("INSERT INTO object_id_tracker VALUES (1);"); +} + +void MySQLDatabase::UpdatePersistentId(const uint32_t newId) { + ExecuteUpdate("UPDATE object_id_tracker SET last_object_id = ?;", newId); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/PetNames.cpp b/dDatabase/GameDatabase/MySQL/Tables/PetNames.cpp new file mode 100644 index 00000000..dd2a3a6c --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/PetNames.cpp @@ -0,0 +1,26 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::SetPetNameModerationStatus(const LWOOBJID& petId, const IPetNames::Info& info) { + ExecuteInsert( + "INSERT INTO `pet_names` (`id`, `pet_name`, `approved`) VALUES (?, ?, ?) " + "ON DUPLICATE KEY UPDATE pet_name = ?, approved = ?;", + petId, + info.petName, + info.approvalStatus, + info.petName, + info.approvalStatus); +} + +std::optional MySQLDatabase::GetPetNameInfo(const LWOOBJID& petId) { + auto result = ExecuteSelect("SELECT pet_name, approved FROM pet_names WHERE id = ? LIMIT 1;", petId); + + if (!result->next()) { + return std::nullopt; + } + + IPetNames::Info toReturn; + toReturn.petName = result->getString("pet_name").c_str(); + toReturn.approvalStatus = result->getInt("approved"); + + return toReturn; +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/PlayKeys.cpp b/dDatabase/GameDatabase/MySQL/Tables/PlayKeys.cpp new file mode 100644 index 00000000..63f2822a --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/PlayKeys.cpp @@ -0,0 +1,11 @@ +#include "MySQLDatabase.h" + +std::optional MySQLDatabase::IsPlaykeyActive(const int32_t playkeyId) { + auto keyCheckRes = ExecuteSelect("SELECT active FROM `play_keys` WHERE id=?", playkeyId); + + if (!keyCheckRes->next()) { + return std::nullopt; + } + + return keyCheckRes->getBoolean("active"); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/PlayerCheatDetections.cpp b/dDatabase/GameDatabase/MySQL/Tables/PlayerCheatDetections.cpp new file mode 100644 index 00000000..753630c3 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/PlayerCheatDetections.cpp @@ -0,0 +1,7 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::InsertCheatDetection(const IPlayerCheatDetections::Info& info) { + ExecuteInsert( + "INSERT INTO player_cheat_detections (account_id, name, violation_msg, violation_system_address) VALUES (?, ?, ?, ?)", + info.userId, info.username, info.extraMessage, info.systemAddress); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/Property.cpp b/dDatabase/GameDatabase/MySQL/Tables/Property.cpp new file mode 100644 index 00000000..5d72a3b5 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/Property.cpp @@ -0,0 +1,57 @@ +#include "MySQLDatabase.h" + +std::optional MySQLDatabase::GetPropertyInfo(const LWOMAPID mapId, const LWOCLONEID cloneId) { + auto propertyEntry = ExecuteSelect( + "SELECT id, owner_id, clone_id, name, description, privacy_option, rejection_reason, last_updated, time_claimed, reputation, mod_approved " + "FROM properties WHERE zone_id = ? AND clone_id = ?;", mapId, cloneId); + + if (!propertyEntry->next()) { + return std::nullopt; + } + + IProperty::Info toReturn; + toReturn.id = propertyEntry->getUInt64("id"); + toReturn.ownerId = propertyEntry->getUInt64("owner_id"); + toReturn.cloneId = propertyEntry->getUInt64("clone_id"); + toReturn.name = propertyEntry->getString("name").c_str(); + toReturn.description = propertyEntry->getString("description").c_str(); + toReturn.privacyOption = propertyEntry->getInt("privacy_option"); + toReturn.rejectionReason = propertyEntry->getString("rejection_reason").c_str(); + toReturn.lastUpdatedTime = propertyEntry->getUInt("last_updated"); + toReturn.claimedTime = propertyEntry->getUInt("time_claimed"); + toReturn.reputation = propertyEntry->getUInt("reputation"); + toReturn.modApproved = propertyEntry->getUInt("mod_approved"); + + return toReturn; +} + +void MySQLDatabase::UpdatePropertyModerationInfo(const IProperty::Info& info) { + ExecuteUpdate("UPDATE properties SET privacy_option = ?, rejection_reason = ?, mod_approved = ? WHERE id = ? LIMIT 1;", + info.privacyOption, + info.rejectionReason, + info.modApproved, + info.id); +} + +void MySQLDatabase::UpdatePropertyDetails(const IProperty::Info& info) { + ExecuteUpdate("UPDATE properties SET name = ?, description = ? WHERE id = ? LIMIT 1;", info.name, info.description, info.id); +} + +void MySQLDatabase::UpdatePerformanceCost(const LWOZONEID& zoneId, const float performanceCost) { + ExecuteUpdate("UPDATE properties SET performance_cost = ? WHERE zone_id = ? AND clone_id = ? LIMIT 1;", performanceCost, zoneId.GetMapID(), zoneId.GetCloneID()); +} + +void MySQLDatabase::InsertNewProperty(const IProperty::Info& info, const uint32_t templateId, const LWOZONEID& zoneId) { + auto insertion = ExecuteInsert( + "INSERT INTO properties" + "(id, owner_id, template_id, clone_id, name, description, zone_id, rent_amount, rent_due, privacy_option, last_updated, time_claimed, rejection_reason, reputation, performance_cost)" + "VALUES (?, ?, ?, ?, ?, ?, ?, 0, 0, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), '', 0, 0.0)", + info.id, + info.ownerId, + templateId, + zoneId.GetCloneID(), + info.name, + info.description, + zoneId.GetMapID() + ); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/PropertyContents.cpp b/dDatabase/GameDatabase/MySQL/Tables/PropertyContents.cpp new file mode 100644 index 00000000..dba82d56 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/PropertyContents.cpp @@ -0,0 +1,54 @@ +#include "MySQLDatabase.h" + +std::vector MySQLDatabase::GetPropertyModels(const LWOOBJID& propertyId) { + auto result = ExecuteSelect("SELECT id, lot, x, y, z, rx, ry, rz, rw, ugc_id FROM properties_contents WHERE property_id = ?;", propertyId); + + std::vector toReturn; + toReturn.reserve(result->rowsCount()); + while (result->next()) { + IPropertyContents::Model model; + model.id = result->getUInt64("id"); + model.lot = static_cast(result->getUInt("lot")); + model.position.x = result->getFloat("x"); + model.position.y = result->getFloat("y"); + model.position.z = result->getFloat("z"); + model.rotation.w = result->getFloat("rw"); + model.rotation.x = result->getFloat("rx"); + model.rotation.y = result->getFloat("ry"); + model.rotation.z = result->getFloat("rz"); + model.ugcId = result->getUInt64("ugc_id"); + toReturn.push_back(std::move(model)); + } + return toReturn; +} + +void MySQLDatabase::InsertNewPropertyModel(const LWOOBJID& propertyId, const IPropertyContents::Model& model, const std::string_view name) { + try { + ExecuteInsert( + "INSERT INTO properties_contents" + "(id, property_id, ugc_id, lot, x, y, z, rx, ry, rz, rw, model_name, model_description, behavior_1, behavior_2, behavior_3, behavior_4, behavior_5)" + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 18 + model.id, propertyId, model.ugcId == 0 ? std::nullopt : std::optional(model.ugcId), static_cast(model.lot), + model.position.x, model.position.y, model.position.z, model.rotation.x, model.rotation.y, model.rotation.z, model.rotation.w, + name, "", // Model description. TODO implement this. + 0, // behavior 1. TODO implement this. + 0, // behavior 2. TODO implement this. + 0, // behavior 3. TODO implement this. + 0, // behavior 4. TODO implement this. + 0 // behavior 5. TODO implement this. + ); + } catch (sql::SQLException& e) { + LOG("Error inserting new property model: %s", e.what()); + } +} + +void MySQLDatabase::UpdateModelPositionRotation(const LWOOBJID& propertyId, const NiPoint3& position, const NiQuaternion& rotation) { + ExecuteUpdate( + "UPDATE properties_contents SET x = ?, y = ?, z = ?, rx = ?, ry = ?, rz = ?, rw = ? WHERE id = ?;", + position.x, position.y, position.z, rotation.x, rotation.y, rotation.z, rotation.w, propertyId); +} + +void MySQLDatabase::RemoveModel(const LWOOBJID& modelId) { + ExecuteDelete("DELETE FROM properties_contents WHERE id = ?;", modelId); +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/Servers.cpp b/dDatabase/GameDatabase/MySQL/Tables/Servers.cpp new file mode 100644 index 00000000..4411ad21 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/Servers.cpp @@ -0,0 +1,23 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::SetMasterIp(const std::string_view ip, const uint32_t port) { + // We only want our 1 entry anyways, so we can just delete all and reinsert the one we want + // since it would be two queries anyways. + ExecuteDelete("TRUNCATE TABLE servers;"); + ExecuteInsert("INSERT INTO `servers` (`name`, `ip`, `port`, `state`, `version`) VALUES ('master', ?, ?, 0, 171022)", ip, port); +} + +std::optional MySQLDatabase::GetMasterInfo() { + auto result = ExecuteSelect("SELECT ip, port FROM servers WHERE name='master' LIMIT 1;"); + + if (!result->next()) { + return std::nullopt; + } + + MasterInfo toReturn; + + toReturn.ip = result->getString("ip").c_str(); + toReturn.port = result->getInt("port"); + + return toReturn; +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/Ugc.cpp b/dDatabase/GameDatabase/MySQL/Tables/Ugc.cpp new file mode 100644 index 00000000..3b62a51b --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/Ugc.cpp @@ -0,0 +1,71 @@ +#include "MySQLDatabase.h" + +std::vector MySQLDatabase::GetUgcModels(const LWOOBJID& propertyId) { + auto result = ExecuteSelect( + "SELECT lxfml, u.id FROM ugc AS u JOIN properties_contents AS pc ON u.id = pc.ugc_id WHERE lot = 14 AND property_id = ? AND pc.ugc_id IS NOT NULL;", + propertyId); + + std::vector toReturn; + + while (result->next()) { + IUgc::Model model; + + // blob is owned by the query, so we need to do a deep copy :/ + std::unique_ptr blob(result->getBlob("lxfml")); + model.lxfmlData << blob->rdbuf(); + model.id = result->getUInt64("id"); + toReturn.push_back(std::move(model)); + } + + return toReturn; +} + +std::vector MySQLDatabase::GetAllUgcModels() { + auto result = ExecuteSelect("SELECT id, lxfml FROM ugc;"); + + std::vector models; + models.reserve(result->rowsCount()); + while (result->next()) { + IUgc::Model model; + model.id = result->getInt64("id"); + + // blob is owned by the query, so we need to do a deep copy :/ + std::unique_ptr blob(result->getBlob("lxfml")); + model.lxfmlData << blob->rdbuf(); + models.push_back(std::move(model)); + } + + return models; +} + +void MySQLDatabase::RemoveUnreferencedUgcModels() { + ExecuteDelete("DELETE FROM ugc WHERE id NOT IN (SELECT ugc_id FROM properties_contents WHERE ugc_id IS NOT NULL);"); +} + +void MySQLDatabase::InsertNewUgcModel( + std::istringstream& sd0Data, // cant be const sad + const uint32_t blueprintId, + const uint32_t accountId, + const uint32_t characterId) { + const std::istream stream(sd0Data.rdbuf()); + ExecuteInsert( + "INSERT INTO `ugc`(`id`, `account_id`, `character_id`, `is_optimized`, `lxfml`, `bake_ao`, `filename`) VALUES (?,?,?,?,?,?,?)", + blueprintId, + accountId, + characterId, + 0, + &stream, + false, + "weedeater.lxfml" + ); +} + +void MySQLDatabase::DeleteUgcModelData(const LWOOBJID& modelId) { + ExecuteDelete("DELETE FROM ugc WHERE id = ?;", modelId); + ExecuteDelete("DELETE FROM properties_contents WHERE ugc_id = ?;", modelId); +} + +void MySQLDatabase::UpdateUgcModelData(const LWOOBJID& modelId, std::istringstream& lxfml) { + const std::istream stream(lxfml.rdbuf()); + ExecuteUpdate("UPDATE ugc SET lxfml = ? WHERE id = ?;", &stream, modelId); +} diff --git a/dGame/Character.cpp b/dGame/Character.cpp index 7259602f..ee04710a 100644 --- a/dGame/Character.cpp +++ b/dGame/Character.cpp @@ -25,104 +25,36 @@ Character::Character(uint32_t id, User* parentUser) { //First load the name, etc: m_ID = id; - - sql::PreparedStatement* stmt = Database::CreatePreppedStmt( - "SELECT name, pending_name, needs_rename, prop_clone_id, permission_map FROM charinfo WHERE id=? LIMIT 1;" - ); - - stmt->setInt64(1, id); - - sql::ResultSet* res = stmt->executeQuery(); - - while (res->next()) { - m_Name = res->getString(1).c_str(); - m_UnapprovedName = res->getString(2).c_str(); - m_NameRejected = res->getBoolean(3); - m_PropertyCloneID = res->getUInt(4); - m_PermissionMap = static_cast(res->getUInt64(5)); - } - - delete res; - delete stmt; - - //Load the xmlData now: - sql::PreparedStatement* xmlStmt = Database::CreatePreppedStmt( - "SELECT xml_data FROM charxml WHERE id=? LIMIT 1;" - ); - - xmlStmt->setInt64(1, id); - - sql::ResultSet* xmlRes = xmlStmt->executeQuery(); - while (xmlRes->next()) { - m_XMLData = xmlRes->getString(1).c_str(); - } - - delete xmlRes; - delete xmlStmt; - - m_ZoneID = 0; //TEMP! Set back to 0 when done. This is so we can see loading screen progress for testing. - m_ZoneInstanceID = 0; //These values don't really matter, these are only used on the char select screen and seem unused. - m_ZoneCloneID = 0; - - m_Doc = nullptr; - - //Quickly and dirtly parse the xmlData to get the info we need: - DoQuickXMLDataParse(); - - //Set our objectID: - m_ObjectID = m_ID; - GeneralUtils::SetBit(m_ObjectID, eObjectBits::CHARACTER); - GeneralUtils::SetBit(m_ObjectID, eObjectBits::PERSISTENT); - m_ParentUser = parentUser; m_OurEntity = nullptr; - m_BuildMode = false; + m_Doc = nullptr; } Character::~Character() { - delete m_Doc; + if (m_Doc) delete m_Doc; m_Doc = nullptr; + m_OurEntity = nullptr; + m_ParentUser = nullptr; } -void Character::UpdateFromDatabase() { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt( - "SELECT name, pending_name, needs_rename, prop_clone_id, permission_map FROM charinfo WHERE id=? LIMIT 1;" - ); +void Character::UpdateInfoFromDatabase() { + auto charInfo = Database::Get()->GetCharacterInfo(m_ID); - stmt->setInt64(1, m_ID); - - sql::ResultSet* res = stmt->executeQuery(); - - while (res->next()) { - m_Name = res->getString(1).c_str(); - m_UnapprovedName = res->getString(2).c_str(); - m_NameRejected = res->getBoolean(3); - m_PropertyCloneID = res->getUInt(4); - m_PermissionMap = static_cast(res->getUInt64(5)); + if (charInfo) { + m_Name = charInfo->name; + m_UnapprovedName = charInfo->pendingName; + m_NameRejected = charInfo->needsRename; + m_PropertyCloneID = charInfo->cloneId; + m_PermissionMap = charInfo->permissionMap; } - delete res; - delete stmt; - //Load the xmlData now: - sql::PreparedStatement* xmlStmt = Database::CreatePreppedStmt( - "SELECT xml_data FROM charxml WHERE id=? LIMIT 1;" - ); - xmlStmt->setInt64(1, m_ID); - - sql::ResultSet* xmlRes = xmlStmt->executeQuery(); - while (xmlRes->next()) { - m_XMLData = xmlRes->getString(1).c_str(); - } - - delete xmlRes; - delete xmlStmt; + m_XMLData = Database::Get()->GetCharacterXml(m_ID); m_ZoneID = 0; //TEMP! Set back to 0 when done. This is so we can see loading screen progress for testing. m_ZoneInstanceID = 0; //These values don't really matter, these are only used on the char select screen and seem unused. m_ZoneCloneID = 0; - delete m_Doc; m_Doc = nullptr; //Quickly and dirtly parse the xmlData to get the info we need: @@ -137,6 +69,11 @@ void Character::UpdateFromDatabase() { m_BuildMode = false; } +void Character::UpdateFromDatabase() { + if (m_Doc) delete m_Doc; + UpdateInfoFromDatabase(); +} + void Character::DoQuickXMLDataParse() { if (m_XMLData.size() == 0) return; @@ -406,17 +343,11 @@ void Character::SetIsNewLogin() { void Character::WriteToDatabase() { //Dump our xml into m_XMLData: - auto* printer = new tinyxml2::XMLPrinter(0, true, 0); - m_Doc->Print(printer); - m_XMLData = printer->CStr(); + tinyxml2::XMLPrinter printer(0, true, 0); + m_Doc->Print(&printer); //Finally, save to db: - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("UPDATE charxml SET xml_data=? WHERE id=?"); - stmt->setString(1, m_XMLData.c_str()); - stmt->setUInt(2, m_ID); - stmt->execute(); - delete stmt; - delete printer; + Database::Get()->UpdateCharacterXml(m_ID, printer.CStr()); } void Character::SetPlayerFlag(const uint32_t flagId, const bool value) { diff --git a/dGame/Character.h b/dGame/Character.h index 79ce0c0c..77a52f44 100644 --- a/dGame/Character.h +++ b/dGame/Character.h @@ -458,6 +458,7 @@ public: void SetBillboardVisible(bool visible); private: + void UpdateInfoFromDatabase(); /** * The ID of this character. First 32 bits of the ObjectID. */ diff --git a/dGame/LeaderboardManager.cpp b/dGame/LeaderboardManager.cpp index b7083ea8..6d928aaa 100644 --- a/dGame/LeaderboardManager.cpp +++ b/dGame/LeaderboardManager.cpp @@ -237,7 +237,7 @@ void Leaderboard::SetupLeaderboard(bool weekly, uint32_t resultStart, uint32_t r } baseLookup += " LIMIT 1"; LOG_DEBUG("query is %s", baseLookup.c_str()); - std::unique_ptr baseQuery(Database::CreatePreppedStmt(baseLookup)); + std::unique_ptr baseQuery(Database::Get()->CreatePreppedStmt(baseLookup)); baseQuery->setInt(1, this->gameID); std::unique_ptr baseResult(baseQuery->executeQuery()); @@ -250,7 +250,7 @@ void Leaderboard::SetupLeaderboard(bool weekly, uint32_t resultStart, uint32_t r std::unique_ptr lookupBuffer = std::make_unique(STRING_LENGTH); int32_t res = snprintf(lookupBuffer.get(), STRING_LENGTH, queryBase.c_str(), orderBase.data(), filter.c_str(), resultStart, resultEnd); DluAssert(res != -1); - std::unique_ptr query(Database::CreatePreppedStmt(lookupBuffer.get())); + std::unique_ptr query(Database::Get()->CreatePreppedStmt(lookupBuffer.get())); LOG_DEBUG("Query is %s vars are %i %i %i", lookupBuffer.get(), this->gameID, this->relatedPlayer, relatedPlayerLeaderboardId); query->setInt(1, this->gameID); if (this->infoType == InfoType::Friends) { @@ -301,7 +301,7 @@ std::string FormatInsert(const Leaderboard::Type& type, const Score& score, cons void LeaderboardManager::SaveScore(const LWOOBJID& playerID, const GameID activityId, const float primaryScore, const float secondaryScore, const float tertiaryScore) { const Leaderboard::Type leaderboardType = GetLeaderboardType(activityId); - std::unique_ptr query(Database::CreatePreppedStmt("SELECT * FROM leaderboard WHERE character_id = ? AND game_id = ?;")); + std::unique_ptr query(Database::Get()->CreatePreppedStmt("SELECT * FROM leaderboard WHERE character_id = ? AND game_id = ?;")); query->setInt(1, playerID); query->setInt(2, activityId); std::unique_ptr myScoreResult(query->executeQuery()); @@ -378,14 +378,14 @@ void LeaderboardManager::SaveScore(const LWOOBJID& playerID, const GameID activi saveQuery = FormatInsert(leaderboardType, newScore, false); } LOG("save query %s %i %i", saveQuery.c_str(), playerID, activityId); - std::unique_ptr saveStatement(Database::CreatePreppedStmt(saveQuery)); + std::unique_ptr saveStatement(Database::Get()->CreatePreppedStmt(saveQuery)); saveStatement->setInt(1, playerID); saveStatement->setInt(2, activityId); saveStatement->execute(); // track wins separately if (leaderboardType == Leaderboard::Type::Racing && tertiaryScore != 0.0f) { - std::unique_ptr winUpdate(Database::CreatePreppedStmt("UPDATE leaderboard SET numWins = numWins + 1 WHERE character_id = ? AND game_id = ?;")); + std::unique_ptr winUpdate(Database::Get()->CreatePreppedStmt("UPDATE leaderboard SET numWins = numWins + 1 WHERE character_id = ? AND game_id = ?;")); winUpdate->setInt(1, playerID); winUpdate->setInt(2, activityId); winUpdate->execute(); diff --git a/dGame/User.cpp b/dGame/User.cpp index afde75f6..ce440bd7 100644 --- a/dGame/User.cpp +++ b/dGame/User.cpp @@ -23,41 +23,23 @@ User::User(const SystemAddress& sysAddr, const std::string& username, const std: m_IsBestFriendMap = std::unordered_map(); - //HACK HACK HACK - //This needs to be re-enabled / updated whenever the mute stuff is moved to another table. - //This was only done because otherwise the website's account page dies and the website is waiting on a migration to wordpress. - - //sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id, gmlevel, mute_expire FROM accounts WHERE name=? LIMIT 1;"); - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id, gm_level FROM accounts WHERE name=? LIMIT 1;"); - stmt->setString(1, username.c_str()); - - sql::ResultSet* res = stmt->executeQuery(); - while (res->next()) { - m_AccountID = res->getUInt(1); - m_MaxGMLevel = static_cast(res->getInt(2)); + auto userInfo = Database::Get()->GetAccountInfo(username); + if (userInfo) { + m_AccountID = userInfo->id; + m_MaxGMLevel = userInfo->maxGmLevel; m_MuteExpire = 0; //res->getUInt64(3); } - delete res; - delete stmt; - //If we're loading a zone, we'll load the last used (aka current) character: if (Game::server->GetZoneID() != 0) { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id FROM charinfo WHERE account_id=? ORDER BY last_login DESC LIMIT 1;"); - stmt->setUInt(1, m_AccountID); - - sql::ResultSet* res = stmt->executeQuery(); - if (res->rowsCount() > 0) { - while (res->next()) { - LWOOBJID objID = res->getUInt64(1); - Character* character = new Character(uint32_t(objID), this); - m_Characters.push_back(character); - LOG("Loaded %llu as it is the last used char", objID); - } + auto characterList = Database::Get()->GetAccountCharacterIds(m_AccountID); + if (!characterList.empty()) { + const uint32_t lastUsedCharacterId = characterList.front(); + Character* character = new Character(lastUsedCharacterId, this); + character->UpdateFromDatabase(); + m_Characters.push_back(character); + LOG("Loaded %i as it is the last used char", lastUsedCharacterId); } - - delete res; - delete stmt; } } @@ -92,10 +74,7 @@ User& User::operator= (const User& other) { } bool User::operator== (const User& other) const { - if (m_Username == other.m_Username || m_SessionKey == other.m_SessionKey || m_SystemAddress == other.m_SystemAddress) - return true; - - return false; + return m_Username == other.m_Username || m_SessionKey == other.m_SessionKey || m_SystemAddress == other.m_SystemAddress; } Character* User::GetLastUsedChar() { diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 0b26822d..9820636a 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -158,20 +158,6 @@ void UserManager::DeletePendingRemovals() { m_UsersToDelete.clear(); } -bool UserManager::IsNameAvailable(const std::string& requestedName) { - bool toReturn = false; //To allow for a clean exit - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id FROM charinfo WHERE name=? OR pending_name=? LIMIT 1;"); - stmt->setString(1, requestedName.c_str()); - stmt->setString(2, requestedName.c_str()); - - sql::ResultSet* res = stmt->executeQuery(); - if (res->rowsCount() == 0) toReturn = true; - - delete stmt; - delete res; - return toReturn; -} - std::string UserManager::GetPredefinedName(uint32_t firstNameIndex, uint32_t middleNameIndex, uint32_t lastNameIndex) { if (firstNameIndex > m_FirstNames.size() || middleNameIndex > m_MiddleNames.size() || lastNameIndex > m_LastNames.size()) return std::string("INVALID"); return std::string(m_FirstNames[firstNameIndex] + m_MiddleNames[middleNameIndex] + m_LastNames[lastNameIndex]); @@ -200,11 +186,6 @@ bool UserManager::IsNamePreapproved(const std::string& requestedName) { void UserManager::RequestCharacterList(const SystemAddress& sysAddr) { User* u = GetUser(sysAddr); if (!u) return; - - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id FROM charinfo WHERE account_id=? ORDER BY last_login DESC LIMIT 4;"); - stmt->setUInt(1, u->GetAccountID()); - - sql::ResultSet* res = stmt->executeQuery(); std::vector& chars = u->GetCharacters(); for (size_t i = 0; i < chars.size(); ++i) { @@ -232,16 +213,13 @@ void UserManager::RequestCharacterList(const SystemAddress& sysAddr) { chars.clear(); - while (res->next()) { - LWOOBJID objID = res->getUInt64(1); - Character* character = new Character(uint32_t(objID), u); + for (const auto& characterId : Database::Get()->GetAccountCharacterIds(u->GetAccountID())) { + Character* character = new Character(characterId, u); + character->UpdateFromDatabase(); character->SetIsNewLogin(); chars.push_back(character); } - delete res; - delete stmt; - WorldPackets::SendCharacterList(sysAddr, u); } @@ -270,19 +248,19 @@ void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) LOT shirtLOT = FindCharShirtID(shirtColor, shirtStyle); LOT pantsLOT = FindCharPantsID(pantsColor); - if (name != "" && !UserManager::IsNameAvailable(name)) { + if (!name.empty() && Database::Get()->GetCharacterInfo(name)) { LOG("AccountID: %i chose unavailable name: %s", u->GetAccountID(), name.c_str()); WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::CUSTOM_NAME_IN_USE); return; } - if (!IsNameAvailable(predefinedName)) { + if (Database::Get()->GetCharacterInfo(predefinedName)) { LOG("AccountID: %i chose unavailable predefined name: %s", u->GetAccountID(), predefinedName.c_str()); WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::PREDEFINED_NAME_IN_USE); return; } - if (name == "") { + if (name.empty()) { LOG("AccountID: %i is creating a character with predefined name: %s", u->GetAccountID(), predefinedName.c_str()); } else { LOG("AccountID: %i is creating a character with name: %s (temporary: %s)", u->GetAccountID(), name.c_str(), predefinedName.c_str()); @@ -290,13 +268,8 @@ void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) //Now that the name is ok, we can get an objectID from Master: ObjectIDManager::Instance()->RequestPersistentID([=](uint32_t objectID) { - sql::PreparedStatement* overlapStmt = Database::CreatePreppedStmt("SELECT id FROM charinfo WHERE id = ?"); - overlapStmt->setUInt(1, objectID); - - auto* overlapResult = overlapStmt->executeQuery(); - - if (overlapResult->next()) { - LOG("Character object id unavailable, check objectidtracker!"); + if (Database::Get()->GetCharacterInfo(objectID)) { + LOG("Character object id unavailable, check object_id_tracker!"); WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::OBJECT_ID_UNAVAILABLE); return; } @@ -337,41 +310,19 @@ void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) bool nameOk = IsNamePreapproved(name); if (!nameOk && u->GetMaxGMLevel() > eGameMasterLevel::FORUM_MODERATOR) nameOk = true; - if (name != "") { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("INSERT INTO `charinfo`(`id`, `account_id`, `name`, `pending_name`, `needs_rename`, `last_login`) VALUES (?,?,?,?,?,?)"); - stmt->setUInt(1, objectID); - stmt->setUInt(2, u->GetAccountID()); - stmt->setString(3, predefinedName.c_str()); - stmt->setString(4, name.c_str()); - stmt->setBoolean(5, false); - stmt->setUInt64(6, time(NULL)); + std::string_view nameToAssign = !name.empty() && nameOk ? name : predefinedName; + std::string pendingName = !name.empty() && !nameOk ? name : ""; - if (nameOk) { - stmt->setString(3, name.c_str()); - stmt->setString(4, ""); - } + ICharInfo::Info info; + info.name = nameToAssign; + info.pendingName = pendingName; + info.id = objectID; + info.accountId = u->GetAccountID(); - stmt->execute(); - delete stmt; - } else { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("INSERT INTO `charinfo`(`id`, `account_id`, `name`, `pending_name`, `needs_rename`, `last_login`) VALUES (?,?,?,?,?,?)"); - stmt->setUInt(1, objectID); - stmt->setUInt(2, u->GetAccountID()); - stmt->setString(3, predefinedName.c_str()); - stmt->setString(4, ""); - stmt->setBoolean(5, false); - stmt->setUInt64(6, time(NULL)); - - stmt->execute(); - delete stmt; - } + Database::Get()->InsertNewCharacter(info); //Now finally insert our character xml: - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("INSERT INTO `charxml`(`id`, `xml_data`) VALUES (?,?)"); - stmt->setUInt(1, objectID); - stmt->setString(2, xml3.str().c_str()); - stmt->execute(); - delete stmt; + Database::Get()->InsertCharacterXml(objectID, xml3.str()); WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::SUCCESS); UserManager::RequestCharacterList(sysAddr); @@ -403,73 +354,12 @@ void UserManager::DeleteCharacter(const SystemAddress& sysAddr, Packet* packet) WorldPackets::SendCharacterDeleteResponse(sysAddr, false); } else { LOG("Deleting character %i", charID); - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM charxml WHERE id=? LIMIT 1;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM command_log WHERE character_id=?;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM friends WHERE player_id=? OR friend_id=?;"); - stmt->setUInt(1, charID); - stmt->setUInt(2, charID); - stmt->execute(); - delete stmt; - CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::PLAYER_REMOVED_NOTIFICATION); - bitStream.Write(objectID); - Game::chatServer->Send(&bitStream, SYSTEM_PRIORITY, RELIABLE, 0, Game::chatSysAddr, false); - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM leaderboard WHERE character_id=?;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt( - "DELETE FROM properties_contents WHERE property_id IN (SELECT id FROM properties WHERE owner_id=?);" - ); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM properties WHERE owner_id=?;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM ugc WHERE character_id=?;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM activity_log WHERE character_id=?;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM mail WHERE receiver_id=?;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } - { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM charinfo WHERE id=? LIMIT 1;"); - stmt->setUInt64(1, charID); - stmt->execute(); - delete stmt; - } + Database::Get()->DeleteCharacter(charID); + + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::PLAYER_REMOVED_NOTIFICATION); + bitStream.Write(objectID); + Game::chatServer->Send(&bitStream, SYSTEM_PRIORITY, RELIABLE, 0, Game::chatSysAddr, false); WorldPackets::SendCharacterDeleteResponse(sysAddr, true); } @@ -517,26 +407,14 @@ void UserManager::RenameCharacter(const SystemAddress& sysAddr, Packet* packet) return; } - if (IsNameAvailable(newName)) { + if (Database::Get()->GetCharacterInfo(newName)) { if (IsNamePreapproved(newName)) { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("UPDATE charinfo SET name=?, pending_name='', needs_rename=0, last_login=? WHERE id=? LIMIT 1"); - stmt->setString(1, newName); - stmt->setUInt64(2, time(NULL)); - stmt->setUInt(3, character->GetID()); - stmt->execute(); - delete stmt; - + Database::Get()->SetCharacterName(charID, newName); LOG("Character %s now known as %s", character->GetName().c_str(), newName.c_str()); WorldPackets::SendCharacterRenameResponse(sysAddr, eRenameResponse::SUCCESS); UserManager::RequestCharacterList(sysAddr); } else { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("UPDATE charinfo SET pending_name=?, needs_rename=0, last_login=? WHERE id=? LIMIT 1"); - stmt->setString(1, newName); - stmt->setUInt64(2, time(NULL)); - stmt->setUInt(3, character->GetID()); - stmt->execute(); - delete stmt; - + Database::Get()->SetPendingCharacterName(charID, newName); LOG("Character %s has been renamed to %s and is pending approval by a moderator.", character->GetName().c_str(), newName.c_str()); WorldPackets::SendCharacterRenameResponse(sysAddr, eRenameResponse::SUCCESS); UserManager::RequestCharacterList(sysAddr); @@ -566,11 +444,7 @@ void UserManager::LoginCharacter(const SystemAddress& sysAddr, uint32_t playerID } if (hasCharacter && character) { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("UPDATE charinfo SET last_login=? WHERE id=? LIMIT 1"); - stmt->setUInt64(1, time(NULL)); - stmt->setUInt(2, playerID); - stmt->execute(); - delete stmt; + Database::Get()->UpdateLastLoggedInCharacter(playerID); uint32_t zoneID = character->GetZoneID(); if (zoneID == LWOZONEID_INVALID) zoneID = 1000; //Send char to VE diff --git a/dGame/UserManager.h b/dGame/UserManager.h index bf9985a1..94bf5e95 100644 --- a/dGame/UserManager.h +++ b/dGame/UserManager.h @@ -28,7 +28,6 @@ public: bool DeleteUser(const SystemAddress& sysAddr); //Returns true on succesful deletion void DeletePendingRemovals(); - bool IsNameAvailable(const std::string& requestedName); std::string GetPredefinedName(uint32_t firstNameIndex, uint32_t middleNameIndex, uint32_t lastNameIndex); bool IsNamePreapproved(const std::string& requestedName); diff --git a/dGame/dComponents/CharacterComponent.cpp b/dGame/dComponents/CharacterComponent.cpp index 7a30d821..8c59b28e 100644 --- a/dGame/dComponents/CharacterComponent.cpp +++ b/dGame/dComponents/CharacterComponent.cpp @@ -700,7 +700,7 @@ std::string CharacterComponent::StatisticsToString() const { } uint64_t CharacterComponent::GetStatisticFromSplit(std::vector split, uint32_t index) { - return split.size() > index ? std::stoul(split.at(index)) : 0; + return split.size() > index ? std::stoull(split.at(index)) : 0; } ZoneStatistics& CharacterComponent::GetZoneStatisticsForMap(LWOMAPID mapID) { diff --git a/dGame/dComponents/DonationVendorComponent.cpp b/dGame/dComponents/DonationVendorComponent.cpp index 7f85ea97..6abc959a 100644 --- a/dGame/dComponents/DonationVendorComponent.cpp +++ b/dGame/dComponents/DonationVendorComponent.cpp @@ -22,10 +22,8 @@ DonationVendorComponent::DonationVendorComponent(Entity* parent) : VendorCompone return; } - std::unique_ptr query(Database::CreatePreppedStmt("SELECT SUM(primaryScore) as donation_total FROM leaderboard WHERE game_id = ?;")); - query->setInt(1, m_ActivityId); - std::unique_ptr donation_total(query->executeQuery()); - if (donation_total->next()) m_TotalDonated = donation_total->getInt("donation_total"); + auto donationTotal = Database::Get()->GetDonationTotal(m_ActivityId); + if (donationTotal) m_TotalDonated = donationTotal.value(); m_TotalRemaining = m_Goal - m_TotalDonated; m_PercentComplete = m_TotalDonated/static_cast(m_Goal); } diff --git a/dGame/dComponents/PetComponent.cpp b/dGame/dComponents/PetComponent.cpp index df473055..1780437e 100644 --- a/dGame/dComponents/PetComponent.cpp +++ b/dGame/dComponents/PetComponent.cpp @@ -1097,37 +1097,18 @@ void PetComponent::SetPetNameForModeration(const std::string& petName) { approved = 2; //approved } - auto deleteStmt = Database::CreatePreppedStmt("DELETE FROM pet_names WHERE id = ? LIMIT 1;"); - deleteStmt->setUInt64(1, m_DatabaseId); - - deleteStmt->execute(); - - delete deleteStmt; - //Save to db: - auto stmt = Database::CreatePreppedStmt("INSERT INTO `pet_names` (`id`, `pet_name`, `approved`) VALUES (?, ?, ?);"); - stmt->setUInt64(1, m_DatabaseId); - stmt->setString(2, petName); - stmt->setInt(3, approved); - stmt->execute(); - delete stmt; + Database::Get()->SetPetNameModerationStatus(m_DatabaseId, IPetNames::Info{petName, approved}); } void PetComponent::LoadPetNameFromModeration() { - auto stmt = Database::CreatePreppedStmt("SELECT pet_name, approved FROM pet_names WHERE id = ? LIMIT 1;"); - stmt->setUInt64(1, m_DatabaseId); - - auto res = stmt->executeQuery(); - while (res->next()) { - m_ModerationStatus = res->getInt(2); - + auto petNameInfo = Database::Get()->GetPetNameInfo(m_DatabaseId); + if (petNameInfo) { + m_ModerationStatus = petNameInfo->approvalStatus; if (m_ModerationStatus == 2) { - m_Name = res->getString(1); + m_Name = petNameInfo->petName; } } - - delete res; - delete stmt; } void PetComponent::SetPreconditions(std::string& preconditions) { diff --git a/dGame/dComponents/PropertyEntranceComponent.cpp b/dGame/dComponents/PropertyEntranceComponent.cpp index d8b3eb95..4d7ea16d 100644 --- a/dGame/dComponents/PropertyEntranceComponent.cpp +++ b/dGame/dComponents/PropertyEntranceComponent.cpp @@ -103,7 +103,7 @@ std::string PropertyEntranceComponent::BuildQuery(Entity* entity, int32_t sortMe if (sortMethod == SORT_TYPE_FEATURED || sortMethod == SORT_TYPE_FRIENDS) { std::string friendsList = " AND p.owner_id IN ("; - auto friendsListQuery = Database::CreatePreppedStmt("SELECT * FROM (SELECT CASE WHEN player_id = ? THEN friend_id WHEN friend_id = ? THEN player_id END AS requested_player FROM friends ) AS fr WHERE requested_player IS NOT NULL ORDER BY requested_player DESC;"); + auto friendsListQuery = Database::Get()->CreatePreppedStmt("SELECT * FROM (SELECT CASE WHEN player_id = ? THEN friend_id WHEN friend_id = ? THEN player_id END AS requested_player FROM friends ) AS fr WHERE requested_player IS NOT NULL ORDER BY requested_player DESC;"); friendsListQuery->setUInt(1, character->GetID()); friendsListQuery->setUInt(2, character->GetID()); @@ -147,7 +147,7 @@ void PropertyEntranceComponent::OnPropertyEntranceSync(Entity* entity, bool incl if (!character) return; // Player property goes in index 1 of the vector. This is how the client expects it. - auto playerPropertyLookup = Database::CreatePreppedStmt("SELECT * FROM properties WHERE owner_id = ? AND zone_id = ?"); + auto playerPropertyLookup = Database::Get()->CreatePreppedStmt("SELECT * FROM properties WHERE owner_id = ? AND zone_id = ?"); playerPropertyLookup->setInt(1, character->GetID()); playerPropertyLookup->setInt(2, this->m_MapID); @@ -180,7 +180,7 @@ void PropertyEntranceComponent::OnPropertyEntranceSync(Entity* entity, bool incl const auto query = BuildQuery(entity, sortMethod, character); - auto propertyLookup = Database::CreatePreppedStmt(query); + auto propertyLookup = Database::Get()->CreatePreppedStmt(query); const auto searchString = "%" + filterText + "%"; propertyLookup->setUInt(1, this->m_MapID); @@ -209,7 +209,7 @@ void PropertyEntranceComponent::OnPropertyEntranceSync(Entity* entity, bool incl std::string ownerName = ""; bool isOwned = true; - auto nameLookup = Database::CreatePreppedStmt("SELECT name FROM charinfo WHERE prop_clone_id = ?;"); + auto nameLookup = Database::Get()->CreatePreppedStmt("SELECT name FROM charinfo WHERE prop_clone_id = ?;"); nameLookup->setUInt64(1, cloneId); @@ -245,7 +245,7 @@ void PropertyEntranceComponent::OnPropertyEntranceSync(Entity* entity, bool incl GeneralUtils::SetBit(ownerObjId, eObjectBits::PERSISTENT); // Query to get friend and best friend fields - auto friendCheck = Database::CreatePreppedStmt("SELECT best_friend FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?)"); + auto friendCheck = Database::Get()->CreatePreppedStmt("SELECT best_friend FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?)"); friendCheck->setUInt(1, character->GetID()); friendCheck->setUInt(2, ownerObjId); @@ -278,7 +278,7 @@ void PropertyEntranceComponent::OnPropertyEntranceSync(Entity* entity, bool incl bool isAlt = false; // Query to determine whether this property is an alt character of the entity. - auto isAltQuery = Database::CreatePreppedStmt("SELECT id FROM charinfo where account_id in (SELECT account_id from charinfo WHERE id = ?) AND id = ?;"); + auto isAltQuery = Database::Get()->CreatePreppedStmt("SELECT id FROM charinfo where account_id in (SELECT account_id from charinfo WHERE id = ?) AND id = ?;"); isAltQuery->setInt(1, character->GetID()); isAltQuery->setInt(2, owner); @@ -312,7 +312,7 @@ void PropertyEntranceComponent::OnPropertyEntranceSync(Entity* entity, bool incl int32_t numberOfProperties = 0; auto buttonQuery = BuildQuery(entity, sortMethod, character, "SELECT COUNT(*) FROM properties as p JOIN charinfo as ci ON ci.prop_clone_id = p.clone_id where p.zone_id = ? AND (p.description LIKE ? OR p.name LIKE ? OR ci.name LIKE ?) AND p.privacy_option >= ? ", false); - auto propertiesLeft = Database::CreatePreppedStmt(buttonQuery); + auto propertiesLeft = Database::Get()->CreatePreppedStmt(buttonQuery); propertiesLeft->setUInt(1, this->m_MapID); propertiesLeft->setString(2, searchString.c_str()); diff --git a/dGame/dComponents/PropertyManagementComponent.cpp b/dGame/dComponents/PropertyManagementComponent.cpp index 1fc38119..7877b2c9 100644 --- a/dGame/dComponents/PropertyManagementComponent.cpp +++ b/dGame/dComponents/PropertyManagementComponent.cpp @@ -39,13 +39,12 @@ PropertyManagementComponent::PropertyManagementComponent(Entity* parent) : Compo instance = this; const auto& worldId = Game::zoneManager->GetZone()->GetZoneID(); - const auto zoneId = worldId.GetMapID(); const auto cloneId = worldId.GetCloneID(); - auto query = CDClientDatabase::CreatePreppedStmt( - "SELECT id FROM PropertyTemplate WHERE mapID = ?;"); - query.bind(1, (int)zoneId); + auto query = CDClientDatabase::CreatePreppedStmt("SELECT id FROM PropertyTemplate WHERE mapID = ?;"); + + query.bind(1, static_cast(zoneId)); auto result = query.execQuery(); @@ -55,34 +54,25 @@ PropertyManagementComponent::PropertyManagementComponent(Entity* parent) : Compo templateId = result.getIntField(0); - result.finalize(); + auto propertyInfo = Database::Get()->GetPropertyInfo(zoneId, cloneId); - auto* propertyLookup = Database::CreatePreppedStmt("SELECT * FROM properties WHERE template_id = ? AND clone_id = ?;"); - - propertyLookup->setInt(1, templateId); - propertyLookup->setInt64(2, cloneId); - - auto* propertyEntry = propertyLookup->executeQuery(); - - if (propertyEntry->next()) { - this->propertyId = propertyEntry->getUInt64(1); - this->owner = propertyEntry->getUInt64(2); + if (propertyInfo) { + this->propertyId = propertyInfo->id; + this->owner = propertyInfo->ownerId; GeneralUtils::SetBit(this->owner, eObjectBits::CHARACTER); GeneralUtils::SetBit(this->owner, eObjectBits::PERSISTENT); - this->clone_Id = propertyEntry->getInt(2); - this->propertyName = propertyEntry->getString(5).c_str(); - this->propertyDescription = propertyEntry->getString(6).c_str(); - this->privacyOption = static_cast(propertyEntry->getUInt(9)); - this->moderatorRequested = propertyEntry->getInt(10) == 0 && rejectionReason == "" && privacyOption == PropertyPrivacyOption::Public; - this->LastUpdatedTime = propertyEntry->getUInt64(11); - this->claimedTime = propertyEntry->getUInt64(12); - this->rejectionReason = std::string(propertyEntry->getString(13).c_str()); - this->reputation = propertyEntry->getUInt(14); + this->clone_Id = propertyInfo->cloneId; + this->propertyName = propertyInfo->name; + this->propertyDescription = propertyInfo->description; + this->privacyOption = static_cast(propertyInfo->privacyOption); + this->rejectionReason = propertyInfo->rejectionReason; + this->moderatorRequested = propertyInfo->modApproved == 0 && rejectionReason == "" && privacyOption == PropertyPrivacyOption::Public; + this->LastUpdatedTime = propertyInfo->lastUpdatedTime; + this->claimedTime = propertyInfo->claimedTime; + this->reputation = propertyInfo->reputation; Load(); } - - delete propertyLookup; } LWOOBJID PropertyManagementComponent::GetOwnerId() const { @@ -152,14 +142,13 @@ void PropertyManagementComponent::SetPrivacyOption(PropertyPrivacyOption value) } privacyOption = value; - auto* propertyUpdate = Database::CreatePreppedStmt("UPDATE properties SET privacy_option = ?, rejection_reason = ?, mod_approved = ? WHERE id = ?;"); + IProperty::Info info; + info.id = propertyId; + info.privacyOption = static_cast(privacyOption); + info.rejectionReason = rejectionReason; + info.modApproved = 0; - propertyUpdate->setInt(1, static_cast(value)); - propertyUpdate->setString(2, ""); - propertyUpdate->setInt(3, 0); - propertyUpdate->setInt64(4, propertyId); - - propertyUpdate->executeUpdate(); + Database::Get()->UpdatePropertyModerationInfo(info); } void PropertyManagementComponent::UpdatePropertyDetails(std::string name, std::string description) { @@ -169,13 +158,12 @@ void PropertyManagementComponent::UpdatePropertyDetails(std::string name, std::s propertyDescription = description; - auto* propertyUpdate = Database::CreatePreppedStmt("UPDATE properties SET name = ?, description = ? WHERE id = ?;"); + IProperty::Info info; + info.id = propertyId; + info.name = propertyName; + info.description = propertyDescription; - propertyUpdate->setString(1, name.c_str()); - propertyUpdate->setString(2, description.c_str()); - propertyUpdate->setInt64(3, propertyId); - - propertyUpdate->executeUpdate(); + Database::Get()->UpdatePropertyDetails(info); OnQueryPropertyData(GetOwner(), UNASSIGNED_SYSTEM_ADDRESS); } @@ -217,28 +205,14 @@ bool PropertyManagementComponent::Claim(const LWOOBJID playerId) { propertyId = ObjectIDManager::GenerateRandomObjectID(); - auto* insertion = Database::CreatePreppedStmt( - "INSERT INTO properties" - "(id, owner_id, template_id, clone_id, name, description, rent_amount, rent_due, privacy_option, last_updated, time_claimed, rejection_reason, reputation, zone_id, performance_cost)" - "VALUES (?, ?, ?, ?, ?, ?, 0, 0, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), '', 0, ?, 0.0)" - ); - insertion->setUInt64(1, propertyId); - insertion->setUInt64(2, (uint32_t)playerId); - insertion->setUInt(3, templateId); - insertion->setUInt64(4, playerCloneId); - insertion->setString(5, name.c_str()); - insertion->setString(6, description.c_str()); - insertion->setInt(7, propertyZoneId); + IProperty::Info info; + info.id = propertyId; + info.ownerId = character->GetID(); + info.cloneId = playerCloneId; + info.name = name; + info.description = description; - // Try and execute the query, print an error if it fails. - try { - insertion->execute(); - } catch (sql::SQLException& exception) { - LOG("Failed to execute query: (%s)!", exception.what()); - - throw exception; - return false; - } + Database::Get()->InsertNewProperty(info, templateId, worldId); auto* zoneControlObject = Game::zoneManager->GetZoneControlObject(); for (CppScripts::Script* script : CppScripts::GetEntityScripts(zoneControlObject)) { @@ -545,7 +519,7 @@ void PropertyManagementComponent::DeleteModel(const LWOOBJID id, const int delet { item->SetCount(item->GetCount() - 1); - LOG("YES IT GOES HERE"); + LOG("BODGE TIME, YES IT GOES HERE"); break; } @@ -569,14 +543,13 @@ void PropertyManagementComponent::DeleteModel(const LWOOBJID id, const int delet void PropertyManagementComponent::UpdateApprovedStatus(const bool value) { if (owner == LWOOBJID_EMPTY) return; - auto* update = Database::CreatePreppedStmt("UPDATE properties SET mod_approved = ? WHERE id = ?;"); + IProperty::Info info; + info.id = propertyId; + info.modApproved = value; + info.privacyOption = static_cast(privacyOption); + info.rejectionReason = ""; - update->setBoolean(1, value); - update->setInt64(2, propertyId); - - update->executeUpdate(); - - delete update; + Database::Get()->UpdatePropertyModerationInfo(info); } void PropertyManagementComponent::Load() { @@ -584,39 +557,17 @@ void PropertyManagementComponent::Load() { return; } - auto* lookup = Database::CreatePreppedStmt("SELECT id, lot, x, y, z, rx, ry, rz, rw, ugc_id FROM properties_contents WHERE property_id = ?;"); - - lookup->setUInt64(1, propertyId); - - auto* lookupResult = lookup->executeQuery(); - - while (lookupResult->next()) { - const LWOOBJID id = lookupResult->getUInt64(1); - const LOT lot = lookupResult->getInt(2); - - const NiPoint3 position = - { - static_cast(lookupResult->getDouble(3)), - static_cast(lookupResult->getDouble(4)), - static_cast(lookupResult->getDouble(5)) - }; - - const NiQuaternion rotation = - { - static_cast(lookupResult->getDouble(9)), - static_cast(lookupResult->getDouble(6)), - static_cast(lookupResult->getDouble(7)), - static_cast(lookupResult->getDouble(8)) - }; + auto propertyModels = Database::Get()->GetPropertyModels(propertyId); + for (const auto& databaseModel : propertyModels) { auto* node = new SpawnerNode(); - node->position = position; - node->rotation = rotation; + node->position = databaseModel.position; + node->rotation = databaseModel.rotation; SpawnerInfo info{}; - info.templateID = lot; + info.templateID = databaseModel.lot; info.nodes = { node }; info.templateScale = 1.0f; info.activeOnLoad = true; @@ -626,13 +577,13 @@ void PropertyManagementComponent::Load() { //info.emulated = true; //info.emulator = Game::entityManager->GetZoneControlEntity()->GetObjectID(); - info.spawnerID = id; + info.spawnerID = databaseModel.id; std::vector settings; //BBB property models need to have extra stuff set for them: - if (lot == 14) { - LWOOBJID blueprintID = lookupResult->getUInt(10); + if (databaseModel.lot == 14) { + LWOOBJID blueprintID = databaseModel.ugcId; GeneralUtils::SetBit(blueprintID, eObjectBits::CHARACTER); GeneralUtils::SetBit(blueprintID, eObjectBits::PERSISTENT); @@ -640,7 +591,7 @@ void PropertyManagementComponent::Load() { LDFBaseData* componentWhitelist = new LDFData(u"componentWhitelist", 1); LDFBaseData* modelType = new LDFData(u"modelType", 2); LDFBaseData* propertyObjectID = new LDFData(u"propertyObjectID", true); - LDFBaseData* userModelID = new LDFData(u"userModelID", id); + LDFBaseData* userModelID = new LDFData(u"userModelID", databaseModel.id); settings.push_back(ldfBlueprintID); settings.push_back(componentWhitelist); @@ -649,7 +600,7 @@ void PropertyManagementComponent::Load() { settings.push_back(userModelID); } else { auto modelType = new LDFData(u"modelType", 2); - auto userModelID = new LDFData(u"userModelID", id); + auto userModelID = new LDFData(u"userModelID", databaseModel.id); auto ldfModelBehavior = new LDFData(u"modelBehaviors", 0); auto propertyObjectID = new LDFData(u"propertyObjectID", true); auto componentWhitelist = new LDFData(u"componentWhitelist", 1); @@ -671,8 +622,6 @@ void PropertyManagementComponent::Load() { models.insert_or_assign(model->GetObjectID(), spawnerId); } - - delete lookup; } void PropertyManagementComponent::Save() { @@ -680,27 +629,7 @@ void PropertyManagementComponent::Save() { return; } - auto* insertion = Database::CreatePreppedStmt("INSERT INTO properties_contents VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"); - auto* update = Database::CreatePreppedStmt("UPDATE properties_contents SET x = ?, y = ?, z = ?, rx = ?, ry = ?, rz = ?, rw = ? WHERE id = ?;"); - auto* lookup = Database::CreatePreppedStmt("SELECT id FROM properties_contents WHERE property_id = ?;"); - auto* remove = Database::CreatePreppedStmt("DELETE FROM properties_contents WHERE id = ?;"); - - lookup->setUInt64(1, propertyId); - sql::ResultSet* lookupResult = nullptr; - try { - lookupResult = lookup->executeQuery(); - } catch (sql::SQLException& ex) { - LOG("lookup error %s", ex.what()); - } - std::vector present; - - while (lookupResult->next()) { - const auto dbId = lookupResult->getUInt64(1); - - present.push_back(dbId); - } - - delete lookupResult; + auto present = Database::Get()->GetPropertyModels(propertyId); std::vector modelIds; @@ -719,69 +648,26 @@ void PropertyManagementComponent::Save() { const auto rotation = entity->GetRotation(); if (std::find(present.begin(), present.end(), id) == present.end()) { - insertion->setInt64(1, id); - insertion->setUInt64(2, propertyId); - insertion->setNull(3, 0); - insertion->setInt(4, entity->GetLOT()); - insertion->setDouble(5, position.x); - insertion->setDouble(6, position.y); - insertion->setDouble(7, position.z); - insertion->setDouble(8, rotation.x); - insertion->setDouble(9, rotation.y); - insertion->setDouble(10, rotation.z); - insertion->setDouble(11, rotation.w); - insertion->setString(12, ("Objects_" + std::to_string(entity->GetLOT()) + "_name").c_str()); // Model name. TODO make this customizable - insertion->setString(13, ""); // Model description. TODO implement this. - insertion->setDouble(14, 0); // behavior 1. TODO implement this. - insertion->setDouble(15, 0); // behavior 2. TODO implement this. - insertion->setDouble(16, 0); // behavior 3. TODO implement this. - insertion->setDouble(17, 0); // behavior 4. TODO implement this. - insertion->setDouble(18, 0); // behavior 5. TODO implement this. - try { - insertion->execute(); - } catch (sql::SQLException& ex) { - LOG("Error inserting into properties_contents. Error %s", ex.what()); - } - } else { - update->setDouble(1, position.x); - update->setDouble(2, position.y); - update->setDouble(3, position.z); - update->setDouble(4, rotation.x); - update->setDouble(5, rotation.y); - update->setDouble(6, rotation.z); - update->setDouble(7, rotation.w); + IPropertyContents::Model model; + model.id = id; + model.lot = entity->GetLOT(); + model.position = position; + model.rotation = rotation; + model.ugcId = 0; - update->setInt64(8, id); - try { - update->executeUpdate(); - } catch (sql::SQLException& ex) { - LOG("Error updating properties_contents. Error: %s", ex.what()); - } + Database::Get()->InsertNewPropertyModel(propertyId, model, "Objects_" + std::to_string(model.lot) + "_name"); + } else { + Database::Get()->UpdateModelPositionRotation(id, position, rotation); } } - for (auto id : present) { - if (std::find(modelIds.begin(), modelIds.end(), id) != modelIds.end()) { + for (auto model : present) { + if (std::find(modelIds.begin(), modelIds.end(), model.id) != modelIds.end()) { continue; } - remove->setInt64(1, id); - try { - remove->execute(); - } catch (sql::SQLException& ex) { - LOG("Error removing from properties_contents. Error %s", ex.what()); - } + Database::Get()->RemoveModel(model.id); } - - auto* removeUGC = Database::CreatePreppedStmt("DELETE FROM ugc WHERE id NOT IN (SELECT ugc_id FROM properties_contents);"); - - removeUGC->execute(); - - delete removeUGC; - delete insertion; - delete update; - delete lookup; - delete remove; } void PropertyManagementComponent::AddModel(LWOOBJID modelId, LWOOBJID spawnerId) { @@ -799,6 +685,7 @@ void PropertyManagementComponent::OnQueryPropertyData(Entity* originator, const const auto& worldId = Game::zoneManager->GetZone()->GetZoneID(); const auto zoneId = worldId.GetMapID(); + const auto cloneId = worldId.GetCloneID(); LOG("Getting property info for %d", zoneId); GameMessages::PropertyDataMessage message = GameMessages::PropertyDataMessage(zoneId); @@ -806,45 +693,25 @@ void PropertyManagementComponent::OnQueryPropertyData(Entity* originator, const const auto isClaimed = GetOwnerId() != LWOOBJID_EMPTY; LWOOBJID ownerId = GetOwnerId(); - std::string ownerName = ""; + std::string ownerName; + auto charInfo = Database::Get()->GetCharacterInfo(ownerId); + if (charInfo) ownerName = charInfo->name; std::string name = ""; std::string description = ""; uint64_t claimed = 0; char privacy = 0; if (isClaimed) { - const auto cloneId = worldId.GetCloneID(); - - auto* nameLookup = Database::CreatePreppedStmt("SELECT name FROM charinfo WHERE prop_clone_id = ?;"); - nameLookup->setUInt64(1, cloneId); - - auto* nameResult = nameLookup->executeQuery(); - if (nameResult->next()) { - ownerName = nameResult->getString(1).c_str(); - } - - delete nameResult; - delete nameLookup; - name = propertyName; description = propertyDescription; claimed = claimedTime; privacy = static_cast(this->privacyOption); if (moderatorRequested) { - auto checkStatus = Database::CreatePreppedStmt("SELECT rejection_reason, mod_approved FROM properties WHERE id = ?;"); - - checkStatus->setInt64(1, propertyId); - - auto result = checkStatus->executeQuery(); - - result->next(); - - const auto reason = std::string(result->getString(1).c_str()); - const auto modApproved = result->getInt(2); - if (reason != "") { + auto moderationInfo = Database::Get()->GetPropertyInfo(zoneId, cloneId); + if (moderationInfo->rejectionReason != "") { moderatorRequested = false; - rejectionReason = reason; - } else if (reason == "" && modApproved == 1) { + rejectionReason = moderationInfo->rejectionReason; + } else if (moderationInfo->rejectionReason == "" && moderationInfo->modApproved == 1) { moderatorRequested = false; rejectionReason = ""; } else { diff --git a/dGame/dGameMessages/GameMessageHandler.h b/dGame/dGameMessages/GameMessageHandler.h index 821d80be..61378f80 100644 --- a/dGame/dGameMessages/GameMessageHandler.h +++ b/dGame/dGameMessages/GameMessageHandler.h @@ -18,7 +18,7 @@ #include "Game.h" #include "Logger.h" #include "GameMessages.h" -#include "../dDatabase/CDClientDatabase.h" +#include "CDClientDatabase.h" enum class eGameMessageType : uint16_t; diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 33717059..7fb9c259 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -2577,70 +2577,23 @@ void GameMessages::HandleBBBSaveRequest(RakNet::BitStream* inStream, Entity* ent const auto zoneId = worldId.GetMapID(); const auto cloneId = worldId.GetCloneID(); - auto query = CDClientDatabase::CreatePreppedStmt( - "SELECT id FROM PropertyTemplate WHERE mapID = ?;"); - query.bind(1, (int)zoneId); - - auto result = query.execQuery(); - - if (result.eof() || result.fieldIsNull(0)) return; - - int templateId = result.getIntField(0); - - auto* propertyLookup = Database::CreatePreppedStmt("SELECT * FROM properties WHERE template_id = ? AND clone_id = ?;"); - - propertyLookup->setInt(1, templateId); - propertyLookup->setInt64(2, cloneId); - - auto* propertyEntry = propertyLookup->executeQuery(); - uint64_t propertyId = 0; - - if (propertyEntry->next()) { - propertyId = propertyEntry->getUInt64(1); - } - - delete propertyEntry; - delete propertyLookup; + auto propertyInfo = Database::Get()->GetPropertyInfo(zoneId, cloneId); + LWOOBJID propertyId = LWOOBJID_EMPTY; + if (propertyInfo) propertyId = propertyInfo->id; //Insert into ugc: - auto ugcs = Database::CreatePreppedStmt("INSERT INTO `ugc`(`id`, `account_id`, `character_id`, `is_optimized`, `lxfml`, `bake_ao`, `filename`) VALUES (?,?,?,?,?,?,?)"); - ugcs->setUInt(1, blueprintIDSmall); - ugcs->setInt(2, entity->GetParentUser()->GetAccountID()); - ugcs->setInt(3, entity->GetCharacter()->GetID()); - ugcs->setInt(4, 0); - - //whacky stream biz - std::string s(sd0Data.get(), sd0Size); - std::istringstream iss(s); - - ugcs->setBlob(5, &iss); - ugcs->setBoolean(6, false); - ugcs->setString(7, "weedeater.lxfml"); - ugcs->execute(); - delete ugcs; + std::string str(sd0Data.get(), sd0Size); + std::istringstream sd0DataStream(str); + Database::Get()->InsertNewUgcModel(sd0DataStream, blueprintIDSmall, entity->GetParentUser()->GetAccountID(), entity->GetCharacter()->GetID()); //Insert into the db as a BBB model: - auto* stmt = Database::CreatePreppedStmt("INSERT INTO `properties_contents` VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); - stmt->setUInt64(1, newIDL); - stmt->setUInt64(2, propertyId); - stmt->setUInt(3, blueprintIDSmall); - stmt->setUInt(4, 14); // 14 is the lot the BBB models use - stmt->setDouble(5, 0.0f); // x - stmt->setDouble(6, 0.0f); // y - stmt->setDouble(7, 0.0f); // z - stmt->setDouble(8, 0.0f); // rx - stmt->setDouble(9, 0.0f); // ry - stmt->setDouble(10, 0.0f); // rz - stmt->setDouble(11, 0.0f); // rw - stmt->setString(12, "Objects_14_name"); // Model name. TODO make this customizable - stmt->setString(13, ""); // Model description. TODO implement this. - stmt->setDouble(14, 0); // behavior 1. TODO implement this. - stmt->setDouble(15, 0); // behavior 2. TODO implement this. - stmt->setDouble(16, 0); // behavior 3. TODO implement this. - stmt->setDouble(17, 0); // behavior 4. TODO implement this. - stmt->setDouble(18, 0); // behavior 5. TODO implement this. - stmt->execute(); - delete stmt; + IPropertyContents::Model model; + model.id = newIDL; + model.ugcId = blueprintIDSmall; + model.position = NiPoint3::ZERO; + model.rotation = NiQuaternion(0.0f, 0.0f, 0.0f, 0.0f); + model.lot = 14; + Database::Get()->InsertNewPropertyModel(propertyId, model, "Objects_14_name"); /* Commented out until UGC server would be updated to use a sd0 file instead of lxfml stream. @@ -4232,20 +4185,12 @@ void GameMessages::HandleUpdatePropertyPerformanceCost(RakNet::BitStream* inStre if (performanceCost == 0.0f) return; auto zone = Game::zoneManager->GetZone(); - const auto& worldId = zone->GetZoneID(); - const auto cloneId = worldId.GetCloneID(); - const auto zoneId = worldId.GetMapID(); + if (!zone) { + LOG("If you see this message, something is very wrong."); + return; + } - auto updatePerformanceCostQuery = Database::CreatePreppedStmt("UPDATE properties SET performance_cost = ? WHERE clone_id = ? AND zone_id = ?"); - - updatePerformanceCostQuery->setDouble(1, performanceCost); - updatePerformanceCostQuery->setInt(2, cloneId); - updatePerformanceCostQuery->setInt(3, zoneId); - - updatePerformanceCostQuery->executeUpdate(); - - delete updatePerformanceCostQuery; - updatePerformanceCostQuery = nullptr; + Database::Get()->UpdatePerformanceCost(zone->GetZoneID(), performanceCost); } void GameMessages::HandleVehicleNotifyHitImaginationServer(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) { @@ -5126,7 +5071,7 @@ void GameMessages::HandleModularBuildConvertModel(RakNet::BitStream* inStream, E item->Disassemble(TEMP_MODELS); - std::unique_ptr stmt(Database::CreatePreppedStmt("DELETE FROM ugc_modular_build where ugc_id = ?")); + std::unique_ptr stmt(Database::Get()->CreatePreppedStmt("DELETE FROM ugc_modular_build where ugc_id = ?")); stmt->setUInt64(1, item->GetSubKey()); stmt->execute(); @@ -5629,7 +5574,7 @@ void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity* inv->AddItem(8092, 1, eLootSourceType::QUICKBUILD, eInventoryType::MODELS, config, LWOOBJID_EMPTY, true, false, newIdBig); } - std::unique_ptr stmt(Database::CreatePreppedStmt("INSERT INTO ugc_modular_build (ugc_id, ldf_config, character_id) VALUES (?,?,?)")); + std::unique_ptr stmt(Database::Get()->CreatePreppedStmt("INSERT INTO ugc_modular_build (ugc_id, ldf_config, character_id) VALUES (?,?,?)")); stmt->setUInt64(1, newIdBig); stmt->setString(2, GeneralUtils::UTF16ToWTF8(modules)); auto* pCharacter = character->GetCharacter(); @@ -5986,31 +5931,27 @@ void GameMessages::SendGetHotPropertyData(RakNet::BitStream* inStream, Entity* e void GameMessages::HandleReportBug(RakNet::BitStream* inStream, Entity* entity) { //Definitely not stolen from autogenerated code, no sir: - std::u16string body; - std::string clientVersion; - std::string nOtherPlayerID; - std::string selection; - uint32_t messageLength; - int32_t reporterID = 0; + IBugReports::Info reportInfo; //Reading: + uint32_t messageLength; inStream->Read(messageLength); for (uint32_t i = 0; i < (messageLength); ++i) { uint16_t character; inStream->Read(character); - body.push_back(character); + reportInfo.body.push_back(static_cast(character)); } auto character = entity->GetCharacter(); - if (character) reporterID = character->GetID(); + if (character) reportInfo.characterId = character->GetID(); uint32_t clientVersionLength; inStream->Read(clientVersionLength); for (unsigned int k = 0; k < clientVersionLength; k++) { unsigned char character; inStream->Read(character); - clientVersion.push_back(character); + reportInfo.clientVersion.push_back(character); } uint32_t nOtherPlayerIDLength; @@ -6018,32 +5959,18 @@ void GameMessages::HandleReportBug(RakNet::BitStream* inStream, Entity* entity) for (unsigned int k = 0; k < nOtherPlayerIDLength; k++) { unsigned char character; inStream->Read(character); - nOtherPlayerID.push_back(character); + reportInfo.otherPlayer.push_back(character); } - // Convert other player id from LWOOBJID to the database id. - uint32_t otherPlayer = LWOOBJID_EMPTY; - if (nOtherPlayerID != "") otherPlayer = std::atoi(nOtherPlayerID.c_str()); uint32_t selectionLength; inStream->Read(selectionLength); for (unsigned int k = 0; k < selectionLength; k++) { unsigned char character; inStream->Read(character); - selection.push_back(character); + reportInfo.selection.push_back(character); } - try { - sql::PreparedStatement* insertBug = Database::CreatePreppedStmt("INSERT INTO `bug_reports`(body, client_version, other_player_id, selection, reporter_id) VALUES (?, ?, ?, ?, ?)"); - insertBug->setString(1, GeneralUtils::UTF16ToWTF8(body)); - insertBug->setString(2, clientVersion); - insertBug->setString(3, std::to_string(otherPlayer)); - insertBug->setString(4, selection); - insertBug->setInt(5, reporterID); - insertBug->execute(); - delete insertBug; - } catch (sql::SQLException& e) { - LOG("Couldn't save bug report! (%s)", e.what()); - } + Database::Get()->InsertNewBugReport(reportInfo); } void diff --git a/dGame/dUtilities/CheatDetection.cpp b/dGame/dUtilities/CheatDetection.cpp index ce841710..a43cdaeb 100644 --- a/dGame/dUtilities/CheatDetection.cpp +++ b/dGame/dUtilities/CheatDetection.cpp @@ -9,6 +9,7 @@ #include "User.h" #include "UserManager.h" #include "dConfig.h" +#include Entity* GetPossessedEntity(const LWOOBJID& objId) { auto* entity = Game::entityManager->GetEntity(objId); @@ -26,20 +27,22 @@ void ReportCheat(User* user, const SystemAddress& sysAddr, const char* messageIf if (!user) { LOG("WARNING: User is null, using defaults."); } - std::unique_ptr stmt(Database::CreatePreppedStmt( - "INSERT INTO player_cheat_detections (account_id, name, violation_msg, violation_system_address) VALUES (?, ?, ?, ?)") - ); - user ? stmt->setInt(1, user->GetAccountID()) : stmt->setNull(1, sql::DataType::INTEGER); - stmt->setString(2, user ? user->GetUsername().c_str() : "User is null."); + + IPlayerCheatDetections::Info info; + if (user) info.userId = user->GetAccountID(); + info.username = user ? user->GetUsername().c_str() : "User is null."; + + // user string here because ToString is static and may change. + info.systemAddress = sysAddr.ToString(); constexpr int32_t bufSize = 4096; - char buffer[bufSize]; - vsnprintf(buffer, bufSize, messageIfNotSender, args); + char extraMsg[bufSize]; + vsnprintf(extraMsg, bufSize, messageIfNotSender, args); + info.extraMessage = extraMsg; - stmt->setString(3, buffer); - stmt->setString(4, Game::config->GetValue("log_ip_addresses_for_anti_cheat") == "1" ? sysAddr.ToString() : "IP logging disabled."); - stmt->execute(); - LOG("Anti-cheat message: %s", buffer); + Database::Get()->InsertCheatDetection(info); + + LOG("Anti-cheat message: %s", extraMsg); } void LogAndSaveFailedAntiCheatCheck(const LWOOBJID& id, const SystemAddress& sysAddr, const CheckType checkType, const char* messageIfNotSender, va_list args) { diff --git a/dGame/dUtilities/Mail.cpp b/dGame/dUtilities/Mail.cpp index 961dc5f6..2677c9cc 100644 --- a/dGame/dUtilities/Mail.cpp +++ b/dGame/dUtilities/Mail.cpp @@ -76,22 +76,19 @@ void Mail::SendMail(const LWOOBJID sender, const std::string& senderName, const void Mail::SendMail(const LWOOBJID sender, const std::string& senderName, LWOOBJID recipient, const std::string& recipientName, const std::string& subject, const std::string& body, const LOT attachment, const uint16_t attachmentCount, const SystemAddress& sysAddr) { - auto* ins = Database::CreatePreppedStmt("INSERT INTO `mail`(`sender_id`, `sender_name`, `receiver_id`, `receiver_name`, `time_sent`, `subject`, `body`, `attachment_id`, `attachment_lot`, `attachment_subkey`, `attachment_count`, `was_read`) VALUES (?,?,?,?,?,?,?,?,?,?,?,0)"); + IMail::MailInfo mailInsert; + mailInsert.senderUsername = senderName; + mailInsert.recipient = recipientName; + mailInsert.subject = subject; + mailInsert.body = body; + mailInsert.senderId = sender; + mailInsert.receiverId = recipient; + mailInsert.itemCount = attachmentCount; + mailInsert.itemID = LWOOBJID_EMPTY; + mailInsert.itemLOT = attachment; + mailInsert.itemSubkey = LWOOBJID_EMPTY; - ins->setUInt(1, sender); - ins->setString(2, senderName.c_str()); - ins->setUInt(3, recipient); - ins->setString(4, recipientName.c_str()); - ins->setUInt64(5, time(nullptr)); - ins->setString(6, subject.c_str()); - ins->setString(7, body.c_str()); - ins->setUInt(8, 0); - ins->setInt(9, attachment); - ins->setInt(10, 0); - ins->setInt(11, attachmentCount); - ins->execute(); - - delete ins; + Database::Get()->InsertNewMail(mailInsert); if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) return; // TODO: Echo to chat server @@ -220,43 +217,30 @@ void Mail::HandleSendMail(RakNet::BitStream* packet, const SystemAddress& sysAdd } //Get the receiver's id: - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id from charinfo WHERE name=? LIMIT 1;"); - stmt->setString(1, recipient); - sql::ResultSet* res = stmt->executeQuery(); - uint32_t receiverID = 0; + auto receiverID = Database::Get()->GetCharacterInfo(recipient); - if (res->rowsCount() > 0) { - while (res->next()) receiverID = res->getUInt(1); - } else { + if (!receiverID) { Mail::SendSendResponse(sysAddr, Mail::MailSendResponse::RecipientNotFound); - delete stmt; - delete res; return; } - delete stmt; - delete res; - //Check if we have a valid receiver: - if (GeneralUtils::CaseInsensitiveStringCompare(recipient, character->GetName()) || receiverID == character->GetObjectID()) { + if (GeneralUtils::CaseInsensitiveStringCompare(recipient, character->GetName()) || receiverID->id == character->GetID()) { Mail::SendSendResponse(sysAddr, Mail::MailSendResponse::CannotMailSelf); return; } else { - uint64_t currentTime = time(NULL); - sql::PreparedStatement* ins = Database::CreatePreppedStmt("INSERT INTO `mail`(`sender_id`, `sender_name`, `receiver_id`, `receiver_name`, `time_sent`, `subject`, `body`, `attachment_id`, `attachment_lot`, `attachment_subkey`, `attachment_count`, `was_read`) VALUES (?,?,?,?,?,?,?,?,?,?,?,0)"); - ins->setUInt(1, character->GetObjectID()); - ins->setString(2, character->GetName()); - ins->setUInt(3, receiverID); - ins->setString(4, recipient); - ins->setUInt64(5, currentTime); - ins->setString(6, subject); - ins->setString(7, body); - ins->setUInt(8, itemID); - ins->setInt(9, itemLOT); - ins->setInt(10, 0); - ins->setInt(11, attachmentCount); - ins->execute(); - delete ins; + IMail::MailInfo mailInsert; + mailInsert.senderUsername = character->GetName(); + mailInsert.recipient = recipient; + mailInsert.subject = subject; + mailInsert.body = body; + mailInsert.senderId = character->GetID(); + mailInsert.receiverId = receiverID->id; + mailInsert.itemCount = attachmentCount; + mailInsert.itemID = itemID; + mailInsert.itemLOT = itemLOT; + mailInsert.itemSubkey = LWOOBJID_EMPTY; + Database::Get()->InsertNewMail(mailInsert); } Mail::SendSendResponse(sysAddr, Mail::MailSendResponse::Success); @@ -279,61 +263,49 @@ void Mail::HandleSendMail(RakNet::BitStream* packet, const SystemAddress& sysAdd } void Mail::HandleDataRequest(RakNet::BitStream* packet, const SystemAddress& sysAddr, Entity* player) { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT * FROM mail WHERE receiver_id=? limit 20;"); - stmt->setUInt(1, player->GetCharacter()->GetObjectID()); - sql::ResultSet* res = stmt->executeQuery(); + auto playerMail = Database::Get()->GetMailForPlayer(player->GetCharacter()->GetID(), 20); RakNet::BitStream bitStream; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::MAIL); bitStream.Write(int(MailMessageID::MailData)); bitStream.Write(int(0)); - bitStream.Write(uint16_t(res->rowsCount())); - bitStream.Write(uint16_t(0)); + bitStream.Write(playerMail.size()); + bitStream.Write(0); - if (res->rowsCount() > 0) { - while (res->next()) { - bitStream.Write(res->getUInt64(1)); //MailID + for (const auto& mail : playerMail) { + bitStream.Write(mail.id); //MailID - /*std::u16string subject = GeneralUtils::UTF8ToUTF16(res->getString(7)); - std::u16string body = GeneralUtils::UTF8ToUTF16(res->getString(8)); - std::u16string sender = GeneralUtils::UTF8ToUTF16(res->getString(3)); + WriteStringAsWString(&bitStream, mail.subject.c_str(), 50); //subject + WriteStringAsWString(&bitStream, mail.body.c_str(), 400); //body + WriteStringAsWString(&bitStream, mail.senderUsername.c_str(), 32); //sender - WriteToPacket(&bitStream, subject, 50); - WriteToPacket(&bitStream, body, 400); - WriteToPacket(&bitStream, sender, 32);*/ + bitStream.Write(uint32_t(0)); + bitStream.Write(uint64_t(0)); - WriteStringAsWString(&bitStream, res->getString(7).c_str(), 50); //subject - WriteStringAsWString(&bitStream, res->getString(8).c_str(), 400); //body - WriteStringAsWString(&bitStream, res->getString(3).c_str(), 32); //sender + bitStream.Write(mail.itemID); //Attachment ID + LOT lot = mail.itemLOT; + if (lot <= 0) bitStream.Write(LOT(-1)); + else bitStream.Write(lot); + bitStream.Write(uint32_t(0)); - bitStream.Write(uint32_t(0)); - bitStream.Write(uint64_t(0)); + bitStream.Write(mail.itemSubkey); //Attachment subKey + bitStream.Write(mail.itemCount); //Attachment count - bitStream.Write(res->getUInt64(9)); //Attachment ID - LOT lot = res->getInt(10); - if (lot <= 0) bitStream.Write(LOT(-1)); - else bitStream.Write(lot); - bitStream.Write(uint32_t(0)); + bitStream.Write(uint32_t(0)); + bitStream.Write(uint16_t(0)); - bitStream.Write(res->getInt64(11)); //Attachment subKey - bitStream.Write(uint16_t(res->getInt(12))); //Attachment count + bitStream.Write(mail.timeSent); //time sent (twice?) + bitStream.Write(mail.timeSent); + bitStream.Write(mail.wasRead); //was read - bitStream.Write(uint32_t(0)); - bitStream.Write(uint16_t(0)); - - bitStream.Write(uint64_t(res->getUInt64(6))); //time sent (twice?) - bitStream.Write(uint64_t(res->getUInt64(6))); - bitStream.Write(uint8_t(res->getBoolean(13))); //was read - - bitStream.Write(uint8_t(0)); - bitStream.Write(uint16_t(0)); - bitStream.Write(uint32_t(0)); - } + bitStream.Write(uint8_t(0)); + bitStream.Write(uint16_t(0)); + bitStream.Write(uint32_t(0)); } Game::server->Send(&bitStream, sysAddr, false); - PacketUtils::SavePacket("Max_Mail_Data.bin", (const char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); + // PacketUtils::SavePacket("Max_Mail_Data.bin", (const char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); } void Mail::HandleAttachmentCollect(RakNet::BitStream* packet, const SystemAddress& sysAddr, Entity* player) { @@ -345,31 +317,24 @@ void Mail::HandleAttachmentCollect(RakNet::BitStream* packet, const SystemAddres packet->Read(playerID); if (mailID > 0 && playerID == player->GetObjectID()) { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT attachment_lot, attachment_count FROM mail WHERE id=? LIMIT 1;"); - stmt->setUInt64(1, mailID); - sql::ResultSet* res = stmt->executeQuery(); + auto playerMail = Database::Get()->GetMail(mailID); LOT attachmentLOT = 0; uint32_t attachmentCount = 0; - while (res->next()) { - attachmentLOT = res->getInt(1); - attachmentCount = res->getInt(2); + if (playerMail) { + attachmentLOT = playerMail->itemLOT; + attachmentCount = playerMail->itemCount; } - auto inv = static_cast(player->GetComponent(eReplicaComponentType::INVENTORY)); + auto inv = player->GetComponent(); if (!inv) return; inv->AddItem(attachmentLOT, attachmentCount, eLootSourceType::MAIL); Mail::SendAttachmentRemoveConfirm(sysAddr, mailID); - sql::PreparedStatement* up = Database::CreatePreppedStmt("UPDATE mail SET attachment_lot=0 WHERE id=?;"); - up->setUInt64(1, mailID); - up->execute(); - delete up; - delete res; - delete stmt; + Database::Get()->ClaimMailItem(mailID); } } @@ -394,15 +359,9 @@ void Mail::HandleMailRead(RakNet::BitStream* packet, const SystemAddress& sysAdd } void Mail::HandleNotificationRequest(const SystemAddress& sysAddr, uint32_t objectID) { - auto returnVal = std::async(std::launch::async, [&]() { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id FROM mail WHERE receiver_id=? AND was_read=0"); - stmt->setUInt(1, objectID); - sql::ResultSet* res = stmt->executeQuery(); + auto unreadMailCount = Database::Get()->GetUnreadMailCount(objectID); - if (res->rowsCount() > 0) Mail::SendNotification(sysAddr, res->rowsCount()); - delete res; - delete stmt; - }); + if (unreadMailCount > 0) Mail::SendNotification(sysAddr, unreadMailCount); } void Mail::SendSendResponse(const SystemAddress& sysAddr, MailSendResponse response) { @@ -449,10 +408,7 @@ void Mail::SendDeleteConfirm(const SystemAddress& sysAddr, uint64_t mailID, LWOO bitStream.Write(mailID); Game::server->Send(&bitStream, sysAddr, false); - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("DELETE FROM mail WHERE id=? LIMIT 1;"); - stmt->setUInt64(1, mailID); - stmt->execute(); - delete stmt; + Database::Get()->DeleteMail(mailID); } void Mail::SendReadConfirm(const SystemAddress& sysAddr, uint64_t mailID) { @@ -463,8 +419,5 @@ void Mail::SendReadConfirm(const SystemAddress& sysAddr, uint64_t mailID) { bitStream.Write(mailID); Game::server->Send(&bitStream, sysAddr, false); - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("UPDATE mail SET was_read=1 WHERE id=?"); - stmt->setUInt64(1, mailID); - stmt->execute(); - delete stmt; + Database::Get()->MarkMailRead(mailID); } diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index db27ee7b..71f0e38b 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -360,11 +360,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit } // Log command to database - auto stmt = Database::CreatePreppedStmt("INSERT INTO command_log (character_id, command) VALUES (?, ?);"); - stmt->setInt(1, entity->GetCharacter()->GetID()); - stmt->setString(2, GeneralUtils::UTF16ToWTF8(command).c_str()); - stmt->execute(); - delete stmt; + Database::Get()->InsertSlashCommandUsage(entity->GetObjectID(), chatCommand); if (chatCommand == "setminifig" && args.size() == 2 && entity->GetGMLevel() >= eGameMasterLevel::FORUM_MODERATOR) { // could break characters so only allow if GM > 0 int32_t minifigItemId; @@ -816,46 +812,36 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (chatCommand == "mailitem" && entity->GetGMLevel() >= eGameMasterLevel::MODERATOR && args.size() >= 2) { const auto& playerName = args[0]; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT id from charinfo WHERE name=? LIMIT 1;"); - stmt->setString(1, playerName); - sql::ResultSet* res = stmt->executeQuery(); + auto playerInfo = Database::Get()->GetCharacterInfo(playerName); + uint32_t receiverID = 0; - - if (res->rowsCount() > 0) { - while (res->next()) receiverID = res->getUInt(1); - } - - delete stmt; - delete res; - - if (receiverID == 0) { + if (!playerInfo) { ChatPackets::SendSystemMessage(sysAddr, u"Failed to find that player"); return; } - uint32_t lot; + receiverID = playerInfo->id; + + LOT lot; if (!GeneralUtils::TryParse(args[1], lot)) { ChatPackets::SendSystemMessage(sysAddr, u"Invalid item lot."); return; } - uint64_t currentTime = time(NULL); - sql::PreparedStatement* ins = Database::CreatePreppedStmt("INSERT INTO `mail`(`sender_id`, `sender_name`, `receiver_id`, `receiver_name`, `time_sent`, `subject`, `body`, `attachment_id`, `attachment_lot`, `attachment_subkey`, `attachment_count`, `was_read`) VALUES (?,?,?,?,?,?,?,?,?,?,?,0)"); - ins->setUInt(1, entity->GetObjectID()); - ins->setString(2, "Darkflame Universe"); - ins->setUInt(3, receiverID); - ins->setString(4, playerName); - ins->setUInt64(5, currentTime); - ins->setString(6, "Lost item"); - ins->setString(7, "This is a replacement item for one you lost."); - ins->setUInt(8, 0); - ins->setInt(9, lot); - ins->setInt(10, 0); - ins->setInt(11, 1); - ins->execute(); - delete ins; + IMail::MailInfo mailInsert; + mailInsert.senderId = entity->GetObjectID(); + mailInsert.senderUsername = "Darkflame Universe"; + mailInsert.receiverId = receiverID; + mailInsert.recipient = playerName; + mailInsert.subject = "Lost item"; + mailInsert.body = "This is a replacement item for one you lost."; + mailInsert.itemID = LWOOBJID_EMPTY; + mailInsert.itemLOT = lot; + mailInsert.itemSubkey = LWOOBJID_EMPTY; + mailInsert.itemCount = 1; + Database::Get()->InsertNewMail(mailInsert); ChatPackets::SendSystemMessage(sysAddr, u"Mail sent"); @@ -1015,25 +1001,16 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit LWOOBJID characterId = 0; if (player == nullptr) { - auto* accountQuery = Database::CreatePreppedStmt("SELECT account_id, id FROM charinfo WHERE name=? LIMIT 1;"); + auto characterInfo = Database::Get()->GetCharacterInfo(args[0]); - accountQuery->setString(1, args[0]); + if (characterInfo) { + accountId = characterInfo->accountId; + characterId = characterInfo->id; - auto result = accountQuery->executeQuery(); - - if (result->rowsCount() > 0) { - while (result->next()) { - accountId = result->getUInt(1); - characterId = result->getUInt64(2); - - GeneralUtils::SetBit(characterId, eObjectBits::CHARACTER); - GeneralUtils::SetBit(characterId, eObjectBits::PERSISTENT); - } + GeneralUtils::SetBit(characterId, eObjectBits::CHARACTER); + GeneralUtils::SetBit(characterId, eObjectBits::PERSISTENT); } - delete accountQuery; - delete result; - if (accountId == 0) { ChatPackets::SendSystemMessage(sysAddr, u"Count not find player of name: " + GeneralUtils::UTF8ToUTF16(args[0])); @@ -1044,8 +1021,6 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit characterId = player->GetObjectID(); } - auto* userUpdate = Database::CreatePreppedStmt("UPDATE accounts SET mute_expire = ? WHERE id = ?;"); - time_t expire = 1; // Default to indefinate mute if (args.size() >= 2) { @@ -1070,12 +1045,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit expire += 60 * 60 * hours; } - userUpdate->setUInt64(1, expire); - userUpdate->setInt(2, accountId); - - userUpdate->executeUpdate(); - - delete userUpdate; + Database::Get()->UpdateAccountUnmuteTime(accountId, expire); char buffer[32] = "brought up for review.\0"; @@ -1127,19 +1097,12 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit uint32_t accountId = 0; if (player == nullptr) { - auto* accountQuery = Database::CreatePreppedStmt("SELECT account_id FROM charinfo WHERE name=? LIMIT 1;"); + auto characterInfo = Database::Get()->GetCharacterInfo(args[0]); - accountQuery->setString(1, args[0]); - - auto result = accountQuery->executeQuery(); - - if (result->rowsCount() > 0) { - while (result->next()) accountId = result->getUInt(1); + if (characterInfo) { + accountId = characterInfo->accountId; } - delete accountQuery; - delete result; - if (accountId == 0) { ChatPackets::SendSystemMessage(sysAddr, u"Count not find player of name: " + GeneralUtils::UTF8ToUTF16(args[0])); @@ -1149,13 +1112,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit accountId = player->GetParentUser()->GetAccountID(); } - auto* userUpdate = Database::CreatePreppedStmt("UPDATE accounts SET banned = true WHERE id = ?;"); - - userUpdate->setInt(1, accountId); - - userUpdate->executeUpdate(); - - delete userUpdate; + Database::Get()->UpdateAccountBan(accountId, true); if (player != nullptr) { Game::server->Disconnect(player->GetSystemAddress(), eServerDisconnectIdentifiers::FREE_TRIAL_EXPIRED); diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index 72eb4e59..e5947009 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -130,13 +130,8 @@ int main(int argc, char** argv) { LOG("Compiled on: %s", __TIMESTAMP__); //Connect to the MySQL Database - std::string mysql_host = Game::config->GetValue("mysql_host"); - std::string mysql_database = Game::config->GetValue("mysql_database"); - std::string mysql_username = Game::config->GetValue("mysql_username"); - std::string mysql_password = Game::config->GetValue("mysql_password"); - try { - Database::Connect(mysql_host, mysql_database, mysql_username, mysql_password); + Database::Connect(); } catch (sql::SQLException& ex) { LOG("Got an error while connecting to the database: %s", ex.what()); LOG("Migrations not run"); @@ -225,19 +220,14 @@ int main(int argc, char** argv) { std::cout << "Enter a username: "; std::cin >> username; - std::unique_ptr userLookupStatement(Database::CreatePreppedStmt("SELECT id FROM accounts WHERE name=? LIMIT 1;")); - userLookupStatement->setString(1, username.c_str()); - std::unique_ptr res(userLookupStatement->executeQuery()); - if (res->rowsCount() > 0) { + auto accountId = Database::Get()->GetAccountInfo(username); + if (accountId) { LOG("Account with name \"%s\" already exists", username.c_str()); std::cout << "Do you want to change the password of that account? [y/n]?"; std::string prompt = ""; std::cin >> prompt; if (prompt == "y" || prompt == "yes") { - uint32_t accountId = 0; - res->next(); - accountId = res->getUInt(1); - if (accountId == 0) return EXIT_FAILURE; + if (accountId->id == 0) return EXIT_FAILURE; //Read the password from the console without echoing it. #ifdef __linux__ @@ -257,10 +247,7 @@ int main(int argc, char** argv) { bcryptState = ::bcrypt_hashpw(password.c_str(), salt, hash); assert(bcryptState == 0); - std::unique_ptr userUpdateStatement(Database::CreatePreppedStmt("UPDATE accounts SET password = ? WHERE id = ?;")); - userUpdateStatement->setString(1, std::string(hash, BCRYPT_HASHSIZE).c_str()); - userUpdateStatement->setUInt(2, accountId); - userUpdateStatement->execute(); + Database::Get()->UpdateAccountPassword(accountId->id, std::string(hash, BCRYPT_HASHSIZE)); LOG("Account \"%s\" password updated successfully!", username.c_str()); } else { @@ -289,11 +276,7 @@ int main(int argc, char** argv) { //Create account try { - std::unique_ptr statement(Database::CreatePreppedStmt("INSERT INTO accounts (name, password, gm_level) VALUES (?, ?, ?);")); - statement->setString(1, username.c_str()); - statement->setString(2, std::string(hash, BCRYPT_HASHSIZE).c_str()); - statement->setInt(3, 9); - statement->execute(); + Database::Get()->InsertNewAccount(username, std::string(hash, BCRYPT_HASHSIZE)); } catch(sql::SQLException& e) { LOG("A SQL error occurred!:\n %s", e.what()); return EXIT_FAILURE; @@ -312,8 +295,6 @@ int main(int argc, char** argv) { Game::server = new dServer(Game::config->GetValue("external_ip"), ourPort, 0, maxClients, true, false, Game::logger, "", 0, ServerType::Master, Game::config, &Game::shouldShutdown); //Query for the database for a server labeled "master" - auto* masterLookupStatement = Database::CreatePreppedStmt("SELECT id FROM `servers` WHERE `name` = 'master'"); - auto* result = masterLookupStatement->executeQuery(); auto master_server_ip = Game::config->GetValue("master_ip"); @@ -321,22 +302,7 @@ int main(int argc, char** argv) { master_server_ip = Game::server->GetIP(); } - //If we found a server, update it's IP and port to the current one. - if (result->next()) { - auto* updateStatement = Database::CreatePreppedStmt("UPDATE `servers` SET `ip` = ?, `port` = ? WHERE `id` = ?"); - updateStatement->setString(1, master_server_ip.c_str()); - updateStatement->setInt(2, Game::server->GetPort()); - updateStatement->setInt(3, result->getInt("id")); - updateStatement->execute(); - delete updateStatement; - } else { - //If we didn't find a server, create one. - auto* insertStatement = Database::CreatePreppedStmt("INSERT INTO `servers` (`name`, `ip`, `port`, `state`, `version`) VALUES ('master', ?, ?, 0, 171023)"); - insertStatement->setString(1, master_server_ip.c_str()); - insertStatement->setInt(2, Game::server->GetPort()); - insertStatement->execute(); - delete insertStatement; - } + Database::Get()->SetMasterIp(master_server_ip, Game::server->GetPort()); //Create additional objects here: ObjectIDManager::Instance()->Initialize(Game::logger); @@ -384,16 +350,12 @@ int main(int argc, char** argv) { //Find out the master's IP for absolutely no reason: std::string masterIP; uint32_t masterPort; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT ip, port FROM servers WHERE name='master';"); - auto res = stmt->executeQuery(); - while (res->next()) { - masterIP = res->getString(1).c_str(); - masterPort = res->getInt(2); + auto masterInfo = Database::Get()->GetMasterInfo(); + if (masterInfo) { + masterIP = masterInfo->ip; + masterPort = masterInfo->port; } - delete res; - delete stmt; - framesSinceLastSQLPing = 0; } else framesSinceLastSQLPing++; diff --git a/dMasterServer/ObjectIDManager.cpp b/dMasterServer/ObjectIDManager.cpp index df0613cc..4739addf 100644 --- a/dMasterServer/ObjectIDManager.cpp +++ b/dMasterServer/ObjectIDManager.cpp @@ -14,58 +14,35 @@ void ObjectIDManager::Initialize(Logger* logger) { this->currentPersistentID = 1; try { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt( - "SELECT last_object_id FROM object_id_tracker"); - - sql::ResultSet* result = stmt->executeQuery(); - auto next = result->next(); - - if (!next) { - sql::PreparedStatement* insertStmt = Database::CreatePreppedStmt( - "INSERT INTO object_id_tracker VALUES (1)"); - - insertStmt->execute(); - - delete insertStmt; + auto lastObjectId = Database::Get()->GetCurrentPersistentId(); + if (!lastObjectId) { + Database::Get()->InsertDefaultPersistentId(); return; + } else { + this->currentPersistentID = lastObjectId.value(); } - while (next) { - this->currentPersistentID = - result->getInt(1) > 0 ? result->getInt(1) : 1; - next = result->next(); + if (this->currentPersistentID <= 0) { + LOG("Invalid persistent object ID in database. Aborting to prevent bad id generation."); + throw std::runtime_error("Invalid persistent object ID in database. Aborting to prevent bad id generation."); } - - delete result; - delete stmt; } catch (sql::SQLException& e) { - LOG("Unable to fetch max persistent object ID in use. Defaulting to 1."); + LOG("Unable to fetch max persistent object ID in use. This will cause issues. Aborting to prevent collisions."); LOG("SQL error: %s", e.what()); - this->currentPersistentID = 1; + throw; } } //! Generates a new persistent ID -uint32_t ObjectIDManager::GeneratePersistentID(void) { +uint32_t ObjectIDManager::GeneratePersistentID() { uint32_t toReturn = ++this->currentPersistentID; - // So we peroidically save our ObjID to the database: - // if (toReturn % 25 == 0) { // TEMP: DISABLED FOR DEBUG / DEVELOPMENT! - sql::PreparedStatement* stmt = Database::CreatePreppedStmt( - "UPDATE object_id_tracker SET last_object_id=?"); - stmt->setUInt(1, toReturn); - stmt->execute(); - delete stmt; - // } + SaveToDatabase(); return toReturn; } void ObjectIDManager::SaveToDatabase() { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt( - "UPDATE object_id_tracker SET last_object_id=?"); - stmt->setUInt(1, currentPersistentID); - stmt->execute(); - delete stmt; + Database::Get()->UpdatePersistentId(this->currentPersistentID); } diff --git a/dMasterServer/ObjectIDManager.h b/dMasterServer/ObjectIDManager.h index 1454d08f..cdb6dcdf 100644 --- a/dMasterServer/ObjectIDManager.h +++ b/dMasterServer/ObjectIDManager.h @@ -41,7 +41,7 @@ public: /*! \return The new persistent ID */ - uint32_t GeneratePersistentID(void); + uint32_t GeneratePersistentID(); void SaveToDatabase(); }; diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index 1445be37..12f140d6 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -27,6 +27,7 @@ #include "eConnectionType.h" #include "eServerMessageType.h" #include "eMasterMessageType.h" +#include "eGameMasterLevel.h" void AuthPackets::HandleHandshake(dServer* server, Packet* packet) { RakNet::BitStream inStream(packet->data, packet->length, false); @@ -64,120 +65,54 @@ void AuthPackets::HandleLoginRequest(dServer* server, Packet* packet) { const char* szUsername = username.c_str(); // Fetch account details - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT password, banned, locked, play_key_id, gm_level FROM accounts WHERE name=? LIMIT 1;"); - stmt->setString(1, szUsername); + auto accountInfo = Database::Get()->GetAccountInfo(username); - sql::ResultSet* res = stmt->executeQuery(); - - if (res->rowsCount() == 0) { - LOG("No user found!"); + if (!accountInfo) { + LOG("No user by name %s found!", username.c_str()); AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::INVALID_USER, "", "", 2001, username); return; } - std::string sqlPass = ""; - bool sqlBanned = false; - bool sqlLocked = false; - uint32_t sqlPlayKey = 0; - uint32_t sqlGmLevel = 0; - - while (res->next()) { - sqlPass = res->getString(1).c_str(); - sqlBanned = res->getBoolean(2); - sqlLocked = res->getBoolean(3); - sqlPlayKey = res->getInt(4); - sqlGmLevel = res->getInt(5); - } - - delete stmt; - delete res; - //If we aren't running in live mode, then only GMs are allowed to enter: const auto& closedToNonDevs = Game::config->GetValue("closed_to_non_devs"); - if (closedToNonDevs.size() > 0 && bool(std::stoi(closedToNonDevs)) && sqlGmLevel == 0) { + if (closedToNonDevs.size() > 0 && bool(std::stoi(closedToNonDevs)) && accountInfo->maxGmLevel == eGameMasterLevel::CIVILIAN) { AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "The server is currently only open to developers.", "", 2001, username); return; } - if (Game::config->GetValue("dont_use_keys") != "1") { + if (Game::config->GetValue("dont_use_keys") != "1" && accountInfo->maxGmLevel == eGameMasterLevel::CIVILIAN) { + LOG(""); //Check to see if we have a play key: - if (sqlPlayKey == 0 && sqlGmLevel == 0) { + if (accountInfo->playKeyId == 0) { AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a play key associated with it!", "", 2001, username); LOG("User %s tried to log in, but they don't have a play key.", username.c_str()); return; } //Check if the play key is _valid_: - auto keyCheckStmt = Database::CreatePreppedStmt("SELECT active FROM `play_keys` WHERE id=?"); - keyCheckStmt->setInt(1, sqlPlayKey); - auto keyRes = keyCheckStmt->executeQuery(); - bool isKeyActive = false; + auto playKeyStatus = Database::Get()->IsPlaykeyActive(accountInfo->playKeyId); - if (keyRes->rowsCount() == 0 && sqlGmLevel == 0) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a play key associated with it!", "", 2001, username); + if (!playKeyStatus) { + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a valid play key associated with it!", "", 2001, username); return; } - while (keyRes->next()) { - isKeyActive = (bool)keyRes->getInt(1); - } - - if (!isKeyActive && sqlGmLevel == 0) { + if (!playKeyStatus.value()) { AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your play key has been disabled.", "", 2001, username); LOG("User %s tried to log in, but their play key was disabled", username.c_str()); return; } } - if (sqlBanned) { + if (accountInfo->banned) { AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::BANNED, "", "", 2001, username); return; } - if (sqlLocked) { + if (accountInfo->locked) { AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::ACCOUNT_LOCKED, "", "", 2001, username); return; } - /* - * Updated hashing method: - * First attempt bcrypt. - * If that fails, fallback to old method and setup bcrypt for new login. - */ - - bool loginSuccess = true; - - int32_t bcryptState = ::bcrypt_checkpw(password.c_str(), sqlPass.c_str()); - - if (bcryptState != 0) { - // Fallback on old method - - std::string oldPassword = sha512(password + username); - - if (sqlPass != oldPassword) { - loginSuccess = false; - } else { - // Generate new hash for bcrypt - - char salt[BCRYPT_HASHSIZE]; - char hash[BCRYPT_HASHSIZE]; - - bcryptState = ::bcrypt_gensalt(12, salt); - - assert(bcryptState == 0); - - bcryptState = ::bcrypt_hashpw(password.c_str(), salt, hash); - - assert(bcryptState == 0); - - sql::PreparedStatement* accountUpdate = Database::CreatePreppedStmt("UPDATE accounts SET password = ? WHERE name = ? LIMIT 1;"); - - accountUpdate->setString(1, std::string(hash, BCRYPT_HASHSIZE).c_str()); - accountUpdate->setString(2, szUsername); - - accountUpdate->executeUpdate(); - } - } else { - // Login success with bcrypt - } + bool loginSuccess = ::bcrypt_checkpw(password.c_str(), accountInfo->bcryptPassword.c_str()) == 0; if (!loginSuccess) { AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::WRONG_PASS, "", "", 2001, username); diff --git a/dNet/ClientPackets.cpp b/dNet/ClientPackets.cpp index daf0221a..18b2f3d1 100644 --- a/dNet/ClientPackets.cpp +++ b/dNet/ClientPackets.cpp @@ -353,30 +353,18 @@ void ClientPackets::HandleChatModerationRequest(const SystemAddress& sysAddr, Pa LWOOBJID idOfReceiver = LWOOBJID_EMPTY; { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT name FROM charinfo WHERE name = ?"); - stmt->setString(1, receiver); + auto characterIdFetch = Database::Get()->GetCharacterInfo(receiver); - sql::ResultSet* res = stmt->executeQuery(); - - if (res->next()) { - idOfReceiver = res->getInt("id"); + if (characterIdFetch) { + idOfReceiver = characterIdFetch->id; } - - delete stmt; - delete res; } if (user->GetIsBestFriendMap().find(receiver) == user->GetIsBestFriendMap().end() && idOfReceiver != LWOOBJID_EMPTY) { - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT * FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?) LIMIT 1;"); - stmt->setInt(1, entity->GetObjectID()); - stmt->setInt(2, idOfReceiver); - stmt->setInt(3, idOfReceiver); - stmt->setInt(4, entity->GetObjectID()); + auto bffInfo = Database::Get()->GetBestFriendStatus(entity->GetObjectID(), idOfReceiver); - sql::ResultSet* res = stmt->executeQuery(); - - if (res->next()) { - isBestFriend = res->getInt("best_friend") == 3; + if (bffInfo) { + isBestFriend = bffInfo->bestFriendStatus == 3; } if (isBestFriend) { @@ -384,9 +372,6 @@ void ClientPackets::HandleChatModerationRequest(const SystemAddress& sysAddr, Pa tmpBestFriendMap[receiver] = true; user->SetIsBestFriendMap(tmpBestFriendMap); } - - delete res; - delete stmt; } else if (user->GetIsBestFriendMap().find(receiver) != user->GetIsBestFriendMap().end()) { isBestFriend = true; } diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index e8f5915d..cfd7d157 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -74,6 +74,7 @@ #include "ZCompression.h" #include "EntityManager.h" #include "CheatDetection.h" +#include "eGameMasterLevel.h" namespace Game { Logger* logger = nullptr; @@ -180,20 +181,15 @@ int main(int argc, char** argv) { CDClientManager::Instance(); - //Connect to the MySQL Database - std::string mysql_host = Game::config->GetValue("mysql_host"); - std::string mysql_database = Game::config->GetValue("mysql_database"); - std::string mysql_username = Game::config->GetValue("mysql_username"); - std::string mysql_password = Game::config->GetValue("mysql_password"); - Diagnostics::SetProduceMemoryDump(Game::config->GetValue("generate_dump") == "1"); if (!Game::config->GetValue("dump_folder").empty()) { Diagnostics::SetOutDirectory(Game::config->GetValue("dump_folder")); } + //Connect to the MySQL Database: try { - Database::Connect(mysql_host, mysql_database, mysql_username, mysql_password); + Database::Connect(); } catch (sql::SQLException& ex) { LOG("Got an error while connecting to the database: %s", ex.what()); return EXIT_FAILURE; @@ -202,15 +198,12 @@ int main(int argc, char** argv) { //Find out the master's IP: std::string masterIP = "localhost"; uint32_t masterPort = 1000; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT ip, port FROM servers WHERE name='master';"); - auto res = stmt->executeQuery(); - while (res->next()) { - masterIP = res->getString(1).c_str(); - masterPort = res->getInt(2); - } + auto masterInfo = Database::Get()->GetMasterInfo(); - delete res; - delete stmt; + if (masterInfo) { + masterIP = masterInfo->ip; + masterPort = masterInfo->port; + } ObjectIDManager::Instance()->Initialize(); UserManager::Instance()->Initialize(); @@ -485,16 +478,12 @@ int main(int argc, char** argv) { //Find out the master's IP for absolutely no reason: std::string masterIP; uint32_t masterPort; - sql::PreparedStatement* stmt = Database::CreatePreppedStmt("SELECT ip, port FROM servers WHERE name='master';"); - auto res = stmt->executeQuery(); - while (res->next()) { - masterIP = res->getString(1).c_str(); - masterPort = res->getInt(2); + auto masterInfo = Database::Get()->GetMasterInfo(); + if (masterInfo) { + masterIP = masterInfo->ip; + masterPort = masterInfo->port; } - delete res; - delete stmt; - framesSinceLastSQLPing = 0; } else framesSinceLastSQLPing++; @@ -886,20 +875,15 @@ void HandlePacket(Packet* packet) { // If the check is turned on, validate the client's database checksum. if (Game::config->GetValue("check_fdb") == "1" && !databaseChecksum.empty()) { - uint32_t gmLevel = 0; - auto* stmt = Database::CreatePreppedStmt("SELECT gm_level FROM accounts WHERE name=? LIMIT 1;"); - stmt->setString(1, username.c_str()); - - auto* res = stmt->executeQuery(); - while (res->next()) { - gmLevel = res->getInt(1); + auto accountInfo = Database::Get()->GetAccountInfo(username); + if (!accountInfo) { + LOG("Client's account does not exist in the database, aborting connection."); + Game::server->Disconnect(packet->systemAddress, eServerDisconnectIdentifiers::CHARACTER_NOT_FOUND); + return; } - delete stmt; - delete res; - // Developers may skip this check - if (gmLevel < 8 && clientDatabaseChecksum != databaseChecksum) { + if (accountInfo->maxGmLevel < eGameMasterLevel::DEVELOPER && clientDatabaseChecksum != databaseChecksum) { LOG("Client's database checksum does not match the server's, aborting connection."); Game::server->Disconnect(packet->systemAddress, eServerDisconnectIdentifiers::WRONG_GAME_VERSION); return; @@ -963,7 +947,7 @@ void HandlePacket(Packet* packet) { CheckType::Entity, "Sending GM with a sending player that does not match their own. GM ID: %i", static_cast(messageID) - ); + ); if (isSender) GameMessageHandler::HandleMessage(&dataStream, packet->systemAddress, objectID, messageID); break; @@ -987,7 +971,7 @@ void HandlePacket(Packet* packet) { CheckType::User, "Sending login request with a sending player that does not match their own. Player ID: %llu", playerID - ); + ); if (!valid) return; @@ -1058,23 +1042,23 @@ void HandlePacket(Packet* packet) { if (!levelComponent) return; auto version = levelComponent->GetCharacterVersion(); - switch(version) { - case eCharacterVersion::RELEASE: - // TODO: Implement, super low priority - case eCharacterVersion::LIVE: - LOG("Updating Character Flags"); - c->SetRetroactiveFlags(); - levelComponent->SetCharacterVersion(eCharacterVersion::PLAYER_FACTION_FLAGS); - case eCharacterVersion::PLAYER_FACTION_FLAGS: - LOG("Updating Vault Size"); - player->RetroactiveVaultSize(); - levelComponent->SetCharacterVersion(eCharacterVersion::VAULT_SIZE); - case eCharacterVersion::VAULT_SIZE: - LOG("Updaing Speedbase"); - levelComponent->SetRetroactiveBaseSpeed(); - levelComponent->SetCharacterVersion(eCharacterVersion::UP_TO_DATE); - case eCharacterVersion::UP_TO_DATE: - break; + switch (version) { + case eCharacterVersion::RELEASE: + // TODO: Implement, super low priority + case eCharacterVersion::LIVE: + LOG("Updating Character Flags"); + c->SetRetroactiveFlags(); + levelComponent->SetCharacterVersion(eCharacterVersion::PLAYER_FACTION_FLAGS); + case eCharacterVersion::PLAYER_FACTION_FLAGS: + LOG("Updating Vault Size"); + player->RetroactiveVaultSize(); + levelComponent->SetCharacterVersion(eCharacterVersion::VAULT_SIZE); + case eCharacterVersion::VAULT_SIZE: + LOG("Updaing Speedbase"); + levelComponent->SetRetroactiveBaseSpeed(); + levelComponent->SetCharacterVersion(eCharacterVersion::UP_TO_DATE); + case eCharacterVersion::UP_TO_DATE: + break; } player->GetCharacter()->SetTargetScene(""); @@ -1090,89 +1074,45 @@ void HandlePacket(Packet* packet) { if (g_CloneID != 0) { const auto& worldId = Game::zoneManager->GetZone()->GetZoneID(); - const auto zoneId = Game::server->GetZoneID(); + const auto zoneId = worldId.GetMapID(); const auto cloneId = g_CloneID; - auto query = CDClientDatabase::CreatePreppedStmt( - "SELECT id FROM PropertyTemplate WHERE mapID = ?;"); - query.bind(1, (int)zoneId); + //Check for BBB models: + auto propertyInfo = Database::Get()->GetPropertyInfo(zoneId, cloneId); - auto result = query.execQuery(); - - if (result.eof() || result.fieldIsNull(0)) { - LOG("No property templates found for zone %d, not sending BBB", zoneId); + LWOOBJID propertyId = LWOOBJID_EMPTY; + if (propertyInfo) propertyId = propertyInfo->id; + else { + LOG("Couldn't find property ID for zone %i, clone %i", zoneId, cloneId); goto noBBB; } + for (auto& bbbModel : Database::Get()->GetUgcModels(propertyId)) { + LOG("Getting lxfml ugcID: %llu", bbbModel.id); - //Check for BBB models: - auto stmt = Database::CreatePreppedStmt("SELECT ugc_id FROM properties_contents WHERE lot=14 AND property_id=?"); + bbbModel.lxfmlData.seekg(0, std::ios::end); + size_t lxfmlSize = bbbModel.lxfmlData.tellg(); + bbbModel.lxfmlData.seekg(0); - int32_t templateId = result.getIntField(0); + //Send message: + LWOOBJID blueprintID = bbbModel.id; + GeneralUtils::SetBit(blueprintID, eObjectBits::CHARACTER); + GeneralUtils::SetBit(blueprintID, eObjectBits::PERSISTENT); - result.finalize(); + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_SAVE_RESPONSE); + bitStream.Write(LWOOBJID_EMPTY); //always zero so that a check on the client passes + bitStream.Write(eBlueprintSaveResponseType::EverythingWorked); + bitStream.Write(1); + bitStream.Write(blueprintID); - auto* propertyLookup = Database::CreatePreppedStmt("SELECT * FROM properties WHERE template_id = ? AND clone_id = ?;"); + bitStream.Write(lxfmlSize); - propertyLookup->setInt(1, templateId); - propertyLookup->setInt64(2, g_CloneID); + bitStream.WriteAlignedBytes(reinterpret_cast(bbbModel.lxfmlData.str().c_str()), lxfmlSize); - auto* propertyEntry = propertyLookup->executeQuery(); - uint64_t propertyId = 0; - - if (propertyEntry->next()) { - propertyId = propertyEntry->getUInt64(1); + SystemAddress sysAddr = packet->systemAddress; + SEND_PACKET; + // PacketUtils::SavePacket("lxfml packet " + std::to_string(bbbModel.id) + ".bin", (char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); } - - delete propertyLookup; - - stmt->setUInt64(1, propertyId); - auto res = stmt->executeQuery(); - while (res->next()) { - LOG("Getting lxfml ugcID: %u", res->getUInt(1)); - - //Get lxfml: - auto stmtL = Database::CreatePreppedStmt("SELECT lxfml from ugc where id=?"); - stmtL->setUInt(1, res->getUInt(1)); - - auto lxres = stmtL->executeQuery(); - - while (lxres->next()) { - auto lxfml = lxres->getBlob(1); - - lxfml->seekg(0, std::ios::end); - size_t lxfmlSize = lxfml->tellg(); - lxfml->seekg(0); - - //Send message: - { - LWOOBJID blueprintID = res->getUInt(1); - GeneralUtils::SetBit(blueprintID, eObjectBits::CHARACTER); - GeneralUtils::SetBit(blueprintID, eObjectBits::PERSISTENT); - - CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_SAVE_RESPONSE); - bitStream.Write(LWOOBJID_EMPTY); //always zero so that a check on the client passes - bitStream.Write(eBlueprintSaveResponseType::EverythingWorked); - bitStream.Write(1); - bitStream.Write(blueprintID); - - bitStream.Write(lxfmlSize); - - for (size_t i = 0; i < lxfmlSize; ++i) - bitStream.Write(lxfml->get()); - - SystemAddress sysAddr = packet->systemAddress; - SEND_PACKET; - PacketUtils::SavePacket("lxfml packet " + std::to_string(res->getUInt(1)) + ".bin", (char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); - } - } - - delete stmtL; - delete lxres; - } - - delete stmt; - delete res; } noBBB: @@ -1330,6 +1270,7 @@ void WorldShutdownProcess(uint32_t zoneId) { if (PropertyManagementComponent::Instance() != nullptr) { LOG("Saving ALL property data for zone %i clone %i!", zoneId, PropertyManagementComponent::Instance()->GetCloneId()); PropertyManagementComponent::Instance()->Save(); + Database::Get()->RemoveUnreferencedUgcModels(); LOG("ALL property data saved for zone %i clone %i!", zoneId, PropertyManagementComponent::Instance()->GetCloneId()); } From 98822d400f028768845832e1eacc2ee34832931a Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 17 Nov 2023 23:15:31 -0800 Subject: [PATCH 012/106] fix: ChatServer crash on startup (#1303) --- dChatServer/ChatServer.cpp | 2 ++ dChatServer/PlayerContainer.cpp | 2 +- dChatServer/PlayerContainer.h | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 5fc861b6..b41ad4ec 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -108,6 +108,8 @@ int main(int argc, char** argv) { Game::randomEngine = std::mt19937(time(0)); + playerContainer.Initialize(); + //Run it until server gets a kill message from Master: auto t = std::chrono::high_resolution_clock::now(); Packet* packet = nullptr; diff --git a/dChatServer/PlayerContainer.cpp b/dChatServer/PlayerContainer.cpp index 8b9eb744..d9b33825 100644 --- a/dChatServer/PlayerContainer.cpp +++ b/dChatServer/PlayerContainer.cpp @@ -13,7 +13,7 @@ #include "ChatPackets.h" #include "dConfig.h" -PlayerContainer::PlayerContainer() { +void PlayerContainer::Initialize() { GeneralUtils::TryParse(Game::config->GetValue("max_number_of_best_friends"), m_MaxNumberOfBestFriends); GeneralUtils::TryParse(Game::config->GetValue("max_number_of_friends"), m_MaxNumberOfFriends); } diff --git a/dChatServer/PlayerContainer.h b/dChatServer/PlayerContainer.h index 000164ac..d055ed95 100644 --- a/dChatServer/PlayerContainer.h +++ b/dChatServer/PlayerContainer.h @@ -29,9 +29,9 @@ struct TeamData { class PlayerContainer { public: - PlayerContainer(); ~PlayerContainer(); + void Initialize(); void InsertPlayer(Packet* packet); void RemovePlayer(Packet* packet); void MuteUpdate(Packet* packet); From 57e3a4f4ef9e8ce3914723d5401238b6adb3a4d5 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 17 Nov 2023 23:15:47 -0800 Subject: [PATCH 013/106] fix: general issues with dismantling (#1304) --- dGame/dInventory/Item.cpp | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/dGame/dInventory/Item.cpp b/dGame/dInventory/Item.cpp index 3b6b5c42..438bec2f 100644 --- a/dGame/dInventory/Item.cpp +++ b/dGame/dInventory/Item.cpp @@ -294,13 +294,13 @@ void Item::UseNonEquip(Item* item) { const auto type = static_cast(info->itemType); if (type == eItemType::MOUNT) { - if (Game::zoneManager->GetMountsAllowed()){ + if (Game::zoneManager->GetMountsAllowed()) { playerInventoryComponent->HandlePossession(this); } else { ChatPackets::SendSystemMessage(playerEntity->GetSystemAddress(), u"Mounts are not allowed in this zone"); } - } else if (type == eItemType::PET_INVENTORY_ITEM && subKey != LWOOBJID_EMPTY ) { - if (Game::zoneManager->GetPetsAllowed()){ + } else if (type == eItemType::PET_INVENTORY_ITEM && subKey != LWOOBJID_EMPTY) { + if (Game::zoneManager->GetPetsAllowed()) { const auto& databasePet = playerInventoryComponent->GetDatabasePet(subKey); if (databasePet.lot != LOT_NULL) { playerInventoryComponent->SpawnPet(this); @@ -410,12 +410,19 @@ void Item::DisassembleModel(uint32_t numToDismantle) { } std::string renderAsset = std::string(result.getStringField(0)); + + // normalize path slashes + for (auto& c : renderAsset) { + if (c == '\\') c = '/'; + } + std::string lxfmlFolderName = std::string(result.getStringField(1)); + if (!lxfmlFolderName.empty()) lxfmlFolderName.insert(0, "/"); - std::vector renderAssetSplit = GeneralUtils::SplitString(renderAsset, '\\'); - if (renderAssetSplit.size() == 0) return; + std::vector renderAssetSplit = GeneralUtils::SplitString(renderAsset, '/'); + if (renderAssetSplit.empty()) return; - std::string lxfmlPath = "BrickModels/" + lxfmlFolderName + "/" + GeneralUtils::SplitString(renderAssetSplit.back(), '.').at(0) + ".lxfml"; + std::string lxfmlPath = "BrickModels" + lxfmlFolderName + "/" + GeneralUtils::SplitString(renderAssetSplit.back(), '.').at(0) + ".lxfml"; auto buffer = Game::assetManager->GetFileAsBuffer(lxfmlPath.c_str()); if (!buffer.m_Success) { @@ -461,8 +468,8 @@ void Item::DisassembleModel(uint32_t numToDismantle) { auto* model = scene->FirstChildElement("Model"); if (!model) return; - auto* group = model->FirstChildElement("Group"); - if (!group) return; + bricks = model->FirstChildElement("Group"); + if (!bricks) return; } auto* currentBrick = bricks->FirstChildElement(searchTerm.c_str()); @@ -486,7 +493,7 @@ void Item::DisassembleModel(uint32_t numToDismantle) { auto* brickIDTable = CDClientManager::Instance().GetTable(); // Second iteration actually distributes the bricks - for (const auto&[part, count] : parts) { + for (const auto& [part, count] : parts) { const auto partLocal = part; const auto brickID = brickIDTable->Query([&](const CDBrickIDTable& entry) { return entry.LEGOBrickID == partLocal; From 8e84cafdfac1e56d3feae32c7bf7926d790ca760 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Sat, 18 Nov 2023 03:33:23 -0600 Subject: [PATCH 014/106] feat: add configurable feature and versions (#1298) * feat: add configurable feature and versions to allow for easily swithing it out to enable features in the client for funsies tested that this doesn't break anything and added test * cleanup --- dCommon/GeneralUtils.h | 5 ++ .../CDClientTables/CDFeatureGatingTable.cpp | 4 +- .../CDClientTables/CDFeatureGatingTable.h | 8 ++- dNet/AuthPackets.cpp | 29 ++++++---- dZoneManager/Level.cpp | 23 ++++++-- resources/sharedconfig.ini | 15 +++++ tests/dCommonTests/CMakeLists.txt | 1 + .../dCommonTests/TestCDFeatureGatingTable.cpp | 55 +++++++++++++++++++ 8 files changed, 122 insertions(+), 18 deletions(-) create mode 100644 tests/dCommonTests/TestCDFeatureGatingTable.cpp diff --git a/dCommon/GeneralUtils.h b/dCommon/GeneralUtils.h index 7acb15b8..d93fd0e7 100644 --- a/dCommon/GeneralUtils.h +++ b/dCommon/GeneralUtils.h @@ -151,6 +151,11 @@ namespace GeneralUtils { return std::stod(value); } + template <> + inline uint16_t Parse(const char* value) { + return std::stoul(value); + } + template <> inline uint32_t Parse(const char* value) { return std::stoul(value); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp index 5013dd13..1a9338a0 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp @@ -42,9 +42,9 @@ std::vector CDFeatureGatingTable::Query(std::function= feature) { return true; } } diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.h index 9a978218..5df202e3 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.h @@ -9,6 +9,12 @@ struct CDFeatureGating { int32_t current; int32_t minor; std::string description; + + bool operator>=(const CDFeatureGating& b) const { + return (this->major > b.major) || + (this->major == b.major && this->current > b.current) || + (this->major == b.major && this->current == b.current && this->minor >= b.minor); + } }; class CDFeatureGatingTable : public CDTable { @@ -21,7 +27,7 @@ public: // Queries the table with a custom "where" clause std::vector Query(std::function predicate); - bool FeatureUnlocked(const std::string& feature) const; + bool FeatureUnlocked(const CDFeatureGating& feature) const; const std::vector& GetEntries(void) const; }; diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index 12f140d6..f0b22b4e 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -138,18 +138,25 @@ void AuthPackets::SendLoginResponse(dServer* server, const SystemAddress& sysAdd packet.Write(static_cast(responseCode)); // Event Gating - packet.Write(LUString("Talk_Like_A_Pirate")); - packet.Write(LUString("")); - packet.Write(LUString("")); - packet.Write(LUString("")); - packet.Write(LUString("")); - packet.Write(LUString("")); - packet.Write(LUString("")); - packet.Write(LUString("")); + packet.Write(LUString(Game::config->GetValue("event_1"))); + packet.Write(LUString(Game::config->GetValue("event_2"))); + packet.Write(LUString(Game::config->GetValue("event_3"))); + packet.Write(LUString(Game::config->GetValue("event_4"))); + packet.Write(LUString(Game::config->GetValue("event_5"))); + packet.Write(LUString(Game::config->GetValue("event_6"))); + packet.Write(LUString(Game::config->GetValue("event_7"))); + packet.Write(LUString(Game::config->GetValue("event_8"))); - packet.Write(static_cast(1)); // Version Major - packet.Write(static_cast(10)); // Version Current - packet.Write(static_cast(64)); // Version Minor + uint16_t version_major = 1; + uint16_t version_current = 10; + uint16_t version_minor = 64; + GeneralUtils::TryParse(Game::config->GetValue("version_major"), version_major); + GeneralUtils::TryParse(Game::config->GetValue("version_current"), version_current); + GeneralUtils::TryParse(Game::config->GetValue("version_minor"), version_minor); + + packet.Write(version_major); + packet.Write(version_current); + packet.Write(version_minor); // Writes the user key uint32_t sessionKey = GeneralUtils::GenerateRandomNumber(); diff --git a/dZoneManager/Level.cpp b/dZoneManager/Level.cpp index 4c83d494..8202b760 100644 --- a/dZoneManager/Level.cpp +++ b/dZoneManager/Level.cpp @@ -14,6 +14,7 @@ #include "CDFeatureGatingTable.h" #include "CDClientManager.h" #include "AssetManager.h" +#include "dConfig.h" Level::Level(Zone* parentZone, const std::string& filepath) { m_ParentZone = parentZone; @@ -234,6 +235,14 @@ void Level::ReadSceneObjectDataChunk(std::istream& file, Header& header) { CDFeatureGatingTable* featureGatingTable = CDClientManager::Instance().GetTable(); + CDFeatureGating gating; + gating.major = 1; + gating.current = 10; + gating.minor = 64; + GeneralUtils::TryParse(Game::config->GetValue("version_major"), gating.major); + GeneralUtils::TryParse(Game::config->GetValue("version_current"), gating.current); + GeneralUtils::TryParse(Game::config->GetValue("version_minor"), gating.minor); + for (uint32_t i = 0; i < objectsCount; ++i) { SceneObject obj; BinaryIO::BinaryRead(file, obj.id); @@ -279,11 +288,17 @@ void Level::ReadSceneObjectDataChunk(std::istream& file, Header& header) { bool gated = false; for (LDFBaseData* data : obj.settings) { if (data->GetKey() == u"gatingOnFeature") { - std::string featureGate = data->GetValueAsString(); - - if (!featureGatingTable->FeatureUnlocked(featureGate)) { + gating.featureName = data->GetValueAsString(); + if (gating.featureName == Game::config->GetValue("event_1")) break; + else if (gating.featureName == Game::config->GetValue("event_2")) break; + else if (gating.featureName == Game::config->GetValue("event_3")) break; + else if (gating.featureName == Game::config->GetValue("event_4")) break; + else if (gating.featureName == Game::config->GetValue("event_5")) break; + else if (gating.featureName == Game::config->GetValue("event_6")) break; + else if (gating.featureName == Game::config->GetValue("event_7")) break; + else if (gating.featureName == Game::config->GetValue("event_8")) break; + else if (!featureGatingTable->FeatureUnlocked(gating)) { gated = true; - break; } } diff --git a/resources/sharedconfig.ini b/resources/sharedconfig.ini index 46b11470..2e2b6120 100644 --- a/resources/sharedconfig.ini +++ b/resources/sharedconfig.ini @@ -47,3 +47,18 @@ client_net_version=171022 # Turn to 0 to default teams to use the live accurate Shared Loot (0) by default as opposed to Free for All (1) # This is used in both Chat and World servers. default_team_loot=1 + +# event gating for login response and luz gating +event_1=Talk_Like_A_Pirate +event_2= +event_3= +event_4= +event_5= +event_6= +event_7= +event_8= + +# version for login response and luz gating +version_major=1 +version_current=10 +version_minor=64 diff --git a/tests/dCommonTests/CMakeLists.txt b/tests/dCommonTests/CMakeLists.txt index 006102fa..b39d130c 100644 --- a/tests/dCommonTests/CMakeLists.txt +++ b/tests/dCommonTests/CMakeLists.txt @@ -2,6 +2,7 @@ set(DCOMMONTEST_SOURCES "AMFDeserializeTests.cpp" "Amf3Tests.cpp" "HeaderSkipTest.cpp" + "TestCDFeatureGatingTable.cpp" "TestLDFFormat.cpp" "TestNiPoint3.cpp" "TestEncoding.cpp" diff --git a/tests/dCommonTests/TestCDFeatureGatingTable.cpp b/tests/dCommonTests/TestCDFeatureGatingTable.cpp new file mode 100644 index 00000000..560f87be --- /dev/null +++ b/tests/dCommonTests/TestCDFeatureGatingTable.cpp @@ -0,0 +1,55 @@ +#include +#include "CDFeatureGatingTable.h" + + +TEST(dCommonTests, CDFeaturingGatingComparison){ + CDFeatureGating a; + a.major = 1; + a.current = 10; + a.minor = 64; + + CDFeatureGating b; + b.major = 999; + b.current = 999; + b.minor = 999; + EXPECT_TRUE(b >= a); + EXPECT_FALSE(a >= b); + + // below + b.major = 0; + b.current = 10; + b.minor = 64; + EXPECT_FALSE(b >= a); + EXPECT_TRUE(a >= b); + + b.major = 1; + b.current = 9; + b.minor = 64; + EXPECT_FALSE(b >= a); + EXPECT_TRUE(a >= b); + + b.major = 1; + b.current = 10; + b.minor = 63; + EXPECT_FALSE(b >= a); + EXPECT_TRUE(a >= b); + + // above + b.major = 2; + b.current = 10; + b.minor = 64; + EXPECT_TRUE(b >= a); + EXPECT_FALSE(a >= b); + + b.major = 1; + b.current = 11; + b.minor = 64; + EXPECT_TRUE(b >= a); + EXPECT_FALSE(a >= b); + + b.major = 1; + b.current = 10; + b.minor = 65; + EXPECT_TRUE(b >= a); + EXPECT_FALSE(a >= b); +} From df3515f4742b9271899fad2329e5624e6acb7b40 Mon Sep 17 00:00:00 2001 From: David Markowitz Date: Sat, 18 Nov 2023 03:55:12 -0800 Subject: [PATCH 015/106] IgnoreList: Add and Populate fully working --- dChatServer/CMakeLists.txt | 1 + dChatServer/ChatIgnoreList.cpp | 121 +++++++++++++++++++++++++++++++++ dChatServer/ChatIgnoreList.h | 11 +++ dChatServer/ChatServer.cpp | 7 +- dChatServer/PlayerContainer.h | 14 ++++ 5 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 dChatServer/ChatIgnoreList.cpp create mode 100644 dChatServer/ChatIgnoreList.h diff --git a/dChatServer/CMakeLists.txt b/dChatServer/CMakeLists.txt index 9a47803d..34d58a3a 100644 --- a/dChatServer/CMakeLists.txt +++ b/dChatServer/CMakeLists.txt @@ -1,4 +1,5 @@ set(DCHATSERVER_SOURCES + "ChatIgnoreList.cpp" "ChatPacketHandler.cpp" "PlayerContainer.cpp" ) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp new file mode 100644 index 00000000..a84c3cda --- /dev/null +++ b/dChatServer/ChatIgnoreList.cpp @@ -0,0 +1,121 @@ +#include "ChatIgnoreList.h" +#include "PlayerContainer.h" +#include "eChatInternalMessageType.h" +#include "BitStreamUtils.h" +#include "PacketUtils.h" +#include "Game.h" +#include "Logger.h" +#include "eObjectBits.h" + +#include "Database.h" + +extern PlayerContainer playerContainer; + +enum IgnoreReponse : uint8_t { + AddIgnoreResponse = 32, + GetIgnoreListResponse = 34, +}; + +void ChatIgnoreList::GetIgnoreList(Packet* packet) { + LOG_DEBUG("Getting ignore list"); + + CINSTREAM_SKIP_HEADER; + LWOOBJID playerId; + inStream.Read(playerId); + + auto* receiver = playerContainer.GetPlayerData(playerId); + if (!receiver) { + LOG("Tried to get ignore list, but player %llu not found in container", playerId); + return; + } + + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); + bitStream.Write(receiver->playerID); + + //portion that will get routed: + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, IgnoreReponse::GetIgnoreListResponse); + bitStream.Write(false); // Probably is Is Free Trial, but we don't care about that + bitStream.Write(0); // literally spacing due to struct alignment + bitStream.Write(receiver->ignoredPlayers.size()); + for (const auto& ignoredPlayer : receiver->ignoredPlayers) { + bitStream.Write(ignoredPlayer.playerId); + bitStream.Write(LUWString(ignoredPlayer.playerName, 36)); + } + Game::server->Send(&bitStream, packet->systemAddress, false); +} + +// Remove from ignore list and response +// Not much else to do with editing the list, maybe more messages are needed for refreshes or something +// but you can only add or remove from the list, and you only request the list on world start so pretty small file +// After the above all work, move to implement the actual ignore functionality in the chat server +enum class IgnoreResponse : uint8_t { + SUCCESS, + ALREADY_IGNORED, + PLAYER_NOT_FOUND, + GENERAL_ERROR, +}; + +void ChatIgnoreList::AddIgnore(Packet* packet) { + LOG_DEBUG("Adding ignore"); + + CINSTREAM_SKIP_HEADER; + LWOOBJID playerId; + inStream.Read(playerId); + + auto* receiver = playerContainer.GetPlayerData(playerId); + if (!receiver) { + LOG("Tried to get ignore list, but player %llu not found in container", playerId); + return; + } + inStream.IgnoreBytes(4); // ignore some garbage zeros idk + + LUWString toIgnoreName(33); + inStream.Read(toIgnoreName); + std::string toIgnoreStr = toIgnoreName.GetAsString(); + + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); + bitStream.Write(receiver->playerID); + + //portion that will get routed: + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, IgnoreReponse::AddIgnoreResponse); + + // Check if the player exists + LWOOBJID ignoredPlayerId = LWOOBJID_EMPTY; + if (toIgnoreStr == receiver->playerName || toIgnoreStr.find("[GM]") == 0) { + LOG_DEBUG("Player %llu tried to ignore themselves", playerId); + + bitStream.Write(IgnoreResponse::GENERAL_ERROR); + } else if (std::count(receiver->ignoredPlayers.begin(), receiver->ignoredPlayers.end(), toIgnoreStr) > 0) { + LOG_DEBUG("Player %llu is already ignoring %s", playerId, toIgnoreStr.c_str()); + + bitStream.Write(IgnoreResponse::ALREADY_IGNORED); + } else { + auto* playerData = playerContainer.GetPlayerData(toIgnoreStr); + if (!playerData) { + // Fall back to query + auto player = Database::Get()->GetCharacterInfo(toIgnoreStr); + if (!player || player->name != toIgnoreStr) { + LOG_DEBUG("Player %s not found", toIgnoreStr.c_str()); + + bitStream.Write(IgnoreResponse::PLAYER_NOT_FOUND); + } else { + ignoredPlayerId = player->id; + GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::CHARACTER); + GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::PERSISTENT); + + receiver->ignoredPlayers.push_back(IgnoreData{ ignoredPlayerId, toIgnoreStr }); + LOG_DEBUG("Player %llu is ignoring %s", playerId, toIgnoreStr.c_str()); + + bitStream.Write(IgnoreResponse::SUCCESS); + } + } + } + + LUWString playerNameSend(toIgnoreStr, 33); + bitStream.Write(playerNameSend); + bitStream.Write(ignoredPlayerId); + + Game::server->Send(&bitStream, packet->systemAddress, false); +} diff --git a/dChatServer/ChatIgnoreList.h b/dChatServer/ChatIgnoreList.h new file mode 100644 index 00000000..48170369 --- /dev/null +++ b/dChatServer/ChatIgnoreList.h @@ -0,0 +1,11 @@ +#ifndef __CHATIGNORELIST__H__ +#define __CHATIGNORELIST__H__ + +struct Packet; + +namespace ChatIgnoreList { + void GetIgnoreList(Packet* packet); + void AddIgnore(Packet* packet); +}; + +#endif //!__CHATIGNORELIST__H__ diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index b41ad4ec..6671b047 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -19,6 +19,7 @@ #include "eChatMessageType.h" #include "eChatInternalMessageType.h" #include "eWorldMessageType.h" +#include "ChatIgnoreList.h" #include "Game.h" @@ -234,7 +235,11 @@ void HandlePacket(Packet* packet) { break; case eChatMessageType::GET_IGNORE_LIST: - LOG("Asked for ignore list, but is unimplemented right now."); + ChatIgnoreList::GetIgnoreList(packet); + break; + + case eChatMessageType::ADD_IGNORE: + ChatIgnoreList::AddIgnore(packet); break; case eChatMessageType::TEAM_GET_STATUS: diff --git a/dChatServer/PlayerContainer.h b/dChatServer/PlayerContainer.h index d055ed95..51bff6c1 100644 --- a/dChatServer/PlayerContainer.h +++ b/dChatServer/PlayerContainer.h @@ -7,12 +7,26 @@ #include "dServer.h" #include +struct IgnoreData { + inline bool operator==(const std::string& other) const noexcept { + return playerName == other; + } + + inline bool operator==(const LWOOBJID& other) const noexcept { + return playerId == other; + } + + LWOOBJID playerId; + std::string playerName; +}; + struct PlayerData { LWOOBJID playerID; std::string playerName; SystemAddress sysAddr; LWOZONEID zoneID; std::vector friends; + std::vector ignoredPlayers; time_t muteExpire; uint8_t countOfBestFriends = 0; }; From 511407c8eaff5246437b2661bd4eab65460bd149 Mon Sep 17 00:00:00 2001 From: David Markowitz Date: Sat, 18 Nov 2023 17:33:52 -0800 Subject: [PATCH 016/106] Removing ignore works now --- dChatServer/ChatIgnoreList.cpp | 52 +++++++++++++++-- dChatServer/ChatIgnoreList.h | 1 + dChatServer/ChatPacketHandler.cpp | 94 +++++++++++++++---------------- dChatServer/ChatServer.cpp | 18 +++--- dCommon/Game.h | 2 + 5 files changed, 106 insertions(+), 61 deletions(-) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index a84c3cda..bcb771e7 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -9,10 +9,9 @@ #include "Database.h" -extern PlayerContainer playerContainer; - enum IgnoreReponse : uint8_t { AddIgnoreResponse = 32, + RemoveIgnoreResponse = 33, GetIgnoreListResponse = 34, }; @@ -23,7 +22,7 @@ void ChatIgnoreList::GetIgnoreList(Packet* packet) { LWOOBJID playerId; inStream.Read(playerId); - auto* receiver = playerContainer.GetPlayerData(playerId); + auto* receiver = Game::playerContainer.GetPlayerData(playerId); if (!receiver) { LOG("Tried to get ignore list, but player %llu not found in container", playerId); return; @@ -63,11 +62,12 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { LWOOBJID playerId; inStream.Read(playerId); - auto* receiver = playerContainer.GetPlayerData(playerId); + auto* receiver = Game::playerContainer.GetPlayerData(playerId); if (!receiver) { LOG("Tried to get ignore list, but player %llu not found in container", playerId); return; } + inStream.IgnoreBytes(4); // ignore some garbage zeros idk LUWString toIgnoreName(33); @@ -92,7 +92,7 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { bitStream.Write(IgnoreResponse::ALREADY_IGNORED); } else { - auto* playerData = playerContainer.GetPlayerData(toIgnoreStr); + auto* playerData = Game::playerContainer.GetPlayerData(toIgnoreStr); if (!playerData) { // Fall back to query auto player = Database::Get()->GetCharacterInfo(toIgnoreStr); @@ -119,3 +119,45 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { Game::server->Send(&bitStream, packet->systemAddress, false); } + +void ChatIgnoreList::RemoveIgnore(Packet* packet) { + LOG_DEBUG("Removing ignore"); + + CINSTREAM_SKIP_HEADER; + LWOOBJID playerId; + inStream.Read(playerId); + + auto* receiver = Game::playerContainer.GetPlayerData(playerId); + if (!receiver) { + LOG("Tried to get ignore list, but player %llu not found in container", playerId); + return; + } + + inStream.IgnoreBytes(4); // ignore some garbage zeros idk + + LUWString removedIgnoreName(33); + inStream.Read(removedIgnoreName); + std::string removedIgnoreStr = removedIgnoreName.GetAsString(); + + LOG("Removing ignore for %s", removedIgnoreStr.c_str()); + auto toRemove = std::remove(receiver->ignoredPlayers.begin(), receiver->ignoredPlayers.end(), removedIgnoreStr); + if (toRemove == receiver->ignoredPlayers.end()) { + LOG_DEBUG("Player %llu is not ignoring %s", playerId, removedIgnoreStr.c_str()); + return; + } + + receiver->ignoredPlayers.erase(toRemove, receiver->ignoredPlayers.end()); + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); + + bitStream.Write(receiver->playerID); + + //portion that will get routed: + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, IgnoreReponse::RemoveIgnoreResponse); + + bitStream.Write(0); + LUWString playerNameSend(removedIgnoreStr, 33); + bitStream.Write(playerNameSend); + + Game::server->Send(&bitStream, packet->systemAddress, false); +} diff --git a/dChatServer/ChatIgnoreList.h b/dChatServer/ChatIgnoreList.h index 48170369..4e90677b 100644 --- a/dChatServer/ChatIgnoreList.h +++ b/dChatServer/ChatIgnoreList.h @@ -6,6 +6,7 @@ struct Packet; namespace ChatIgnoreList { void GetIgnoreList(Packet* packet); void AddIgnore(Packet* packet); + void RemoveIgnore(Packet* packet); }; #endif //!__CHATIGNORELIST__H__ diff --git a/dChatServer/ChatPacketHandler.cpp b/dChatServer/ChatPacketHandler.cpp index 0a3caa8e..46a54888 100644 --- a/dChatServer/ChatPacketHandler.cpp +++ b/dChatServer/ChatPacketHandler.cpp @@ -19,15 +19,13 @@ #include "eClientMessageType.h" #include "eGameMessageType.h" -extern PlayerContainer playerContainer; - void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { //Get from the packet which player we want to do something with: CINSTREAM_SKIP_HEADER; LWOOBJID playerID = 0; inStream.Read(playerID); - auto player = playerContainer.GetPlayerData(playerID); + auto player = Game::playerContainer.GetPlayerData(playerID); if (!player) return; auto friendsList = Database::Get()->GetFriendsList(playerID); @@ -43,7 +41,7 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { fd.friendName = friendData.friendName; //Now check if they're online: - auto fr = playerContainer.GetPlayerData(fd.friendID); + auto fr = Game::playerContainer.GetPlayerData(fd.friendID); if (fr) { fd.isOnline = true; @@ -97,7 +95,7 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { char isBestFriendRequest{}; inStream.Read(isBestFriendRequest); - auto requestor = playerContainer.GetPlayerData(requestorPlayerID); + auto requestor = Game::playerContainer.GetPlayerData(requestorPlayerID); if (!requestor) { LOG("No requestor player %llu sent to %s found.", requestorPlayerID, playerName.c_str()); return; @@ -107,7 +105,7 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { SendFriendResponse(requestor, requestor, eAddFriendResponseType::MYTHRAN); return; }; - std::unique_ptr requestee(playerContainer.GetPlayerData(playerName)); + std::unique_ptr requestee(Game::playerContainer.GetPlayerData(playerName)); // Check if player is online first if (isBestFriendRequest && !requestee) { @@ -175,7 +173,7 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { // Only do updates if there was a change in the bff status. if (oldBestFriendStatus != bestFriendStatus) { - auto maxBestFriends = playerContainer.GetMaxNumberOfBestFriends(); + auto maxBestFriends = Game::playerContainer.GetMaxNumberOfBestFriends(); if (requestee->countOfBestFriends >= maxBestFriends || requestor->countOfBestFriends >= maxBestFriends) { if (requestee->countOfBestFriends >= maxBestFriends) { SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::THEIRFRIENDLISTFULL, false); @@ -208,7 +206,7 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { if (requestor->sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::WAITINGAPPROVAL, true, true); } } else { - auto maxFriends = playerContainer.GetMaxNumberOfFriends(); + auto maxFriends = Game::playerContainer.GetMaxNumberOfFriends(); if (requestee->friends.size() >= maxFriends) { SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::THEIRFRIENDLISTFULL, false); } else if (requestor->friends.size() >= maxFriends) { @@ -232,8 +230,8 @@ void ChatPacketHandler::HandleFriendResponse(Packet* packet) { std::string friendName = PacketUtils::ReadString(0x15, packet, true); //Now to try and find both of these: - auto requestor = playerContainer.GetPlayerData(playerID); - auto requestee = playerContainer.GetPlayerData(friendName); + auto requestor = Game::playerContainer.GetPlayerData(playerID); + auto requestee = Game::playerContainer.GetPlayerData(friendName); if (!requestor || !requestee) return; eAddFriendResponseType serverResponseCode{}; @@ -315,7 +313,7 @@ void ChatPacketHandler::HandleRemoveFriend(Packet* packet) { Database::Get()->RemoveFriend(playerID, friendID); //Now, we need to send an update to notify the sender (and possibly, receiver) that their friendship has been ended: - auto goonA = playerContainer.GetPlayerData(playerID); + auto goonA = Game::playerContainer.GetPlayerData(playerID); if (goonA) { // Remove the friend from our list of friends for (auto friendData = goonA->friends.begin(); friendData != goonA->friends.end(); friendData++) { @@ -328,7 +326,7 @@ void ChatPacketHandler::HandleRemoveFriend(Packet* packet) { SendRemoveFriend(goonA, friendName, true); } - auto goonB = playerContainer.GetPlayerData(friendID); + auto goonB = Game::playerContainer.GetPlayerData(friendID); if (!goonB) return; // Do it again for other person for (auto friendData = goonB->friends.begin(); friendData != goonB->friends.end(); friendData++) { @@ -339,7 +337,7 @@ void ChatPacketHandler::HandleRemoveFriend(Packet* packet) { } } - std::string goonAName = GeneralUtils::UTF16ToWTF8(playerContainer.GetName(playerID)); + std::string goonAName = GeneralUtils::UTF16ToWTF8(Game::playerContainer.GetName(playerID)); SendRemoveFriend(goonB, goonAName, true); } @@ -348,11 +346,11 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) { LWOOBJID playerID = LWOOBJID_EMPTY; inStream.Read(playerID); - auto* sender = playerContainer.GetPlayerData(playerID); + auto* sender = Game::playerContainer.GetPlayerData(playerID); if (sender == nullptr) return; - if (playerContainer.GetIsMuted(sender)) return; + if (Game::playerContainer.GetIsMuted(sender)) return; const auto senderName = std::string(sender->playerName.c_str()); @@ -367,12 +365,12 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) { if (channel != 8) return; - auto* team = playerContainer.GetTeam(playerID); + auto* team = Game::playerContainer.GetTeam(playerID); if (team == nullptr) return; for (const auto memberId : team->memberIDs) { - auto* otherMember = playerContainer.GetPlayerData(memberId); + auto* otherMember = Game::playerContainer.GetPlayerData(memberId); if (otherMember == nullptr) return; @@ -406,11 +404,11 @@ void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) { std::string message = PacketUtils::ReadString(0xAA, packet, true, 512); //Get the bois: - auto goonA = playerContainer.GetPlayerData(senderID); - auto goonB = playerContainer.GetPlayerData(receiverName); + auto goonA = Game::playerContainer.GetPlayerData(senderID); + auto goonB = Game::playerContainer.GetPlayerData(receiverName); if (!goonA || !goonB) return; - if (playerContainer.GetIsMuted(goonA)) return; + if (Game::playerContainer.GetIsMuted(goonA)) return; std::string goonAName = goonA->playerName.c_str(); std::string goonBName = goonB->playerName.c_str(); @@ -468,25 +466,25 @@ void ChatPacketHandler::HandleTeamInvite(Packet* packet) { inStream.Read(playerID); std::string invitedPlayer = PacketUtils::ReadString(0x14, packet, true); - auto* player = playerContainer.GetPlayerData(playerID); + auto* player = Game::playerContainer.GetPlayerData(playerID); if (player == nullptr) { return; } - auto* team = playerContainer.GetTeam(playerID); + auto* team = Game::playerContainer.GetTeam(playerID); if (team == nullptr) { - team = playerContainer.CreateTeam(playerID); + team = Game::playerContainer.CreateTeam(playerID); } - auto* other = playerContainer.GetPlayerData(invitedPlayer); + auto* other = Game::playerContainer.GetPlayerData(invitedPlayer); if (other == nullptr) { return; } - if (playerContainer.GetTeam(other->playerID) != nullptr) { + if (Game::playerContainer.GetTeam(other->playerID) != nullptr) { return; } @@ -519,12 +517,12 @@ void ChatPacketHandler::HandleTeamInviteResponse(Packet* packet) { return; } - auto* team = playerContainer.GetTeam(leaderID); + auto* team = Game::playerContainer.GetTeam(leaderID); if (team == nullptr) { LOG("Failed to find team for leader (%llu)", leaderID); - team = playerContainer.GetTeam(playerID); + team = Game::playerContainer.GetTeam(playerID); } if (team == nullptr) { @@ -532,7 +530,7 @@ void ChatPacketHandler::HandleTeamInviteResponse(Packet* packet) { return; } - playerContainer.AddMember(team, playerID); + Game::playerContainer.AddMember(team, playerID); } void ChatPacketHandler::HandleTeamLeave(Packet* packet) { @@ -542,12 +540,12 @@ void ChatPacketHandler::HandleTeamLeave(Packet* packet) { uint32_t size = 0; inStream.Read(size); - auto* team = playerContainer.GetTeam(playerID); + auto* team = Game::playerContainer.GetTeam(playerID); LOG("(%llu) leaving team", playerID); if (team != nullptr) { - playerContainer.RemoveMember(team, playerID, false, false, true); + Game::playerContainer.RemoveMember(team, playerID, false, false, true); } } @@ -560,24 +558,24 @@ void ChatPacketHandler::HandleTeamKick(Packet* packet) { LOG("(%llu) kicking (%s) from team", playerID, kickedPlayer.c_str()); - auto* kicked = playerContainer.GetPlayerData(kickedPlayer); + auto* kicked = Game::playerContainer.GetPlayerData(kickedPlayer); LWOOBJID kickedId = LWOOBJID_EMPTY; if (kicked != nullptr) { kickedId = kicked->playerID; } else { - kickedId = playerContainer.GetId(GeneralUtils::UTF8ToUTF16(kickedPlayer)); + kickedId = Game::playerContainer.GetId(GeneralUtils::UTF8ToUTF16(kickedPlayer)); } if (kickedId == LWOOBJID_EMPTY) return; - auto* team = playerContainer.GetTeam(playerID); + auto* team = Game::playerContainer.GetTeam(playerID); if (team != nullptr) { if (team->leaderID != playerID || team->leaderID == kickedId) return; - playerContainer.RemoveMember(team, kickedId, false, true, false); + Game::playerContainer.RemoveMember(team, kickedId, false, true, false); } } @@ -590,16 +588,16 @@ void ChatPacketHandler::HandleTeamPromote(Packet* packet) { LOG("(%llu) promoting (%s) to team leader", playerID, promotedPlayer.c_str()); - auto* promoted = playerContainer.GetPlayerData(promotedPlayer); + auto* promoted = Game::playerContainer.GetPlayerData(promotedPlayer); if (promoted == nullptr) return; - auto* team = playerContainer.GetTeam(playerID); + auto* team = Game::playerContainer.GetTeam(playerID); if (team != nullptr) { if (team->leaderID != playerID) return; - playerContainer.PromoteMember(team, promoted->playerID); + Game::playerContainer.PromoteMember(team, promoted->playerID); } } @@ -613,16 +611,16 @@ void ChatPacketHandler::HandleTeamLootOption(Packet* packet) { char option; inStream.Read(option); - auto* team = playerContainer.GetTeam(playerID); + auto* team = Game::playerContainer.GetTeam(playerID); if (team != nullptr) { if (team->leaderID != playerID) return; team->lootFlag = option; - playerContainer.TeamStatusUpdate(team); + Game::playerContainer.TeamStatusUpdate(team); - playerContainer.UpdateTeamsOnWorld(team, false); + Game::playerContainer.UpdateTeamsOnWorld(team, false); } } @@ -631,18 +629,18 @@ void ChatPacketHandler::HandleTeamStatusRequest(Packet* packet) { LWOOBJID playerID = LWOOBJID_EMPTY; inStream.Read(playerID); - auto* team = playerContainer.GetTeam(playerID); - auto* data = playerContainer.GetPlayerData(playerID); + auto* team = Game::playerContainer.GetTeam(playerID); + auto* data = Game::playerContainer.GetPlayerData(playerID); if (team != nullptr && data != nullptr) { if (team->local && data->zoneID.GetMapID() != team->zoneId.GetMapID() && data->zoneID.GetCloneID() != team->zoneId.GetCloneID()) { - playerContainer.RemoveMember(team, playerID, false, false, true, true); + Game::playerContainer.RemoveMember(team, playerID, false, false, true, true); return; } if (team->memberIDs.size() <= 1 && !team->local) { - playerContainer.DisbandTeam(team); + Game::playerContainer.DisbandTeam(team); return; } @@ -653,16 +651,16 @@ void ChatPacketHandler::HandleTeamStatusRequest(Packet* packet) { ChatPacketHandler::SendTeamSetLeader(data, LWOOBJID_EMPTY); } - playerContainer.TeamStatusUpdate(team); + Game::playerContainer.TeamStatusUpdate(team); const auto leaderName = GeneralUtils::UTF8ToUTF16(data->playerName); for (const auto memberId : team->memberIDs) { - auto* otherMember = playerContainer.GetPlayerData(memberId); + auto* otherMember = Game::playerContainer.GetPlayerData(memberId); if (memberId == playerID) continue; - const auto memberName = playerContainer.GetName(memberId); + const auto memberName = Game::playerContainer.GetName(memberId); if (otherMember != nullptr) { ChatPacketHandler::SendTeamSetOffWorldFlag(otherMember, data->playerID, data->zoneID); @@ -670,7 +668,7 @@ void ChatPacketHandler::HandleTeamStatusRequest(Packet* packet) { ChatPacketHandler::SendTeamAddPlayer(data, false, team->local, false, memberId, memberName, otherMember != nullptr ? otherMember->zoneID : LWOZONEID(0, 0, 0)); } - playerContainer.UpdateTeamsOnWorld(team, false); + Game::playerContainer.UpdateTeamsOnWorld(team, false); } } diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 6671b047..fccbdb23 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -35,14 +35,12 @@ namespace Game { AssetManager* assetManager = nullptr; bool shouldShutdown = false; std::mt19937 randomEngine; + PlayerContainer playerContainer; } - Logger* SetupLogger(); void HandlePacket(Packet* packet); -PlayerContainer playerContainer; - int main(int argc, char** argv) { constexpr uint32_t chatFramerate = mediumFramerate; constexpr uint32_t chatFrameDelta = mediumFrameDelta; @@ -109,7 +107,7 @@ int main(int argc, char** argv) { Game::randomEngine = std::mt19937(time(0)); - playerContainer.Initialize(); + Game::playerContainer.Initialize(); //Run it until server gets a kill message from Master: auto t = std::chrono::high_resolution_clock::now(); @@ -201,19 +199,19 @@ void HandlePacket(Packet* packet) { if (static_cast(packet->data[1]) == eConnectionType::CHAT_INTERNAL) { switch (static_cast(packet->data[3])) { case eChatInternalMessageType::PLAYER_ADDED_NOTIFICATION: - playerContainer.InsertPlayer(packet); + Game::playerContainer.InsertPlayer(packet); break; case eChatInternalMessageType::PLAYER_REMOVED_NOTIFICATION: - playerContainer.RemovePlayer(packet); + Game::playerContainer.RemovePlayer(packet); break; case eChatInternalMessageType::MUTE_UPDATE: - playerContainer.MuteUpdate(packet); + Game::playerContainer.MuteUpdate(packet); break; case eChatInternalMessageType::CREATE_TEAM: - playerContainer.CreateTeamServer(packet); + Game::playerContainer.CreateTeamServer(packet); break; case eChatInternalMessageType::ANNOUNCEMENT: { @@ -242,6 +240,10 @@ void HandlePacket(Packet* packet) { ChatIgnoreList::AddIgnore(packet); break; + case eChatMessageType::REMOVE_IGNORE: + ChatIgnoreList::RemoveIgnore(packet); + break; + case eChatMessageType::TEAM_GET_STATUS: ChatPacketHandler::HandleTeamStatusRequest(packet); break; diff --git a/dCommon/Game.h b/dCommon/Game.h index 79a271ec..305b4f7a 100644 --- a/dCommon/Game.h +++ b/dCommon/Game.h @@ -12,6 +12,7 @@ class AssetManager; struct SystemAddress; class EntityManager; class dZoneManager; +class PlayerContainer; namespace Game { extern Logger* logger; @@ -26,4 +27,5 @@ namespace Game { extern bool shouldShutdown; extern EntityManager* entityManager; extern dZoneManager* zoneManager; + extern PlayerContainer playerContainer; } From d193fe61be5e6915c9440d71c3512f20665dd464 Mon Sep 17 00:00:00 2001 From: David Markowitz Date: Sat, 18 Nov 2023 18:05:26 -0800 Subject: [PATCH 017/106] Database working for ignores --- dChatServer/ChatIgnoreList.cpp | 14 ++++++++++++ dDatabase/GameDatabase/GameDatabase.h | 3 ++- dDatabase/GameDatabase/ITables/IIgnoreList.h | 20 +++++++++++++++++ dDatabase/GameDatabase/MySQL/MySQLDatabase.h | 3 +++ .../GameDatabase/MySQL/Tables/CMakeLists.txt | 1 + .../GameDatabase/MySQL/Tables/IgnoreList.cpp | 22 +++++++++++++++++++ migrations/dlu/13_ignore_list.sql | 6 +++++ 7 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 dDatabase/GameDatabase/ITables/IIgnoreList.h create mode 100644 dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp create mode 100644 migrations/dlu/13_ignore_list.sql diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index bcb771e7..1eebb570 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -28,6 +28,18 @@ void ChatIgnoreList::GetIgnoreList(Packet* packet) { return; } + auto ignoreList = Database::Get()->GetIgnoreList(static_cast(playerId)); + if (ignoreList.empty()) { + LOG_DEBUG("Player %llu has no ignores", playerId); + return; + } + + for (auto& ignoredPlayer : ignoreList) { + receiver->ignoredPlayers.push_back(IgnoreData{ ignoredPlayer.id, ignoredPlayer.name }); + GeneralUtils::SetBit(receiver->ignoredPlayers.back().playerId, eObjectBits::CHARACTER); + GeneralUtils::SetBit(receiver->ignoredPlayers.back().playerId, eObjectBits::PERSISTENT); + } + CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); bitStream.Write(receiver->playerID); @@ -102,6 +114,7 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { bitStream.Write(IgnoreResponse::PLAYER_NOT_FOUND); } else { ignoredPlayerId = player->id; + Database::Get()->AddIgnore(static_cast(playerId), static_cast(ignoredPlayerId)); GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::CHARACTER); GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::PERSISTENT); @@ -146,6 +159,7 @@ void ChatIgnoreList::RemoveIgnore(Packet* packet) { return; } + Database::Get()->RemoveIgnore(static_cast(playerId), static_cast(toRemove->playerId)); receiver->ignoredPlayers.erase(toRemove, receiver->ignoredPlayers.end()); CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); diff --git a/dDatabase/GameDatabase/GameDatabase.h b/dDatabase/GameDatabase/GameDatabase.h index 7d8c7de9..a79bc8d4 100644 --- a/dDatabase/GameDatabase/GameDatabase.h +++ b/dDatabase/GameDatabase/GameDatabase.h @@ -21,6 +21,7 @@ #include "ICharInfo.h" #include "IAccounts.h" #include "IActivityLog.h" +#include "IIgnoreList.h" namespace sql { class Statement; @@ -38,7 +39,7 @@ class GameDatabase : public IMail, public ICommandLog, public IPlayerCheatDetections, public IBugReports, public IPropertyContents, public IProperty, public IPetNames, public ICharXml, public IMigrationHistory, public IUgc, public IFriends, public ICharInfo, - public IAccounts, public IActivityLog { + public IAccounts, public IActivityLog, public IIgnoreList { public: virtual ~GameDatabase() = default; // TODO: These should be made private. diff --git a/dDatabase/GameDatabase/ITables/IIgnoreList.h b/dDatabase/GameDatabase/ITables/IIgnoreList.h new file mode 100644 index 00000000..cf831203 --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IIgnoreList.h @@ -0,0 +1,20 @@ +#ifndef __IIGNORELIST__H__ +#define __IIGNORELIST__H__ + +#include +#include +#include + +class IIgnoreList { +public: + struct Info { + std::string name; + uint32_t id; + }; + + virtual std::vector GetIgnoreList(const uint32_t playerId) = 0; + virtual void AddIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) = 0; + virtual void RemoveIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) = 0; +}; + +#endif //!__IIGNORELIST__H__ diff --git a/dDatabase/GameDatabase/MySQL/MySQLDatabase.h b/dDatabase/GameDatabase/MySQL/MySQLDatabase.h index bed79bb7..26bfd2d9 100644 --- a/dDatabase/GameDatabase/MySQL/MySQLDatabase.h +++ b/dDatabase/GameDatabase/MySQL/MySQLDatabase.h @@ -103,6 +103,9 @@ public: std::optional GetDonationTotal(const uint32_t activityId) override; std::optional IsPlaykeyActive(const int32_t playkeyId) override; std::vector GetUgcModels(const LWOOBJID& propertyId) override; + void AddIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) override; + void RemoveIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) override; + std::vector GetIgnoreList(const uint32_t playerId) override; private: // Generic query functions that can be used for any query. diff --git a/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt b/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt index e9593ba9..51b5d34a 100644 --- a/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt +++ b/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt @@ -6,6 +6,7 @@ set(DDATABASES_DATABASES_MYSQL_TABLES_SOURCES "CharXml.cpp" "CommandLog.cpp" "Friends.cpp" + "IgnoreList.cpp" "Leaderboard.cpp" "Mail.cpp" "MigrationHistory.cpp" diff --git a/dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp b/dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp new file mode 100644 index 00000000..ec90e341 --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp @@ -0,0 +1,22 @@ +#include "MySQLDatabase.h" + +std::vector MySQLDatabase::GetIgnoreList(const uint32_t playerId) { + auto result = ExecuteSelect("SELECT ci.name AS name, il.ignored_player_id AS ignore_id FROM ignore_list AS il JOIN charinfo AS ci ON il.ignored_player_id = ci.id WHERE il.player_id = ?", playerId); + + std::vector ignoreList; + + ignoreList.reserve(result->rowsCount()); + while (result->next()) { + ignoreList.push_back(IIgnoreList::Info{ result->getString("name").c_str(), result->getUInt("ignore_id") }); + } + + return ignoreList; +} + +void MySQLDatabase::AddIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) { + ExecuteInsert("INSERT INTO ignore_list (player_id, ignored_player_id) VALUES (?, ?)", playerId, ignoredPlayerId); +} + +void MySQLDatabase::RemoveIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) { + ExecuteDelete("DELETE FROM ignore_list WHERE player_id = ? AND ignored_player_id = ?", playerId, ignoredPlayerId); +} diff --git a/migrations/dlu/13_ignore_list.sql b/migrations/dlu/13_ignore_list.sql new file mode 100644 index 00000000..2550beb5 --- /dev/null +++ b/migrations/dlu/13_ignore_list.sql @@ -0,0 +1,6 @@ +CREATE TABLE IF NOT EXISTS ignore_list ( + player_id BIGINT NOT NULL REFERENCES charinfo(id) ON DELETE CASCADE, + ignored_player_id BIGINT NOT NULL REFERENCES charinfo(id) ON DELETE CASCADE, + + PRIMARY KEY (player_id, ignored_player_id) +); From 12ea2dfb2e6afccad1e011cf95e75f247fc34b80 Mon Sep 17 00:00:00 2001 From: David Markowitz Date: Sat, 18 Nov 2023 18:37:06 -0800 Subject: [PATCH 018/106] Works for online players now --- dChatServer/ChatIgnoreList.cpp | 31 +++++++++++++------ .../GameDatabase/MySQL/Tables/IgnoreList.cpp | 2 +- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index 1eebb570..d97c4536 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -28,6 +28,11 @@ void ChatIgnoreList::GetIgnoreList(Packet* packet) { return; } + if (!receiver->ignoredPlayers.empty()) { + LOG_DEBUG("Player %llu already has an ignore list", playerId); + return; + } + auto ignoreList = Database::Get()->GetIgnoreList(static_cast(playerId)); if (ignoreList.empty()) { LOG_DEBUG("Player %llu has no ignores", playerId); @@ -104,25 +109,31 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { bitStream.Write(IgnoreResponse::ALREADY_IGNORED); } else { + // Get the playerId falling back to query if not online auto* playerData = Game::playerContainer.GetPlayerData(toIgnoreStr); if (!playerData) { // Fall back to query auto player = Database::Get()->GetCharacterInfo(toIgnoreStr); if (!player || player->name != toIgnoreStr) { LOG_DEBUG("Player %s not found", toIgnoreStr.c_str()); - - bitStream.Write(IgnoreResponse::PLAYER_NOT_FOUND); } else { ignoredPlayerId = player->id; - Database::Get()->AddIgnore(static_cast(playerId), static_cast(ignoredPlayerId)); - GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::CHARACTER); - GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::PERSISTENT); - - receiver->ignoredPlayers.push_back(IgnoreData{ ignoredPlayerId, toIgnoreStr }); - LOG_DEBUG("Player %llu is ignoring %s", playerId, toIgnoreStr.c_str()); - - bitStream.Write(IgnoreResponse::SUCCESS); } + } else { + ignoredPlayerId = playerData->playerID; + } + + if (ignoredPlayerId != LWOOBJID_EMPTY) { + Database::Get()->AddIgnore(static_cast(playerId), static_cast(ignoredPlayerId)); + GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::CHARACTER); + GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::PERSISTENT); + + receiver->ignoredPlayers.push_back(IgnoreData{ ignoredPlayerId, toIgnoreStr }); + LOG_DEBUG("Player %llu is ignoring %s", playerId, toIgnoreStr.c_str()); + + bitStream.Write(IgnoreResponse::SUCCESS); + } else { + bitStream.Write(IgnoreResponse::PLAYER_NOT_FOUND); } } diff --git a/dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp b/dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp index ec90e341..283df324 100644 --- a/dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp +++ b/dDatabase/GameDatabase/MySQL/Tables/IgnoreList.cpp @@ -14,7 +14,7 @@ std::vector MySQLDatabase::GetIgnoreList(const uint32_t playe } void MySQLDatabase::AddIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) { - ExecuteInsert("INSERT INTO ignore_list (player_id, ignored_player_id) VALUES (?, ?)", playerId, ignoredPlayerId); + ExecuteInsert("INSERT IGNORE INTO ignore_list (player_id, ignored_player_id) VALUES (?, ?)", playerId, ignoredPlayerId); } void MySQLDatabase::RemoveIgnore(const uint32_t playerId, const uint32_t ignoredPlayerId) { From 81b1b73f040fc43321d57cc712f6e9ff25785d05 Mon Sep 17 00:00:00 2001 From: David Markowitz Date: Sat, 18 Nov 2023 19:15:57 -0800 Subject: [PATCH 019/106] fix gating --- .../CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp index 1a9338a0..9b133155 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp @@ -44,7 +44,7 @@ std::vector CDFeatureGatingTable::Query(std::function= feature) { + if (entry.featureName == feature.featureName && feature >= entry) { return true; } } From 59bf91b14f3833cf7e4030441d02d20974f16571 Mon Sep 17 00:00:00 2001 From: David Markowitz Date: Sat, 18 Nov 2023 20:07:27 -0800 Subject: [PATCH 020/106] fix up enum names Update ChatIgnoreList.cpp Add extra check for size on adding Cant happen without hacks, but worth checking anyways Update ChatIgnoreList.cpp --- dChatServer/ChatIgnoreList.cpp | 43 ++++++++++++++++------------------ dChatServer/ChatIgnoreList.h | 15 ++++++++++++ 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index d97c4536..1c9000e5 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -9,11 +9,9 @@ #include "Database.h" -enum IgnoreReponse : uint8_t { - AddIgnoreResponse = 32, - RemoveIgnoreResponse = 33, - GetIgnoreListResponse = 34, -}; +// A note to future readers, The client handles all the actual ignoring logic: +// not allowing teams, rejecting DMs, friends requets etc. +// The only thing not auto-handled is instance activities force joining the team on the server. void ChatIgnoreList::GetIgnoreList(Packet* packet) { LOG_DEBUG("Getting ignore list"); @@ -50,28 +48,20 @@ void ChatIgnoreList::GetIgnoreList(Packet* packet) { bitStream.Write(receiver->playerID); //portion that will get routed: - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, IgnoreReponse::GetIgnoreListResponse); + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, ChatIgnoreList::Response::GET_IGNORE); + bitStream.Write(false); // Probably is Is Free Trial, but we don't care about that bitStream.Write(0); // literally spacing due to struct alignment + bitStream.Write(receiver->ignoredPlayers.size()); for (const auto& ignoredPlayer : receiver->ignoredPlayers) { bitStream.Write(ignoredPlayer.playerId); bitStream.Write(LUWString(ignoredPlayer.playerName, 36)); } + Game::server->Send(&bitStream, packet->systemAddress, false); } -// Remove from ignore list and response -// Not much else to do with editing the list, maybe more messages are needed for refreshes or something -// but you can only add or remove from the list, and you only request the list on world start so pretty small file -// After the above all work, move to implement the actual ignore functionality in the chat server -enum class IgnoreResponse : uint8_t { - SUCCESS, - ALREADY_IGNORED, - PLAYER_NOT_FOUND, - GENERAL_ERROR, -}; - void ChatIgnoreList::AddIgnore(Packet* packet) { LOG_DEBUG("Adding ignore"); @@ -85,6 +75,12 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { return; } + constexpr int32_t MAX_IGNORES = 32; + if (receiver->ignoredPlayers.size() > MAX_IGNORES) { + LOG_DEBUG("Player %llu has too many ignores", playerId); + return; + } + inStream.IgnoreBytes(4); // ignore some garbage zeros idk LUWString toIgnoreName(33); @@ -96,18 +92,18 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { bitStream.Write(receiver->playerID); //portion that will get routed: - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, IgnoreReponse::AddIgnoreResponse); + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, ChatIgnoreList::Response::ADD_IGNORE); // Check if the player exists LWOOBJID ignoredPlayerId = LWOOBJID_EMPTY; if (toIgnoreStr == receiver->playerName || toIgnoreStr.find("[GM]") == 0) { LOG_DEBUG("Player %llu tried to ignore themselves", playerId); - bitStream.Write(IgnoreResponse::GENERAL_ERROR); + bitStream.Write(ChatIgnoreList::AddResponse::GENERAL_ERROR); } else if (std::count(receiver->ignoredPlayers.begin(), receiver->ignoredPlayers.end(), toIgnoreStr) > 0) { LOG_DEBUG("Player %llu is already ignoring %s", playerId, toIgnoreStr.c_str()); - bitStream.Write(IgnoreResponse::ALREADY_IGNORED); + bitStream.Write(ChatIgnoreList::AddResponse::ALREADY_IGNORED); } else { // Get the playerId falling back to query if not online auto* playerData = Game::playerContainer.GetPlayerData(toIgnoreStr); @@ -131,9 +127,9 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { receiver->ignoredPlayers.push_back(IgnoreData{ ignoredPlayerId, toIgnoreStr }); LOG_DEBUG("Player %llu is ignoring %s", playerId, toIgnoreStr.c_str()); - bitStream.Write(IgnoreResponse::SUCCESS); + bitStream.Write(ChatIgnoreList::AddResponse::SUCCESS); } else { - bitStream.Write(IgnoreResponse::PLAYER_NOT_FOUND); + bitStream.Write(ChatIgnoreList::AddResponse::PLAYER_NOT_FOUND); } } @@ -172,13 +168,14 @@ void ChatIgnoreList::RemoveIgnore(Packet* packet) { Database::Get()->RemoveIgnore(static_cast(playerId), static_cast(toRemove->playerId)); receiver->ignoredPlayers.erase(toRemove, receiver->ignoredPlayers.end()); + CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); bitStream.Write(receiver->playerID); //portion that will get routed: - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, IgnoreReponse::RemoveIgnoreResponse); + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, ChatIgnoreList::Response::REMOVE_IGNORE); bitStream.Write(0); LUWString playerNameSend(removedIgnoreStr, 33); diff --git a/dChatServer/ChatIgnoreList.h b/dChatServer/ChatIgnoreList.h index 4e90677b..c713c966 100644 --- a/dChatServer/ChatIgnoreList.h +++ b/dChatServer/ChatIgnoreList.h @@ -3,10 +3,25 @@ struct Packet; +#include + namespace ChatIgnoreList { void GetIgnoreList(Packet* packet); void AddIgnore(Packet* packet); void RemoveIgnore(Packet* packet); + + enum class Response : uint8_t { + ADD_IGNORE = 32, + REMOVE_IGNORE = 33, + GET_IGNORE = 34, + }; + + enum class AddResponse : uint8_t { + SUCCESS, + ALREADY_IGNORED, + PLAYER_NOT_FOUND, + GENERAL_ERROR, + }; }; #endif //!__CHATIGNORELIST__H__ From 1001e4152891ab14774d01b8798a0c3887d79f05 Mon Sep 17 00:00:00 2001 From: David Markowitz Date: Sat, 18 Nov 2023 20:33:30 -0800 Subject: [PATCH 021/106] simplify code path --- dChatServer/ChatIgnoreList.cpp | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index 1c9000e5..94d1ac7a 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -13,9 +13,15 @@ // not allowing teams, rejecting DMs, friends requets etc. // The only thing not auto-handled is instance activities force joining the team on the server. -void ChatIgnoreList::GetIgnoreList(Packet* packet) { - LOG_DEBUG("Getting ignore list"); +void WriteOutgoingReplyHeader(RakNet::BitStream& bitStream, const LWOOBJID& receivingPlayer, const ChatIgnoreList::Response type) { + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); + bitStream.Write(receivingPlayer); + //portion that will get routed: + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, type); +} + +void ChatIgnoreList::GetIgnoreList(Packet* packet) { CINSTREAM_SKIP_HEADER; LWOOBJID playerId; inStream.Read(playerId); @@ -44,11 +50,7 @@ void ChatIgnoreList::GetIgnoreList(Packet* packet) { } CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); - - //portion that will get routed: - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, ChatIgnoreList::Response::GET_IGNORE); + WriteOutgoingReplyHeader(bitStream, receiver->playerID, ChatIgnoreList::Response::GET_IGNORE); bitStream.Write(false); // Probably is Is Free Trial, but we don't care about that bitStream.Write(0); // literally spacing due to struct alignment @@ -63,8 +65,6 @@ void ChatIgnoreList::GetIgnoreList(Packet* packet) { } void ChatIgnoreList::AddIgnore(Packet* packet) { - LOG_DEBUG("Adding ignore"); - CINSTREAM_SKIP_HEADER; LWOOBJID playerId; inStream.Read(playerId); @@ -88,11 +88,7 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { std::string toIgnoreStr = toIgnoreName.GetAsString(); CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); - - //portion that will get routed: - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, ChatIgnoreList::Response::ADD_IGNORE); + WriteOutgoingReplyHeader(bitStream, receiver->playerID, ChatIgnoreList::Response::ADD_IGNORE); // Check if the player exists LWOOBJID ignoredPlayerId = LWOOBJID_EMPTY; @@ -141,8 +137,6 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { } void ChatIgnoreList::RemoveIgnore(Packet* packet) { - LOG_DEBUG("Removing ignore"); - CINSTREAM_SKIP_HEADER; LWOOBJID playerId; inStream.Read(playerId); @@ -159,7 +153,6 @@ void ChatIgnoreList::RemoveIgnore(Packet* packet) { inStream.Read(removedIgnoreName); std::string removedIgnoreStr = removedIgnoreName.GetAsString(); - LOG("Removing ignore for %s", removedIgnoreStr.c_str()); auto toRemove = std::remove(receiver->ignoredPlayers.begin(), receiver->ignoredPlayers.end(), removedIgnoreStr); if (toRemove == receiver->ignoredPlayers.end()) { LOG_DEBUG("Player %llu is not ignoring %s", playerId, removedIgnoreStr.c_str()); @@ -170,12 +163,7 @@ void ChatIgnoreList::RemoveIgnore(Packet* packet) { receiver->ignoredPlayers.erase(toRemove, receiver->ignoredPlayers.end()); CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - - bitStream.Write(receiver->playerID); - - //portion that will get routed: - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, ChatIgnoreList::Response::REMOVE_IGNORE); + WriteOutgoingReplyHeader(bitStream, receiver->playerID, ChatIgnoreList::Response::REMOVE_IGNORE); bitStream.Write(0); LUWString playerNameSend(removedIgnoreStr, 33); From 98dc291b578b34124f35758e2ea013953d70b7af Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sun, 19 Nov 2023 10:01:34 -0800 Subject: [PATCH 022/106] fix gating (#1306) --- .../CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp index 1a9338a0..9b133155 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp @@ -44,7 +44,7 @@ std::vector CDFeatureGatingTable::Query(std::function= feature) { + if (entry.featureName == feature.featureName && feature >= entry) { return true; } } From 1a199151da72a277c71a88ff8e1f20eb101c92ab Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Tue, 21 Nov 2023 18:04:23 -0800 Subject: [PATCH 023/106] Remove std::couts littered throughout the base (#1313) --- dGame/dComponents/PhantomPhysicsComponent.cpp | 4 +-- dGame/dGameMessages/GameMessageHandler.cpp | 12 ------- dGame/dUtilities/SlashCommandHandler.cpp | 8 ++--- dPhysics/dpEntity.cpp | 8 +---- dPhysics/dpGrid.cpp | 2 -- dPhysics/dpShapeBase.cpp | 4 +-- dPhysics/dpShapeBox.cpp | 5 +-- dPhysics/dpShapeSphere.cpp | 4 ++- dPhysics/main.cpp | 35 ------------------- dZoneManager/Level.cpp | 16 ++++++--- dZoneManager/Level.h | 6 +--- dZoneManager/Zone.h | 2 ++ dZoneManager/dZMCommon.h | 4 +-- tests/dCommonTests/Amf3Tests.cpp | 10 ------ 14 files changed, 29 insertions(+), 91 deletions(-) delete mode 100644 dPhysics/main.cpp diff --git a/dGame/dComponents/PhantomPhysicsComponent.cpp b/dGame/dComponents/PhantomPhysicsComponent.cpp index e0a76f67..6248bfe9 100644 --- a/dGame/dComponents/PhantomPhysicsComponent.cpp +++ b/dGame/dComponents/PhantomPhysicsComponent.cpp @@ -402,10 +402,10 @@ void PhantomPhysicsComponent::SetDirection(const NiPoint3& pos) { void PhantomPhysicsComponent::SpawnVertices() { if (!m_dpEntity) return; - std::cout << m_Parent->GetObjectID() << std::endl; + LOG("%llu", m_Parent->GetObjectID()); auto box = static_cast(m_dpEntity->GetShape()); for (auto vert : box->GetVertices()) { - std::cout << vert.x << ", " << vert.y << ", " << vert.z << std::endl; + LOG("%f, %f, %f", vert.x, vert.y, vert.z); EntityInfo info; info.lot = 33; diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index 9a50a746..40293fbe 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -244,13 +244,6 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System case eGameMessageType::REQUEST_RESURRECT: { GameMessages::SendResurrect(entity); - /*auto* dest = static_cast(entity->GetComponent(eReplicaComponentType::DESTROYABLE)); - if (dest) { - dest->SetHealth(4); - dest->SetArmor(0); - dest->SetImagination(6); - Game::entityManager->SerializeEntity(entity); - }*/ break; } case eGameMessageType::GET_HOT_PROPERTY_DATA: { @@ -339,11 +332,8 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System RakNet::BitStream bitStreamLocal; BitStreamUtils::WriteHeader(bitStreamLocal, eConnectionType::CLIENT, eClientMessageType::GAME_MSG); bitStreamLocal.Write(entity->GetObjectID()); - //bitStreamLocal.Write((unsigned short)eGameMessageType::ECHO_SYNC_SKILL); - //bitStreamLocal.Write(inStream); SyncSkill sync = SyncSkill(inStream); // inStream replaced &bitStream - //sync.Serialize(&bitStreamLocal); ostringstream buffer; @@ -353,8 +343,6 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System buffer << setw(2) << hex << setfill('0') << (int)s << " "; } - //cout << buffer.str() << endl; - if (usr != nullptr) { RakNet::BitStream* bs = new RakNet::BitStream((unsigned char*)sync.sBitStream.c_str(), sync.sBitStream.size(), false); diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 71f0e38b..f4a21cab 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -1372,7 +1372,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit ChatPackets::SendSystemMessage(sysAddr, u"<" + (GeneralUtils::to_u16string(position.x)) + u", " + (GeneralUtils::to_u16string(position.y)) + u", " + (GeneralUtils::to_u16string(position.z)) + u">"); - std::cout << position.x << ", " << position.y << ", " << position.z << std::endl; + LOG("Position: %f, %f, %f", position.x, position.y, position.z); } if (chatCommand == "rot" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER) { @@ -1380,14 +1380,14 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit ChatPackets::SendSystemMessage(sysAddr, u"<" + (GeneralUtils::to_u16string(rotation.w)) + u", " + (GeneralUtils::to_u16string(rotation.x)) + u", " + (GeneralUtils::to_u16string(rotation.y)) + u", " + (GeneralUtils::to_u16string(rotation.z)) + u">"); - std::cout << rotation.w << ", " << rotation.x << ", " << rotation.y << ", " << rotation.z << std::endl; + LOG("Rotation: %f, %f, %f, %f", rotation.w, rotation.x, rotation.y, rotation.z); } if (chatCommand == "locrow" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER) { const auto position = entity->GetPosition(); const auto rotation = entity->GetRotation(); - std::cout << "" << std::endl; + LOG("", position.x, position.y, position.z, rotation.w, rotation.x, rotation.y, rotation.z); } if (chatCommand == "playlvlfx" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER) { @@ -1652,7 +1652,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit auto sphere = static_cast(prox.second->GetShape()); auto pos = prox.second->GetPosition(); - std::cout << prox.first << ", r: " << sphere->GetRadius() << ", pos: " << pos.x << "," << pos.y << "," << pos.z << std::endl; + LOG("Proximity: %s, r: %f, pos: %f, %f, %f", prox.first.c_str(), sphere->GetRadius(), pos.x, pos.y, pos.z); } } } diff --git a/dPhysics/dpEntity.cpp b/dPhysics/dpEntity.cpp index c7ed56f8..70bddb40 100644 --- a/dPhysics/dpEntity.cpp +++ b/dPhysics/dpEntity.cpp @@ -22,7 +22,7 @@ dpEntity::dpEntity(const LWOOBJID& objectID, dpShapeType shapeType, bool isStati break; default: - std::cout << "No shape for shapeType: " << (int)shapeType << std::endl; + LOG("No shape for shapeType: %d", static_cast(shapeType)); } } @@ -83,15 +83,9 @@ void dpEntity::CheckCollision(dpEntity* other) { if (isColliding && !wasFound) { m_CurrentlyCollidingObjects.emplace(other->GetObjectID(), other); m_NewObjects.push_back(other); - - //if (m_CollisionShape->GetShapeType() == dpShapeType::Sphere && other->GetShape()->GetShapeType() == dpShapeType::Sphere) - //std::cout << "started sphere col at: " << other->GetPosition().x << ", " << other->GetPosition().y << ", " << other->GetPosition().z << std::endl; } else if (!isColliding && wasFound) { m_CurrentlyCollidingObjects.erase(other->GetObjectID()); m_RemovedObjects.push_back(other); - - //if (m_CollisionShape->GetShapeType() == dpShapeType::Sphere && other->GetShape()->GetShapeType() == dpShapeType::Sphere) - // std::cout << "stopped sphere col at: " << other->GetPosition().x << ", " << other->GetPosition().y << ", " << other->GetPosition().z << std::endl; } } diff --git a/dPhysics/dpGrid.cpp b/dPhysics/dpGrid.cpp index c3259b51..1704e068 100644 --- a/dPhysics/dpGrid.cpp +++ b/dPhysics/dpGrid.cpp @@ -8,8 +8,6 @@ dpGrid::dpGrid(int numCells, int cellSize) { CELL_SIZE = cellSize; m_DeleteGrid = true; - //dumb method but i can't be bothered - //fill x for (int i = 0; i < NUM_CELLS; i++) { m_Cells.push_back(std::vector>()); diff --git a/dPhysics/dpShapeBase.cpp b/dPhysics/dpShapeBase.cpp index 54575159..29f5d789 100644 --- a/dPhysics/dpShapeBase.cpp +++ b/dPhysics/dpShapeBase.cpp @@ -10,7 +10,7 @@ dpShapeBase::~dpShapeBase() { } bool dpShapeBase::IsColliding(dpShapeBase* other) { - std::cout << "Base shapes do not have any *shape* to them, and thus cannot be overlapping." << std::endl; - std::cout << "You should be using a shape class inherited from this base class." << std::endl; + LOG("Base shapes do not have any *shape* to them, and thus cannot be overlapping."); + LOG("You should be using a shape class inherited from this base class."); return false; } diff --git a/dPhysics/dpShapeBox.cpp b/dPhysics/dpShapeBox.cpp index b40be6af..bfd72dea 100644 --- a/dPhysics/dpShapeBox.cpp +++ b/dPhysics/dpShapeBox.cpp @@ -34,7 +34,7 @@ bool dpShapeBox::IsColliding(dpShapeBase* other) { return dpCollisionChecks::CheckBoxes(m_ParentEntity, other->GetParentEntity()); default: - std::cout << "No collision detection for: " << (int)m_ShapeType << "-to-" << (int)other->GetShapeType() << " collision!" << std::endl; + LOG("No collision detection for: %i-to-%i collision!", static_cast(m_ShapeType), static_cast(other->GetShapeType())); } return false; @@ -72,10 +72,7 @@ void dpShapeBox::SetScale(float scale) { m_Height *= scale; m_Depth *= scale; - //fuuuckkk yoouu InitVertices(); - - //SetRotation(m_ParentEntity->GetRotation()); } void dpShapeBox::SetRotation(const NiQuaternion& rotation) { diff --git a/dPhysics/dpShapeSphere.cpp b/dPhysics/dpShapeSphere.cpp index 168a3b21..545d58ed 100644 --- a/dPhysics/dpShapeSphere.cpp +++ b/dPhysics/dpShapeSphere.cpp @@ -1,5 +1,7 @@ #include "dpShapeSphere.h" #include "dpCollisionChecks.h" +#include "Game.h" +#include "Logger.h" #include dpShapeSphere::dpShapeSphere(dpEntity* parentEntity, float radius) : @@ -22,7 +24,7 @@ bool dpShapeSphere::IsColliding(dpShapeBase* other) { return dpCollisionChecks::CheckSphereBox(m_ParentEntity, other->GetParentEntity()); default: - std::cout << "No collision detection for: " << (int)m_ShapeType << "-to-" << (int)other->GetShapeType() << " collision!" << std::endl; + LOG("No collision detection for: %i-to-%i collision!", static_cast(m_ShapeType), static_cast(other->GetShapeType())); } return false; diff --git a/dPhysics/main.cpp b/dPhysics/main.cpp deleted file mode 100644 index 7de1555a..00000000 --- a/dPhysics/main.cpp +++ /dev/null @@ -1,35 +0,0 @@ -//This file included for reference only - -/*#include -#include -#include -#include "dpWorld.h" - -#include "NiQuaternion.hpp" -#include "NiPoint3.hpp" - -int main() { - std::cout << "dPhysics test engine" << std::endl; - - //Test rotation code: - NiPoint3 p(1.0f, 0.0f, 0.0f); - - float angle = 45.0f; - NiQuaternion q = NiQuaternion::CreateFromAxisAngle(NiPoint3(0.0f, 0.0f, 1.0f), angle); - - NiPoint3 rotated = p.RotateByQuaternion(q); - - std::cout << "OG: " << p.x << ", " << p.y << ", " << p.z << std::endl; - std::cout << "Quater: " << q.x << ", " << q.y << ", " << q.z << ", " << q.w << " angle: " << angle << std::endl; - std::cout << "Rotated: " << rotated.x << ", " << rotated.y << ", " << rotated.z << std::endl; - - //Test some collisions: - dpWorld::GetInstance().Initialize(1000); - - while (true) { - dpWorld::GetInstance().StepWorld(1.0f/60.0f); - std::this_thread::sleep_for(std::chrono::milliseconds(16)); - } - - return 0; -}*/ diff --git a/dZoneManager/Level.cpp b/dZoneManager/Level.cpp index 8202b760..4c6ff93c 100644 --- a/dZoneManager/Level.cpp +++ b/dZoneManager/Level.cpp @@ -16,6 +16,12 @@ #include "AssetManager.h" #include "dConfig.h" +void Level::SceneObjectDataChunk::PrintAllObjects() const { + for (const auto& [id, sceneObj] : objects) { + LOG("ID: %d LOT: %d", id, sceneObj.lot); + } +} + Level::Level(Zone* parentZone, const std::string& filepath) { m_ParentZone = parentZone; @@ -33,9 +39,9 @@ Level::Level(Zone* parentZone, const std::string& filepath) { } Level::~Level() { - for (std::map::iterator it = m_ChunkHeaders.begin(); it != m_ChunkHeaders.end(); ++it) { - if (it->second.id == Level::ChunkTypeID::FileInfo) delete it->second.fileInfo; - if (it->second.id == Level::ChunkTypeID::SceneObjectData) delete it->second.sceneObjects; + for (auto& [id, header] : m_ChunkHeaders) { + if (header.id == Level::ChunkTypeID::FileInfo) delete header.fileInfo; + if (header.id == Level::ChunkTypeID::SceneObjectData) delete header.sceneObjects; } } @@ -248,8 +254,8 @@ void Level::ReadSceneObjectDataChunk(std::istream& file, Header& header) { BinaryIO::BinaryRead(file, obj.id); BinaryIO::BinaryRead(file, obj.lot); - /*if (header.fileInfo->version >= 0x26)*/ BinaryIO::BinaryRead(file, obj.value1); - /*if (header.fileInfo->version >= 0x20)*/ BinaryIO::BinaryRead(file, obj.value2); + /*if (header.fileInfo->version >= 0x26)*/ BinaryIO::BinaryRead(file, obj.nodeType); + /*if (header.fileInfo->version >= 0x20)*/ BinaryIO::BinaryRead(file, obj.glomId); BinaryIO::BinaryRead(file, obj.position); BinaryIO::BinaryRead(file, obj.rotation); diff --git a/dZoneManager/Level.h b/dZoneManager/Level.h index a27326a2..6f56e073 100644 --- a/dZoneManager/Level.h +++ b/dZoneManager/Level.h @@ -30,11 +30,7 @@ public: struct SceneObjectDataChunk { std::map objects; - const void PrintAllObjects() { - for (std::map::iterator it = objects.begin(); it != objects.end(); ++it) { - std::cout << "\t ID: " << it->first << " LOT: " << it->second.lot << std::endl; - } - } + void PrintAllObjects() const; uint32_t GetObjectCount() { return objects.size(); } }; diff --git a/dZoneManager/Zone.h b/dZoneManager/Zone.h index af9f6b55..ff931154 100644 --- a/dZoneManager/Zone.h +++ b/dZoneManager/Zone.h @@ -148,6 +148,8 @@ struct PropertyPath { float repMultiplier; PropertyRentalPeriod rentalPeriod; PropertyAchievmentRequired achievementRequired; + + // Player respawn coordinates in the main zone (not the property zone) NiPoint3 playerZoneCoords; float maxBuildHeight; }; diff --git a/dZoneManager/dZMCommon.h b/dZoneManager/dZMCommon.h index 635faaae..738fc283 100644 --- a/dZoneManager/dZMCommon.h +++ b/dZoneManager/dZMCommon.h @@ -12,8 +12,8 @@ struct mapCompareLwoSceneIDs { struct SceneObject { LWOOBJID id; LOT lot; - uint32_t value1; - uint32_t value2; + uint32_t nodeType; + uint32_t glomId; NiPoint3 position; NiQuaternion rotation; float scale = 1.0f; diff --git a/tests/dCommonTests/Amf3Tests.cpp b/tests/dCommonTests/Amf3Tests.cpp index a51fe4ba..5b52cf27 100644 --- a/tests/dCommonTests/Amf3Tests.cpp +++ b/tests/dCommonTests/Amf3Tests.cpp @@ -71,25 +71,15 @@ TEST(dCommonTests, AMF3InsertionAssociativeTest) { array.Insert>("Undefined", {}); array.Insert("Null", nullptr); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get("CString")->GetValueType(), eAmf::String); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get("String")->GetValueType(), eAmf::String); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get("False")->GetValueType(), eAmf::False); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get("True")->GetValueType(), eAmf::True); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get("Integer")->GetValueType(), eAmf::Integer); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get("Double")->GetValueType(), eAmf::Double); - std::cout << "test" << std::endl; ASSERT_EQ(array.GetArray("Array")->GetValueType(), eAmf::Array); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get("Null")->GetValueType(), eAmf::Null); - std::cout << "test" << std::endl; ASSERT_EQ(array.Get>("Undefined")->GetValueType(), eAmf::Undefined); - std::cout << "test" << std::endl; } TEST(dCommonTests, AMF3InsertionDenseTest) { From 9c5388c70eb2fb86f752ddc8ad9951f3ba5794e6 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Tue, 21 Nov 2023 18:04:44 -0800 Subject: [PATCH 024/106] feat: Add ability to toggle skipping of cinematics (#1312) * Cinematics: Add ability to toggle skipping them * Add docs * Move sections --- dCommon/dEnums/ePlayerFlag.h | 3 ++- dGame/dGameMessages/GameMessageHandler.cpp | 9 +++++++++ dGame/dGameMessages/GameMessages.cpp | 9 +++++++++ dGame/dUtilities/SlashCommandHandler.cpp | 16 ++++++++++++++++ docs/Commands.md | 3 ++- resources/worldconfig.ini | 4 ++++ 6 files changed, 42 insertions(+), 2 deletions(-) diff --git a/dCommon/dEnums/ePlayerFlag.h b/dCommon/dEnums/ePlayerFlag.h index fefdfb67..01adcb0e 100644 --- a/dCommon/dEnums/ePlayerFlag.h +++ b/dCommon/dEnums/ePlayerFlag.h @@ -166,7 +166,8 @@ enum ePlayerFlag : int32_t { NJ_LIGHTNING_SPINJITZU = 2031, NJ_ICE_SPINJITZU = 2032, NJ_FIRE_SPINJITZU = 2033, - NJ_WU_SHOW_DAILY_CHEST = 2099 + NJ_WU_SHOW_DAILY_CHEST = 2099, + DLU_SKIP_CINEMATICS = 1'000'000, }; #endif //!__EPLAYERFLAG__H__ diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index 40293fbe..55151242 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -34,6 +34,8 @@ #include "eMissionTaskType.h" #include "eReplicaComponentType.h" #include "eConnectionType.h" +#include "ePlayerFlag.h" +#include "dConfig.h" using namespace std; @@ -173,6 +175,13 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System GameMessages::SendPlayerReady(entity, sysAddr); GameMessages::SendPlayerReady(Game::zoneManager->GetZoneControlObject(), sysAddr); + if (Game::config->GetValue("allow_players_to_skip_cinematics") != "1" + || !entity->GetCharacter() + || !entity->GetCharacter()->GetPlayerFlag(ePlayerFlag::DLU_SKIP_CINEMATICS)) return; + entity->AddCallbackTimer(0.5f, [entity, sysAddr]() { + if (!entity) return; + GameMessages::SendEndCinematic(entity->GetObjectID(), u"", sysAddr); + }); break; } diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 7fb9c259..4cddebff 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -43,6 +43,7 @@ #include "eControlScheme.h" #include "eStateChangeType.h" #include "eConnectionType.h" +#include "ePlayerFlag.h" #include #include @@ -5161,6 +5162,14 @@ void GameMessages::HandleMissionDialogOK(RakNet::BitStream* inStream, Entity* en } else if (iMissionState == eMissionState::READY_TO_COMPLETE || iMissionState == eMissionState::COMPLETE_READY_TO_COMPLETE) { missionComponent->CompleteMission(missionID); } + + if (Game::config->GetValue("allow_players_to_skip_cinematics") != "1" + || !player->GetCharacter() + || !player->GetCharacter()->GetPlayerFlag(ePlayerFlag::DLU_SKIP_CINEMATICS)) return; + player->AddCallbackTimer(0.5f, [player]() { + if (!player) return; + GameMessages::SendEndCinematic(player->GetObjectID(), u"", player->GetSystemAddress()); + }); } void GameMessages::HandleRequestLinkedMission(RakNet::BitStream* inStream, Entity* entity) { diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index f4a21cab..8444bba7 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -85,6 +85,7 @@ #include "CDObjectsTable.h" #include "CDZoneTableTable.h" +#include "ePlayerFlag.h" void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entity* entity, const SystemAddress& sysAddr) { auto commandCopy = command; @@ -171,6 +172,21 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit return; } + if (chatCommand == "toggleskipcinematics" && (Game::config->GetValue("allow_players_to_skip_cinematics") == "1" || entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER)) { + auto* character = entity->GetCharacter(); + if (!character) return; + bool current = character->GetPlayerFlag(ePlayerFlag::DLU_SKIP_CINEMATICS); + character->SetPlayerFlag(ePlayerFlag::DLU_SKIP_CINEMATICS, !current); + if (!current) { + ChatPackets::SendSystemMessage(sysAddr, u"You have elected to skip cinematics. Note that not all cinematics can be skipped, but most will be skipped now."); + } else { + ChatPackets::SendSystemMessage(sysAddr, u"Cinematics will no longer be skipped."); + } + + return; + } + + //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //HANDLE ALL NON GM SLASH COMMANDS RIGHT HERE! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/docs/Commands.md b/docs/Commands.md index 71a3da43..16202056 100644 --- a/docs/Commands.md +++ b/docs/Commands.md @@ -14,6 +14,8 @@ |resurrect|`/resurrect`|Resurrects the player.|| |requestmailcount|`/requestmailcount`|Sends notification with number of unread messages in the player's mailbox.|| |who|`/who`|Displays in chat all players on the instance.|| +|togglenameplate|`/togglenameplate`|Turns the nameplate above your head that is visible to other players off and on.|8 or if `allow_nameplate_off` is set to exactly `1` in the settings| +|toggleskipcinematics|`/toggleskipcinematics`|Skips mission and world load related cinematics.|8 or if `allow_players_to_skip_cinematics` is set to exactly `1` in the settings then 0| ## Moderation Commands @@ -49,7 +51,6 @@ These commands are primarily for development and testing. The usage of many of t |Command|Usage|Description|Admin Level Requirement| |--- |--- |--- |--- | -|togglenameplate|`/togglenameplate`|Turns the nameplate above your head that is visible to other players off and on.|8 or if `allow_nameplate_off` is set to exactly `1` in the settings| |fix-stats|`/fix-stats`|Resets skills, buffs, and destroyables.|| |join|`/join `|Joins a private zone with given password.|| |leave-zone|`/leave-zone`|If you are in an instanced zone, transfers you to the closest main world. For example, if you are in an instance of Avant Gardens Survival or the Spider Queen Battle, you are sent to Avant Gardens. If you are in the Battle of Nimbus Station, you are sent to Nimbus Station.|| diff --git a/resources/worldconfig.ini b/resources/worldconfig.ini index 0b15973d..7f296afe 100644 --- a/resources/worldconfig.ini +++ b/resources/worldconfig.ini @@ -61,6 +61,7 @@ allow_nameplate_off=0 # Turn logging of IP addresses for anti-cheat reporting on (1) or off(0) log_ip_addresses_for_anti_cheat=1 +# These are the 5 items items that are shown in the "Help" menu in-game along with their coresponding descriptions below. help_0_summary=Got an issue? help_1_summary=Stuck loading? help_2_summary=Missing features? @@ -72,3 +73,6 @@ help_1_description=Try switching networks, using a VPN, or using your phone's ho help_2_description=While DarkflameServer is a mostly complete emulator, there are still some features that aren't implemented. You can track these on the GitHub issues page.

    help_3_description=Skill issue!

    help_4_description=Visit Discussions on the DarkflameServer GitHub page
    to ask questions and collaborate with other devs!

    + +# Toggleable quality of life feature to allow users to skip most cinematics. +allow_players_to_skip_cinematics=0 From df83f0d847ac8b15a046612a622a008515754a93 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Tue, 21 Nov 2023 20:05:15 -0600 Subject: [PATCH 025/106] feat: Reward codes (#1308) * feat: reward codes this is for giving rewards across characters as the did in live. Tested that the default config works Tested that all claim codes work Tested that saving and loading claim codes work Tested that mail sends correctly * newlines * include array * delete cascade * newline * address feedback --- dAuthServer/AuthServer.cpp | 2 + .../CDClientDatabase/CDClientManager.cpp | 2 + .../CDClientTables/CDRewardCodesTable.cpp | 47 ++++++++++++++++ .../CDClientTables/CDRewardCodesTable.h | 25 +++++++++ .../CDClientDatabase/CDClientTables/CDTable.h | 1 + .../CDClientTables/CMakeLists.txt | 1 + dDatabase/GameDatabase/GameDatabase.h | 3 +- .../ITables/IAccountsRewardCodes.h | 13 +++++ dDatabase/GameDatabase/MySQL/MySQLDatabase.h | 2 + .../MySQL/Tables/AccountsRewardCodes.cpp | 17 ++++++ .../GameDatabase/MySQL/Tables/CMakeLists.txt | 1 + dGame/dComponents/CharacterComponent.cpp | 56 +++++++++++++++++-- dGame/dComponents/CharacterComponent.h | 5 ++ dGame/dUtilities/SlashCommandHandler.cpp | 8 +++ dNet/AuthPackets.cpp | 20 +++++++ dNet/AuthPackets.h | 2 + dWorldServer/WorldServer.cpp | 5 +- docs/Commands.md | 1 + migrations/dlu/14_reward_codes.sql | 5 ++ resources/authconfig.ini | 8 +++ 20 files changed, 216 insertions(+), 8 deletions(-) create mode 100644 dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp create mode 100644 dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.h create mode 100644 dDatabase/GameDatabase/ITables/IAccountsRewardCodes.h create mode 100644 dDatabase/GameDatabase/MySQL/Tables/AccountsRewardCodes.cpp create mode 100644 migrations/dlu/14_reward_codes.sql diff --git a/dAuthServer/AuthServer.cpp b/dAuthServer/AuthServer.cpp index c6d434b3..7cc28263 100644 --- a/dAuthServer/AuthServer.cpp +++ b/dAuthServer/AuthServer.cpp @@ -94,6 +94,8 @@ int main(int argc, char** argv) { uint32_t framesSinceMasterDisconnect = 0; uint32_t framesSinceLastSQLPing = 0; + AuthPackets::LoadClaimCodes(); + while (!Game::shouldShutdown) { //Check if we're still connected to master: if (!Game::server->GetIsConnectedToMaster()) { diff --git a/dDatabase/CDClientDatabase/CDClientManager.cpp b/dDatabase/CDClientDatabase/CDClientManager.cpp index 465fd4e6..7c2f3953 100644 --- a/dDatabase/CDClientDatabase/CDClientManager.cpp +++ b/dDatabase/CDClientDatabase/CDClientManager.cpp @@ -37,6 +37,7 @@ #include "CDPropertyTemplateTable.h" #include "CDFeatureGatingTable.h" #include "CDRailActivatorComponent.h" +#include "CDRewardCodesTable.h" // Uncomment this to cache the full cdclient database into memory. This will make the server load faster, but will use more memory. // A vanilla CDClient takes about 46MB of memory + the regular world data. @@ -82,6 +83,7 @@ CDClientManager::CDClientManager() { CDRailActivatorComponentTable::Instance().LoadValuesFromDatabase(); CDRarityTableTable::Instance().LoadValuesFromDatabase(); CDRebuildComponentTable::Instance().LoadValuesFromDatabase(); + CDRewardCodesTable::Instance().LoadValuesFromDatabase(); CDRewardsTable::Instance().LoadValuesFromDatabase(); CDScriptComponentTable::Instance().LoadValuesFromDatabase(); CDSkillBehaviorTable::Instance().LoadValuesFromDatabase(); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp new file mode 100644 index 00000000..2bda73f4 --- /dev/null +++ b/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp @@ -0,0 +1,47 @@ +#include "CDRewardCodesTable.h" + +void CDRewardCodesTable::LoadValuesFromDatabase() { + + // First, get the size of the table + unsigned int size = 0; + auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM RewardCodes"); + while (!tableSize.eof()) { + size = tableSize.getIntField(0, 0); + + tableSize.nextRow(); + } + + tableSize.finalize(); + + // Reserve the size + this->entries.reserve(size); + + // Now get the data + auto tableData = CDClientDatabase::ExecuteQuery("SELECT * FROM RewardCodes"); + while (!tableData.eof()) { + CDRewardCode entry; + entry.id = tableData.getIntField("id", -1); + entry.code = tableData.getStringField("code", ""); + entry.attachmentLOT = tableData.getIntField("attachmentLOT", -1); + UNUSED_COLUMN(entry.locStatus = tableData.getIntField("locStatus", -1)); + UNUSED_COLUMN(entry.gate_version = tableData.getStringField("gate_version", "")); + + this->entries.push_back(entry); + tableData.nextRow(); + } +} + +LOT CDRewardCodesTable::GetAttachmentLOT(uint32_t rewardCodeId) const { + for (auto const &entry : this->entries){ + if (rewardCodeId == entry.id) return entry.attachmentLOT; + } + return LOT_NULL; +} + +uint32_t CDRewardCodesTable::GetCodeID(std::string code) const { + for (auto const &entry : this->entries){ + if (code == entry.code) return entry.id; + } + return -1; +} + diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.h new file mode 100644 index 00000000..1010a572 --- /dev/null +++ b/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.h @@ -0,0 +1,25 @@ +#pragma once + +// Custom Classes +#include "CDTable.h" + + +struct CDRewardCode { + uint32_t id; + std::string code; + LOT attachmentLOT; + UNUSED(uint32_t locStatus); + UNUSED(std::string gate_version); +}; + + +class CDRewardCodesTable : public CDTable { +private: + std::vector entries; + +public: + void LoadValuesFromDatabase(); + const std::vector& GetEntries() const; + LOT GetAttachmentLOT(uint32_t rewardCodeId) const; + uint32_t GetCodeID(std::string code) const; +}; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDTable.h index e4c11fb9..0a8f29ad 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDTable.h @@ -8,6 +8,7 @@ #include #include #include +#include // CPPLinq #ifdef _WIN32 diff --git a/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt b/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt index 43ff52b2..b2551efa 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt +++ b/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt @@ -31,6 +31,7 @@ set(DDATABASE_CDCLIENTDATABASE_CDCLIENTTABLES_SOURCES "CDActivitiesTable.cpp" "CDRailActivatorComponent.cpp" "CDRarityTableTable.cpp" "CDRebuildComponentTable.cpp" + "CDRewardCodesTable.cpp" "CDRewardsTable.cpp" "CDScriptComponentTable.cpp" "CDSkillBehaviorTable.cpp" diff --git a/dDatabase/GameDatabase/GameDatabase.h b/dDatabase/GameDatabase/GameDatabase.h index 7d8c7de9..d874a488 100644 --- a/dDatabase/GameDatabase/GameDatabase.h +++ b/dDatabase/GameDatabase/GameDatabase.h @@ -21,6 +21,7 @@ #include "ICharInfo.h" #include "IAccounts.h" #include "IActivityLog.h" +#include "IAccountsRewardCodes.h" namespace sql { class Statement; @@ -38,7 +39,7 @@ class GameDatabase : public IMail, public ICommandLog, public IPlayerCheatDetections, public IBugReports, public IPropertyContents, public IProperty, public IPetNames, public ICharXml, public IMigrationHistory, public IUgc, public IFriends, public ICharInfo, - public IAccounts, public IActivityLog { + public IAccounts, public IActivityLog, public IAccountsRewardCodes { public: virtual ~GameDatabase() = default; // TODO: These should be made private. diff --git a/dDatabase/GameDatabase/ITables/IAccountsRewardCodes.h b/dDatabase/GameDatabase/ITables/IAccountsRewardCodes.h new file mode 100644 index 00000000..2fcb9d2a --- /dev/null +++ b/dDatabase/GameDatabase/ITables/IAccountsRewardCodes.h @@ -0,0 +1,13 @@ +#ifndef __IACCOUNTSREWARDCODES__H__ +#define __IACCOUNTSREWARDCODES__H__ + +#include +#include + +class IAccountsRewardCodes { +public: + virtual void InsertRewardCode(const uint32_t account_id, const uint32_t reward_code) = 0; + virtual std::vector GetRewardCodesByAccountID(const uint32_t account_id) = 0; +}; + +#endif //!__IACCOUNTSREWARDCODES__H__ diff --git a/dDatabase/GameDatabase/MySQL/MySQLDatabase.h b/dDatabase/GameDatabase/MySQL/MySQLDatabase.h index bed79bb7..7b4e21e4 100644 --- a/dDatabase/GameDatabase/MySQL/MySQLDatabase.h +++ b/dDatabase/GameDatabase/MySQL/MySQLDatabase.h @@ -103,6 +103,8 @@ public: std::optional GetDonationTotal(const uint32_t activityId) override; std::optional IsPlaykeyActive(const int32_t playkeyId) override; std::vector GetUgcModels(const LWOOBJID& propertyId) override; + void InsertRewardCode(const uint32_t account_id, const uint32_t reward_code) override; + std::vector GetRewardCodesByAccountID(const uint32_t account_id) override; private: // Generic query functions that can be used for any query. diff --git a/dDatabase/GameDatabase/MySQL/Tables/AccountsRewardCodes.cpp b/dDatabase/GameDatabase/MySQL/Tables/AccountsRewardCodes.cpp new file mode 100644 index 00000000..7243ce3c --- /dev/null +++ b/dDatabase/GameDatabase/MySQL/Tables/AccountsRewardCodes.cpp @@ -0,0 +1,17 @@ +#include "MySQLDatabase.h" + +void MySQLDatabase::InsertRewardCode(const uint32_t account_id, const uint32_t reward_code) { + ExecuteInsert("INSERT IGNORE INTO accounts_rewardcodes (account_id, rewardcode) VALUES (?, ?);", account_id, reward_code); +} + +std::vector MySQLDatabase::GetRewardCodesByAccountID(const uint32_t account_id) { + auto result = ExecuteSelect("SELECT rewardcode FROM accounts_rewardcodes WHERE account_id = ?;", account_id); + + std::vector toReturn; + toReturn.reserve(result->rowsCount()); + while (result->next()) { + toReturn.push_back(result->getUInt("rewardcode")); + } + + return toReturn; +} diff --git a/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt b/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt index e9593ba9..c45510b9 100644 --- a/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt +++ b/dDatabase/GameDatabase/MySQL/Tables/CMakeLists.txt @@ -1,5 +1,6 @@ set(DDATABASES_DATABASES_MYSQL_TABLES_SOURCES "Accounts.cpp" + "AccountsRewardCodes.cpp" "ActivityLog.cpp" "BugReports.cpp" "CharInfo.cpp" diff --git a/dGame/dComponents/CharacterComponent.cpp b/dGame/dComponents/CharacterComponent.cpp index 8c59b28e..d1b7ee21 100644 --- a/dGame/dComponents/CharacterComponent.cpp +++ b/dGame/dComponents/CharacterComponent.cpp @@ -16,6 +16,10 @@ #include "Amf3.h" #include "eGameMasterLevel.h" #include "eGameActivity.h" +#include "User.h" +#include "Database.h" +#include "CDRewardCodesTable.h" +#include "Mail.h" #include CharacterComponent::CharacterComponent(Entity* parent, Character* character) : Component(parent) { @@ -74,10 +78,14 @@ CharacterComponent::~CharacterComponent() { void CharacterComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { if (bIsInitialUpdate) { - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); + outBitStream->Write(m_ClaimCodes[0] != 0); + if (m_ClaimCodes[0] != 0) outBitStream->Write(m_ClaimCodes[0]); + outBitStream->Write(m_ClaimCodes[1] != 0); + if (m_ClaimCodes[1] != 0) outBitStream->Write(m_ClaimCodes[1]); + outBitStream->Write(m_ClaimCodes[2] != 0); + if (m_ClaimCodes[2] != 0) outBitStream->Write(m_ClaimCodes[2]); + outBitStream->Write(m_ClaimCodes[3] != 0); + if (m_ClaimCodes[3] != 0) outBitStream->Write(m_ClaimCodes[3]); outBitStream->Write(m_Character->GetHairColor()); outBitStream->Write(m_Character->GetHairStyle()); @@ -186,6 +194,13 @@ void CharacterComponent::LoadFromXml(tinyxml2::XMLDocument* doc) { SetReputation(0); } + character->QueryUnsigned64Attribute("co", &m_ClaimCodes[0]); + character->QueryUnsigned64Attribute("co1", &m_ClaimCodes[1]); + character->QueryUnsigned64Attribute("co2", &m_ClaimCodes[2]); + character->QueryUnsigned64Attribute("co3", &m_ClaimCodes[3]); + + AwardClaimCodes(); + character->QueryInt64Attribute("ls", &m_Uscore); // Load the statistics @@ -308,6 +323,11 @@ void CharacterComponent::UpdateXml(tinyxml2::XMLDocument* doc) { return; } + if (m_ClaimCodes[0] != 0) character->SetAttribute("co", m_ClaimCodes[0]); + if (m_ClaimCodes[1] != 0) character->SetAttribute("co1", m_ClaimCodes[1]); + if (m_ClaimCodes[2] != 0) character->SetAttribute("co2", m_ClaimCodes[2]); + if (m_ClaimCodes[3] != 0) character->SetAttribute("co3", m_ClaimCodes[3]); + character->SetAttribute("ls", m_Uscore); // Custom attribute to keep track of reputation. character->SetAttribute("rpt", GetReputation()); @@ -738,3 +758,31 @@ void CharacterComponent::UpdateClientMinimap(bool showFaction, std::string ventu arrayToSend.Insert(ventureVisionType, showFaction); GameMessages::SendUIMessageServerToSingleClient(m_Parent, m_Parent ? m_Parent->GetSystemAddress() : UNASSIGNED_SYSTEM_ADDRESS, "SetFactionVisibility", arrayToSend); } + +void CharacterComponent::AwardClaimCodes() { + if (!m_Parent) return; + auto* user = m_Parent->GetParentUser(); + if (!user) return; + + auto rewardCodes = Database::Get()->GetRewardCodesByAccountID(user->GetAccountID()); + if (rewardCodes.empty()) return; + + auto* cdrewardCodes = CDClientManager::Instance().GetTable(); + for (auto const rewardCode: rewardCodes){ + LOG_DEBUG("Processing RewardCode %i", rewardCode); + const uint32_t rewardCodeIndex = rewardCode >> 6; + const uint32_t bitIndex = rewardCode % 64; + if (GeneralUtils::CheckBit(m_ClaimCodes[rewardCodeIndex], bitIndex)) continue; + m_ClaimCodes[rewardCodeIndex] = GeneralUtils::SetBit(m_ClaimCodes[rewardCodeIndex], bitIndex); + + // Don't send it on this one since it's default and the mail doesn't make sense + if (rewardCode == 30) continue; + + auto attachmentLOT = cdrewardCodes->GetAttachmentLOT(rewardCode); + std::ostringstream subject; + subject << "%[RewardCodes_" << rewardCode << "_subjectText]"; + std::ostringstream body; + body << "%[RewardCodes_" << rewardCode << "_bodyText]"; + Mail::SendMail(LWOOBJID_EMPTY, "%[MAIL_SYSTEM_NOTIFICATION]", m_Parent, subject.str(), body.str(), attachmentLOT, 1); + } +} diff --git a/dGame/dComponents/CharacterComponent.h b/dGame/dComponents/CharacterComponent.h index 5bafb3df..4222ef4a 100644 --- a/dGame/dComponents/CharacterComponent.h +++ b/dGame/dComponents/CharacterComponent.h @@ -10,6 +10,7 @@ #include "CDMissionsTable.h" #include "tinyxml2.h" #include "eReplicaComponentType.h" +#include enum class eGameActivity : uint32_t; @@ -566,6 +567,10 @@ private: LWOOBJID m_LastRocketItemID = LWOOBJID_EMPTY; LWOOBJID m_CurrentInteracting = LWOOBJID_EMPTY; + + std::array m_ClaimCodes{}; + + void AwardClaimCodes(); }; #endif // CHARACTERCOMPONENT_H diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 8444bba7..13fc3ded 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -83,6 +83,7 @@ #include "eChatInternalMessageType.h" #include "eMasterMessageType.h" +#include "CDRewardCodesTable.h" #include "CDObjectsTable.h" #include "CDZoneTableTable.h" #include "ePlayerFlag.h" @@ -1911,6 +1912,13 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit } } + if (chatCommand == "setrewardcode" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER && args.size() == 1) { + auto* cdrewardCodes = CDClientManager::Instance().GetTable(); + + auto id = cdrewardCodes->GetCodeID(args[0]); + if (id != -1) Database::Get()->InsertRewardCode(user->GetAccountID(), id); + } + if (chatCommand == "inspect" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER && args.size() >= 1) { Entity* closest = nullptr; diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index f0b22b4e..6ee38028 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -29,6 +29,22 @@ #include "eMasterMessageType.h" #include "eGameMasterLevel.h" +namespace { + std::vector claimCodes; +} + +void AuthPackets::LoadClaimCodes() { + if(!claimCodes.empty()) return; + auto rcstring = Game::config->GetValue("rewardcodes"); + auto codestrings = GeneralUtils::SplitString(rcstring, ','); + for(auto const &codestring: codestrings){ + uint32_t code = -1; + if(GeneralUtils::TryParse(codestring, code) && code != -1){ + claimCodes.push_back(code); + } + } +} + void AuthPackets::HandleHandshake(dServer* server, Packet* packet) { RakNet::BitStream inStream(packet->data, packet->length, false); uint64_t header = inStream.Read(header); @@ -129,6 +145,10 @@ void AuthPackets::HandleLoginRequest(dServer* server, Packet* packet) { AuthPackets::SendLoginResponse(server, system, eLoginResponse::SUCCESS, "", zoneIP, zonePort, username); }); } + + for(auto const code: claimCodes){ + Database::Get()->InsertRewardCode(accountInfo->id, code); + } } void AuthPackets::SendLoginResponse(dServer* server, const SystemAddress& sysAddr, eLoginResponse responseCode, const std::string& errorMsg, const std::string& wServerIP, uint16_t wServerPort, std::string username) { diff --git a/dNet/AuthPackets.h b/dNet/AuthPackets.h index 0f004ca4..eb275a46 100644 --- a/dNet/AuthPackets.h +++ b/dNet/AuthPackets.h @@ -15,6 +15,8 @@ namespace AuthPackets { void HandleLoginRequest(dServer* server, Packet* packet); void SendLoginResponse(dServer* server, const SystemAddress& sysAddr, eLoginResponse responseCode, const std::string& errorMsg, const std::string& wServerIP, uint16_t wServerPort, std::string username); + void LoadClaimCodes(); + } #endif // AUTHPACKETS_H diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index cfd7d157..f916e40c 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -1033,9 +1033,8 @@ void HandlePacket(Packet* packet) { Game::entityManager->ConstructAllEntities(packet->systemAddress); auto* characterComponent = player->GetComponent(); - if (characterComponent) { - player->GetComponent()->RocketUnEquip(player); - } + if (!characterComponent) return; + characterComponent->RocketUnEquip(player); // Do charxml fixes here auto* levelComponent = player->GetComponent(); diff --git a/docs/Commands.md b/docs/Commands.md index 16202056..0ba7d86e 100644 --- a/docs/Commands.md +++ b/docs/Commands.md @@ -113,6 +113,7 @@ These commands are primarily for development and testing. The usage of many of t |setfaction|`/setfaction `|Clears the users current factions and sets it|8| |addfaction|`/addfaction `|Add the faction to the users list of factions|8| |getfactions|`/getfactions`|Shows the player's factions|8| +|setrewardcode|`/setrewardcode `|Sets the rewardcode for the account you are logged into if it's a valid rewardcode, See cdclient table `RewardCodes`|8| ## Detailed `/inspect` Usage `/inspect (-m | -a | -s | -p | -f (faction) | -t)` diff --git a/migrations/dlu/14_reward_codes.sql b/migrations/dlu/14_reward_codes.sql new file mode 100644 index 00000000..a439df2e --- /dev/null +++ b/migrations/dlu/14_reward_codes.sql @@ -0,0 +1,5 @@ +CREATE TABLE IF NOT EXISTS accounts_rewardcodes ( + account_id INT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE, + rewardcode INT NOT NULL, + PRIMARY KEY (account_id, rewardcode) +); diff --git a/resources/authconfig.ini b/resources/authconfig.ini index ec414bc0..62a5c6de 100644 --- a/resources/authconfig.ini +++ b/resources/authconfig.ini @@ -4,3 +4,11 @@ port=1001 # 0 or 1, should ignore playkeys # If 1 everyone with an account will be able to login, regardless of if they have a key or not dont_use_keys=0 + +# list of rewardcodes to set on the accounts by default +# ex: 30,1,0,3 +# See RewardCodes in the CDclient for what codes exist +# Default 4,30 +# 4 allows LEGOClub access +# 30 makes the client not consume bricks when in bbb mode +rewardcodes=4,30 From 198b3371c5555527d5359a15b1937b09d9d1494c Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Tue, 21 Nov 2023 18:14:30 -0800 Subject: [PATCH 026/106] chore: Update old character create code (#1291) * create new character fixes Don't use persistentIds, guarantee ids are unique by using do while to generate the id * Update queries to actually use prep stmt * Update UserManager.cpp * Update UserManager.cpp --- dGame/UserManager.cpp | 103 ++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 50 deletions(-) diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 9820636a..8a58ac69 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -207,7 +207,7 @@ void UserManager::RequestCharacterList(const SystemAddress& sysAddr) { chars[i]->SaveXMLToDatabase(); chars[i]->GetEntity()->SetCharacter(nullptr); - + delete chars[i]; } @@ -275,60 +275,58 @@ void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) } std::stringstream xml; - xml << ""; + + xml << ""; xml << "GetAccountID() << "\" cc=\"0\" gm=\"0\" ft=\"0\" llog=\"" << time(NULL) << "\" "; xml << "ls=\"0\" lzx=\"-626.5847\" lzy=\"613.3515\" lzz=\"-28.6374\" lzrx=\"0.0\" lzry=\"0.7015\" lzrz=\"0.0\" lzrw=\"0.7126\" "; xml << "stt=\"0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;\">"; + xml << ""; + xml << ""; - std::string xmlSave1 = xml.str(); - ObjectIDManager::Instance()->RequestPersistentID([=](uint32_t idforshirt) { - std::stringstream xml2; + LWOOBJID lwoidforshirt = ObjectIDManager::GenerateRandomObjectID(); + LWOOBJID lwoidforpants; - LWOOBJID lwoidforshirt = idforshirt; - GeneralUtils::SetBit(lwoidforshirt, eObjectBits::CHARACTER); - GeneralUtils::SetBit(lwoidforshirt, eObjectBits::PERSISTENT); - xml2 << xmlSave1 << ""; + do { + lwoidforpants = ObjectIDManager::GenerateRandomObjectID(); + } while (lwoidforpants == lwoidforshirt); //Make sure we don't have the same ID for both shirt and pants - std::string xmlSave2 = xml2.str(); + GeneralUtils::SetBit(lwoidforshirt, eObjectBits::CHARACTER); + GeneralUtils::SetBit(lwoidforshirt, eObjectBits::PERSISTENT); + GeneralUtils::SetBit(lwoidforpants, eObjectBits::CHARACTER); + GeneralUtils::SetBit(lwoidforpants, eObjectBits::PERSISTENT); - ObjectIDManager::Instance()->RequestPersistentID([=](uint32_t idforpants) { - LWOOBJID lwoidforpants = idforpants; - GeneralUtils::SetBit(lwoidforpants, eObjectBits::CHARACTER); - GeneralUtils::SetBit(lwoidforpants, eObjectBits::PERSISTENT); + xml << ""; + xml << ""; - std::stringstream xml3; - xml3 << xmlSave2 << ""; + xml << ""; - xml3 << ""; + //Check to see if our name was pre-approved: + bool nameOk = IsNamePreapproved(name); + if (!nameOk && u->GetMaxGMLevel() > eGameMasterLevel::FORUM_MODERATOR) nameOk = true; - //Check to see if our name was pre-approved: - bool nameOk = IsNamePreapproved(name); - if (!nameOk && u->GetMaxGMLevel() > eGameMasterLevel::FORUM_MODERATOR) nameOk = true; + std::string_view nameToAssign = !name.empty() && nameOk ? name : predefinedName; + std::string pendingName = !name.empty() && !nameOk ? name : ""; - std::string_view nameToAssign = !name.empty() && nameOk ? name : predefinedName; - std::string pendingName = !name.empty() && !nameOk ? name : ""; + ICharInfo::Info info; + info.name = nameToAssign; + info.pendingName = pendingName; + info.id = objectID; + info.accountId = u->GetAccountID(); - ICharInfo::Info info; - info.name = nameToAssign; - info.pendingName = pendingName; - info.id = objectID; - info.accountId = u->GetAccountID(); + Database::Get()->InsertNewCharacter(info); - Database::Get()->InsertNewCharacter(info); + //Now finally insert our character xml: + Database::Get()->InsertCharacterXml(objectID, xml.str()); - //Now finally insert our character xml: - Database::Get()->InsertCharacterXml(objectID, xml3.str()); - - WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::SUCCESS); - UserManager::RequestCharacterList(sysAddr); - }); - }); - }); + WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::SUCCESS); + UserManager::RequestCharacterList(sysAddr); + }); } void UserManager::DeleteCharacter(const SystemAddress& sysAddr, Packet* packet) { @@ -466,16 +464,18 @@ void UserManager::LoginCharacter(const SystemAddress& sysAddr, uint32_t playerID uint32_t FindCharShirtID(uint32_t shirtColor, uint32_t shirtStyle) { try { - std::string shirtQuery = "select obj.id from Objects as obj JOIN (select * from ComponentsRegistry as cr JOIN ItemComponent as ic on ic.id = cr.component_id where cr.component_type == 11) as icc on icc.id = obj.id where lower(obj._internalNotes) == \"character create shirt\" AND icc.color1 == "; - shirtQuery += std::to_string(shirtColor); - shirtQuery += " AND icc.decal == "; - shirtQuery = shirtQuery + std::to_string(shirtStyle); - auto tableData = CDClientDatabase::ExecuteQuery(shirtQuery); - auto shirtLOT = tableData.getIntField(0, -1); + auto stmt = CDClientDatabase::CreatePreppedStmt( + "select obj.id from Objects as obj JOIN (select * from ComponentsRegistry as cr JOIN ItemComponent as ic on ic.id = cr.component_id where cr.component_type == 11) as icc on icc.id = obj.id where lower(obj._internalNotes) == ? AND icc.color1 == ? AND icc.decal == ?" + ); + stmt.bind(1, "character create shirt"); + stmt.bind(2, static_cast(shirtColor)); + stmt.bind(3, static_cast(shirtStyle)); + auto tableData = stmt.execQuery(); + auto shirtLOT = tableData.getIntField(0, 4069); tableData.finalize(); return shirtLOT; - } catch (const std::exception&) { - LOG("Failed to execute query! Using backup..."); + } catch (const std::exception& ex) { + LOG("Could not look up shirt %i %i: %s", shirtColor, shirtStyle, ex.what()); // in case of no shirt found in CDServer, return problematic red vest. return 4069; } @@ -483,14 +483,17 @@ uint32_t FindCharShirtID(uint32_t shirtColor, uint32_t shirtStyle) { uint32_t FindCharPantsID(uint32_t pantsColor) { try { - std::string pantsQuery = "select obj.id from Objects as obj JOIN (select * from ComponentsRegistry as cr JOIN ItemComponent as ic on ic.id = cr.component_id where cr.component_type == 11) as icc on icc.id = obj.id where lower(obj._internalNotes) == \"cc pants\" AND icc.color1 == "; - pantsQuery += std::to_string(pantsColor); - auto tableData = CDClientDatabase::ExecuteQuery(pantsQuery); - auto pantsLOT = tableData.getIntField(0, -1); + auto stmt = CDClientDatabase::CreatePreppedStmt( + "select obj.id from Objects as obj JOIN (select * from ComponentsRegistry as cr JOIN ItemComponent as ic on ic.id = cr.component_id where cr.component_type == 11) as icc on icc.id = obj.id where lower(obj._internalNotes) == ? AND icc.color1 == ?" + ); + stmt.bind(1, "cc pants"); + stmt.bind(2, static_cast(pantsColor)); + auto tableData = stmt.execQuery(); + auto pantsLOT = tableData.getIntField(0, 2508); tableData.finalize(); return pantsLOT; - } catch (const std::exception&) { - LOG("Failed to execute query! Using backup..."); + } catch (const std::exception& ex) { + LOG("Could not look up pants %i: %s", pantsColor, ex.what()); // in case of no pants color found in CDServer, return red pants. return 2508; } From 0217f88c445b43365a55438e86f590eb296254f6 Mon Sep 17 00:00:00 2001 From: jadebenn Date: Wed, 22 Nov 2023 08:06:09 -0600 Subject: [PATCH 027/106] pet emote fix (#1315) --- dGame/dGameMessages/GameMessages.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 4cddebff..34b031d3 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -5017,6 +5017,14 @@ void GameMessages::HandlePlayEmote(RakNet::BitStream* inStream, Entity* entity) if (emoteID == 0) return; std::string sAnimationName = "deaded"; //Default name in case we fail to get the emote + CDEmoteTableTable* emotes = CDClientManager::Instance().GetTable(); + if (emotes) { + CDEmoteTable* emote = emotes->GetEmote(emoteID); + if (emote) sAnimationName = emote->animationName; + } + + RenderComponent::PlayAnimation(entity, sAnimationName); + MissionComponent* missionComponent = entity->GetComponent(); if (!missionComponent) return; @@ -5042,14 +5050,6 @@ void GameMessages::HandlePlayEmote(RakNet::BitStream* inStream, Entity* entity) missionComponent->Progress(eMissionTaskType::EMOTE, emoteID, scripted->GetObjectID()); } } - - CDEmoteTableTable* emotes = CDClientManager::Instance().GetTable(); - if (emotes) { - CDEmoteTable* emote = emotes->GetEmote(emoteID); - if (emote) sAnimationName = emote->animationName; - } - - RenderComponent::PlayAnimation(entity, sAnimationName); } void GameMessages::HandleModularBuildConvertModel(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) { From fd20baaf09b141cb94710d504403ebdc69c500f4 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Thu, 23 Nov 2023 03:48:06 -0800 Subject: [PATCH 028/106] Fix UB in remote input info (#1316) Yes i should have made this first no this wouldnt have happened with rust --- dGame/dComponents/VehiclePhysicsComponent.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dGame/dComponents/VehiclePhysicsComponent.h b/dGame/dComponents/VehiclePhysicsComponent.h index 69f8579c..94ba650a 100644 --- a/dGame/dComponents/VehiclePhysicsComponent.h +++ b/dGame/dComponents/VehiclePhysicsComponent.h @@ -6,6 +6,13 @@ #include "eReplicaComponentType.h" struct RemoteInputInfo { + RemoteInputInfo() { + m_RemoteInputX = 0; + m_RemoteInputY = 0; + m_IsPowersliding = false; + m_IsModified = false; + } + void operator=(const RemoteInputInfo& other) { m_RemoteInputX = other.m_RemoteInputX; m_RemoteInputY = other.m_RemoteInputY; From 8a15906885de35b8c74e54b695d93cd68e48e616 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 24 Nov 2023 01:46:26 -0800 Subject: [PATCH 029/106] fix: Racing end of race leaderboards now work (#1317) * Fix UB in remote input info Yes i should have made this first no this wouldnt have happened with rust * fix end of race leaderboard Tested that with two players, both players see the others time at the end of the race and all other metrics are shown correctly. Technically the outBitStream->Write(static_cast(m_RacingPlayers.size())); should only be written once but how we do it now it is written as we load players in and this is the cheap option compared to the number of bits we are supposed to waste at the end of races --- dGame/dComponents/RacingControlComponent.cpp | 108 +++++++++---------- dGame/dComponents/RacingControlComponent.h | 8 +- 2 files changed, 52 insertions(+), 64 deletions(-) diff --git a/dGame/dComponents/RacingControlComponent.cpp b/dGame/dComponents/RacingControlComponent.cpp index e5f2dbe1..a4737d9e 100644 --- a/dGame/dComponents/RacingControlComponent.cpp +++ b/dGame/dComponents/RacingControlComponent.cpp @@ -51,7 +51,7 @@ RacingControlComponent::RacingControlComponent(Entity* parent) m_MainWorld = 1200; const auto worldID = Game::server->GetZoneID(); - if (Game::zoneManager->CheckIfAccessibleZone((worldID/10)*10)) m_MainWorld = (worldID/10)*10; + if (Game::zoneManager->CheckIfAccessibleZone((worldID / 10) * 10)) m_MainWorld = (worldID / 10) * 10; m_ActivityID = 42; CDActivitiesTable* activitiesTable = CDClientManager::Instance().GetTable(); @@ -72,7 +72,7 @@ void RacingControlComponent::OnPlayerLoaded(Entity* player) { // If the race has already started, send the player back to the main world. if (m_Loaded || !vehicle) { auto* playerInstance = dynamic_cast(player); - if(playerInstance){ + if (playerInstance) { playerInstance->SendToZone(m_MainWorld); } return; @@ -106,12 +106,12 @@ void RacingControlComponent::LoadPlayerVehicle(Entity* player, if (item == nullptr) { LOG("Failed to find item"); auto* playerInstance = dynamic_cast(player); - if(playerInstance){ + if (playerInstance) { m_LoadedPlayers--; playerInstance->SendToZone(m_MainWorld); } return; - + } // Calculate the vehicle's starting position. @@ -213,6 +213,7 @@ void RacingControlComponent::LoadPlayerVehicle(Entity* player, 0, 0, 0 }); + m_AllPlayersReady = false; } // Construct and serialize everything when done. @@ -330,7 +331,7 @@ void RacingControlComponent::OnRequestDie(Entity* player) { // Reset imagination to half its current value, rounded up to the nearest value divisible by 10, as it was done in live. if (destroyableComponent) destroyableComponent->SetImagination(respawnImagination); Game::entityManager->SerializeEntity(vehicle); - }); + }); auto* characterComponent = player->GetComponent(); if (characterComponent != nullptr) { @@ -384,11 +385,11 @@ void RacingControlComponent::HandleMessageBoxResponse(Entity* player, int32_t bu // Calculate the score, different loot depending on player count auto playersRating = m_LoadedPlayers; - if(m_LoadedPlayers == 1 && m_SoloRacing) { + if (m_LoadedPlayers == 1 && m_SoloRacing) { playersRating *= 2; } - const auto score = playersRating * 10 + data->finished; + const auto score = playersRating * 10 + data->finished; Loot::GiveActivityLoot(player, m_Parent, m_ActivityID, score); // Giving rewards @@ -436,64 +437,82 @@ void RacingControlComponent::HandleMessageBoxResponse(Entity* player, int32_t bu void RacingControlComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { // BEGIN Scripted Activity - outBitStream->Write1(); outBitStream->Write(static_cast(m_RacingPlayers.size())); for (const auto& player : m_RacingPlayers) { outBitStream->Write(player.playerID); - for (int i = 0; i < 10; i++) { - outBitStream->Write(player.data[i]); - } + outBitStream->Write(player.data[0]); + if (player.finished != 0) outBitStream->Write(player.raceTime); + else outBitStream->Write(player.data[1]); + if (player.finished != 0) outBitStream->Write(player.bestLapTime); + else outBitStream->Write(player.data[2]); + if (player.finished == 1) outBitStream->Write(1.0f); + else outBitStream->Write(player.data[3]); + outBitStream->Write(player.data[4]); + outBitStream->Write(player.data[5]); + outBitStream->Write(player.data[6]); + outBitStream->Write(player.data[7]); + outBitStream->Write(player.data[8]); + outBitStream->Write(player.data[9]); } // END Scripted Activity - outBitStream->Write1(); // Dirty? + outBitStream->Write1(); outBitStream->Write(static_cast(m_RacingPlayers.size())); - outBitStream->Write(!m_RacingPlayers.empty()); - if (!m_RacingPlayers.empty()) { + outBitStream->Write(!m_AllPlayersReady); + if (!m_AllPlayersReady) { + int32_t numReady = 0; for (const auto& player : m_RacingPlayers) { - outBitStream->Write1(); // Has more date - + outBitStream->Write1(); // Has more player data outBitStream->Write(player.playerID); outBitStream->Write(player.vehicleID); outBitStream->Write(player.playerIndex); outBitStream->Write(player.playerLoaded); + if (player.playerLoaded) numReady++; } outBitStream->Write0(); // No more data + if (numReady == m_RacingPlayers.size()) m_AllPlayersReady = true; } outBitStream->Write(!m_RacingPlayers.empty()); if (!m_RacingPlayers.empty()) { for (const auto& player : m_RacingPlayers) { + if (player.finished == 0) continue; outBitStream->Write1(); // Has more date outBitStream->Write(player.playerID); - outBitStream->Write(0); + outBitStream->Write(player.finished); } outBitStream->Write0(); // No more data } - outBitStream->Write1(); // Dirty? - - outBitStream->Write(m_RemainingLaps); - - outBitStream->Write(static_cast(m_PathName.size())); - for (const auto character : m_PathName) { - outBitStream->Write(character); + outBitStream->Write(bIsInitialUpdate); + if (bIsInitialUpdate) { + outBitStream->Write(m_RemainingLaps); + outBitStream->Write(static_cast(m_PathName.size())); + for (const auto character : m_PathName) { + outBitStream->Write(character); + } } - outBitStream->Write1(); // ??? - outBitStream->Write1(); // ??? + outBitStream->Write(!m_RacingPlayers.empty()); + if (!m_RacingPlayers.empty()) { + for (const auto& player : m_RacingPlayers) { + if (player.finished == 0) continue; + outBitStream->Write1(); // Has more data + outBitStream->Write(player.playerID); + outBitStream->Write(player.bestLapTime); + outBitStream->Write(player.raceTime); + } - outBitStream->Write(m_LeadingPlayer); - outBitStream->Write(m_RaceBestLap); - outBitStream->Write(m_RaceBestTime); + outBitStream->Write0(); // No more data + } } RacingPlayerInfo* RacingControlComponent::GetPlayerData(LWOOBJID playerID) { @@ -569,7 +588,7 @@ void RacingControlComponent::Update(float deltaTime) { LoadPlayerVehicle(player, positionNumber + 1, true); - m_Loaded = true; + Game::entityManager->SerializeEntity(m_Parent); } m_Loaded = true; @@ -757,6 +776,8 @@ void RacingControlComponent::Update(float deltaTime) { continue; } + if (m_Finished != 0) Game::entityManager->SerializeEntity(m_Parent); + // Loop through all the waypoints and see if the player has reached a // new checkpoint uint32_t respawnIndex = 0; @@ -849,8 +870,6 @@ void RacingControlComponent::Update(float deltaTime) { if (characterComponent != nullptr) { characterComponent->TrackRaceCompleted(m_Finished == 1); } - - // TODO: Figure out how to update the GUI leaderboard. } } @@ -865,28 +884,3 @@ void RacingControlComponent::Update(float deltaTime) { } } } - -std::string RacingControlComponent::FormatTimeString(time_t time) { - int32_t min = time / 60; - time -= min * 60; - int32_t sec = time; - - std::string minText; - std::string secText; - - if (min <= 0) { - minText = "0"; - } else { - minText = std::to_string(min); - } - - if (sec <= 0) { - secText = "00"; - } else if (sec <= 9) { - secText = "0" + std::to_string(sec); - } else { - secText = std::to_string(sec); - } - - return minText + ":" + secText + ".00"; -} diff --git a/dGame/dComponents/RacingControlComponent.h b/dGame/dComponents/RacingControlComponent.h index 3dcb730e..47341aae 100644 --- a/dGame/dComponents/RacingControlComponent.h +++ b/dGame/dComponents/RacingControlComponent.h @@ -151,13 +151,6 @@ public: */ RacingPlayerInfo* GetPlayerData(LWOOBJID playerID); - /** - * Formats a time to a string, currently unused - * @param time the time to format - * @return the time formatted as string - */ - static std::string FormatTimeString(time_t time); - private: /** @@ -251,4 +244,5 @@ private: * Value for message box response to know if we are exiting the race via the activity dialogue */ const int32_t m_ActivityExitConfirm = 1; + bool m_AllPlayersReady = false; }; From 0c32be01baab5d2169620865abc0629d675636fb Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 25 Nov 2023 20:50:20 -0800 Subject: [PATCH 030/106] fix: nexus tower smashable (#1320) --- dGame/Entity.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 0f8e9351..23bf0577 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -554,6 +554,12 @@ void Entity::Initialize() { Loot::CacheMatrix(activityID); } + const auto timeBeforeSmash = GetVar(u"tmeSmsh"); + + if (timeBeforeSmash > 0) { + rebuildComponent->SetTimeBeforeSmash(timeBeforeSmash); + } + const auto compTime = GetVar(u"compTime"); if (compTime > 0) { From a1f8ab763d5f8bbfdef692c4979067c8b6f942c9 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 25 Nov 2023 20:50:28 -0800 Subject: [PATCH 031/106] Entity: Fix death behavior of 0 (#1319) --- dGame/Entity.cpp | 4 ++-- dGame/Entity.h | 2 +- dGame/dComponents/DestroyableComponent.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 23bf0577..4d4f5c10 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -1509,7 +1509,7 @@ void Entity::Smash(const LWOOBJID source, const eKillType killType, const std::u destroyableComponent->Smash(source, killType, deathType); } -void Entity::Kill(Entity* murderer) { +void Entity::Kill(Entity* murderer, const eKillType killType) { if (!m_PlayerIsReadyForUpdates) return; for (const auto& cb : m_DieCallbacks) { @@ -1533,7 +1533,7 @@ void Entity::Kill(Entity* murderer) { bool waitForDeathAnimation = false; if (destroyableComponent) { - waitForDeathAnimation = destroyableComponent->GetDeathBehavior() == 0; + waitForDeathAnimation = destroyableComponent->GetDeathBehavior() == 0 && killType != eKillType::SILENT; } // Live waited a hard coded 12 seconds for death animations of type 0 before networking destruction! diff --git a/dGame/Entity.h b/dGame/Entity.h index a5588c3e..cdc26838 100644 --- a/dGame/Entity.h +++ b/dGame/Entity.h @@ -210,7 +210,7 @@ public: void RequestActivityExit(Entity* sender, LWOOBJID player, bool canceled); void Smash(const LWOOBJID source = LWOOBJID_EMPTY, const eKillType killType = eKillType::VIOLENT, const std::u16string& deathType = u""); - void Kill(Entity* murderer = nullptr); + void Kill(Entity* murderer = nullptr, const eKillType killType = eKillType::SILENT); void AddRebuildCompleteCallback(const std::function& callback) const; void AddCollisionPhantomCallback(const std::function& callback); void AddDieCallback(const std::function& callback); diff --git a/dGame/dComponents/DestroyableComponent.cpp b/dGame/dComponents/DestroyableComponent.cpp index e98bc33b..ce3743e8 100644 --- a/dGame/dComponents/DestroyableComponent.cpp +++ b/dGame/dComponents/DestroyableComponent.cpp @@ -796,7 +796,7 @@ void DestroyableComponent::Smash(const LWOOBJID source, const eKillType killType } } - m_Parent->Kill(owner); + m_Parent->Kill(owner, killType); } void DestroyableComponent::SetFaction(int32_t factionID, bool ignoreChecks) { From 3df3552467a0dc1b014e53c5b4f3e07320e9d65d Mon Sep 17 00:00:00 2001 From: jadebenn Date: Sun, 26 Nov 2023 16:30:39 -0600 Subject: [PATCH 032/106] fix: respawn rotation (#1323) * fixed respawn rotation * even though the condensed calls work, splitting em --- dGame/dGameMessages/GameMessages.cpp | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 34b031d3..b506e3a0 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -944,14 +944,7 @@ void GameMessages::SendResurrect(Entity* entity) { destroyableComponent->SetImagination(imaginationToRestore); } } - }); - - - auto cont = static_cast(entity->GetComponent(eReplicaComponentType::CONTROLLABLE_PHYSICS)); - if (cont && entity->GetLOT() == 1) { - cont->SetPosition(entity->GetRespawnPosition()); - cont->SetRotation(entity->GetRespawnRotation()); - } + }); CBITSTREAM; CMSGHEADER; @@ -1144,18 +1137,16 @@ void GameMessages::SendPlayerReachedRespawnCheckpoint(Entity* entity, const NiPo bitStream.Write(position.y); bitStream.Write(position.z); - auto con = static_cast(entity->GetComponent(eReplicaComponentType::CONTROLLABLE_PHYSICS)); - if (con) { - auto rot = con->GetRotation(); - bitStream.Write(rot.x); - bitStream.Write(rot.y); - bitStream.Write(rot.z); - bitStream.Write(rot.w); + const bool isNotIdentity = rotation != NiQuaternion::IDENTITY; + bitStream.Write(isNotIdentity); + + if (isNotIdentity) { + bitStream.Write(rotation.w); + bitStream.Write(rotation.x); + bitStream.Write(rotation.y); + bitStream.Write(rotation.z); } - //bitStream.Write(position); - //bitStream.Write(rotation); - SystemAddress sysAddr = entity->GetSystemAddress(); SEND_PACKET; } From b3564cb9ea7f336a4b5381a160ceef59ea96dcf0 Mon Sep 17 00:00:00 2001 From: Aaron Kimbre Date: Mon, 27 Nov 2023 22:16:31 -0600 Subject: [PATCH 033/106] fix: tacarc not using offset or checking upper/lower bounds --- dGame/dBehaviors/TacArcBehavior.cpp | 47 +++++++++-------------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/dGame/dBehaviors/TacArcBehavior.cpp b/dGame/dBehaviors/TacArcBehavior.cpp index 29cee327..acce571d 100644 --- a/dGame/dBehaviors/TacArcBehavior.cpp +++ b/dGame/dBehaviors/TacArcBehavior.cpp @@ -104,7 +104,7 @@ void TacArcBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* bitS const auto casterPosition = self->GetPosition(); - auto reference = self->GetPosition(); //+ m_offset; + auto reference = self->GetPosition() + m_offset; targets.clear(); @@ -114,46 +114,34 @@ void TacArcBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* bitS context->FilterTargets(validTargets, this->m_ignoreFactionList, this->m_includeFactionList, this->m_targetSelf, this->m_targetEnemy, this->m_targetFriend, this->m_targetTeam); for (auto validTarget : validTargets) { - if (targets.size() >= this->m_maxTargets) { - break; - } - - if (std::find(targets.begin(), targets.end(), validTarget) != targets.end()) { - continue; - } - + if (targets.size() >= this->m_maxTargets) break; + if (std::find(targets.begin(), targets.end(), validTarget) != targets.end()) continue; if (validTarget->GetIsDead()) continue; - const auto otherPosition = validTarget->GetPosition(); + const auto targetPos = validTarget->GetPosition(); - const auto heightDifference = std::abs(otherPosition.y - casterPosition.y); - - /*if (otherPosition.y > reference.y && heightDifference > this->m_upperBound || otherPosition.y < reference.y && heightDifference > this->m_lowerBound) - { + // make sure we aren't too high or low in comparison to the targer + const auto heightDifference = abs(reference.y - targetPos.y); + if (targetPos.y > reference.y && heightDifference > this->m_upperBound || targetPos.y < reference.y && heightDifference > this->m_lowerBound) continue; - }*/ const auto forward = self->GetRotation().GetForwardVector(); // forward is a normalized vector of where the caster is facing. - // otherPosition is the position of the target. + // targetPos is the position of the target. // reference is the position of the caster. // If we cast a ray forward from the caster, does it come within m_farWidth of the target? - const auto distance = Vector3::Distance(reference, otherPosition); + const auto distance = Vector3::Distance(reference, targetPos); if (m_method == 2) { NiPoint3 rayPoint = casterPosition + forward * distance; - - if (m_farWidth > 0 && Vector3::DistanceSquared(rayPoint, otherPosition) > this->m_farWidth * this->m_farWidth) { + if (m_farWidth > 0 && Vector3::DistanceSquared(rayPoint, targetPos) > this->m_farWidth * this->m_farWidth) continue; - } } - auto normalized = (reference - otherPosition) / distance; - + auto normalized = (reference - targetPos) / distance; const float degreeAngle = std::abs(Vector3::Angle(forward, normalized) * (180 / 3.14) - 180); - if (distance >= this->m_minRange && this->m_maxRange >= distance && degreeAngle <= 2 * this->m_angle) { targets.push_back(validTarget); } @@ -167,33 +155,26 @@ void TacArcBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* bitS }); const auto hit = !targets.empty(); - bitStream->Write(hit); if (this->m_checkEnv) { const auto blocked = false; // TODO - bitStream->Write(blocked); } if (hit) { - if (combatAi != nullptr) { - combatAi->LookAt(targets[0]->GetPosition()); - } + if (combatAi) combatAi->LookAt(targets[0]->GetPosition()); context->foundTarget = true; // We want to continue with this behavior - const auto count = static_cast(targets.size()); bitStream->Write(count); - for (auto* target : targets) { bitStream->Write(target->GetObjectID()); } for (auto* target : targets) { branch.target = target->GetObjectID(); - this->m_action->Calculate(context, bitStream, branch); } } else { @@ -214,8 +195,8 @@ void TacArcBehavior::Load() { GetFloat("offset_z", 0.0f) ); this->m_method = GetInt("method", 1); - this->m_upperBound = GetFloat("upper_bound", 4.4f); - this->m_lowerBound = GetFloat("lower_bound", 0.4f); + this->m_upperBound = abs(GetFloat("upper_bound", 4.4f)); + this->m_lowerBound = abs(GetFloat("lower_bound", 0.4f)); this->m_usePickedTarget = GetBoolean("use_picked_target", false); this->m_useTargetPostion = GetBoolean("use_target_position", false); this->m_checkEnv = GetBoolean("check_env", false); From e8a0f50ec98ccebcdad3db1cebe466572bce7f24 Mon Sep 17 00:00:00 2001 From: Aaron Kimbre Date: Mon, 27 Nov 2023 22:18:27 -0600 Subject: [PATCH 034/106] use std::abs --- dGame/dBehaviors/TacArcBehavior.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dGame/dBehaviors/TacArcBehavior.cpp b/dGame/dBehaviors/TacArcBehavior.cpp index acce571d..c240d5d9 100644 --- a/dGame/dBehaviors/TacArcBehavior.cpp +++ b/dGame/dBehaviors/TacArcBehavior.cpp @@ -121,7 +121,7 @@ void TacArcBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* bitS const auto targetPos = validTarget->GetPosition(); // make sure we aren't too high or low in comparison to the targer - const auto heightDifference = abs(reference.y - targetPos.y); + const auto heightDifference = std::abs(reference.y - targetPos.y); if (targetPos.y > reference.y && heightDifference > this->m_upperBound || targetPos.y < reference.y && heightDifference > this->m_lowerBound) continue; @@ -195,8 +195,8 @@ void TacArcBehavior::Load() { GetFloat("offset_z", 0.0f) ); this->m_method = GetInt("method", 1); - this->m_upperBound = abs(GetFloat("upper_bound", 4.4f)); - this->m_lowerBound = abs(GetFloat("lower_bound", 0.4f)); + this->m_upperBound = std::abs(GetFloat("upper_bound", 4.4f)); + this->m_lowerBound = std::abs(GetFloat("lower_bound", 0.4f)); this->m_usePickedTarget = GetBoolean("use_picked_target", false); this->m_useTargetPostion = GetBoolean("use_target_position", false); this->m_checkEnv = GetBoolean("check_env", false); From 62a1e135c3795ce461eed599d69a03015fee6996 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 29 Nov 2023 00:25:06 -0800 Subject: [PATCH 035/106] Fix backwards name check (#1327) Untested. Fixes not being able to rename a character at character create --- dGame/UserManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 8a58ac69..323bf29a 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -405,7 +405,7 @@ void UserManager::RenameCharacter(const SystemAddress& sysAddr, Packet* packet) return; } - if (Database::Get()->GetCharacterInfo(newName)) { + if (!Database::Get()->GetCharacterInfo(newName)) { if (IsNamePreapproved(newName)) { Database::Get()->SetCharacterName(charID, newName); LOG("Character %s now known as %s", character->GetName().c_str(), newName.c_str()); From 7de07a77223c15e9b5b001d0a58f9b2b1f16eef0 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Thu, 30 Nov 2023 04:21:18 -0600 Subject: [PATCH 036/106] fix: use defaults when getting variables for jetpack behavior (#1328) Tested that the hover jetpack now works and that the normal jetpack still works --- dGame/dBehaviors/JetPackBehavior.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/dGame/dBehaviors/JetPackBehavior.cpp b/dGame/dBehaviors/JetPackBehavior.cpp index 134dd0fb..7fcd78b0 100644 --- a/dGame/dBehaviors/JetPackBehavior.cpp +++ b/dGame/dBehaviors/JetPackBehavior.cpp @@ -38,10 +38,12 @@ void JetPackBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* bit } void JetPackBehavior::Load() { - this->m_WarningEffectID = GetInt("warning_effect_id"); - this->m_Airspeed = GetFloat("airspeed"); - this->m_MaxAirspeed = GetFloat("max_airspeed"); - this->m_VerticalVelocity = GetFloat("vertical_velocity"); - this->m_EnableHover = GetBoolean("enable_hover"); - this->m_BypassChecks = GetBoolean("bypass_checks", true); + this->m_WarningEffectID = GetInt("warning_effect_id", -1); + this->m_Airspeed = GetFloat("airspeed", 10); + this->m_MaxAirspeed = GetFloat("max_airspeed", 15); + this->m_VerticalVelocity = GetFloat("vertical_velocity", 1); + this->m_EnableHover = GetBoolean("enable_hover", false); + + // TODO: Implement proper jetpack checks, so we can set this default to false + this->m_BypassChecks = GetBoolean("bypass_checks", true); } From 0b9dbaedbfe793a8a48ae0272a76ead1a19e6e7a Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:11:45 -0800 Subject: [PATCH 037/106] Add HailStorms guide to README (#1329) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 310e75eb..f647aaa5 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,9 @@ We do not recommend hosting public servers. Darkflame Universe is intended for s ### Supply of resource files Darkflame Universe is a server emulator and does not distribute any LEGO® Universe files. A separate game client is required to setup this server emulator and play the game, which we cannot supply. Users are strongly suggested to refer to the safe checksums listed [here](#verifying-your-client-files) to see if a client will work. +## Step by step walkthrough for a single-player server +If you would like a setup for a single player server only on a Windows machine, use the [Native Windows Setup Guide by HailStorm](https://gist.github.com/HailStorm32/169df65a47a104199b5cc57d10fa57de) and skip this README. + ## Steps to setup server * [Clone this repository](#clone-the-repository) * [Install dependencies](#install-dependencies) From eca87c7257ce2c0a78ef44161b29c121fd9af191 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 1 Dec 2023 08:12:48 -0800 Subject: [PATCH 038/106] fix: Buff FX not playing and general BuffComponent improvements (#1296) * fix: Buff FX not playing Fixes an issue where buff effects would not play at all. Tested that frakjaw and maelstrom dagger now play their respective effects when you are effected by them fix: buffs general improvements add new arguments * Remove duplicated code * fix times and remove buff --- dGame/dBehaviors/ApplyBuffBehavior.cpp | 3 +- dGame/dBehaviors/ApplyBuffBehavior.h | 2 + dGame/dComponents/BuffComponent.cpp | 190 ++++++++++++++++++++----- dGame/dComponents/BuffComponent.h | 22 ++- dGame/dGameMessages/GameMessages.cpp | 20 +-- dGame/dGameMessages/GameMessages.h | 2 +- 6 files changed, 187 insertions(+), 52 deletions(-) diff --git a/dGame/dBehaviors/ApplyBuffBehavior.cpp b/dGame/dBehaviors/ApplyBuffBehavior.cpp index c94762aa..26b3da84 100644 --- a/dGame/dBehaviors/ApplyBuffBehavior.cpp +++ b/dGame/dBehaviors/ApplyBuffBehavior.cpp @@ -15,7 +15,7 @@ void ApplyBuffBehavior::Handle(BehaviorContext* context, RakNet::BitStream* bitS if (buffComponent == nullptr) return; buffComponent->ApplyBuff(m_BuffId, m_Duration, context->originator, addImmunity, cancelOnDamaged, cancelOnDeath, - cancelOnLogout, cancelonRemoveBuff, cancelOnUi, cancelOnUnequip, cancelOnZone); + cancelOnLogout, cancelonRemoveBuff, cancelOnUi, cancelOnUnequip, cancelOnZone, m_ApplyOnTeammates); } void ApplyBuffBehavior::UnCast(BehaviorContext* context, BehaviorBranchContext branch) { @@ -45,4 +45,5 @@ void ApplyBuffBehavior::Load() { cancelOnUi = GetBoolean("cancel_on_ui"); cancelOnUnequip = GetBoolean("cancel_on_unequip"); cancelOnZone = GetBoolean("cancel_on_zone"); + m_ApplyOnTeammates = GetBoolean("apply_on_teammates"); } diff --git a/dGame/dBehaviors/ApplyBuffBehavior.h b/dGame/dBehaviors/ApplyBuffBehavior.h index 139082df..e01a238e 100644 --- a/dGame/dBehaviors/ApplyBuffBehavior.h +++ b/dGame/dBehaviors/ApplyBuffBehavior.h @@ -31,4 +31,6 @@ public: void Calculate(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) override; void Load() override; +private: + bool m_ApplyOnTeammates; }; diff --git a/dGame/dComponents/BuffComponent.cpp b/dGame/dComponents/BuffComponent.cpp index 24124f6e..be33527f 100644 --- a/dGame/dComponents/BuffComponent.cpp +++ b/dGame/dComponents/BuffComponent.cpp @@ -11,9 +11,21 @@ #include "EntityManager.h" #include "CDClientManager.h" #include "CDSkillBehaviorTable.h" +#include "TeamManager.h" std::unordered_map> BuffComponent::m_Cache{}; +namespace { + std::map BuffFx = { + { "overtime", "OTB_" }, + { "max_health", "HEALTH_" }, + { "max_imagination", "IMAGINATION_" }, + { "max_armor", "ARMOR_" }, + { "speed", "SPEED_" }, + { "loot", "LOOT_" } + }; +} + BuffComponent::BuffComponent(Entity* parent) : Component(parent) { } @@ -22,32 +34,38 @@ BuffComponent::~BuffComponent() { void BuffComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { if (!bIsInitialUpdate) return; - if (m_Buffs.empty()) { - outBitStream->Write0(); - } else { - outBitStream->Write1(); + outBitStream->Write(!m_Buffs.empty()); + if (!m_Buffs.empty()) { outBitStream->Write(m_Buffs.size()); - for (const auto& buff : m_Buffs) { - outBitStream->Write(buff.first); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); - outBitStream->Write0(); + for (const auto& [id, buff] : m_Buffs) { + outBitStream->Write(id); + outBitStream->Write(buff.time != 0.0f); + if (buff.time != 0.0f) outBitStream->Write(static_cast(buff.time * 1000.0f)); + outBitStream->Write(buff.cancelOnDeath); + outBitStream->Write(buff.cancelOnZone); + outBitStream->Write(buff.cancelOnDamaged); + outBitStream->Write(buff.cancelOnRemoveBuff); + outBitStream->Write(buff.cancelOnUi); + outBitStream->Write(buff.cancelOnLogout); + outBitStream->Write(buff.cancelOnUnequip); + outBitStream->Write0(); // Cancel on Damage Absorb Ran Out. Generally false from what I can tell - outBitStream->Write0(); - outBitStream->Write0(); + auto* team = TeamManager::Instance()->GetTeam(buff.source); + bool addedByTeammate = false; + if (team) { + addedByTeammate = std::count(team->members.begin(), team->members.end(), m_Parent->GetObjectID()) > 0; + } - outBitStream->Write(0); + outBitStream->Write(addedByTeammate); // Added by teammate. If source is in the same team as the target, this is true. Otherwise, false. + outBitStream->Write(buff.applyOnTeammates); + if (addedByTeammate) outBitStream->Write(buff.source); + + outBitStream->Write(buff.refCount); } } - outBitStream->Write0(); + outBitStream->Write0(); // something to do with immunity buffs? } void BuffComponent::Update(float deltaTime) { @@ -83,17 +101,55 @@ void BuffComponent::Update(float deltaTime) { } } +const std::string& GetFxName(const std::string& buffname) { + const auto& toReturn = BuffFx[buffname]; + if (toReturn.empty()) { + LOG_DEBUG("No fx name for %s", buffname.c_str()); + } + return toReturn; +} + +void BuffComponent::ApplyBuffFx(uint32_t buffId, const BuffParameter& buff) { + std::string fxToPlay; + const auto& buffName = GetFxName(buff.name); + + if (buffName.empty()) return; + + fxToPlay += std::to_string(buffId); + LOG_DEBUG("Playing %s %i", fxToPlay.c_str(), buff.effectId); + GameMessages::SendPlayFXEffect(m_Parent->GetObjectID(), buff.effectId, u"cast", fxToPlay, LWOOBJID_EMPTY, 1.07f, 1.0f, false); +} + +void BuffComponent::RemoveBuffFx(uint32_t buffId, const BuffParameter& buff) { + std::string fxToPlay; + const auto& buffName = GetFxName(buff.name); + + if (buffName.empty()) return; + + fxToPlay += std::to_string(buffId); + LOG_DEBUG("Stopping %s", fxToPlay.c_str()); + GameMessages::SendStopFXEffect(m_Parent, false, fxToPlay); +} + void BuffComponent::ApplyBuff(const int32_t id, const float duration, const LWOOBJID source, bool addImmunity, bool cancelOnDamaged, bool cancelOnDeath, bool cancelOnLogout, bool cancelOnRemoveBuff, - bool cancelOnUi, bool cancelOnUnequip, bool cancelOnZone) { + bool cancelOnUi, bool cancelOnUnequip, bool cancelOnZone, bool applyOnTeammates) { // Prevent buffs from stacking. if (HasBuff(id)) { + m_Buffs[id].refCount++; + m_Buffs[id].time = duration; return; } + auto* team = TeamManager::Instance()->GetTeam(source); + bool addedByTeammate = false; + if (team) { + addedByTeammate = std::count(team->members.begin(), team->members.end(), m_Parent->GetObjectID()) > 0; + } + GameMessages::SendAddBuff(const_cast(m_Parent->GetObjectID()), source, (uint32_t)id, (uint32_t)duration * 1000, addImmunity, cancelOnDamaged, cancelOnDeath, - cancelOnLogout, cancelOnRemoveBuff, cancelOnUi, cancelOnUnequip, cancelOnZone); + cancelOnLogout, cancelOnRemoveBuff, cancelOnUi, cancelOnUnequip, cancelOnZone, addedByTeammate, applyOnTeammates); float tick = 0; float stacks = 0; @@ -121,17 +177,43 @@ void BuffComponent::ApplyBuff(const int32_t id, const float duration, const LWOO buff.stacks = stacks; buff.source = source; buff.behaviorID = behaviorID; + buff.cancelOnDamaged = cancelOnDamaged; + buff.cancelOnDeath = cancelOnDeath; + buff.cancelOnLogout = cancelOnLogout; + buff.cancelOnRemoveBuff = cancelOnRemoveBuff; + buff.cancelOnUi = cancelOnUi; + buff.cancelOnUnequip = cancelOnUnequip; + buff.cancelOnZone = cancelOnZone; + buff.refCount = 1; m_Buffs.emplace(id, buff); + + auto* parent = GetParent(); + if (!cancelOnDeath) return; + + m_Parent->AddDieCallback([parent, id]() { + LOG_DEBUG("Removing buff %i because parent died", id); + if (!parent) return; + auto* buffComponent = parent->GetComponent(); + if (buffComponent) buffComponent->RemoveBuff(id, false, false, true); + }); } -void BuffComponent::RemoveBuff(int32_t id, bool fromUnEquip, bool removeImmunity) { +void BuffComponent::RemoveBuff(int32_t id, bool fromUnEquip, bool removeImmunity, bool ignoreRefCount) { const auto& iter = m_Buffs.find(id); if (iter == m_Buffs.end()) { return; } + if (!ignoreRefCount && !iter->second.cancelOnRemoveBuff) { + iter->second.refCount--; + LOG_DEBUG("refCount for buff %i is now %i", id, iter->second.refCount); + if (iter->second.refCount > 0) { + return; + } + } + GameMessages::SendRemoveBuff(m_Parent, fromUnEquip, removeImmunity, id); m_Buffs.erase(iter); @@ -146,6 +228,7 @@ bool BuffComponent::HasBuff(int32_t id) { void BuffComponent::ApplyBuffEffect(int32_t id) { const auto& parameters = GetBuffParameters(id); for (const auto& parameter : parameters) { + ApplyBuffFx(id, parameter); if (parameter.name == "max_health") { const auto maxHealth = parameter.value; @@ -182,6 +265,7 @@ void BuffComponent::ApplyBuffEffect(int32_t id) { void BuffComponent::RemoveBuffEffect(int32_t id) { const auto& parameters = GetBuffParameters(id); for (const auto& parameter : parameters) { + RemoveBuffFx(id, parameter); if (parameter.name == "max_health") { const auto maxHealth = parameter.value; @@ -251,13 +335,25 @@ void BuffComponent::LoadFromXml(tinyxml2::XMLDocument* doc) { auto* buffEntry = buffElement->FirstChildElement("b"); - while (buffEntry != nullptr) { + while (buffEntry) { int32_t id = buffEntry->IntAttribute("id"); float t = buffEntry->FloatAttribute("t"); float tk = buffEntry->FloatAttribute("tk"); + float tt = buffEntry->FloatAttribute("tt"); int32_t s = buffEntry->FloatAttribute("s"); LWOOBJID sr = buffEntry->Int64Attribute("sr"); int32_t b = buffEntry->IntAttribute("b"); + int32_t refCount = buffEntry->IntAttribute("refCount"); + + bool cancelOnDamaged = buffEntry->BoolAttribute("cancelOnDamaged"); + bool cancelOnDeath = buffEntry->BoolAttribute("cancelOnDeath"); + bool cancelOnLogout = buffEntry->BoolAttribute("cancelOnLogout"); + bool cancelOnRemoveBuff = buffEntry->BoolAttribute("cancelOnRemoveBuff"); + bool cancelOnUi = buffEntry->BoolAttribute("cancelOnUi"); + bool cancelOnUnequip = buffEntry->BoolAttribute("cancelOnUnequip"); + bool cancelOnZone = buffEntry->BoolAttribute("cancelOnZone"); + bool applyOnTeammates = buffEntry->BoolAttribute("applyOnTeammates"); + Buff buff; buff.id = id; @@ -266,6 +362,18 @@ void BuffComponent::LoadFromXml(tinyxml2::XMLDocument* doc) { buff.stacks = s; buff.source = sr; buff.behaviorID = b; + buff.refCount = refCount; + buff.tickTime = tt; + + buff.cancelOnDamaged = cancelOnDamaged; + buff.cancelOnDeath = cancelOnDeath; + buff.cancelOnLogout = cancelOnLogout; + buff.cancelOnRemoveBuff = cancelOnRemoveBuff; + buff.cancelOnUi = cancelOnUi; + buff.cancelOnUnequip = cancelOnUnequip; + buff.cancelOnZone = cancelOnZone; + buff.applyOnTeammates = applyOnTeammates; + m_Buffs.emplace(id, buff); @@ -288,15 +396,27 @@ void BuffComponent::UpdateXml(tinyxml2::XMLDocument* doc) { buffElement->DeleteChildren(); } - for (const auto& buff : m_Buffs) { + for (const auto& [id, buff] : m_Buffs) { auto* buffEntry = doc->NewElement("b"); + if (buff.cancelOnZone || buff.cancelOnLogout) continue; - buffEntry->SetAttribute("id", buff.first); - buffEntry->SetAttribute("t", buff.second.time); - buffEntry->SetAttribute("tk", buff.second.tick); - buffEntry->SetAttribute("s", buff.second.stacks); - buffEntry->SetAttribute("sr", buff.second.source); - buffEntry->SetAttribute("b", buff.second.behaviorID); + buffEntry->SetAttribute("id", id); + buffEntry->SetAttribute("t", buff.time); + buffEntry->SetAttribute("tk", buff.tick); + buffEntry->SetAttribute("tt", buff.tickTime); + buffEntry->SetAttribute("s", buff.stacks); + buffEntry->SetAttribute("sr", buff.source); + buffEntry->SetAttribute("b", buff.behaviorID); + buffEntry->SetAttribute("refCount", buff.refCount); + + buffEntry->SetAttribute("cancelOnDamaged", buff.cancelOnDamaged); + buffEntry->SetAttribute("cancelOnDeath", buff.cancelOnDeath); + buffEntry->SetAttribute("cancelOnLogout", buff.cancelOnLogout); + buffEntry->SetAttribute("cancelOnRemoveBuff", buff.cancelOnRemoveBuff); + buffEntry->SetAttribute("cancelOnUi", buff.cancelOnUi); + buffEntry->SetAttribute("cancelOnUnequip", buff.cancelOnUnequip); + buffEntry->SetAttribute("cancelOnZone", buff.cancelOnZone); + buffEntry->SetAttribute("applyOnTeammates", buff.applyOnTeammates); buffElement->LinkEndChild(buffEntry); } @@ -309,8 +429,7 @@ const std::vector& BuffComponent::GetBuffParameters(int32_t buffI return pair->second; } - auto query = CDClientDatabase::CreatePreppedStmt( - "SELECT * FROM BuffParameters WHERE BuffID = ?;"); + auto query = CDClientDatabase::CreatePreppedStmt("SELECT * FROM BuffParameters WHERE BuffID = ?;"); query.bind(1, (int)buffId); auto result = query.execQuery(); @@ -321,11 +440,12 @@ const std::vector& BuffComponent::GetBuffParameters(int32_t buffI BuffParameter param; param.buffId = buffId; - param.name = result.getStringField(1); - param.value = result.getFloatField(2); + param.name = result.getStringField("ParameterName"); + param.value = result.getFloatField("NumberValue"); + param.effectId = result.getIntField("EffectID"); if (!result.fieldIsNull(3)) { - std::istringstream stream(result.getStringField(3)); + std::istringstream stream(result.getStringField("StringValue")); std::string token; while (std::getline(stream, token, ',')) { diff --git a/dGame/dComponents/BuffComponent.h b/dGame/dComponents/BuffComponent.h index 5b6f8fd6..7187f8f7 100644 --- a/dGame/dComponents/BuffComponent.h +++ b/dGame/dComponents/BuffComponent.h @@ -14,8 +14,7 @@ class Entity; /** * Extra information on effects to apply after applying a buff, for example whether to buff armor, imag or health and by how much */ -struct BuffParameter -{ +struct BuffParameter { int32_t buffId; std::string name; float value; @@ -26,8 +25,7 @@ struct BuffParameter /** * Meta information about a buff that can be applied, e.g. how long it's applied, who applied it, etc. */ -struct Buff -{ +struct Buff { int32_t id = 0; float time = 0; float tick = 0; @@ -35,6 +33,15 @@ struct Buff int32_t stacks = 0; LWOOBJID source = 0; int32_t behaviorID = 0; + bool cancelOnDamaged = false; + bool cancelOnDeath = false; + bool cancelOnLogout = false; + bool cancelOnRemoveBuff = false; + bool cancelOnUi = false; + bool cancelOnUnequip = false; + bool cancelOnZone = false; + bool applyOnTeammates = false; + uint32_t refCount = 0; }; /** @@ -74,14 +81,17 @@ public: */ void ApplyBuff(int32_t id, float duration, LWOOBJID source, bool addImmunity = false, bool cancelOnDamaged = false, bool cancelOnDeath = true, bool cancelOnLogout = false, bool cancelOnRemoveBuff = true, - bool cancelOnUi = false, bool cancelOnUnequip = false, bool cancelOnZone = false); + bool cancelOnUi = false, bool cancelOnUnequip = false, bool cancelOnZone = false, bool applyOnTeammates = false); + + void ApplyBuffFx(uint32_t buffId, const BuffParameter& buffName); + void RemoveBuffFx(uint32_t buffId, const BuffParameter& buffName); /** * Removes a buff from the parent entity, reversing its effects * @param id the id of the buff to remove * @param removeImmunity whether or not to remove immunity on removing the buff */ - void RemoveBuff(int32_t id, bool fromUnEquip = false, bool removeImmunity = false); + void RemoveBuff(int32_t id, bool fromUnEquip = false, bool removeImmunity = false, bool ignoreRefCount = false); /** * Returns whether or not the entity has a buff identified by `id` diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index b506e3a0..fe2ad720 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -4477,7 +4477,7 @@ void GameMessages::SendVehicleNotifyFinishedRace(LWOOBJID objectId, const System void GameMessages::SendAddBuff(LWOOBJID& objectID, const LWOOBJID& casterID, uint32_t buffID, uint32_t msDuration, bool addImmunity, bool cancelOnDamaged, bool cancelOnDeath, bool cancelOnLogout, - bool cancelOnRemoveBuff, bool cancelOnUi, bool cancelOnUnequip, bool cancelOnZone, + bool cancelOnRemoveBuff, bool cancelOnUi, bool cancelOnUnequip, bool cancelOnZone, bool addedByTeammate, bool applyOnTeammates, const SystemAddress& sysAddr) { CBITSTREAM; CMSGHEADER; @@ -4485,27 +4485,29 @@ void GameMessages::SendAddBuff(LWOOBJID& objectID, const LWOOBJID& casterID, uin bitStream.Write(objectID); bitStream.Write(eGameMessageType::ADD_BUFF); - bitStream.Write(false); // Added by teammate - bitStream.Write(false); // Apply on teammates - bitStream.Write(false); // Cancel on damage absorb ran out + bitStream.Write(addedByTeammate); // Added by teammate + bitStream.Write(applyOnTeammates); // Apply on teammates bitStream.Write(cancelOnDamaged); bitStream.Write(cancelOnDeath); bitStream.Write(cancelOnLogout); + bitStream.Write(false); // Cancel on move bitStream.Write(cancelOnRemoveBuff); - bitStream.Write(cancelOnUi); bitStream.Write(cancelOnUnequip); bitStream.Write(cancelOnZone); + bitStream.Write(false); // Ignore immunities bitStream.Write(addImmunity); bitStream.Write(false); // Use ref count - bitStream.Write(buffID); - bitStream.Write(msDuration); + bitStream.Write(casterID != LWOOBJID_EMPTY); + if (casterID != LWOOBJID_EMPTY) bitStream.Write(casterID); - bitStream.Write(casterID); - bitStream.Write(casterID); + bitStream.Write(buffID); + + bitStream.Write(msDuration != 0); + if (msDuration != 0) bitStream.Write(msDuration); if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) SEND_PACKET_BROADCAST; SEND_PACKET; diff --git a/dGame/dGameMessages/GameMessages.h b/dGame/dGameMessages/GameMessages.h index 6a572d97..5199a72a 100644 --- a/dGame/dGameMessages/GameMessages.h +++ b/dGame/dGameMessages/GameMessages.h @@ -206,7 +206,7 @@ namespace GameMessages { void SendAddBuff(LWOOBJID& objectID, const LWOOBJID& casterID, uint32_t buffID, uint32_t msDuration, bool addImmunity = false, bool cancelOnDamaged = false, bool cancelOnDeath = true, bool cancelOnLogout = false, bool cancelOnRemoveBuff = true, bool cancelOnUi = false, - bool cancelOnUnequip = false, bool cancelOnZone = false, const SystemAddress& sysAddr = UNASSIGNED_SYSTEM_ADDRESS); + bool cancelOnUnequip = false, bool cancelOnZone = false, bool addedByTeammate = false, bool applyOnTeammates = false, const SystemAddress& sysAddr = UNASSIGNED_SYSTEM_ADDRESS); void SendToggleGMInvis(LWOOBJID objectId, bool enabled, const SystemAddress& sysAddr); From 731b828c126fb03fb0d52b78ccad07b18462d2c1 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 1 Dec 2023 08:13:01 -0800 Subject: [PATCH 039/106] properties: fix visiting multiple owned by same person (#1325) --- dGame/dComponents/PropertyManagementComponent.h | 2 ++ dScripts/BasePropertyServer.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dGame/dComponents/PropertyManagementComponent.h b/dGame/dComponents/PropertyManagementComponent.h index 2f2deea4..d38437c4 100644 --- a/dGame/dComponents/PropertyManagementComponent.h +++ b/dGame/dComponents/PropertyManagementComponent.h @@ -164,6 +164,8 @@ public: LWOCLONEID GetCloneId() { return clone_Id; }; + LWOOBJID GetId() const noexcept { return propertyId; } + private: /** * This diff --git a/dScripts/BasePropertyServer.cpp b/dScripts/BasePropertyServer.cpp index fe20b09d..9048adeb 100644 --- a/dScripts/BasePropertyServer.cpp +++ b/dScripts/BasePropertyServer.cpp @@ -101,7 +101,7 @@ void BasePropertyServer::BasePlayerLoaded(Entity* self, Entity* player) { missionComponent->Progress( eMissionTaskType::VISIT_PROPERTY, mapID.GetMapID(), - mapID.GetCloneID() + PropertyManagementComponent::Instance()->GetId() ); } } From 3d85f6639e9f93b4f2ea2bac4d45bfc1d6022742 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Mon, 4 Dec 2023 09:20:41 -0600 Subject: [PATCH 040/106] chore: rename VehiclePhysics to HavokVehiclePhysics (#1331) since that is it's true name and there's another VehiclePhysics component that is simply named that --- dCommon/dEnums/eReplicaComponentType.h | 4 +-- dGame/Entity.cpp | 26 +++++++++---------- dGame/dComponents/CMakeLists.txt | 2 +- dGame/dComponents/CharacterComponent.cpp | 2 +- ...t.cpp => HavokVehiclePhysicsComponent.cpp} | 22 ++++++++-------- ...onent.h => HavokVehiclePhysicsComponent.h} | 6 ++--- dGame/dComponents/InventoryComponent.cpp | 4 +-- dGame/dComponents/RacingControlComponent.cpp | 2 +- dGame/dGameMessages/GameMessages.cpp | 2 +- dGame/dUtilities/SlashCommandHandler.cpp | 8 +++--- dNet/ClientPackets.cpp | 24 ++++++++--------- 11 files changed, 51 insertions(+), 51 deletions(-) rename dGame/dComponents/{VehiclePhysicsComponent.cpp => HavokVehiclePhysicsComponent.cpp} (77%) rename dGame/dComponents/{VehiclePhysicsComponent.h => HavokVehiclePhysicsComponent.h} (94%) diff --git a/dCommon/dEnums/eReplicaComponentType.h b/dCommon/dEnums/eReplicaComponentType.h index a0be9dd4..ca60355f 100644 --- a/dCommon/dEnums/eReplicaComponentType.h +++ b/dCommon/dEnums/eReplicaComponentType.h @@ -34,7 +34,7 @@ enum class eReplicaComponentType : uint32_t { PLATFORM_BOUNDARY, MODULE, ARCADE, - VEHICLE_PHYSICS, // Havok demo based + HAVOK_VEHICLE_PHYSICS, MOVEMENT_AI, EXHIBIT, OVERHEAD_ICON, @@ -50,7 +50,7 @@ enum class eReplicaComponentType : uint32_t { PROPERTY_ENTRANCE, FX, PROPERTY_MANAGEMENT, - VEHICLE_PHYSICS_NEW, // internal physics based on havok + VEHICLE_PHYSICS, PHYSICS_SYSTEM, QUICK_BUILD, SWITCH, diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 4d4f5c10..f62a0825 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -62,7 +62,7 @@ #include "ModelComponent.h" #include "ZCompression.h" #include "PetComponent.h" -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "PossessableComponent.h" #include "PossessorComponent.h" #include "ModuleAssemblyComponent.h" @@ -299,10 +299,10 @@ void Entity::Initialize() { AddComponent()->SetPhysicsEffectActive(false); } - if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::VEHICLE_PHYSICS) > 0) { - auto* vehiclePhysicsComponent = AddComponent(); - vehiclePhysicsComponent->SetPosition(m_DefaultPosition); - vehiclePhysicsComponent->SetRotation(m_DefaultRotation); + if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::HAVOK_VEHICLE_PHYSICS) > 0) { + auto* havokVehiclePhysicsComponent = AddComponent(); + havokVehiclePhysicsComponent->SetPosition(m_DefaultPosition); + havokVehiclePhysicsComponent->SetRotation(m_DefaultRotation); } if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::SOUND_TRIGGER, -1) != -1) { @@ -744,7 +744,7 @@ void Entity::Initialize() { !HasComponent(eReplicaComponentType::PHANTOM_PHYSICS) && !HasComponent(eReplicaComponentType::PROPERTY) && !HasComponent(eReplicaComponentType::RACING_CONTROL) && - !HasComponent(eReplicaComponentType::VEHICLE_PHYSICS) + !HasComponent(eReplicaComponentType::HAVOK_VEHICLE_PHYSICS) ) //if (HasComponent(eReplicaComponentType::BASE_COMBAT_AI)) { @@ -1023,9 +1023,9 @@ void Entity::WriteComponents(RakNet::BitStream* outBitStream, eReplicaPacketType rigidbodyPhantomPhysics->Serialize(outBitStream, bIsInitialUpdate); } - VehiclePhysicsComponent* vehiclePhysicsComponent; - if (TryGetComponent(eReplicaComponentType::VEHICLE_PHYSICS, vehiclePhysicsComponent)) { - vehiclePhysicsComponent->Serialize(outBitStream, bIsInitialUpdate); + HavokVehiclePhysicsComponent* havokVehiclePhysicsComponent; + if (TryGetComponent(eReplicaComponentType::HAVOK_VEHICLE_PHYSICS, havokVehiclePhysicsComponent)) { + havokVehiclePhysicsComponent->Serialize(outBitStream, bIsInitialUpdate); } PhantomPhysicsComponent* phantomPhysicsComponent; @@ -1846,7 +1846,7 @@ const NiPoint3& Entity::GetPosition() const { return simple->GetPosition(); } - auto* vehicel = GetComponent(); + auto* vehicel = GetComponent(); if (vehicel != nullptr) { return vehicel->GetPosition(); @@ -1874,7 +1874,7 @@ const NiQuaternion& Entity::GetRotation() const { return simple->GetRotation(); } - auto* vehicel = GetComponent(); + auto* vehicel = GetComponent(); if (vehicel != nullptr) { return vehicel->GetRotation(); @@ -1902,7 +1902,7 @@ void Entity::SetPosition(NiPoint3 position) { simple->SetPosition(position); } - auto* vehicel = GetComponent(); + auto* vehicel = GetComponent(); if (vehicel != nullptr) { vehicel->SetPosition(position); @@ -1930,7 +1930,7 @@ void Entity::SetRotation(NiQuaternion rotation) { simple->SetRotation(rotation); } - auto* vehicel = GetComponent(); + auto* vehicel = GetComponent(); if (vehicel != nullptr) { vehicel->SetRotation(rotation); diff --git a/dGame/dComponents/CMakeLists.txt b/dGame/dComponents/CMakeLists.txt index b1550f37..814a4fb9 100644 --- a/dGame/dComponents/CMakeLists.txt +++ b/dGame/dComponents/CMakeLists.txt @@ -43,7 +43,7 @@ set(DGAME_DCOMPONENTS_SOURCES "BaseCombatAIComponent.cpp" "SoundTriggerComponent.cpp" "SwitchComponent.cpp" "TriggerComponent.cpp" - "VehiclePhysicsComponent.cpp" + "HavokVehiclePhysicsComponent.cpp" "VendorComponent.cpp" "ZoneControlComponent.cpp" PARENT_SCOPE diff --git a/dGame/dComponents/CharacterComponent.cpp b/dGame/dComponents/CharacterComponent.cpp index d1b7ee21..1e441293 100644 --- a/dGame/dComponents/CharacterComponent.cpp +++ b/dGame/dComponents/CharacterComponent.cpp @@ -10,7 +10,7 @@ #include "InventoryComponent.h" #include "ControllablePhysicsComponent.h" #include "EntityManager.h" -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "GameMessages.h" #include "Item.h" #include "Amf3.h" diff --git a/dGame/dComponents/VehiclePhysicsComponent.cpp b/dGame/dComponents/HavokVehiclePhysicsComponent.cpp similarity index 77% rename from dGame/dComponents/VehiclePhysicsComponent.cpp rename to dGame/dComponents/HavokVehiclePhysicsComponent.cpp index 0e93782d..62e49a56 100644 --- a/dGame/dComponents/VehiclePhysicsComponent.cpp +++ b/dGame/dComponents/HavokVehiclePhysicsComponent.cpp @@ -1,7 +1,7 @@ -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "EntityManager.h" -VehiclePhysicsComponent::VehiclePhysicsComponent(Entity* parent) : PhysicsComponent(parent) { +HavokVehiclePhysicsComponent::HavokVehiclePhysicsComponent(Entity* parent) : PhysicsComponent(parent) { m_Velocity = NiPoint3::ZERO; m_AngularVelocity = NiPoint3::ZERO; m_IsOnGround = true; @@ -12,45 +12,45 @@ VehiclePhysicsComponent::VehiclePhysicsComponent(Entity* parent) : PhysicsCompon m_EndBehavior = GeneralUtils::GenerateRandomNumber(0, 7); } -void VehiclePhysicsComponent::SetVelocity(const NiPoint3& vel) { +void HavokVehiclePhysicsComponent::SetVelocity(const NiPoint3& vel) { if (vel == m_Velocity) return; m_DirtyPosition = true; m_Velocity = vel; } -void VehiclePhysicsComponent::SetAngularVelocity(const NiPoint3& vel) { +void HavokVehiclePhysicsComponent::SetAngularVelocity(const NiPoint3& vel) { if (vel == m_AngularVelocity) return; m_DirtyPosition = true; m_AngularVelocity = vel; } -void VehiclePhysicsComponent::SetIsOnGround(bool val) { +void HavokVehiclePhysicsComponent::SetIsOnGround(bool val) { if (val == m_IsOnGround) return; m_DirtyPosition = true; m_IsOnGround = val; } -void VehiclePhysicsComponent::SetIsOnRail(bool val) { +void HavokVehiclePhysicsComponent::SetIsOnRail(bool val) { if (val == m_IsOnRail) return; m_DirtyPosition = true; m_IsOnRail = val; } -void VehiclePhysicsComponent::SetRemoteInputInfo(const RemoteInputInfo& remoteInputInfo) { +void HavokVehiclePhysicsComponent::SetRemoteInputInfo(const RemoteInputInfo& remoteInputInfo) { if (m_RemoteInputInfo == remoteInputInfo) return; this->m_RemoteInputInfo = remoteInputInfo; m_DirtyRemoteInput = true; } -void VehiclePhysicsComponent::SetDirtyVelocity(bool val) { +void HavokVehiclePhysicsComponent::SetDirtyVelocity(bool val) { m_DirtyVelocity = val; } -void VehiclePhysicsComponent::SetDirtyAngularVelocity(bool val) { +void HavokVehiclePhysicsComponent::SetDirtyAngularVelocity(bool val) { m_DirtyAngularVelocity = val; } -void VehiclePhysicsComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { +void HavokVehiclePhysicsComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { outBitStream->Write(bIsInitialUpdate || m_DirtyPosition); if (bIsInitialUpdate || m_DirtyPosition) { @@ -111,7 +111,7 @@ void VehiclePhysicsComponent::Serialize(RakNet::BitStream* outBitStream, bool bI outBitStream->Write0(); } -void VehiclePhysicsComponent::Update(float deltaTime) { +void HavokVehiclePhysicsComponent::Update(float deltaTime) { if (m_SoftUpdate > 5) { Game::entityManager->SerializeEntity(m_Parent); m_SoftUpdate = 0; diff --git a/dGame/dComponents/VehiclePhysicsComponent.h b/dGame/dComponents/HavokVehiclePhysicsComponent.h similarity index 94% rename from dGame/dComponents/VehiclePhysicsComponent.h rename to dGame/dComponents/HavokVehiclePhysicsComponent.h index 94ba650a..2d04e0ac 100644 --- a/dGame/dComponents/VehiclePhysicsComponent.h +++ b/dGame/dComponents/HavokVehiclePhysicsComponent.h @@ -33,11 +33,11 @@ struct RemoteInputInfo { /** * Physics component for vehicles. */ -class VehiclePhysicsComponent : public PhysicsComponent { +class HavokVehiclePhysicsComponent : public PhysicsComponent { public: - inline static const eReplicaComponentType ComponentType = eReplicaComponentType::VEHICLE_PHYSICS; + inline static const eReplicaComponentType ComponentType = eReplicaComponentType::HAVOK_VEHICLE_PHYSICS; - VehiclePhysicsComponent(Entity* parentEntity); + HavokVehiclePhysicsComponent(Entity* parentEntity); void Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) override; diff --git a/dGame/dComponents/InventoryComponent.cpp b/dGame/dComponents/InventoryComponent.cpp index 4d737ab7..fc379398 100644 --- a/dGame/dComponents/InventoryComponent.cpp +++ b/dGame/dComponents/InventoryComponent.cpp @@ -19,7 +19,7 @@ #include "PossessorComponent.h" #include "PossessableComponent.h" #include "ModuleAssemblyComponent.h" -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "CharacterComponent.h" #include "dZoneManager.h" #include "PropertyManagementComponent.h" @@ -981,7 +981,7 @@ void InventoryComponent::HandlePossession(Item* item) { auto* mount = Game::entityManager->CreateEntity(info, nullptr, m_Parent); // Check to see if the mount is a vehicle, if so, flip it - auto* vehicleComponent = mount->GetComponent(); + auto* vehicleComponent = mount->GetComponent(); if (vehicleComponent) characterComponent->SetIsRacing(true); // Setup the destroyable stats diff --git a/dGame/dComponents/RacingControlComponent.cpp b/dGame/dComponents/RacingControlComponent.cpp index a4737d9e..6c8df280 100644 --- a/dGame/dComponents/RacingControlComponent.cpp +++ b/dGame/dComponents/RacingControlComponent.cpp @@ -17,7 +17,7 @@ #include "PossessorComponent.h" #include "eRacingTaskParam.h" #include "Spawner.h" -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "dServer.h" #include "dZoneManager.h" #include "dConfig.h" diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index fe2ad720..fd174a2b 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -71,7 +71,7 @@ #include "MovingPlatformComponent.h" #include "PetComponent.h" #include "ModuleAssemblyComponent.h" -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "RenderComponent.h" #include "PossessableComponent.h" #include "PossessorComponent.h" diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 13fc3ded..7c18e9a4 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -59,7 +59,7 @@ #include "dpShapeSphere.h" #include "PossessableComponent.h" #include "PossessorComponent.h" -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "BuffComponent.h" #include "SkillComponent.h" #include "VanityUtilities.h" @@ -942,9 +942,9 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit auto* possassableEntity = Game::entityManager->GetEntity(possessorComponent->GetPossessable()); if (possassableEntity != nullptr) { - auto* vehiclePhysicsComponent = possassableEntity->GetComponent(); - if (vehiclePhysicsComponent) { - vehiclePhysicsComponent->SetPosition(pos); + auto* havokVehiclePhysicsComponent = possassableEntity->GetComponent(); + if (havokVehiclePhysicsComponent) { + havokVehiclePhysicsComponent->SetPosition(pos); Game::entityManager->SerializeEntity(possassableEntity); } else GameMessages::SendTeleport(possassableEntity->GetObjectID(), pos, NiQuaternion(), sysAddr); } diff --git a/dNet/ClientPackets.cpp b/dNet/ClientPackets.cpp index 18b2f3d1..cf405053 100644 --- a/dNet/ClientPackets.cpp +++ b/dNet/ClientPackets.cpp @@ -27,7 +27,7 @@ #include "Zone.h" #include "PossessorComponent.h" #include "PossessableComponent.h" -#include "VehiclePhysicsComponent.h" +#include "HavokVehiclePhysicsComponent.h" #include "dConfig.h" #include "CharacterComponent.h" #include "Database.h" @@ -187,17 +187,17 @@ void ClientPackets::HandleClientPositionUpdate(const SystemAddress& sysAddr, Pac if (possessableComponent->GetPossessionType() != ePossessionType::ATTACHED_VISIBLE) updateChar = false; } - auto* vehiclePhysicsComponent = possassableEntity->GetComponent(); - if (vehiclePhysicsComponent != nullptr) { - vehiclePhysicsComponent->SetPosition(position); - vehiclePhysicsComponent->SetRotation(rotation); - vehiclePhysicsComponent->SetIsOnGround(onGround); - vehiclePhysicsComponent->SetIsOnRail(onRail); - vehiclePhysicsComponent->SetVelocity(velocity); - vehiclePhysicsComponent->SetDirtyVelocity(velocityFlag); - vehiclePhysicsComponent->SetAngularVelocity(angVelocity); - vehiclePhysicsComponent->SetDirtyAngularVelocity(angVelocityFlag); - vehiclePhysicsComponent->SetRemoteInputInfo(remoteInput); + auto* havokVehiclePhysicsComponent = possassableEntity->GetComponent(); + if (havokVehiclePhysicsComponent != nullptr) { + havokVehiclePhysicsComponent->SetPosition(position); + havokVehiclePhysicsComponent->SetRotation(rotation); + havokVehiclePhysicsComponent->SetIsOnGround(onGround); + havokVehiclePhysicsComponent->SetIsOnRail(onRail); + havokVehiclePhysicsComponent->SetVelocity(velocity); + havokVehiclePhysicsComponent->SetDirtyVelocity(velocityFlag); + havokVehiclePhysicsComponent->SetAngularVelocity(angVelocity); + havokVehiclePhysicsComponent->SetDirtyAngularVelocity(angVelocityFlag); + havokVehiclePhysicsComponent->SetRemoteInputInfo(remoteInput); } else { // Need to get the mount's controllable physics auto* controllablePhysicsComponent = possassableEntity->GetComponent(); From 1f399a72779dd75ca2aaac1a0b9ab7708ddd6178 Mon Sep 17 00:00:00 2001 From: Aaron Kimbre Date: Mon, 4 Dec 2023 20:59:08 -0600 Subject: [PATCH 041/106] chore: rename zonecontrolcomp to minigamecontrolcomp --- dCommon/dEnums/eReplicaComponentType.h | 2 +- dGame/Entity.cpp | 12 ++++++------ dGame/dComponents/CMakeLists.txt | 2 +- dGame/dComponents/MiniGameControlComponent.cpp | 5 +++++ dGame/dComponents/MiniGameControlComponent.h | 15 +++++++++++++++ dGame/dComponents/MinigameComponent.cpp | 5 +++++ dGame/dComponents/ZoneControlComponent.cpp | 5 ----- dGame/dComponents/ZoneControlComponent.h | 15 --------------- 8 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 dGame/dComponents/MiniGameControlComponent.cpp create mode 100644 dGame/dComponents/MiniGameControlComponent.h create mode 100644 dGame/dComponents/MinigameComponent.cpp delete mode 100644 dGame/dComponents/ZoneControlComponent.cpp delete mode 100644 dGame/dComponents/ZoneControlComponent.h diff --git a/dCommon/dEnums/eReplicaComponentType.h b/dCommon/dEnums/eReplicaComponentType.h index ca60355f..83acbf89 100644 --- a/dCommon/dEnums/eReplicaComponentType.h +++ b/dCommon/dEnums/eReplicaComponentType.h @@ -54,7 +54,7 @@ enum class eReplicaComponentType : uint32_t { PHYSICS_SYSTEM, QUICK_BUILD, SWITCH, - ZONE_CONTROL, // Minigame + MINI_GAME_CONTROL, CHANGLING, CHOICE_BUILD, PACKAGE, diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index f62a0825..a73e356f 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -76,7 +76,7 @@ #include "eGameMasterLevel.h" #include "eReplicaComponentType.h" #include "eReplicaPacketType.h" -#include "ZoneControlComponent.h" +#include "MiniGameControlComponent.h" #include "RacingStatsComponent.h" #include "CollectibleComponent.h" #include "ItemComponent.h" @@ -217,8 +217,8 @@ void Entity::Initialize() { AddComponent(petComponentId); } - if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::ZONE_CONTROL) > 0) { - AddComponent(); + if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::MINI_GAME_CONTROL) > 0) { + AddComponent(); } uint32_t possessableComponentId = compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::POSSESSABLE); @@ -1197,9 +1197,9 @@ void Entity::WriteComponents(RakNet::BitStream* outBitStream, eReplicaPacketType } } - ZoneControlComponent* zoneControlComponent; - if (TryGetComponent(eReplicaComponentType::ZONE_CONTROL, zoneControlComponent)) { - zoneControlComponent->Serialize(outBitStream, bIsInitialUpdate); + MiniGameControlComponent* miniGameControlComponent; + if (TryGetComponent(eReplicaComponentType::MINI_GAME_CONTROL, miniGameControlComponent)) { + miniGameControlComponent->Serialize(outBitStream, bIsInitialUpdate); } // BBB Component, unused currently diff --git a/dGame/dComponents/CMakeLists.txt b/dGame/dComponents/CMakeLists.txt index 814a4fb9..fa0aea35 100644 --- a/dGame/dComponents/CMakeLists.txt +++ b/dGame/dComponents/CMakeLists.txt @@ -45,6 +45,6 @@ set(DGAME_DCOMPONENTS_SOURCES "BaseCombatAIComponent.cpp" "TriggerComponent.cpp" "HavokVehiclePhysicsComponent.cpp" "VendorComponent.cpp" - "ZoneControlComponent.cpp" + "MiniGameControlComponent.cpp" PARENT_SCOPE ) diff --git a/dGame/dComponents/MiniGameControlComponent.cpp b/dGame/dComponents/MiniGameControlComponent.cpp new file mode 100644 index 00000000..fdd56a2c --- /dev/null +++ b/dGame/dComponents/MiniGameControlComponent.cpp @@ -0,0 +1,5 @@ +#include "MiniGameControlComponent.h" + +void MiniGameControlComponent::Serialize(RakNet::BitStream* outBitStream, bool isConstruction) { + outBitStream->Write(0x40000000); +} diff --git a/dGame/dComponents/MiniGameControlComponent.h b/dGame/dComponents/MiniGameControlComponent.h new file mode 100644 index 00000000..06a9c24e --- /dev/null +++ b/dGame/dComponents/MiniGameControlComponent.h @@ -0,0 +1,15 @@ +#ifndef __MINIGAMECONTROLCOMPONENT__H__ +#define __MINIGAMECONTROLCOMPONENT__H__ + +#include "Component.h" +#include "eReplicaComponentType.h" + +class MiniGameControlComponent final : public Component { +public: + inline static const eReplicaComponentType ComponentType = eReplicaComponentType::MINI_GAME_CONTROL; + + MiniGameControlComponent(Entity* parent) : Component(parent) {} + void Serialize(RakNet::BitStream* outBitStream, bool isConstruction); +}; + +#endif //!__MINIGAMECONTROLCOMPONENT__H__ diff --git a/dGame/dComponents/MinigameComponent.cpp b/dGame/dComponents/MinigameComponent.cpp new file mode 100644 index 00000000..6bcb985e --- /dev/null +++ b/dGame/dComponents/MinigameComponent.cpp @@ -0,0 +1,5 @@ +#include "MinigameComponent.h" + +void MinigameComponent::Serialize(RakNet::BitStream* outBitStream, bool isConstruction) { + outBitStream->Write(0x40000000); +} diff --git a/dGame/dComponents/ZoneControlComponent.cpp b/dGame/dComponents/ZoneControlComponent.cpp deleted file mode 100644 index ca9c6626..00000000 --- a/dGame/dComponents/ZoneControlComponent.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "ZoneControlComponent.h" - -void ZoneControlComponent::Serialize(RakNet::BitStream* outBitStream, bool isConstruction) { - outBitStream->Write(0x40000000); -} diff --git a/dGame/dComponents/ZoneControlComponent.h b/dGame/dComponents/ZoneControlComponent.h deleted file mode 100644 index ba235a80..00000000 --- a/dGame/dComponents/ZoneControlComponent.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __ZONECONTROLCOMPONENT__H__ -#define __ZONECONTROLCOMPONENT__H__ - -#include "Component.h" -#include "eReplicaComponentType.h" - -class ZoneControlComponent final : public Component { -public: - inline static const eReplicaComponentType ComponentType = eReplicaComponentType::ZONE_CONTROL; - - ZoneControlComponent(Entity* parent) : Component(parent) {} - void Serialize(RakNet::BitStream* outBitStream, bool isConstruction); -}; - -#endif //!__ZONECONTROLCOMPONENT__H__ From 511672c5cb23a1c90d0c181c68b4741bb7930775 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 16 Dec 2023 10:27:06 -0800 Subject: [PATCH 042/106] fix: general crashes (#1336) * Fix crashes fix crash with chat filter fix ldf_config being empty in database on windows debug * WorldServer: Fix further crashes on windows address multi threaded signal handling on worldservers Remove iterator invalidation code in zone manager --- dGame/User.cpp | 4 ++++ dGame/User.h | 4 ++-- dGame/dGameMessages/GameMessages.cpp | 2 +- dNet/ClientPackets.cpp | 10 ++++------ dWorldServer/WorldServer.cpp | 15 ++++++++++++--- dZoneManager/dZoneManager.cpp | 2 -- 6 files changed, 23 insertions(+), 14 deletions(-) diff --git a/dGame/User.cpp b/dGame/User.cpp index ce440bd7..0b2c3c3f 100644 --- a/dGame/User.cpp +++ b/dGame/User.cpp @@ -110,3 +110,7 @@ void User::UserOutOfSync() { Game::server->Disconnect(this->m_SystemAddress, eServerDisconnectIdentifiers::PLAY_SCHEDULE_TIME_DONE); } } + +void User::UpdateBestFriendValue(const std::string_view playerName, const bool newValue) { + m_IsBestFriendMap[playerName.data()] = newValue; +} diff --git a/dGame/User.h b/dGame/User.h index 3201538e..5d9ea8f1 100644 --- a/dGame/User.h +++ b/dGame/User.h @@ -43,8 +43,8 @@ public: bool GetLastChatMessageApproved() { return m_LastChatMessageApproved; } void SetLastChatMessageApproved(bool approved) { m_LastChatMessageApproved = approved; } - std::unordered_map GetIsBestFriendMap() { return m_IsBestFriendMap; } - void SetIsBestFriendMap(std::unordered_map mapToSet) { m_IsBestFriendMap = mapToSet; } + const std::unordered_map& GetIsBestFriendMap() { return m_IsBestFriendMap; } + void UpdateBestFriendValue(const std::string_view playerName, const bool newValue); bool GetIsMuted() const; diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index fd174a2b..51860d44 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -5578,7 +5578,7 @@ void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity* std::unique_ptr stmt(Database::Get()->CreatePreppedStmt("INSERT INTO ugc_modular_build (ugc_id, ldf_config, character_id) VALUES (?,?,?)")); stmt->setUInt64(1, newIdBig); - stmt->setString(2, GeneralUtils::UTF16ToWTF8(modules)); + stmt->setString(2, GeneralUtils::UTF16ToWTF8(modules).c_str()); auto* pCharacter = character->GetCharacter(); pCharacter ? stmt->setUInt(3, pCharacter->GetID()) : stmt->setNull(3, sql::DataType::BIGINT); stmt->execute(); diff --git a/dNet/ClientPackets.cpp b/dNet/ClientPackets.cpp index cf405053..47513a66 100644 --- a/dNet/ClientPackets.cpp +++ b/dNet/ClientPackets.cpp @@ -359,8 +359,8 @@ void ClientPackets::HandleChatModerationRequest(const SystemAddress& sysAddr, Pa idOfReceiver = characterIdFetch->id; } } - - if (user->GetIsBestFriendMap().find(receiver) == user->GetIsBestFriendMap().end() && idOfReceiver != LWOOBJID_EMPTY) { + const auto& bffMap = user->GetIsBestFriendMap(); + if (bffMap.find(receiver) == bffMap.end() && idOfReceiver != LWOOBJID_EMPTY) { auto bffInfo = Database::Get()->GetBestFriendStatus(entity->GetObjectID(), idOfReceiver); if (bffInfo) { @@ -368,11 +368,9 @@ void ClientPackets::HandleChatModerationRequest(const SystemAddress& sysAddr, Pa } if (isBestFriend) { - auto tmpBestFriendMap = user->GetIsBestFriendMap(); - tmpBestFriendMap[receiver] = true; - user->SetIsBestFriendMap(tmpBestFriendMap); + user->UpdateBestFriendValue(receiver, true); } - } else if (user->GetIsBestFriendMap().find(receiver) != user->GetIsBestFriendMap().end()) { + } else if (bffMap.find(receiver) != bffMap.end()) { isBestFriend = true; } } diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index f916e40c..5fc0393a 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -18,6 +18,7 @@ #include "PerformanceManager.h" #include "Diagnostics.h" #include "BinaryPathFinder.h" +#include "dPlatforms.h" //RakNet includes: #include "RakNetDefines.h" @@ -1284,12 +1285,14 @@ void WorldShutdownProcess(uint32_t zoneId) { } void WorldShutdownSequence() { - if (Game::shouldShutdown || worldShutdownSequenceComplete) { + Game::shouldShutdown = true; +#ifndef DARKFLAME_PLATFORM_WIN32 + if (Game::shouldShutdown || worldShutdownSequenceComplete) +#endif + { return; } - Game::shouldShutdown = true; - LOG("Zone (%i) instance (%i) shutting down outside of main loop!", Game::server->GetZoneID(), instanceID); WorldShutdownProcess(Game::server->GetZoneID()); FinalizeShutdown(); @@ -1302,11 +1305,17 @@ void FinalizeShutdown() { Metrics::Clear(); Database::Destroy("WorldServer"); if (Game::chatFilter) delete Game::chatFilter; + Game::chatFilter = nullptr; if (Game::zoneManager) delete Game::zoneManager; + Game::zoneManager = nullptr; if (Game::server) delete Game::server; + Game::server = nullptr; if (Game::config) delete Game::config; + Game::config = nullptr; if (Game::entityManager) delete Game::entityManager; + Game::entityManager = nullptr; if (Game::logger) delete Game::logger; + Game::logger = nullptr; worldShutdownSequenceComplete = true; diff --git a/dZoneManager/dZoneManager.cpp b/dZoneManager/dZoneManager.cpp index 137a9cab..4aaa911d 100644 --- a/dZoneManager/dZoneManager.cpp +++ b/dZoneManager/dZoneManager.cpp @@ -79,8 +79,6 @@ dZoneManager::~dZoneManager() { delete p.second; p.second = nullptr; } - - m_Spawners.erase(p.first); } if (m_WorldConfig) delete m_WorldConfig; } From 24c236124864619c707ad6f967bbef7471ac38fd Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 16 Dec 2023 10:27:14 -0800 Subject: [PATCH 043/106] fix: achievements counting twice when accepted (#1337) Tested that new achievements progress exactly once Tested that already accepted achievements progress as expeected Tested that tiered achievements only count the progress to the current tier and not the next one as well Update MissionComponent.cpp --- dGame/dComponents/MissionComponent.cpp | 29 +++++++++++++------------- dGame/dComponents/MissionComponent.h | 2 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/dGame/dComponents/MissionComponent.cpp b/dGame/dComponents/MissionComponent.cpp index d7da29d9..277882bf 100644 --- a/dGame/dComponents/MissionComponent.cpp +++ b/dGame/dComponents/MissionComponent.cpp @@ -145,8 +145,13 @@ void MissionComponent::RemoveMission(uint32_t missionId) { } void MissionComponent::Progress(eMissionTaskType type, int32_t value, LWOOBJID associate, const std::string& targets, int32_t count, bool ignoreAchievements) { - for (const auto& pair : m_Missions) { - auto* mission = pair.second; + std::vector acceptedAchievements; + if (count > 0 && !ignoreAchievements) { + acceptedAchievements = LookForAchievements(type, value, true, associate, targets, count); + } + + for (const auto& [id, mission] : m_Missions) { + if (!mission || std::find(acceptedAchievements.begin(), acceptedAchievements.end(), mission->GetMissionId()) != acceptedAchievements.end()) continue; if (mission->IsAchievement() && ignoreAchievements) continue; @@ -154,10 +159,6 @@ void MissionComponent::Progress(eMissionTaskType type, int32_t value, LWOOBJID a mission->Progress(type, value, associate, targets, count); } - - if (count > 0 && !ignoreAchievements) { - LookForAchievements(type, value, true, associate, targets, count); - } } void MissionComponent::ForceProgress(const uint32_t missionId, const uint32_t taskId, const int32_t value, const bool acceptMission) { @@ -282,12 +283,12 @@ bool MissionComponent::GetMissionInfo(uint32_t missionId, CDMissions& result) { #define MISSION_NEW_METHOD -bool MissionComponent::LookForAchievements(eMissionTaskType type, int32_t value, bool progress, LWOOBJID associate, const std::string& targets, int32_t count) { +const std::vector MissionComponent::LookForAchievements(eMissionTaskType type, int32_t value, bool progress, LWOOBJID associate, const std::string& targets, int32_t count) { #ifdef MISSION_NEW_METHOD // Query for achievments, using the cache const auto& result = QueryAchievements(type, value, targets); - bool any = false; + std::vector acceptedAchievements; for (const uint32_t missionID : result) { // Check if we already have this achievement @@ -309,7 +310,7 @@ bool MissionComponent::LookForAchievements(eMissionTaskType type, int32_t value, instance->Accept(); - any = true; + acceptedAchievements.push_back(missionID); if (progress) { // Progress mission to bring it up to speed @@ -317,7 +318,7 @@ bool MissionComponent::LookForAchievements(eMissionTaskType type, int32_t value, } } - return any; + return acceptedAchievements; #else auto* missionTasksTable = CDClientManager::Instance().GetTable(); auto* missionsTable = CDClientManager::Instance().GetTable(); @@ -326,7 +327,7 @@ bool MissionComponent::LookForAchievements(eMissionTaskType type, int32_t value, return entry.taskType == static_cast(type); }); - auto any = false; + std::vector acceptedAchievements; for (const auto& task : tasks) { if (GetMission(task.id) != nullptr) { @@ -380,14 +381,14 @@ bool MissionComponent::LookForAchievements(eMissionTaskType type, int32_t value, instance->Accept(); - any = true; + acceptedAchievements.push_back(mission.id); if (progress) { instance->Progress(type, value, associate, targets, count); } } - return any; + return acceptedAchievements; #endif } @@ -499,7 +500,7 @@ bool MissionComponent::RequiresItem(const LOT lot) { const auto required = LookForAchievements(eMissionTaskType::GATHER, lot, false); - return required; + return !required.empty(); } diff --git a/dGame/dComponents/MissionComponent.h b/dGame/dComponents/MissionComponent.h index e82b5b67..37d5cd84 100644 --- a/dGame/dComponents/MissionComponent.h +++ b/dGame/dComponents/MissionComponent.h @@ -141,7 +141,7 @@ public: * @param count the number of values to progress by (differs by task type) * @return true if a achievement was accepted, false otherwise */ - bool LookForAchievements(eMissionTaskType type, int32_t value, bool progress = true, LWOOBJID associate = LWOOBJID_EMPTY, const std::string& targets = "", int32_t count = 1); + const std::vector LookForAchievements(eMissionTaskType type, int32_t value, bool progress = true, LWOOBJID associate = LWOOBJID_EMPTY, const std::string& targets = "", int32_t count = 1); /** * Checks if there's a mission active that requires the collection of the specified LOT From e2391665b94017cc0b58618a6d3e3bf414ab3ab2 Mon Sep 17 00:00:00 2001 From: jadebenn Date: Sat, 16 Dec 2023 19:35:16 -0600 Subject: [PATCH 044/106] imagination costs that equal your capacity no longer abort qbs (#1338) --- dGame/dComponents/RebuildComponent.cpp | 9 ++++----- dGame/dComponents/RebuildComponent.h | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/dGame/dComponents/RebuildComponent.cpp b/dGame/dComponents/RebuildComponent.cpp index 5359dee0..bcdf4f70 100644 --- a/dGame/dComponents/RebuildComponent.cpp +++ b/dGame/dComponents/RebuildComponent.cpp @@ -197,18 +197,17 @@ void RebuildComponent::Update(float deltaTime) { DestroyableComponent* destComp = builder->GetComponent(); if (!destComp) break; - int newImagination = destComp->GetImagination(); - ++m_DrainedImagination; - --newImagination; + const int32_t imaginationCostRemaining = m_TakeImagination - m_DrainedImagination; + + const int32_t newImagination = destComp->GetImagination() - 1; destComp->SetImagination(newImagination); Game::entityManager->SerializeEntity(builder); - if (newImagination <= 0) { + if (newImagination <= 0 && imaginationCostRemaining > 0) { CancelRebuild(builder, eQuickBuildFailReason::OUT_OF_IMAGINATION, true); break; } - } if (m_Timer >= m_CompleteTime && m_DrainedImagination >= m_TakeImagination) { diff --git a/dGame/dComponents/RebuildComponent.h b/dGame/dComponents/RebuildComponent.h index bb097edd..b67747aa 100644 --- a/dGame/dComponents/RebuildComponent.h +++ b/dGame/dComponents/RebuildComponent.h @@ -285,7 +285,7 @@ private: float m_CompleteTime = 0; /** - * The imagination that's deducted when compeleting the rebuild + * The imagination that's deducted when completing the rebuild */ int m_TakeImagination = 0; From 799269c79e9f9ddded8bdece301e5b86590df50f Mon Sep 17 00:00:00 2001 From: jadebenn Date: Wed, 20 Dec 2023 15:12:01 -0600 Subject: [PATCH 045/106] fix: Using 'leave-zone' in Return to the Venture Explorer allows players to return to the original Venture Explorer map (#1341) * fixed VE zone bug and added config option to renable it * add zero back to LWOMAPID initialization * typo * removed config option to enable bug --- dGame/dUtilities/SlashCommandHandler.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 7c18e9a4..39f4a115 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -288,11 +288,13 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit return; } - if (chatCommand == "leave-zone") { + if (chatCommand == "leave-zone" || chatCommand == "leavezone") { const auto currentZone = Game::zoneManager->GetZone()->GetZoneID().GetMapID(); - LWOMAPID newZone = 0; - if (currentZone % 100 == 0) { + + if (currentZone == 1001) { + newZone = 1100; // Send to AG if we're in a Return to Venture Explorer instance + } else if (currentZone % 100 == 0) { ChatPackets::SendSystemMessage(sysAddr, u"You are not in an instanced zone."); return; } else { From 42ffd00478b86ea94159c4a914d1810ba0a6f2b1 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Wed, 20 Dec 2023 22:25:21 -0600 Subject: [PATCH 046/106] feat: implement handling vendorStatusRequest (#1346) this fixes the crafting menu on johny umami not being there on the initial internaction --- dGame/dGameMessages/GameMessageHandler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index 55151242..83b8a666 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -690,6 +690,9 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System case eGameMessageType::CANCEL_DONATION_ON_PLAYER: GameMessages::HandleCancelDonationOnPlayer(inStream, entity); break; + case eGameMessageType::REQUEST_VENDOR_STATUS_UPDATE: + GameMessages::SendVendorStatusUpdate(entity, sysAddr, true); + break; default: LOG_DEBUG("Unknown game message ID: %i", messageID); break; From c07c909a5724b9e6a3869159e303c3961e68c5c1 Mon Sep 17 00:00:00 2001 From: jadebenn Date: Thu, 21 Dec 2023 22:12:52 -0600 Subject: [PATCH 047/106] fix: Character access after deletion (#1348) * assorted skill debug plus crash fix * removed uncleaned debug --- dGame/Player.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dGame/Player.cpp b/dGame/Player.cpp index f2917729..abbbf059 100644 --- a/dGame/Player.cpp +++ b/dGame/Player.cpp @@ -60,6 +60,8 @@ void Player::SetSystemAddress(const SystemAddress& value) { } void Player::SetRespawnPos(const NiPoint3 position) { + if (!m_Character) return; + m_respawnPos = position; m_Character->SetRespawnPoint(Game::zoneManager->GetZone()->GetWorldID(), position); From c1e8546d48542896d4cbf6534f730dd9634828b5 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 22 Dec 2023 23:53:21 -0800 Subject: [PATCH 048/106] fix: add Nexus Tower missing scripts (#1349) add final missing scripts for nt also fix the turnin for the breadcrumb missions not showing the completion window. Fix another missing script Add another script fix include guards Fix dirt clouds not appearing on mission accept --- CMakeLists.txt | 1 + dGame/EntityManager.cpp | 4 -- dGame/dComponents/MissionComponent.cpp | 9 ++++ dGame/dComponents/MissionComponent.h | 1 + dGame/dComponents/MissionOfferComponent.cpp | 9 ++-- dGame/dComponents/MissionOfferComponent.h | 4 +- dGame/dGameMessages/GameMessages.cpp | 13 ++++++ dGame/dGameMessages/GameMessages.h | 1 + dGame/dUtilities/SlashCommandHandler.cpp | 11 +++++ dNet/AuthPackets.cpp | 2 +- dScripts/02_server/Map/General/CMakeLists.txt | 3 ++ .../Map/General/FrictionVolumeServer.cpp | 19 ++++++++ .../Map/General/FrictionVolumeServer.h | 13 ++++++ .../Map/General/NTNaomiDirtServer.cpp | 14 ++++++ .../02_server/Map/General/NTNaomiDirtServer.h | 11 +++++ .../Map/General/VisToggleNotifierServer.cpp | 23 ++++++++++ .../Map/General/VisToggleNotifierServer.h | 15 +++++++ dScripts/02_server/Map/NT/CMakeLists.txt | 3 ++ .../Map/NT/NTPipeVisibilityServer.cpp | 15 +++++++ .../02_server/Map/NT/NTPipeVisibilityServer.h | 11 +++++ .../02_server/Map/NT/NtBcSubmitServer.cpp | 34 +++++++++++++++ dScripts/02_server/Map/NT/NtBcSubmitServer.h | 11 +++++ dScripts/02_server/Map/NT/NtDukeServer.cpp | 1 + dScripts/02_server/Map/NT/NtDukeServer.h | 3 +- dScripts/02_server/Map/NT/NtHaelServer.h | 3 +- .../Map/NT/NtNaomiBreadcrumbServer.cpp | 43 +++++++++++++++++++ .../Map/NT/NtNaomiBreadcrumbServer.h | 11 +++++ dScripts/02_server/Map/NT/NtOverbuildServer.h | 3 +- dScripts/02_server/Map/NT/NtVandaServer.cpp | 1 + dScripts/02_server/Map/NT/NtVandaServer.h | 3 +- dScripts/CppScripts.cpp | 21 ++++++++- dScripts/NtFactionSpyServer.h | 2 +- dScripts/ai/MINIGAME/CMakeLists.txt | 6 +++ dScripts/ai/MINIGAME/Objects/CMakeLists.txt | 4 ++ .../ai/MINIGAME/Objects/MinigameBlueMark.cpp | 7 +++ .../ai/MINIGAME/Objects/MinigameBlueMark.h | 6 +++ dZoneManager/Spawner.cpp | 9 ++++ dZoneManager/Spawner.h | 1 + 38 files changed, 334 insertions(+), 17 deletions(-) create mode 100644 dScripts/02_server/Map/General/FrictionVolumeServer.cpp create mode 100644 dScripts/02_server/Map/General/FrictionVolumeServer.h create mode 100644 dScripts/02_server/Map/General/NTNaomiDirtServer.cpp create mode 100644 dScripts/02_server/Map/General/NTNaomiDirtServer.h create mode 100644 dScripts/02_server/Map/General/VisToggleNotifierServer.cpp create mode 100644 dScripts/02_server/Map/General/VisToggleNotifierServer.h create mode 100644 dScripts/02_server/Map/NT/NTPipeVisibilityServer.cpp create mode 100644 dScripts/02_server/Map/NT/NTPipeVisibilityServer.h create mode 100644 dScripts/02_server/Map/NT/NtBcSubmitServer.cpp create mode 100644 dScripts/02_server/Map/NT/NtBcSubmitServer.h create mode 100644 dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.cpp create mode 100644 dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.h create mode 100644 dScripts/ai/MINIGAME/Objects/CMakeLists.txt create mode 100644 dScripts/ai/MINIGAME/Objects/MinigameBlueMark.cpp create mode 100644 dScripts/ai/MINIGAME/Objects/MinigameBlueMark.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 635f5f44..84b5468e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -269,6 +269,7 @@ set(INCLUDED_DIRECTORIES "dScripts/ai/GENERAL" "dScripts/ai/GF" "dScripts/ai/MINIGAME" + "dScripts/ai/MINIGAME/Objects" "dScripts/ai/NP" "dScripts/ai/NS" "dScripts/ai/PETS" diff --git a/dGame/EntityManager.cpp b/dGame/EntityManager.cpp index 86737dd4..cfbd71d9 100644 --- a/dGame/EntityManager.cpp +++ b/dGame/EntityManager.cpp @@ -47,10 +47,6 @@ std::vector EntityManager::m_GhostingExcludedZones = { // Configure some exceptions for ghosting, nessesary for some special objects. std::vector EntityManager::m_GhostingExcludedLOTs = { - // NT - Pipes - 9524, - 12408, - // AG - Footrace 4967 }; diff --git a/dGame/dComponents/MissionComponent.cpp b/dGame/dComponents/MissionComponent.cpp index 277882bf..33869030 100644 --- a/dGame/dComponents/MissionComponent.cpp +++ b/dGame/dComponents/MissionComponent.cpp @@ -621,3 +621,12 @@ bool MissionComponent::HasCollectible(int32_t collectibleID) { bool MissionComponent::HasMission(uint32_t missionId) { return GetMission(missionId) != nullptr; } + +void MissionComponent::ResetMission(const int32_t missionId) { + auto* mission = GetMission(missionId); + + if (!mission) return; + + m_Missions.erase(missionId); + GameMessages::SendResetMissions(m_Parent, m_Parent->GetSystemAddress(), missionId); +} diff --git a/dGame/dComponents/MissionComponent.h b/dGame/dComponents/MissionComponent.h index 37d5cd84..d53db64e 100644 --- a/dGame/dComponents/MissionComponent.h +++ b/dGame/dComponents/MissionComponent.h @@ -170,6 +170,7 @@ public: */ bool HasMission(uint32_t missionId); + void ResetMission(const int32_t missionId); private: /** * All the missions owned by this entity, mapped by mission ID diff --git a/dGame/dComponents/MissionOfferComponent.cpp b/dGame/dComponents/MissionOfferComponent.cpp index 9299ebd7..60095c4a 100644 --- a/dGame/dComponents/MissionOfferComponent.cpp +++ b/dGame/dComponents/MissionOfferComponent.cpp @@ -29,11 +29,11 @@ uint32_t OfferedMission::GetMissionId() const { return this->missionId; } -bool OfferedMission::GetOfferMission() const { +bool OfferedMission::GetOffersMission() const { return this->offersMission; } -bool OfferedMission::GetAcceptMission() const { +bool OfferedMission::GetAcceptsMission() const { return this->acceptsMission; } @@ -203,7 +203,10 @@ void MissionOfferComponent::OfferMissions(Entity* entity, const uint32_t specifi const auto selected = canAcceptPool[GeneralUtils::GenerateRandomNumber(0, canAcceptPool.size() - 1)]; GameMessages::SendOfferMission(entity->GetObjectID(), entity->GetSystemAddress(), selected, m_Parent->GetObjectID()); - } else if (std::find(offered.begin(), offered.end(), missionId) == offered.end() && offeredMission->GetOfferMission()) { + } else if ( + std::find(offered.begin(), offered.end(), missionId) == offered.end() + && + (offeredMission->GetOffersMission() || offeredMission->GetAcceptsMission())) { GameMessages::SendOfferMission(entity->GetObjectID(), entity->GetSystemAddress(), missionId, m_Parent->GetObjectID()); } } diff --git a/dGame/dComponents/MissionOfferComponent.h b/dGame/dComponents/MissionOfferComponent.h index ad5f83bc..52dcdadb 100644 --- a/dGame/dComponents/MissionOfferComponent.h +++ b/dGame/dComponents/MissionOfferComponent.h @@ -30,13 +30,13 @@ struct OfferedMission { * Returns if this mission is offered by the entity * @return true if this mission is offered by the entity, false otherwise */ - bool GetOfferMission() const; + bool GetOffersMission() const; /** * Returns if this mission may be accepted by the entity (currently unused) * @return true if this mission may be accepted by the entity, false otherwise */ - bool GetAcceptMission() const; + bool GetAcceptsMission() const; private: diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 51860d44..9d903b3b 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -345,6 +345,19 @@ void GameMessages::SendStartPathing(Entity* entity) { SEND_PACKET_BROADCAST; } +void GameMessages::SendResetMissions(Entity* entity, const SystemAddress& sysAddr, const int32_t missionid) { + CBITSTREAM; + CMSGHEADER; + + bitStream.Write(entity->GetObjectID()); + bitStream.Write(eGameMessageType::RESET_MISSIONS); + + bitStream.Write(missionid != -1); + if (missionid != -1) bitStream.Write(missionid); + + SEND_PACKET; +} + void GameMessages::SendPlatformResync(Entity* entity, const SystemAddress& sysAddr, bool bStopAtDesiredWaypoint, int iIndex, int iDesiredWaypointIndex, int nextIndex, eMovementPlatformState movementState) { diff --git a/dGame/dGameMessages/GameMessages.h b/dGame/dGameMessages/GameMessages.h index 5199a72a..8d0a961c 100644 --- a/dGame/dGameMessages/GameMessages.h +++ b/dGame/dGameMessages/GameMessages.h @@ -74,6 +74,7 @@ namespace GameMessages { int iIndex = 0, int iDesiredWaypointIndex = 1, int nextIndex = 1, eMovementPlatformState movementState = eMovementPlatformState::Moving); + void SendResetMissions(Entity* entity, const SystemAddress& sysAddr, const int32_t missionid = -1); void SendRestoreToPostLoadStats(Entity* entity, const SystemAddress& sysAddr); void SendServerDoneLoadingAllObjects(Entity* entity, const SystemAddress& sysAddr); void SendGMLevelBroadcast(const LWOOBJID& objectID, eGameMasterLevel level); diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 39f4a115..a37b6124 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -349,6 +349,17 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit }); } + if (chatCommand == "resetmission") { + uint32_t missionId; + if (!GeneralUtils::TryParse(args[0], missionId)) { + ChatPackets::SendSystemMessage(sysAddr, u"Invalid mission ID."); + return; + } + auto* missionComponent = entity->GetComponent(); + if (!missionComponent) return; + missionComponent->ResetMission(missionId); + } + if (user->GetMaxGMLevel() == eGameMasterLevel::CIVILIAN || entity->GetGMLevel() >= eGameMasterLevel::CIVILIAN) { if (chatCommand == "die") { entity->Smash(entity->GetObjectID()); diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index 6ee38028..4e84eeca 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -223,7 +223,7 @@ void AuthPackets::SendLoginResponse(dServer* server, const SystemAddress& sysAdd server->Send(&packet, sysAddr, false); //Inform the master server that we've created a session for this user: - { + if (responseCode == eLoginResponse::SUCCESS) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::SET_SESSION_KEY); bitStream.Write(sessionKey); diff --git a/dScripts/02_server/Map/General/CMakeLists.txt b/dScripts/02_server/Map/General/CMakeLists.txt index 1fe3d785..797b53ed 100644 --- a/dScripts/02_server/Map/General/CMakeLists.txt +++ b/dScripts/02_server/Map/General/CMakeLists.txt @@ -3,6 +3,7 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL "BaseInteractDropLootServer.cpp" "Binoculars.cpp" "ExplodingAsset.cpp" + "FrictionVolumeServer.cpp" "ForceVolumeServer.cpp" "GrowingFlower.cpp" "ImaginationBackpackHealServer.cpp" @@ -17,6 +18,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL "StoryBoxInteractServer.cpp" "TokenConsoleServer.cpp" "TouchMissionUpdateServer.cpp" + "VisToggleNotifierServer.cpp" + "NTNaomiDirtServer.cpp" "WishingWellServer.cpp") add_subdirectory(Ninjago) diff --git a/dScripts/02_server/Map/General/FrictionVolumeServer.cpp b/dScripts/02_server/Map/General/FrictionVolumeServer.cpp new file mode 100644 index 00000000..541ccdf7 --- /dev/null +++ b/dScripts/02_server/Map/General/FrictionVolumeServer.cpp @@ -0,0 +1,19 @@ +#include "FrictionVolumeServer.h" +#include "PhantomPhysicsComponent.h" +#include "ePhysicsEffectType.h" +#include "Game.h" +#include "EntityManager.h" + +void FrictionVolumeServer::OnStartup(Entity* self) { + auto frictionAmount = self->GetVar(u"FrictionAmt"); + if (frictionAmount == 0.0f) frictionAmount = DefaultFrictionAmount; + + auto* phantomPhysicsComponent = self->GetComponent(); + if (!phantomPhysicsComponent) return; + + phantomPhysicsComponent->SetEffectType(ePhysicsEffectType::FRICTION); + phantomPhysicsComponent->SetDirectionalMultiplier(frictionAmount); + phantomPhysicsComponent->SetPhysicsEffectActive(true); + + Game::entityManager->SerializeEntity(self); +} diff --git a/dScripts/02_server/Map/General/FrictionVolumeServer.h b/dScripts/02_server/Map/General/FrictionVolumeServer.h new file mode 100644 index 00000000..9824daef --- /dev/null +++ b/dScripts/02_server/Map/General/FrictionVolumeServer.h @@ -0,0 +1,13 @@ +#ifndef __FRICTIONVOLUMESERVER__H__ +#define __FRICTIONVOLUMESERVER__H__ + +#include "CppScripts.h" + +class FrictionVolumeServer : public CppScripts::Script { +public: + void OnStartup(Entity* self) override; +private: + const float DefaultFrictionAmount = 1.5f; +}; + +#endif //!__FRICTIONVOLUMESERVER__H__ diff --git a/dScripts/02_server/Map/General/NTNaomiDirtServer.cpp b/dScripts/02_server/Map/General/NTNaomiDirtServer.cpp new file mode 100644 index 00000000..cf00326a --- /dev/null +++ b/dScripts/02_server/Map/General/NTNaomiDirtServer.cpp @@ -0,0 +1,14 @@ +#include "NTNaomiDirtServer.h" + +namespace { + std::map VisibilityMissionTable = { + {1253, std::string("Dirt_Clouds_Sent")}, + {1276, std::string("Dirt_Clouds_Assem")}, + {1277, std::string("Dirt_Clouds_Para")}, + {1283, std::string("Dirt_Clouds_Halls")} + }; +}; + +void NTNaomiDirtServer::OnStartup(Entity* self) { + SetGameVariables(VisibilityMissionTable); +} diff --git a/dScripts/02_server/Map/General/NTNaomiDirtServer.h b/dScripts/02_server/Map/General/NTNaomiDirtServer.h new file mode 100644 index 00000000..ed03df47 --- /dev/null +++ b/dScripts/02_server/Map/General/NTNaomiDirtServer.h @@ -0,0 +1,11 @@ +#ifndef __NTNAOMIDIRTSERVER__H__ +#define __NTNAOMIDIRTSERVER__H__ + +#include "VisToggleNotifierServer.h" + +class NTNaomiDirtServer : public VisToggleNotifierServer { +public: + void OnStartup(Entity* self) override; +}; + +#endif //!__NTNAOMIDIRTSERVER__H__ diff --git a/dScripts/02_server/Map/General/VisToggleNotifierServer.cpp b/dScripts/02_server/Map/General/VisToggleNotifierServer.cpp new file mode 100644 index 00000000..a02856ef --- /dev/null +++ b/dScripts/02_server/Map/General/VisToggleNotifierServer.cpp @@ -0,0 +1,23 @@ +#include "VisToggleNotifierServer.h" +#include "eMissionState.h" +#include "Game.h" +#include "dZoneManager.h" + +void VisToggleNotifierServer::OnMissionDialogueOK(Entity* self, Entity* target, int missionId, eMissionState missionState) { + auto itr = m_GameVariables.find(missionId); + if (itr != m_GameVariables.end()) { + bool visible = true; + if (missionState == eMissionState::READY_TO_COMPLETE || missionState == eMissionState::COMPLETE_READY_TO_COMPLETE) { + visible = false; + } + + auto spawners = Game::zoneManager->GetSpawnersByName(itr->second); + if (spawners.empty()) return; + for (const auto spawner : spawners) { + auto spawnedObjIds = spawner->GetSpawnedObjectIDs(); + for (const auto& objId : spawnedObjIds) { + GameMessages::SendNotifyClientObject(objId, u"SetVisibility", visible); + } + } + } +} diff --git a/dScripts/02_server/Map/General/VisToggleNotifierServer.h b/dScripts/02_server/Map/General/VisToggleNotifierServer.h new file mode 100644 index 00000000..c19b65df --- /dev/null +++ b/dScripts/02_server/Map/General/VisToggleNotifierServer.h @@ -0,0 +1,15 @@ +#ifndef __VISTOGGLENOTIFIERSERVER__H__ +#define __VISTOGGLENOTIFIERSERVER__H__ + +#include "CppScripts.h" + +class VisToggleNotifierServer : public CppScripts::Script { +public: + void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; +protected: + void SetGameVariables(std::map& gameVariables) { m_GameVariables = gameVariables; } +private: + std::map m_GameVariables; +}; + +#endif //!__VISTOGGLENOTIFIERSERVER__H__ diff --git a/dScripts/02_server/Map/NT/CMakeLists.txt b/dScripts/02_server/Map/NT/CMakeLists.txt index ede9b003..533a70c9 100644 --- a/dScripts/02_server/Map/NT/CMakeLists.txt +++ b/dScripts/02_server/Map/NT/CMakeLists.txt @@ -18,9 +18,12 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_NT "NtXRayServer.cpp" "NtSleepingGuard.cpp" "NtImagimeterVisibility.cpp" + "NTPipeVisibilityServer.cpp" "NtSentinelWalkwayServer.cpp" "NtDarkitectRevealServer.cpp" "NtParadoxTeleServer.cpp" "NtVentureSpeedPadServer.cpp" "NtVentureCannonServer.cpp" + "NtBcSubmitServer.cpp" + "NtNaomiBreadcrumbServer.cpp" PARENT_SCOPE) diff --git a/dScripts/02_server/Map/NT/NTPipeVisibilityServer.cpp b/dScripts/02_server/Map/NT/NTPipeVisibilityServer.cpp new file mode 100644 index 00000000..d8d7d1d9 --- /dev/null +++ b/dScripts/02_server/Map/NT/NTPipeVisibilityServer.cpp @@ -0,0 +1,15 @@ +#include "NTPipeVisibilityServer.h" +#include "Entity.h" +#include "Character.h" + +void NTPipeVisibilityServer::OnRebuildComplete(Entity* self, Entity* target) { + const auto flag = self->GetVar(u"flag"); + if (flag == 0) return; + + auto* character = target->GetCharacter(); + if (!character) return; + + character->SetPlayerFlag(flag, true); + + GameMessages::SendNotifyClientObject(self->GetObjectID(), u"PipeBuilt"); +} diff --git a/dScripts/02_server/Map/NT/NTPipeVisibilityServer.h b/dScripts/02_server/Map/NT/NTPipeVisibilityServer.h new file mode 100644 index 00000000..2694af8b --- /dev/null +++ b/dScripts/02_server/Map/NT/NTPipeVisibilityServer.h @@ -0,0 +1,11 @@ +#ifndef __NTPIPEVISIBILITYSERVER__H__ +#define __NTPIPEVISIBILITYSERVER__H__ + +#include "CppScripts.h" + +class NTPipeVisibilityServer : public CppScripts::Script { +public: + void OnRebuildComplete(Entity* self, Entity* target) override; +}; + +#endif //!__NTPIPEVISIBILITYSERVER__H__ diff --git a/dScripts/02_server/Map/NT/NtBcSubmitServer.cpp b/dScripts/02_server/Map/NT/NtBcSubmitServer.cpp new file mode 100644 index 00000000..9dc3e022 --- /dev/null +++ b/dScripts/02_server/Map/NT/NtBcSubmitServer.cpp @@ -0,0 +1,34 @@ +#include "NtBcSubmitServer.h" + +#include +#include + +#include "Entity.h" +#include "MissionComponent.h" + +// https://explorer.lu/missions/ +// Key is the main mission, value is the breadcrumb mission to reset upon Mission Dialogue Ok. +// To see the actual missions, just append the number to the end of the URL. +namespace { + std::map ResetMissionsTable = { + {999, 1335}, + {1002, 1355}, + {1006, 1349}, + {1009, 1348}, + {1379, 1335}, + {1380, 1355}, + {1378, 1349}, + {1377, 1348}, + }; +} + +void NtBcSubmitServer::OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) { + auto* missionComponent = target->GetComponent(); + if (!missionComponent) return; + + auto it = ResetMissionsTable.find(missionID); + if (it == ResetMissionsTable.end()) return; + + const auto missionToReset = it->second; + missionComponent->ResetMission(missionToReset); +} diff --git a/dScripts/02_server/Map/NT/NtBcSubmitServer.h b/dScripts/02_server/Map/NT/NtBcSubmitServer.h new file mode 100644 index 00000000..46efa935 --- /dev/null +++ b/dScripts/02_server/Map/NT/NtBcSubmitServer.h @@ -0,0 +1,11 @@ +#ifndef __NTBCSUBMITSERVER__H__ +#define __NTBCSUBMITSERVER__H__ + +#include "CppScripts.h" + +class NtBcSubmitServer : public virtual CppScripts::Script { +public: + void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; +}; + +#endif //!__NTBCSUBMITSERVER__H__ diff --git a/dScripts/02_server/Map/NT/NtDukeServer.cpp b/dScripts/02_server/Map/NT/NtDukeServer.cpp index 07d17e96..4ab19445 100644 --- a/dScripts/02_server/Map/NT/NtDukeServer.cpp +++ b/dScripts/02_server/Map/NT/NtDukeServer.cpp @@ -37,4 +37,5 @@ void NtDukeServer::OnMissionDialogueOK(Entity* self, Entity* target, int mission inventoryComponent->RemoveItem(m_SwordLot, lotCount); } } + NtBcSubmitServer::OnMissionDialogueOK(self, target, missionID, missionState); } diff --git a/dScripts/02_server/Map/NT/NtDukeServer.h b/dScripts/02_server/Map/NT/NtDukeServer.h index 2103ba8d..c116dfef 100644 --- a/dScripts/02_server/Map/NT/NtDukeServer.h +++ b/dScripts/02_server/Map/NT/NtDukeServer.h @@ -1,7 +1,8 @@ #pragma once #include "NtFactionSpyServer.h" +#include "NtBcSubmitServer.h" -class NtDukeServer : public NtFactionSpyServer { +class NtDukeServer : public NtFactionSpyServer, public NtBcSubmitServer { void SetVariables(Entity* self) override; void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; const uint32_t m_SwordMissionID = 1448; diff --git a/dScripts/02_server/Map/NT/NtHaelServer.h b/dScripts/02_server/Map/NT/NtHaelServer.h index 4597198f..13660ab4 100644 --- a/dScripts/02_server/Map/NT/NtHaelServer.h +++ b/dScripts/02_server/Map/NT/NtHaelServer.h @@ -1,6 +1,7 @@ #pragma once #include "NtFactionSpyServer.h" +#include "NtBcSubmitServer.h" -class NtHaelServer : public NtFactionSpyServer { +class NtHaelServer : public NtFactionSpyServer, public NtBcSubmitServer { void SetVariables(Entity* self) override; }; diff --git a/dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.cpp b/dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.cpp new file mode 100644 index 00000000..20edc4da --- /dev/null +++ b/dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.cpp @@ -0,0 +1,43 @@ +#include "NtNaomiBreadcrumbServer.h" +#include + +#include "eMissionState.h" +#include "MissionComponent.h" + +// https://explorer.lu/missions/ +// Key is the main mission, value is the breadcrumb mission to reset upon Mission Dialogue Ok. +// To see the actual missions, just append the number to the end of the URL. +namespace { + std::map> CompleteBcMissionTable = { + {1377, {1378, 1379, 1380, 1349, 1335, 1355}}, + {1378, {1377, 1379, 1380, 1348, 1335, 1355}}, + {1379, {1377, 1378, 1380, 1348, 1349, 1355}}, + {1380, {1377, 1378, 1379, 1348, 1349, 1335}}, + }; + + std::map MatchingBCTable = { + {1377, 1348}, + {1378, 1349}, + {1379, 1335}, + {1380, 1355} + }; +} + +void NtNaomiBreadcrumbServer::OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) { + auto* missionComponent = target->GetComponent(); + if (!missionComponent) return; + + auto itr = MatchingBCTable.find(missionID); + if (itr == MatchingBCTable.end()) return; + + missionComponent->AcceptMission(itr->second); + + auto it = CompleteBcMissionTable.find(missionID); + if (it == CompleteBcMissionTable.end()) return; + + if (missionState == eMissionState::AVAILABLE || missionState == eMissionState::COMPLETE_AVAILABLE) { + for (const auto& bcMission : it->second) { + missionComponent->ResetMission(bcMission); + } + } +} diff --git a/dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.h b/dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.h new file mode 100644 index 00000000..6a82cac7 --- /dev/null +++ b/dScripts/02_server/Map/NT/NtNaomiBreadcrumbServer.h @@ -0,0 +1,11 @@ +#ifndef __NTNAOMIBREADCRUMBSERVER__H__ +#define __NTNAOMIBREADCRUMBSERVER__H__ + +#include "CppScripts.h" + +class NtNaomiBreadcrumbServer : public CppScripts::Script { +public: + void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; +}; + +#endif //!__NTNAOMIBREADCRUMBSERVER__H__ diff --git a/dScripts/02_server/Map/NT/NtOverbuildServer.h b/dScripts/02_server/Map/NT/NtOverbuildServer.h index a34d117e..6d5ce8b0 100644 --- a/dScripts/02_server/Map/NT/NtOverbuildServer.h +++ b/dScripts/02_server/Map/NT/NtOverbuildServer.h @@ -1,7 +1,8 @@ #pragma once #include "NtFactionSpyServer.h" +#include "NtBcSubmitServer.h" -class NtOverbuildServer : public NtFactionSpyServer { +class NtOverbuildServer : public NtFactionSpyServer, public NtBcSubmitServer { void SetVariables(Entity* self) override; const std::u16string m_OtherEntitiesGroupVariable = u"SpyConvo2Group"; }; diff --git a/dScripts/02_server/Map/NT/NtVandaServer.cpp b/dScripts/02_server/Map/NT/NtVandaServer.cpp index 7750d566..45096387 100644 --- a/dScripts/02_server/Map/NT/NtVandaServer.cpp +++ b/dScripts/02_server/Map/NT/NtVandaServer.cpp @@ -11,4 +11,5 @@ void NtVandaServer::OnMissionDialogueOK(Entity* self, Entity* target, int missio inventoryComponent->RemoveItem(alienPartLot, 1); } } + NtBcSubmitServer::OnMissionDialogueOK(self, target, missionID, missionState); } diff --git a/dScripts/02_server/Map/NT/NtVandaServer.h b/dScripts/02_server/Map/NT/NtVandaServer.h index 58162cd9..98842e3b 100644 --- a/dScripts/02_server/Map/NT/NtVandaServer.h +++ b/dScripts/02_server/Map/NT/NtVandaServer.h @@ -1,7 +1,8 @@ #pragma once #include "CppScripts.h" +#include "NtBcSubmitServer.h" -class NtVandaServer : public CppScripts::Script { +class NtVandaServer : public NtBcSubmitServer { void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; const uint32_t m_AlienPartMissionID = 1183; const std::vector m_AlienPartLots = { 12479, 12480, 12481 }; diff --git a/dScripts/CppScripts.cpp b/dScripts/CppScripts.cpp index 24fe7b5b..071bd7a3 100644 --- a/dScripts/CppScripts.cpp +++ b/dScripts/CppScripts.cpp @@ -209,6 +209,11 @@ #include "NtXRayServer.h" #include "NtSleepingGuard.h" #include "NtImagimeterVisibility.h" +#include "FrictionVolumeServer.h" +#include "NTPipeVisibilityServer.h" +#include "NTNaomiDirtServer.h" +#include "MinigameBlueMark.h" +#include "NtNaomiBreadcrumbServer.h" // DLU Scripts #include "DLUVanityNPC.h" @@ -311,6 +316,7 @@ #include "WildNinjaStudent.h" #include "WildNinjaSensei.h" #include "WildNinjaBricks.h" +#include "VisToggleNotifierServer.h" namespace { InvalidScript* invalidToReturn = new InvalidScript(); @@ -694,19 +700,30 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr script = new NtDukeServer(); else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_HAEL_SERVER.lua") script = new NtHaelServer(); + else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_FACTION_SPY_SERVER.lua") + script = new NtFactionSpyServer(); else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_OVERBUILD_SERVER.lua") script = new NtOverbuildServer(); else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_VANDA_SERVER.lua") script = new NtVandaServer(); else if (scriptName == "scripts\\02_server\\Map\\General\\L_FORCE_VOLUME_SERVER.lua") script = new ForceVolumeServer(); + else if (scriptName == "scripts\\02_server\\Map\\General\\L_FRICTION_VOLUME_SERVER.lua") + script = new FrictionVolumeServer(); else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_XRAY_SERVER.lua") script = new NtXRayServer(); else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_SLEEPING_GUARD.lua") script = new NtSleepingGuard(); - else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_IMAGIMETER_VISIBILITY_SERVER.lua") { + else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_IMAGIMETER_VISIBILITY_SERVER.lua") script = new NTImagimeterVisibility(); - } + else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_PIPE_VISIBILITY_SERVER.lua") + script = new NTPipeVisibilityServer(); + else if (scriptName == "scripts\\ai\\MINIGAME\\Objects\\MINIGAME_BLUE_MARK.lua") + script = new MinigameBlueMark(); + else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_NAOMI_BREADCRUMB_SERVER.lua") + script = new NtNaomiBreadcrumbServer(); + else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_NAOMI_DIRT_SERVER.lua") + script = new NTNaomiDirtServer(); //AM: else if (scriptName == "scripts\\02_server\\Map\\AM\\L_AM_CONSOLE_TELEPORT_SERVER.lua") diff --git a/dScripts/NtFactionSpyServer.h b/dScripts/NtFactionSpyServer.h index 4406859c..3a1918d0 100644 --- a/dScripts/NtFactionSpyServer.h +++ b/dScripts/NtFactionSpyServer.h @@ -12,7 +12,7 @@ struct SpyData { uint32_t missionID; }; -class NtFactionSpyServer : public CppScripts::Script { +class NtFactionSpyServer : public virtual CppScripts::Script { void OnStartup(Entity* self) override; void OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) override; void OnCinematicUpdate(Entity* self, Entity* sender, eCinematicEvent event, const std::u16string& pathName, float_t pathTime, float_t totalTime, int32_t waypoint) override; diff --git a/dScripts/ai/MINIGAME/CMakeLists.txt b/dScripts/ai/MINIGAME/CMakeLists.txt index d4517519..f0187057 100644 --- a/dScripts/ai/MINIGAME/CMakeLists.txt +++ b/dScripts/ai/MINIGAME/CMakeLists.txt @@ -6,4 +6,10 @@ foreach(file ${DSCRIPTS_SOURCES_AI_MINIGAME_SG_GF}) set(DSCRIPTS_SOURCES_AI_MINIGAME ${DSCRIPTS_SOURCES_AI_MINIGAME} "SG_GF/${file}") endforeach() +add_subdirectory(Objects) + +foreach(file ${DSCRIPTS_SOURCES_AI_MINIGAME_OBJECTS}) + set(DSCRIPTS_SOURCES_AI_MINIGAME ${DSCRIPTS_SOURCES_AI_MINIGAME} "Objects/${file}") +endforeach() + set(DSCRIPTS_SOURCES_AI_MINIGAME ${DSCRIPTS_SOURCES_AI_MINIGAME} PARENT_SCOPE) diff --git a/dScripts/ai/MINIGAME/Objects/CMakeLists.txt b/dScripts/ai/MINIGAME/Objects/CMakeLists.txt new file mode 100644 index 00000000..54fada5d --- /dev/null +++ b/dScripts/ai/MINIGAME/Objects/CMakeLists.txt @@ -0,0 +1,4 @@ +SET(DSCRIPTS_SOURCES_AI_MINIGAME_OBJECTS + "MinigameBlueMark.cpp" + PARENT_SCOPE +) diff --git a/dScripts/ai/MINIGAME/Objects/MinigameBlueMark.cpp b/dScripts/ai/MINIGAME/Objects/MinigameBlueMark.cpp new file mode 100644 index 00000000..a5e09e4e --- /dev/null +++ b/dScripts/ai/MINIGAME/Objects/MinigameBlueMark.cpp @@ -0,0 +1,7 @@ +#include "MinigameBlueMark.h" +#include "Game.h" +#include "dZoneManager.h" + +void MinigameBlueMark::OnStartup(Entity* self) { + Game::zoneManager->GetZoneControlObject()->NotifyObject(self, "Blue_Mark"); +} diff --git a/dScripts/ai/MINIGAME/Objects/MinigameBlueMark.h b/dScripts/ai/MINIGAME/Objects/MinigameBlueMark.h new file mode 100644 index 00000000..0d644916 --- /dev/null +++ b/dScripts/ai/MINIGAME/Objects/MinigameBlueMark.h @@ -0,0 +1,6 @@ +#include "CppScripts.h" + +class MinigameBlueMark : public CppScripts::Script { +public: + void OnStartup(Entity* self) override; +}; diff --git a/dZoneManager/Spawner.cpp b/dZoneManager/Spawner.cpp index 8cf7b809..b602c17c 100644 --- a/dZoneManager/Spawner.cpp +++ b/dZoneManager/Spawner.cpp @@ -205,6 +205,15 @@ void Spawner::Update(const float deltaTime) { } } +std::vector Spawner::GetSpawnedObjectIDs() const { + std::vector ids; + ids.reserve(m_Entities.size()); + for (const auto& [objId, spawnerNode] : m_Entities) { + ids.push_back(objId); + } + return ids; +} + void Spawner::NotifyOfEntityDeath(const LWOOBJID& objectID) { for (std::function cb : m_SpawnedEntityDieCallbacks) { cb(); diff --git a/dZoneManager/Spawner.h b/dZoneManager/Spawner.h index 1f610b71..79ba40d1 100644 --- a/dZoneManager/Spawner.h +++ b/dZoneManager/Spawner.h @@ -66,6 +66,7 @@ public: void SetRespawnTime(float time); void SetNumToMaintain(int32_t value); bool GetIsSpawnSmashGroup() const { return m_SpawnSmashFoundGroup; }; + std::vector GetSpawnedObjectIDs() const; SpawnerInfo m_Info; bool m_Active = true; From fcf4d6c6faed079e700df4045f091799e84ddc1d Mon Sep 17 00:00:00 2001 From: jadebenn Date: Sat, 23 Dec 2023 10:51:59 -0600 Subject: [PATCH 049/106] feat: Improve console output to show packet enum names (magic_enum) (#1344) * add enum stringification functionality from third party source * squashed commit * Macros: Add test and improve speed Space macros out utilize cache locality ensure no lost functionality * moved stringify code to dCommon * Rename #defines in stringify enum tests * Revert "moved stringify code to dCommon" This reverts commit 33fa5f8d2fc273ede9fffbc15a62d9a5335ffe6a. * improve macro functionality change function handle formatting and function definition tweaks * typo fixes * moved code to dCommon/dEnums and tests to dCommonTests/dEnumsTests * initial magic_enums alternate implementation of enum stringification * deleted unused tests * reverted compile flag oopsy and fixed output types * fixed testing suite * test formatting improvement * formatting again :( * added gm string to "aborting gm!" message * Push my suggestion for CI tests. * updated magic enum test * fix test variable type * added gm test * making sure magic_enum is on a release branch * tidying up console outputs * re-implemented enum array access for performance * now it is bugged :( * nvm, working * helping out the snowflake compilers * changed return type too * optimization too * formatting too I guess because why not * being even more painfully specific * Update WorldServer.cpp to match emo's feedback * Update MagicEnumTests.cpp to use srand(time(NULL)) * Update eGameMessageType.h - formatting * Trying to fix the crash but can't actually compile the code to check on my own rn * Update WorldServer.cpp - third try at this * Update MagicEnumTests.cpp - use better macro definitions * Update MagicEnumTests.cpp - c string comparison fix * addressing all but the cmake feedback * fixed cmake to the best of my very limited ability * added tests to verify magic enum arrays are pre-sorted * updated --------- Co-authored-by: David Markowitz Co-authored-by: Jettford --- .gitmodules | 3 + CMakeLists.txt | 3 +- dCommon/dEnums/StringifiedEnum.h | 29 + dCommon/dEnums/eGameMessageType.h | 3182 +++++++++-------- dCommon/dEnums/eWorldMessageType.h | 8 + dGame/dGameMessages/GameMessageHandler.cpp | 14 +- dGame/dGameMessages/GameMessageHandler.h | 3 +- dWorldServer/WorldServer.cpp | 5 +- tests/dCommonTests/CMakeLists.txt | 3 + tests/dCommonTests/dEnumsTests/CMakeLists.txt | 10 + .../dEnumsTests/MagicEnumTests.cpp | 142 + thirdparty/CMakeLists.txt | 3 + thirdparty/magic_enum | 1 + 13 files changed, 1808 insertions(+), 1598 deletions(-) create mode 100644 dCommon/dEnums/StringifiedEnum.h create mode 100644 tests/dCommonTests/dEnumsTests/CMakeLists.txt create mode 100644 tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp create mode 160000 thirdparty/magic_enum diff --git a/.gitmodules b/.gitmodules index 33193447..700e7536 100644 --- a/.gitmodules +++ b/.gitmodules @@ -17,3 +17,6 @@ [submodule "thirdparty/AccountManager"] path = thirdparty/AccountManager url = https://github.com/DarkflameUniverse/AccountManager +[submodule "thirdparty/magic_enum"] + path = thirdparty/magic_enum + url = https://github.com/Neargye/magic_enum.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 84b5468e..7e982346 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -293,6 +293,7 @@ set(INCLUDED_DIRECTORIES "dScripts/zone/PROPERTY/GF" "dScripts/zone/PROPERTY/NS" + "thirdparty/magic_enum/include/magic_enum" "thirdparty/raknet/Source" "thirdparty/tinyxml2" "thirdparty/recastnavigation" @@ -374,7 +375,7 @@ add_subdirectory(dNavigation) add_subdirectory(dPhysics) # Create a list of common libraries shared between all binaries -set(COMMON_LIBRARIES "dCommon" "dDatabase" "dNet" "raknet" "mariadbConnCpp") +set(COMMON_LIBRARIES "dCommon" "dDatabase" "dNet" "raknet" "mariadbConnCpp" "magic_enum") # Add platform specific common libraries if (UNIX) diff --git a/dCommon/dEnums/StringifiedEnum.h b/dCommon/dEnums/StringifiedEnum.h new file mode 100644 index 00000000..30cffd22 --- /dev/null +++ b/dCommon/dEnums/StringifiedEnum.h @@ -0,0 +1,29 @@ +#ifndef __STRINGIFIEDENUM_H__ +#define __STRINGIFIEDENUM_H__ + +#include +#include "magic_enum.hpp" + +namespace StringifiedEnum { + template + const std::string_view ToString(const T e) { + constexpr auto sv = &magic_enum::enum_entries(); + std::string_view output; + + const auto it = std::lower_bound( + sv->begin(), sv->end(), e, + [&](const std::pair& lhs, const T rhs) + { return lhs.first < rhs; } + ); + + if (it != sv->end() && it->first == e) { + output = it->second; + } + else { + output = "UNKNOWN"; + } + return output; + } +} + +#endif // !__STRINGIFIEDENUM_H__ diff --git a/dCommon/dEnums/eGameMessageType.h b/dCommon/dEnums/eGameMessageType.h index df822c52..14673fac 100644 --- a/dCommon/dEnums/eGameMessageType.h +++ b/dCommon/dEnums/eGameMessageType.h @@ -3,1603 +3,1611 @@ #include +#include "magic_enum.hpp" + enum class eGameMessageType : uint16_t { - GET_POSITION = 0, - GET_ROTATION = 1, - GET_LINEAR_VELOCITY = 2, - GET_ANGULAR_VELOCITY = 3, - GET_FORWARD_VELOCITY = 4, - GET_PLAYER_FORWARD = 5, - GET_FORWARD_VECTOR = 6, - SET_POSITION = 7, - SET_LOCAL_POSITION = 8, - SET_ROTATION = 9, - SET_LINEAR_VELOCITY = 10, - MODIFY_LINEAR_VELOCITY = 11, - SET_ANGULAR_VELOCITY = 12, - MODIFY_ANGULAR_VELOCITY = 13, - DEFLECT = 14, - SEND_POSITION_UPDATE = 15, - SET_OBJECT_SCALE = 16, - GET_OBJECT_SCALE = 17, - TIMED_SCALE_FINISHED = 18, - TELEPORT = 19, - TOGGLE_PLAYER_FWD_TO_CAMERA = 20, - LOCK_PLAYER_ROT_TO_CAMERA = 21, - UNLOCK_PLAYER_ROT_FROM_CAMERA = 22, - TOGGLE_PLAYER_ROT_LOCK_TO_MOUSE = 23, - LOCK_PLAYER_ROT_TO_MOUSE = 24, - UNLOCK_PLAYER_ROT_FROM_MOUSE = 25, - SET_PLAYER_CONTROL_SCHEME = 26, - GET_PLAYER_CONTROL_SCHEME = 27, - RESET_PLAYER_CONTROL_SCHEME = 28, - PLAYER_TO_PREVIOUS_CONTROL_SCHEME = 29, - DROP_CLIENT_LOOT = 30, - GET_SPEED = 34, - GET_ROT_SPEED = 35, - IS_DEAD = 36, - DIE = 37, - REQUEST_DIE = 38, - ADD_OBJECT = 39, - PLAY_EMOTE = 41, - PRELOAD_ANIMATION = 42, - PLAY_ANIMATION = 43, - ANIMATION_COMPLETE = 44, - ENABLE_HIGHLIGHT = 45, - DISABLE_HIGHLIGHT = 46, - GET_ANIMATION_NAMES = 47, - CONTROL_BEHAVIORS = 48, - BLEND_PRIMARY_ANIMATION = 52, - SET_OFFSCREEN_ANIMATION = 53, - GET_MOVEMENT_INPUT_VALUES = 54, - SWAP_TEXTURE = 55, - SWAP_COLOR = 56, - ATTACH_HAIR = 57, - GET_ENTITY_STRUCT = 58, - SET_ENTITY_STRUCT = 59, - SET_ATTR = 60, - GET_ATTR = 61, - ON_HIT = 62, - HIT_OR_HEAL_RESULT = 63, - SHOW_ATTACK = 64, - GO_TO = 65, - GET_CONFIG_DATA = 66, - SET_CONFIG_DATA = 68, - GET_INVENTORY_EXTRA_INFO = 69, - GET_DISPLAY_NAME = 70, - GET_NAME = 71, - SET_NAME = 72, - IS_NAME_LOCALIZED = 73, - GET_HAIR_COLOR = 74, - SET_HAIR_COLOR = 75, - GET_HAIR_STYLE = 76, - SET_HAIR_STYLE = 77, - GET_HEAD = 78, - SET_HEAD = 79, - GET_TORSO = 80, - SET_TORSO = 81, - GET_LEGS = 82, - SET_LEGS = 83, - SET_PROXIMITY_RADIUS = 84, - PROXIMITY_UPDATE = 85, - GET_PROXIMITY_OBJECTS = 86, - UNSET_PROXIMITY_RADIUS = 87, - CLEAR_PROXIMITY_RADIUS = 88, - GET_PROXIMITY_DATA = 89, - SET_PROXIMITY_RADIUS_ICON = 90, - TOGGLE_TAC_ARC = 93, - CAST_SKILL = 95, - CAST_LOCAL_SKILL = 96, - ECHO_LOCAL_SKILL = 97, - QUEUE_AI_SKILL = 98, - ADD_THREAT_RATING = 99, - GET_THREAT_RATING = 100, - CLEAR_THREAT_LIST = 103, - GET_TIME_FOR_NPC_SKILL = 111, - ENEMY_HEAL_NOTIFICATION = 112, - RESET_SCRIPTED_AI_STATE = 113, - ENABLE_COMBAT_AI_COMPONENT = 114, - COMBAT_AI_FORCE_TETHER = 115, - SUSPEND_MOVEMENT_AI = 116, - NOTIFY_SCRIPT_VARS_INITIALIZED = 117, - ECHO_START_SKILL = 118, - START_SKILL = 119, - CASTER_DEAD = 120, - VERIFY_ACK = 121, - ADD_PENDING_VERIFY = 122, - MAP_SKILL = 123, - SELECT_SKILL = 124, - CAST_ACTIVE_SKILL = 125, - MODIFY_SKILL_COOLDOWN = 126, - ADD_SKILL = 127, - REMOVE_SKILL = 128, - LOG = 129, - LOG_CHAT = 130, - SET_MAX_CURRENCY = 131, - GET_MAX_CURRENCY = 132, - SET_CURRENCY = 133, - GET_CURRENCY = 134, - ADD_PENDING_CURRENCY = 136, - PICKUP_CURRENCY = 137, - SERVER_DELETE_LOOT_ITEM = 138, - PICKUP_ITEM = 139, - TEAM_PICKUP_ITEM = 140, - CLIENT_DELETE_LOOT_ITEM = 141, - CLIENT_SET_LOOT_ITEM_FFA = 143, - COLLISION_PHANTOM = 144, - OFF_COLLISION_PHANTOM = 145, - COLLISION_PROXIMITY = 146, - OFF_COLLISION_PROXIMITY = 147, - COLLISION = 148, - OFF_COLLISION = 149, - GET_SKILLS = 150, - CLEAR_FX_SINGLE_EFFECT = 152, - GET_FX_EXIST_EFFECT = 153, - PLAY_FX_EFFECT = 154, - STOP_FX_EFFECT = 155, - CLEAR_FX_ALL_CREATE_EFFECTS = 156, - UPDATE_FX_ALL_CREATE_EFFECTS = 157, - REQUEST_RESURRECT = 159, - RESURRECT = 160, - UPDATE_FROM_GHOST = 162, - FETCH_GHOST = 163, - KFM_LOADED = 164, - NIF_LOADED = 165, - HKX_LOADED = 166, - MOVE_TO_DELETE_QUEUE = 167, - RESTORE_FROM_DELETE_QUEUE = 168, - IS_ENEMY = 169, - GET_FACTION = 170, - SET_IMAGINATION = 171, - GET_IMAGINATION = 172, - SET_MAX_IMAGINATION = 173, - GET_MAX_IMAGINATION = 174, - MODIFY_IMAGINATION = 175, - MODIFY_MAX_IMAGINATION = 176, - SET_HEALTH = 177, - GET_HEALTH = 178, - SET_MAX_HEALTH = 179, - GET_MAX_HEALTH = 180, - MODIFY_HEALTH = 181, - MODIFY_MAX_HEALTH = 182, - SET_ARMOR = 183, - GET_ARMOR = 184, - SET_MAX_ARMOR = 185, - GET_MAX_ARMOR = 186, - MODIFY_ARMOR = 187, - MODIFY_MAX_ARMOR = 188, - POP_HEALTH_STATE = 190, - PUSH_EQUIPPED_ITEMS_STATE = 191, - POP_EQUIPPED_ITEMS_STATE = 192, - SET_GM_LEVEL = 193, - GET_GM_LEVEL = 194, - ADD_STATUS_EFFECT = 196, - REMOVE_STATUS_EFFECT = 197, - SET_STUNNED = 198, - GET_STUNNED = 199, - SET_STUN_IMMUNITY = 200, - GET_STUN_IMMUNITY = 201, - KNOCKBACK = 202, - SET_VISIBLE = 203, - GET_VISIBLE = 204, - REPORT_ITEM_INFO = 205, - GET_REBUILD_STATE = 207, - REBUILD_CANCEL = 209, - REBUILD_START = 211, - ENABLE_REBUILD = 213, - SKILL_FAILURE = 214, - IS_ATTACK_STANCE = 216, - SET_OBJECT_RENDER = 217, - REQUEST_MAPPED_SKILLS = 218, - UI_SELECT_MAPPED_SKILL = 219, - GET_INVENTORY_ITEM_IN_SLOT = 220, - GET_FIRST_INVENTORY_ITEM_BY_LOT = 221, - GET_SMALLEST_INVENTORY_STACK_BY_LOT = 222, - MOVE_ITEM_IN_INVENTORY = 224, - ADD_ITEM_TO_INVENTORY_CLIENT_SYNC = 227, - GET_EQUIPPED_ITEMS = 229, - REMOVE_ITEM_FROM_INVENTORY = 230, - EQUIP_INVENTORY = 231, - UN_EQUIP_INVENTORY = 233, - EQUIP_ITEM = 234, - UN_EQUIP_ITEM = 235, - IS_ITEM_RESPOND = 236, - IS_ITEM_EQUIPPED = 237, - ATTACH_ITEM = 238, - DETACH_ITEM = 239, - GET_NODE = 240, - GET_LOT = 241, - IS_ITEM_EQUIPPABLE = 242, - GET_CURRENT_ANIMATION = 243, - GET_INV_ITEM_COUNT = 244, - POST_LOAD_EQUIP = 245, - SET_PHYSICS_ACTIVE_STATE = 246, - GET_CURRENT_SKILL_TAC_ARC = 247, - OFFER_MISSION = 248, - RESPOND_TO_MISSION = 249, - GET_MISSION_STATE = 250, - GET_MISSION_COMPLETE_TIMESTAMP = 251, - NOTIFY_MISSION = 254, - NOTIFY_MISSION_TASK = 255, - ARE_GFX_LOADED = 257, - ADDED_TO_WORLD = 258, - REMOVE_EXTRA_GFX_FROM_PIPE = 259, - HIDE_EQUIPED_WEAPON = 260, - UN_HIDE_EQUIPED_WEAPON = 261, - GET_ITEM_SLOT = 262, - IS_CHARACTER = 263, - SET_IMMUNITY = 264, - TOGGLE_TOOLTIPS = 266, - GET_TOOLTIPS_DISABLED = 267, - GET_BOUNDING_INFO = 268, - OVERRIDE_BOUNDING_RADIUS = 269, - GET_OFFSCREEN = 270, - USE_STATE_MACHINE = 271, - ADD_STATE = 272, - ADD_SUB_STATE = 273, - SET_STATE = 274, - SET_SUB_STATE = 275, - ADD_MESSAGE = 276, - RELOAD_SCRIPT = 277, - RELOAD_ALL_SCRIPTS = 278, - FRIEND_INVITE_MSG = 279, - ADD_FRIEND_REPOSNSE_MSG = 280, - REMOVE_FRIEND_RESPONSE_MSG = 281, - ADD_FRIEND_FROM_UI_MSG = 282, - GET_CACHED_FRIENDS_LIST_MSG = 283, - REQUEST_NEW_FRIENDS_LIST_MSG = 284, - REPOPULATE_FRIENDS_LIST_MSG = 285, - ADD_IGNORE_REPONSE_MSG = 286, - REMOVE_IGNORE_RESPONSE_MSG = 287, - ADD_IGNORE_FROM_UI_MSG = 288, - GET_CACHED_IGNORE_LIST_MSG = 289, - REQUEST_NEW_IGNORE_LIST_MSG = 290, - REMOVE_FRIEND_BY_NAME = 291, - REMOVE_IGNORE_BY_NAME = 292, - IS_PLAYER_IN_IGNORE_LIST_MSG = 293, - REPOPULATE_IGNORE_LIST_MSG = 294, - GET_INVENTORY_LIST = 295, - UPDATE_FRIEND_MSG = 296, - UPDATE_FRIEND_NAME_MSG = 297, - UPDATE_IGNORE_NAME_MSG = 298, - DEPARTED = 299, - ARRIVED = 300, - TEMPLATE_CHANGE_WAYPOINTS = 301, - CANCELLED = 302, - FLUSH_CACHED_GRAPHICS = 303, - FOLLOW_TARGET = 304, - TIMER_DONE = 305, - TIMER_CANCELLED = 306, - SET_TETHER_POINT = 307, - GET_TETHER_POINT = 308, - LEFT_TETHER_RADIUS = 309, - GET_SCRIPT_VARS_PTR = 310, - FACE_TARGET = 311, - ROTATE_BY_DEGREES = 312, - STRING_RENDERED = 313, - RESET_PRIMARY_ANIMATION = 314, - FACE_PLAY_STREAM = 315, - TORSO_PLAY_STREAM = 316, - CAN_PICKUP = 317, - GET_INVENTORY_SIZE = 318, - GET_INVENTORY_COUNT = 319, - GET_OBJECTS_IN_GROUP = 320, - HIDE_ITEM = 321, - IS_OBJECT_IN_FOV = 322, - GET_TYPE = 323, - TEAM_INVITE_MSG = 324, - TEAM_GET_SIZE = 325, - TEAM_REQUEST_SET_LOOT = 326, - TEAM_REMOVE_PLAYER_MSG = 327, - TEAM_UPDATE_PLAYER_NAME_MSG = 328, - SET_UPDATABLE = 329, - REQUEST_TEAM_UI_UPDATE = 330, - SET_COLLISION_GROUP = 331, - GET_COLLISION_GROUP = 332, - GET_ORIGINAL_COLLISION_GROUP = 333, - SET_COLLISION_GROUP_TO_ORIGINAL = 334, - GET_OBJECT_RADIUS = 335, - REBUILD_NOTIFY_STATE = 336, - GET_PLAYER_INTERACTION = 337, - SET_PLAYER_INTERACTION = 338, - FORCE_PLAYER_TO_INTERACT = 339, - GET_SELECTED_POTENTIAL_INTERACTION = 340, - SET_SELECTED_POTENTIAL_INTERACTION = 341, - GET_INTERACTION_DISTANCE = 342, - SET_INTERACTION_DISTANCE = 343, - CALCULATE_INTERACTION_DISTANCE = 344, - INTERACTION_ATTEMPT_FROM_OUT_OF_RANGE = 345, - SET_PICKING_TARGET = 346, - CLIENT_UNUSE = 347, - BEGIN_PET_INTERACTION = 348, - WANTS_INTERACTION_ICON = 349, - PROPERTY_EDIT_ICON_INTERACTION = 350, - PROPERTY_MODEL_INTERACTION = 351, - GET_INTERACTION_DETAILS = 352, - GET_DISABLED_INTERACTION_TYPES = 353, - GET_INTERACTION_INFO = 354, - INTERACTION_GAME_STATE_CHANGE = 355, - TOGGLE_INTERACTION_UPDATES = 356, - TERMINATE_INTERACTION = 357, - SERVER_TERMINATE_INTERACTION = 358, - GET_PLAYERS_TARGET_FOR_SELECTION = 359, - PROCESS_INTERACTION_UNDER_CURSOR = 360, - HANDLE_INTERACT_ACTION = 361, - ATTEMPT_INTERACTION = 362, - HANDLE_INTERACTION_CAMERA = 363, - REQUEST_USE = 364, - CLIENT_USE = 366, - GET_PLAYER_MULTI_INTERACTION = 367, - GET_MULTI_INTERACTION_STATE = 368, - VENDOR_OPEN_WINDOW = 369, - VENDOR_CLOSE_WINDOW = 370, - EMOTE_PLAYED = 371, - EMOTE_RECEIVED = 372, - BUY_FROM_VENDOR = 373, - SELL_TO_VENDOR = 374, - ADD_DONATION_ITEM = 375, - REMOVE_DONATION_ITEM = 376, - CONFIRM_DONATION_ON_PLAYER = 378, - CANCEL_DONATION_ON_PLAYER = 379, - TEAM_GET_LEADER = 380, - TEAM_GET_ON_WORLD_MEMBERS = 381, - TEAM_GET_ALL_MEMBERS = 382, - TEAM_SET_OFF_WORLD_FLAG = 383, - SET_TRANSPARENCY = 385, - GET_PREFERS_FADE = 386, - PROJECTILE_IMPACT = 387, - SET_PROJECTILE_PARAMS = 388, - SET_INVENTORY_SIZE = 389, - ACKNOWLEDGE_POSSESSION = 391, - SET_POSSESSED_OBJECT = 392, - CHANGE_POSSESSOR = 393, - GET_POSSESSION_TYPE = 395, - GET_POSSESSED_OBJECT = 396, - GET_POSSESSOR = 397, - IS_POSSESSED = 398, - ENABLE_ACTIVITY = 399, - SET_SHOOTING_GALLERY_PARAMS = 400, - OPEN_ACTIVITY_START_DIALOG = 401, - REQUEST_ACTIVITY_START_STOP = 402, - REQUEST_ACTIVITY_ENTER = 403, - REQUEST_ACTIVITY_EXIT = 404, - ACTIVITY_ENTER = 405, - ACTIVITY_EXIT = 406, - ACTIVITY_START = 407, - ACTIVITY_STOP = 408, - SHOOTING_GALLERY_CLIENT_AIM_UPDATE = 409, - ROTATE_TO_POINT = 410, - SHOOTING_GALLERY_FIRE = 411, - CALCULATE_FIRING_PARAMETERS = 412, - GET_MUZZLE_OFFSET = 413, - GET_ACTIVITY_POINTS = 414, - TEAM_IS_ON_WORLD_MEMBER = 415, - REQUEST_VENDOR_STATUS_UPDATE = 416, - VENDOR_STATUS_UPDATE = 417, - CANCEL_MISSION = 418, - RESET_MISSIONS = 419, - RENDER_COMPONENT_READY = 420, - SEND_MINIFIG_DECALS = 421, - PHYSICS_COMPONENT_READY = 422, - ENTER_STANDBY_MODE = 423, - LEAVE_STANDBY_MODE = 424, - NOTIFY_CLIENT_SHOOTING_GALLERY_SCORE = 425, - REQUEST_CONSUME_ITEM = 426, - CONSUME_CLIENT_ITEM = 427, - CLIENT_ITEM_CONSUMED = 428, - QUERY_STANDBY_MODE = 429, - GET_NI_BOUND = 430, - MISSION_FAILURE = 431, - GET_ANIMATION_TIME = 432, - GET_CURRENT_ACTIVITY = 434, - SET_EYEBROWS = 435, - GET_EYEBROWS = 436, - SET_EYES = 437, - GET_EYES = 438, - SET_MOUTH = 439, - GET_MOUTH = 440, - IS_OBJECT_SMASHABLE = 441, - SMASHABLE_STATE_CHANGED = 443, - USE_STATE_LOGGER = 444, - ROTATE_SUB_NODE = 445, - GET_SUB_NODE_POSITION = 446, - GET_SUB_NODE = 447, - UPDATE_SHOOTING_GALLERY_ROTATION = 448, - RENDER_FLOATING_TEXT = 449, - REQUEST2_D_TEXT_ELEMENT = 450, - UPDATE2_D_TEXT_ELEMENT = 451, - REMOVE2_D_TEXT_ELEMENT = 452, - SET_COLOR = 453, - GET_COLOR = 454, - HKX_CHARACTER_LOADED = 455, - ACTIVATE_PHYSICS = 457, - SET_ICON_ABOVE_HEAD = 458, - ADD_ICON_COMPOSITE = 459, - CLEAR_ICON_COMPOSITES = 460, - ICON_NIF_LOADED = 461, - ICON_KFM_LOADED = 462, - GET_OVERHEAD_ICON_PROPERTIES_FROM_PARENT = 463, - BOUNCE_PLAYER = 464, - SET_USER_CTRL_COMP_PAUSE = 466, - HAS_COLLIDED = 467, - GET_TOOLTIP_FLAG = 468, - SET_TOOLTIP_FLAG = 469, - GET_FLAG = 470, - SET_FLAG = 471, - NOTIFY_CLIENT_FLAG_CHANGE = 472, - CURSOR_ON = 473, - CURSOR_OFF = 474, - HELP = 475, - VENDOR_TRANSACTION_RESULT = 476, - PERFORM_SPECIAL_DEATH = 477, - GET_SHADER_ID = 478, - GET_RENDER_ENVIRONMENT = 479, - FINISHED_LOADING_SCENE = 480, - GET_SKILL_INFO = 481, - ACTIVITY_CANCEL = 482, - MISSION_USES_OBJECT = 483, - GET_POSITIONAL_ID = 484, - SET_COLLECTIBLE_STATUS = 485, - HAS_BEEN_COLLECTED = 486, - HAS_BEEN_COLLECTED_BY_CLIENT = 487, - GET_POS_UPDATE_STATS = 488, - GET_NUM_VIEWERS_SCOPING_THIS = 489, - GET_ACTIVITY_USER = 490, - GET_ALL_ACTIVITY_USERS = 491, - GET_MISSION_FOR_PLAYER = 492, - SET_FACTION = 493, - SET_PLATFORM_IDLE_STATE = 494, - DISPLAY_CHAT_BUBBLE = 495, - REQUEST_CHAT_BUBBLE_ELEMENT = 496, - GET_MISSION_DATA = 497, - SPAWN_PET = 498, - DESPAWN_PET = 499, - SET_LOCAL_SPACE_STATE = 500, - GET_LOCAL_SPACE_STATE = 501, - SET_POSITION_TO_LOCAL_POSITION = 502, - ALLOW_LOCAL_SPACE_UPDATE = 503, - TOGGLE_FREE_CAM_MODE = 504, - PLAYER_LOADED = 505, - PLAYER_ADDED_TO_WORLD_LOCAL = 506, - OBJECT_LOADED = 507, - GET_PLAYER_READY = 508, - PLAYER_READY = 509, - SET_SMASHABLE_PARAMS = 510, - IS_LOOTABLE_CHEST = 511, - LOOT_OPEN_WINDOW = 512, - LOOT_SELECTION_UPDATE = 513, - TAKE_LOOT_CHEST_ITEM = 514, - REQUEST_LINKED_MISSION = 515, - TRANSFER_TO_ZONE = 516, - TRANSFER_TO_ZONE_CHECKED_IM = 517, - SECURED_TRANSFER_TO_ZONE = 518, - INVALID_ZONE_TRANSFER_LIST = 519, - MISSION_DIALOGUE_OK = 520, - GET_OBJECT_IN_SCOPE = 521, - SET_LAUNCHED_STATE = 522, - P_CREATE_EFFECT_FINISHED = 523, - SMASHED_OBJECT = 524, - CHECK_SMASHCHAIN_OVERRIDE = 525, - DISPLAY_REBUILD_ACTIVATOR = 526, - TRANSFER_TO_LAST_NON_INSTANCE = 527, - SET_ACTIVE_LOCAL_CHARACTER_ID = 528, - DISPLAY_MESSAGE_BOX = 529, - MESSAGE_BOX_RESPOND = 530, - CHOICE_BOX_RESPOND = 531, - SERVER_SET_USER_CTRL_COMP_PAUSE = 532, - SET_CHARACTER_AUTO_RUN = 533, - FOLLOW_WAYPOINTS = 534, - SWAP_DECAL_AND_COLOR = 535, - CONTINUE_WAYPOINTS = 536, - SMASH = 537, - UN_SMASH = 538, - GET_IS_SMASHED = 539, - GET_UP_VECTOR = 540, - SET_GRAVITY_SCALE = 541, - SET_GRAVITY_SCALE_FOR_RIGID_BODY = 542, - STOP_MOVING = 543, - SET_PATHING_SPEED = 544, - SET_SHIELDED = 545, - SET_SHOOTING_GALLERY_RETICULE_EFFECT = 546, - PLACE_MODEL_RESPONSE = 547, - SET_DODGE_INFO = 548, - GET_DODGE_INFO = 549, - SET_SKILL_ATTACK_SPEED = 550, - GET_SKILL_COOLDOWN_GROUP = 551, - GET_INITIAL_SKILL_COOLDOWN = 552, - GET_SKILL_COOLDOWN_REMAINING = 553, - GET_GLOBAL_COOLDOWN = 554, - SET_GLOBAL_COOLDOWN = 555, - RESET_GLOBAL_COOLDOWN = 556, - FINDINVENTORY_ITEM = 558, - PATH_STUCK = 559, - SET_CURRENT_PATH = 560, - SET_JET_PACK_MODE = 561, - SET_JET_PACK_TIME = 562, - PET_FOLLOW_OWNER = 563, - PLAYER_DIED = 564, - REGISTER_PET_ID = 565, - REGISTER_PET_DBID = 566, - GET_PET_ID = 567, - SHOW_ACTIVITY_COUNTDOWN = 568, - DISPLAY_TOOLTIP = 569, - SET_PHANTOM_BASE = 570, - GET_MOTION_STATE = 571, - GET_MOTION_CONFIG = 572, - SET_ACTIVE_PROJECTILE_SKILL = 573, - INITIALIZE_MISSION_VISUALS = 574, - GET_MISSIONS = 575, - START_ACTIVITY_TIME = 576, - ADD_ACTIVITY_TIME = 577, - GUILD_GET_SIZE = 578, - GUILD_CAN_WE_INVITE = 579, - GUILD_CAN_WE_KICK = 580, - SET_CHAR_GUILD_INFO = 581, - GET_CHAR_GUILD_INFO = 582, - GET_CHAR_IS_IN_GUILD = 583, - RE_RENDER_NAME_BILLBOARD = 584, - IS_IN_LOCAL_CHAR_PROXIMITY = 585, - GUILD_SET_STATUS = 586, - GUILD_ADD_PLAYER = 587, - GUILD_REMOVE_PLAYER = 588, - GUILD_UPDATE_PLAYER_NAME = 589, - GUILD_SET_PLAYER_RANK = 590, - GUILD_SET_ONLINE_STATUS = 591, - GUILD_INVITE = 592, - REQUEST_GUILD_DATA = 593, - POPULATE_GUILD_DATA = 594, - GET_CACHED_GUILD_DATA = 595, - GUILD_RENDER_NAME = 596, - GET_IS_SUPPORTED = 600, - CHARACTER_SUPPORT_CHANGED = 601, - ACTIVITY_PAUSE = 602, - USE_NON_EQUIPMENT_ITEM = 603, - REQUEST_USE_ITEM_ON = 604, - REQUEST_USE_ITEM_ON_TARGET = 605, - USE_ITEM_ON = 606, - USE_ITEM_RESULT = 607, - GET_PARENT_OBJ = 608, - SET_PARENT_OBJ = 609, - GET_UPDATES_WITH_PARENT_POSITION = 610, - PARENT_REMOVED = 611, - PARENT_LEFT_SCOPE = 612, - PARENT_ENTERED_SCOPE = 613, - CHILD_LOADED = 614, - CHILD_REMOVED = 615, - CHILD_DETACHED = 616, - CHILD_ENTERED_SCOPE = 617, - CHILD_LEFT_SCOPE = 618, - GET_CHILD_OBJECTS = 619, - ZONE_TRANSFER_FINISHED = 621, - CHAT_CONNECTION_UPDATE = 622, - PLATFORM_AT_LAST_WAYPOINT = 623, - LOOT_TAKE_ALL = 624, - GET_EQUIPPED_ITEM_INFO = 625, - DISPLAY_GUILD_CREATE_BOX = 626, - GET_EDITOR_LEVEL = 627, - GET_ACCOUNT_ID = 628, - GET_LAST_LOGOUT = 629, - GET_LAST_PROP_MOD_DISPLAY_TIME = 630, - SET_LAST_PROP_MOD_DISPLAY_TIME = 631, - SHOW_ACTIVITY_SUMMARY = 632, - CAN_RECEIVE_ALL_REWARDS = 633, - GET_ACTIVITY_REWARD = 634, - LOOT_CLOSE_WINDOW = 635, - GET_BLUEPRINT_ID = 636, - NOTIFY_BLUEPRINT_UPDATE = 637, - FETCH_MODEL_METADATA_REQUEST = 638, - FETCH_MODEL_METADATA_RESPONSE = 639, - COMMAND_PET = 640, - PET_RESPONSE = 641, - GET_ICON_ABOVE_HEAD_STATE = 642, - GET_ICON_ABOVE_HEAD = 643, - ICON_FINISHED_LOADING = 644, - ADD_PET_STATE = 645, - REMOVE_PET_STATE = 646, - SET_PET_STATE = 647, - REQUEST_ACTIVITY_SUMMARY_LEADERBOARD_DATA = 648, - SEND_ACTIVITY_SUMMARY_LEADERBOARD_DATA = 649, - SET_ON_TEAM = 650, - GET_PET_HAS_STATE = 651, - FIND_PROPERTY = 652, - SET_PET_MOVEMENT_STATE = 653, - GET_ITEM_TYPE = 654, - GET_ITEM_INFO_KEY = 655, - NOTIFY_OBJECT = 656, - IS_PET_WILD = 657, - CLIENT_NOTIFY_PET = 659, - NOTIFY_PET = 660, - NOTIFY_PET_TAMING_MINIGAME = 661, - START_SERVER_PET_MINIGAME_TIMER = 662, - CLIENT_EXIT_TAMING_MINIGAME = 663, - GET_BUILDMODE_ACTIVE = 664, - GET_PET_TAMING_MINIGAME_ACTIVE = 665, - PET_TAMING_OBJECT_PICKED = 666, - PET_TAMING_MINIGAME_RESULT = 667, - PET_TAMING_TRY_BUILD_RESULT = 668, - SET_PET_TAMING_MODEL = 669, - GET_PET_TAMING_MODEL = 670, - PET_ON_SWITCH = 671, - PET_OFF_SWITCH = 672, - NOTIFY_TAMING_BUILD_SUCCESS = 673, - NOTIFY_TAMING_MODEL_LOADED_ON_SERVER = 674, - NOTIFY_TAMING_PUZZLE_SELECTED = 675, - GET_INSTRUCTION_COUNT = 676, - GET_IS_NPC = 677, - ACTIVATE_BUBBLE_BUFF = 678, - DECTIVATE_BUBBLE_BUFF = 679, // thanks netdevil - EXHIBIT_VOTE = 680, - ADD_PET_TO_PLAYER = 681, - REMOVE_PET_FROM_PLAYER = 682, - REQUEST_SET_PET_NAME = 683, - SET_PET_NAME = 684, - PET_NAME_CHANGED = 686, - GET_PET_AT_INDEX = 687, - GET_LOT_FOR_PET_BY_DBID = 688, - GET_NAME_FOR_PET_BY_DBID = 689, - GET_ACTIVE_PET_OBJ_ID = 690, - GET_ACTIVE_PET_INVENTORY_OBJ_ID = 691, - SHOW_PET_ACTION_BUTTON = 692, - SET_EMOTE_LOCK_STATE = 693, - GET_EMOTE_LOCK_STATE = 694, - LEAVE_TEAM_MSG = 695, - TEAM_KICK_PLAYER_MSG = 697, - TEAM_SET_LEADER_SEND_MSG = 698, - USE_ITEM_ON_CLIENT = 699, - DOES_FORWARD_TARGET_CLICKING = 700, - CHECK_USE_REQUIREMENTS = 701, - USE_REQUIREMENTS_RESPONSE = 702, - USE_ITEM_REQUIREMENTS_RESPONSE = 703, - PET_ADDED_TO_WORLD = 704, - BOUNCER_TRIGGERED = 705, - EXHIBIT_QUERY_CURRENT_MODEL = 706, - EXHIBIT_QUERY_CURRENT_MODEL_RESPONSE = 707, - EXHIBIT_ATTEMPT_VOTE = 708, - EXHIBIT_VOTE_RESPONSE = 709, - EHIBIT_REQUERYMODELS = 710, - IS_SKILL_ACTIVE = 711, - TOGGLE_ACTIVE_SKILL = 712, - PLAY_EMBEDDED_EFFECT_ON_ALL_CLIENTS_NEAR_OBJECT = 713, - EXHIBIT_GET_INFO = 714, - GET_PROPERTY_DATA = 715, - DOWNLOAD_PROPERTY_DATA = 716, - QUERY_PROPERTY_DATA = 717, - MODEL_MODERATION_ACTION = 719, - NOTIFY_SERVER_UGC_REVIEW_READY = 720, - NOTIFY_CLIENT_UGC_REVIEW_READY = 721, - OLD_USE_ITEM_ON = 722, - FIND_PROPERTY_FOR_SALE_RESPONSE = 723, - PROPERTY_EDITOR_BEGIN = 724, - PROPERTY_EDITOR_END = 725, - PROPERTY_EDITOR_SET_MODE = 726, - TOGGLE_TRIGGER = 727, - FIRE_EVENT = 728, - IS_MINIFIG_IN_A_BUBBLE = 729, - GET_ITEM_INFO = 730, - MISSION_NEEDS_LOT = 731, - STOP_PATHING = 732, - START_PATHING = 733, - ACTIVATE_BUBBLE_BUFF_FROM_SERVER = 734, - DEACTIVATE_BUBBLE_BUFF_FROM_SERVER = 735, - HAS_SKILL = 736, - NOTIFY_CLIENT_ZONE_OBJECT = 737, - MOVE_OBJECT = 738, - ROTATE_OBJECT = 739, - GET_SPAWNER_CONFIG_DATA = 740, - UPDATE_SPAWNER_CONFIG_DATA = 741, - TURN_AROUND = 743, - GO_FORWARD = 744, - GO_BACKWARD = 745, - UPDATE_REPUTATION = 746, - GET_REPUTATION = 747, - ADD_REPUTATION = 748, - UPDATE_PROPERTY_DATA = 749, - PROPERTY_RENTAL_RESPONSE = 750, - EXHIBIT_PLACEMENT_RESPONSE = 751, - SQUIRT_WITH_WATERGUN = 752, - GET_VOTES_LEFT = 753, - ADJUST_VOTES_LEFT = 754, - EVADE_TARGET = 755, - STOPPED_EVADING = 756, - GET_PET_HAS_ABILITY = 757, - REQUEST_PLATFORM_RESYNC = 760, - PLATFORM_RESYNC = 761, - PLAY_CINEMATIC = 762, - END_CINEMATIC = 763, - CINEMATIC_UPDATE = 764, - ATTACH_CAMERA_TO_RAIL = 765, - DETACH_CAMERA_FROM_RAIL = 766, - TOGGLE_GHOST_REFERENCE_OVERRIDE = 767, - SET_GHOST_REFERENCE_POSITION = 768, - GET_GHOST_REFERENCE_POSITION = 769, - FIRE_EVENT_SERVER_SIDE = 770, - GET_PET_ABILITY_OBJECT = 771, - TEAM_INVITE_MSG_FROM_UI = 772, - ADD_CAMERA_EFFECT = 773, - REMOVE_CAMERA_EFFECT = 774, - REMOVE_ALL_CAMERA_EFFECTS = 775, - GET_MY_PROPERTIES_IN_THIS_ZONE = 776, - IS_MODEL_WITHIN_PROPERTY_BOUNDS = 777, - PROPERTY_DATA_RESULTS = 778, - ON_UN_SERIALIZE = 779, - SCRIPT_NETWORK_VAR_UPDATE = 781, - ADD_OBJECT_TO_GROUP = 783, - REMOVE_OBJECT_FROM_GROUP = 784, - IS_OBJECT_STATIC = 785, - GET_HAS_MISSION = 786, - GET_MISSION_TARGET_LOT = 787, - GET_MISSION_OFFERER_LOT = 788, - USE_UNIQUE_ITEM = 789, - GET_IS_PET = 790, - DELETE_PROPERTY = 791, - CREATEMODEL_FROM_CLIENT = 792, - UPDATE_MODEL_FROM_CLIENT = 793, - DELETE_MODEL_FROM_CLIENT = 794, - SHOW_PROPERTY_BOUNDS = 795, - SET_PROPERTY_I_DS = 796, - PLAY_FACE_DECAL_ANIMATION = 797, - ADD_ACTIVITY_USER = 798, - REMOVE_ACTIVITY_USER = 799, - GET_NUM_ACTIVITY_USERS = 800, - ACTIVITY_USER_EXISTS = 801, - DO_COMPLETE_ACTIVITY_EVENTS = 805, - SET_ACTIVITY_PARAMS = 806, - SET_ACTIVITY_USER_DATA = 807, - GET_ACTIVITY_USER_DATA = 808, - DO_CALCULATE_ACTIVITY_RATING = 809, - ND_AUDIO_POST_SETUP = 812, - ND_AUDIO_PRE_SHUTDOWN = 813, - SET_ND_AUDION_LISTENER_STANCE = 814, - SET_UP_ND_AUDIO_EMIITTER = 815, - SHUT_DOWN_ND_AUDIO_EMITTER = 816, - METAIFY_ND_AUDIO_EMITTER = 817, - UN_METAIFY_ND_AUDIO_EMITTER = 818, - METAIFY_ND_AUDIO_EMITTERS = 819, - UN_METAIFY_ND_AUDIO_EMITTERS = 820, - PLAY_ND_AUDIO_EMITTER = 821, - STOP_ND_AUDIO_EMITTER = 822, - STOP_ND_AUDIO_EMITTER_ALL = 823, - SET_ND_AUDIO_EMITTER_PARAMETER = 824, - SET_ND_AUDIO_EMITTERS_PARAMETER = 825, - ND_AUDIO_CALLBACK = 826, - ACTIVATE_ND_AUDIO_MUSIC_CUE = 827, - DEACTIVATE_ND_AUDIO_MUSIC_CUE = 828, - FLASH_ND_AUDIO_MUSIC_CUE = 829, - SET_ND_AUDIO_MUSIC_PARAMETER = 830, - PLAY2_D_AMBIENT_SOUND = 831, - STOP2_D_AMBIENT_SOUND = 832, - PLAY3_D_AMBIENT_SOUND = 834, - STOP3_D_AMBIENT_SOUND = 835, - ACTIVATE_ND_AUDIO_MIXER_PROGRAM = 836, - DEACTIVATE_ND_AUDIO_MIXER_PROGRAM = 837, - UPDATE_ACTIVITY_LEADERBOARD = 838, - ACTIVITY_LEADERBOARD_UPDATED = 839, - ENTER_PROPERTY1 = 840, - ENTER_PROPERTY2 = 841, - PROPERTY_ENTRANCE_SYNC = 842, - SEND_PROPERTY_POPULATION_TO_CLIENT = 843, - SEN_PROPERTY_PLAQUE_VIS_UPDATE = 844, - PROPERTY_SELECT_QUERY = 845, - CREATE_POSITION_STRING = 848, - GET_PARALLEL_POSITION = 849, - PARSE_CHAT_MESSAGE = 850, - SET_MISSION_TYPE_STATE = 851, - GET_LOCATIONS_VISITED = 852, - GET_MISSION_TYPE_STATES = 853, - GET_TIME_PLAYED = 854, - SET_MISSION_VIEWED = 855, - SLASH_COMMAND_TEXT_FEEDBACK = 856, - HANDLE_SLASH_COMMAND_KORE_DEBUGGER = 857, - BROADCAST_TEXT_TO_CHATBOX = 858, - OPEN_PROPERTY_MANAGEMENT = 860, - OPEN_PROPERTY_VENDOR = 861, - VOTE_ON_PROPERTY = 862, - UPDATE_PROPERTY_OR_MODEL_FOR_FILTER_CHECK = 863, - NOTIFY_PLAYER_OF_PROPERTY_SUBMISSION = 865, - NOTIFY_PLAYER_OF_MODEL_SUBMISSION = 866, - PHYSICS_SYSTEM_LOADED = 867, - CLIENT_TRADE_REQUEST = 868, + GET_POSITION = 0, + GET_ROTATION = 1, + GET_LINEAR_VELOCITY = 2, + GET_ANGULAR_VELOCITY = 3, + GET_FORWARD_VELOCITY = 4, + GET_PLAYER_FORWARD = 5, + GET_FORWARD_VECTOR = 6, + SET_POSITION = 7, + SET_LOCAL_POSITION = 8, + SET_ROTATION = 9, + SET_LINEAR_VELOCITY = 10, + MODIFY_LINEAR_VELOCITY = 11, + SET_ANGULAR_VELOCITY = 12, + MODIFY_ANGULAR_VELOCITY = 13, + DEFLECT = 14, + SEND_POSITION_UPDATE = 15, + SET_OBJECT_SCALE = 16, + GET_OBJECT_SCALE = 17, + TIMED_SCALE_FINISHED = 18, + TELEPORT = 19, + TOGGLE_PLAYER_FWD_TO_CAMERA = 20, + LOCK_PLAYER_ROT_TO_CAMERA = 21, + UNLOCK_PLAYER_ROT_FROM_CAMERA = 22, + TOGGLE_PLAYER_ROT_LOCK_TO_MOUSE = 23, + LOCK_PLAYER_ROT_TO_MOUSE = 24, + UNLOCK_PLAYER_ROT_FROM_MOUSE = 25, + SET_PLAYER_CONTROL_SCHEME = 26, + GET_PLAYER_CONTROL_SCHEME = 27, + RESET_PLAYER_CONTROL_SCHEME = 28, + PLAYER_TO_PREVIOUS_CONTROL_SCHEME = 29, + DROP_CLIENT_LOOT = 30, + GET_SPEED = 34, + GET_ROT_SPEED = 35, + IS_DEAD = 36, + DIE = 37, + REQUEST_DIE = 38, + ADD_OBJECT = 39, + PLAY_EMOTE = 41, + PRELOAD_ANIMATION = 42, + PLAY_ANIMATION = 43, + ANIMATION_COMPLETE = 44, + ENABLE_HIGHLIGHT = 45, + DISABLE_HIGHLIGHT = 46, + GET_ANIMATION_NAMES = 47, + CONTROL_BEHAVIORS = 48, + BLEND_PRIMARY_ANIMATION = 52, + SET_OFFSCREEN_ANIMATION = 53, + GET_MOVEMENT_INPUT_VALUES = 54, + SWAP_TEXTURE = 55, + SWAP_COLOR = 56, + ATTACH_HAIR = 57, + GET_ENTITY_STRUCT = 58, + SET_ENTITY_STRUCT = 59, + SET_ATTR = 60, + GET_ATTR = 61, + ON_HIT = 62, + HIT_OR_HEAL_RESULT = 63, + SHOW_ATTACK = 64, + GO_TO = 65, + GET_CONFIG_DATA = 66, + SET_CONFIG_DATA = 68, + GET_INVENTORY_EXTRA_INFO = 69, + GET_DISPLAY_NAME = 70, + GET_NAME = 71, + SET_NAME = 72, + IS_NAME_LOCALIZED = 73, + GET_HAIR_COLOR = 74, + SET_HAIR_COLOR = 75, + GET_HAIR_STYLE = 76, + SET_HAIR_STYLE = 77, + GET_HEAD = 78, + SET_HEAD = 79, + GET_TORSO = 80, + SET_TORSO = 81, + GET_LEGS = 82, + SET_LEGS = 83, + SET_PROXIMITY_RADIUS = 84, + PROXIMITY_UPDATE = 85, + GET_PROXIMITY_OBJECTS = 86, + UNSET_PROXIMITY_RADIUS = 87, + CLEAR_PROXIMITY_RADIUS = 88, + GET_PROXIMITY_DATA = 89, + SET_PROXIMITY_RADIUS_ICON = 90, + TOGGLE_TAC_ARC = 93, + CAST_SKILL = 95, + CAST_LOCAL_SKILL = 96, + ECHO_LOCAL_SKILL = 97, + QUEUE_AI_SKILL = 98, + ADD_THREAT_RATING = 99, + GET_THREAT_RATING = 100, + CLEAR_THREAT_LIST = 103, + GET_TIME_FOR_NPC_SKILL = 111, + ENEMY_HEAL_NOTIFICATION = 112, + RESET_SCRIPTED_AI_STATE = 113, + ENABLE_COMBAT_AI_COMPONENT = 114, + COMBAT_AI_FORCE_TETHER = 115, + SUSPEND_MOVEMENT_AI = 116, + NOTIFY_SCRIPT_VARS_INITIALIZED = 117, + ECHO_START_SKILL = 118, + START_SKILL = 119, + CASTER_DEAD = 120, + VERIFY_ACK = 121, + ADD_PENDING_VERIFY = 122, + MAP_SKILL = 123, + SELECT_SKILL = 124, + CAST_ACTIVE_SKILL = 125, + MODIFY_SKILL_COOLDOWN = 126, + ADD_SKILL = 127, + REMOVE_SKILL = 128, + LOG = 129, + LOG_CHAT = 130, + SET_MAX_CURRENCY = 131, + GET_MAX_CURRENCY = 132, + SET_CURRENCY = 133, + GET_CURRENCY = 134, + ADD_PENDING_CURRENCY = 136, + PICKUP_CURRENCY = 137, + SERVER_DELETE_LOOT_ITEM = 138, + PICKUP_ITEM = 139, + TEAM_PICKUP_ITEM = 140, + CLIENT_DELETE_LOOT_ITEM = 141, + CLIENT_SET_LOOT_ITEM_FFA = 143, + COLLISION_PHANTOM = 144, + OFF_COLLISION_PHANTOM = 145, + COLLISION_PROXIMITY = 146, + OFF_COLLISION_PROXIMITY = 147, + COLLISION = 148, + OFF_COLLISION = 149, + GET_SKILLS = 150, + CLEAR_FX_SINGLE_EFFECT = 152, + GET_FX_EXIST_EFFECT = 153, + PLAY_FX_EFFECT = 154, + STOP_FX_EFFECT = 155, + CLEAR_FX_ALL_CREATE_EFFECTS = 156, + UPDATE_FX_ALL_CREATE_EFFECTS = 157, + REQUEST_RESURRECT = 159, + RESURRECT = 160, + UPDATE_FROM_GHOST = 162, + FETCH_GHOST = 163, + KFM_LOADED = 164, + NIF_LOADED = 165, + HKX_LOADED = 166, + MOVE_TO_DELETE_QUEUE = 167, + RESTORE_FROM_DELETE_QUEUE = 168, + IS_ENEMY = 169, + GET_FACTION = 170, + SET_IMAGINATION = 171, + GET_IMAGINATION = 172, + SET_MAX_IMAGINATION = 173, + GET_MAX_IMAGINATION = 174, + MODIFY_IMAGINATION = 175, + MODIFY_MAX_IMAGINATION = 176, + SET_HEALTH = 177, + GET_HEALTH = 178, + SET_MAX_HEALTH = 179, + GET_MAX_HEALTH = 180, + MODIFY_HEALTH = 181, + MODIFY_MAX_HEALTH = 182, + SET_ARMOR = 183, + GET_ARMOR = 184, + SET_MAX_ARMOR = 185, + GET_MAX_ARMOR = 186, + MODIFY_ARMOR = 187, + MODIFY_MAX_ARMOR = 188, + POP_HEALTH_STATE = 190, + PUSH_EQUIPPED_ITEMS_STATE = 191, + POP_EQUIPPED_ITEMS_STATE = 192, + SET_GM_LEVEL = 193, + GET_GM_LEVEL = 194, + ADD_STATUS_EFFECT = 196, + REMOVE_STATUS_EFFECT = 197, + SET_STUNNED = 198, + GET_STUNNED = 199, + SET_STUN_IMMUNITY = 200, + GET_STUN_IMMUNITY = 201, + KNOCKBACK = 202, + SET_VISIBLE = 203, + GET_VISIBLE = 204, + REPORT_ITEM_INFO = 205, + GET_REBUILD_STATE = 207, + REBUILD_CANCEL = 209, + REBUILD_START = 211, + ENABLE_REBUILD = 213, + SKILL_FAILURE = 214, + IS_ATTACK_STANCE = 216, + SET_OBJECT_RENDER = 217, + REQUEST_MAPPED_SKILLS = 218, + UI_SELECT_MAPPED_SKILL = 219, + GET_INVENTORY_ITEM_IN_SLOT = 220, + GET_FIRST_INVENTORY_ITEM_BY_LOT = 221, + GET_SMALLEST_INVENTORY_STACK_BY_LOT = 222, + MOVE_ITEM_IN_INVENTORY = 224, + ADD_ITEM_TO_INVENTORY_CLIENT_SYNC = 227, + GET_EQUIPPED_ITEMS = 229, + REMOVE_ITEM_FROM_INVENTORY = 230, + EQUIP_INVENTORY = 231, + UN_EQUIP_INVENTORY = 233, + EQUIP_ITEM = 234, + UN_EQUIP_ITEM = 235, + IS_ITEM_RESPOND = 236, + IS_ITEM_EQUIPPED = 237, + ATTACH_ITEM = 238, + DETACH_ITEM = 239, + GET_NODE = 240, + GET_LOT = 241, + IS_ITEM_EQUIPPABLE = 242, + GET_CURRENT_ANIMATION = 243, + GET_INV_ITEM_COUNT = 244, + POST_LOAD_EQUIP = 245, + SET_PHYSICS_ACTIVE_STATE = 246, + GET_CURRENT_SKILL_TAC_ARC = 247, + OFFER_MISSION = 248, + RESPOND_TO_MISSION = 249, + GET_MISSION_STATE = 250, + GET_MISSION_COMPLETE_TIMESTAMP = 251, + NOTIFY_MISSION = 254, + NOTIFY_MISSION_TASK = 255, + ARE_GFX_LOADED = 257, + ADDED_TO_WORLD = 258, + REMOVE_EXTRA_GFX_FROM_PIPE = 259, + HIDE_EQUIPED_WEAPON = 260, + UN_HIDE_EQUIPED_WEAPON = 261, + GET_ITEM_SLOT = 262, + IS_CHARACTER = 263, + SET_IMMUNITY = 264, + TOGGLE_TOOLTIPS = 266, + GET_TOOLTIPS_DISABLED = 267, + GET_BOUNDING_INFO = 268, + OVERRIDE_BOUNDING_RADIUS = 269, + GET_OFFSCREEN = 270, + USE_STATE_MACHINE = 271, + ADD_STATE = 272, + ADD_SUB_STATE = 273, + SET_STATE = 274, + SET_SUB_STATE = 275, + ADD_MESSAGE = 276, + RELOAD_SCRIPT = 277, + RELOAD_ALL_SCRIPTS = 278, + FRIEND_INVITE_MSG = 279, + ADD_FRIEND_REPOSNSE_MSG = 280, + REMOVE_FRIEND_RESPONSE_MSG = 281, + ADD_FRIEND_FROM_UI_MSG = 282, + GET_CACHED_FRIENDS_LIST_MSG = 283, + REQUEST_NEW_FRIENDS_LIST_MSG = 284, + REPOPULATE_FRIENDS_LIST_MSG = 285, + ADD_IGNORE_REPONSE_MSG = 286, + REMOVE_IGNORE_RESPONSE_MSG = 287, + ADD_IGNORE_FROM_UI_MSG = 288, + GET_CACHED_IGNORE_LIST_MSG = 289, + REQUEST_NEW_IGNORE_LIST_MSG = 290, + REMOVE_FRIEND_BY_NAME = 291, + REMOVE_IGNORE_BY_NAME = 292, + IS_PLAYER_IN_IGNORE_LIST_MSG = 293, + REPOPULATE_IGNORE_LIST_MSG = 294, + GET_INVENTORY_LIST = 295, + UPDATE_FRIEND_MSG = 296, + UPDATE_FRIEND_NAME_MSG = 297, + UPDATE_IGNORE_NAME_MSG = 298, + DEPARTED = 299, + ARRIVED = 300, + TEMPLATE_CHANGE_WAYPOINTS = 301, + CANCELLED = 302, + FLUSH_CACHED_GRAPHICS = 303, + FOLLOW_TARGET = 304, + TIMER_DONE = 305, + TIMER_CANCELLED = 306, + SET_TETHER_POINT = 307, + GET_TETHER_POINT = 308, + LEFT_TETHER_RADIUS = 309, + GET_SCRIPT_VARS_PTR = 310, + FACE_TARGET = 311, + ROTATE_BY_DEGREES = 312, + STRING_RENDERED = 313, + RESET_PRIMARY_ANIMATION = 314, + FACE_PLAY_STREAM = 315, + TORSO_PLAY_STREAM = 316, + CAN_PICKUP = 317, + GET_INVENTORY_SIZE = 318, + GET_INVENTORY_COUNT = 319, + GET_OBJECTS_IN_GROUP = 320, + HIDE_ITEM = 321, + IS_OBJECT_IN_FOV = 322, + GET_TYPE = 323, + TEAM_INVITE_MSG = 324, + TEAM_GET_SIZE = 325, + TEAM_REQUEST_SET_LOOT = 326, + TEAM_REMOVE_PLAYER_MSG = 327, + TEAM_UPDATE_PLAYER_NAME_MSG = 328, + SET_UPDATABLE = 329, + REQUEST_TEAM_UI_UPDATE = 330, + SET_COLLISION_GROUP = 331, + GET_COLLISION_GROUP = 332, + GET_ORIGINAL_COLLISION_GROUP = 333, + SET_COLLISION_GROUP_TO_ORIGINAL = 334, + GET_OBJECT_RADIUS = 335, + REBUILD_NOTIFY_STATE = 336, + GET_PLAYER_INTERACTION = 337, + SET_PLAYER_INTERACTION = 338, + FORCE_PLAYER_TO_INTERACT = 339, + GET_SELECTED_POTENTIAL_INTERACTION = 340, + SET_SELECTED_POTENTIAL_INTERACTION = 341, + GET_INTERACTION_DISTANCE = 342, + SET_INTERACTION_DISTANCE = 343, + CALCULATE_INTERACTION_DISTANCE = 344, + INTERACTION_ATTEMPT_FROM_OUT_OF_RANGE = 345, + SET_PICKING_TARGET = 346, + CLIENT_UNUSE = 347, + BEGIN_PET_INTERACTION = 348, + WANTS_INTERACTION_ICON = 349, + PROPERTY_EDIT_ICON_INTERACTION = 350, + PROPERTY_MODEL_INTERACTION = 351, + GET_INTERACTION_DETAILS = 352, + GET_DISABLED_INTERACTION_TYPES = 353, + GET_INTERACTION_INFO = 354, + INTERACTION_GAME_STATE_CHANGE = 355, + TOGGLE_INTERACTION_UPDATES = 356, + TERMINATE_INTERACTION = 357, + SERVER_TERMINATE_INTERACTION = 358, + GET_PLAYERS_TARGET_FOR_SELECTION = 359, + PROCESS_INTERACTION_UNDER_CURSOR = 360, + HANDLE_INTERACT_ACTION = 361, + ATTEMPT_INTERACTION = 362, + HANDLE_INTERACTION_CAMERA = 363, + REQUEST_USE = 364, + CLIENT_USE = 366, + GET_PLAYER_MULTI_INTERACTION = 367, + GET_MULTI_INTERACTION_STATE = 368, + VENDOR_OPEN_WINDOW = 369, + VENDOR_CLOSE_WINDOW = 370, + EMOTE_PLAYED = 371, + EMOTE_RECEIVED = 372, + BUY_FROM_VENDOR = 373, + SELL_TO_VENDOR = 374, + ADD_DONATION_ITEM = 375, + REMOVE_DONATION_ITEM = 376, + CONFIRM_DONATION_ON_PLAYER = 378, + CANCEL_DONATION_ON_PLAYER = 379, + TEAM_GET_LEADER = 380, + TEAM_GET_ON_WORLD_MEMBERS = 381, + TEAM_GET_ALL_MEMBERS = 382, + TEAM_SET_OFF_WORLD_FLAG = 383, + SET_TRANSPARENCY = 385, + GET_PREFERS_FADE = 386, + PROJECTILE_IMPACT = 387, + SET_PROJECTILE_PARAMS = 388, + SET_INVENTORY_SIZE = 389, + ACKNOWLEDGE_POSSESSION = 391, + SET_POSSESSED_OBJECT = 392, + CHANGE_POSSESSOR = 393, + GET_POSSESSION_TYPE = 395, + GET_POSSESSED_OBJECT = 396, + GET_POSSESSOR = 397, + IS_POSSESSED = 398, + ENABLE_ACTIVITY = 399, + SET_SHOOTING_GALLERY_PARAMS = 400, + OPEN_ACTIVITY_START_DIALOG = 401, + REQUEST_ACTIVITY_START_STOP = 402, + REQUEST_ACTIVITY_ENTER = 403, + REQUEST_ACTIVITY_EXIT = 404, + ACTIVITY_ENTER = 405, + ACTIVITY_EXIT = 406, + ACTIVITY_START = 407, + ACTIVITY_STOP = 408, + SHOOTING_GALLERY_CLIENT_AIM_UPDATE = 409, + ROTATE_TO_POINT = 410, + SHOOTING_GALLERY_FIRE = 411, + CALCULATE_FIRING_PARAMETERS = 412, + GET_MUZZLE_OFFSET = 413, + GET_ACTIVITY_POINTS = 414, + TEAM_IS_ON_WORLD_MEMBER = 415, + REQUEST_VENDOR_STATUS_UPDATE = 416, + VENDOR_STATUS_UPDATE = 417, + CANCEL_MISSION = 418, + RESET_MISSIONS = 419, + RENDER_COMPONENT_READY = 420, + SEND_MINIFIG_DECALS = 421, + PHYSICS_COMPONENT_READY = 422, + ENTER_STANDBY_MODE = 423, + LEAVE_STANDBY_MODE = 424, + NOTIFY_CLIENT_SHOOTING_GALLERY_SCORE = 425, + REQUEST_CONSUME_ITEM = 426, + CONSUME_CLIENT_ITEM = 427, + CLIENT_ITEM_CONSUMED = 428, + QUERY_STANDBY_MODE = 429, + GET_NI_BOUND = 430, + MISSION_FAILURE = 431, + GET_ANIMATION_TIME = 432, + GET_CURRENT_ACTIVITY = 434, + SET_EYEBROWS = 435, + GET_EYEBROWS = 436, + SET_EYES = 437, + GET_EYES = 438, + SET_MOUTH = 439, + GET_MOUTH = 440, + IS_OBJECT_SMASHABLE = 441, + SMASHABLE_STATE_CHANGED = 443, + USE_STATE_LOGGER = 444, + ROTATE_SUB_NODE = 445, + GET_SUB_NODE_POSITION = 446, + GET_SUB_NODE = 447, + UPDATE_SHOOTING_GALLERY_ROTATION = 448, + RENDER_FLOATING_TEXT = 449, + REQUEST2_D_TEXT_ELEMENT = 450, + UPDATE2_D_TEXT_ELEMENT = 451, + REMOVE2_D_TEXT_ELEMENT = 452, + SET_COLOR = 453, + GET_COLOR = 454, + HKX_CHARACTER_LOADED = 455, + ACTIVATE_PHYSICS = 457, + SET_ICON_ABOVE_HEAD = 458, + ADD_ICON_COMPOSITE = 459, + CLEAR_ICON_COMPOSITES = 460, + ICON_NIF_LOADED = 461, + ICON_KFM_LOADED = 462, + GET_OVERHEAD_ICON_PROPERTIES_FROM_PARENT = 463, + BOUNCE_PLAYER = 464, + SET_USER_CTRL_COMP_PAUSE = 466, + HAS_COLLIDED = 467, + GET_TOOLTIP_FLAG = 468, + SET_TOOLTIP_FLAG = 469, + GET_FLAG = 470, + SET_FLAG = 471, + NOTIFY_CLIENT_FLAG_CHANGE = 472, + CURSOR_ON = 473, + CURSOR_OFF = 474, + HELP = 475, + VENDOR_TRANSACTION_RESULT = 476, + PERFORM_SPECIAL_DEATH = 477, + GET_SHADER_ID = 478, + GET_RENDER_ENVIRONMENT = 479, + FINISHED_LOADING_SCENE = 480, + GET_SKILL_INFO = 481, + ACTIVITY_CANCEL = 482, + MISSION_USES_OBJECT = 483, + GET_POSITIONAL_ID = 484, + SET_COLLECTIBLE_STATUS = 485, + HAS_BEEN_COLLECTED = 486, + HAS_BEEN_COLLECTED_BY_CLIENT = 487, + GET_POS_UPDATE_STATS = 488, + GET_NUM_VIEWERS_SCOPING_THIS = 489, + GET_ACTIVITY_USER = 490, + GET_ALL_ACTIVITY_USERS = 491, + GET_MISSION_FOR_PLAYER = 492, + SET_FACTION = 493, + SET_PLATFORM_IDLE_STATE = 494, + DISPLAY_CHAT_BUBBLE = 495, + REQUEST_CHAT_BUBBLE_ELEMENT = 496, + GET_MISSION_DATA = 497, + SPAWN_PET = 498, + DESPAWN_PET = 499, + SET_LOCAL_SPACE_STATE = 500, + GET_LOCAL_SPACE_STATE = 501, + SET_POSITION_TO_LOCAL_POSITION = 502, + ALLOW_LOCAL_SPACE_UPDATE = 503, + TOGGLE_FREE_CAM_MODE = 504, + PLAYER_LOADED = 505, + PLAYER_ADDED_TO_WORLD_LOCAL = 506, + OBJECT_LOADED = 507, + GET_PLAYER_READY = 508, + PLAYER_READY = 509, + SET_SMASHABLE_PARAMS = 510, + IS_LOOTABLE_CHEST = 511, + LOOT_OPEN_WINDOW = 512, + LOOT_SELECTION_UPDATE = 513, + TAKE_LOOT_CHEST_ITEM = 514, + REQUEST_LINKED_MISSION = 515, + TRANSFER_TO_ZONE = 516, + TRANSFER_TO_ZONE_CHECKED_IM = 517, + SECURED_TRANSFER_TO_ZONE = 518, + INVALID_ZONE_TRANSFER_LIST = 519, + MISSION_DIALOGUE_OK = 520, + GET_OBJECT_IN_SCOPE = 521, + SET_LAUNCHED_STATE = 522, + P_CREATE_EFFECT_FINISHED = 523, + SMASHED_OBJECT = 524, + CHECK_SMASHCHAIN_OVERRIDE = 525, + DISPLAY_REBUILD_ACTIVATOR = 526, + TRANSFER_TO_LAST_NON_INSTANCE = 527, + SET_ACTIVE_LOCAL_CHARACTER_ID = 528, + DISPLAY_MESSAGE_BOX = 529, + MESSAGE_BOX_RESPOND = 530, + CHOICE_BOX_RESPOND = 531, + SERVER_SET_USER_CTRL_COMP_PAUSE = 532, + SET_CHARACTER_AUTO_RUN = 533, + FOLLOW_WAYPOINTS = 534, + SWAP_DECAL_AND_COLOR = 535, + CONTINUE_WAYPOINTS = 536, + SMASH = 537, + UN_SMASH = 538, + GET_IS_SMASHED = 539, + GET_UP_VECTOR = 540, + SET_GRAVITY_SCALE = 541, + SET_GRAVITY_SCALE_FOR_RIGID_BODY = 542, + STOP_MOVING = 543, + SET_PATHING_SPEED = 544, + SET_SHIELDED = 545, + SET_SHOOTING_GALLERY_RETICULE_EFFECT = 546, + PLACE_MODEL_RESPONSE = 547, + SET_DODGE_INFO = 548, + GET_DODGE_INFO = 549, + SET_SKILL_ATTACK_SPEED = 550, + GET_SKILL_COOLDOWN_GROUP = 551, + GET_INITIAL_SKILL_COOLDOWN = 552, + GET_SKILL_COOLDOWN_REMAINING = 553, + GET_GLOBAL_COOLDOWN = 554, + SET_GLOBAL_COOLDOWN = 555, + RESET_GLOBAL_COOLDOWN = 556, + FINDINVENTORY_ITEM = 558, + PATH_STUCK = 559, + SET_CURRENT_PATH = 560, + SET_JET_PACK_MODE = 561, + SET_JET_PACK_TIME = 562, + PET_FOLLOW_OWNER = 563, + PLAYER_DIED = 564, + REGISTER_PET_ID = 565, + REGISTER_PET_DBID = 566, + GET_PET_ID = 567, + SHOW_ACTIVITY_COUNTDOWN = 568, + DISPLAY_TOOLTIP = 569, + SET_PHANTOM_BASE = 570, + GET_MOTION_STATE = 571, + GET_MOTION_CONFIG = 572, + SET_ACTIVE_PROJECTILE_SKILL = 573, + INITIALIZE_MISSION_VISUALS = 574, + GET_MISSIONS = 575, + START_ACTIVITY_TIME = 576, + ADD_ACTIVITY_TIME = 577, + GUILD_GET_SIZE = 578, + GUILD_CAN_WE_INVITE = 579, + GUILD_CAN_WE_KICK = 580, + SET_CHAR_GUILD_INFO = 581, + GET_CHAR_GUILD_INFO = 582, + GET_CHAR_IS_IN_GUILD = 583, + RE_RENDER_NAME_BILLBOARD = 584, + IS_IN_LOCAL_CHAR_PROXIMITY = 585, + GUILD_SET_STATUS = 586, + GUILD_ADD_PLAYER = 587, + GUILD_REMOVE_PLAYER = 588, + GUILD_UPDATE_PLAYER_NAME = 589, + GUILD_SET_PLAYER_RANK = 590, + GUILD_SET_ONLINE_STATUS = 591, + GUILD_INVITE = 592, + REQUEST_GUILD_DATA = 593, + POPULATE_GUILD_DATA = 594, + GET_CACHED_GUILD_DATA = 595, + GUILD_RENDER_NAME = 596, + GET_IS_SUPPORTED = 600, + CHARACTER_SUPPORT_CHANGED = 601, + ACTIVITY_PAUSE = 602, + USE_NON_EQUIPMENT_ITEM = 603, + REQUEST_USE_ITEM_ON = 604, + REQUEST_USE_ITEM_ON_TARGET = 605, + USE_ITEM_ON = 606, + USE_ITEM_RESULT = 607, + GET_PARENT_OBJ = 608, + SET_PARENT_OBJ = 609, + GET_UPDATES_WITH_PARENT_POSITION = 610, + PARENT_REMOVED = 611, + PARENT_LEFT_SCOPE = 612, + PARENT_ENTERED_SCOPE = 613, + CHILD_LOADED = 614, + CHILD_REMOVED = 615, + CHILD_DETACHED = 616, + CHILD_ENTERED_SCOPE = 617, + CHILD_LEFT_SCOPE = 618, + GET_CHILD_OBJECTS = 619, + ZONE_TRANSFER_FINISHED = 621, + CHAT_CONNECTION_UPDATE = 622, + PLATFORM_AT_LAST_WAYPOINT = 623, + LOOT_TAKE_ALL = 624, + GET_EQUIPPED_ITEM_INFO = 625, + DISPLAY_GUILD_CREATE_BOX = 626, + GET_EDITOR_LEVEL = 627, + GET_ACCOUNT_ID = 628, + GET_LAST_LOGOUT = 629, + GET_LAST_PROP_MOD_DISPLAY_TIME = 630, + SET_LAST_PROP_MOD_DISPLAY_TIME = 631, + SHOW_ACTIVITY_SUMMARY = 632, + CAN_RECEIVE_ALL_REWARDS = 633, + GET_ACTIVITY_REWARD = 634, + LOOT_CLOSE_WINDOW = 635, + GET_BLUEPRINT_ID = 636, + NOTIFY_BLUEPRINT_UPDATE = 637, + FETCH_MODEL_METADATA_REQUEST = 638, + FETCH_MODEL_METADATA_RESPONSE = 639, + COMMAND_PET = 640, + PET_RESPONSE = 641, + GET_ICON_ABOVE_HEAD_STATE = 642, + GET_ICON_ABOVE_HEAD = 643, + ICON_FINISHED_LOADING = 644, + ADD_PET_STATE = 645, + REMOVE_PET_STATE = 646, + SET_PET_STATE = 647, + REQUEST_ACTIVITY_SUMMARY_LEADERBOARD_DATA = 648, + SEND_ACTIVITY_SUMMARY_LEADERBOARD_DATA = 649, + SET_ON_TEAM = 650, + GET_PET_HAS_STATE = 651, + FIND_PROPERTY = 652, + SET_PET_MOVEMENT_STATE = 653, + GET_ITEM_TYPE = 654, + GET_ITEM_INFO_KEY = 655, + NOTIFY_OBJECT = 656, + IS_PET_WILD = 657, + CLIENT_NOTIFY_PET = 659, + NOTIFY_PET = 660, + NOTIFY_PET_TAMING_MINIGAME = 661, + START_SERVER_PET_MINIGAME_TIMER = 662, + CLIENT_EXIT_TAMING_MINIGAME = 663, + GET_BUILDMODE_ACTIVE = 664, + GET_PET_TAMING_MINIGAME_ACTIVE = 665, + PET_TAMING_OBJECT_PICKED = 666, + PET_TAMING_MINIGAME_RESULT = 667, + PET_TAMING_TRY_BUILD_RESULT = 668, + SET_PET_TAMING_MODEL = 669, + GET_PET_TAMING_MODEL = 670, + PET_ON_SWITCH = 671, + PET_OFF_SWITCH = 672, + NOTIFY_TAMING_BUILD_SUCCESS = 673, + NOTIFY_TAMING_MODEL_LOADED_ON_SERVER = 674, + NOTIFY_TAMING_PUZZLE_SELECTED = 675, + GET_INSTRUCTION_COUNT = 676, + GET_IS_NPC = 677, + ACTIVATE_BUBBLE_BUFF = 678, + DECTIVATE_BUBBLE_BUFF = 679, // thanks netdevil + EXHIBIT_VOTE = 680, + ADD_PET_TO_PLAYER = 681, + REMOVE_PET_FROM_PLAYER = 682, + REQUEST_SET_PET_NAME = 683, + SET_PET_NAME = 684, + PET_NAME_CHANGED = 686, + GET_PET_AT_INDEX = 687, + GET_LOT_FOR_PET_BY_DBID = 688, + GET_NAME_FOR_PET_BY_DBID = 689, + GET_ACTIVE_PET_OBJ_ID = 690, + GET_ACTIVE_PET_INVENTORY_OBJ_ID = 691, + SHOW_PET_ACTION_BUTTON = 692, + SET_EMOTE_LOCK_STATE = 693, + GET_EMOTE_LOCK_STATE = 694, + LEAVE_TEAM_MSG = 695, + TEAM_KICK_PLAYER_MSG = 697, + TEAM_SET_LEADER_SEND_MSG = 698, + USE_ITEM_ON_CLIENT = 699, + DOES_FORWARD_TARGET_CLICKING = 700, + CHECK_USE_REQUIREMENTS = 701, + USE_REQUIREMENTS_RESPONSE = 702, + USE_ITEM_REQUIREMENTS_RESPONSE = 703, + PET_ADDED_TO_WORLD = 704, + BOUNCER_TRIGGERED = 705, + EXHIBIT_QUERY_CURRENT_MODEL = 706, + EXHIBIT_QUERY_CURRENT_MODEL_RESPONSE = 707, + EXHIBIT_ATTEMPT_VOTE = 708, + EXHIBIT_VOTE_RESPONSE = 709, + EHIBIT_REQUERYMODELS = 710, + IS_SKILL_ACTIVE = 711, + TOGGLE_ACTIVE_SKILL = 712, + PLAY_EMBEDDED_EFFECT_ON_ALL_CLIENTS_NEAR_OBJECT = 713, + EXHIBIT_GET_INFO = 714, + GET_PROPERTY_DATA = 715, + DOWNLOAD_PROPERTY_DATA = 716, + QUERY_PROPERTY_DATA = 717, + MODEL_MODERATION_ACTION = 719, + NOTIFY_SERVER_UGC_REVIEW_READY = 720, + NOTIFY_CLIENT_UGC_REVIEW_READY = 721, + OLD_USE_ITEM_ON = 722, + FIND_PROPERTY_FOR_SALE_RESPONSE = 723, + PROPERTY_EDITOR_BEGIN = 724, + PROPERTY_EDITOR_END = 725, + PROPERTY_EDITOR_SET_MODE = 726, + TOGGLE_TRIGGER = 727, + FIRE_EVENT = 728, + IS_MINIFIG_IN_A_BUBBLE = 729, + GET_ITEM_INFO = 730, + MISSION_NEEDS_LOT = 731, + STOP_PATHING = 732, + START_PATHING = 733, + ACTIVATE_BUBBLE_BUFF_FROM_SERVER = 734, + DEACTIVATE_BUBBLE_BUFF_FROM_SERVER = 735, + HAS_SKILL = 736, + NOTIFY_CLIENT_ZONE_OBJECT = 737, + MOVE_OBJECT = 738, + ROTATE_OBJECT = 739, + GET_SPAWNER_CONFIG_DATA = 740, + UPDATE_SPAWNER_CONFIG_DATA = 741, + TURN_AROUND = 743, + GO_FORWARD = 744, + GO_BACKWARD = 745, + UPDATE_REPUTATION = 746, + GET_REPUTATION = 747, + ADD_REPUTATION = 748, + UPDATE_PROPERTY_DATA = 749, + PROPERTY_RENTAL_RESPONSE = 750, + EXHIBIT_PLACEMENT_RESPONSE = 751, + SQUIRT_WITH_WATERGUN = 752, + GET_VOTES_LEFT = 753, + ADJUST_VOTES_LEFT = 754, + EVADE_TARGET = 755, + STOPPED_EVADING = 756, + GET_PET_HAS_ABILITY = 757, + REQUEST_PLATFORM_RESYNC = 760, + PLATFORM_RESYNC = 761, + PLAY_CINEMATIC = 762, + END_CINEMATIC = 763, + CINEMATIC_UPDATE = 764, + ATTACH_CAMERA_TO_RAIL = 765, + DETACH_CAMERA_FROM_RAIL = 766, + TOGGLE_GHOST_REFERENCE_OVERRIDE = 767, + SET_GHOST_REFERENCE_POSITION = 768, + GET_GHOST_REFERENCE_POSITION = 769, + FIRE_EVENT_SERVER_SIDE = 770, + GET_PET_ABILITY_OBJECT = 771, + TEAM_INVITE_MSG_FROM_UI = 772, + ADD_CAMERA_EFFECT = 773, + REMOVE_CAMERA_EFFECT = 774, + REMOVE_ALL_CAMERA_EFFECTS = 775, + GET_MY_PROPERTIES_IN_THIS_ZONE = 776, + IS_MODEL_WITHIN_PROPERTY_BOUNDS = 777, + PROPERTY_DATA_RESULTS = 778, + ON_UN_SERIALIZE = 779, + SCRIPT_NETWORK_VAR_UPDATE = 781, + ADD_OBJECT_TO_GROUP = 783, + REMOVE_OBJECT_FROM_GROUP = 784, + IS_OBJECT_STATIC = 785, + GET_HAS_MISSION = 786, + GET_MISSION_TARGET_LOT = 787, + GET_MISSION_OFFERER_LOT = 788, + USE_UNIQUE_ITEM = 789, + GET_IS_PET = 790, + DELETE_PROPERTY = 791, + CREATEMODEL_FROM_CLIENT = 792, + UPDATE_MODEL_FROM_CLIENT = 793, + DELETE_MODEL_FROM_CLIENT = 794, + SHOW_PROPERTY_BOUNDS = 795, + SET_PROPERTY_I_DS = 796, + PLAY_FACE_DECAL_ANIMATION = 797, + ADD_ACTIVITY_USER = 798, + REMOVE_ACTIVITY_USER = 799, + GET_NUM_ACTIVITY_USERS = 800, + ACTIVITY_USER_EXISTS = 801, + DO_COMPLETE_ACTIVITY_EVENTS = 805, + SET_ACTIVITY_PARAMS = 806, + SET_ACTIVITY_USER_DATA = 807, + GET_ACTIVITY_USER_DATA = 808, + DO_CALCULATE_ACTIVITY_RATING = 809, + ND_AUDIO_POST_SETUP = 812, + ND_AUDIO_PRE_SHUTDOWN = 813, + SET_ND_AUDION_LISTENER_STANCE = 814, + SET_UP_ND_AUDIO_EMIITTER = 815, + SHUT_DOWN_ND_AUDIO_EMITTER = 816, + METAIFY_ND_AUDIO_EMITTER = 817, + UN_METAIFY_ND_AUDIO_EMITTER = 818, + METAIFY_ND_AUDIO_EMITTERS = 819, + UN_METAIFY_ND_AUDIO_EMITTERS = 820, + PLAY_ND_AUDIO_EMITTER = 821, + STOP_ND_AUDIO_EMITTER = 822, + STOP_ND_AUDIO_EMITTER_ALL = 823, + SET_ND_AUDIO_EMITTER_PARAMETER = 824, + SET_ND_AUDIO_EMITTERS_PARAMETER = 825, + ND_AUDIO_CALLBACK = 826, + ACTIVATE_ND_AUDIO_MUSIC_CUE = 827, + DEACTIVATE_ND_AUDIO_MUSIC_CUE = 828, + FLASH_ND_AUDIO_MUSIC_CUE = 829, + SET_ND_AUDIO_MUSIC_PARAMETER = 830, + PLAY2_D_AMBIENT_SOUND = 831, + STOP2_D_AMBIENT_SOUND = 832, + PLAY3_D_AMBIENT_SOUND = 834, + STOP3_D_AMBIENT_SOUND = 835, + ACTIVATE_ND_AUDIO_MIXER_PROGRAM = 836, + DEACTIVATE_ND_AUDIO_MIXER_PROGRAM = 837, + UPDATE_ACTIVITY_LEADERBOARD = 838, + ACTIVITY_LEADERBOARD_UPDATED = 839, + ENTER_PROPERTY1 = 840, + ENTER_PROPERTY2 = 841, + PROPERTY_ENTRANCE_SYNC = 842, + SEND_PROPERTY_POPULATION_TO_CLIENT = 843, + SEN_PROPERTY_PLAQUE_VIS_UPDATE = 844, + PROPERTY_SELECT_QUERY = 845, + CREATE_POSITION_STRING = 848, + GET_PARALLEL_POSITION = 849, + PARSE_CHAT_MESSAGE = 850, + SET_MISSION_TYPE_STATE = 851, + GET_LOCATIONS_VISITED = 852, + GET_MISSION_TYPE_STATES = 853, + GET_TIME_PLAYED = 854, + SET_MISSION_VIEWED = 855, + SLASH_COMMAND_TEXT_FEEDBACK = 856, + HANDLE_SLASH_COMMAND_KORE_DEBUGGER = 857, + BROADCAST_TEXT_TO_CHATBOX = 858, + OPEN_PROPERTY_MANAGEMENT = 860, + OPEN_PROPERTY_VENDOR = 861, + VOTE_ON_PROPERTY = 862, + UPDATE_PROPERTY_OR_MODEL_FOR_FILTER_CHECK = 863, + NOTIFY_PLAYER_OF_PROPERTY_SUBMISSION = 865, + NOTIFY_PLAYER_OF_MODEL_SUBMISSION = 866, + PHYSICS_SYSTEM_LOADED = 867, + CLIENT_TRADE_REQUEST = 868, SERVER_TRADE_REQUEST = 869, - SERVER_TRADE_INVITE = 870, - CLIENT_TRADE_REPLY = 871, + SERVER_TRADE_INVITE = 870, + CLIENT_TRADE_REPLY = 871, SERVER_TRADE_REPLY = 872, - SERVER_TRADE_INITIAL_REPLY = 873, - SERVER_TRADE_FINAL_REPLY = 874, - CLIENT_TRADE_UPDATE = 875, + SERVER_TRADE_INITIAL_REPLY = 873, + SERVER_TRADE_FINAL_REPLY = 874, + CLIENT_TRADE_UPDATE = 875, SERVER_SIDE_TRADE_UPDATE = 876, - SERVER_TRADE_UPDATE = 877, - CLIENT_TRADE_CANCEL = 878, - CLIENT_SIDE_TRADE_CANCEL = 879, - CLIENT_TRADE_ACCEPT = 880, + SERVER_TRADE_UPDATE = 877, + CLIENT_TRADE_CANCEL = 878, + CLIENT_SIDE_TRADE_CANCEL = 879, + CLIENT_TRADE_ACCEPT = 880, SERVER_SIDE_TRADE_ACCEPT = 881, SERVER_SIDE_TRADE_CANCEL = 882, - SERVER_TRADE_CANCEL = 883, - SERVER_TRADE_ACCEPT = 884, - GET_TRADE_INFO = 885, - KF_LOADED = 886, - BRICKS_LOADED = 887, - READY_FOR_UPDATES = 888, - SEND_READY_FOR_UPDATES = 889, - SET_LAST_CUSTOM_BUILD = 890, - GET_LAST_CUSTOM_BUILD = 891, - GET_STATUS_EFFECT_BY_ID = 892, - GET_ALL_STATUS_EFFECTS = 893, - CHILD_RENDER_COMPONENT_READY = 894, - NOTIFY_APPEARANCE_CHANGED_MSG = 895, - SET_PHYSICS_MOTION_STATE = 896, - GET_PHYSICS_MOTION_STATE = 897, - ATTACH_GRAYSCALE_EFFECT = 898, - ATTACH_FADE_EFFECT = 899, - ATTACH_CHANGE_RENDER_ENVIRONMENT_EFFECT = 900, - FORCE_MOVEMENT = 901, - CANCEL_FORCE_MOVEMENT = 902, - SET_IGNORE_PROJECTILE_COLLISION = 903, - GET_IGNORE_PROJECTILE_COLLISION = 904, - ORIENT_TO_OBJECT = 905, - ORIENT_TO_POSITION = 906, - ORIENT_TO_ANGLE = 907, - NOTIFY_CLIENT_UGC_MODEL_READY = 909, - NOTIFY_CLIENT_UGC_ICON_READY = 911, - PROPERTY_BUILD_MODE_CHANGED = 912, - PROPERTY_BUILD_MODE_UPDATE = 913, - PROPERTY_DELETION_ACTION = 914, - PROPERTY_MODERATION_STATUS_ACTION = 915, - PROPERTY_MODERATION_STATUS_ACTION_RESPONSE = 916, - PROPERTY_MODERATION_STATUS_UPDATE = 917, - PROPERTY_NEEDS_GM_ATTENTION = 918, - PROPERTY_MODERATION_CHANGED = 919, - INVENTORY_REFRESH_ITEM_DETAILS = 922, - INVENTORY_LOAD_CUSTOM_ICON = 923, - GET_STATUS_EFFECT_BY_TYPE = 924, - RELEASE_CHARGED_SKILL = 925, - PROPERTY_RELOAD_DB = 926, - SET_PLAYER_TARGET = 927, - GET_PLAYER_TARGET = 928, - LOCK_CAMERA_NETWORKED = 929, - MOVE_CAMERA_NETWORKED = 930, - REBUILD_ACTIVATED = 931, - BOUNCE_NOTIFICATION = 932, - REQUEST_CLIENT_BOUNCE = 934, - GET_RECENT_BOUNCED = 935, - SET_RECENT_BOUNCED = 936, - SET_ACTIVE_STATE = 937, - GET_ACTIVE_STATE = 938, - HAS_COMPONENT_TYPE = 939, - GET_COMPONENT_LIST = 940, - RESPONDS_TO_FACTION = 941, - BOUNCER_ACTIVE_STATUS = 942, - HF_ATTRIBUTES_PUSH = 943, - HF_ATTRIBUTES_PULL = 944, - HF_ATTRIBUTES_PATH_DISPLAY = 945, - HF_CONTROLS_PULL = 946, - HF_OBJECT_SELECTED = 947, - HF_PLACEHOLDER_UPDATE = 948, - HF_PLACEHOLDER_TOGGLE = 949, - HF_GET_ASSOCIATED_PATHS = 950, - HF_GETS_WANT_PATH = 951, - GET_RECENT_MOVEMENT_KEYS = 952, - TRACK_RECENT_MOVEMENT_KEYS = 953, - PHYSICS_MOVEMENT_NOTIFICATION_REQUEST = 954, - PHYSICS_MOVEMENT_NOTIFICATION = 955, - MOVE_INVENTORY_SINGLE = 956, - MOVE_INVENTORY_BATCH = 957, - MINI_GAME_SET_PARAMETERS = 958, - MINI_GAME_GET_TEAM_SKILLS = 961, - MINI_GAME_GET_TEAM_SCORE = 963, - MINI_GAME_GET_PLAYER_SCORE = 967, - MINI_GAME_GET_TEAM_COLOR = 972, - MINI_GAME_GET_TEAM_PLAYERS = 975, - MINI_GAME_UPDATE_CLIENT = 976, - MINI_GAME_GET_TEAM = 977, - MINI_GAME_GET_PARAMETERS = 978, - OBJECT_ACTIVATED_CLIENT = 980, - IS_RESURRECTING = 983, - GET_ITEM_OWNER = 984, - GET_STORED_CONFIG_DATA = 985, - SET_STORED_CONFIG_DATA = 986, - ON_PLAYER_RESSURECTED = 988, - PLAYER_RESURRECTION_FINISHED = 989, - TRANSFORM_CHANGELING_BUILD = 990, - RETURN_CHANGELING_BUILD_ID = 991, - SPEND_BRICK_INVENTORY_FOR_LXFML = 992, - BRICK_INVENTORY_FOR_LXFML_SPENT = 993, - REBUILD_BBB_AUTOSAVE_MSG = 995, - SET_BBB_AUTOSAVE = 996, - USE_BBB_INVENTORY = 998, - UN_USE_BBB_MODEL = 999, - BBB_LOAD_ITEM_REQUEST = 1000, - BBB_SAVE_REQUEST = 1001, - BBBLUP_SAVE_REQUEST = 1002, - BBB_GET_METADATA_SOURCE_ITEM = 1003, - BBB_RESET_METADATA_SOURCE_ITEM = 1004, - BBB_SAVE_RESPONSE = 1005, - PLAYER_EXIT = 1006, - SET_PVP_STATUS = 1008, - GET_PVP_STATUS = 1009, - IS_VALID_PVP_TARGET = 1010, - PVP_RENDER_NAME = 1011, - ATTACH_OBJECT = 1012, - DETACH_OBJECT = 1013, - BOUNCE_SUCCEEDED = 1014, - GET_GAME_OBJECT_POINTER = 1015, - PHANTOM_HKX_LOADED = 1016, - DELAY_CREATE_EFFECT = 1017, - CHOICE_BUILD_SELECTION_CONFIRMED = 1018, - NOTIFY_FADE_UP_VIS_COMPLETE = 1019, - ITEM_HAS_NEW_INFO = 1020, - RESET_SECONDARY_ANIMATION = 1021, - GET_PICK_TYPE = 1022, - SET_PICK_TYPE = 1023, - GET_PRIORITY_PICK_LIST_TYPE = 1024, - REQUEST_PICK_TYPE_UPDATE = 1025, - GET_OVERRIDE_PICK_TYPE = 1026, - REQUEST_DISPLAY_OBJECT_INFO = 1027, - REQUEST_SERVER_OBJECT_INFO = 1028, - REQUEST_OBJECT_INFO_AS_XML = 1029, - GET_OBJECT_REPORT_INFO = 1030, - GET_OBJECT_REPORT_WINDOW_CLOSE = 1031, - GET_OBJECT_REPORT_STATUS = 1032, - GET_MISSION_DATA_FOR_OBJECT_REPORT = 1033, - GET_OBJECT_ROLLOVER_INFO = 1034, - PERFORM_ZONE_ANALYSIS = 1035, - UPDATE_HK_VISUAL_IZATION = 1036, - CLEAR_ITEMS_OWNER = 1037, - APPLY_LINEAR_IMPULSE = 1038, - APPLY_ANGULAR_IMPULSE = 1039, - GET_CONTACT_NORMALS = 1040, - IS_WATCHING_FOR_EMOTE = 1041, - NOTIFY_CLIENT_OBJECT = 1042, - DISPLAY_ZONE_SUMMARY = 1043, - ZONE_SUMMARY_DISMISSED = 1044, - GET_PLAYER_ZONE_STATISTIC = 1045, - MODIFY_PLAYER_ZONE_STATISTIC = 1046, - APPLY_EXTERNAL_FORCE = 1049, - GET_APPLIED_EXTERNAL_FORCE = 1050, - ITEM_EQUIPPED = 1052, - ACTIVITY_STATE_CHANGE_REQUEST = 1053, - OVERRIDE_FRICTION = 1054, - ARRANGE_WITH_ITEM = 1055, - CHECK_CAN_BUILD_WITH_ITEM = 1056, - START_BUILDING_WITH_ITEM = 1057, - START_BUILD_SESSION = 1058, - FINISH_BUILD_SESSION = 1059, - DONE_BUILD_SESSION = 1060, - START_ARRANGING_WITH_ITEM = 1061, - FINISH_ARRANGING_WITH_ITEM = 1062, - DONE_ARRANGING_WITH_ITEM = 1063, - START_ARRANGE_MODE = 1064, - ARRANGE_MODE_WITH_ITEM = 1065, - FINISH_ARRANGE_MODE = 1066, - DONE_ARRANGE_MODE = 1067, - SET_BUILD_MODE = 1068, - BUILD_MODE_SET = 1069, - CONFIRM_BUILD_MODE = 1070, - BUILD_MODE_CONFIRMATION = 1071, - BUILD_EXIT_CONFIRMATION = 1072, - SET_BUILD_MODE_CONFIRMED = 1073, - BUILD_MODE_NOTIFICATION = 1074, - BUILD_MODE_NOTIFICATION_REPORT = 1075, - CLIENT_USE_MODULE_ON = 1076, - SET_MODEL_TO_BUILD = 1077, - SPAWN_MODEL_BRICKS = 1078, - CHECK_PRECONDITION = 1079, - CHECK_ALL_PRECONDITIONS = 1080, - NOTIFY_CLIENT_FAILED_PRECONDITION = 1081, - GET_IS_ITEM_EQUIPPED_BY_LOT = 1082, - GET_IS_ITEM_EQUIPPED_BY_ID = 1083, - GET_OBJECT_DIRECTION_VECTORS = 1084, - GET_CASTABLE_SKILLS = 1085, - CHOICEBUILD_COMPLETE = 1086, - GET_MISSION_CHAT = 1087, - GET_MISSION_AUDIO = 1088, - MODULE_EQUIPPED = 1089, - MODULE_DROPPED = 1090, - MODULE_PICKED_UP = 1091, - MODULE_INFO = 1092, - MOVE_ITEM_BETWEEN_INVENTORY_TYPES = 1093, - MODULAR_BUILD_BEGIN = 1094, - MODULAR_BUILD_END = 1095, - MODULAR_BUILD_MOVE_AND_EQUIP = 1096, - MODULAR_BUILD_FINISH = 1097, - SET_REGISTRATION_FOR_UI_UPDATE = 1114, - GO_TO_WAYPOINT = 1115, - ARRIVED_AT_DESIRED_WAYPOINT = 1116, - CHECK_WITHIN_BOUNDS = 1117, - ATTACH_TO_BUILD_ASSEMBLY = 1118, - SET_BUILD_ASSEMBLY = 1119, - RESET_BUILD_ASSEMBLY = 1120, - GET_INVENTORY_ITEM_INFO = 1125, - GET_ITEM_DETAILS = 1126, - GET_BUILD_ACTIVATOR = 1127, - GET_MISSION_ANIMATION = 1128, - MISSION_DIALOGUE_CANCELLED = 1129, - MODULE_ASSEMBLY_DB_DATA = 1130, - MODULE_ASSEMBLY_DB_DATA_FOR_CLIENT = 1131, - MODULE_ASSEMBLY_QUERY_DATA = 1132, - MODULE_ASSEMBLY_HKX_LOADED = 1133, - MODULE_ASSEMBLY_NIF_LOADED = 1134, - MODULE_ASSEMBLY_MAIN_NIF_LOADED = 1135, - MODULE_ASSEMBLY_KFM_LOADED = 1136, - GET_PRECONDITION_INFO = 1137, - GET_MODEL_LOT = 1138, - ANIMATION_FINISHED_PRELOADING = 1139, - CHILD_BUILD_ASSEMBLY_COMPLETE = 1140, - CHARACTER_UNSERIALIZED = 1141, - CHARACTER_NEEDS_TRANSITION = 1142, - SET_NEEDS_TRANSITION = 1143, - ECHO_SYNC_SKILL = 1144, - SYNC_SKILL = 1145, - GET_BEHAVIOR_HANDLE = 1146, - ADD_OUTSTANDING_BEHAVIOR = 1147, - REQUEST_SERVER_PROJECTILE_IMPACT = 1148, - OFF_WORLD_IMPACT_REQUEST = 1149, - SERVER_IMPACT_REQUEST = 1150, - DO_CLIENT_PROJECTILE_IMPACT = 1151, - MODULE_ASSEMBLY_PART_INFO = 1152, - GET_BUILD_TYPE = 1153, - CHECK_BUILD_TYPE = 1154, - MODULAR_BUILD_CONVERT_MODEL = 1155, - DO_NPC_SHOWCASE_MODEL_SUBMISSION = 1156, - GET_MISSION_I_DS_LIST = 1157, - SET_SHOWCASE_MISSION_NPC_VALS = 1158, - NOTIFY_SHOWCASE_MISSION_NP_COF_SUCCESS = 1159, - SEND_LUA_NOTIFICATION_REQUEST = 1160, - SEND_LUA_NOTIFICATION_CANCEL = 1161, - ACTIVATOR_TOGGLE = 1162, - MAKE_PHYSICS = 1163, - SET_RESPAWN_GROUP = 1164, - SET_PLAYER_ALLOWED_RESPAWN = 1165, - TOGGLE_SENDING_POSITION_UPDATES = 1166, - TOGGLE_RECEIVING_POSITION_UPDATES = 1167, - GET_ENEMY_PRECONDITIONS = 1168, - START_MODEL_VISUALIZATION = 1169, - PLACE_PROPERTY_MODEL = 1170, - PROPERTY_MODEL_PLACED = 1171, - OPEN_EXHIBIT_REPLACE_MODEL_UI = 1172, - REPLACE_SHOWCASEMODEL = 1173, - CLEAR_UI_HOOK_EXHIBIT_REPLACEMENT = 1174, - ATTACH_FLYTO_SCREEN_POS = 1175, - VEHICLE_GET_DEBUG_INFO = 1176, - VEHICLE_GET_MOVEMENT_INPUT_VALUES = 1177, - ACTIVITY_TIMER_SET = 1178, - ACTIVITY_TIMER_UPDATE = 1179, - ACTIVITY_TIMER_GET = 1180, - ACTIVITY_TIMER_STOP = 1181, - ACTIVITY_TIMER_DONE = 1182, - GET_ATTACK_PRIORITY = 1183, - UI_MESSAGE_SERVER_TO_SINGLE_CLIENT = 1184, - UI_MESSAGE_SERVER_TO_ALL_CLIENTS = 1185, - SET_LOSE_COINS_ON_DEATH = 1186, - LOAD_EFFECTS = 1187, - SET_CUSTOM_BUILD = 1188, - ACTIVITY_TIMER_RESET = 1189, - ACTIVITY_TIMER_STOP_ALL_TIMERS = 1190, - ACTIVITY_TIMER_MODIFY = 1191, - SET_KEYFRAM_TRANSFORM = 1192, - ADD_ACTIVITY_OWNER = 1193, - REMOVE_ACTIVITY_OWNER = 1194, - GET_CURRENT_ACTIVITY_OWNERS = 1195, - TOGGLE_SKILL_DEBUGGING = 1196, - PET_TAMING_TRY_BUILD = 1197, - REPORT_BUG = 1198, - REPORT_OFFENSIVE_MODEL = 1199, - REPORT_OFFENSIVE_PROPERTY = 1200, - GET_ACTIVITY_ID = 1201, - REQUEST_SMASH_PLAYER = 1202, - GET_TIMES_REQUESTED_SMASH = 1203, - RESPONSE_SMASH_PLAYER = 1204, - MODIFY_DAMAGE_ABSORPTION = 1205, - UNCAST_SKILL = 1206, - GET_SHOWCASE_MODEL_READY = 1207, - IS_SKILL_NEEDED = 1208, - GET_COMPONENT_DATA = 1209, - VEHICLE_SET_POWERSLIDE_METHOD = 1210, - SHOWS_NAMETAG = 1211, - FIRE_EVENT_CLIENT_SIDE = 1213, - GET_REQUIRES_NAME_RESUBMISSION = 1216, - SET_REQUIRES_NAME_RESUBMISSION = 1217, - TOGGLE_GM_INVIS = 1218, - GET_GM_INVIS = 1219, - KILLED_PLAYER = 1220, - GET_PICKUP_SKILLS = 1221, - GET_FACTION_SKILL = 1222, - CHANGE_OBJECT_WORLD_STATE = 1223, - GET_OBJECT_WORLD_STATE = 1224, - VISIBILITY_CHANGED = 1225, - MOTION_EFFECT_COMPLETE = 1226, - TOGGLE_FREEZE_MODE = 1227, - SHADER_RENDER_MSG_APPLIED = 1228, - PLAYER_RENAME_REQUEST = 1229, - VEHICLE_LOCK_INPUT = 1230, - VEHICLE_UNLOCK_INPUT = 1231, - SET_AIR_MOVEMENT = 1232, - MOVEMENT_STATE_CHANGED = 1233, - SKILL_MOVEMENT_CANCELLED = 1234, - AIR_MOVEMENT_COMPLETE = 1235, - CANCEL_AIR_MOVEMENT = 1236, - FORCE_MINIFIGURE_TEXTURE_UPDATE = 1237, - RESYNC_EQUIPMENT = 1238, - ADD_COMPONENT_TO_OBJECT = 1239, - VEHICLE_GET_MAX_GAME_SPEED = 1240, - VEHICLE_GET_MAX_GAME_SPEED_WITH_BOOST = 1241, - GET_SPEED_FACTOR = 1242, - FREEZE_INVENTORY = 1243, - ADD_STAT_TRIGGER = 1244, - ADD_STAT_TRIGGER_CHILD = 1245, - CHECK_TRIGGERS_AND_FIRE_IF_NEEDED = 1246, - STAT_EVENT_TRIGGERED = 1247, - GET_CURRENT_SPEED = 1248, - RACING_PLAYER_RANK_CHANGED = 1249, - RACING_PLAYER_WRONG_WAY_STATUS_CHANGED = 1250, - RACING_PLAYER_CROSSED_FINISH_LINE = 1251, - RACING_RESET_PLAYER_TO_LAST_RESET = 1252, + SERVER_TRADE_CANCEL = 883, + SERVER_TRADE_ACCEPT = 884, + GET_TRADE_INFO = 885, + KF_LOADED = 886, + BRICKS_LOADED = 887, + READY_FOR_UPDATES = 888, + SEND_READY_FOR_UPDATES = 889, + SET_LAST_CUSTOM_BUILD = 890, + GET_LAST_CUSTOM_BUILD = 891, + GET_STATUS_EFFECT_BY_ID = 892, + GET_ALL_STATUS_EFFECTS = 893, + CHILD_RENDER_COMPONENT_READY = 894, + NOTIFY_APPEARANCE_CHANGED_MSG = 895, + SET_PHYSICS_MOTION_STATE = 896, + GET_PHYSICS_MOTION_STATE = 897, + ATTACH_GRAYSCALE_EFFECT = 898, + ATTACH_FADE_EFFECT = 899, + ATTACH_CHANGE_RENDER_ENVIRONMENT_EFFECT = 900, + FORCE_MOVEMENT = 901, + CANCEL_FORCE_MOVEMENT = 902, + SET_IGNORE_PROJECTILE_COLLISION = 903, + GET_IGNORE_PROJECTILE_COLLISION = 904, + ORIENT_TO_OBJECT = 905, + ORIENT_TO_POSITION = 906, + ORIENT_TO_ANGLE = 907, + NOTIFY_CLIENT_UGC_MODEL_READY = 909, + NOTIFY_CLIENT_UGC_ICON_READY = 911, + PROPERTY_BUILD_MODE_CHANGED = 912, + PROPERTY_BUILD_MODE_UPDATE = 913, + PROPERTY_DELETION_ACTION = 914, + PROPERTY_MODERATION_STATUS_ACTION = 915, + PROPERTY_MODERATION_STATUS_ACTION_RESPONSE = 916, + PROPERTY_MODERATION_STATUS_UPDATE = 917, + PROPERTY_NEEDS_GM_ATTENTION = 918, + PROPERTY_MODERATION_CHANGED = 919, + INVENTORY_REFRESH_ITEM_DETAILS = 922, + INVENTORY_LOAD_CUSTOM_ICON = 923, + GET_STATUS_EFFECT_BY_TYPE = 924, + RELEASE_CHARGED_SKILL = 925, + PROPERTY_RELOAD_DB = 926, + SET_PLAYER_TARGET = 927, + GET_PLAYER_TARGET = 928, + LOCK_CAMERA_NETWORKED = 929, + MOVE_CAMERA_NETWORKED = 930, + REBUILD_ACTIVATED = 931, + BOUNCE_NOTIFICATION = 932, + REQUEST_CLIENT_BOUNCE = 934, + GET_RECENT_BOUNCED = 935, + SET_RECENT_BOUNCED = 936, + SET_ACTIVE_STATE = 937, + GET_ACTIVE_STATE = 938, + HAS_COMPONENT_TYPE = 939, + GET_COMPONENT_LIST = 940, + RESPONDS_TO_FACTION = 941, + BOUNCER_ACTIVE_STATUS = 942, + HF_ATTRIBUTES_PUSH = 943, + HF_ATTRIBUTES_PULL = 944, + HF_ATTRIBUTES_PATH_DISPLAY = 945, + HF_CONTROLS_PULL = 946, + HF_OBJECT_SELECTED = 947, + HF_PLACEHOLDER_UPDATE = 948, + HF_PLACEHOLDER_TOGGLE = 949, + HF_GET_ASSOCIATED_PATHS = 950, + HF_GETS_WANT_PATH = 951, + GET_RECENT_MOVEMENT_KEYS = 952, + TRACK_RECENT_MOVEMENT_KEYS = 953, + PHYSICS_MOVEMENT_NOTIFICATION_REQUEST = 954, + PHYSICS_MOVEMENT_NOTIFICATION = 955, + MOVE_INVENTORY_SINGLE = 956, + MOVE_INVENTORY_BATCH = 957, + MINI_GAME_SET_PARAMETERS = 958, + MINI_GAME_GET_TEAM_SKILLS = 961, + MINI_GAME_GET_TEAM_SCORE = 963, + MINI_GAME_GET_PLAYER_SCORE = 967, + MINI_GAME_GET_TEAM_COLOR = 972, + MINI_GAME_GET_TEAM_PLAYERS = 975, + MINI_GAME_UPDATE_CLIENT = 976, + MINI_GAME_GET_TEAM = 977, + MINI_GAME_GET_PARAMETERS = 978, + OBJECT_ACTIVATED_CLIENT = 980, + IS_RESURRECTING = 983, + GET_ITEM_OWNER = 984, + GET_STORED_CONFIG_DATA = 985, + SET_STORED_CONFIG_DATA = 986, + ON_PLAYER_RESSURECTED = 988, + PLAYER_RESURRECTION_FINISHED = 989, + TRANSFORM_CHANGELING_BUILD = 990, + RETURN_CHANGELING_BUILD_ID = 991, + SPEND_BRICK_INVENTORY_FOR_LXFML = 992, + BRICK_INVENTORY_FOR_LXFML_SPENT = 993, + REBUILD_BBB_AUTOSAVE_MSG = 995, + SET_BBB_AUTOSAVE = 996, + USE_BBB_INVENTORY = 998, + UN_USE_BBB_MODEL = 999, + BBB_LOAD_ITEM_REQUEST = 1000, + BBB_SAVE_REQUEST = 1001, + BBBLUP_SAVE_REQUEST = 1002, + BBB_GET_METADATA_SOURCE_ITEM = 1003, + BBB_RESET_METADATA_SOURCE_ITEM = 1004, + BBB_SAVE_RESPONSE = 1005, + PLAYER_EXIT = 1006, + SET_PVP_STATUS = 1008, + GET_PVP_STATUS = 1009, + IS_VALID_PVP_TARGET = 1010, + PVP_RENDER_NAME = 1011, + ATTACH_OBJECT = 1012, + DETACH_OBJECT = 1013, + BOUNCE_SUCCEEDED = 1014, + GET_GAME_OBJECT_POINTER = 1015, + PHANTOM_HKX_LOADED = 1016, + DELAY_CREATE_EFFECT = 1017, + CHOICE_BUILD_SELECTION_CONFIRMED = 1018, + NOTIFY_FADE_UP_VIS_COMPLETE = 1019, + ITEM_HAS_NEW_INFO = 1020, + RESET_SECONDARY_ANIMATION = 1021, + GET_PICK_TYPE = 1022, + SET_PICK_TYPE = 1023, + GET_PRIORITY_PICK_LIST_TYPE = 1024, + REQUEST_PICK_TYPE_UPDATE = 1025, + GET_OVERRIDE_PICK_TYPE = 1026, + REQUEST_DISPLAY_OBJECT_INFO = 1027, + REQUEST_SERVER_OBJECT_INFO = 1028, + REQUEST_OBJECT_INFO_AS_XML = 1029, + GET_OBJECT_REPORT_INFO = 1030, + GET_OBJECT_REPORT_WINDOW_CLOSE = 1031, + GET_OBJECT_REPORT_STATUS = 1032, + GET_MISSION_DATA_FOR_OBJECT_REPORT = 1033, + GET_OBJECT_ROLLOVER_INFO = 1034, + PERFORM_ZONE_ANALYSIS = 1035, + UPDATE_HK_VISUAL_IZATION = 1036, + CLEAR_ITEMS_OWNER = 1037, + APPLY_LINEAR_IMPULSE = 1038, + APPLY_ANGULAR_IMPULSE = 1039, + GET_CONTACT_NORMALS = 1040, + IS_WATCHING_FOR_EMOTE = 1041, + NOTIFY_CLIENT_OBJECT = 1042, + DISPLAY_ZONE_SUMMARY = 1043, + ZONE_SUMMARY_DISMISSED = 1044, + GET_PLAYER_ZONE_STATISTIC = 1045, + MODIFY_PLAYER_ZONE_STATISTIC = 1046, + APPLY_EXTERNAL_FORCE = 1049, + GET_APPLIED_EXTERNAL_FORCE = 1050, + ITEM_EQUIPPED = 1052, + ACTIVITY_STATE_CHANGE_REQUEST = 1053, + OVERRIDE_FRICTION = 1054, + ARRANGE_WITH_ITEM = 1055, + CHECK_CAN_BUILD_WITH_ITEM = 1056, + START_BUILDING_WITH_ITEM = 1057, + START_BUILD_SESSION = 1058, + FINISH_BUILD_SESSION = 1059, + DONE_BUILD_SESSION = 1060, + START_ARRANGING_WITH_ITEM = 1061, + FINISH_ARRANGING_WITH_ITEM = 1062, + DONE_ARRANGING_WITH_ITEM = 1063, + START_ARRANGE_MODE = 1064, + ARRANGE_MODE_WITH_ITEM = 1065, + FINISH_ARRANGE_MODE = 1066, + DONE_ARRANGE_MODE = 1067, + SET_BUILD_MODE = 1068, + BUILD_MODE_SET = 1069, + CONFIRM_BUILD_MODE = 1070, + BUILD_MODE_CONFIRMATION = 1071, + BUILD_EXIT_CONFIRMATION = 1072, + SET_BUILD_MODE_CONFIRMED = 1073, + BUILD_MODE_NOTIFICATION = 1074, + BUILD_MODE_NOTIFICATION_REPORT = 1075, + CLIENT_USE_MODULE_ON = 1076, + SET_MODEL_TO_BUILD = 1077, + SPAWN_MODEL_BRICKS = 1078, + CHECK_PRECONDITION = 1079, + CHECK_ALL_PRECONDITIONS = 1080, + NOTIFY_CLIENT_FAILED_PRECONDITION = 1081, + GET_IS_ITEM_EQUIPPED_BY_LOT = 1082, + GET_IS_ITEM_EQUIPPED_BY_ID = 1083, + GET_OBJECT_DIRECTION_VECTORS = 1084, + GET_CASTABLE_SKILLS = 1085, + CHOICEBUILD_COMPLETE = 1086, + GET_MISSION_CHAT = 1087, + GET_MISSION_AUDIO = 1088, + MODULE_EQUIPPED = 1089, + MODULE_DROPPED = 1090, + MODULE_PICKED_UP = 1091, + MODULE_INFO = 1092, + MOVE_ITEM_BETWEEN_INVENTORY_TYPES = 1093, + MODULAR_BUILD_BEGIN = 1094, + MODULAR_BUILD_END = 1095, + MODULAR_BUILD_MOVE_AND_EQUIP = 1096, + MODULAR_BUILD_FINISH = 1097, + SET_REGISTRATION_FOR_UI_UPDATE = 1114, + GO_TO_WAYPOINT = 1115, + ARRIVED_AT_DESIRED_WAYPOINT = 1116, + CHECK_WITHIN_BOUNDS = 1117, + ATTACH_TO_BUILD_ASSEMBLY = 1118, + SET_BUILD_ASSEMBLY = 1119, + RESET_BUILD_ASSEMBLY = 1120, + GET_INVENTORY_ITEM_INFO = 1125, + GET_ITEM_DETAILS = 1126, + GET_BUILD_ACTIVATOR = 1127, + GET_MISSION_ANIMATION = 1128, + MISSION_DIALOGUE_CANCELLED = 1129, + MODULE_ASSEMBLY_DB_DATA = 1130, + MODULE_ASSEMBLY_DB_DATA_FOR_CLIENT = 1131, + MODULE_ASSEMBLY_QUERY_DATA = 1132, + MODULE_ASSEMBLY_HKX_LOADED = 1133, + MODULE_ASSEMBLY_NIF_LOADED = 1134, + MODULE_ASSEMBLY_MAIN_NIF_LOADED = 1135, + MODULE_ASSEMBLY_KFM_LOADED = 1136, + GET_PRECONDITION_INFO = 1137, + GET_MODEL_LOT = 1138, + ANIMATION_FINISHED_PRELOADING = 1139, + CHILD_BUILD_ASSEMBLY_COMPLETE = 1140, + CHARACTER_UNSERIALIZED = 1141, + CHARACTER_NEEDS_TRANSITION = 1142, + SET_NEEDS_TRANSITION = 1143, + ECHO_SYNC_SKILL = 1144, + SYNC_SKILL = 1145, + GET_BEHAVIOR_HANDLE = 1146, + ADD_OUTSTANDING_BEHAVIOR = 1147, + REQUEST_SERVER_PROJECTILE_IMPACT = 1148, + OFF_WORLD_IMPACT_REQUEST = 1149, + SERVER_IMPACT_REQUEST = 1150, + DO_CLIENT_PROJECTILE_IMPACT = 1151, + MODULE_ASSEMBLY_PART_INFO = 1152, + GET_BUILD_TYPE = 1153, + CHECK_BUILD_TYPE = 1154, + MODULAR_BUILD_CONVERT_MODEL = 1155, + DO_NPC_SHOWCASE_MODEL_SUBMISSION = 1156, + GET_MISSION_I_DS_LIST = 1157, + SET_SHOWCASE_MISSION_NPC_VALS = 1158, + NOTIFY_SHOWCASE_MISSION_NP_COF_SUCCESS = 1159, + SEND_LUA_NOTIFICATION_REQUEST = 1160, + SEND_LUA_NOTIFICATION_CANCEL = 1161, + ACTIVATOR_TOGGLE = 1162, + MAKE_PHYSICS = 1163, + SET_RESPAWN_GROUP = 1164, + SET_PLAYER_ALLOWED_RESPAWN = 1165, + TOGGLE_SENDING_POSITION_UPDATES = 1166, + TOGGLE_RECEIVING_POSITION_UPDATES = 1167, + GET_ENEMY_PRECONDITIONS = 1168, + START_MODEL_VISUALIZATION = 1169, + PLACE_PROPERTY_MODEL = 1170, + PROPERTY_MODEL_PLACED = 1171, + OPEN_EXHIBIT_REPLACE_MODEL_UI = 1172, + REPLACE_SHOWCASEMODEL = 1173, + CLEAR_UI_HOOK_EXHIBIT_REPLACEMENT = 1174, + ATTACH_FLYTO_SCREEN_POS = 1175, + VEHICLE_GET_DEBUG_INFO = 1176, + VEHICLE_GET_MOVEMENT_INPUT_VALUES = 1177, + ACTIVITY_TIMER_SET = 1178, + ACTIVITY_TIMER_UPDATE = 1179, + ACTIVITY_TIMER_GET = 1180, + ACTIVITY_TIMER_STOP = 1181, + ACTIVITY_TIMER_DONE = 1182, + GET_ATTACK_PRIORITY = 1183, + UI_MESSAGE_SERVER_TO_SINGLE_CLIENT = 1184, + UI_MESSAGE_SERVER_TO_ALL_CLIENTS = 1185, + SET_LOSE_COINS_ON_DEATH = 1186, + LOAD_EFFECTS = 1187, + SET_CUSTOM_BUILD = 1188, + ACTIVITY_TIMER_RESET = 1189, + ACTIVITY_TIMER_STOP_ALL_TIMERS = 1190, + ACTIVITY_TIMER_MODIFY = 1191, + SET_KEYFRAM_TRANSFORM = 1192, + ADD_ACTIVITY_OWNER = 1193, + REMOVE_ACTIVITY_OWNER = 1194, + GET_CURRENT_ACTIVITY_OWNERS = 1195, + TOGGLE_SKILL_DEBUGGING = 1196, + PET_TAMING_TRY_BUILD = 1197, + REPORT_BUG = 1198, + REPORT_OFFENSIVE_MODEL = 1199, + REPORT_OFFENSIVE_PROPERTY = 1200, + GET_ACTIVITY_ID = 1201, + REQUEST_SMASH_PLAYER = 1202, + GET_TIMES_REQUESTED_SMASH = 1203, + RESPONSE_SMASH_PLAYER = 1204, + MODIFY_DAMAGE_ABSORPTION = 1205, + UNCAST_SKILL = 1206, + GET_SHOWCASE_MODEL_READY = 1207, + IS_SKILL_NEEDED = 1208, + GET_COMPONENT_DATA = 1209, + VEHICLE_SET_POWERSLIDE_METHOD = 1210, + SHOWS_NAMETAG = 1211, + FIRE_EVENT_CLIENT_SIDE = 1213, + GET_REQUIRES_NAME_RESUBMISSION = 1216, + SET_REQUIRES_NAME_RESUBMISSION = 1217, + TOGGLE_GM_INVIS = 1218, + GET_GM_INVIS = 1219, + KILLED_PLAYER = 1220, + GET_PICKUP_SKILLS = 1221, + GET_FACTION_SKILL = 1222, + CHANGE_OBJECT_WORLD_STATE = 1223, + GET_OBJECT_WORLD_STATE = 1224, + VISIBILITY_CHANGED = 1225, + MOTION_EFFECT_COMPLETE = 1226, + TOGGLE_FREEZE_MODE = 1227, + SHADER_RENDER_MSG_APPLIED = 1228, + PLAYER_RENAME_REQUEST = 1229, + VEHICLE_LOCK_INPUT = 1230, + VEHICLE_UNLOCK_INPUT = 1231, + SET_AIR_MOVEMENT = 1232, + MOVEMENT_STATE_CHANGED = 1233, + SKILL_MOVEMENT_CANCELLED = 1234, + AIR_MOVEMENT_COMPLETE = 1235, + CANCEL_AIR_MOVEMENT = 1236, + FORCE_MINIFIGURE_TEXTURE_UPDATE = 1237, + RESYNC_EQUIPMENT = 1238, + ADD_COMPONENT_TO_OBJECT = 1239, + VEHICLE_GET_MAX_GAME_SPEED = 1240, + VEHICLE_GET_MAX_GAME_SPEED_WITH_BOOST = 1241, + GET_SPEED_FACTOR = 1242, + FREEZE_INVENTORY = 1243, + ADD_STAT_TRIGGER = 1244, + ADD_STAT_TRIGGER_CHILD = 1245, + CHECK_TRIGGERS_AND_FIRE_IF_NEEDED = 1246, + STAT_EVENT_TRIGGERED = 1247, + GET_CURRENT_SPEED = 1248, + RACING_PLAYER_RANK_CHANGED = 1249, + RACING_PLAYER_WRONG_WAY_STATUS_CHANGED = 1250, + RACING_PLAYER_CROSSED_FINISH_LINE = 1251, + RACING_RESET_PLAYER_TO_LAST_RESET = 1252, RACING_SERVER_SET_PLAYER_LAP_AND_PLANE = 1253, - RACING_SET_PLAYER_RESET_INFO = 1254, - RACING_PLAYER_INFO_RESET_FINISHED = 1255, - RACING_PLAYER_OUT_OF_TRACK_BOUNDS = 1256, - RACING_SYNC_INFO = 1257, - RACING_PLAYER_KEEP_ALIVE = 1258, - RACING_SERVER_KEEP_ALIVE = 1259, - LOCK_NODE_ROTATION = 1260, - GET_PHYSICS_COLLIDABLE = 1261, - SET_PHYSICS_COLOR_FOR_DEBUG = 1262, - GET_PHYSICS_COLOR_FOR_DEBUG = 1263, - SET_PHYSICS_TEXT_AND_STATE_FOR_DEBUG = 1264, - REQUEST_INFO_FOR_PHYSICS_DEBUGGER = 1265, - GET_COLLIDABLE_AT_ADDRESS = 1266, - REQUEST_SERVER_GET_COLLIDABLE_REPORT = 1267, - COLLISION_POINT_ADDED = 1268, - COLLISION_POINT_REMOVED = 1269, - SET_ATTACHED = 1270, - SET_DESTROYABLE_MODEL_BRICKS = 1271, - VEHICLE_SET_POWERSLIDE_LOCK_WHEELS = 1272, - VEHICLE_SET_WHEEL_LOCK_STATE = 1273, - SHOW_HEALTH_BAR = 1274, - GET_SHOWS_HEALTH_BAR = 1275, - NOTIFY_VEHICLE_OF_RACING_OBJECT = 1276, - ENABLE_CLIENT_EQUIP_MODE = 1278, - CLIENT_EQUIP_MODE_WAS_CHANGED = 1279, - VEHICLE_GET_SPAWN_HEIGHT = 1281, - SET_NAME_BILLBOARD_STATE = 1284, - CHECK_TARGETING_REQUIREMENTS = 1285, - VEHICLE_CAN_WRECK = 1286, - ATTACH_RENDER_EFFECT = 1287, - DETACH_RENDER_EFFECT = 1288, - IS_PET_USING_ABILITY = 1289, - SET_BLOCKING = 1290, - GET_BLOCKING = 1291, - UPDATE_BLOCKING = 1292, - CHECK_DAMAGE_RESULTS = 1293, - GET_OBJECT_IS_IN_RENDER_PIPE = 1294, - ATTACH_MOTION_FX_ARC = 1295, - PLAYER_REACHED_RESPAWN_CHECKPOINT = 1296, - GET_LAST_RESPAWN_CHECKPOINT = 1297, - GET_VEHICLE_DEBUG_COLLISIONS = 1298, - VISITING_PROPERTY = 1299, - HANDLE_UGC_POST_DELETE_BASED_ON_EDIT_MODE = 1300, - HANDLE_UGC_POST_CREATE_BASED_ON_EDIT_MODE = 1301, - WORLD_CHECK_RESPONSE = 1302, - ADD_DAMAGE_REDUCTION = 1303, - REMOVE_DAMAGE_REDUCTION = 1304, - PROPERTY_CONTENTS_FROM_CLIENT = 1305, - GET_MODELS_ON_PROPERTY = 1306, - IS_SHOWCASE_DISPLAY_PEDESTAL = 1307, - MATCH_REQUEST = 1308, - MATCH_RESPONSE = 1309, - MATCH_UPDATE = 1310, - IS_DEFAULT_SKILL_ACTIVE = 1311, - PROPERTY_EDITOR_CARRY = 1312, - GET_LOOT_OWNER_ID = 1313, - GET_ENEMY_LOOT_TAG = 1314, - GET_NUM_SPAWNED_BRICKS = 1315, - SET_ITEM_EQUIP_TRANSFORM = 1316, - GET_ITEM_EQUIP_TRANSFORM = 1317, - GET_PROPERTY_BUDGET_INFO = 1318, - CHATBOX_IS_INIT = 1319, - GET_SPAWNED_I_DS = 1320, - GET_IMMUNITY = 1321, - GET_GM_IMMUNITY = 1322, - PROCESS_REMOTE_SLASH_COMMAND = 1323, - IS_FRIEND_MSG = 1324, - RACING_PLAYER_EVENT = 1325, - GET_PROPERTY_EDIT_VALID = 1326, - REFRESH_RENDER_ASSET = 1327, - VEHICLE_APPLY_STAT_CHANGE = 1328, - ZONE_LOADED_INFO = 1329, - B3_INTERFACE_ACTION = 1330, - RACING_STAT_MODIFIERS_FROM_CLIENT = 1332, - GET_RACING_STAT_MODIFIERS = 1333, - SET_RACING_STAT_MODIFIERS = 1334, - GET_RACING_LICENSE_LEVEL = 1335, - ADD_EQUIP_CAST = 1336, - SHOW_BILLBOARD_INTERACT_ICON = 1337, - CHANGE_IDLE_FLAGS = 1338, - GET_ANIMATION_FLAG = 1339, - VEHICLE_ADD_PASSIVE_BOOST_ACTION = 1340, - VEHICLE_REMOVE_PASSIVE_BOOST_ACTION = 1341, - NOTIFY_SERVER_VEHICLE_ADD_PASSIVE_BOOST_ACTION = 1342, - NOTIFY_SERVER_VEHICLE_REMOVE_PASSIVE_BOOST_ACTION = 1343, - VEHICLE_ADD_SLOWDOWN_ACTION = 1344, - VEHICLE_REMOVE_SLOWDOWN_ACTION = 1345, - NOTIFY_SERVER_VEHICLE_ADD_SLOWDOWN_ACTION = 1346, - NOTIFY_SERVER_VEHICLE_REMOVE_SLOWDOWN_ACTION = 1347, - FORCE_UPDATE_ANIMATIONS = 1348, - MATCH_GET_DATA_FOR_PLAYER = 1349, - BUYBACK_FROM_VENDOR = 1350, - SET_INVENTORY_FILTER = 1351, - GET_INVENTORY_FILTER = 1352, - GET_INVENTORY_GROUPS = 1353, - GET_INVENTORY_GROUP = 1354, - UPDATE_INVENTORY_GROUP = 1355, - UPDATE_INVENTORY_UI = 1356, - UPDATE_INVENTORY_GROUP_CONTENTS = 1357, - CAN_REMOVE_ITEM_FROM_INVENTORY = 1362, - DRIVE_THIS_CAR = 1363, - VEHICLE_CAN_ADD_ACTIVE_BOOST = 1364, - VEHICLE_ADD_ACTIVE_BOOST = 1365, - SET_PROPERTY_ACCESS = 1366, + RACING_SET_PLAYER_RESET_INFO = 1254, + RACING_PLAYER_INFO_RESET_FINISHED = 1255, + RACING_PLAYER_OUT_OF_TRACK_BOUNDS = 1256, + RACING_SYNC_INFO = 1257, + RACING_PLAYER_KEEP_ALIVE = 1258, + RACING_SERVER_KEEP_ALIVE = 1259, + LOCK_NODE_ROTATION = 1260, + GET_PHYSICS_COLLIDABLE = 1261, + SET_PHYSICS_COLOR_FOR_DEBUG = 1262, + GET_PHYSICS_COLOR_FOR_DEBUG = 1263, + SET_PHYSICS_TEXT_AND_STATE_FOR_DEBUG = 1264, + REQUEST_INFO_FOR_PHYSICS_DEBUGGER = 1265, + GET_COLLIDABLE_AT_ADDRESS = 1266, + REQUEST_SERVER_GET_COLLIDABLE_REPORT = 1267, + COLLISION_POINT_ADDED = 1268, + COLLISION_POINT_REMOVED = 1269, + SET_ATTACHED = 1270, + SET_DESTROYABLE_MODEL_BRICKS = 1271, + VEHICLE_SET_POWERSLIDE_LOCK_WHEELS = 1272, + VEHICLE_SET_WHEEL_LOCK_STATE = 1273, + SHOW_HEALTH_BAR = 1274, + GET_SHOWS_HEALTH_BAR = 1275, + NOTIFY_VEHICLE_OF_RACING_OBJECT = 1276, + ENABLE_CLIENT_EQUIP_MODE = 1278, + CLIENT_EQUIP_MODE_WAS_CHANGED = 1279, + VEHICLE_GET_SPAWN_HEIGHT = 1281, + SET_NAME_BILLBOARD_STATE = 1284, + CHECK_TARGETING_REQUIREMENTS = 1285, + VEHICLE_CAN_WRECK = 1286, + ATTACH_RENDER_EFFECT = 1287, + DETACH_RENDER_EFFECT = 1288, + IS_PET_USING_ABILITY = 1289, + SET_BLOCKING = 1290, + GET_BLOCKING = 1291, + UPDATE_BLOCKING = 1292, + CHECK_DAMAGE_RESULTS = 1293, + GET_OBJECT_IS_IN_RENDER_PIPE = 1294, + ATTACH_MOTION_FX_ARC = 1295, + PLAYER_REACHED_RESPAWN_CHECKPOINT = 1296, + GET_LAST_RESPAWN_CHECKPOINT = 1297, + GET_VEHICLE_DEBUG_COLLISIONS = 1298, + VISITING_PROPERTY = 1299, + HANDLE_UGC_POST_DELETE_BASED_ON_EDIT_MODE = 1300, + HANDLE_UGC_POST_CREATE_BASED_ON_EDIT_MODE = 1301, + WORLD_CHECK_RESPONSE = 1302, + ADD_DAMAGE_REDUCTION = 1303, + REMOVE_DAMAGE_REDUCTION = 1304, + PROPERTY_CONTENTS_FROM_CLIENT = 1305, + GET_MODELS_ON_PROPERTY = 1306, + IS_SHOWCASE_DISPLAY_PEDESTAL = 1307, + MATCH_REQUEST = 1308, + MATCH_RESPONSE = 1309, + MATCH_UPDATE = 1310, + IS_DEFAULT_SKILL_ACTIVE = 1311, + PROPERTY_EDITOR_CARRY = 1312, + GET_LOOT_OWNER_ID = 1313, + GET_ENEMY_LOOT_TAG = 1314, + GET_NUM_SPAWNED_BRICKS = 1315, + SET_ITEM_EQUIP_TRANSFORM = 1316, + GET_ITEM_EQUIP_TRANSFORM = 1317, + GET_PROPERTY_BUDGET_INFO = 1318, + CHATBOX_IS_INIT = 1319, + GET_SPAWNED_I_DS = 1320, + GET_IMMUNITY = 1321, + GET_GM_IMMUNITY = 1322, + PROCESS_REMOTE_SLASH_COMMAND = 1323, + IS_FRIEND_MSG = 1324, + RACING_PLAYER_EVENT = 1325, + GET_PROPERTY_EDIT_VALID = 1326, + REFRESH_RENDER_ASSET = 1327, + VEHICLE_APPLY_STAT_CHANGE = 1328, + ZONE_LOADED_INFO = 1329, + B3_INTERFACE_ACTION = 1330, + RACING_STAT_MODIFIERS_FROM_CLIENT = 1332, + GET_RACING_STAT_MODIFIERS = 1333, + SET_RACING_STAT_MODIFIERS = 1334, + GET_RACING_LICENSE_LEVEL = 1335, + ADD_EQUIP_CAST = 1336, + SHOW_BILLBOARD_INTERACT_ICON = 1337, + CHANGE_IDLE_FLAGS = 1338, + GET_ANIMATION_FLAG = 1339, + VEHICLE_ADD_PASSIVE_BOOST_ACTION = 1340, + VEHICLE_REMOVE_PASSIVE_BOOST_ACTION = 1341, + NOTIFY_SERVER_VEHICLE_ADD_PASSIVE_BOOST_ACTION = 1342, + NOTIFY_SERVER_VEHICLE_REMOVE_PASSIVE_BOOST_ACTION = 1343, + VEHICLE_ADD_SLOWDOWN_ACTION = 1344, + VEHICLE_REMOVE_SLOWDOWN_ACTION = 1345, + NOTIFY_SERVER_VEHICLE_ADD_SLOWDOWN_ACTION = 1346, + NOTIFY_SERVER_VEHICLE_REMOVE_SLOWDOWN_ACTION = 1347, + FORCE_UPDATE_ANIMATIONS = 1348, + MATCH_GET_DATA_FOR_PLAYER = 1349, + BUYBACK_FROM_VENDOR = 1350, + SET_INVENTORY_FILTER = 1351, + GET_INVENTORY_FILTER = 1352, + GET_INVENTORY_GROUPS = 1353, + GET_INVENTORY_GROUP = 1354, + UPDATE_INVENTORY_GROUP = 1355, + UPDATE_INVENTORY_UI = 1356, + UPDATE_INVENTORY_GROUP_CONTENTS = 1357, + CAN_REMOVE_ITEM_FROM_INVENTORY = 1362, + DRIVE_THIS_CAR = 1363, + VEHICLE_CAN_ADD_ACTIVE_BOOST = 1364, + VEHICLE_ADD_ACTIVE_BOOST = 1365, + SET_PROPERTY_ACCESS = 1366, ZONE_PROPERTY_MODEL_PLACED = 1369, - ZONE_PROPERTY_MODEL_ROTATED = 1370, - ZONE_PROPERTY_MODEL_REMOVED_WHILE_EQUIPPED = 1371, - ZONE_PROPERTY_MODEL_EQUIPPED = 1372, + ZONE_PROPERTY_MODEL_ROTATED = 1370, + ZONE_PROPERTY_MODEL_REMOVED_WHILE_EQUIPPED = 1371, + ZONE_PROPERTY_MODEL_EQUIPPED = 1372, ZONE_PROPERTY_MODEL_PICKED_UP = 1373, ZONE_PROPERTY_MODEL_REMOVED = 1374, - GET_VERSIONING_INFO = 1381, - OPEN_UG_BEHAVIOR_UI = 1382, - VEHICLE_NOTIFY_HIT_SMASHABLE = 1383, - GET_TETHER_RADIUS = 1384, - VEHICLE_NOTIFY_HIT_EXPLODER = 1385, - CHECK_NEAREST_ROCKET_LAUNCH_PRE_CONDITIONS = 1386, - REQUEST_NEAREST_ROCKET_LAUNCH_PRE_CONDITIONS = 1387, - CONFIGURE_RACING_CONTROL_CLIENT = 1389, - NOTIFY_RACING_CLIENT = 1390, - RACING_PLAYER_HACK_CAR = 1391, - RACING_PLAYER_LOADED = 1392, - RACING_CLIENT_READY = 1393, - POSSESSION_FINISHED_ATTACH = 1394, - UPDATE_CHAT_MODE = 1395, - VEHICLE_NOTIFY_FINISHED_RACE = 1396, - EQUIPPED_ITEM_STARTUP = 1397, - FACTION_TRIGGER_ITEM_EQUIPPED = 1400, - FACTION_TRIGGER_ITEM_UNEQUIPPED = 1401, - TOGGLE_PROPERTY_BEHAVIORS = 1402, - GET_UG_OBJECT_INFO = 1405, - RESET_PROPERTY_BEHAVIORS = 1406, - IS_PROPERTY_MODEL_RESET = 1407, - SET_UG_OBJECT_NAME_AND_DESCRIPTION = 1408, - SET_CONSUMABLE_ITEM = 1409, - VEHICLE_GET_CURRENT_LAP = 1410, - GET_UGID = 1411, - SET_UGID = 1412, - UGID_CHANGED = 1413, - RACING_GET_CURRENT_LAP_FOR_PLAYER = 1414, - SUB_ITEM_UN_EQUIPPED = 1415, - SET_CUSTOM_DROP_SHADOW_TEXTURE = 1416, - GET_PLAYER_KIT_FACTION = 1418, - USED_INFORMATION_PLAQUE = 1419, - RACING_ENABLE_WRONG_WAY_RESET = 1420, - RACING_TOGGLE_RUBBER_BANDING = 1421, - GET_RACING_CONTROL_DEBUG_INFO = 1422, - SET_PROPERTY_BOUNDS_VISIBILITY = 1423, - SET_PROPERTY_VENDOR_VISIBILITY = 1424, - SET_EQUIP_STATE = 1425, - NOTIFY_COMBAT_AI_STATE_CHANGE = 1426, - SET_PROPERTY_MODEL_INTERACTIVE = 1430, - SERVER_STATE_NOTIFY = 1431, - GET_SERVER_STATE = 1432, - GET_ICON_FOR_PROXIMITY = 1433, - GET_LEGO_CLUB_MEMBERSHIP_STATUS = 1434, - SET_STATUS_IMMUNITY = 1435, - GET_STATUS_IMMUNITY = 1436, - TEAM_IS_MEMBER = 1437, - ACTIVATE_BRICK_MODE = 1438, - GET_BUILD_OBJECT_ID = 1439, - SET_ANIMATION_ENABLED = 1444, - PAUSE_COOLDOWNS = 1446, - FORCE_UPDATE_RENDER_NODE = 1447, - SET_PET_NAME_MODERATED = 1448, - TOGGLE_STRAFE_MODE = 1449, - SET_SCHEME_SPEED_SCALE = 1450, - CANCEL_SKILL_CAST = 1451, - CHECK_PLAYER_ASSEMBLY_FOR_UNIQUE_MODULE_BY_LOT = 1454, - MODULE_ASSEMBLY_DB_DATA_TO_LUA = 1455, - IS_ALLY = 1458, - MODIFY_LEGO_SCORE = 1459, - GET_LEGO_SCORE = 1460, - GET_PLAYER_LEVEL = 1461, - NOTIFY_LEGO_SCORE_UPDATE = 1462, - SET_LEGO_SCORE = 1463, - UPDATE_BEHAVIOR_EXECUTION_DETAILS = 1466, - RESTORE_TO_POST_LOAD_STATS = 1468, - PICKUP_OBJECT_ERROR = 1469, - CHECK_AND_SHOW_INVENTORY_FULL_TIP = 1470, - SET_RAIL_MOVEMENT = 1471, - START_RAIL_MOVEMENT = 1472, - SET_UP_VECTOR = 1473, - CANCEL_RAIL_MOVEMENT = 1474, - GET_RAIL_INFO = 1475, - CLIENT_RAIL_MOVEMENT_READY = 1476, - PLAYER_RAIL_ARRIVED_NOTIFICATION = 1477, - NOTIFY_RAIL_ACTOVATOR_STATE_CHANGE = 1478, - REQUEST_RAIL_ACTIVATOR_STATE = 1479, - NOTIFY_REWARD_MAILED = 1480, - UPDATE_PLAYER_STATISTIC = 1481, - IS_IN_COMBAT = 1482, - IS_PRIMITIVE_MODEL_MSG = 1483, - SCALE_PRIMITICE_MODEL_MSG = 1484, - MODIFY_GHOSTING_DISTANCE = 1485, - PRIMITIVE_MODEL_CHANGED_MSG = 1487, - GET_PROPRTY_CLONE_ID = 1488, - REQUEST_LEAVE_PROPERTY = 1489, - REQUERY_PROPERTY_MODELS = 1491, - GET_BEHAVIOR_COUNT = 1492, - UPDATE_BEHAVIOR_CONTROLS = 1493, - MODULE_ASSEMBLY_LXFML_LOADED = 1494, - REQUEST_ASSEMBLED_LXFML = 1495, - ASSEMBLED_LXFML_LOADED = 1496, - GET_REORIENT_UP_VECTOR = 1497, - MODULAR_ASSEMBLY_NIF_COMPLETED = 1498, - CHARACTER_DISCONNECT_BEFORE_CREATE = 1499, - SEND_LAUNCH_TO_PREVIOUS_ZONE_TO_CLIENT = 1500, - ROCKETLAUNCH_REQUEST_DEFAULT_MAP_ID = 1501, - BEGIN_LAUNCH = 1502, - PROCESS_CLAIM_CODES = 1503, - GET_LAST_ZONE_ID = 1504, - ADD_RUN_SPEED_MODIFIER = 1505, - REMOVE_RUN_SPEED_MODIFIER = 1506, - SKILL_EVENT_FIRED = 1507, - SEND_HOT_PROPERTY_DATA = 1510, - GET_HOT_PROPERTY_DATA = 1511, - GET_EQUIPPED_ITEMS_IN_SET = 1512, - IS_ITEM_IN_SET = 1513, - GET_INVENTORY_TYPE_FOR_LOT = 1514, - GET_BANK_TYPE_FOR_LOT = 1515, - NOTIFY_NOT_ENOUGH_INV_SPACE = 1516, - IMPORT_MODEL_TO_BBB = 1517, - SEARCH_NEARBY_OBJECTS = 1518, - SEARCH_NEARBY_OBJECTS_REQUEST_BY_LOT = 1519, - REQUEST_OBJECT_POSITION_BY_ID = 1520, - SEARCH_NEARBY_OBJECTS_REQUEST_BY_COMPONENT = 1521, - SEARCH_NEARBY_OBJECTS_RESPONSE = 1522, - BROADCAST_NON_STANDARD_COLLISIONS = 1523, - GET_REGISTERED_NON_STANDARD_COLLISION_GROUP = 1524, - BROADCAST_CRUSHED_NOTIFICATIONS = 1525, - GET_REGISTERED_CRUSHED_COLLISION_GROUPS = 1526, - IS_BEING_CRUSHED = 1527, - GET_SUPPORTING_OBJECT = 1528, - TREAT_RIGID_BODY_COLLSIONS_AS_FIXED = 1529, - BROADCAST_TELEPORTED_WITHIN_NOTIFICATION = 1530, - GET_REGISTERED_TELEPORTED_WITHIN_OBJECT_GROUP = 1531, - GET_INTERPENTRATING_INFORMATION = 1532, - OBJECT_TELEPORTED_WITHIN = 1533, - SET_PHYSICS_SOLVER_PROPERTIES = 1534, - HAS_BEHAVIORS = 1535, - PLAY_BEHAVIOR_SOUND = 1536, - GET_PLAYER_BEHAVIOR_TIER = 1537, - GET_EMOTE_ANIMATION_TIME = 1538, - GET_CHARACTER_STAT_TRACKING = 1539, - PLAYER_INVENTORY_READY = 1540, - SET_PRECONDITIONS = 1541, - DETACH_SHADOW = 1542, - GET_LOOT_INFO = 1543, - GET_PLAYERS_ON_PROPERTY = 1544, - PROPERTY_SPAWN_BY_BEHAVIOR = 1545, - NOTIFY_PROPERTY_OF_EDIT_MODE = 1546, - UPDATE_PROPERTY_PERFORMANCE_COST = 1547, - GET_PROPERTY_PERFORMANCE_COST = 1548, - GET_INVENTORY_ITEM_WITH_SUBKEY = 1549, - DISPLAY_PROPERTY_SUMMARY_SCREEN = 1550, - VALIDATE_BBB_MODEL = 1551, - BBB_MODEL_VALIDATION = 1552, - PROPERTY_ENTRANCE_BEGIN = 1553, - CHECK_LIST_OF_PRECONDITIONS_FROM_LUA = 1554, - GET_PROPERTYIN_ZONE = 1555, - GET_ZONE_ID_FROM_MULTI_ZONE_ENTRANCE = 1556, - TEAM_SET_LEADER = 1557, - TEAM_INVITE_CONFIRM = 1558, - TEAM_GET_STATUS_RESPONSE = 1559, - MINI_GAME_ENABLE_LOCAL_TEAMS = 1560, - TEAM_INVITE_FINAL_RESPONSE = 1561, - TEAM_ADD_PLAYER = 1562, - TEAM_REMOVE_PLAYER = 1563, - TEAM_CREATE_LOCAL = 1564, - TEAM_GET_LOOT = 1565, - TEAM_SET_LOOT = 1566, - SET_ZERO_IMPULSE_AGAINST_COLLISION_GROUPS = 1567, - SET_CENTER_OF_MASS_TO_PHYSICAL_CENTER = 1568, - SET_INERTIA_INVERSE = 1569, - ADD_REMOVE_CLIMBING_LISTENER = 1570, - GET_INVENTORYITEM_DETAILS = 1571, - PERFORM_CLIENT_SIDE_DEATH = 1572, - LEGO_CLUB_ACCESS_RESULT = 1573, - VEHICLE_GET_IS_REVERSING = 1574, - CHECK_CLAIM_CODE = 1575, - GET_HOLIDAY_EVENT = 1576, - SET_EMOTES_ENABLED = 1577, - GET_EMOTES_ENABLED = 1578, - FREEZE_ANIMATION = 1579, - LOCALIZED_ANNOUNCEMENT_SERVER_TO_SINGLE_CLIENT = 1580, - ANCHOR_FX_NODE = 1581, - WS_GET_FRIEND_LIST_MESSAGE = 1582, - WS_ADD_FRIEND_RESPONSE = 1583, - WS_REMOVE_FRIEND_REPSONSE = 1584, - WS_UPDATE_FRIEND_STATUS = 1585, - WS_UPDATE_FRIEND_NAME = 1586, - IS_BEST_FRIEND = 1587, - TEAM_NOTIFY_UPDATE_MISSION_TASK = 1588, - VEHICLE_ADD_SLIPPERY_ACTION = 1589, - VEHICLE_REMOVE_SLIPPERY_ACTION = 1590, - SET_RESURRECT_RESTORE_VALUES = 1591, - GET_MASS = 1592, - SET_PROPERTY_MODERATION_STATUS = 1593, - UPDATE_PROPERTY_MODEL_DEFAULTS = 1594, - UPDATE_PROPERTYMODEL_COUNT = 1595, - GET_PROPERTY_MODEL_COUNT = 1596, - IS_PLAYER_LOADED = 1597, - ATTACH_RENDER_EFFECT_FROM_LUA = 1598, - DETACH_RENDER_EFFECT_FROM_LUA = 1599, - TEAM_IS_LOCAL = 1600, - CREATE_CAMERA_PARTICLES = 1602, - SET_SMASHABLE_GRAVITY_FACTOR = 1603, - VEHICLE_SET_SURFACE_TYPE_OVERRIDE = 1604, - VEHICLE_NOTIFY_HIT_IMAGINATION = 1605, - VEHICLE_NOTIFY_HIT_IMAGINATION_SERVER = 1606, - GET_SPAWNED_OBJECT_SPAWNER_INFO = 1607, - SAVE_PROPERTY = 1608, - SET_PROPERTY_DIRTY = 1609, - GET_PROPERTY_DIRTY = 1610, - GET_MODEL_LIST_FROM_PLAQUE = 1611, - GET_ORIGINAL_POSITION_AND_ROTATION = 1612, - VEHICLE_SET_MASS_FOR_COLLISION = 1613, - GET_INVENTORY_GROUP_COUNT = 1614, - GET_LATEST_CHAT_CHANNEL_USED = 1615, - SET_SUGGEST_LIST_LANGUAGE = 1616, - VEHICLE_STOP_BOOST = 1617, - START_CELEBRATION_EFFECT = 1618, - LOCK_PLAYER = 1619, - VEHICLE_IS_INPUT_LOCKED = 1620, - GET_MULTI_NODE = 1621, - RENEW_PROPERTY = 1622, - RENEW_PROPERTY_RESULT = 1623, - CHARGE_ACTIVITY_COST = 1624, - CAN_RECEIVE_LOOT = 1625, - JOIN_PLAYER_FACTION = 1626, - SET_PROXIMITY_UPDATE_RATE = 1627, - BBB_MODELS_TO_SAVE = 1628, - BELONGS_TO_FACTION = 1629, - MODIFY_FACTION = 1630, - FACTION_UPDATE = 1631, - CELEBRATION_COMPLETED = 1632, - PLAY_PRIMARY_MODULE_SOUNDS = 1633, - STOP_PRIMARY_MODULE_SOUNDS = 1634, - REQUEST_TEAM_PLAYER_UI_UPDATE = 1635, - SET_LOCAL_TEAM = 1636, - TEAM_GET_WORLD_MEMBERS_IN_RADIUS = 1637, - GET_PARENTAL_LEVEL = 1638, - GET_OBJECTS_MESSAGE_HANDLERS = 1639, - PROPERTY_FEATURED = 1640, - PROPERTY_NOTIFY_MODEL_SPAWNED = 1641, - SERVER_DONE_LOADING_ALL_OBJECTS = 1642, - GET_DONATION_TOTAL = 1643, - UPDATE_DONATION_VALUES = 1644, - DELAYED_DELETE_DROP_EFFECT_BRICK = 1645, - SET_CAMERA_UNLOCK_ROTATION_STATE = 1646, - ADD_BUFF = 1647, - REMOVE_BUFF = 1648, - CHECK_FOR_BUFF = 1649, - TEAM_MEMBERS_DISOWNS_LOOT = 1650, - GET_WHEEL_TEMPLATE = 1651, - ADD_SKILL_IN_PROGRESS = 1652, - REMOVE_SKILL_IN_PROGRESS = 1653, - SET_OVERHEAD_ICON_OFFSET = 1654, - SET_BILLBOARD_OFFSET = 1655, - SET_CHAT_BUBBLE_OFFSET = 1656, - SET_NO_TEAM_INVITES = 1657, - RESET_MODEL_TO_DEFAULTS = 1658, - IS_PROPERTY_IN_EDIT_MODE = 1659, - GET_OBJECTS_IN_PHYSICS_BOUNDS = 1660, - ENABLE_LU_REMOTE = 1661, - SET_IS_USING_FREE_TRIAL = 1662, - GET_IS_USING_FREE_TRIAL = 1663, - GET_ACCOUNT_FREE_TRIAL_MODE = 1664, - TOGGLE_INVENTORY_ITEM_LOCK = 1665, - REQUEST_MOVE_ITEM_BETWEEN_INVENTORY_TYPES = 1666, - RESPONSE_MOVE_ITEM_BETWEEN_INVENTORY_TYPES = 1667, - REMOVE_SUB_COMPONENT = 1668, - TEAM_GET_LOOT_MEMBERS = 1669, - GET_FACTION_TOKEN_TYPE = 1670, - GET_SUBSCRIPTION_PRICING = 1671, - INFORM_AFK = 1672, - OVERHEAD_INDICATOR_CREATED = 1673, - SET_OVERHEAD_INDICATOR_GRID_LOCATION = 1674, - PLAYSTREAM_LOAD_PENDING = 1675, - PLAYER_SET_CAMERA_CYCLING_MODE = 1676, - PLAYER_GET_CAMERA_CYCLING_MODE = 1677, - FORCE_CAMERA_TARGET_CYCLE = 1678, - GET_OBJECT_CONFIG_DATA = 1679, - GET_OBJECT_CONFIG_DATA_NON_CONST = 1680, - SCOPE_CHANGED = 1681, - SET_ALLOW_JUMP_WITHOUT_SUPPORT = 1682, - GET_ALLOW_JUMP_WITHOUT_SUPPORT = 1683, - SET_JUMP_HEIGHT_SCALE = 1684, - GET_JUMP_HEIGHT_SCALE = 1685, - SET_VELOCITY_RESISTANCE = 1686, - GET_VELOCITY_RESISTANCE = 1687, - GATE_RUSH_VEHICLE_HIT_GATE = 1688, - GATE_RUSH_PLAYER_COLLECTED_GATE = 1689, - GATE_RUSH_ADD_GATE = 1690, - GATE_RUSH_REMOVE_GATE = 1691, - NOTIFY_VEHICLE_UPDATED = 1692, - VEHICLE_NOTIFY_HIT_WEAPON_POWERUP = 1693, - VEHICLE_NOTIFY_HIT_WEAPON_POWERUP_SERVER = 1694, - LOCAL_PLAYER_TARGETED = 1696, - SKILL_COUNT_CHANGED = 1697, - DO_YAW_ROTATION = 1698, - DO_PITCH_ROTATION = 1699, - DO_ROLL_ROTATION = 1700, - GET_CURRENT_LOOT_MATRIX = 1701, - SEND_MULTI_MISSION_OFFER_UPDATE_I_DS = 1702, - SET_AIR_SPEED_VALUES = 1703, - USE_LAUNCHER = 1704, - START_LAUNCHER = 1705, - STOP_LAUNCHER = 1706, - CAN_USE_JET_PACK = 1707, - JET_PACK_STATE_CHANGED = 1708, - TURN_OFF_JET_PACK = 1709, - ADD_PLAYER_JET_PACK_PAD = 1710, - SET_JET_PACK_WARNING = 1711, - JET_PACK_DISABLED = 1712, - JET_PACK_PAD_ENTERED = 1713, - UPDATE_RENDER_POSSESSION_FLAG = 1714, - POSSESSABLE_GET_ATTACH_OFFSET = 1715, - ATTEMPT_TO_CRAFT_ITEM = 1718, - CRAFT_ATTEMPT_RESPONSE = 1719, - SET_C_SCORE = 1720, - FILL_IN_RENDERER = 1721, - TOGGLE_CRAFTING_WINDOW = 1722, - REMOVE_TEAM_BUFFS = 1724, - REQUEST_FREE_TRIAL_STATUS_REFRESH = 1725, - REMOVE_BUFFS_APPLIED_BY_OBJECT = 1726, - SET_MOUNT_INVENTORY_ID = 1727, - GET_MOUNT_INVENTORY_ID = 1728, - GET_BUILD_CINEMATIC_TIME_REMAINING = 1730, - JET_PACK_FLYING = 1731, - NOTIFY_SERVER_LEVEL_PROCESSING_COMPLETE = 1734, - NOTIFY_LEVEL_REWARDS = 1735, - CHARACTER_VERSION_CHANGED = 1736, - SET_FREE_TRIAL_RENAME_AVAILABLE = 1737, - SET_PROJECTILE_LAUNCHER_PARAMS = 1738, - RACE_PRECOUNTDOWN_DONE = 1739, - CHECK_INVITE_SPAMMING = 1740, - GET_RESPAWN_VOLUME_INFO = 1741, - INVITE_ACCEPTED = 1742, - TELEPORT_TO_NEAREST_RESPAWN = 1743, - SET_SKILL_CANCEL_ON_MOVE = 1744, - CANCEL_MOVE_SKILL = 1745, - SERVER_CANCEL_MOVE_SKILL = 1746, - CLIENT_CANCEL_MOVE_SKILL = 1747, - END_LAUNCH_SEQUENCE = 1748, - CANCEL_QUEUE = 1749, - UPDATE_PROJECTILE_LAUNCHER_ROTATION = 1750, - GET_CHARACTER_VERSION_INFO = 1751, - GET_CON_INFO = 1753, - GET_SKILLS_FOR_LOT = 1755, - DISMOUNT_COMPLETE = 1756, - MOUNT_FAILURE_RESPONSE = 1757, - CLEAR_BILLBOARD_OFFSET = 1758, - GET_INVENTORY_ITEM_ANIMATION_FLAG = 1759, - SET_JET_PACK_ALLOWED = 1760, - GET_BUILD_TIME_DETAILS = 1761, - USE_SKILL_SET = 1762, - SET_SKILL_SET_POSSESSOR = 1763, - POPULATE_ACTION_BAR = 1764, - GET_COMPONENT_TEMPLATE_ID = 1765, - GET_POSSESSABLE_SKILL_SET = 1766, - MARK_INVENTORY_ITEM_AS_ACTIVE = 1767, - UPDATE_FORGED_ITEM = 1768, - CAN_ITEMS_BE_REFORGED = 1769, - NOTIFY_CLIENT_RAIL_START_FAILED = 1771, - GET_IS_ON_RAIL = 1772 + GET_VERSIONING_INFO = 1381, + OPEN_UG_BEHAVIOR_UI = 1382, + VEHICLE_NOTIFY_HIT_SMASHABLE = 1383, + GET_TETHER_RADIUS = 1384, + VEHICLE_NOTIFY_HIT_EXPLODER = 1385, + CHECK_NEAREST_ROCKET_LAUNCH_PRE_CONDITIONS = 1386, + REQUEST_NEAREST_ROCKET_LAUNCH_PRE_CONDITIONS = 1387, + CONFIGURE_RACING_CONTROL_CLIENT = 1389, + NOTIFY_RACING_CLIENT = 1390, + RACING_PLAYER_HACK_CAR = 1391, + RACING_PLAYER_LOADED = 1392, + RACING_CLIENT_READY = 1393, + POSSESSION_FINISHED_ATTACH = 1394, + UPDATE_CHAT_MODE = 1395, + VEHICLE_NOTIFY_FINISHED_RACE = 1396, + EQUIPPED_ITEM_STARTUP = 1397, + FACTION_TRIGGER_ITEM_EQUIPPED = 1400, + FACTION_TRIGGER_ITEM_UNEQUIPPED = 1401, + TOGGLE_PROPERTY_BEHAVIORS = 1402, + GET_UG_OBJECT_INFO = 1405, + RESET_PROPERTY_BEHAVIORS = 1406, + IS_PROPERTY_MODEL_RESET = 1407, + SET_UG_OBJECT_NAME_AND_DESCRIPTION = 1408, + SET_CONSUMABLE_ITEM = 1409, + VEHICLE_GET_CURRENT_LAP = 1410, + GET_UGID = 1411, + SET_UGID = 1412, + UGID_CHANGED = 1413, + RACING_GET_CURRENT_LAP_FOR_PLAYER = 1414, + SUB_ITEM_UN_EQUIPPED = 1415, + SET_CUSTOM_DROP_SHADOW_TEXTURE = 1416, + GET_PLAYER_KIT_FACTION = 1418, + USED_INFORMATION_PLAQUE = 1419, + RACING_ENABLE_WRONG_WAY_RESET = 1420, + RACING_TOGGLE_RUBBER_BANDING = 1421, + GET_RACING_CONTROL_DEBUG_INFO = 1422, + SET_PROPERTY_BOUNDS_VISIBILITY = 1423, + SET_PROPERTY_VENDOR_VISIBILITY = 1424, + SET_EQUIP_STATE = 1425, + NOTIFY_COMBAT_AI_STATE_CHANGE = 1426, + SET_PROPERTY_MODEL_INTERACTIVE = 1430, + SERVER_STATE_NOTIFY = 1431, + GET_SERVER_STATE = 1432, + GET_ICON_FOR_PROXIMITY = 1433, + GET_LEGO_CLUB_MEMBERSHIP_STATUS = 1434, + SET_STATUS_IMMUNITY = 1435, + GET_STATUS_IMMUNITY = 1436, + TEAM_IS_MEMBER = 1437, + ACTIVATE_BRICK_MODE = 1438, + GET_BUILD_OBJECT_ID = 1439, + SET_ANIMATION_ENABLED = 1444, + PAUSE_COOLDOWNS = 1446, + FORCE_UPDATE_RENDER_NODE = 1447, + SET_PET_NAME_MODERATED = 1448, + TOGGLE_STRAFE_MODE = 1449, + SET_SCHEME_SPEED_SCALE = 1450, + CANCEL_SKILL_CAST = 1451, + CHECK_PLAYER_ASSEMBLY_FOR_UNIQUE_MODULE_BY_LOT = 1454, + MODULE_ASSEMBLY_DB_DATA_TO_LUA = 1455, + IS_ALLY = 1458, + MODIFY_LEGO_SCORE = 1459, + GET_LEGO_SCORE = 1460, + GET_PLAYER_LEVEL = 1461, + NOTIFY_LEGO_SCORE_UPDATE = 1462, + SET_LEGO_SCORE = 1463, + UPDATE_BEHAVIOR_EXECUTION_DETAILS = 1466, + RESTORE_TO_POST_LOAD_STATS = 1468, + PICKUP_OBJECT_ERROR = 1469, + CHECK_AND_SHOW_INVENTORY_FULL_TIP = 1470, + SET_RAIL_MOVEMENT = 1471, + START_RAIL_MOVEMENT = 1472, + SET_UP_VECTOR = 1473, + CANCEL_RAIL_MOVEMENT = 1474, + GET_RAIL_INFO = 1475, + CLIENT_RAIL_MOVEMENT_READY = 1476, + PLAYER_RAIL_ARRIVED_NOTIFICATION = 1477, + NOTIFY_RAIL_ACTOVATOR_STATE_CHANGE = 1478, + REQUEST_RAIL_ACTIVATOR_STATE = 1479, + NOTIFY_REWARD_MAILED = 1480, + UPDATE_PLAYER_STATISTIC = 1481, + IS_IN_COMBAT = 1482, + IS_PRIMITIVE_MODEL_MSG = 1483, + SCALE_PRIMITICE_MODEL_MSG = 1484, + MODIFY_GHOSTING_DISTANCE = 1485, + PRIMITIVE_MODEL_CHANGED_MSG = 1487, + GET_PROPRTY_CLONE_ID = 1488, + REQUEST_LEAVE_PROPERTY = 1489, + REQUERY_PROPERTY_MODELS = 1491, + GET_BEHAVIOR_COUNT = 1492, + UPDATE_BEHAVIOR_CONTROLS = 1493, + MODULE_ASSEMBLY_LXFML_LOADED = 1494, + REQUEST_ASSEMBLED_LXFML = 1495, + ASSEMBLED_LXFML_LOADED = 1496, + GET_REORIENT_UP_VECTOR = 1497, + MODULAR_ASSEMBLY_NIF_COMPLETED = 1498, + CHARACTER_DISCONNECT_BEFORE_CREATE = 1499, + SEND_LAUNCH_TO_PREVIOUS_ZONE_TO_CLIENT = 1500, + ROCKETLAUNCH_REQUEST_DEFAULT_MAP_ID = 1501, + BEGIN_LAUNCH = 1502, + PROCESS_CLAIM_CODES = 1503, + GET_LAST_ZONE_ID = 1504, + ADD_RUN_SPEED_MODIFIER = 1505, + REMOVE_RUN_SPEED_MODIFIER = 1506, + SKILL_EVENT_FIRED = 1507, + SEND_HOT_PROPERTY_DATA = 1510, + GET_HOT_PROPERTY_DATA = 1511, + GET_EQUIPPED_ITEMS_IN_SET = 1512, + IS_ITEM_IN_SET = 1513, + GET_INVENTORY_TYPE_FOR_LOT = 1514, + GET_BANK_TYPE_FOR_LOT = 1515, + NOTIFY_NOT_ENOUGH_INV_SPACE = 1516, + IMPORT_MODEL_TO_BBB = 1517, + SEARCH_NEARBY_OBJECTS = 1518, + SEARCH_NEARBY_OBJECTS_REQUEST_BY_LOT = 1519, + REQUEST_OBJECT_POSITION_BY_ID = 1520, + SEARCH_NEARBY_OBJECTS_REQUEST_BY_COMPONENT = 1521, + SEARCH_NEARBY_OBJECTS_RESPONSE = 1522, + BROADCAST_NON_STANDARD_COLLISIONS = 1523, + GET_REGISTERED_NON_STANDARD_COLLISION_GROUP = 1524, + BROADCAST_CRUSHED_NOTIFICATIONS = 1525, + GET_REGISTERED_CRUSHED_COLLISION_GROUPS = 1526, + IS_BEING_CRUSHED = 1527, + GET_SUPPORTING_OBJECT = 1528, + TREAT_RIGID_BODY_COLLSIONS_AS_FIXED = 1529, + BROADCAST_TELEPORTED_WITHIN_NOTIFICATION = 1530, + GET_REGISTERED_TELEPORTED_WITHIN_OBJECT_GROUP = 1531, + GET_INTERPENTRATING_INFORMATION = 1532, + OBJECT_TELEPORTED_WITHIN = 1533, + SET_PHYSICS_SOLVER_PROPERTIES = 1534, + HAS_BEHAVIORS = 1535, + PLAY_BEHAVIOR_SOUND = 1536, + GET_PLAYER_BEHAVIOR_TIER = 1537, + GET_EMOTE_ANIMATION_TIME = 1538, + GET_CHARACTER_STAT_TRACKING = 1539, + PLAYER_INVENTORY_READY = 1540, + SET_PRECONDITIONS = 1541, + DETACH_SHADOW = 1542, + GET_LOOT_INFO = 1543, + GET_PLAYERS_ON_PROPERTY = 1544, + PROPERTY_SPAWN_BY_BEHAVIOR = 1545, + NOTIFY_PROPERTY_OF_EDIT_MODE = 1546, + UPDATE_PROPERTY_PERFORMANCE_COST = 1547, + GET_PROPERTY_PERFORMANCE_COST = 1548, + GET_INVENTORY_ITEM_WITH_SUBKEY = 1549, + DISPLAY_PROPERTY_SUMMARY_SCREEN = 1550, + VALIDATE_BBB_MODEL = 1551, + BBB_MODEL_VALIDATION = 1552, + PROPERTY_ENTRANCE_BEGIN = 1553, + CHECK_LIST_OF_PRECONDITIONS_FROM_LUA = 1554, + GET_PROPERTYIN_ZONE = 1555, + GET_ZONE_ID_FROM_MULTI_ZONE_ENTRANCE = 1556, + TEAM_SET_LEADER = 1557, + TEAM_INVITE_CONFIRM = 1558, + TEAM_GET_STATUS_RESPONSE = 1559, + MINI_GAME_ENABLE_LOCAL_TEAMS = 1560, + TEAM_INVITE_FINAL_RESPONSE = 1561, + TEAM_ADD_PLAYER = 1562, + TEAM_REMOVE_PLAYER = 1563, + TEAM_CREATE_LOCAL = 1564, + TEAM_GET_LOOT = 1565, + TEAM_SET_LOOT = 1566, + SET_ZERO_IMPULSE_AGAINST_COLLISION_GROUPS = 1567, + SET_CENTER_OF_MASS_TO_PHYSICAL_CENTER = 1568, + SET_INERTIA_INVERSE = 1569, + ADD_REMOVE_CLIMBING_LISTENER = 1570, + GET_INVENTORYITEM_DETAILS = 1571, + PERFORM_CLIENT_SIDE_DEATH = 1572, + LEGO_CLUB_ACCESS_RESULT = 1573, + VEHICLE_GET_IS_REVERSING = 1574, + CHECK_CLAIM_CODE = 1575, + GET_HOLIDAY_EVENT = 1576, + SET_EMOTES_ENABLED = 1577, + GET_EMOTES_ENABLED = 1578, + FREEZE_ANIMATION = 1579, + LOCALIZED_ANNOUNCEMENT_SERVER_TO_SINGLE_CLIENT = 1580, + ANCHOR_FX_NODE = 1581, + WS_GET_FRIEND_LIST_MESSAGE = 1582, + WS_ADD_FRIEND_RESPONSE = 1583, + WS_REMOVE_FRIEND_REPSONSE = 1584, + WS_UPDATE_FRIEND_STATUS = 1585, + WS_UPDATE_FRIEND_NAME = 1586, + IS_BEST_FRIEND = 1587, + TEAM_NOTIFY_UPDATE_MISSION_TASK = 1588, + VEHICLE_ADD_SLIPPERY_ACTION = 1589, + VEHICLE_REMOVE_SLIPPERY_ACTION = 1590, + SET_RESURRECT_RESTORE_VALUES = 1591, + GET_MASS = 1592, + SET_PROPERTY_MODERATION_STATUS = 1593, + UPDATE_PROPERTY_MODEL_DEFAULTS = 1594, + UPDATE_PROPERTYMODEL_COUNT = 1595, + GET_PROPERTY_MODEL_COUNT = 1596, + IS_PLAYER_LOADED = 1597, + ATTACH_RENDER_EFFECT_FROM_LUA = 1598, + DETACH_RENDER_EFFECT_FROM_LUA = 1599, + TEAM_IS_LOCAL = 1600, + CREATE_CAMERA_PARTICLES = 1602, + SET_SMASHABLE_GRAVITY_FACTOR = 1603, + VEHICLE_SET_SURFACE_TYPE_OVERRIDE = 1604, + VEHICLE_NOTIFY_HIT_IMAGINATION = 1605, + VEHICLE_NOTIFY_HIT_IMAGINATION_SERVER = 1606, + GET_SPAWNED_OBJECT_SPAWNER_INFO = 1607, + SAVE_PROPERTY = 1608, + SET_PROPERTY_DIRTY = 1609, + GET_PROPERTY_DIRTY = 1610, + GET_MODEL_LIST_FROM_PLAQUE = 1611, + GET_ORIGINAL_POSITION_AND_ROTATION = 1612, + VEHICLE_SET_MASS_FOR_COLLISION = 1613, + GET_INVENTORY_GROUP_COUNT = 1614, + GET_LATEST_CHAT_CHANNEL_USED = 1615, + SET_SUGGEST_LIST_LANGUAGE = 1616, + VEHICLE_STOP_BOOST = 1617, + START_CELEBRATION_EFFECT = 1618, + LOCK_PLAYER = 1619, + VEHICLE_IS_INPUT_LOCKED = 1620, + GET_MULTI_NODE = 1621, + RENEW_PROPERTY = 1622, + RENEW_PROPERTY_RESULT = 1623, + CHARGE_ACTIVITY_COST = 1624, + CAN_RECEIVE_LOOT = 1625, + JOIN_PLAYER_FACTION = 1626, + SET_PROXIMITY_UPDATE_RATE = 1627, + BBB_MODELS_TO_SAVE = 1628, + BELONGS_TO_FACTION = 1629, + MODIFY_FACTION = 1630, + FACTION_UPDATE = 1631, + CELEBRATION_COMPLETED = 1632, + PLAY_PRIMARY_MODULE_SOUNDS = 1633, + STOP_PRIMARY_MODULE_SOUNDS = 1634, + REQUEST_TEAM_PLAYER_UI_UPDATE = 1635, + SET_LOCAL_TEAM = 1636, + TEAM_GET_WORLD_MEMBERS_IN_RADIUS = 1637, + GET_PARENTAL_LEVEL = 1638, + GET_OBJECTS_MESSAGE_HANDLERS = 1639, + PROPERTY_FEATURED = 1640, + PROPERTY_NOTIFY_MODEL_SPAWNED = 1641, + SERVER_DONE_LOADING_ALL_OBJECTS = 1642, + GET_DONATION_TOTAL = 1643, + UPDATE_DONATION_VALUES = 1644, + DELAYED_DELETE_DROP_EFFECT_BRICK = 1645, + SET_CAMERA_UNLOCK_ROTATION_STATE = 1646, + ADD_BUFF = 1647, + REMOVE_BUFF = 1648, + CHECK_FOR_BUFF = 1649, + TEAM_MEMBERS_DISOWNS_LOOT = 1650, + GET_WHEEL_TEMPLATE = 1651, + ADD_SKILL_IN_PROGRESS = 1652, + REMOVE_SKILL_IN_PROGRESS = 1653, + SET_OVERHEAD_ICON_OFFSET = 1654, + SET_BILLBOARD_OFFSET = 1655, + SET_CHAT_BUBBLE_OFFSET = 1656, + SET_NO_TEAM_INVITES = 1657, + RESET_MODEL_TO_DEFAULTS = 1658, + IS_PROPERTY_IN_EDIT_MODE = 1659, + GET_OBJECTS_IN_PHYSICS_BOUNDS = 1660, + ENABLE_LU_REMOTE = 1661, + SET_IS_USING_FREE_TRIAL = 1662, + GET_IS_USING_FREE_TRIAL = 1663, + GET_ACCOUNT_FREE_TRIAL_MODE = 1664, + TOGGLE_INVENTORY_ITEM_LOCK = 1665, + REQUEST_MOVE_ITEM_BETWEEN_INVENTORY_TYPES = 1666, + RESPONSE_MOVE_ITEM_BETWEEN_INVENTORY_TYPES = 1667, + REMOVE_SUB_COMPONENT = 1668, + TEAM_GET_LOOT_MEMBERS = 1669, + GET_FACTION_TOKEN_TYPE = 1670, + GET_SUBSCRIPTION_PRICING = 1671, + INFORM_AFK = 1672, + OVERHEAD_INDICATOR_CREATED = 1673, + SET_OVERHEAD_INDICATOR_GRID_LOCATION = 1674, + PLAYSTREAM_LOAD_PENDING = 1675, + PLAYER_SET_CAMERA_CYCLING_MODE = 1676, + PLAYER_GET_CAMERA_CYCLING_MODE = 1677, + FORCE_CAMERA_TARGET_CYCLE = 1678, + GET_OBJECT_CONFIG_DATA = 1679, + GET_OBJECT_CONFIG_DATA_NON_CONST = 1680, + SCOPE_CHANGED = 1681, + SET_ALLOW_JUMP_WITHOUT_SUPPORT = 1682, + GET_ALLOW_JUMP_WITHOUT_SUPPORT = 1683, + SET_JUMP_HEIGHT_SCALE = 1684, + GET_JUMP_HEIGHT_SCALE = 1685, + SET_VELOCITY_RESISTANCE = 1686, + GET_VELOCITY_RESISTANCE = 1687, + GATE_RUSH_VEHICLE_HIT_GATE = 1688, + GATE_RUSH_PLAYER_COLLECTED_GATE = 1689, + GATE_RUSH_ADD_GATE = 1690, + GATE_RUSH_REMOVE_GATE = 1691, + NOTIFY_VEHICLE_UPDATED = 1692, + VEHICLE_NOTIFY_HIT_WEAPON_POWERUP = 1693, + VEHICLE_NOTIFY_HIT_WEAPON_POWERUP_SERVER = 1694, + LOCAL_PLAYER_TARGETED = 1696, + SKILL_COUNT_CHANGED = 1697, + DO_YAW_ROTATION = 1698, + DO_PITCH_ROTATION = 1699, + DO_ROLL_ROTATION = 1700, + GET_CURRENT_LOOT_MATRIX = 1701, + SEND_MULTI_MISSION_OFFER_UPDATE_I_DS = 1702, + SET_AIR_SPEED_VALUES = 1703, + USE_LAUNCHER = 1704, + START_LAUNCHER = 1705, + STOP_LAUNCHER = 1706, + CAN_USE_JET_PACK = 1707, + JET_PACK_STATE_CHANGED = 1708, + TURN_OFF_JET_PACK = 1709, + ADD_PLAYER_JET_PACK_PAD = 1710, + SET_JET_PACK_WARNING = 1711, + JET_PACK_DISABLED = 1712, + JET_PACK_PAD_ENTERED = 1713, + UPDATE_RENDER_POSSESSION_FLAG = 1714, + POSSESSABLE_GET_ATTACH_OFFSET = 1715, + ATTEMPT_TO_CRAFT_ITEM = 1718, + CRAFT_ATTEMPT_RESPONSE = 1719, + SET_C_SCORE = 1720, + FILL_IN_RENDERER = 1721, + TOGGLE_CRAFTING_WINDOW = 1722, + REMOVE_TEAM_BUFFS = 1724, + REQUEST_FREE_TRIAL_STATUS_REFRESH = 1725, + REMOVE_BUFFS_APPLIED_BY_OBJECT = 1726, + SET_MOUNT_INVENTORY_ID = 1727, + GET_MOUNT_INVENTORY_ID = 1728, + GET_BUILD_CINEMATIC_TIME_REMAINING = 1730, + JET_PACK_FLYING = 1731, + NOTIFY_SERVER_LEVEL_PROCESSING_COMPLETE = 1734, + NOTIFY_LEVEL_REWARDS = 1735, + CHARACTER_VERSION_CHANGED = 1736, + SET_FREE_TRIAL_RENAME_AVAILABLE = 1737, + SET_PROJECTILE_LAUNCHER_PARAMS = 1738, + RACE_PRECOUNTDOWN_DONE = 1739, + CHECK_INVITE_SPAMMING = 1740, + GET_RESPAWN_VOLUME_INFO = 1741, + INVITE_ACCEPTED = 1742, + TELEPORT_TO_NEAREST_RESPAWN = 1743, + SET_SKILL_CANCEL_ON_MOVE = 1744, + CANCEL_MOVE_SKILL = 1745, + SERVER_CANCEL_MOVE_SKILL = 1746, + CLIENT_CANCEL_MOVE_SKILL = 1747, + END_LAUNCH_SEQUENCE = 1748, + CANCEL_QUEUE = 1749, + UPDATE_PROJECTILE_LAUNCHER_ROTATION = 1750, + GET_CHARACTER_VERSION_INFO = 1751, + GET_CON_INFO = 1753, + GET_SKILLS_FOR_LOT = 1755, + DISMOUNT_COMPLETE = 1756, + MOUNT_FAILURE_RESPONSE = 1757, + CLEAR_BILLBOARD_OFFSET = 1758, + GET_INVENTORY_ITEM_ANIMATION_FLAG = 1759, + SET_JET_PACK_ALLOWED = 1760, + GET_BUILD_TIME_DETAILS = 1761, + USE_SKILL_SET = 1762, + SET_SKILL_SET_POSSESSOR = 1763, + POPULATE_ACTION_BAR = 1764, + GET_COMPONENT_TEMPLATE_ID = 1765, + GET_POSSESSABLE_SKILL_SET = 1766, + MARK_INVENTORY_ITEM_AS_ACTIVE = 1767, + UPDATE_FORGED_ITEM = 1768, + CAN_ITEMS_BE_REFORGED = 1769, + NOTIFY_CLIENT_RAIL_START_FAILED = 1771, + GET_IS_ON_RAIL = 1772 +}; + +template <> +struct magic_enum::customize::enum_range { + static constexpr int min = 0; + static constexpr int max = 1772; }; #endif //!__EGAMEMESSAGETYPE__H__ diff --git a/dCommon/dEnums/eWorldMessageType.h b/dCommon/dEnums/eWorldMessageType.h index 4b3e2a03..bfaa110b 100644 --- a/dCommon/dEnums/eWorldMessageType.h +++ b/dCommon/dEnums/eWorldMessageType.h @@ -3,6 +3,8 @@ #include +#include "magic_enum.hpp" + enum class eWorldMessageType : uint32_t { VALIDATION = 1, // Session info CHARACTER_LIST_REQUEST, @@ -40,4 +42,10 @@ enum class eWorldMessageType : uint32_t { UI_HELP_TOP_5 = 91 }; +template <> +struct magic_enum::customize::enum_range { + static constexpr int min = 0; + static constexpr int max = 91; +}; + #endif //!__EWORLDMESSAGETYPE__H__ diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index 83b8a666..fbaa913b 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -34,10 +34,10 @@ #include "eMissionTaskType.h" #include "eReplicaComponentType.h" #include "eConnectionType.h" +#include "eGameMessageType.h" #include "ePlayerFlag.h" #include "dConfig.h" - -using namespace std; +#include "StringifiedEnum.h" void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const SystemAddress& sysAddr, LWOOBJID objectID, eGameMessageType messageID) { @@ -49,11 +49,11 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System User* usr = UserManager::Instance()->GetUser(sysAddr); if (!entity) { - LOG("Failed to find associated entity (%llu), aborting GM (%X)!", objectID, messageID); + LOG("Failed to find associated entity (%llu), aborting GM: %4i, %s!", objectID, messageID, StringifiedEnum::ToString(messageID).data()); return; } - if (messageID != eGameMessageType::READY_FOR_UPDATES) LOG_DEBUG("received game message ID: %i", messageID); + if (messageID != eGameMessageType::READY_FOR_UPDATES) LOG_DEBUG("Received GM with ID and name: %4i, %s", messageID, StringifiedEnum::ToString(messageID).data()); switch (messageID) { @@ -344,12 +344,12 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System SyncSkill sync = SyncSkill(inStream); // inStream replaced &bitStream - ostringstream buffer; + std::ostringstream buffer; for (unsigned int k = 0; k < sync.sBitStream.size(); k++) { char s; s = sync.sBitStream.at(k); - buffer << setw(2) << hex << setfill('0') << (int)s << " "; + buffer << std::setw(2) << std::hex << std::setfill('0') << static_cast(s) << " "; } if (usr != nullptr) { @@ -694,7 +694,7 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System GameMessages::SendVendorStatusUpdate(entity, sysAddr, true); break; default: - LOG_DEBUG("Unknown game message ID: %i", messageID); + LOG_DEBUG("Received Unknown GM with ID: %4i, %s", messageID, StringifiedEnum::ToString(messageID).data()); break; } } diff --git a/dGame/dGameMessages/GameMessageHandler.h b/dGame/dGameMessages/GameMessageHandler.h index 61378f80..aed3d496 100644 --- a/dGame/dGameMessages/GameMessageHandler.h +++ b/dGame/dGameMessages/GameMessageHandler.h @@ -19,8 +19,7 @@ #include "Logger.h" #include "GameMessages.h" #include "CDClientDatabase.h" - -enum class eGameMessageType : uint16_t; +#include "eGameMessageType.h" namespace GameMessageHandler { void HandleMessage(RakNet::BitStream* inStream, const SystemAddress& sysAddr, LWOOBJID objectID, eGameMessageType messageID); diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index 5fc0393a..caa0dab3 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -76,6 +76,7 @@ #include "EntityManager.h" #include "CheatDetection.h" #include "eGameMasterLevel.h" +#include "StringifiedEnum.h" namespace Game { Logger* logger = nullptr; @@ -1244,7 +1245,9 @@ void HandlePacket(Packet* packet) { } default: - LOG("Unknown world packet received: %i", int(packet->data[3])); + const auto messageId = *reinterpret_cast(&packet->data[3]); + const std::string_view messageIdString = StringifiedEnum::ToString(messageId); + LOG("Unknown world packet received: %4i, %s", messageId, messageIdString.data()); } } diff --git a/tests/dCommonTests/CMakeLists.txt b/tests/dCommonTests/CMakeLists.txt index b39d130c..d1025489 100644 --- a/tests/dCommonTests/CMakeLists.txt +++ b/tests/dCommonTests/CMakeLists.txt @@ -11,6 +11,9 @@ set(DCOMMONTEST_SOURCES "dCommonDependencies.cpp" ) +add_subdirectory(dEnumsTests) +list(APPEND DCOMMONTEST_SOURCES ${DENUMS_TESTS}) + # Set our executable add_executable(dCommonTests ${DCOMMONTEST_SOURCES}) diff --git a/tests/dCommonTests/dEnumsTests/CMakeLists.txt b/tests/dCommonTests/dEnumsTests/CMakeLists.txt new file mode 100644 index 00000000..e2208395 --- /dev/null +++ b/tests/dCommonTests/dEnumsTests/CMakeLists.txt @@ -0,0 +1,10 @@ +set(DENUMS_TESTS + "MagicEnumTests.cpp" +) + +# Get the folder name and prepend it to the files above +get_filename_component(thisFolderName ${CMAKE_CURRENT_SOURCE_DIR} NAME) +list(TRANSFORM DENUMS_TESTS PREPEND "${thisFolderName}/") + +# Export to parent scope +set(DENUMS_TESTS ${DENUMS_TESTS} PARENT_SCOPE) diff --git a/tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp b/tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp new file mode 100644 index 00000000..48b192f6 --- /dev/null +++ b/tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp @@ -0,0 +1,142 @@ +#include +#include + +#include + +#include "StringifiedEnum.h" +#include "Logger.h" +#include "Game.h" +#include "eGameMessageType.h" +#include "eWorldMessageType.h" +#include "magic_enum.hpp" + +#define ENUM_EQ(e, y, z)\ + LOG("%s %s", StringifiedEnum::ToString(static_cast(y)).data(), #z);\ + ASSERT_STREQ(StringifiedEnum::ToString(static_cast(y)).data(), #z); + +#define ENUM_NE(e, y)\ + ENUM_EQ(e, y, UNKNOWN); + +// Test World Message Enum Reflection +TEST(MagicEnumTest, eWorldMessageTypeTest) { + Game::logger = new Logger("./MagicEnumTest_eWorldMessageTypeTest.log", true, true); + + ENUM_EQ(eWorldMessageType, 1, VALIDATION); + ENUM_EQ(eWorldMessageType, 2, CHARACTER_LIST_REQUEST); + ENUM_EQ(eWorldMessageType, 3, CHARACTER_CREATE_REQUEST); + ENUM_EQ(eWorldMessageType, 4, LOGIN_REQUEST); + ENUM_EQ(eWorldMessageType, 5, GAME_MSG); + ENUM_EQ(eWorldMessageType, 6, CHARACTER_DELETE_REQUEST); + ENUM_EQ(eWorldMessageType, 7, CHARACTER_RENAME_REQUEST); + ENUM_EQ(eWorldMessageType, 8, HAPPY_FLOWER_MODE_NOTIFY); + ENUM_EQ(eWorldMessageType, 9, SLASH_RELOAD_MAP); + ENUM_EQ(eWorldMessageType, 10, SLASH_PUSH_MAP_REQUEST); + ENUM_EQ(eWorldMessageType, 11, SLASH_PUSH_MAP); + ENUM_EQ(eWorldMessageType, 12, SLASH_PULL_MAP); + ENUM_EQ(eWorldMessageType, 13, LOCK_MAP_REQUEST); + ENUM_EQ(eWorldMessageType, 14, GENERAL_CHAT_MESSAGE); + ENUM_EQ(eWorldMessageType, 15, HTTP_MONITOR_INFO_REQUEST); + ENUM_EQ(eWorldMessageType, 16, SLASH_DEBUG_SCRIPTS); + ENUM_EQ(eWorldMessageType, 17, MODELS_CLEAR); + ENUM_EQ(eWorldMessageType, 18, EXHIBIT_INSERT_MODEL); + ENUM_EQ(eWorldMessageType, 19, LEVEL_LOAD_COMPLETE); + ENUM_EQ(eWorldMessageType, 20, TMP_GUILD_CREATE); + ENUM_EQ(eWorldMessageType, 21, ROUTE_PACKET); + ENUM_EQ(eWorldMessageType, 22, POSITION_UPDATE); + ENUM_EQ(eWorldMessageType, 23, MAIL); + ENUM_EQ(eWorldMessageType, 24, WORD_CHECK); + ENUM_EQ(eWorldMessageType, 25, STRING_CHECK); + ENUM_EQ(eWorldMessageType, 26, GET_PLAYERS_IN_ZONE); + ENUM_EQ(eWorldMessageType, 27, REQUEST_UGC_MANIFEST_INFO); + ENUM_EQ(eWorldMessageType, 28, BLUEPRINT_GET_ALL_DATA_REQUEST); + ENUM_EQ(eWorldMessageType, 29, CANCEL_MAP_QUEUE); + ENUM_EQ(eWorldMessageType, 30, HANDLE_FUNNESS); + ENUM_EQ(eWorldMessageType, 31, FAKE_PRG_CSR_MESSAGE); + ENUM_EQ(eWorldMessageType, 32, REQUEST_FREE_TRIAL_REFRESH); + ENUM_EQ(eWorldMessageType, 33, GM_SET_FREE_TRIAL_STATUS); + ENUM_EQ(eWorldMessageType, 91, UI_HELP_TOP_5); + ENUM_NE(eWorldMessageType, 37); + ENUM_NE(eWorldMessageType, 123); + + srand(time(NULL)); + auto begin = std::chrono::high_resolution_clock::now(); + for (int i = 0; i < 10000000; ++i) { + volatile auto f = StringifiedEnum::ToString(static_cast(i)).data(); + + // To ensure the compiler doesn't optimize out the call, I print it at random intervals + if (rand() % 100000 == 0) LOG("%i, %s", i, f); + } + auto end = std::chrono::high_resolution_clock::now(); + LOG("Time: %lld", std::chrono::duration_cast(end - begin).count()); + + delete Game::logger; +} + +// Test Game Message Enum Reflection +TEST(MagicEnumTest, eGameMessageTypeTest) { + + Game::logger = new Logger("./MagicEnumTest_eGameMessageTypeTest.log", true, true); + + // Only doing the first and last 10 for the sake of my sanity + ENUM_EQ(eGameMessageType, 0, GET_POSITION); + ENUM_EQ(eGameMessageType, 1, GET_ROTATION); + ENUM_EQ(eGameMessageType, 2, GET_LINEAR_VELOCITY); + ENUM_EQ(eGameMessageType, 3, GET_ANGULAR_VELOCITY); + ENUM_EQ(eGameMessageType, 4, GET_FORWARD_VELOCITY); + ENUM_EQ(eGameMessageType, 5, GET_PLAYER_FORWARD); + ENUM_EQ(eGameMessageType, 6, GET_FORWARD_VECTOR); + ENUM_EQ(eGameMessageType, 7, SET_POSITION); + ENUM_EQ(eGameMessageType, 8, SET_LOCAL_POSITION); + ENUM_EQ(eGameMessageType, 9, SET_ROTATION); + ENUM_EQ(eGameMessageType, 10, SET_LINEAR_VELOCITY); + ENUM_EQ(eGameMessageType, 1762, USE_SKILL_SET); + ENUM_EQ(eGameMessageType, 1763, SET_SKILL_SET_POSSESSOR); + ENUM_EQ(eGameMessageType, 1764, POPULATE_ACTION_BAR); + ENUM_EQ(eGameMessageType, 1765, GET_COMPONENT_TEMPLATE_ID); + ENUM_EQ(eGameMessageType, 1766, GET_POSSESSABLE_SKILL_SET); + ENUM_EQ(eGameMessageType, 1767, MARK_INVENTORY_ITEM_AS_ACTIVE); + ENUM_EQ(eGameMessageType, 1768, UPDATE_FORGED_ITEM); + ENUM_EQ(eGameMessageType, 1769, CAN_ITEMS_BE_REFORGED); + ENUM_EQ(eGameMessageType, 1771, NOTIFY_CLIENT_RAIL_START_FAILED); + ENUM_EQ(eGameMessageType, 1772, GET_IS_ON_RAIL); + ENUM_NE(eGameMessageType, 32); + ENUM_NE(eGameMessageType, 1776); + + srand(time(NULL)); + auto begin = std::chrono::high_resolution_clock::now(); + for (int i = 0; i < 10000000; ++i) { + volatile auto f = StringifiedEnum::ToString(static_cast(i)).data(); + + // To ensure the compiler doesn't optimize out the call, I print it at random intervals + if (rand() % 100000 == 0) LOG("%i, %s", i, f); + } + auto end = std::chrono::high_resolution_clock::now(); + LOG("Time: %lld", std::chrono::duration_cast(end - begin).count()); + + delete Game::logger; +} + +#define ASSERT_EARRAY_SORTED(EARRAY_VAR)\ + for (int i = 0; i < EARRAY_VAR->size(); i++) {\ + const auto entryCurr = EARRAY_VAR->at(i).first;\ + LOG_EARRAY(EARRAY_VAR, i, entryCurr);\ + const auto entryNext = EARRAY_VAR->at(++i).first;\ + LOG_EARRAY(EARRAY_VAR, i, entryNext);\ + ASSERT_TRUE(entryCurr < entryNext);\ + };\ + +#define LOG_EARRAY(EARRAY_VAR, INDICE, ENTRY)\ + LOG(#EARRAY_VAR"[%i] = %i, %s", INDICE, ENTRY, magic_enum::enum_name(ENTRY).data()); + +// Test that the magic enum arrays are pre-sorted +TEST(MagicEnumTest, ArraysAreSorted) { + Game::logger = new Logger("./MagicEnumTest_ArraysAreSorted.log", true, true); + + constexpr auto wmArray = &magic_enum::enum_entries(); + ASSERT_EARRAY_SORTED(wmArray); + + constexpr auto gmArray = &magic_enum::enum_entries(); + ASSERT_EARRAY_SORTED(gmArray); + + delete Game::logger; +} diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 978c5532..7b694b14 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -19,6 +19,9 @@ add_library(bcrypt ${SOURCES_LIBBCRYPT}) # Source code for sqlite add_subdirectory(SQLite) +# Source code for magic_enum +add_subdirectory(magic_enum) + # MariaDB C++ Connector include(CMakeMariaDBLists.txt) diff --git a/thirdparty/magic_enum b/thirdparty/magic_enum new file mode 160000 index 00000000..e55b9b54 --- /dev/null +++ b/thirdparty/magic_enum @@ -0,0 +1 @@ +Subproject commit e55b9b54d5cf61f8e117cafb17846d7d742dd3b4 From e58218cfbcc6b5a616dac59174f653aecf1ff2df Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 23 Dec 2023 09:24:16 -0800 Subject: [PATCH 050/106] chore: Speed up and cleanup level and zone loading; Add safer asset buffer reading (#1314) * Remove std::couts littered throughout the base * working End of optimizations for now going faster * Remove extraneous compare function std::less already does this in a map. * gaming * Update Zone.cpp * dlu is moving to bitbucket again * Update Level.cpp --------- Co-authored-by: Jettford --- dCommon/BinaryIO.cpp | 41 --- dCommon/BinaryIO.h | 53 +++- dCommon/FdbToSqlite.cpp | 8 +- dCommon/FdbToSqlite.h | 4 +- dCommon/dClient/AssetManager.cpp | 7 +- dCommon/dClient/AssetManager.h | 18 +- dCommon/dClient/PackIndex.cpp | 19 +- dGame/UserManager.cpp | 30 +- dGame/dInventory/Item.cpp | 13 +- dGame/dPropertyBehaviors/ControlBehaviors.cpp | 13 +- dGame/dUtilities/BrickDatabase.cpp | 12 +- dGame/dUtilities/SlashCommandHandler.cpp | 8 +- dMasterServer/MasterServer.cpp | 7 +- dZoneManager/Level.cpp | 151 +++------ dZoneManager/Level.h | 14 +- dZoneManager/Zone.cpp | 294 ++++++------------ dZoneManager/Zone.h | 9 +- dZoneManager/dZMCommon.h | 4 - dZoneManager/dZoneManager.cpp | 27 -- dZoneManager/dZoneManager.h | 2 - 20 files changed, 247 insertions(+), 487 deletions(-) diff --git a/dCommon/BinaryIO.cpp b/dCommon/BinaryIO.cpp index 22e4de60..b64fb3ba 100644 --- a/dCommon/BinaryIO.cpp +++ b/dCommon/BinaryIO.cpp @@ -1,14 +1,6 @@ #include "BinaryIO.h" #include -void BinaryIO::WriteString(const std::string& stringToWrite, std::ofstream& outstream) { - //BinaryWrite(outstream, uint32_t(stringToWrite.length())); - - for (size_t i = 0; i < size_t(stringToWrite.length()); ++i) { - BinaryIO::BinaryWrite(outstream, stringToWrite[i]); - } -} - //For reading null-terminated strings std::string BinaryIO::ReadString(std::istream& instream) { std::string toReturn; @@ -23,36 +15,3 @@ std::string BinaryIO::ReadString(std::istream& instream) { return toReturn; } - -//For reading strings of a specific size -std::string BinaryIO::ReadString(std::istream& instream, size_t size) { - std::string toReturn; - char buffer; - - for (size_t i = 0; i < size; ++i) { - BinaryIO::BinaryRead(instream, buffer); - toReturn += buffer; - } - - return toReturn; -} - -std::string BinaryIO::ReadWString(std::istream& instream) { - size_t size; - BinaryRead(instream, size); - //toReturn.resize(size); - std::string test; - unsigned char buf; - - for (size_t i = 0; i < size; ++i) { - //instream.ignore(1); - BinaryRead(instream, buf); - test += buf; - } - - //printf("%s\n", test.c_str()); - - //instream.read((char*)&toReturn[0], size * 2); - //std::string str(toReturn.begin(), toReturn.end()); - return test; -} diff --git a/dCommon/BinaryIO.h b/dCommon/BinaryIO.h index a117ad0d..d1e728ca 100644 --- a/dCommon/BinaryIO.h +++ b/dCommon/BinaryIO.h @@ -1,8 +1,17 @@ #pragma once + +#ifndef __BINARYIO__H__ +#define __BINARYIO__H__ + #include #include +#include + +#include "Game.h" +#include "Logger.h" namespace BinaryIO { + template std::ostream& BinaryWrite(std::ostream& stream, const T& value) { return stream.write(reinterpret_cast(&value), sizeof(T)); @@ -15,13 +24,51 @@ namespace BinaryIO { return stream.read(reinterpret_cast(&value), sizeof(T)); } - void WriteString(const std::string& stringToWrite, std::ofstream& outstream); + enum class ReadType : int8_t { + WideString = 0, + String = 1, + }; + + template + inline void ReadString(std::istream& stream, std::u16string& value) { + static_assert(std::is_integral::value, "SizeType must be an integral type."); + + SizeType size; + BinaryRead(stream, size); + + if (!stream.good()) throw std::runtime_error("Failed to read from istream."); + value.resize(size); + stream.read(reinterpret_cast(value.data()), size * sizeof(uint16_t)); + } + + template + inline void ReadString(std::istream& stream, std::string& value, ReadType readType) { + static_assert(std::is_integral::value, "SizeType must be an integral type."); + + SizeType size; + BinaryRead(stream, size); + + if (!stream.good()) throw std::runtime_error("Failed to read from istream."); + value.resize(size); + if (readType == ReadType::WideString) { + uint16_t wideChar; + + // Faster to do this than to read a u16string and convert it to a string since we only go through allocator once + for (SizeType i = 0; i < size; ++i) { + BinaryRead(stream, wideChar); + value[i] = static_cast(wideChar); + } + } else { + stream.read(value.data(), size); + } + } + std::string ReadString(std::istream& instream); - std::string ReadString(std::istream& instream, size_t size); - std::string ReadWString(std::istream& instream); inline bool DoesFileExist(const std::string& name) { std::ifstream f(name.c_str()); return f.good(); } } + +#endif //!__BINARYIO__H__ diff --git a/dCommon/FdbToSqlite.cpp b/dCommon/FdbToSqlite.cpp index 0b2c546c..d8409cd5 100644 --- a/dCommon/FdbToSqlite.cpp +++ b/dCommon/FdbToSqlite.cpp @@ -28,19 +28,17 @@ FdbToSqlite::Convert::Convert(std::string binaryOutPath) { this->m_BinaryOutPath = binaryOutPath; } -bool FdbToSqlite::Convert::ConvertDatabase(AssetMemoryBuffer& buffer) { +bool FdbToSqlite::Convert::ConvertDatabase(AssetStream& buffer) { if (m_ConversionStarted) return false; - std::istream cdClientBuffer(&buffer); - this->m_ConversionStarted = true; try { CDClientDatabase::Connect(m_BinaryOutPath + "/CDServer.sqlite"); CDClientDatabase::ExecuteQuery("BEGIN TRANSACTION;"); - int32_t numberOfTables = ReadInt32(cdClientBuffer); - ReadTables(numberOfTables, cdClientBuffer); + int32_t numberOfTables = ReadInt32(buffer); + ReadTables(numberOfTables, buffer); CDClientDatabase::ExecuteQuery("COMMIT;"); } catch (CppSQLite3Exception& e) { diff --git a/dCommon/FdbToSqlite.h b/dCommon/FdbToSqlite.h index 7aad2703..b0d20aee 100644 --- a/dCommon/FdbToSqlite.h +++ b/dCommon/FdbToSqlite.h @@ -7,7 +7,7 @@ #include #include -class AssetMemoryBuffer; +#include "AssetManager.h" enum class eSqliteDataType : int32_t; @@ -27,7 +27,7 @@ namespace FdbToSqlite { * * @return true if the database was converted properly, false otherwise. */ - bool ConvertDatabase(AssetMemoryBuffer& buffer); + bool ConvertDatabase(AssetStream& buffer); /** * @brief Reads a 32 bit int from the fdb file. diff --git a/dCommon/dClient/AssetManager.cpp b/dCommon/dClient/AssetManager.cpp index c672b335..00bae6ce 100644 --- a/dCommon/dClient/AssetManager.cpp +++ b/dCommon/dClient/AssetManager.cpp @@ -152,13 +152,12 @@ bool AssetManager::GetFile(const char* name, char** data, uint32_t* len) { return success; } -AssetMemoryBuffer AssetManager::GetFileAsBuffer(const char* name) { - char* buf; - uint32_t len; +AssetStream AssetManager::GetFile(const char* name) { + char* buf; uint32_t len; bool success = this->GetFile(name, &buf, &len); - return AssetMemoryBuffer(buf, len, success); + return AssetStream(buf, len, success); } uint32_t AssetManager::crc32b(uint32_t base, uint8_t* message, size_t l) { diff --git a/dCommon/dClient/AssetManager.h b/dCommon/dClient/AssetManager.h index d2543489..7e36b4b5 100644 --- a/dCommon/dClient/AssetManager.h +++ b/dCommon/dClient/AssetManager.h @@ -25,6 +25,10 @@ struct AssetMemoryBuffer : std::streambuf { this->setg(base, base, base + n); } + ~AssetMemoryBuffer() { + free(m_Base); + } + pos_type seekpos(pos_type sp, std::ios_base::openmode which) override { return seekoff(sp - pos_type(off_type(0)), std::ios_base::beg, which); } @@ -40,9 +44,17 @@ struct AssetMemoryBuffer : std::streambuf { setg(eback(), eback() + off, egptr()); return gptr() - eback(); } +}; - void close() { - free(m_Base); +struct AssetStream : std::istream { + AssetStream(char* base, std::ptrdiff_t n, bool success) : std::istream(new AssetMemoryBuffer(base, n, success)) {} + + ~AssetStream() { + delete rdbuf(); + } + + operator bool() { + return reinterpret_cast(rdbuf())->m_Success; } }; @@ -56,7 +68,7 @@ public: bool HasFile(const char* name); bool GetFile(const char* name, char** data, uint32_t* len); - AssetMemoryBuffer GetFileAsBuffer(const char* name); + AssetStream GetFile(const char* name); private: void LoadPackIndex(); diff --git a/dCommon/dClient/PackIndex.cpp b/dCommon/dClient/PackIndex.cpp index 55c26b48..0d7a7fe9 100644 --- a/dCommon/dClient/PackIndex.cpp +++ b/dCommon/dClient/PackIndex.cpp @@ -8,21 +8,10 @@ PackIndex::PackIndex(const std::filesystem::path& filePath) { BinaryIO::BinaryRead(m_FileStream, m_Version); BinaryIO::BinaryRead(m_FileStream, m_PackPathCount); - - for (int i = 0; i < m_PackPathCount; i++) { - uint32_t stringLen = 0; - BinaryIO::BinaryRead(m_FileStream, stringLen); - - std::string path; - - for (int j = 0; j < stringLen; j++) { - char inChar; - BinaryIO::BinaryRead(m_FileStream, inChar); - - path += inChar; - } - - m_PackPaths.push_back(path); + + m_PackPaths.resize(m_PackPathCount); + for (auto& item : m_PackPaths) { + BinaryIO::ReadString(m_FileStream, item, BinaryIO::ReadType::String); } BinaryIO::BinaryRead(m_FileStream, m_PackFileIndexCount); diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 323bf29a..18387366 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -44,57 +44,53 @@ inline void StripCR(std::string& str) { void UserManager::Initialize() { std::string line; - AssetMemoryBuffer fnBuff = Game::assetManager->GetFileAsBuffer("names/minifigname_first.txt"); - if (!fnBuff.m_Success) { + auto fnStream = Game::assetManager->GetFile("names/minifigname_first.txt"); + if (!fnStream) { LOG("Failed to load %s", (Game::assetManager->GetResPath() / "names/minifigname_first.txt").string().c_str()); throw std::runtime_error("Aborting initialization due to missing minifigure name file."); } - std::istream fnStream = std::istream(&fnBuff); + while (std::getline(fnStream, line, '\n')) { std::string name = line; StripCR(name); m_FirstNames.push_back(name); } - fnBuff.close(); - AssetMemoryBuffer mnBuff = Game::assetManager->GetFileAsBuffer("names/minifigname_middle.txt"); - if (!mnBuff.m_Success) { + auto mnStream = Game::assetManager->GetFile("names/minifigname_middle.txt"); + if (!mnStream) { LOG("Failed to load %s", (Game::assetManager->GetResPath() / "names/minifigname_middle.txt").string().c_str()); throw std::runtime_error("Aborting initialization due to missing minifigure name file."); } - std::istream mnStream = std::istream(&mnBuff); + while (std::getline(mnStream, line, '\n')) { std::string name = line; StripCR(name); m_MiddleNames.push_back(name); } - mnBuff.close(); - AssetMemoryBuffer lnBuff = Game::assetManager->GetFileAsBuffer("names/minifigname_last.txt"); - if (!lnBuff.m_Success) { + auto lnStream = Game::assetManager->GetFile("names/minifigname_last.txt"); + if (!lnStream) { LOG("Failed to load %s", (Game::assetManager->GetResPath() / "names/minifigname_last.txt").string().c_str()); throw std::runtime_error("Aborting initialization due to missing minifigure name file."); } - std::istream lnStream = std::istream(&lnBuff); + while (std::getline(lnStream, line, '\n')) { std::string name = line; StripCR(name); m_LastNames.push_back(name); } - lnBuff.close(); - //Load our pre-approved names: - AssetMemoryBuffer chatListBuff = Game::assetManager->GetFileAsBuffer("chatplus_en_us.txt"); - if (!chatListBuff.m_Success) { + // Load our pre-approved names: + auto chatListStream = Game::assetManager->GetFile("chatplus_en_us.txt"); + if (!chatListStream) { LOG("Failed to load %s", (Game::assetManager->GetResPath() / "chatplus_en_us.txt").string().c_str()); throw std::runtime_error("Aborting initialization due to missing chat whitelist file."); } - std::istream chatListStream = std::istream(&chatListBuff); + while (std::getline(chatListStream, line, '\n')) { StripCR(line); m_PreapprovedNames.push_back(line); } - chatListBuff.close(); } UserManager::~UserManager() { diff --git a/dGame/dInventory/Item.cpp b/dGame/dInventory/Item.cpp index 438bec2f..9e4b46f6 100644 --- a/dGame/dInventory/Item.cpp +++ b/dGame/dInventory/Item.cpp @@ -423,25 +423,16 @@ void Item::DisassembleModel(uint32_t numToDismantle) { if (renderAssetSplit.empty()) return; std::string lxfmlPath = "BrickModels" + lxfmlFolderName + "/" + GeneralUtils::SplitString(renderAssetSplit.back(), '.').at(0) + ".lxfml"; - auto buffer = Game::assetManager->GetFileAsBuffer(lxfmlPath.c_str()); + auto file = Game::assetManager->GetFile(lxfmlPath.c_str()); - if (!buffer.m_Success) { + if (!file) { LOG("Failed to load %s to disassemble model into bricks, check that this file exists", lxfmlPath.c_str()); return; } - std::istream file(&buffer); - - if (!file.good()) { - buffer.close(); - return; - } - std::stringstream data; data << file.rdbuf(); - buffer.close(); - uint32_t fileSize; file.seekg(0, std::ios::end); fileSize = static_cast(file.tellg()); diff --git a/dGame/dPropertyBehaviors/ControlBehaviors.cpp b/dGame/dPropertyBehaviors/ControlBehaviors.cpp index 3dbd777a..b143cbc8 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviors.cpp +++ b/dGame/dPropertyBehaviors/ControlBehaviors.cpp @@ -324,14 +324,9 @@ void ControlBehaviors::ProcessCommand(Entity* modelEntity, const SystemAddress& } ControlBehaviors::ControlBehaviors() { - auto blocksDefStreamBuffer = Game::assetManager->GetFileAsBuffer("ui\\ingame\\blocksdef.xml"); - if (!blocksDefStreamBuffer.m_Success) { - LOG("failed to open blocksdef"); - return; - } - std::istream blocksBuffer(&blocksDefStreamBuffer); - if (!blocksBuffer.good()) { - LOG("Blocks buffer is not good!"); + auto blocksBuffer = Game::assetManager->GetFile("ui\\ingame\\blocksdef.xml"); + if (!blocksBuffer) { + LOG("Failed to open blocksdef.xml"); return; } @@ -342,7 +337,7 @@ ControlBehaviors::ControlBehaviors() { std::string buffer{}; bool commentBlockStart = false; while (std::getline(blocksBuffer, read)) { - // tinyxml2 should handle comment blocks but the client has one that fails the processing. + // tinyxml2 should handle comment blocks but the client has one that fails the processing. // This preprocessing just removes all comments from the read file out of an abundance of caution. if (read.find("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 Ll4Ruz<9GiH9zlBp diff --git a/docker/images/DD_General_Settings.png b/docker/images/DD_General_Settings.png deleted file mode 100755 index d0e694aab2e00551a8e38bda645522f0f925b97b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59281 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
    xMa=f@JI}M=S6{m0 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 diff --git a/docker/images/DD_Server_Startstop.png b/docker/images/DD_Server_Startstop.png deleted file mode 100755 index 8f482bb7a4937e1d210648fbea9a05cf7fec86af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27402 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 B0yO{t diff --git a/docker/images/Docker_Compose_Finished.png b/docker/images/Docker_Compose_Finished.png deleted file mode 100755 index 549915ee93f7693f7cbabf4902be3307eea071d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41850 zcmb@t2{@E**f*@S{991}k`O8(gtCTEsf19Nu`gvemh9`Ggi4V;yRuA-G4_3CD#>nS z7-j~8jGYl?h8bhNq38MD_c@O5IG*=?zjuzq(KXY3-`9Da*Lk1k`TL#c_2#jm4%cyk z;~X3uT)GeM8FO$PqH=H?9Qfx5`_(4MvmUU)BR^VmtvE}=? zOCGwTmjuJ)S=%|=d6^0+nagKB&QO+rE4pOYa7~MPYvpeQaP_u~O0xyp`%LS-+&=bq zcroGB@`1lYpV#(0e@Cyi4~6|5-M(;nl=JU!`qVe!zoS!e|FD&?_ldfBukz^M;g3r% zHU5q+ayK2BwOLl$*!wylRcGKXEu`8;xG-23@4r0SRqlpM5Z1WNpsi#i5B^&- zJ2qHhQ_Wi;-r((x9qN1Yy92hiKGSu^xvwdP;lABZAxjCnRnm4uSXXosgq1*-8Gm?I zH6bq%zeMADijMtu++I{V-KN1sK{8;1urLC!vaQ^+@yBL)9_spksHxV-OHNf)HF+G- z0&p9$oJRy28fB!Wa{KO#`l$NNzQg$jiq+{RC*=004Am;SrKCDyvAGc?+Inx<%1Kjz z80iB5Y3z%9>|h;Dber}XIim}5C(g;Gwdo{u|2ZRZ*>Hs*(Idu}kQOOx>8=?-`n~4@pPVhOG?AS{SHZ97! z!x_TbiNzha2$qZB;-bdvWu)b0M$6#bD=cVxv99|0A7g$E-&c>ao|o3ip8J&dnU{}k z2)Ch0x#Kp~)z!WKnm&1wboSip4gJ2Jl&slo<33}Il(Y=Rzy(73$atxiO-#eonZOnO z>cYY%?E1!V5LhE>n`r`Uw^f`ASPbs3n^wblHVMqU*NnWE5*PaR?O%}(ezJ9>Kib48 zHkilV3-!>@@%xRmSGOVp8k4K5)r?#%Et?=@Jm#_YcA1ia@M5Xox=>hYsc;Ah2XXva z3uSNlTYz!5$n`z5bHsvX22 z!$92co8T5f#Ha7=TZ32!YQ&pok#e5W2A;8GsMsL6tgO15W|NCJUD`k%wU}G5{!AWa z%-4i3*@XVei6@Wx4N?i-whDd6DgK%}xnTxVIj~VdO^=862iZbI#SXrZ52Y?TrJs7Q zDGCNwm2k=xDg9<}QLIDz%|X53fTiS1b_kDFe+si4I@=0weibSj%bnf>rWG6@fzVo# zCx{_7yGv6?VWezi2&@iKH#j$Pfymo0(;u|R4C!wfo@g2|b#32sR0E#_$iHl?Wiu@9 zD$?I=TC`_L$iVIpmC3#tyVPqgA%Ju+G3S`s+m3$`X#pH_Sz&yY3_j^lmo z{jyTw8FWwJs_0;pfWcIG-E>62`n?4rJb#9|B8syZcU=2= z0NZK^G0aWp%C7JH%%fFb!VAL6n=0s()29Z7j`sMJBH zOHg$u$Gsiqwn_MmV3ecm>cEYqcwe+-We`I~rCWo@thd&5dwJoOzj;N|BFLBd4hkdn z5$e0-BIWhP6Iw>ICPHZ5r-@Y=xtVV7WvhKQ&eiP24UU(g)Md9Az?YUE%5QwP)}Gc3 z)owEV1fCB)uu>DD|KTB}?C=`f`aD9)`&d7ehK#5zD08JoED($$E11usBOT5jJ9f-> zXX^(0zQs^Gd@_B&C}N(`j>_0^+6{AtX)R;Q>WP|^9E&r0S`dI;()Zq)06RL^mDd*R zb{#r3f#f`DWz)#lv$tq_BW-oAZ=VgCZF2R$O>B$CcCmdV@C3ypurUJ%gO(E;apj&j zN4~bkQ^-G@Y56=FS54rJV_A_Q)NE{I)quMOrH2)69kDB-RXsawRuZWl$agNYxPVNI zfR0getw;;32;IDpDY2S!drQBE7q3g35`FMdY^VdT1e!5DgIdITa>Ju6n&Z@YV#t9d^l8ffc$Um0#`u(%6e9;?!(ii~=*uSh7*!j@9MiPawOwa7Iy z6A;%pS3KPZ^qqNaYMPo|T=Hau;X7DqD82a|H&vt=U6&7UczFW>!GDL(BH>v`Q7-Y3 zt%~t;!b57qBz2J6vp+VU0zmcO6r3NS^wNssSS`KRl(aJ5rR4996#5dK-mvclE!V_f z={g%YByKrSIF+t&{kT~Mu(jD%8$3k%DDV<@=i~0Xvx^H%w=a-S`G~}tP`G$sh+Ti! zF$mFUE2sz%`wOWeWG;%Y`s_obSbFoKhE3^S|!*1#W(; zrKm{Rxx!h%F(%GJ;JF*2WH-m3LOD&mZ)P&@0$oxX((&vVT2#*Uzh@4!#cV%R92iOm zxXkmxVw9}?CPp%1Ps;lZ-#>8)bX=lt08)WBVwSclOFo&%)x^;K3NSN~VdfKoAtZX- zuFmeZ|4jGSSl7khxc?B|p1k$v40cADm0Xztc834%25nl9<|AQjmEwgjyw_x{fv`@n-uRM|g6r1L&UICsPmKK#s83~My%pTCknzMa2bExiRw zsh^H8(ELDVqIk-;!b&{^$3e9nz3W7#&=ea ze1hV~AaN2^CmI)Y)`@&a)T6pp&<*{cHg6H<$y(90tq7d7up;Un{ft5CNY+ibh4$CA)9>4cH^DLbn-NyKF8x;)8olbRnKeOumRhh%Mr>~# z7UV?CCJKm4I%lr~%QIZOgYVHbH(vUyhTnU@z2sGYAtfzxr(#Tn{LX@ULTh5lPB(Q$ z=xEp4S(ZYnl=Wc2q}(|ouVur>qhb9AWS{A_weF;WE+6p`_<&d+GjZ-hPv}J7R3DA6 zC#sW?eE$yK#~ZnQgnY6Ju7ogHi*s6a{Z4TSzY_kOAu5Mm=K%+XMlf?yY@xOa>|KbO z&ypTxgeG3jWRfF4(7+Jih}lUV;dD48LRLjI%iZrv>aSa< zE-o{FScoUaS}pgH%uPw@li^c!kG7Y%63t~==s3Ba!LM_hxnT0iFa;>VJx-g5&0MItHpA+o{q4YV#Jso+{?zkRFqW@ z_O=7tSKq&QzPfo-&~d~k(LeL-f*FiDctgDr`MmGMrB8X0l?lWyC~|?MWqmbsnz)rF zNBL0ZKDUMjag4&V^_%Us^09ON%|i`iRU5^-LIPLC(fw9_2D(K9W%V4T69-IWMg}g{ zT`*}=^Q;=~u6w9Bgb561lem~o5q|(@`I3SgXuRvhK;wKw| zwux1=!Kqd?uDmI|g{vC9t@x%JTj~L%ibCT{0l^Wx>W(;TmKGmiJ#Se9|J6k}o_ri; zS%Y+t1AZrX<@(oJ7c*QhmR!mN{F!C+Jel+CXD&w#G!ci*wso57bXvHGX#PV|T;y6` zBken3Ekd1cqmX>UM8pzN3X=N(zzHdqOY_~X9 zW37}y+r{i7K?0%oKi~PNFp5Dh%z@m;VJiXxpGzDTDQ;qUyYCeLtzhPTbtO+=T#Pd& zp{it%9oI-9t&sS_wgGAKSZ90KesDWC787(zd5ER4mATA)Vnxxvg~ig$kWI0zD!a|P z;gW1ByYps8OJ{fmcXm%PR=v>(^SH;M;ashstDy7W;o4e-GWGR%DyCaCS8=k2vp(x4 zl=dC|q+y|I`APW7LfTw@Ep}wnVowPHe#@gb6h^KC)?IMT4e{@`zul|(De~0@k9xEo ziRvsrt-EmJv8+nwok6GQBFNcpd`y~iM0RT+M9ZVb%2(9Q4;PZ`EVXG$5DYsiMLl;x zsx*RIp~SujeHMbt z;)&ySq4&-|atO5*DYaH191jT?Ods>Re+?;J>(zH^8Fs_Zz=%`MCC&QE6sPgc1&#~d zcnCKG=TF4DUWD+5gg)Zp%zc^*&ifi7loDY`Y;%bZG}t!_;1gS~S%K9^;VkK}P;34# z&0*U-qB8?liE*udWb-#V6%kkzGjel0C=xv3o?U0@TnrzxuV2`VW0B=IN*_ZsgKdGU zeII)Am~tT0oS&3qn-5FXaA)Dh_Qq=YS0CF(`6q#^TzOhM0(Q){zgY^XO|iY^L=b&O zSHVmH=H&;R#tnPXy;Qh1YLEBuFP5&M@0pB%z9eQPl)lI_)YDe;d{XBI$hP$}5dG;s z54luw#6iiepW%BX!7#FnBtR3o={oyz(_HCr`qU;kn9d|%#&qAv6I<2MZvAgpl5cvH zI1u?r4JPRKzg!*m)3x*`J`}KTRlz4)&onnD)o#^FMqyU=@dc(HhWmJFWHPMHhdI5yH3pl!}Itg-QOT2U~lw^KnbPuBX%1>(kDX$~l~F zH@9`l5Z3)4lR#;Hw@iy{;tCs+jhB z$CkoB6g2Rzx$;Q!)`QQji~sC==KA2H{9`YTPXCxUyus(JDSkYjX36UvO`pqBGSH4z z5PDIsd>^@C#AX0a3Ve{}1dmMq33eRZ(kCr+M0$Fn!mvg#P%RB}vATq*>^0%O5`>`; zD_8Yt7$z}fB@v5`(buf4cZ+HWA9k0NmTRam(bm?WvT=z;Pv}Y5%toUI^0#B`g*K!d zv-fA8Rk_2yf6nhN)6>;mxY*TI;;nRqZudNMM(@QArRHGGPq{lkJJT@go&6BaWTlce z$$#}i&qANAx@`>vAWred{(svGg zP#0^zb~pw;QdaMISiR3UKq5gT!-1FAxpZNOf;0_jzp;HKGRA{gg*o2-o!A1QZEg^E z3@7YrhwyN3L%F5gKoH2)Ohb@XOq-%IYe*->0+1!8c81Y z`o!^?2Qzp{V(QrM9#Y@^?7plTQQ&`M1Kr$h#u~ykB|f#56|$f52JH>n6uE}Qjn2YK)`HVZ5Kikp&t?5MgHi2vwd4i%IgyzPFzo~qnGvlXF?EJ*NME9w zdgszyiwgLtjlqFYT(cbFfhT-;PDC;o_68`8g&c0sG$gT13PQ^fIdn@lq$(@h&Rrr-Mu20`G#``Vps3AIxio(vI9M_I7OA&fx$)1MD ztq2Sx+#qMARayG#P|(6QwE@>*zRGCzLkxOSeR5@*_Y|@ytD<727P#z~{`d?GOQ?2= zw|M)0Lk*(u%b)|ExPO@ohueaqFTqmP!oSefC$fySSEX~tORTJxU@O*5@aB4>CG{gq zq24kEe&J@Wxmhx!CIY4lEz6rO;Q6rG+HTmT7kiL03JU}KhVje$e`&Oy3oaeAD1l|z zh3__9(DE58fAhXbSvPs24unAR%&CtnZk3^1aGOZ(Re}TroudqTR(OfVYk2gZQhmxN zwUJf*wh=ilen-G%JUc#;^(0_w){KyuJ1UmZv-FAqH6>7`3&!4ia~t2SCVzdp+(r@t za0>)v*ME9Y7QPP+>GR3I?uSyi!5w^eSN;>@6leAd!ufrZ99LWI zI;{S{Z4Wjsk(Bh(UAi|6(oVaedYPBE6?me`2l$sEcJ;#H#>J$eUWFNKH*x>Iv3X<1 zH6*ZI@Z zF4B*u_9;GI%M54!eVUP@|FDx&vG44ro36e-h(aF2&>~jwO(xV;jj-s=T(uBmDQW3q z8(-fPut=z#m`>uu`yrVYm>tV?FaQ8lS^(GGquZnjYe3rk9L2N7Ap9bl8&8!;uJ9Rt2#N^&-uf_RVYPuge`RVe-hUsnPHG2I-Q|=F5`t zbt!E4J1AcDp4?!zVY9Wm@`%K*3dXDC-jb9sywHHR{e1`20#6^UfbKKqG3jytgZ+Q^ z_QamTIXM1jQvdY-tvbPom|f=d-|7H+is@IPF~D_d1(e3!Rw;OfE>*@WNd z@?J>hxZU%h@@VZr8L`o&0c3Ozn{*j$+6bu*Lkp`0E;lL_L-JibF(15Xt9NmYA@SRL z1O*3&4Bt25f#bEQ_TKnZxJ6osNMy1%(|^z&?vm)iKcHpCEu?l$1WeDw?L{^A6saEv zOMB#cZ$+Ie^E4Jz;6uqatsPX2*lE0GOK0bTe)w{(!2o=07`srgfPpknYKm%yJod#a zAiZJd4;sxbJ&CK^dAGI+I^`i8uK$1`dG*8!%MCd;TWu3YHTP`hJhG_(vP8aM`jM#K z<5&0+x)eZrlXJlCJd&a+{$TX8`A#TWLsCS}N>;4cX?>oPbxHduPbyl)BiWcJA2oZ1 z%o_$~Y*LwsC+;zU0Y3Ciw}tE!(Kv3QWQUH#>^cMewpxA+r29VKyQHc@9SajLl;%1d zJ(8`FmB@X05bDB%i=2#Fmb@kp+ABvDL^LNh-xW_-^kyO*3@mIV$9&8UGgl}hfS-o^ zVnS~NyQls+>eIyNEP|g*QGQZi7-(Qw9fOuSRj)1)0jfL+FhT0nI@00`(V8wQa&fBoCE zIeo&3j06wX=mhCLdRSYpp15BK{IxB;BxTkrAx%|t_`JAursaLAWJutUnd}muT$&7N zSB&eZg1(CWV$^}@^fO3U7cxI0W;kI5KHB1OH%L;Ns^?tNVL2ybE3*MSceH-R_X06; z^-xzn%J?l4da#y5`>4s-3`0m}knAQve}CamaVX0xqypsMKGE)=V+I|7N`Aq3PVt71 z*r<V*h!2&k^v-W4I^bN{GuuIEbl$MqSOHg;!EX zmbxC2uWiht_$VLuUXD{1O{wW&Vqx~g+o$FljMDp9R_0&kk|^;^UhsxlYS-kk-&aQd zd@4U6dXhOULzK8rk{ldA6d|S1 zlAY>>x0V?)X$j=(uKL|k{#2q2rrn5T2rVy9=9Ml!W&!W(`WhvlSe4lXf|k z%&mmJ6hOyXEP>}BodpNJ5!GAU@1KrtnD2ICzJ(!KX1vuQzioY-oOMgQkzXpUjcZ!6 zDyyK5F2K&b>CWHEuCBB{65GSyHC(|FeX1X z)PU5$Y6beAeB{008*+V49~d>8FPrM!Iul7u9}F~ixlc@Ho&4DySce~EwJH^@dy}<< zZ-l)bW8gb{S%>L84LagusLM0wr#iUd=Z4UWp)CRxvU4WG(x-`O9nwr#AXOQb!-yzI z?nl|Q^&1_`|6?@O5jd#VDot+=M?WvTwv*rK4IA1pxKLhYo9Qu8!uwj7UvuFIDEqkW zQp-BSn`u-~EjOq%Qkz(|drP~akTSqp|I8a40Mo>vYU{dN33qz>n34Js(`_zq@z~_9MF?xRAHjY0l;n<{-OZsb5AAb8-?NR_NB#&RBw5 zcMHXRk&^oZ(>>i_RaD#fxO=?xvr?FB(A%O^K3yL!$O#@=KaJ@%nyjrc?D)-AhbUJS z$(p;|G>1G|9%!XLiMfvE-t-^z#8*QZ+=90{!<&5+zX}YSnas#rtPka`hu=+$)IQG; z3Nnm#4nOzrYUvAwU5%o3xld$&>31h$Et3G=b;E09bY1L|U;U7rwATWb5v>OLW_~jz zLVkA>mh^;Vv{0$?eE!6E*|Sst-{20l*~?XX2X4=j`qMBx!WrAaed?GwAIgI7}P6@#xZs; zhDjr2iYUfsYv1QR){3L^g95)o0O8R`s63`KZtc0_@*pELVyn6?zkUesS+B-)n7S<8 zxu0A6y=VvzD^Lpb3*qDcDCiOAX=n=-YJfTh`RTel*9V`VWp*RybEa$)SI4dVzd*9C zvHk6i*gAsXos{5KTJ771Di4}>dkqntRO8ebrxt(Xgn=mv2A4?n9t+Rwf?(LFB zD;}JY{9qQw(@?hk09iMTS6-7giaBiZ4J^#;wG&E7PZEV#!@E@;+!D`Eb#F8kj~D5y zq4KjtcC~E-7#Efq-<<0MfqA!(I^>9<&cHD9 znbKu1MN65CkE1`!I{o_NFq1~mjasFVlHp)_LTlDN_mREyC#s}?+eOFo*kh%nhl;Tk;l7Ovp|f*O9NWc|v&JhMUUU{ZD(%!<(31 zi$2QrVIz(wr3Z|%_a-*=xHk+Z`3BgIEGUob&^!%SjyRgXNUd31nknG~ew@)W$guXV zR4aEUSZ+UgR%}tG-ckpIXi$QQb_R3VzckwD3mT8l|5LZz{ncw6<;L8UPAT?2MDS30 zWnDXgvV)w6u(vTW;Cwck7OZ3wU-Qg|oTnl*_m5`>MLGqX-EZz!EY49bOV@0}dKS0Rff&Bh;cd&$A5nqXN8awF%s0R`?RoR7O zALwOt1j>e8?d`>0WCQBOR#T%jRPch!8N!e?4%#vNTOE3EN!u#Y8{t+$vB>qG5bo6` zlM)DCrPPYsY}InWv`G_vK&Oe1$C$m0}I!>5%--b_x%sG+e~LBmL`op}tp*SLqbrl<&%ak6U>+js4a5`5{| zr|I^)IPbpUVl`Q1#UU#VZP3zATKKoOh>}k$O>E#7*{z6)>sIQoOZEUPEldi~duU(BBCyns{GDjkXG}LS91E7|6k~`_z^_R2e3ZF^f6K_E zaI1NS<$3{%aZhu`XVq9$DD$3vhtX)K(WRGjQW@=uh9^(lnZ)%lcCKOC`*1RW&C$bzzcx0)ieo@>Jx zH{sv5nRrHF#F)@ss{*SNOm$s$Th#U@S#Zy)Znx?ty*Tqgm-II4;14YH7jGEew(O6ZTK^yNQ*w>02 zF-&2UXnx-tfyKi|uO374q4So@nh%IZdN6Bo05G*lv~K$WL5I_jfsgj=`-ZhCkbP#; zwBG>tS|+0f>Ns4(-YYl%N(gx%Y`M#YL#F{KX7%gWGk3U3IT$3t-BZ67aGB`1+6niVT#cJL z4zIXJf87jpdKUb8`*#u;%(4>)@gZmJPQMV^y)R(>TLs!+p>>ANonZ&S^Mak$f4S^Z z^w7+WE-eN9`sQVa6F|*_lsk?4GXE)Me35ose6?B~)(*r!FLd>nt}w6y)zQ7M8bOvl z0;6tWunKZ!uG8Ttd_DAOo}ap9dUNfOkvi~s14v!{wA!!qeV)M8Ez4u=B$&-3PZ*%4 zupf>i_aG5FM^!7j>pis9bBw~FDBa>q9<3U9YqGb`9Mgc5#J7TylcEEh&t(UmdynL4 zIPc?-s4c7`tdXPNrgnNC{SK@vhP3}j+hNqG=>I`4;(tQ`?7difWQ66_pg2bbK0%yC zrZe}xjHAcn-}YI1u-hYHx67md_BIae{B4%nTf+Z(JLG>O!v9H!<^R?re>A;|Bc^)h z-;!$pHuYxFL30SZbLCc7;A2Dm<)y1tAw5ovW?t;(Zalg>E5N%;H0_P^eyeCf)80Jp z#ZyyC3(%RQONGVg%3Iq%lcj17yO;=)AB8YeNY#t&*?j_g8iO5UH;5Jh6{-i@!zv%z z>aArd-Q>&h=}TXd6OfrBQr}wa`tGop0PGxUa12 zf|t)(!Pc^vU6(^BKLufWa^u3K_#Vxl^&xOeMxQ{6_%T(p;pWJ`x$ujQ`7~j}V=Wnr zFhoCZv6Zk%>~6B>*LJA+{`!EAsABY4y1@YlwJO|vSVGpsBCilH3Qn5>-Q>LIk+5$G&u6e z?s7i2oyb-%;V@#R8Kr5z0$1E=wwyg$uZ8@SzvI7)F87>*eN&@k)Ad2wnuTIDM|uP{ z-W}lr>m-+;c|s!XJ8lH^@F=8P5*W6MHoM;1r8C^DB-~;UaZS^>dg=^Ruc`#}q)x*` zLW4F?x69nb2hLcF32KV)Q$1{tz4EEkAUqfNIw1=`LXEtJGU@c&%cll>e_R>GaFD-= zj7eq~HJbM?eUyqzOt)OpNxU#?r}f7e#LqEpp<-m!S$ ze>mH1D$TtjC`EPUu#fsGTdailvqS08#xr{kVrI9@pQhhs(#J(Q=c6|S zhbQ>AbI9GCZ_=>g3!JRv6=QJ`6h#nZ!3v|xG z<_Cf(nVN-VI~knlhtXBThrRffchx`^Aw9ruc*!lt^fD1Ew3a-?8Y>f0*gs;7Q3x3H zV{Pv`U|U)E*3)?gE(?EP%2?mVhiK&??rnk$3pBg5JGN)xKk~(SsO*CLV(X4leoq@J z5@;Ja2VdX)%md3uw{B+D?LyDUxvf7ZuM^m6YZULecHs8%=+lXOFvioN`C$nJ7VbG2 zvOY8nE~hkW0O^iJdJ8XvoV&=d&(Y4Zow&uOP^`JG(vm0R?S#DFCwZ4v7r=K_ZFqAT zSry^?Fp%}Ooca!%C(uBcPS_Xe`wux78`m zu_gZ7Udc8JTc8__h(Lr{e#$!%EHHcj^HKog<7sUe^T0*n(cuu035{!~W_dGmlleAi zJ>z7Lh6pJeIAJBqNNXf#IjF)wZOy-c*Kfw5r)V}yGh2sV;+^Dl6wTwN05kaA&!1}+ z*y(}E6UY%iBK61FfYLC96g4UT+Out|4$C{iw5|lG{0j?jb(so;3Yn2z#tKYv)l{FF zIx6VR5B{GqD3QvFXB3Zpn0nGcVA&=DSDcKZ+f@g2$g-<;;}t2ZA}3@QBvr2G!>9tFJzi35y!Qtm7^iwZ%t!-I7^z`(@fXdg7OQj^{wdf!NhA%83yr-gd?_nDK z9t2LOT~;;MRxe9A5>B^muD!!&F=gS2zAE7PLZ*{n997<%8}?dejejY%d1*+FD+VR9d(g(lFDF z65e^gGwFg#XMj;2wA@?z!orX3WtKK+}=Rc?VSKR#e^otddPivp+a;$97o43JxD!LZ_&Y8vBo(I z@qcYv>;lovU*y%}q_{Q|TWdHG&%=5QyTSw$IyEA3UMsYQ_i@^If2B##H5Ow~{MEa+ z^qC?}Y-?HSLDk2z>9S3`sFv>yBQZ$Y3cd2c1^2o0ojF8TN_0CAUitJkBA%AF`vC3k%S7B5u!_Di=o5>F>>ZVF?4 zvzHU5WwoT#`~FBZ2&J|qi$!-ZA{P+;x9dHu)+{H(Aq}uJ7%B6`3dgjOk40slF?3Vj zgz&JT_DW4jV0-Z=a$?WsAsr{rFUe*oIlH_XJK0=H)$nxF_6C8}`<-OG$gtAK$rP(i zmm`>)H53-lF*>)pP;uZaT?NEN%UaBts-5nONVE;sU&@t}Jz0)%!+sQ9r;m~?06z40 zKQ-zfRrgXxO>ACj3VkiKGcI!wY|ILc8%@prYC}lk93*KJ|Ur{EWV|CO^;VYzo5#))`o9y zl>h=0tshIFKQ5}m*uTtvny#;>r!S5e54=vLOG!ur@W4~cnSWSd*ymNO}-uNscI*%UGBv_AYMqdP;#KS|?6 z-Uq%B(*IiGGxXdyKY_$CIqGV9HG=h92 zI={u{bGc-B<-sOeIO|$QZdvk1jmeMSR*`P`rcKYDOX#}Ih1DZbCP=mUTOo^CnlDxa zW|>61_WDxfYLeD0Ib%HqAn)MV9B^w-B^+6I3oU&bc$aI-R{Y(sw&=+LR~iF`)e(iJ zD--9w%woz=6}jaW@xUE$$SeJH)O!94+6-vG_y3{J9Y! zM6j?5*4X~kvuXF+_2#3NZfWC&OSPWg9I&c8jG$x^{FWzI$&-}H+k)Rf2cAhzSoy&7 zd}FK?NKofe=g3S}P>2h=UA@#tvo-8v=El*$NWyc|UF7a--gQZ?or?2AzXUF5M{7np z<)g-dgkV&_od@=lT*Vy&U-#=XQ6&TO_C^aWR62F_S3y||>~PBrd*8B(V?iF34ddZI zBaCc^S9wV7+M*;ud7@g0FiUzpX=g1av3y19RzXeM*Mj5H^Vun2?H`o7!%??Q+>Vh) zq56#@sqC(b=c~|Y^_W%#qqe5u7*e$}y2_p08()hWJg(_-ai6wk>n7PAUc3?avXFG! z{5+p#!I9?`?vl|iLuXf&0=_^Lzr>s7y3|0ouxHbIUV8*Rgu)PgULAGXT4DTqx{dnj zJ~YV>(|Nfm0!D6vS|qNYkIlOETY%rR8JOpC>SWGu%kD{jK^1Qb6QzHILY}jG`s4DD ziCo{Z1XDh_c*iuY9A|P##8d9X$T;7}L6RB-@vM`4w#EDq@Q0_YWRu# z`&(4Weqr=bn1O^PAP=T`5K%j(@ARD`(c)i8>pywrqf2Q&yhNS!Y)dRasov=^@eO(% zPcrlv1|r?*zAX2Qmc&OFo?C00TX^)@DL*Y}WM&`C*L~-^FU{Ac7xp}^hyS5ID=Z0G zZhspaI@cp$QCr+w{-5kY@o8;!E1Km?#2Pa#Pr6}Q^vrBPT9rw))5s3s-{!s3NF0+M zy4ST1a8QawNxSs?7~chxrSjv5QIxjaeKrkP4H@O8n8tYE%*DqQqSFHQ?uf#&r)3|V zYf8;7Q?~+yylFJ%d|&&d(P`}!ysK7n*R8CEg6&9Cm2dPkt;|(XCm*kgh`M0=sBT~A z9DVkgxr-Hz?Lz5OVvU#|Rs!i%fC;<2#xj`grx|UW^WKCVTR#Wq_VTNpSq!7h_S;>~ z?uH(HyFYbJ{NB_LV$Sk~w&A@@t^^fGlxsAUy0yT~9;i!g?_I;;BEp7WKa!GVM7pK; zPrGL4Dm%3{svJ4m?t0ZldbRc#^Df>WK$;lFhHNx9_3k6KuehII8gEN~{nEJqgxXuC z|F>%V|Klv+{}xi+7vsM@Uie=hDIlpXjp^O@R|Dby&B4U~dguOZ|8s-Ee~?vPxyETvENtD|D%$hA+D4eR8qeBCxY@6$Qqw`6J>0GV~{(7O7;WA@YuHgRBV zZt9V~|4>(9b~!p|`-eV>(J*mJiQTWVv!L1RZSq{#sA&Ny(qr=*|553V0Ct=)pdnu) z7xQNSE)G|VtZRP;D_7Yl;)Z@51`H}&hDyVilXHJ@-rS@UQ*lE=GJ$>r2(NBBt8y z6o0iGc{=ufeST&Y+lsHByb%(*zz@=F3hMF9HS6KA+v>zuUhcR7Ui&5XpE!MZ^hQ5sySPKO3Yp7%}Y@n%(p*TqFVZUh)|08;Ti{)CB`z_a*vg~EEs8r{je@((LC-pmm(VHYtvfk2Q=zI?gDpS5W`eK)k&nKXY2{KFev5Q)eF z)wiPNMUx`TI(Z9!go~e7-ksqgTM}#vox9&7PQaG1pdCZ6Pq#KYS)EHr&*t%vh=Nae zaey~K2ct^~E-Eh{yY|=WZeE*s*W$Hp#j;T#ALTH~MjIg8p21V`dOmtu5t9I+}0ZqX+L9F0BbjC_=Us=X-q6 z$~=CTH)8y+ZQQm|T>A3w9?EP*Z8>Z+J}1r`)ne3H5EKecir1Z){5FoQUU@Y2L^3ES)po*u2?UN2F)6x7^?E-xJ|^B$7(5nDs)&oYj8aLd zUvBPIx?n|@2w`!&w0MwjIpyzSqD)c_ zg#`%h+_mx!7*rm+A&PRuDhsv10$vWsw#b}HU+8RNB)l$y&??hCE$__jXWkK2!2IKP zxVBd9D&v%G{yyj4(3NktyIJTyYo?o(m&vcdF`LzIzU}`66>yD|e6qv8_VLX;Htc_P zjQnU-mY~IedemTF;eFP=T-lr#9JSM#KuiRU{k)0rgn7uIQ>9UURTd^S6AQaR|NdP$ z$CNccI9Ac9$x@+dhbq!z7IwC$g$F6{Wwd5n=jV!7`n`IY;7573p+B=m3dj|44|-mh z<#C^EoYG3y8pWK$vv#imyhI*f)C!*}{Q6HrX}*SV;Je-GejhK5IZ?jUZUs~>={jgSfbsEe;A^m^)78%)5&c{OEY&}jdxBq0rfm9LaYiSWC zk#5*mdMyk57HXjK;P8!!>a^kE0|2oue0e^X(^BzK79B`S;V z^*dKGlD>I#&}ZsU)AYCFHOi)bc4yeijVf>!y2Z)nd|WH*1ILf!gq0Dr=WlVMfr`&V zR}*d+E4s99@~2CH<>(b>vpik&Yv-!=h(O_AZm*kGQszk5GCc8{zRj!GX5W@^ZRMp*+Z7uAz2;4#T4H1wGT#=h1qrIkyHiUe zE>!*G(o0L`%2(7)%h|};ouj_2%~Z5BF5ZRJX*Dg>O>xNQD$59I|WftB85OxDvSGZS;{Enkd z_!m}B*rz=_%SoBPkLm$-dtR*Ua$scIe%iUnNM~%OXD($Nmcj$ae?7>%;A=6d5b=u) z*lzopyZ$pR@uSjkQ>#{5gUkE0X;qW&2{Q8b^yIJGDv=Q_yr#;-QJ3i_#}Zr|wHjgv z&=Y^Gk-T}k3sYL1K^<2*b$hUP?Ktv4v*8SwmumbRF;>NJ$s;WcIj7CTU@A|@e)5X>p3O;AxE7~gXVSP(kuki={ z*auvd?wAjL>B6H=XUmpSlB9$>#)NL>fqRGEO*khml1J59O$xqbz8-C}PJ50f3PyOZ+{D)3qMWn5?4s`3LpgFL_#8Yw{WlP#mKrY|dN*gru5 zsdbcE2he+wBPsWfMPTNK$B9#Y=TyBPRr;W$3m+#BD z@|;_i)~o$UKRUqUqs!qay|%fc?-RcGLxB~ms=m(XLZ!U_*J7tX*yKV?M*g(*;UBZB zoYX%n#2i4l07nSVIg4R4{DYQIpjpVs>0pG-v~Cy{=_I8vG|J?{bekeazh=RdLJ3{72AcyWW;x*#f_klIIOi zg^~PyBDYE$-AKBKO~^>xG{q%uf45Ekqx(b)|G<_JqrtP02&NcE z({bMh-WVb?R`59=O}Z%342u?JH+wIN)HGIjSVlZS5Uv6~0Q#9Xw`aO!uu1JvIo*M5 z`GfnxGOQpiA)i}TrmVDzZuix1PeihV5Y;A|1dm+D57`O>P$;~5>y(au`laH|Q#mec z4Q4qHVHEw=W4MD?n&jOoHZIa9rp@IU8{!^djy}Gg#o;^PS_s2L9+{YtvtnI;c;jix zR(na}@F5!0z)iGiH2N1QTHyF+r~81ETOF(rAG}(n_+5J;Ep>cHF1mRIzDfku_I{dPeuC&~>(m8XS6jvg zl4Z(uEv33Tj~%<~5vq5RWjnJl5+`3WbgiV^*QDWA*IW2AMcmerrb!RCA1X6_7lRDeseEr=(3h zR?SdZI(76ZvaH&&^opNywWTZA-@A-?ssm1*_VTpWDu?;&#|$`m2d(cr-${V7v%Ft( zQhk(Ov6g2ATtj{gjxvPg1u4D*?go3j{)@1gqT8aEJ%tWk&Fb}!yj%7lue?P&ZaZSv zP6GOAt+Vwx5&>-XeQJU49|HHwPeFQpVATpGMMGU&zf)VLl3&l}p7H;}4G2th)HxO+ zm0^hB3=1Bw(S5)BhRXl={goP|*(6Ek2g5_&SFXhPKbA@Q?|DMv=YSvq!)sL3Z-&F|rD%Hf zR$c2sM_|xHUxmL2Gl|w}Zf)t;^ z^(a+G@km;IXHP1>fo)AWkDL+Tc$jCJo+op95O0f|fmHW__bNlmkNpv#Ca(6069Ocw zQBI#6Do7Xed}W~9Du~j zuaUtrK=|yVlttM697R4Pg6yLeYzoYZPj25_yKCOKQKmU@NG0>aK~3+tx&(3{-8bRt zDW$UEH4@7RLNc|(%16Rl4AL5U5+K84aP3ownQ>7>a$jvuAiNPVtxKbp9XVJJOT^X} z@)3VS`a`Wolb{Q3ddC8M#FpQ_Q_n#ES|`v8sY{F<2)+pR2sHyv!+z%|vq47#{>w36 z#pQK612)Xauo_7xqveV~(&C^JY4;}>8c-zUJ14B8sPg7kA*M06EvM^|dPx3&<>hgh zqK?5Pm*^!nl~Y3%OZiqtV~~WwDpWb#J8^hUuiL zZz>v3GyIh8P?b}({vz#Uh3%TF2(u4wVmEFnyF%~H>$KBQi|F_tg!tPeXpn(Mi8yMl zxmLI^h?qy5Ol=Kb8DC5<^sO0M^o19_D$>irdk1k3+O-sK=-GvV8v0IQ#}@ZXl5B_Y zG=EgH@b0-5+jKYbaJE1!apQ%{;KNl3Z@r2#*~PVX+!eZ3muYwi)uiz%Q~A)WqVKC? zje1G5yYra=C5q<$83W=IF^oaf@z7ad76ZSq3bD8#K8I-DB)tulOZgh3Uzl@U(VQ3U zCE!zHDSYH0ok?u${X(K^OhQ=lwNI%nMWs2~b868p{in$+m~XBYUFgdG0-18txuMIc z%G_7_GQ(rKFD@Ugp#>S4Btqw|0@9~AkVAhxBW7Xu1)h}j(yRR#@&F^X(ox2c&bTiF zs%Em>I27juD4R2GImmQK*C0okQ~g~onF9Z<@z~QIHET`Hk^Efg5cr*O9dEs+L{lRb zciU&@k(SN+C(7=X_HR##@OjJ;DU>rpfd<^2`%QDsFM+iu*`7g#Au2LN(mb(wN^xd_u$w9i`U+y@ z)W~^3Ha_9UZyh9(L6crGKdp6m|MdI9*95&cb`yhzwl{km7$;$tH-N6}lQ9Bx;mL%~ zi}#ii&9!gYJBk;Gm}U#9f3!Cz+og`X2bj4g8X&go*A}=*0zW^xD9#tW8C5Si#@*4e zSzDby2oa*!&B>NRLZ~#y7_?J_tH-K#6B3EP{<xeQf?t)fJ z3Atj<1v`BLcmtnFHyCrA46^vBS?p}wR=t+pCnwdFisIrUuPu3+ZD5p_DR?KnV)HU3 zwE0IT?Ryhc=fo{je?49Lq2e3ld(1uHZF3vCEon=gO06V{9&Az9{DZA4U`SATv2NrY z=V>ZmfR7_pX~(nhVaM*w45bK$^9f)SVmQewbd&UpQYM!0_~yuN-FQQ7VBZ9Mkssxy#?H?f2bq@XDmY01V$rF1yx(+nS| zdLjsg*|;j^>T*?#k;MBuHL+=BddRpKZ~rRLyH41s+!x>j!4EO}SmV6Mv0X#*=-GJD z;%7HetAjbjkHi6|NxRsN;-~R23ww-A3BbX(@;(&k{S{MI=84*iWvMN_(D~$Rofma& zuCDXi#FkXkG;PZ?v1DVgB29#pJT#`QlMm!C>t>Ghq?=7SedH_|#NvcR*ydtS1ppzG zw&(YyFn_Ag4jQ+IOY;)^0Z$VAZg~8ZBqkRyzB)b2u z-1{-uVN2`p7E@-O2Wqr7I)NG{a}n!@m{$zwagi7(*+MKrVIsM%nq(k0yrDtHmA~bv z%GTJ-ia@N=61nPR#O9@><#--is;Jp#jopyT9C_*;U-+GW`3X+m%D&& ztXWN^#ZJ(!0d`=K2@T*b_B$T=c<(PUhq&h{ZP6VVV)=PWP7e5s6+SJa zEO13Ze7>7SCFflR+**7U7t*rQ=fERw^eInfknV%G5-{}wP>xH{26L{7Vnsh_E3hHK zaQ$i;Agq}c))h*mb+s!iWvN*!$r!nw`zZ&F00d;4gj>b@vKiCtcq<7`5Qf~~?`|Ab z<+|&k;*R(_cgvRiq~Sor?f9dBD!SRiS;CvRAkWT07fYj0E^UOjCK)P*NZ(nwho);( z(ZY1A=WxFhg?=S2gtjLE#`vb|a!Oi*=_+QvKo1*r z4mTfTaiJf2>m$VJ$vMQCOMWV2X=X zjYjhj*4D*l7rA*b{|`WZA8BL{UWIN%o3q&dXp?WgNprO*MXP%B&@r~#mac-L+7 zr(ozQe@o{udw>3P>w9rx=E0PQ3(dv;nR?MV??$@&O07Mf`F{!6=xjfum)e9HEB5#j zdeSmh*rrDAhP51V9>6^$tuBt7PeMH14<2|iE#%w%EA-LKYWnm7ux;?I9yFUzTAK*qt$dWSqjc;6_*wNigzoKAAtx->|di#^XByfi4(*_Z+!2Mg%xX{PC zg)L00*Dt0L=gJcWsfviit(|w7f8^R&#y!G(ykN1p$|g-?=bHUR+_k)QZC8~N_AJ<6 zN*J2RGikv=F$!YwwwH-UX`0!4d-3kll{B0A*#FR zzU5=EpG35WFEdqj&?1j`vsr9>QT1FLJ^_*AOB++mx|mlu#x=5;uPA;?>1Aj~`$Lrv z-M&egvF*T9jhF7>XKub}6gtXtKs*z+Y7=s)q{uR0aCZYFGA7@!O}Aa~eW@2~`%$a? zSL_4alGB^F`C*L$D7!r+5lW#`Wm%jnhWnFI~topJ4=_KQ_x2ehu6`(*15%aWmaYrD98MSJhKV5$$4Hr6ODUwSc`F(>|H>i$_*vin@Wk6SQ2(v9e2wKR>eT&s_CE@5xNR zhkEc-5pGE+#Rm+l@D6(hhcyVT<5){vBvoKOY?Ro$U-cDBdf!hcXyjo>ooKP5$wx+4 z+d_f|ZT9=wrMOvC5RZ%fb|Pd<0LMh30Lk|39j(V$!OeVvdY@Z?TFd0Ga3_4ON#uaiD`b*x- z;#jNXSVxR|W$~?X%3^+sX^GE`7;YvK8p{N6L2*{sa8fjEa)X=l3pA9zzRbntm zzzFzN)=3<&0d%#hO}R&%KIa{@o7}=YNe^8E5G~GWGfO_ZmDLlH77MF2p=RCe@*KJ; zT#W)Jcj-T_*){rl=1}Hfp=;mj)gQHwoDsvw;I)A97DnCyQ4DM!Ys(1q!LIli~zu$Zp@NA^eXQuW=iy zy!7EyCykuk6S@U!43MQipE_*K;hfOs$)FyJ<F1eGeIrY1*y2UF8b2#Uq@| z1Fp0CWgmy1-AE0T<{UBG^?RKRRheT`P?CBmtSD~GK-?Ls2%w96XcAvdn_0DleHHG} zc!X&GwmVrS@$)x&|G7#a7s#x~i}{4OPK=uC{f-apb9X)8uQ7NXcuoUC>EOEGi2P&t z!7u!y-#cY#EjV@?X}txl5-ZxCPYRGHLb+a3i$|r|)0Ubsm*Y+``|23!YUwO`oiSH` zPx5r_@|`lBu@n!Z?cQKZtG`nQ1LE$_?`i*|+4@jHOcMAbA4b2Q`S3d=KwtuU{Qe97 zlc&$$Pawcy`QNEHzAiGfF{-}jGUZp7r)I>Ur_CCDM#=%J%Wk#yHw53;mxFO&fYMoZ zjGMd63+a1s1DbN$!_^n*a>L1sgM5#&9SMF^>C1+j*2`9+GGszxu0Q{5?OKbfD#E}O z>6t7m5dj!q@eV0r{vDK9rCEKDQ{q>u2iX8}(KIe2hOO!-w->|EIX}#3ZRTzjR|Jfj zQnSk3?yPq-?XG3vt0nw<$SK1Eb7)P0YZxm<_h{jSg0k(x{YyvZfLo7yTbwbxLAS1s zM&Ai!?0O`y!}eu0rFkifnX?6H0VFtwQGPD+JwZ&)p(9~oKDDoGXW1=8k3YYNzimCb zRNFdr+krH{(c7h^l?uDNc35SmQ~Z6;NA0=k{ihoZJuK(&C6H7#ur-FB2;Ug>rb6=9+pJc&Jo=Sjbi z$gkUUr&X7I%anq2wcX?2z!L)Hs2`QC*_OLy zGHkpY(rDh7e>Ae(|Ha5s1`I%E+&U)Bf9@o7h+!4hy@ebQNDTMavu90|?E}p^*KVN0 zEq}KEdJV-`hQti#?G7v}C3oAD9#Fzgl)^DDD_ravQ5}zN%h9K0d;kq^EJ{RUzp_f zRQ#1$R*$}W3KdkZ+TGhwEK?-xwjQ!r_3CCY6dQ*bb|%AKxn&wZf(yw)3(Au*YEe~f zY??5N_Em}6Rk@lRa}f%HoTnr)+vZO}EMIp;S&LvV(hVP#Kgt=Cc=OG5=NDDliB`i* zuZ|DLi^gqHIuL8wKRnXtjPr+~si}MM$y7x_s4CxKj+4LDbEEaKkpN>X(2V^AxO{=&PyZTgyV8z zs?7?%9yyv2ZKsh8sUE|WCOSl&yJWf{#f+gJRIE706OxX$j7!OAcxnD>EXykq2;FAp zNgBXFm+UeKT@5^2#LDo{5Zvxti<5{kWFWx!pSk)tVoT{ljho*&k_=_yGipsW$@{QXeqlp%PG`%Qn+Sm?9H?=6tcLe z1#~vDw*F^33!VPR=7BrpFCVM#Cg3~M=M4yNK1^JH2|v?>h})vkq2!SFGi_@n#3t86 zt7DR%iaV_{J-i;CkJmdMoyI>J>p8MnP({?~ow)Umm;f?mOOPy^%h{d`u%m7MSg6S! zZlNCpcENEqhMRF2c1Nmdd(NcFcJ*m&K!XXiit^ecc5Q6PtTC^J@?`!@9~7>BP|}Sg zK$kM1Hsp zt4G5zq~cZOI1|+Hgz~-9Ctrs%hs!EQGZ&`_K5xT<3c1nXqJZkg$5g!ondGeve9OJ) zLW6hrjV7*uz{^slP;S{{-XKkohuIfIo?(LV$=V(1GL4gR?Q(iI`1C&#Rq8O>&Wc(_ zr6D*Yma*H28;xZx&w$&kX%|E(>Q~x=GFi8RcJ>yJ@T1rGMZ(Uhg7!9Y_b)nyHmsI2 z)bxelBWL`r^35nDJMQS6Og*CqZXnnJMe{XY5Q=g)BgN!u!S?@6{9-Z0GKD zxkM5+lw`8#555B(lfZ`RB+f0|rpm+gb z#akrnDeFUd9G);JmrQo#a^kBxL>Hn1*$Z|RbZP{>?|h|J<7^;OqcHDRZ{;~yQPle) zJ#PczAuGA6o6Ku|s00fum*4*(Jld!JgL1EI4;@y4V{T5~$KL~3RZQGt{0siIXBJp)oF zIkLfQ8X|vRCa*;`rl;rSD7W(6W}grj(`C{I_30S0b1Ll76Htx5`9a*h4xjeFtSu%RzrxA;+LJxh7$-AvhoD-(+3Ndo#&>(+ zA}ZHj--F)43*o2BB`S;dXmR5 z75uXv+5_R(b5h*&%2~eIk{Fo@UIXq=PH+23S6_rFYlq|X+O6{>sCXQ089StoEAzK8FDfqGi}4NII2GF|*xvk=PF$2mgf}Yp8D-?{rsUNeNGO_t*KF% zgZloe;WC}7jkaM$oXcQhWpF>C=XDC_ccwpIhu#FkC_Qp_`A)2L9-TXk&`QHSH-MPU znwirB6E+N+!YX`{@WCn;EPRx%Gv+Y!-bZp{Y5pn!HD%GA9zUO{X>(CC(E6qo#1+Id zS_Og-=jqo~F}4hUw>BEWJj|A?yq>!Ft;D{ij2eW5`L{*~*W9^A;}K{948TfMNzjAu zR-wKWsxrB~IG1vDqOV(k9KVFp%`~6iD%cES+?*VP|1v-pj?W|jZp`epF5BJF5Q`RY z6|o;M^?;YVPbbh^CDD%)h9WZ|8R;UzHZ$cDhWtv-+j|<{H+g_db$n3X+n0e+Qf)6{ zRq%NH`zOH%et%`iOnljed!F$J_ksBt|95D4+n@2T$B7K!WAC+xjCR!BEF>r*vc3%@ z%6+WZi#G0i;Q-u1k2CvV(dBn(&C}OhE3;Xt!d4CJNg2}LEgJSF(r*>t;ti~VA582o zzXOXKcnkWbUeF+DXEzSiI_k>J#J}RB7j4MR**bL#kW!+vA5v66wGUCtwLY~kh{EYh zOfPDD<#h;?m*|N_36Xd@iWgkfG{eexUoXsyU#n=;+ViUc@|D0J>c8w567Ahm3uk_- z2G%6WU(fXhvaId(-J^k_6*?jbH=U3Y_N_WkIiI4^)tGVMq>fT0MDt) z#FXN2T`>Gl)Z`v zzwe5Gtrz7aJDf7&28>Oq?w>0c@~j#a%a?Q;yI?Wc+Ou&VJm;GEwvc zT-hEJZ@$`O%_V>svb5Ltva28O5-iEAY%7Zk_cynv$r2rM>wz5VamHr-eP{^yY}>t5 z{js#|(yGSO_Omg!*C;KWNA~a_)-yrq*bL9rPw>URj2H0Xw->4oDwjPlUczWIHmn+a zZy>nmGt6-f)=UiS-Uq7nOX!i%gzKf$sLLU*i#^pejb62kz2Lg0Vo}w33SH1X@t1jW z#Rz>LV9pnnV7n_el#dE#dsODs@%@p!Lje zJEC`UD$`Ss*qHc&BWTB2(XeMrAL5CP9nVKPx1T$ih^S5x4oMh}?FtTsz6AjFV;|9* zduP??b4LH#X6)lLgdqV^tH7Bu)U}*XFK+B{>igOvey{NXOg?P?)=Kyv4Ref5@PDS- z4%n=Fum9KIhYrz{7k@hB}sU%8M z=+{qqBu!=j+fRl-vZjC$HSKH=9;i(T`u;Z<)Hjp?gPzRA3d{ylt`CRg?senc+@l(= zl+3&#J#7I0Ofh&GjuX`BPWqgG)JS$sLFd{uaG*aJM|3i30M4)l!85-6SS zs7OPa%HQktS*@PeEuR;w*Y15O-M}7Sz$(?Edepy(XuTtklDp)W+1tL*U;CqK#oDGS zKOH?>e4xByqons-9f_PqJc%O|d|y(|vl&@`{(@N2{(!WM8(n-I%Z%$-x}Hh3x1iM| z-Noz5wFGZo#-*W*as5AJpf|egG~_ial@v23i>u?yHW8mWX?Hwc-zTVb<4)t=yNP zMeu>%mrEMzBCI*Zd~xTe6Ke(VRy9^#OjagHv^Qy4a-w>h=mR`n-y_TP)LaZoKrmIq z-Vbg~>4<03yYp1v?B~f~3!GSB-5%R%S0~#;f5i?jMk<~fKLQWL;#;XD_r4^m6#hA) zf1}-hNweNG+_Y-kDB35zYbDw||5i2_t-O{}tU=ApY?@e7h)f4UnN`1ZrUy3zN7(3W zGpfwMtbR9-_7S5BjhRFYbthT?Rn6%$59HPzbF2ay^4H55+2Z-O!%?1hA%E2S5{1!PdZjlHms=n)2g}+xP?aVIk!bE~zFe zU)uoc5k1rh2*Tewmcc-TGoIq6+fp9%edJ?AL!0!Dyz8~m{hAU2e$dbA&GO*FOCJJ$ zXc6C+=4w;@&IDjjArDdt{Kg-V{zOmhLf))+-mg*p?A7vVfoRd9OSXVF%eBNN8R{_N z_Xi9^xI*+GsNRuk{~nKHsZ3ge@aFLkl)3!XV?}+|?S#+h0#4VUPL>P!9Y&Zlg;IuV^<4B!4QJhfM)@Gm|U{2)>H&oR5(nrAES2m1;z&I=ql zikE6wwHA4KG_i%c$kA6iSZ^=#0RxZsvE;18l*cN81_dkAjNS^GUet!FZd#LShVj;U zlKE?3frp+GCZJFBm!JKyW|8W$cZ$w>UUHxFIm)KHnC%eQK2*~7_JL<(#ZK#B)2LO2 zwgPL)nZrBFZ=dUO>O5bZWIUUw{Q_=O|9d!9dGVj&)Mhg3yY51oXm8!80hzJ19A+P& ztc+0=0CYMqM>(96miL`~g2IF+LPua@WrW4XvX6$!=yhl#n zO6dWSTjENgg~ihmok{O)F`@I*%Z)Nz;ye4KEn)3gN#aiz9qU>8j&a-Osgl!8H>j7D zapUZeZ5r6?P==Eg?t^1U-}}yv6|Yq`9nWX5VdX>ilI1B<4>qx$U4OV@9!=wEHH15i zkw19J1sJo?>AzYtwA#`Pbu7?!ISupn5oz)l?}2=~D$*vCMe`zv3=|mItf+X!1Xjkx zRB+fk1S#fKr5Le2`zN=$TPwn`n%I5u6WqJKwD?0V1MsNM=+r3-t8uG_^E_^xJxFkKLY!d2MvJg?QF@tNB*;NOYC@Ic zdWQ1vx(p_;O_N91A9~zk!rw^exjU5>&2W`WR*t3*oF7w*s!_75RnYZ(8dI9r`F@`w zWOa^xO}G}Zo#Zx*tgQ1Vjv{chn`C#GY><||en~~!*vqnzcllnaOV7&1<#|3h3Sx8K zyJvXudqK5doYB`HoM_`B3E1U26Eb8hdng6}9k%t^yWec<_dTTZJq!bmbTFs%hMD$K z$Tq4(URd>}-gYBzl8Xhs60IaCZdCw8-v=CLo6*%D#r(`A@v{a96};Gd2D;j@74)HV z^`XPK`E}Sq{ROKM={sG%trF6(Tv=06nE87U2yz#;x_z@?CxQc(Jap;97*Djyc|lK~ z=H|?dE08DL^ugKAsB{S&xYW^nhPsfE)}tlY#&yo``>G;~DQx7fhGUIe>f(LjlrCqP z9OAV1Gq}!N#Mo_#2kGIKc@gJ0Xip+z<*03HkN394ORKvM72}%kLo^L9`>78k<>}?n zcpYBJ=@xvzV&wi=6Ain7WC>Wi%3#igHKZevedLg%%HHIr3&>sF%XF5p0vN}U64XLduDYEsTuWi<4 zcg5;7>1d}PGOl-=&$pJ7Xmcp$jE?=X3JOePpPbg;A&X<`^yqwEgcCk)Ayhdo!NRfj zwR1=R2q%2e1+MRNM2<7(6%NhWZOSxxJo7b(44PY2T$)+q9=MUAU-B~}jBNLLSva&n zJAEc547wS`t=o?9|Dr^la1@r1vXa!n!8WnN#hg?}rtpuIpM{Tv?X>r5j-(P@lg$Sd z3w~X2Y6aEt+3Y;CU9OaOKj$+IYuv}xO=GR)X~$_slXBzWKcd_>i%$A%1lvdWMLgj^ zbP@__^H4?mf)$+dHv56uz@>(urA=%F*I(c(Fg^pLY58bze%f`v9+vf#CsFPSK!=Fh z=dyv<+EXq;N{gQ@rALc)u}=R*zkUe)!q+~o2P9|?3K;08jHdn6wcf_PX7I0JVY=KG zoF3aT!+u&a%Gzfhja_#f>cqtQHgloW7bPR#ZS?`JGAZZM?<7inT9yl zTcep^2>=Ew*ug^oYzk*QPKC}Y47deBqE`lnB`580?G+a=>`-?zF}uYD2>vQm9XKVQ zGyA5h;;jr+70ofpv%a{>j;rsH_=oKve-HhUyN?_zbCCr;Jo&y$REP zynBm=-I`Q8>z{TCj^}c;lNbrG%0ioJ$du5QR*i`;pBm>N!aI7n6uF_30$~8LT{onb zulq{|q#HC%44ah02)`7l{`5+WBL&TTsB;>fSxO+&yNdzm@Q$LnW~M-72=(}5cuI}N z><8=jKletL#)VX`V~%L+M+|cGZ(0TSOpwgd11SFsW^nyVo?*y&pc&{eA}_?Qlc`7u_t5jy1;fFYqI0{$a3DJ9-MKKpP7^355(~4cqUD59c%XZg>4FeO;PZ z@sgIxpRsb;NnU)az*2>09r*TUyyGJ$jTO8%!Wbpnz^b5+fYfY0e{_68LTXO`CDJEj zF`pUK1i3OUNB_AkR3-LRI(=;ZRa@86z`_OVBrgKb`MKdCA<%~pGmtVfxt+OoPsj0# zD0#*kJa1ifZS&ZJOCX>{oOt}eyM?`7@Uj20Y%~zi(MwwRDhz1qsEgX-bOv{9N)cr} zv?gUCPERaGC+>Yj3BUyFU^zZh-$y#U>cTxkf?*g>Siovd1Tx+W$uU!}4xY=o_TX{D z<(H?6{S3`!R$jFXXaKulmpV0%R6Dl?=Y|zVmR(av9(CG3s*!y1YeqVYvi+r?iyy98**j&9 zwc9u;i&M5isFJw$r+6cPw}tBJe1$ZCnZ%80NhHvUXV&7Q;t7S3Xedi5RN1SXldh)EX`*?#?7+#zrDNQy2Z zb?1P7^eP2Cx3v=_kM(%8vaGmqZ9T4ib3)l7Klc2#P*TJ=aki@J(_-L?YXfp$)#*=#20HZ9=jWDS4OCSxpf_Hnhv}v z=X#Z%Se*kQac|HaY~F4Qb~}_gybNO7g_j*@uk|ABuZ`vWa8+IrAJR!SpT0w z(8o6s-yzkv%+A;Y{hmIusS>w5nf-0Q<~DM;>kF4c61^lOF$ENtgaG*#`)H=uD|rvb zfNXxB|clAMM7%hSchuW>IFLo(+3+5-2jKGz|BINwGl-{)<=GPd8A+NUeuX0lV zh%Q92BD+f5w)@qGYmO!>>n*~fqdv5_1RmvU3i9gj$AA1KDE%FcyZir{#+8KKkZbtJ zzqKa>AsIptYc9jtf8l;*FpA+Ccr~TNA^P%o0jbxAWDgq504^)W)*%Z) zwVFQK*Tu+e`^B>>JH($d$&{;0fx1yB!vIPACVU(4M{q)TA z?X=kypGN9P2vF%zj8XsYxOZXxCdIh1!Gxifa&=ERkQ!A zLfroW)ht!!^|2uSh_Qs!fn?-D)6gs{2tWZ)CaM{=c19UaXX^Zba5UMeMd-l*PZz;A z>eseIiUecdPrcfchpkBhDCTH%ooxE=azLs4(yn4rA>Aljzh=ALL}~jrQr^2^An>c6 z(eSBZM=P;5uz6-bgb}E%rCbE5_!gP8VGUwi_biYV4aR~052j#vGJNvE6P;J9SWtjBrC%-(YBg_pSV(Zhi^x zm-y+n+0C6>zT*sSNi%!2mpGR5M+so|yI9Zn?<`dnt$;(X)8lR}PDRQy5%5#>=C(JU zy;8;6)2)}`1mNL#ub=QZo^e^w*Zqp^J!IX)w<8EFqC_HJJXFxX$-bR_*)a3u$ydTa z&0(g#f>`u1u355!ruOw*nY2aoulk8R_Q691#|9hr;ys>d`k(PWuqR!}(anI_&Fz?I0rKBc6#>?R&9x9eV3K_Dk9hS^HJ)xa& zWPTtTXTDktkRSPaQ&_Y4#592Jm`CzUj&co|7ef?vpsO*T}@p6@#0biT^E=IKV9B)C;Ew^M4zKeNB z_)x~qwVgyv-{L{(@7f7YYp~Q*Nv8~@X{FVxN%}N#Nk&X|Wp`S603NA%u(6w@DAaTU zgIEJf_B)($&!}t7I;UJnQOI4~GkLnt)ExUt?a@NFh-?fzjkNSJc}Y~X5L2{#cGx9m z>H8nz6oX9w?T{Y#T2N>@>s4ZkaA1ZP==XhA<9Ih$Vj3pt>rgr}dav|>_4%Tn^Vc6F z(b^pn^A9Wst@h7F2T{^Rhcoy`RDIW&+7;B**ZU~ElaIq}T?){wGJGBl(ot$%7r-JOeIPKJh5{+^)nTS7v~Y9GYS z1C_I(np@r9xDV^typPX$Cs)_)Zf>iKjNVnU5TFHJ0>^iLnxktX8af!~E zqFVtn)UNSFl`;VjsRc!frq2t|;TeLl(m0BheZj;`{`Lf^PrA22J$WhCi;HK#6H+E{ z&neH?Z~R?%ep|%1?q3ge=B<{f8O*|8d|k#@h8FI^w^!q92T!Ol9*p!~Fbcp|NGmx?d<)n7 zFk4TUsvWpa4l%4X5@P;Zur#F$@v(X;8K3G(h$Yyi9{4bmG2nTpnYS0A|IUadTOZ*D zn)Rcl7uMhhZfjjwRS+AD9pr3E{^VS(UH*PKXSNix*`ddslc0g5F`&64-?Q8+onzlXLg1077x3m%prxJ93*?+Zsk~M!RaKhc zz@Q;}IR3pJG_aHMrylgVW^`Cg;p`#~YY=@qt~8_ikQaubRC5oG7OM{1_VpA25om*h z7zQB%4+>m4A_D8H*|B{b81()8g6q1>JWgp>abG}_cSz7@ zuqzAq?R4uahSebOy%xPBy;!%@VU1D$m?--nFJB$CjJ-3tYY9thK#C4R0ab_e;C;~F z1f2wpoQQ0Vs@|Mfh^;#B}r;A571`b=2lzK(A)Jy0WHcMw^;x*-N!evi7%N``C)mYr50!9* zuU_?v2PR+U9V6bi_u4D>F2B-Quw=l0sT7mLIt63cWkBmU7voS1wQ`ey_0%j@ zzvhv2((u;->J)MSM6YjQ?|T*`uI3mg*}O&UlQ1CzOOUgbzL{Fkwy>xI)(VVeRm^$V zpaR83Dq0M9X=5e?^ZTm|*-H8^E0^#|je6@)YWI)M4e7^9D>MTXi`_5U&gJK3u79Q( zMj1Q$&qd0hheJF3{wf_y(IR?$&1qQ&M3;|A7N@ckf*9mW!BTwq6M9lnLXaL2+`@Qo zj}!l@&YO1mBS4OIbw-ZNXe~izno(wLs{2@09|}mU86{u&{3!7z%ielW{`KQ?f~S~y zli1Ce0Hh-ovKoUP+O+g3y=+-)I-}4qbC;sm+idzib5doB1!U9LSo@h`Z2S46t5KzA zs@rbyHTx%8eRLJbPsMh-Q`IfS^?G&@pgRvMVy<tN}4#RF;Ue8tn&^iZ~UUDzto6x4U8zP|7s^u3X+j3 zLRYnf!lDz#2v{Mf2Iexy-ZP}~Diir%n?AfMb}+-X=F@JaG!zbDXjUMkt=hEgidtRUK9ab6xgwt9T#WH(;>_^u z*ypIPo&&xa%RWb9W8xl4OvjuYOpX-|K(;$gdfTm9Cs){_X`9R3L2;xKoFxvv;tKS` zxJH@Ac;_!y6dOJ*b0NuwkQgVz3!7sZ`}awFE5=`r;aF3$`v>+#JPKTWyvDpZ z_E~7qK@QJOKfQ{^=DOQl{cSesXX5|lUzS-abKmq!=vANLgd~Jxnz5;ND6NCvH@mNR z4m=C)oeOB!b?8mcY#A~wYkoqJlsZMtpvLsHx`;{)Li^0tcansY`}VH^Q*vS8E<-}h z%3++%GXDV5{BM+xax2+1kzNU5h?&mD=a>^u$~{HpZ@CZbOydc6Sy=|-#o^hY??j=B zo)NR6X5Fvivtrq`w`pJSW1eeCIur0;#ua`22Ow3zLp@Bb@OKpUC2%F_xWBoBsai^E z%w4?y!pwYlaki|iJaf#n5VO?%2C6r8xXD{Uz$v?J zDQQ2`!Xw@peVffcti)b|GjCr@-VlE!`0O$88TWO#1JB-%H4ENI@L;bE`~e+aWXW$l z2D`PA{VM+E;oceN8W$9=YkPAWuu>L&UBy~ZQHVDI_WUu2k>zBZ)yHvf8iEmNNfu0pb-{vme(T=!#7c zHDH=0C-0Ya-m%L^xlUZyrg=v%Hx}-&DMQMAXKqb|_^iVFam>21r%YbM_Q>3jokF~_%ID^bt+At`cuZv_su0x>`&38Z3yA5tOKy98|pjn5d{BN ze)>6!#YIt+RvUo%G_<0X=3Lzx_Y;*svc5$^m$z^$r9^Aen^i&VGCBe7ayg<7gRk1od&?RPEY0)x@ZC!#GCrhkD~OE%I7LFMUd zeFZ#YD~5^8ePQMuVdkO=v{FOO0^YU|bAIh28R$(h>mYr`!WhCa4HJi=XH_#>3RHUF z)~UZ@f%y!Bp`uCC>6F7ZoK%(f%6pcH1UvA&k)`8QSyBC2yy|O+ZQl!}0CKh(2W0mh zK5m?9tbU;ISz6&3N=IuPSf3+^-g@{*Lp;;H9p}pb*x&Z=V=u^Z?kS06*?WEWDCLEx zD9ji))jMKNPbJIhsPu5ll1dc8Vx6IMO|Q+=110ucM8W+x@b04Kj_M#Y8&gdl&n5^+8}Y z`U|sgXP2mKd;J8t?lX;7EB25X(cCceJV4K40{f@a#aNYx;?&n7%dKghuAFRm-+-Xs z>n*lWs+nX2jF+IfwDc6 z=Ik3{L$FkKbz5%e0MJSo!+x&jA6nYFXZ7UcbxprKtlBUQsWo0`ZYX=#Dq-bGzSpt` zZ~^N~khk~eLc$~Q1aRN^1u14(UQ7Ou-%(E5vKJikYCXmU?IRm!gn4p+Vysgp#6vU< zW%piQ(fQ@1g^F@n==<*Jf6c4F0i6QmiZT5yQylvP-ZZBK8uM=&NUYtuyQ{15wPHKR z@E)v!19DN1Y$Z z(^O8Kyc^vIzGU(*-JxEX{<8pYZyO(P=o;k9c8hlP{F%h0tvX_8HP?worKx_5{;Pb= zlx*;OS&72t%ZI9LKh`Qki%z#EpFG?%RUkmQto-R~t7#q*<5O6)^fsRh+s1zZmFrv& zjQ2lK#M*i7Q^ z5@i*)in^;UvkoV7z`AJ(aZ%1S{~?-UO`HB(GUb>XrV;VzNdjCXsO4owvS+nlI>+H~ z^P`w1?n^pzwQA`5<71tpp1y1*m-!**0y(o(lKx%2+VAc0d}c~1y?T8@u=7s)u-2Lz zK}?19OD%Im5sMP+gOze&VeRx;6Lqq|blpD-3^QgHl+*bzv%k|8{FxKmZb5GUgLv@C zxyBuqU14&X5J!0G%6g>p{a(oAct^2Pxdiv%XyJ_mSQzyg~d<*u^g=-lFD@9=ZlOuos1MUOF+XG9pW=l3QZ6vTqhZ6uv@lzkx)a%MvP(V6=^2JBW z-bW{0qy{(N%U0G~h150`av?c7=$#PrqEyuP#Q41vgde6PL>tFw>bG{@G&7){d? zM8j_7N=a$%2?d6kn7S{9yXdAOr?afZi3DzOe$-5!U~jOjkV)71Uxt}G=Z|YUaSVs> zopp#D^JnmxFqFcDxeuI!C$9PZRYuENUOhl5Yz@(stVP#sF~Ek&>q$`xiqy~DeOGxr z4U{vnR-}f>N_X}1|3NBnBQ<}PbzEN}0^M~gxD|h_{|Lcb7ZS>8KPaq0+$?FrMOVm; zH4_`M!Sw5UOBiR_0kjl&KhUi4>iPYW?5(##6?(DT&;M6@S09yRmd0J(Vj36gG^g5{ zq|R~5-7V8HqyYs^HOE#rD>Wqv)7g}g1V;l5C2N~(vixWo$MIvK&WuXycLsv(G(srnnDOVCl<*V#gnaLYvLolaZZQ2(k-Z!6ch0#h#_t{y$X2 zh>`P{+EQjvzWh6LUujs;{KW7O+F_4)L(EoXz40D$dyCy;2mND9NC}AT{Px?Q(i9i< z<*QkMiG$;jiAw7K94w$TV?N&@dSt)018pcS9lO)}=T1~LYA7k=@4;*;n8=TsKsaHe{(bFRZMeU()_j=9_;85 ze;tWtUlsEW;x^9N^kq=+0er^hHEoPYrJzq8YP(jA84a0ae6iTOM~k$jes*`U!;nsP z3)p{YY_4$99mrZea2cY~S*Cf`=pJh<+G#+xUnpk#`qCc6Gc<<6dU36A{WM1zX=Azx z15c83CE?y(>^e?KNd?ZXJ>2Qd`Bd55B*9?Aq##w|w5q;l8qI1LG^isnnbvAM4@sX{ zFwHIrSm`Tg;r#IgJHd!`Y3J1Yup5}t6~Cxl|Iedok|bVyrr?Y;GL5^qBSRXn5(W4u z{Js`eaiv!HkV;k(|8NpSNj39bsF$so$K>4HZoU+J zichs5*N%H{Gs-w@n~Ol}mT|_dxbV5VO_cG+IgQD$jA9;hml%~&nFG%qAf%-aShswN ziwqN6P*KFpa!Mn6CV!Eca5g=KwxsE3L!+=PcEoldAp69wy>jeAx>2Zq;3@4_nW+*% zv-z|;?&0yfFZ=0dhb~Cg_M-&0WgDB;ojp0-n1aL!C7D!S${}PZS^w|x7oFbG$WX;5 zGobO+db5+|aS`)nz>3VsQkiy$e&myrtKCAf2O>SO(FZ9SE_3Sgwk3qP#kyq+HgYbw z%-Ib0;uI786$rrS%GEN2lTgl1W5^4yc_!#A_lpptq)&vYYW>e+?)<+~t(j|Mc6V?q z7GIdA)~hlG+eCF+C|nipBGaoRe+d|JrZ*F$vHjh{dwWh$V2Vc`5wfQ!`A{dUIFE8Qx7ATWsDF zEd_N~+_n}ysK^zS3usjuwyG7t^LX~;X~L@X4a_)pge0qJc)6x#evh^S)Kb6~5VBnH zp3Nys1h_#hHc&*t*@GG}n|@dhU_r}n2M|_uD2b=yL0o}T66S|G$cpQ9^=n7;$VZ<+ zcb)LtV;vfR^BPA^rgcXg`rj2ifE2Xf1J;1HJrDetKzr9mseSUcNd}}+a}mGcH1A9y zn>%WMeh{-7op4V5~9w`rRxfnb!Mkzt(yimnA4@WPW^F$=W-0E%7I|6_IXqP>8-m~ zMB%9ad^nAW@==1b1+atNsTDpeY4%a5z=hM(od&wnn}I!nV?VF6{xVU(vTf5Wu$aXpP(t}DQBc|*61gEeJt ziaU!#8sx>+tL5B8Xa~Ya{!pjbd$hwg){@BA=Dc8~ranSQ$rQNRv|#Rp`4+M3)dSKp zrkdnJ(aE1M)1+eNRHOB^ATVv4;@tPIA?<5sD6S>?#(ra)D&UdG?+=DFkVV77;-ZMDHXK1ksHN!-!r-?=?k9)I27U&YQ3w=zTc#o&_W29os3y&R#ZG}Go7r?D6O1E5h*tQ+M z-I;Nq7cvKY8G-UPmEV&QVr*3xX-E( zyZz#e4fExc5iI;@v$=GG2NWvyc4^VDg#r!D@!bPT?!|Kk4Ts(I~kGhO}sPReXW zr|CyucGUGFC9R^Vb~T1dN{P<}Uo67F78`q?Q$hglR!M7;y*I{wb9@qg{G`zAt~ATz z!sK{EXVVHC=p|G(%7Dt##VuZk-8prb$rDgypIf}YS{ONXv25p1DFQxpVY(mSIo+@N zu$ESoxs>R?R^Kb~aQl*R3TrUbE%}10X<)#-^SR}<+QwDeZgLkSRg@e^I1!}#KHqfc zeJs_x-0M-;%UPa+#RtKu3gn>>zigS=?dw0X&%Q+~6#LmMT=6rrC9&X!%WFe-GBTRB zzhClB=R!*|vWH}WA0T~wJVs*Ch? z50*Ioh&Gi{Lzi3;Ll3f8Zhok(d9=x2%P@PE;l4#7;L}o^ogIKhFi_gaFH0>?5u5sb z`|6xtym&z`^`m?tf+nrO`m9OsxQ91cXrxB6pu<%;1F6cm6hRv<30(I& z7tpeMC134W80L{4W#lQTTuiG13LoX2&zex0BFsv`MlQneA-jb}L*2ZamJuQi7~9nk zeBB0($;t7(cFeXyOT_*k{c!+!WFUaO!4O5CHdU=$9AgYvdITL29c4eOJga(YNLdtQ z!iFo?bTa@MI1Xab5vJHKNO81pHnh%#Qw+XRbhE<}c;Kx6d(*w6F?1voY}W-2dqcs; zTUL<>NnY@;S}iQkT&DoEaU-T^od;$*P8M-F)nb%}k-j`@pJSLi)e~ex0e_xYtglWR zH6HvBu;$MWU-RQz4y+%gDKX8D{-%3QNr<)>5?`OdaTrzl#cKYt6b%~{4Kp3Y;F#%L zr7G1%_JKI#>Ohb4#oKB1kF5Ft+M#aNqG4&n6G}23ufV*}t<-}D4f!tt_Gr|5sWT~t z1lLCcLi)pFw3xH>>B0pgWmb^Qm%%VAkmt5N7j&CSdnC%g>e>Eh0p1-qt*x6w6`z2M z*6VEsBY9#=LJ90OFbq8VPErrN5%xQW+fx9eA+<|yfPLB*JF{Okb63g+0VMiFaI~Yrc|{=8^74nc^-f}}D^^gbk7&DWA+jV`Ko8jCYpYA~k$YVv z&$sv|y$mqn)uEAYWe-ayC~=r2A038S_I1zB#x!#8xK^ZSQ4|K24&JoP|6 z9lk`m9%MZk;?-d+B3(=NkIe)iqUTlwMy(t0Cgcd+#a; zlHTKjqL{0FPVBzAN^H{gDA}nQpKv&M)@;qZnlL~g5o;26)miA{4#g^ZE#w`k_*CbM zG0W;J7wh^55f>`OV`fK3{Hj}Faw!-uM7 zU5?*|7hwFB_@>N01D^vu>)@d>33B{UK`}J0zR+{%9?NDm z`A{db@-pwER|`wwGcJ>G{Fi+o5b=znlV3DFHo21(fx+>dJL3boG%{N2IbL>jiFd1$ zE2k|P%4nK_Yy8(q%xYi`RRXr{PFse}CIz2n#jr{nGlccta*PovP}LBin46(_t%A5u zE}2te!fqZtqcU2Bypoc2v=6X20)R$8cPMY01iq}lW0BICdbkncEj){DT~BXb8|;*T zqAjU}t9O6ks4%s^m)7pCq$$%NWK5c67{78e>3fgMiZ!*=^8?7pWPkQ-JA}>Vnn?;=k)irsgU(yNe&Ij( zyUsfCI>!`!-{U4d4c;^j-UKCH+f!DHC}v|rSi1U2b^U(Ujvglhk{-%Ev{1S)zWe5V zW9#94q0hV1rG=hmy6<(cmeuVt0tCOMZ$s<%%T?y&^ET$jKtbfXN7zFAXr+YlE)UL< z(fZb5JW4Fdue&DlcH?FBnTNHL1+mibCmcT$cdOtHRa&`^v?lY%@6u)d#1EF12Lx+{ zmPX$qBU_canL>V~8TRhGI)Cdmfo=@X*ymnIq?$=oMq47}lQ2`8a06o-m3n!_w9H{d zZ23Ejw=-flVu9*OO=3bnuajk|3bJ!I?N1vgJ2&*OJ&@JRlCL)C4N>pGd~y0SxSER& z8S+G9yYItZKL+0&rQ=>~T0oJR|6O*V-Cf&jCv+D%Gp zAmQV07$0mVx!kx&=w_&S14QFEGPbwz2dcZ1j)=V_dCCknU`?0DwPzqZjWt*ZRc znU!Z16xg4+k&>*Of(Y3gDe0Yh-~2T}iUn=@6-%?vwF=PDl-ur2RIv;D)^dEW{Br_u zb}SD5t%3T|f4~OrfQ63n`Vt?C#~#Gr3!H)?&$)TnN%Y~rnX;*W-An2^h_OhbV4TVL z1@8|f-oznHD$AjdXeGhBP-ydruBbJ@ZkbVpb26QKJ^3|<%W-k+?VpZkf}^~xqwA)1 z23hIKWoz@d6i@D(Np@NJY(1}p3b0$k_x75X@`5BN|^M1 zNwlE)JXF1VdwGZRro^Rso#hV)PIuVxYUA=Z zfACL!^Y=(5spP|{Grt8!U7_m?{nm{(reFI^#OHt8f$)fN)<>J;wo42)mR+{Qz*%LE zD;dJ{jv=@ehiYGwg*-9^|5w`r{A{7CRpXDXt7Ag@N2{2ppD(&7#?_UiP!)HTfR?N_ z-X9rgYncWghlEWJyTPfyVK8!R$DO9FhftJOVM%n{MDg}(3uA`mN%{xoubep^ciQOS zD;`1k5w3TS<6}%Sw0QbKPcyz-C8#xTBKSrIw4ys0dGn**(>s?*RC4L>fzhz6c ztkdPJ6mVg@cmG+d&vW|&y%^zx*aB3&4|aav`ZukRJok?erUyTZNpstQ?IMKMEiX`1 zq50D8Z!}-G*Uh*P^4au9v)I6xY4$gVjSjEwS~T%#jepz#fpU$MyL&Rm&o^8T9y(TE zLDj!Vt_OC1Z5Qw3_yoaDnxo2l9SO`50)xkT`*|iq|60j-gg}&u+NL5mlvvJLig&mN{wrb4G(A^e5vVdd?BFQ!o-mLOw=biRaUCC zPe!{pu)~C*@Vi&&>j}UkoIPct&8mQe4*W|&4MBz`N-&0hTlq=5Ku1@#=4G<4K`&j5 zw>`Zso7lUqTGw?(s8a|}rn5B;{Jtwj|N2Z^&2&8>%sEjS5!c;^41Y&EImFRpbAzGJ zF-1b`2Rz8+a$^bm(#h1jD_nwtxG%ImMfx%r_2I0D2IsCuJHDwr#)W!{u}^sfu2Pqc zFR!m}npvCbxaT4fPPMHVDRnd$<3!#oHZuWuL4$UaZz@hr6s)rXn;vR*<4QK;CawK{ z$D+*myD_|AX&uVL>gw!+FGL~d&B!ek2e05HE+78& zBypF#k`jk~o|tTGe_K4`@)W8BE;e>L7?qQlCp3Ad*|l%cT3(I+JO34C6mL!g&bjr7>KKBeH6`&UC`2d8u>e2d?0K**l69jc~BMa@iaBno#RocQ%W&YUbpg6kI@D zbn7?D=q;mJt6<}VHn*sUHV1cE85Ei$n+PKTlrP+sV$^Mq-%PA+Kmv0Ugyg5_uRzdl zwme8oOLTQRbeGf6dR0zy?cAdRr`D*YJ7GOJlm3kzldx0^Y0kqo`D*exPDygaaSu-u zXwA0)iA(G|XN{?v7VF`<^17dI_XWx=C}SPbCEr(@E{_oQMJLM{frx_wtt(z~tTWzY z(o>UjpVDmX{FKPZoD7WuG`FLFm?nIiVzB=eIyZd&lDZ}{^P&1^sfn{>7Nd`;k)Xzu z4Kc!M4-cJQR~=*V?v?+R!Wbf=Ca11uI_mSY*?inj514zpwUYQg_uAo-x|Hz*$~qXk zSPz~`dpTBraAlXpjN}F7&d$CYtylgf$JlzanuAZBqH-cE>BHFRRjIw;O1==rs9x74 zQCIe{T{6JiUlV^q1n&E6`<(Fp;WlnzKip(&zRkXr=y`PaBRN?umGK(WZ3f$3C)%^_ z*R%`?L0Cb4S$5V&$CQp!w`i{8JZ|;Zd6koFDNA0cn(N#_F{N<-_kxKfY%5Qvln!^# z-{CFD#;Hk;9G!r7G|8bOdvNdHFGR19`bu^ygygr8eSAhbJiqmKoqe6OOZz_)oEad943?h5wh^oV)g_DyH;4;=%!7+OC$6Xw${JTXa~4C2pl=b6Df|vP|v0 zUU}4)X26FO28jxAj4BO18QIsXwFSpV9$qQ*XX1bb>!-S7n{5$QHeKt-kzED4igFnE zC+X^a0DG)Is857_t5_BBkd^Qo{vI=pOWBIAKE0dwG1T3D=SV^{K&?vHq&VAxBPG9| zV`E#iX>a0Hs4bFmI6Z3_?Y>JQ;71p?+i(4Y*-B_G+t{HLj|hGC=Uy5%F)YI!N+>3U z2B=k6zhC|@ISt=rv4QI?-Eiyzy`BD0Np%Z{nJ0ErllqiGpF1k4$H0A20 zB=Y(w8p!F+gA=_gTN8d^&j_H1oS*jeunQF|S?W?1);izO>xe?AWJ+EPHLw#WZoz2dIqoG(G>hT$=3X%0omoLD=qm*6#0gC^CtIF3?dXjN z*qNGkX`VQRLn_i1qz%Kxm}?eJ2u%27f|;OLglXbl#`)fz#G%!Sc`n8umJg&7+Q6kN z97aN$bR)&!_Uf2~8T(=j>P;j2$?7myi3=#OWldw)>8F;F>#y>w-nL8c1z>+%eps6V zuf^a}3(hfSpTxGnne~+RjQP>P!$0 zly^xAGQ5Br#5lsHmVSMkoA47x@Yd{(?sTam`LsOcCYrM$sg#9|eav(t*TdnanA`b&)mOmq0ltk5kGK#wuv7;xIk_ZPz5vEx6MBlc0LEetXkL#duPm&t1P3W7b_{o)D3xy)l+UJ zA9P+-;(}c+D%0w#LiUsBFn@)D!f-III2h&BrI($`*?$-HmS(2)REEm~dGFbh;Ga2n z^llsQZgfMf$k?u3xOCaSV(Tc}gP{MgHX5ZQ;^7g>f# z^i{MOCUwZ0n>fvm{Sql`)mJIM^z^ImdP=&2KYk#hGmR9wKwntC7#b z8YKFh0p?QDr2NvG&;G1~STbW#>xlZ$yESaq{F6!-#Qht-t07!b zL`7nnz^~)R2T(tJT7f$Vqz{D1eWwJ~E8-I}zWTb4i?DvL_VD|Su;cS(M)6~-I7aZ2 zj?-pM&&=XZM)^}6BmL{bCyK0hawX1jdXb&dAT$y`TRzOw6Zn^=KR+$DoV<)4$vPQY ze=`Aduh5FywjI`&+r5t}F)nNmPkWDota&LW(h!Gtv!P zJL1UU>=PM4TtPq(1i(6}Q8yZ7-``)=XM9zN8ZeFD<(o znV@f9!W+9Wx_D)=d)lKazP$t7^lNF}Haw4@-EP4fBzb&(tND`~5XK(NuRYccH3~ct z^8CGU(kN9qIdPApKV8cVCL$e-p?@_kf?bI29etT|eyZ!lYC7<1R%?WN%s^mIl{zg< zYw&C58uknkgWXQ6Cy2Z(Q}LwEAmo5y3Aq{DF>NO=ix@(-8Ujg{@WFjMgu|<2BYV)q zk-`aEAf1Q1LHnZ)xEJ}f?3E~nj;dh{2%SM&hY8!=JS zb~IkHjYF-W3v_8(284vVqNGX|RGgY#$pHC>1r~z0mamzxebnHNEik&?tZ>Nq*WAts zjf^Znt-CEx>BZL|flWJc_)3g@;ifg!uEG$3cy4)VF&ia@VF4C=dBE!yD?!+H43xoz zH2UxBN^GS#oJ`l673|IWxIteUV1ouyy#b#w^S;4viTmJAxg6n%JN4#H)=Gzye;IjY zPKIZOW6RF1=2ZF8L}rZ)azJk(VP#f{n|yU$2LeWkvETBO&0WS8+JvlVQ~Oy}z5G7) ziJo<*0nGBO{kq#R!7+nIqS0(UrolsXIqKpOJ^ar^>cFD~y-TAu`HP%w}R}6YOAl9U<*UXVrH%M zO=m7tXOrjb&|asWM0n&m)1YL#Cl>fuWM!WXZY~VTHjY>?I&PS3Bjp2N%`m#&{Jn4* zUUSs3`}Qe8oS zt!X-V4qwpdFixjFnLndZ{hs=%p6K`NYW|^RLAmUhh3Y3+(Ibk4YyFr(gnyB5`?@sB zui2CMQQ}wOgkFX{A)9ujA-Nwi?0>oGY?+p6dPFN7D6#5oF}@H4f?vk+i=EWGJ3D#> zIv#bE&RIh-mW(?i_1o9Et6ai_X7)X$6UB-n*#b7h{}H0cPD`U`&y5LaaxJ}q#8&2<(BRC1Df#k38s_I$ z9GqgAK{KaQ3$strQvHn0Hjyb5Bf+S{uWmJS_pLS((kox`ex295)rViV6S zY=3|ELw@71v3s*~i2xE-Z0)I)Hc_T}o9Mk3tK z5ubkn0-&_czzP&_Om6v}Sf6z3!H?RA=##ZG8#Wzcayt|{K>~RnURQW6OG$)*P>5)@ zHPVAwr<~Zoj`x4*a=$13nhuWH4vid44ISKlwmNLrWnO;vV`|C~m2x3-&dTlNGxe(-l=Y>AL;O=Qz~V~wYG9sDq+AFtcG*1hN#vE+8qm9zBb;Bmn^>4IrH5K#fMWj zI+W0px7m~CGo5O5MR$E|@ja{4Wss;0W*tqM5?XSc$i=yPrAnsEj0?qAIk6OI7&XVo zc-r71Cxd|a*74niCG}O7h5@NosZ{Ykvq~0hd)`6siII+*{f z09cddqn@8g<78Yj&-6;~2^cDvm-*s&b7nX1UMdgU@;3Zg+jj25)yZ$V#T|`%z&c z@CC)3mDvsc7Vk9;oKt2%eC)1H_@VkSOWQ?yU?ZN?E>-Kdg1h1G_S{Tb0=}4*d|lnrjn}6^1y`kwR~394a1AO*y(^pHF{U>$+C-m!WKBa&8AN^k%fuP+}wBc@_T>!knhdx_kQ!S zzHJASy_cC=9nCeh)}~)}OgYtGV71`ml>)c8X6lB{>RAj5dq?HRVxEIDwPtX`TJG*Q&}YZt^~8avzYAV zpO>SHoyfjs6L+b^N{#EXn*)jV%YA8f4PH6Rg$OP0v$Dy9<&p8r@u(nyNy$H`Snoj*^pC$Z&yxpEMudZh*EwUA+d!ls6!|soeK< z>%>pYKP~)>>}ZCS1oSo=WVZ+vi)A-wT;-24aQua0+H1K9m+t;T{JB*9eQ19l9^_MB zt%Zs?ed~lc%~>E;J9KjM#|zT+#lmMiw6lQcgNB`1p!0$b&f>K?6ic{~hwxF|5p6KA z)n+wXlb~N^>Fe-J@WCG)t@Fm?C55jha=Cdk2Y|FSXf!S!$d20d3taM2YG4Yv(e{^$ z+x(5swUUID7CK{r-ySLLFQqtR+gnXB>C|Qu7e84qF#D&}j*$+?`2-QX zL1>tP&L^hOMYGe@xw&uB%PPHBdGA$d;_u$6p$UZ#e~>j4CC*sUkV`2$01?_r9b)=i z)~c1H}W!&wuc*uZ|OcBhyBk7Fp0#H(OLN=f<$a^82Tip_T5k^uc`ocf6sC@LZ7{Ktbc>+hvK_jyraA7F%+Uk{Rp*is8<(;eZ1 z^3|(o&-3T*he|X1)ye#CdZo1nF}3OqJ8-2$y7T2pdus?aEc4EXGcmK?q7X*JgW=QL zX^wb75DQJQI4!)0i3U8% zy~d0Nu}R(r${y9IZ-m zVQMAE=<)0Aa7ReR5B~Q^|CKh*F5^^G1t_?A#01ATRseTkN#wq}Ce_S2P_MOYAABmF zG-(283Qna%nN$as>w=guvfQ1%@7!v(o*SZzEHE~m}(L9A;T`| zwsdT#mb2;d9?BjRw-$ASm@zTTSYm39Stb139ZgfvJan!NZ~I6xaR0;tL@b+JI^tMp1Z zThM1VamTS|tg=4Z^78Ubk}k7w{-f@UHDZ@t(>B@-j~kkvkr=9G&mj-5ANvsb9@gp{&Iu;kusjX zZveXFNqCcX)d=Mh?I@QZ$k<{Y8o;EF#2~+?74bL+WEFz%BHIctetTXFwKZUewi#9C zFJIJRFIOGReVK5MKVIq90*EXIpX|JBy;DLU&T+~ySG7(|RNMG@D^Uj;e_CRk>zM{p zrzkUjuxOCOu@29Fy~_*oNJdMCm(vk z7uV-cIr&d!?c`7mNgrQIFn9JE!HLHdBVCEw{S5x6mU34)MlWF4f*ByXW=SdpQ=EJ- zr%!k6Qck#!y>M6G@VPJ)W6scMvkqrMgL0Bs5ApEZA}sayjR%fK<@I_ZhmfOF!Fyo+ zeCN9d8Rl&SJyfD-%`OQN_YPYrt_WV8lb?~fGR-_v17X~|q&$f}|5U#f3}TfBL2t>9 zMh~FfdDn{bsuz6QX9JiHCuofzEO+x70!qKm^)7-pC^RJc%8~4dVr*9u(|)Tm@@!yA zp+i`rXV4pg(Mx(PwzheZZH+k9j%6mUSAJ#v(x0(-;7qw}^5}r?{@&=s#{%4N@QHskOkl zL~a?tmZOx?!kXZi_KFVV2ZyIxVmDVCZtWPUU<zmI;G<=AM=?(nCeUJo(J*KV{H%cgTb5B- zRu&i!co7T-JAgWudX2!1A5PJ4qb#_&23!*+8zQ+U#7NvV9#ryu=Hn-1`-g!W7J z?H=C)f-7TJ6<#Fk&)X6FbEA+wPUGrD3t!K7GvrO!X##WHJ4TVNH-Qe>F}UgB^Hp&5 z!UTUfOoCd!PUE(8=C8f|imjoZ_KDT$7f7+-OpE79|Vb z9E|MbvYTKUU6b)58lQP&7la*_nhW|Xd2TV;2G~*pPLZsK-F`cDDvK5h;7BAS%YeJB zN@~2hV)P#Cf{)q~5EsFT(=7;R-ke$NYrt!|jW{hL$~d z$zbZMWFNQXW?OOfS&HFCm&+0p6Z19GV9Oc7Sm}V@U)gsFgeHP#L!#dCd{<+1J#MJ& zQ+V+{LJO7}=?n(a@Q=_UJQGcOPhfwZX?tS9F3eWNoWa52746DT0*Fc!1nM#qdhuX2 z?>}Fu%cXthe~gRfaj1NE)Cz0m)jkqGjP<7*LCpV{HAhOACkmYI)T?zsb1XSW9@Mq} z?&0>Fy3WTP!>R}1=<$_gF$&$y`(uuKka;zl)(|va%1SweA|}I}H2m?Pro0pPo!bsn zpx5z%KEnLyFQZA1U#3atE7CRI4gA`rEs2WwrS&dq##sldYsE@?$=3i@8lf)EIM=HI zM&gUpZ+nP$+$Xo33*fgm1o5BY3x7tn8$rN*rYK!*yuL0chbZxoB@0Z%CYZuE{UEKV z3E#fs&i4+TF}$t1V60UsZD40COMLrvznGjUSw2{GTR0M5J=r^b^nN8@c3h8ASry;? zqxlsh9k@7*w@GzPZBuNK!9@*Sv*A|MY;m|TP;X*dEOU;*>v@8MfReF zr5`bT%miqc-_svJK?7L6XDuZCk|)vbpaXhhqpiW3zTddRG|-NvUc{J;OMTensQq6 zd(8fOl~$`eCUI`-f4;2t7xwVeJu0>zDb6YLoJ205j*V{L&rDuoZUBMB>_(nbC6o>X zRfh6A9W_b6h|mXeY;hVjb=;IL9?7>0^i4n%{d_}(3^0ioFToaJJnfCz%)&krM7L|K zCQjY8jvX1{T<6N$hQ8t^O_{Z$EG2&)cfKC(I~-n2Nc^E>RUZWVBZk5k8vw=XoE=8| zoK8%Fub3&jXZVNOFNEQeWzg!qXO7Dm4Z$3q;<2H~6r`8Nz|q`}Fis~gp??)`s9xpq zTs->0gA)E4mXE=Mdi@u0Khx-e3xLOt^3R)$E8I89?6|Jayu`ms6fhCB?zvCLXV5dj zo64!4AY-aov(BqS)M=6-u$>KxzEODU8lB0ACG+c!xqx zeOMemVWHg+f~ z)Gvyo7X-7+2nUS15ks3MSZ^0!s&jvP*(fHp?p`HC>$F!9^Zah5ftguiiE|l4wZ@45 zOzC$O*oc-qGN`dKyO}X>0KJ|Vf=C}2(7+=XN{~`&X%7Umx@OJ_`7r`4Ko6gBL~=z( zdGV_ofF~#o5eBE~{@~Z@o#(J)iIMKL`~Y};(dg<9leBeGQ^RjSnp}k{b4gLBNpmlo zL5rP&?YuR}^iC!Ex5W3vytfRD=wa;~S(L-PDe_Ke*G(mSF{J%rbefJbEueuA^kDN` zgWz+XbYgDqHkq!WA?-DojzHTCmT{)D4KFcg!%06L z1&h!GzxuT|fx9?fR*BfHVjZKsjm{Hk8!b=xvU%XB&)dK=h84KC%~(U|TaVS;oh*k+ zyeVcrL9W1UW2Q(>)Bo1}<*{Zt%GkbQSt(<~WIp03E=M&;`78Aq!JF0oL1suJKFcUN z#R0GNVq&;9Y+f4DUXoJ0YBneBwDrK9uy3t#W*^ZyIr8m-KXlfYl7-lGGSb6G_I$0b zfg!DT*5Q0A({nyO&}tWXcCvvh5M9jRh=>rHiKi;mL1>8`n1Sx|VGpdD#2OGxCsA>o zifvVnZYtDF)!K3yg;}%$zE6UCJ4LPc@zQ&$YjivgITCccBNzK?vtE9|Go1KnfYO@B zsD$aT_OUS|V0B!JFr6ha+}zC_(LI}2FBi79bAYlp3YaJCvFNhN`IMBir8(Il|S@3b;O z&K{#%+=j9@%c#}9mxIgj((k{~;4#%>oFog#BNQjg=H?I4O7e$Y6l!7FU{2(0_lKB0 z4Rb#=pPX4hpIQ#@^_ZRfk)#Q{nmXA21`Hb-m%OTs9NJLIjDqd0w?&+r+CY;VOcN^- z4Ms<~ZQs<)9}LL*`L#Z7Z{%k#>NH+ivN1(?-$wY9SmY4zhM^toyTJLw1Gd z%wy7Xl;LMO&Ip;O==C5E%Mc5dxMIqrqYq1r8JtT3F5vStG8)QHEpFH_J zh;$fjsH`rCdQU|6grKMxzS5MK3+D3f`69&jHINEU2sR-}E|&}c6R}B$O{7D$^7X$^ zBiO~oWr7qOL-rGr>HLg@9b$vph5sV+u~XCXt=9Mus=yFe8R4Sd6}Y{k(tC?bjhIW% zBQ_%olu3oiXbo=VBQKF{vM@1|J*2*7Mtbzn}wXWEQ9vwo-^&{Dt+bd!*_{WL2@da;qGIul0e))gS(@2r)E~NIw1F+t@Hj# z#uW2lZ`hj5h*8{B3JzYfr5P`jC$U$h9Ud>Z!SX47>s&hgdo>rsZ*;>0vN6`E=E)aF zb4!C-L%D68--p{-Q{iRpur|)spS-?qDd0@IBZd2_7n^J^gCU|Pt1-J#KI_C$JZZ3eNt`7Mf zJ5{ak8_4hRrUIRcK>kHrL!|A7=TqpFRTmzT)Wjw1<3|PCcN8v8E88b0Cv{Olf#}vy zDwE_+^E%rbjJoJMe`-Tc+PxI_SfOxQxZ_83bt8Gud|BQxC*oF}_P^ zOL*yg=6}t8GtR1WOhwOieDtZ!GEH^7h8?q@b4|cx9Sj#ej7|N~n;;0vYjx8zj-i^o zM%sCPE4Jocmb)s$UF|fTys{O^AZWinR*sngA?@=zqL~{KjPW{R?D9*4VqMHP?{)Ibj-1r(Bb-t%NklKI6ZZpGSoTqbS1C!zG2|T96EsRQdn;PSNOR9s0 zNO--|Kz_yvEMG|Dyzj0kZm)BHMIyz+szdu&?4~}P;bYZdy%nQXk<6=LW~DFFy9#0g zho$sf_B!b~&GOTPw#~O2NeA^4H`C#FnNa{63*Wy$qhWUbM&3#85ET=06Bfj18|6Iq z@`B->nS-rd^-I%ENHCAWNT5|VCRNSsBGt5Dizo`z$vJQ0MPl3)UOf@lIWryFp_?gM zRuqeZlx^kI5$^#xfa014{m&=QD@T?K+zOq-&njM+%B>^9JDrECEo-(aS}y`Xkkd2- z+DHY59hkv$jidEma9$!hyi{YpPKxx;ubOz|Sbdtnqt~%}b~w`+%Pi@Vi4?0fth7!* zCki%h#LwRrufmmJzu%_n)kde zgnsTv@621K#Nbw8uOTIn;>rgFe!-CpWw zNOfebQVhXq<>=<-vjj%LYj1f2tAv{gC#V`c2u4UT8;6u`PWY<-+PeId&Yq^aC)!l` zntIYt@dRr{YY+|iO%Zb3*g#Hw&S`-k-_JA|u<;T1Yx6AO`vJsW|9};Z;;9OmDI1wI zjCAO6LjT$fO7OBUn5e!`%jMihYbu*)lsU$FVV?Q7?s{L4sS|3JCh}2UeRmFUISG&Q z?j|rZpXcOR;A&4$)>0_X3S8Hk##0W1`;(T_1%#)h9nkW(hilNG1i2J1BTX*;nLO%* zFIpoKn7ii8i9H7Lb!E%mXmzn@T)$kBwhCuA=Wr3O0yoQc`6-TX zzx<8d&jJTBGTYml6t{2Rj);yP`Fxv0)Mxu$Z;FK0P`-vIm z%DuYSV(+9I2UaxkyEhbKN97@2YUbYS7>GjToDfQ~pDw+B(>`1}b5R6-6EIYO>7z98 zNd&JMau$2OUNVP>ZBv*k$vDsGJHCl(n@NiQ2Lzfb*#Hx6H0{4;B%VYRLyE&a0tn(8 z)iq$PWTQ8TgTPnvOKVdV#rokd{7@5YCp?RE&f?X27bHmR{dl?L_X7LoXRiexq~zK;q{i=%AVgg3pdT)YzIt`q z?e|tF!@kGC5o_Uwd(h~>^3}pvRbBZU4zqgp-doGCHjd7x|I)@!)OYHyIz9n$Dz9T3gh}m8c}A zNDNu&7jg0HZ^XVk^ZX-zK2c;Lt=|ITWZArm{s%v~@YMJh81vjuQXiBRK=Iu$r{UB; zMjH|6j7AuEH;K=gZpbD|3O4|s772It1a6G!D821QPr6=`&;lIr<$R5vT)5^t4ClIF zo?2V+F!UZnT7*|gs0MZ)kHWgz5XqxYc!>Bp6@=F?q9sJB-6wsh4@Hg8_H zG`(^<6jnSRrxCGLxB%9~Mfyv=iBrkzrvDQMZ}3qfC&dG#O8Xsd!X;(`^hjF~7?h0n zW=ZD*|8=ee7u86c)9mTxU_Bc)(C6;SMGpR0!y=x&Eo0j*?XvW%=hbggf;V|G_;W^n zp(5qMzTz8f)If_kJ6!XqFbrFUx`%XD$0 zfi+6p#rv43bMF0)Yr$XA8%a@S!!^q-1%Rp{QT z^d)*q+`)QS@*5ff;)V;%F%BDRCA$P3yb&Y6@>zz)^_I{GdcasctJ+S^t9)75@UB$g z-k}F|zr3o*eDS0r|7B27%ifm5EY^DjUvN*J%xXVDi$Vf|#Y;vj>3}3`i=7#LJDvLt zATcgSzi%~YF_WUC+SIIk0pz5a`%MN&GtDqlV_2li$q#OnY_=L}zh9yksVIu*vsioE z?pm9&i(D%yhovg9*vl5G!I!#}CCpzzi16(F(lWULT zJbyzK)d{_eRx~D@x-Nvz2kX)LbFxwPeX%CMs6azH-2$olkyrwpEMqf8Ka zpR?Ukmgqm5ddE-+J5QUE5^!6_NW0F~DiJc!E&zJ0Y;EnYCS3Ka1)G6MX^^$CwFT`j30pH42Ml)_R78ReOEoVJ zvm!WI6XDtP-Y=)4_eqoa zMg2U-$zpFa>;zg#*J*oPz&hgID!?jHsn4Yausefs(H7a!cZYto0pw)q5eS9k_6x*> z@|(1{!>!ENf>?dxy)8F%<~+m{1F9s#vihI+%8I^0b1CH0w*?P#Z_xs3-qS`|F`CuA zz7|LzcJdk)=3yBdH2ZHl=3NRD;8V#WYqAXa1+3QmY?`g|sbF9AllZVZG!-T_$rS&*PD>GV)Q~T?nNz_1Mt2>rs9$jUK&jmtSjW|Ge-h6Cm>wTk zO3-4RVJm2JMsb*CBzp4rzd-uh#fNztmDc*>h2uA~x?Vi++e_od4PBJnu9u5P1YB;~ z^VI4K9<=2bw#3`$W5*A~{Pd{g zPv0~(i~useC&o)55a~Y4z(8!@j#DR-U!HqZvn_LG5>bH9CJEzbv-{eUuY-z|fPZ*b zVsFRJq`@nXiwyXq|90ti>?wX`{1{v~b%5wzRYys*I8xB(jId+kZ0%z6#XoQT)`{ zwuL*lg7j!fL2V>E{WqQ9KLq{L7JjqH|0jjutNcHe{*#1*L$MlJ+>KUJ<=4UKz7<^m zG_k5R7v=FcgW`r z8|g4nPXB650b(S<{Wq)QVc?^`r~eaa9se`Y)^Q$iGO}x7fBzTYKS>_>pR4>Q#r~7| z@&BFO|4r)sAEUBR;-n94rUj_SIdVfMs;~%!Y4zBQ_|3|DJo=Lf{ z3ja&^`z03g@BXWH<3TX%zn5J6{o-E@z52gIoBppVga0jAe1GA*9P=VOVu38?BFsHf zQf2Pt+_Ogo;w`U3uH3M@Q{R@=#S?Qc=f$(~O!luLPL8}!C_)piw`fyRgfqck)5OuR z$Yl41bqj0c70qvAmoGc}Yz3oG?;(j%&qb#3jF)|zbyFQFYsTzk_^dhMMXw--u&&`?G$ari1ut!Uye*ELqBR1lIQ8J{>CeF zkSz1#|IoYVZu-_78NJG0hbzgSp|QloJ)vzEJ<>4#NWvUy=8X>n_64Ci#^~2z z(06wJ)j;dIlC|A;UkUhT_;|sb)Pt{<88e-DcuwMA(t)kfOq3R};h1>8Jx{_FhqHf^ z4xuN}bhyX@;#!Ye$+NfOsFpEWIO^Yncjmad?*ET@->EZ_EWLLC7$OQEFU`!zuM+Ei z&3;^F)yJ|z!$(g#e_Y)od-!95mgwcn+7~(AU*Jq+XmC00a{ubSh9lP`@ zVT;_q(vm*=uEv^jo+CkL__uKZBmY%|nz-@PJMz=glj`2<6d6A~arLLJG_bv+FcFkK zV3B5GpnsZ?;g9mtpp$CAG}DlxDb{Va@R%e}AuQQ6ux&F|wlOzPR|m$@l=Uln3-X>l S{R3)EF?hQAxvXyJDsXJN98nQ2weV>WJq)4H(*v1;N8 zV;>ANBgE2E^ywlxtKhN{~{oms~{^xPH#&urTxm@4nTt4UL`{J(YE#4z%j{pDw z-rIlPFb4p*9|Hhf#}6N3=N!0v^9=ikBgFjHbwJg?xfS*e7wDSFH2|PG`RJa@LH0dQ z;Gec3003Y2uRo67fKqn=V87`0jcb;V9M@*JADy!5em1B6;jRJqiMyGh$7PNj`P1UY z!T~|UgoAf|Q3-7qWhbg#3=VP#3f{YSJoTc9{xz9`KLxMbthB{)u{3IcUp;H&FI@P# zIqm3HOzK;!by%DUF}3`B#47nHyLG_(U6xx;d+W;VQHN~Z+0m5jQ=}~pc78`$BH&lw z|CKJ@&|Ome=LP^cpDY3R^?|?BJgfcmLCI8|9bHgx8&nrt<0VRbrFsT%9ZKIT#rTRt0`eqo7(%rJgd}yz4gVE ztK-*iU;dpC<6MzHk-wv5q!>Eq0 z-Txz#ozG7CvFHD1#{tKFKlpV$@#KGeG8c!^f1cfVUYa0SE(W1@gSBPzP99CGcN8s} zUmV-nzdRn8GPbg-{8@CW>Jm}$aV5wJ+TlZJ%Um}G09+Ng2 z^lytMzOoAaeqli?*S9A^%5MLM-f6+29~oWWAeV0k#X~Zb2UGxni`^DxdM@#(&ST=b z=4N`^NkA@u{yO*~htlJu-zs~ZbLA8OHy6M%H+uEr-rCU91f5U4@VC~kzO8TP6E3aZ zf4iA=JmYPLe%gx!ne&Fd@b7H{831FMIk#J3d&?ICB#IV7*d_LAxM>$XkvVaUE6su9V;Q_B zlKYqO2YMfE;hmkoH)M4A?)BaRw^Q#PeUaW%wTdpXzAXX?%~Qqb`m88}y<7y&9k{CO zUx%S7iWP9GE8OiQdX~>_>(R)4wIVPp)}8oCB*$x22&h-E~oP#<30Z;nW{dk$9@^u z8#$L5!nKxZPyAk!sgv_upFq{ecawiTkxb22G#$Dfe=5BZSF({W{HLf(@n^9a4#BxcGM>i00mNvNj@?do z0GAEuAYTAaiPb1HXSW}kQG>nw`mT62vD#_n?T%>J&ClND z7L0Q(K<1Kq%V4hOqH>>4pHGdI8*!p4tC-_u&RlDGOPIr})x~3HUaB}-uWDo}RiK7j z4H;34JbaYp>Mq=9&L=SmILq2@tI^44NYYhQFb7p_Wwq;FTB zs5wNr`XEC`1cCeEuYIbn5yhc$m?k5N zV!IP8n_!QsYr@g-!V9DHA2dilZGT{RtZ&*H_2S7$d=FmAOgOK&g}IZJBLfGeS(KQ{ zgO>ktU)b?j0LKMSdZbSfMKo3&K*oz19@>;O0O*o@jiTuy^vFVCa(vm8trrY1ieQXs zwp@z>eVNa!vMG1}dUD{kWwEiaRhjwigGW!_EiwYhs;P~`-+pVw)Q7cXJQw-eluvjaQWs;EcV7g*7*foX6w)%tg%$^e_oCNOH@D9&GMt|P zQ<&wJWouN*0F`n<3y$HXOpY{LX@QJoYy5uME>Yzk(O zKfmkE2=+ZskN~BZcz4b`K_lY+LB4hC>A5!9z=z4M0wxrF?n*Doun*44qDgutD5ss$ zdP{%reS4+s;SMUE@=?KyFu7jUxC!Gp(3|~s2A3{+!5al#AAF4^R1c7F*~)OxfENr0 z+A;KR2ww2c2}@hz=D7*~lq+7Ejtp#OVlP>iK0YZR5Vkz%f^b4zyOk^!R{SATGpzZL zHtk{N@rkXhAk^Mw1@PD0s}BZZ_>7lk$TJI`G1q4+`Cu=T4tDgutrQdZW1$B3X!C=K zW1>+ zu}BDg_zJ&jiCLZtH7ni`PiaCQR>9l9--gGB06_zv7%$&Q+?pglXnj=O^O7+oEXSl^ zP^NiXKi(bK?%ddtbWBrlD4we8hJA6Jy4Oq^$61KAHt|pQHNKnd8LrmxAysTlR9|Xw zCs(7SFL@2&jOa{JNyM3wLMU~4Cja7`c`c|6*Rt7uA||h>y~QjVQ5RdI_?#6EgiNUfYi&&v%jK&1sWPYj<7mUhGv@pcFQdrJ~8lJoG{o zseJEw31n+&gZG%+ciRC^0^1Wkty{o;Dlj~fPHH%)x&Op-V50K3m8s{BU8g8U>oXE_ zizR4@tABPDXg(O+Q)cJVo_(u>AJSxY7oZ z0YE08nLL`)E+gd494sW$HW@9d2IIAez#`Nz5a@$q0zz}Z{wjHhT8Fn9Y$B@m1-_>` zXK>rGis3F~>XJiUZi^oC<Eud+?j`wO6&BQyt! zSc^2xRB9Z)Z1R&2))tqUdz06ytk$%G61uWHEg_BUT;NBJNviU@m-;yYk+imga6iw3 zbbrC+Tw<`E%`~H)AzBtjwBGqR$E3}-XjAe287>42Pdb%&eI}U@K_P_}MKQ-VUQd$q ztMtjAw?r0edZ~4bs-7?|M*G?(%XeFPbgM5?h!=ZMNM)qbR?ll-t;u_I`5eeMq9g~L z$<&xwSXCGY-5{x$T=+4L>CEvcCq4?TH1c&o+_&J|9aJ#8?Mw`qeiN0T)oS*$MNMvh zjyYwW-(JACe$TZ!c*?52S(R{t?J~CYzH#-wv|he5ycX=q_jQ;Sq!n!$bnaoMOHYd= zI4XT1cj3y4%4bZt}&1xb524mX;i15BN`_s9bD!)Nb7;iB%em zhZxMR9f7?(mI`>K2{yjBh%D3 z(;AMt1w=vT9w7;gUycdqj$`4GDC%sRBB#|7NGt(v-n_oqZ=l3*aqMbVndemI=VYe- zp%VF2rRFk4AKhw0=7z`gFa&&~SQ%iflyS!Lv4iz~I5oimXFzsgHgS13MqV@eQA1cK z{OykUmRDI3|7L1AB9catYu3L2Cpg>?1sfT~U5X=@f}Uuw))O$61i69qq5o0DZt zw-=HJ%!}~*=_lV8d-OxHLQy~`;?n-O+!eGLqdCs3W$AI9SpTqFn|80p1l^*cChKPO zf=rPQ2IrAdu1yxDA9}aL%)GlhfF}+gY9+{K~=mhBMl2@s`LqnCo>}si;jMr?&-8w?nbyw2BIk)n%=t2>brv8 zX10qgYZX(8T`uD*(bV8{GDD)YFPcB>V1(kjT4oTd+=`DqWmUS@OHPvu<}?{=H6)bO zYlmvrxEYvr*naOqf}GZ5-czS2S}IT~m3D5r2Aa;)c(l9W0`eWOpISTQR~q#OoNH~c zZ|(howBSud0Y$v*Y0Xo1bH09vSdY{$(71G$xOY%y3<%q2x(JFLlux!Yi!@zlUu2XX`pn(INvn2@-fmlY zUzyR{-2&lOWM+w|`izg#SnsCfY26`uFxQUxmE!G{cl{=B*$#Uiqr9)iS7Lxa6%FtW z#*bEFzYDuG=&f#SmB7DZh{M2qm-FielIoFx;@RPP#z4QP!t2_2$-BH{Zj1F+R+<1G z#CEYWjdm*~{QZIhr|MnRXgqmHdt(za^awT1_b3}yN;|S67DpxTTvt;Cb z#5QQqM=SkY7Ka)xFT7)HU>F?s?|Dkme~SAjQy~rh2SPwvRnI+qn~iet_0#c0%?t^wNrX zXZKquYVx+9ZiFm85~Jq^^$70}svMBj2Vy;!)GZ<-r^H=ODXcXueoK+}ae5jQL?gM_ zm^wc7UpX=Vmak0j@!`K(zAby8)3l;uDzRHH9D7S!?CI;mb>N%fm1cet)S9x)vTx<< z>Vb8OEo9-zI7bq#HI2L!CiTZyq5l~lo=>cl1(o`Cz_*H1>s_ENe4kPI$?@KDGNbKk z)SvcWy)f#>kt@09aj_G4_NJy173Oo@rY>4@mzKP-@I!Ti@@_N24b0P`63`CHt=8%$ zQPl_JY0$6GT!xwFF2i4NHFrH2$Du|w7dRxc7}7f((B`8Wl)hBeO@L^_2+IA$F6QMh zxHuOa`Y~w9VIQ=AzBj$CZAa(48^PdZApXvIJRv;_zR-+wUkqXN*FOW!o!vnl@bYr|xI-EbuSwZGfybH7Lu@ZOSE8tm$1SxO1N&n$@EkR0NK52F zD5k1YvCV&fTfILoFim)snKj%l^++vZYpq*rWW~K2fJC-agaI;e(c&(Y&d1H z0@{%4)qL$hUR_BPZJ{xAqRDkWH0F7>W8qr=f)cS}XK+Oed@qJL@o5Bk8a{c>P zi;6CgVnPzdG*So2lMTp?9D!&k0Jz2-Uwv3jZc-T4@5Y=v_3)RyW)pN-{#2evA zZlzS|oa3|Le1xrX7j~x>;1Ne$H z8`@lTI#`ug(wG~PiX1isw{+Z7R?Zzp6*E=I;O3gw8varbLJ#z;xr<3e=f zYaFSXst#9+a)FvCz0N8d!a~-tZ84Anf8V8jN}W6-9uh@60wH998}%4#z`9l?KU|={ z6%_9XWAbVR?(P;QTXeZNHT^uhw~$UV%?l;BK`Oor3+Ci+_0>w}8SyT+If=Y2v!;cw zC^N2t$G)s79LF*b=#;R^{7AWL+ga~->c4p%n2RI$(COCRWYnV?Rc3%B*D(~Y0E;he zT`O@z{pi9oOlQ7c33JH$>J@X3(3>=TNK_LEkVTgBx1ulRdbgu9hD&Ujlc)Kp&@$TE z2K7Ky_O6(B2IF z6{!*k_qz)AB~+dKoLF|_h3iyf=SWI#TL1pUTtL}d$+{5G6ik3Vk6T0rWOZnC#&+Om zo}Z8){VWD^5WMjH?|xb6n?CKMnEuF$sDY~ESJ&Jx5tNDIlp$J}%J_&{Y9G0=aB~v1 zXgVO|2H8<;A$|Nx5eWby!(WE`DM=mPU@o+U@47#06E_$3Y?Yy%UUe}&@6V%Nb50<( z5v|OhF#VP%Moe3Hedken>(Th|kM3RRff=Mg@%kp*iu@q-aQtL+&6++gpi8L+v3RXW zy~fP=t00xh?V9FSk5)nkF?d@t+hSuM&$k`4%d_7c@^~Uo+1Sdg!anS#zqF$-nS+cT zdVEW%z5|G_K#$oJX$OWh@#Fhy->vK_V0bSZ-PVj=Yb@9lx@Xz>_M4D^#JdwqiLXo$ ztV#Cr8OE6-;MuBynkIHankUJN6L5w5&(AJT9jS{<*RXk#1BFkr^q0~b0>^!JasJfK zCK~aG8cH4L^wDQDi~4I~Sw9fSp50A7CyW1jr%rL~4_m)1N$!`c2gi z3BSchqbY7l704CW{h7ugAi}ERC<(uMW+cYME^P8D+tGTWIQpF`e5s7&dhz*GU=y<_z zp4D7eXMgcg>dA3v>Y?@MYO~v}ik_l8-6~2ZB5jE(8xCe;V`Zcx_LX7BKF0Sh%M$~) zSh97zb1KdIc@ZV{Ql^&v^mCz2lF@B6k@T@E!Di}xR6(kkPY)bgMN0}UX@SjPE>qjj znLZL80F^0HTN+T}fjP_6!M=7Oi3t?Xr?6Iec9-#0VLeKIfR<@Y=S9OKI2dK&4s*%Q)aj`pcCRurerM$o z>-sl{_TAxo+`kJT}=g zb25)*GhaR-wz;?r4CJVKt_v_@bhJo zUt`;g?xfe_X7EcXNB9=MC*q1@Q3~o@Y9qhA>IdICWn=o%-7M7P3C?&?K<_!c2QyLE z_G@)q${8W#@{jHWokoZ1TVT2M4O2F%&ek&SENCy=~d+Q)+{oPb|jSB$e#*PmV_ zdr93;?S^|8J!nM#tjZmWnsqOxr2&-2#^E#*`}}9NDEoqe(DhwsER z5@m+92KL3;X<>D$&QRP3wt4B1X^Ud2{a+!70)5Myl=nvH&((*S?{g?Q-B7zDYE z6q|roA_?9TA@s80fY2R(IRIMG2+fX|1B zl{+Dkj&_u{4p)@|VSspo%x9yn!UI^!wC9 z(8!3FTJ`t3-1RyKLFyW$BU4Y%k6GG)FtjJ;CxhNu}}`IXIUT3db(3O|Ki2(OB2 z$fCJ>Pdx4WYLfS~=~^T80cGY(WICn2Hxpwt5)MR%=+*SKjU9`Z$i|pEEwcRTzY>Db z3FLful%nSh9vRlqIU|)$=7&edWv(-69+2qvMEX4QEP>1`-^Y~r zIS1(VXS%7!4K8?Nl0USNjnfI}G_7+*f!^BKIA_2wSG2veOho=d5rk9LwqhnFMu6>H#@76Zd^Bm+u2Y}oJZOctwjm@{y zEHPuRBb4_FqfZ;AXTQm55liwG@9)nN=90cL3ktMJ{!4QAuPbl+r?`HvbU_l)&6&wK zziLC7@Xt${?J$dPKBg%e^^2WLUs(%DJa=opM}Ax00gXjauI$9X-jx{FB4q?Pv((O+ zq(MzM6aN4i6~#I08kr)pOQ z&cwPJsln@6o8IR$unpo(X!Z$qewP2L2Q}|rbtV(LaHymB2id}m?-PUL{K?}0P;v-H z%SL&Kc4gc#QthxP0EbfTyIbby&d)jf<+TIH2KzV^aYEwe(Bdz`LSOQr{Ix{Wcs6jo4n~e*3FC z_UtqKa-yok+S?BNdJ8g7$}Bgt+B=WqJpU~8;ka_Y#$SK+tj=~m)ePSKC}p}g0Dl|O z#q(IFAauIc@H?80zg`-PG@$%0Qx@;>j4hE7Cihn5yHJBa=__V z_V1)GcI*E)G2!s<`hFLDe*7QGgjV!k;|TZpmY}~06JPxQoge(;_5Up&*X}1*bTZ~$ z#{&7Ty?tdC~1aGT4gl>=7Xc*|@Pg*sYy4mF)3eMMof;FP%%Ent0 zGecYL4Ue22QOx5v&*wB8Tl^HQSs#$>$x^y;6ehCN2Uj&7WXwPWY9ndEQM4k^jWSo!NH)qA*3_Jssj6cpZ(k4Yap$dJy^**%$!voX zGFBD@01_qccL2VeeJd;Fe;-At_5 z!hE=Ar{n+pmDm;+sy!jKyc8@-FY|g=QR~jKp@;Sv45aii<}sfmW@F-2JT@&sN%3W; z3kfq24;r_^zce*F`ugK~Kp1%(=>FBw!hE+zIj_`cp(a~dx{7@?jq4XxyV~+br}am& zVe|GlZbauOKR1WcVjn#J;!nfu{8{4*Luv9;ng-HRXdD3CO%N`=;iGUA##>|JiR)8q zmJBpIB*4u_~FN9QVl2r~NJA!NC*}L&Nt&xBpxR>rgL179(47D$1=MLp$4omM)fPEqkbcY)`q z=@E-iy`knO{C`tCmweemE22E_J z^EKHx>NvtR8Z^{_(k*0(-#Yv9G3IG*^_>Gyi01=qrJ^Vk9wz}=4BOZJzkg&i#=OdN z)&8^c&%ko#XG}ex;mpr(uB>djisqbcJ;`b|^*lUHY4*?c&U>2jJbELaG3?tL?Gt@I zqnnsE>EizYeqknG30MBioMzI z8fCZoWM{pvv2w7)Owk0sStu%-<;iPeH4MTAWE8J@{VhFDvA_5D@~`bZZi{q;%kOQg z1rEOR9x1k}ujkpLO_-^;bV05iaPF|V>IX;{-zs~>(s07{@CEg7Vb?aJ%gqbRbfJiN zpwzr^))BUN&wMIBO5xa>eac@#dw(pstf21QRzF5I%tCsswihuPE7Xf~v0gbHHChtx z%|ysaw|;0U8cr5LwWew6J+P2-dQg_h--4d3%F{cOuYn_RJ?HcCv_<*H;=0JNZ^JZ4dXGAuSp0^V`vynf?0Zva zS%e6MRe)*-#oWq6#47NqYaCw8OAa|#`ZwTJwh@(^xN=>ekD*RlyedHOzCI78VVM5L zVT`_FIDR-UO!x0oeR|)gN^F~!0ef9rWVG|i|E-Qp9BLaL{=~0@94rrHR3vOW$c1U` zA<&F7&otGu!24zf9e2h`-iSEV+qztSAcUd36FToR7DmlQK8HKSTXV|JK~rx!)A(5$rX)dJsL3!$)_0tKBYVYk2d{HKC@x`@ zAmks`!v$F(k!5JJjwZB?YarvE{#+oMHMm{H*`23g1G!gIyfle={_Tvq?`_^^#`eWI zDi>5QQG^~Bi!2>7aO8L=y7L9-%iUI_BJE)(KW5k71q1jxVk2)&-R*-u$P9yW7TZnb zYjj&QpccQSt2o+fJ7um$>EwIiR{WLZ!o;^5ax1<+D={t2bnY5f-r4FgGaX6y198Fe zPO7;qT~&ZJtbgzCja}DlC{e{F&`EM)Bxm8Px;yxwz0(;S{L=&V$BxK11K>%Djd0p# zgng#lneWqqm}}wOQ3H*nvL%-(XFRZNJYjSeuN!cu1s(YGIw!xE9G z{0r7XeZSVt(bnn@XKOBWJ3R%QDL(G^=HkzRyMYWU8U3lN+}8Zy)@&zo3MOrwafxs! z@j#gE{p6$Y4WAvtbVv5Fnk8e%v&S8LELF3iZ8r9QUCyGV%vurt{g{X8 z=LEsE4Q%AbA!464Jm5GX<^3IAGwVK@t=64%YwyX{z#@lNX_zsLmUp?QALxFOyZm@J z?_fP{>BBly5Y0+_I&aVck1f*ecSL3X7Xc|E4809$0*@G zY<`V(W)U@e1G~G{f6tD*)iNSZIbtZJ%Y1*c{H20=e==lWZ`)Lz2_H4DRgLU+N(_H_ zbA^=>_G%~vo;q6ZCIPyiNvlF_U{5}b%C8@(ca$K9q-)&_c=-UiEg^0^SrsP$dKi^j z^JAtwg6?)^by}&&q-{~Xw{!2(1<5liCEvK1m1oO61}=c;=a2%ux&b+?*WT(>Hi5Q( zbBT-RI5WHDl?qvP6dV`flwV(wggQPJ@v<&9!2D+A;J4Hw1g3seZh{)IDK}al|G;cE z>IbBS$x{dO&BsXoR;jxq*qXyH<2-fTJ^*W?zCHd}nxW-30vw^=r(}e8^T0SH%o;ef zqxTvjf;;rXR!8r#S!L9gp>_wbRfBJA3$VXF(@zcOk2e6@HU+18j|a<@9z%p>SxcClGF4WRg%gCthie z$Pybi;Me;wz|nmc7E?iPBu&k6>4I?;<3`q%4_0i=R)%G3x~E?G!ZCMV%9hvaUgIEF z<`;`_l-QV)mrO*_Wfy!BjM}yqno%UDAMo`im4oeAxeF6VmTy30*Oiersy%K=kG#8FL$^Zhxmb#KUr#nA8LJnJ!`Im3}$ z^fh~*EG=k1W3XRdTW{wu2*-(#Ue-PGX{NnPvub=x1-P4g=eJm|o+v)@kV-3D!SGo~ znT@$uBql4aCf&vu1KCoInO3;N>DEhEXXcQ~Zav1^%Rva> zDZ3KW{TinOvB7&Cj-(tVb3^)$P3UAtk>Am@veIT91`$&xk^1N%61ZbIYsEQeJtc;( z@4oG`Hr%ebQY0jOUnqC~cw=bdQOl5pZz@IHBgwcbLAiQdOtNkJN`v*qv2u^}<%XMA zIn1pwONHiwwiXs}rLmPdnkj!)nPU^`WJK~Xb2~H5K!z;(m};!;w{E^cI-D zL_YIOTYXQ)qpfFU8x3jZ;m^Te7Mh*jW;h!7*_2WRU(3)mui-MOL;doRY0gt$>lzg6 zLMnnx1LAt17@~t}XsI86eePo{@>|8{yE(^D4J{*Cw)?CZq zxSvRiKC6W4-FfRRl#$(^KmXfNTN2KT?mg&je6C(uKXH_lF8r!yWiR#?GF( z1wVi8_&g3g#|nMUSLIaYn#^m}-n9bDIb~5=x=H|AYN^R%o#x}Ox|sG8*9_4cY`7bWjrMx5?%OKgiU3ggc9cXV3ibeI$TGqWCSfnAhj zv(LzF&!(yZ@iv2`D{~05jMXJo_{m`0(@N=C-C)|JKkPb5-2TwN2ZHAi!9iQw?Hcu# zoH_RJ8g?d(I9`oAt(LQ*-lqa>H&%~&ZgKBsCZhk_Vn~e&K&{naw%%`K^kAl3hMy*U z4p|*Q&~3^2!7biuqZ3iwBhzlY>+?6x449kJTUKk4UH*=VE@+g^<(DXQUeGL8ofVK= zNF08G{e+w$y&K@tQ`IU$OpOt)vKMKosutz(q>;#Ysm7wC4WzqpQ~$B*sL;+Gp0i|; ziHse+1+I?@u=!(J@8$i5Z84jOefu`q6|DekOuB1Q1VmVJTa0KKf8~Azwu0ALez?P$ zsamrQlo>0EoCH6sGWGINSDiJ|Kt22@?pL*ty|5JSLvMPDrnEXfow*P^N2&TI3h)rc^v2a<8`|4(Y z#pU)T@cR%f8OrO{a=i_yk4x?H5e0AeuQ*W#yK~yE&j-d$?VKm_EYVFHX3|2bZ|*XB zzbrTXqD8TxlDoz?hl|iw-cz++g9CjvUL&4MR&bjVQ$MJNlym!1Zj0*A7M`gFNZt&b z6+M0x*x%>2c(5y#y(YRfh8Wpx9LXy(9&E-oEA<^(k}}Cuu^uY;nW@YCVN>mEB&N4J z8#Pq}LF&@nldP+@wD*vL=cIH%xh$NG8?%(@PEh43mJGVBDC zuPKQ$ue{Gw!hf~tlRV%V?B~y)?14bN&TGU@)hEKP=>dCQnqia6cG&x`K#!{c@DK8| z{pV(?#k8{5eu+UX^!uM6qw%Yg;;nEWFAH6_ptZt`nvabY!C0@|B+JK9ClV5LjMPsVpkM?=68_Q?>hfCa`ry~s1sHn{?zvSZ)lC{ zxu$>6e^;mB&fb=qIxXHi$c{7mC*AnJqL06y{x9T?f0sc<<+QUU`ky|YPtQ{EdW(-B z$}<9#ej}8>%f3#84`O+v+ZfCX{~fRO;G5Ql4zaRk4b^$wnbY~7Ua(R8xM=1!HsyT- z8)9ju3}}&1&x8Yt8NZ{%e!uqk!NaA2oE;|tdUGcdg3_81`S19yALjTNB${y5W;7^q z`W%}RHY}4ZaK(??Y$KO!s?=t_-FtYz8uY0}n zrvJ7QHeoCNvR&<$6?ChGEWoi|#}?DCGkdHkBH!V2`W@{m zn*H11uq>)*$l^bpW{*g%iLS{1-2N|B{4WsoZ%s?!@e;jtk+(hpQ_8()XG;DfgD(*% z#IDU#-OQ2~sLG+TcLNIw_wJeZQYuznh-9uz+bv{QH=zp*6SLd<&@~(zqp>%lc6(hw zUnF#4DbK*qvA_^M@6WIP09E#;s!}Sv;_mBQi9!LT#*X?Wmbz-k<^S6pUT+)k;mL^9-XgluxgtsZh4CT2}9a6U*e+iqAyl}z~54k+^XaxRK zxLW2ZAs0HKKvNyJh|g8Pk6I- z>}!=Z{Uw1+iYG!>kuOiDu9 z;MmYIxRW6Qm9Gt4dOy?t5h;unY)H=$HD1>Cb10aydS#I_JTx$o?Xkne$|e6O_xlI4 z27Eyj*rC2}T~OE1r9_t~Qt#J3d^3_B-qg#&*YTKK4b8@X2>?30C;{AjQKC{aY*yE7c$WxFu9!XQNj&g`-S|FWrl z*$0~Zv;OmKm#FE0D&5eMk@VFnse^1%=7;S%`p(;Erw~WlnVBg63#j~sI}BM3!^*SYxAi_J~kB9wZb<|EDUzr=DuJ-mUfC zc@@{b2D*RGgMNqIlH!3}BtL4;6oX>s?}-0NNRoPNVNext;L#89_&V~RQzosY3DVD* z$`^)M!~~4E2X~bd;%Y%Z(I5!rYx0>mb{%ZX5Ky#AG z_!X^}Glfwv=15mY_%<3G5;Y9q1|l8*^rs_>2gZ%kvLmW73nwPd2+Et^C^9-VGEUM; z&B!P7f*=IKH>mFh z46RgPDZn078P5wl7kLP4v2Z6aZug-o;&@@AZ0{tJR~n$!SET?8+t$XM&w$%MphZM0L3ON}mT73w$Bj^=~qwJu40{>#1c1=?B7Shy-3M7H=0 zR$tB^FUqby90#}xxd_nZG5$Jp%kx~|v(4g7!_AfTkfY^y5FH%FE>AF^rE`bR$oBRc zPNKuX>ufxU{&6g}-m{sf|A6wfa*>onuAEjDS2XW_^%VHhK5{`<(wHriU&C**F(Gf0 zH6SPM#{FG^!V<49=03vc*X##F(>v6Rouhj{Fv0sTw~t=>7Gcja3Twfy-2G$b%4>Yg z%R6;}XcxiDPBu%q_XdR%TYciw`ppKxf;Na^P+2ALbknV8s6PU7%VNlig9E`!#A;kt zh;jE{ZSwE<{Kf-ddxZuEO>O2630h7F|DIWbxknbs+<7mt`4YE6KT9IUcAoSMq*#jV zPnJ{lXm(Jl=-s6|3bl(~-;H^?+qX0Kn4$fSHMbZ76q%~~wsnn_g_>iRT}`wL@^l|r zxQ&Zhbk-mT<*?%$tx_VsxjS#3^$`lqO*%I+&Q|dU zvQ^zCPSVEYp@`{=k-kGSc$W&9?TB7}Mwe`=Z+Uz4((ofxQH*$Iw7wHJ&+E3A>klkV z(7mz89y3L635@Rq-21YQ`NB}YucuY1L+xOKl1vmJYi zTU#nbR;79K?v7YbaJFg1KaZPlryFxe<#VvA{H|^JGem z=~jGNU!55f7WsDiC3M?@**Kr!x+!EC6M35*L|^(!#*`O2UDO^{So9auj)D=(ajbrF z#ACh?^Cz_40FbR^=nXjM$YhV7v5CbqE&@r<1X!7Gk@z{#o5o98=Tzs)SHyfAzbF`< zOOl}xMOcouK$OGO*yZj$)ouk~9-PoRfMd_v#XK+*nHiy}Q>K%rYaBco5Bycf*wIhp z5nJmj9Ek8X+hP%x=N2=o16zAQG=a=eN2|;mGX}!V-m-bHADG-H5xVn@JNpgRz@C@m z6oOxH&%y~UH6ljPXM3r6X5jgk)JKEoY78`e#ox~xP1BND50q{pQJeLSc{TC@qUy2o zq@adZdoiN)`K7NBbBHpd!@G>^z2*%%E_7dBM|F91Bl?2vdoLj!$Q^Z^E&W?vPPaDa zp6;~kEsr|}UA~P|yF9kbe{+@jIh@$*E=^GA-&5_x!x;R&!>tFkvVUs)n1$JS>dIN~ zm$W+Y8-u^Bleyw+UFzz{HkH_Cqeh^=2jr&dsy2p4d9OCY_{HNnh|Ze%XkjRN)Zb}+|Nw2eA6{#*W#P1gI=7R-@;4JZ!PxiuerF9zriEs z>(sXgL#(M&XH4$XDsE=5mU?_*bmD1mYJ^#KdJ1{v>DlmEwQvIwX?xCA~S?(VGct*k05$THV^mA+oJFo9$D_XZ}&ex z*FjBYnU8&v(b@CEx;8hKmmnNRRJG-AwuzkjcxN}WKBlcn(w1N!d7pr|UCS_eO#f{4 zd9=_!+Dh((pCa21#>B7+q6k}&SF%HPeLDudsd}2<{6(-zXcYC9nbo&vJjU_0imvJI z;D&`Rpxan=M6};jR%Q9;!fof8>)*r$Qj2puYfPl>M~Aa6@b0eYXL^6YS-l!7$w@4C zX&S9R*h)b0WTR^9bw(NcOw=D?Nc#@Q2C{}Le*gI^L(*|PgPG;0&gf{BBGYV8rcQ+< zO^cb_)k0nQtkr^>y|rsgFQ-0*qrTN6DlQS9uEUk}yoT~0i8?9W>-HpD^oPiOwfq$I zBag5(6fdwfnM_d$+sUIxK|je_RlF})Ckwo7@Y)e_Q}yjSXOh|W=bfF?Rx~$aZQ#fW zLCtyJI>d>9bnnQhF67kx%Ca!yY%G)U&N0&MiPUAC0?mQulwG7}G%fBK4o$bJN!zQ4 z1X)@wJo52?C1DK+RW$>8#7E?rQd`ts+9z#_$81|NYRm>0JvJJSu2m+il!x3r(ejt0 zW8F_`6Wy)EvSuV|73OCV_7GY%pyijB#@tS31~LN?Qsu&t%FB0QwcK)ICe5Anfc5U# zOYp0_uvhYW5AKi2rCVQvo~9VCheW9{oIa;8Z3uR~G-OxFKu`c-xLMame)QXZy>~#_ z(NKTO)oA(f$QL)G=oLGbKJUAZ_AHacqp^9nQ^yL*%QU6`ie^Io4}0$!)b!r9joR53 zWGkYZZUeSd1?f#iKG;KIhClXU@#~>79oUgvs!4>%Z3e{Z_fIRqe*{$%t{vT54ijCF5fRjGbWL z#mz_Q+mUb0y|MBN6uYJGq3E3Dg!;X5yl%sq_^UPKW|?;7IiG>fOVSgtoP5mkMc3%> zyM7^$njTh9!mD0&03+K&u532aRWAL|9?>|<*<)0Z_Qpc1#_=~=W0e=;14l`mjnAu_ zwB3{(1m;HWF-ZvkzSSXb5*FfTJIKWObp~?C7OkT;4MWmNJCCi%Eq6k7|3K(+M!yzb zQjR7YiB^zqC{K;{N9#miwY6?IgX<`@U+OqzyyZS}P1JmCOC@l0Y#P zKTc{NHw&RdqF>&WyPHZYp&U5f{)UHBy%l4D|X7E7W(7Oyk^O0!A3%2^(lFJnL zh--%7zPs;f4Ar0I$s%$^$Ze$_xojoh(s~hM#eD3e(ZVGkQO%G$++sg2&^Wx3ysK;@ zNqZOHPoGFek+g-`xDD+t0pWC5Jd^Ib*`r%`ku%{J^KdQTzf%5~Z#f$k&`U|9_k7q`NV&stx^UKl*);TnFx8vq` zJ~^F99@<+hh~D~gTN#TW$JB1EI4W}glQhEF&s%P zaY8Fck(WvjJm5)PrQtA<7f@TklGj(n6qtXAPC`~uX;vHlb1PI@7R{q+^UJBM#%OBX zAZ^@Pscxp=pix~oaO7Q{k;B#Y%ImWyO+oZai^^r!hfn$ML^eNXWiveYwaa0B`rk|M zzO;7gtCg1s961-5gmVBmqD;$UW$&Umjukc3HzVhSwZEg?k4{sXQev=)L`!Km=*uF$ zm7%y-#k9`cy2-cnjtUcWFR&}2EPD%`%^VGhdNk5m0b+}WzBvhsNzVwg$YBSiST<+l zWCN&+n2f4BEG)r2*0(hPFnvx(FR6;^(3EvVs|J^=3H>93URpE#c_?CETfNtF}QGSF*Yt2Mb*>*489w#Ax=1l+3+CA?`0c z)@BYF!gt!Ia#@jK8@p_W}&DEB<-AHTexG>5vEXR)3uG)$pe(ASy>IfHI5mYPpr+7gpnx zH5EoV*1th7jU6ly+U~Go39rZe=@%4HcdTbM$ll|GX7@HgC4zch>W564YK>Pe1X@ zXJdLbafT{R8)?;hf$;B=x3+Ldmu@VLZVNKtM^v8iX3edOn?_T3iJP-`l0G0^a+(VS zAT`FR5ct?r&t04P2?S`q0;N1oUei<uT=k6uNM^*Hnbtof}fEmT?`eOw;}(wmm`9Qhm9 z=+ZYI-6GvH>2_!^^5QR%pInRd@osa#&-E+WB~DBN=jdf=M^sFFG%3j0n1)^^s{tsC+{BLO2wM)EO}R5FYd9!Ho2)TdIryr72wwG1KH?$v(EzG6;Z1AixFmKRdvl(|&>m3$vJT)S-XS8uI zU|8*OGvzs}6pzO6zT6@~&16UM`g3G;%0XiEIBB{FmUu?1NMBdMeqHJNI@E8Le^ z7d>+ZCsNAjw}8}FureY>7=bXkg%83B41 zm#O93q{A7=_0-3b&(`LmuJ61G@bk(`eZkHz9OP`sw%H=rB#<0-3-ad~wKWvK7M^Tw zjT!oicxZAL8#n{5=`1&*$b(kcYsltYCHVxD`|(Q0z))8wCj05O2I}!mea_~Km}A>> z4bhOwTCfQf*Gq4(5THz{*L!3=%o#m@98RBlgb#EFL79G46^-hcJD zmcNL?r-Bh@Dj_J?Cg*#&;Ethh;;K{qfX#VP_yV4Wi;o}`c4^>kSwe?__d@+b&qdnL zP!DN7WEUOgsT!QK;tiYTr~3tQqG(3b3~7JNK+0+FWrj1uZ$`O)?B{kRw)umg$3Dt7(tbFhZnWcZq0*82|ZY;$PtmG6I-);BnC3qH`o0Uh*P#3z5J ztDDZ+^p&8bP3LuQG>$L`mo6uIrT>V$FAk}d2f)bT82AX(akQIn7Ft=x`fH~ABvaww zg8i$+blZ{S)FRsrSV;cjF~j8B_eQON%0Jd>ZQ);n{oPv}@Wk~*V)A-cL*Ec2C)wz* z*(jRN9V(OC1aO_Q8`VX-q9jSazy=BxPk=6FZJz;e1v|U?WoG?dVod#978_lG%(;oj zBF0+6(rD&vWn^)?vvlz8AKL4iZmXnN6X0Nl3~d?enx`%C#TM}toh%5}ia!^QGCAIr z4Rj)ouYu-f?Xo=r_3XKQS#>BInZEU|OiH&VicEz^QHpOq%{T|&)<$Qj{yZzUGHtVJ zdf|wDd?>A(*-&D_*=URxG>>diY&$>V7Cyw>L(mS` z%{f#D2&5xaeDKYKz-fRuCAH)5*eqEF7{wIoc`c{n{f6oFw;7MU*~m}|rVe@62{gW$ z;Jx{rX4TrMfq~wAf(NuJhLYe|aX=N{X7oI^q^61btmcHcaEAZ7)+4&knwN8hD=_ro z%2RHOMi!kj^>`==Y$Br zM?VSU@^XalyO=4?E-|z!IV?uUieJxUb{pJ|BbP^_x=UO&AR^Jgdf`kYzz zh@V4kBVrAlt-J@+W|8RG_Uj_V@i{+W@=Nj8huLOtHzKEIFJ`?VeRJQvxXTiKR=SX2 zzqDs0VS{|B6#AzC)XseOMHCvEpW`&^!C&tEqjqWRU#2?0M#4ki&;qNfG{cwC!|s%H zx-J%<`jA{@>AqB2C=Qr+8pQM$ZR*R&7`$D6IRj?*mKoEI*neiard#ls-_1I<&eC+2tICeKl_rWpq zg5XFg){c)J;)?r?@Q~BiH?Tq~V=v(0BmJbpTjyWA_u@Qj2?|Cuj>EzV++rVnFbaz{ zE~OTDm+b&MX|A+YIRv)+QA|gd{uTG1qdH&mdf(oXQWPpTnO~2@z{l@~$Vi+4j7O3_<) zQp)_SBr)5M9HDm$Vv1h4?cCBeye%+Ph~Y0`X(iWJ10kx;UVGg2g(>zs_chV6$E2+3 zxY|N*Ut1-i+yS`2k+gyZzy$P=e}oY`-wm0@CbsAeVrYfLF>?ny&d2>_^$0u!6eBBU zZ^SE{S9q~Z_u8=es;QUl0DFG#ENcPFZFzLh1SE~7^flEO9A$QmICEU88dk4)FSAhu zpO?!TcnfBzjH4^BE2%j#f7#JhU_)Y=u7I(4mmFAe`-Q?5WBP8QysK*pDeShYi>|Bg zI3M67`GsoLGM@8saK%fb#Tlw#Dp!sB+4A$Jo5uC;lBU$@zAHB$30||4=nUN4g1g@5 zY4{7FxGjq#Wd9wfInsEv7# zi0;QLrpEXMDK(&uO{sBWu2iNcbFr{*=rrpU8tp0P_NuQKn z7gcCrGFjxAXuI0U3*(cg_gZ);quD2=>X3SLx5yTadQEqtGe}zhRfW4Va1KVbj)jle zzs5OrDcI3+#v%ruu4jC&YL1%XxLvTm^hqwVD#qDA*~-HfK5t7TS1U6lN~JR&NXR;Q z^7!r=rCUbQMP6Tlm_=mKva1^cn#N$LrfMINMgs1R?pjSkE&$7oW-Y9$iE>VBM{IFG zby}!(Q9#^7ug_>s+ML)dDCP3CgpEl|kXHE8J%)Sn^WYTNTg4O(Zax@zXDrFNcxph0=BYTuW}PhEek->GuEUnue+hP*G4x3W0#tx zpFz`s1{)Vvr|WN1`2>p##Z!hq4rV%Yqz56#fMk$BNN_q{qTfWb*$@%37e(ffGKCl< z6j?W>*i}>1Y^ugHz|Q6-5p{ipsN>3ID6k=JJOsT@9BZ<`G>^8Eeg7M1xZ)Kg`g?e^mbJTR# z01&jBmB0uif#jyhZ#Hp-FuxBy9j8+&H|9B;%_$Ia<;Jy5o%=S$2Cj&z`}R-Eb-m3- zEfy!b5`T_vB@kt~{X2#cO+6j9diI8ysct^jYNHb73LAds=#=!r$ztJ#i$Jjk4IirC zXGoQ1w&dmQuDV?SfdFiRs}@3gZMt$D*TS>>N|>q*y?f&(f9$Pq)ul|Mr(^RJhr@kD z%;;;SKQBybJeOdI09(G;#5P%5bCE5r;;|JM^hmhL*RVN@kMA`Qm9P)b7s*PcN}_p`Cc zPI+8`jLP!k2_-FC%`bkR&kG6TC5cz?6NZ^<>7Tz^hE+ zp_^h2ku678JC~YT;gpuv(Yn1L9f9fz167r4QC}H~W61Z2z->QV(BL)h3%#nX3qp39 zI2P;u4Cp_Az!K^ZA9flZ%Bf%Ou(caytRckL6sfIKzBeg9%)(ETB+yab&oEg6({mcgu-mbkHDWyDE2i_xr2J zSaFtbf&F0_o4V>V;vQ3%`fD1OL^k6u#o})s+5x;eoAs&T(Iw(yhNQCVw1FZdD`Ij^ ztaXjYW5t|ehW+%=5s>d`^g*l5ExE~^S9$ZXOxmtI_M!eeDwc+ahn^5?{TtoLn#sv!_;r$fTSq48Gi&nIY}SE%Kj{ zFEOO9l+H>XBGq<9>i;o}z%r|iu_a+|k{=O2>e@dV(tUNa z&550t0gKNOj8NnE1CJ(eDCaGI%UyQf?$v@`v2TilFg*LMQgQj=Pl}yV@R035Qi{(D z>$f-?BAAgSVcWZ!sP9W>Um}37_M5Zg$1BW9IUkRMnv3JmEyJk`6UHW%uA!z%d6d5I z)4>vvJV@u1$;mw5Ylm$nDBxVj^Aj=RQO((4W3%n*4gZ4oafV)y5|?xPa&8Q#o$OCC zvF(zwqSZ#cRG&ufPd;(F+069LSk7^)UJE2#8LN|HRa31QGk)&VA-EvtTUbNM8>uZ| zWzsh3Y^@mo8J_#~%Hv^~6RMKuBa)mWFPr}H2)CSZn$7LYY1uf|2+pD<5adfD7D~0l zCJ*Cysi zi2}Wy;e0E+hPKQ$C*N42Kx}dV29Y-)9{`s95Q$qGDqNb?K!utUM}{gY8`nCJr0ff8 zAH1X3qzeK8A*E~A-H*V`pEaeLIzQ*B@`qKBh=bOb(>6({4#GKH46%;hxRI%2?O%;F z8=MMC9yR+6NlC_Bh_+t=~&zcRLx{9_1@D-U&fy`th+a7qy84UQ=?bT)DPLy4{T8%K8+_YcDNOwwpr)RCSk0%?3h0X*l9+H7AG!? z)1v$2@#Xgqy&p>=jjr4CZDyqoDh+;?Tc*7I1DzX({J3aKzDHb44se79O7`JLSUB+7 ziZPacU{UFcRfp;*Q8f<&)h|kaFg@2GT@kH>fRau4pwHx+in3^gzeTTd%H3J+EI)RDbzBn0w{pr^~wWNk7kTkTTwPPG&Z zBqtz`J6}7+BR{YgTIb?7XCDiwe)VpkytF|aR^^mGoblK-)IAiaBA~c7_0b$NRn4o} zzoVC}vZaU8m_IG5J0@4aE=`f-l;T^QeI<|JX-588k0Ie;k|W3axhib1Y|awA2q^z|CdC*_)a^QH+F$WVGPEatCrGhoCl>G4!E&nURqQ0fEyC*(Q1@s=@X zQ>&?bvJt_b=qyx+(=U@fF!H+rFO--6jgBh5I^`<yg zW^N7IjrF9Lq@7er3Z(~F+)%|SyxkD%uh-I~KM}Z}NR_a=Qz=W}dk^4D~W;Wud6`wu#pgFD>1WQ6(W zW4m@TEs@at$KEyJX+GtKeVL^{^azM)r0OA9jFux0-9hP0_v7>~2qTzJev_&E7nK5T zkD!th3h24I8xj2z!m`i9ac~XUGL&rkRC`Imzwq2`CGam-+BNv*?=OrmlZFI*pkJ-?$VR z_wQYi&<{Om9ik%B=H7lNL((KXD+sZ9F3JYHWTwoxmq~a-%9GqvX0|r;d+@jEEZ7o1 zAB_wws2g;9KB=uZcO!cp?~cVTXg4t<-DiWN&`E|XpBvg`+aJ9aW($3;^8%KK~a3_Y% zpBpiM`ou1rq3A>$dyX+MBf2Z0-2SP)o>$Bb4Gy)HIlt@`-!-bHDD!eyf}XypC7pNn8pryT`wY2t^qW& zukA@FadqBe9G|1joK`Z7W5j+oiCxvKE}HLwIwqa=P3gr&BG+E+X4fd+J>0*g;bp7N zImJ?rst4t8F>jBn-CUa8Uu+6|##>@?5hQ!5rE2jAAA2jEJi7^}z>a7q<;bKMdh^A` zu--|?ck^h7p*MAiw5N|962gCSft`HhP-VztIuvBxzxBR?toWdbrjvZ7{`M7srZIFT z!z+8{(M7BIp3`5RA3Z_+P&X~uqb~U^y22l4$L+{(%Kn0r(-(euG|_a2l5ukT7aAZ) z`3&`RV@n(HEOn&5&}bhjfay^{G^_dUoH)^t_DOd^Sx@sT{eX+Qa^{ zYmu5v9B3vj6q*_I=1#X0n-&F%YK=j$);^3oh-!kyM%@>*w1dn6$+hBlD>3*dDH(nZ z-jFM61a%b(P#fL+#j~aQ;wV6^V!apSPvT#Eh&z z7uW~6u&yJoA9X(dFobmnnr?LlIsLUe)Kl-2bO3JEWO_-CJWzv8M zG-)y*18@L94Nr7^m{mq5qj7tZ7UAu|{QEd4T}M1la^Dff`RRhK*_RRo%c7?YVoc$; z#*6wzDss7{uP}R6h^W+(@rzKwU2WCXx^Ir%mf8Q|S!R>cO2`vzCNG0KW*;mJHn2(^QC#AN2 zjq&*Xb7T9`zJWZSgK956kTU~e1>n*kbk=Ej8S+OU>a1qPcen@6o3O3@ZlqFjOS$*_ z-oFprXJ#6C@yg0{(OZKEdB29EIih_brt6v%#_aydp8xeR&QF&k4n&&?c`Rn(;I97gt zb3-LDF$DA$aC_t0e2qi~R>$;k>YRu$~g+>lOW{p>Anl z*}iM9Z2klMa6?6-!A`wjoM6pCeH7yIN1m^x_Fuc&)h3d9M*uiAyY=rj_kH_9zWw8- zix2&~|Cvj_^8WxC{KvWfKj>8c@1T&I{|R*X|AT7yp9}s=TmF0QoBwX!(Eq%{f5~v) ze-B;yKVM5v{lAPpUptE1vh+Vj|8Euf?*UH#o7~#J!CL1<=8lwqJ9s?r>6S+G9(R0N zkKn$G1J_+$X||>z&qsX01=}e;i~k_?6z~5RZ0^9nnTNPzx(@w@<~?y)RX~SNs<9SM zcp1Di0s?QMp?;tMpskF(L-4@kTrQ2);@c|5Mg{%)n!EQ^r5+nwCeqfn!OI_8W#N*L zJN)fsuH63It8|`z!qSNnYqKh(vWLK1mJDVB@Z!N{=`_x{*hWV@3aDe^om=lQu@C}6UG9d?9?#?7gyABDa{28LMPi%BC zgs3$tcn4DR94=ZOF!1NE3;a<22laN|Gg)jb@v!dFFeLz+wYY_~)r-L{6c1dVu}O`- z?VQ0b!mojEqz^7vWYA+FUN3Tee;vK=hvn~8;>#83-J!Flf*W<@>nL;czNxa?-daIi zR%7Sam>9#wyisR7IQwJ#fY0xPHiUjJqcdkRn*pV6lu`SnwE}(LdoxRR;89G0A5gGr zH|@x8kkF5t|13hXhKMyvX4o3;MKdeUUe6gxI$2wBP^QHy-mmCg{~9HkRKt|atSA~2LfFJ)Uryk7UM#L$Pl zh9PZdTql5yXMYy|7W@sd)Bm#9Z@{u;G8FFjUMbCt!mNwEt?7OKNik2|LW84_@(KX0 z>iznpq~_egL_1oG0)Snttav74H#BH5me3MYRR*70eN%Hr$JJEW)~@tehwV4PbnyGS z#c5F|MA$nvVeQT5GwQYV1C>q&^F0CsQ&A$SH}u6ExO#y9K2P16w;i})_9=NcgG;dm z8V->V3F@qP0=-^cOopUe?G{}dXiSv~riQba(~>OYdZSPTpj>)j=Z#~rloPQEuc8s( zGSFy+=|eiw@@{gHeVDWQLOKj3-ke4QPQt0Rvxw?i2^`R_Q*Zz_23}9u)|}JAb0cL1 zXQz()dBKi7p}Z@*U5gsBu8#hIg6feh(!l*~544g}thl=6i*P`D8PIn?ib=AggylIZV*VL3;|gs3U?c30ClL-^ z^;N(}boKWAx9yv(lq88TgA4WjB9nn6v0_yz*%5J$=uuGgTwdd|Dk+^l z<8}3kHqsOmy;CR#icLNn7?FzOKf3h!;=b*WC3n+kwlDE2DE@SwC0oD(bxvn!r@ABW zdyv;U=!S} z)LnvBXd^+n#bA-RQK91~ba7AleTq--i2D`+%?evk2Lp+aqZ&&lJ$8on%de{S+Wv^0 zq)=)uv`yOc`S8yVe4aPm!xkuJ=4umvKnxUO=ty6-FPlUI_?HGKO7aV+4A zd6r+wq-$V5z|dzr?$6fJcOkq}6{Et_5UGbz>8A%&?mBJl#Uqv9tTzn4Y!$L$J;Nu{6MWt0&bbF6$V7HthG>Z7FGr&$ z@eg$&B=;{{Dh(DBRTw<%xIt2Ez7Zx0kW3UX05X9-4Q;%Ej-}pg?goy8j|p& zxxcY``|@Sq&99lZ)Lcy<{YTXWqfbZP!}4BZ@U%=9NVr~xm!(g73AR|wE?!tER@SUu zQI6@m_Q9-GZw9QpToF;PcJQVMu`HNQx9c!Ap8?$=L3WGXZBkFT@;$`pmN|(kVMsq* zWoU$?hH{!_rDCK`f>ba;hOG9;_@%h?8M_zfcqmC3f^tCcfpFOoe%An-_(`)p9jlu8 zULks*9qZG@yRS)2hTg85Sql$#y3QCP0yZ=?Fdd#C1>u;b--^gZ_Wg3_W_PbahiE!z z0`im6%AiM*xboeby$9DEN>G|pg_??@H_E&YlzXFyzZRX&{Xh+*z^6?-W?G7y~-^W2iJln+bju zp1-aibmO?&8eDAdbH(NLWM6XdwE2YrzR{DrN{lUN>N&P#HOnBg9()TfH;~P|GrJ&& zEX2BkE-LBz+`Z)Zx&Y(q@8$-+g}2$L=C((Upsuf*-@32vL_uNY}cqZMQZQ0EwgT2H#=e951bn+NfVv5LtFQeydq>mQQ@X|t&!S_SY~KiJ2SEa4=T0zc z{gI@Cg)K;}vuD669Kt?vYR%hb<75(g^QQJG*~ZDANuY6UQBlEy_`KsgO<_PehvSd!o z)B)}@o~Qq_OEdE-)gTXSAI{w$d-}RpPYh%_M{4DmV^VNg;*6tWEEq0=TxBI9& zrSsh9Ptq>@imr5o9S?D;jlAAA*=npKFDz*Aa^E z5WB!>{<3V0@L#z{JAP>;QO4C&o2mVgDw#6$d7>=Ju|PMbR0A&~h75DxIExM*>|%@x zZl$ZO`V(oM<qm6f#c+oW^LA49c zTN_D*wp0>O1br=B)YOC(M38&9S`vE=cfV9W{`P;C3Ov$5{ z;Mg0}+p*5N4}zB$n~VJ5+sH4=bZ_RKzSH+Dh=Z;{16sT&?cpOw*Pr9HPJVeWG&xth zzLL)-jpnC&BED*f!^{7q^!@dvWfuwfqNS^Q=L3Y^wHn4?y@W#+V|Q*jpF=~ssXB$` zrmEZ8{(F?;a^ME=P@o0?L78{gBwfI_I|TbqGK4 zt*l9kyn|bR)b@}w6|*vt0cTLEf*LyBH?MmVb>vfZH@Gip-&?8wa^1*>ykRkK$IeI2 zPy6bP7jJH@*J5OR()eACI8h67{tOx~8V^r$veh;9w!7-;?;11O&v?)#McC34N64Mh zs=itpL=~S`P?;#QcRMzmTz<4gGNw#IFN(bJ98wW>b8xA#sMMAjCl8{&7sa*HV-!R3~fG-8FBXa*^B%Mi zIh~~~2!GW{bDc_*A0z*`L5yv{wE3oP06b*i!`1=pzPH!P$eZ$Ti9>wf=7cHe8r8~o z7?CN0;ruG|1w>|*x?1wm+7})<8YTgDYh)V}X~VGtH}?I+0;wU=xT^CFj{^CI&Cwrnu?8CqvfHi6B*AJD>Kn@ zb6bOa5lgXjy|U18NF1qgmzdm8{2fL#V~ zw^5n_&vYo3`U$y~>@&~_ef~17QXSj41c7cwK4vLz`4POTon)IjtV~~-~bLe(BMn_0l;m-P+ujWot#!YBS_!+62pP3d#^&d2@JkB=haIRr$g^V+E243>;!Yz2?Grd-o3iVhcW> z`7g<0Z5pyig-6cvvV45sUR82Br={Z%Pv+svvr6+TQSICwKHT~_(La<{VQ%rW-Efo! zAElb7>!dtu;=Sg#^<|Z8*(SIpwHpE6^7xMt#4jrJKg@}ar3{WtqbV9E4fnf}l!|YLxou~j-5L9~B8Ln< zhzMgS6?vuB=IX?%_;_T$pD-P(zWerrLgZ_Msqj=Y_@uqPwyrB?RcqGdn;X}c0lE&! zcnDXK!3Dz*!M_pt>2|UV%{xHyFmfmRWR_aW>!s&_full5c}J0zlVtNcCsI%XR6|eD zvTQM(ECLf_CmnT)K7gJ4<%qta|KUP~D^O(VQLCW8u4R(x`nI17Bfht3*35P15 zM-mxhGm*QXst^!MeRD-aUF=46H1j4=Ln)}aWa%+WK~F-Q4wxX{19q{iqq4Uw(oaNC z{gAbXV&CI0|6TeC;NVw5OE3%kDqXe_;L)dzV^7R)F_q}9x=gJ%YZbb=hj&t80x~#F zmcc1vP-v(C@cDteI(7Qi&(TFHrqxz8NPOjdQs8oecqX8i)MpzgHkN(u0#ql(uKP8^ zx2IS+1Xi*`?Tu$8mOPga$ZWFe4qg?is2HUVK2@ez#rB=f5JDDt9x;B0x}Q@SI>exH zhROGoHMozz?_2FZQM@%NX7wn}0CKG2gLP5(D3{ym+XmEma=HJLA5<9jah5D zC}C}jVg2(>pPge4@bu~WLq~f|5e-yw?TPg0J@cG6Y-eutZB+Q$aQ%r0p7bTzHh9Sc zukt4|g0^E<-;iOUC?Ye?=34au>4mbYoCbL{|2A zL-f#l2e%dr?oyVsm_<@(wbg_QADQ$W12DBqXccZaRK;lap~N`t#AxQ-ptMQ( z0M;oLUj?D5txkum&QumTwZ`;)4#eC-^yC`sk~LIoC+}BSN(4zz%aWEbcs2B|$G^zs zlIMN|^*9$}a9p)d`&$CC@6+}n-cGCd**7vp_kWtf-8nwCA0)7eXZs)cHl<$lu0-pr z-Ab=FlRH%q^|gGsIMCN+e{d&O+Sj%fUzx_BQfZA#2aH~MJB3(v8exB3)-e2h#icjor+!GY_I#>b z@J1LoVn}fP67nYcqknV$3H|spnF=7HHJ1ljMg%3FOwVEOP{P$n7Vz9eG6PObEU*69I)gH!_LSw&rhxqA6D6Y#?f8>6s@{LUo#|CGq{5=@ zR3Au+@CKWe_h6l_RyFvk$6pxq#o}aMyW^^|q=ES*DFI6`%>}ji<=nC;spO%L8UyFK zdh^7^!+asuwcwxH**ENG)qNxt^8P&KpvakzpZmNR!E8=M$g$l2<*oGxj*Pd zrtUD7KaiVR<5Tn8dl?A(KFR}i=I*whi8Fx1%F{=D;+uvN826Xkkz;~=I`2gHNeu`W zX=s-%xqGYSErCGb*4IdNi8nbA9oiA!M^9#92^{(}w(zW*c2mbGfA{7)?S`>s9{l(v z%tw!)x@;{)7p1_T=rX2j)ivx@uSc8B9XQ*d^Yo+e zFO#e9PTcoF`r|JRwzioqXveZA&VPrO2BgSXx4B=c)(0yGF<6d@F^M=0mf$sNeD~9K zcjM(+KvbK1akRg({P!*9CR2g2@s(2*7ROCR0JyvBrvP&Lub9^Lg%9H-S3H}-cEOB2 zwZ_}JeW8qZ>Y8O0T~#;R+>O6)=Y{EIzyClRtE(TSbUjtyRGwTO)ZVBJYu}`OlL_?c zAF0V^Ivh+t;b0v0`K$>`-5Pr#vx$5G9cjrWlM^=wE=3FuM0@p06%8Lo2t1~oq@aRB z)0a*p1peMz-`fFP_i-3pK5qZHEO|%KnvV4^h_3qCN+#$OCkp*D>f>L2?XUz}^R9L^ zQ{#?6RmQC(V4wn(94j|JXgis98JB|P-`Z(t75cK}$@+`PnK1MIQgFa;azHaY;G?ng z8LouxxIsONxyiBbSF!ipt1sFf1m=a&8cpgFoL~qY5pXG#$2U${-6OGjMZ@KF8@GAl zF;ntp8(o{RH+SNQU6dUq=bEmM&6hQAmVj(`;^h|^%kQf7u3z!d9D^)pZ~$x8Ucska zagukgVklC)Ik`2V-t>`zJ(1(^0HZi7_$QXr9=afMDqx{(X7TnT59P*PbufPMy7x12 z&R%B4`tVAQe4uV|ROKPmzIvbA1w6H-Ro~yrKPt+&sj~Vd%@X91rSxanSKmOujko0X zQfa?wQiYDz!S|Wq!l5-6x;zPTm_m*dtcJe?`~IY z7x?@SR1tP2d2&q76_tt|V?ysGrHBnRu-r!sInM=`L|jXy7|~FPR;xrsf8c9#TUche zhQgg??PYjF{s~PRf{I^>&L87PK1(3$HR^hA(<(C>8LEIDE~0Eqa9c|KI{?@W%#QPq ztBN+H1qi9tXsoyYNmP-WIxly()?K8WA{J#FafED8ZQFWJQ~j2Ri<;A_lU7l~>A1XS zR>K@(k=z~q?-JFOG>+6@)(vGbYZX;Qg`yhD5=kAR)O zZ%tL09`l~=Wo|IP1~T8|Q*ST)aQX+Gb*7{TK(QOCix1e|H8p*F59%>Djn zA6WSZpO6t5D&I;D8=F<2 z%i0=BMdkJ{+@10oOsN9|5eoJ<$PM*-q_ ziY6s7!lkq6{e%-r50NwK^yb77mS||a%nY|H;bbW zV}n3Sr8b&ip`y#t29Z@V(j?w%pC$%GbS#KQ>g_Rm>Wy%x6U5Wk z)s!#X@6J9)PS%vSS~P$_4rOxWIF{|xJ8tf>L{Y^LiPa&91ry3@L-q)9`lL->%w~K> zqjgv_8HhAcAmPjw?G&nSJ)9~e5B9fsT%;Xv*EQ%@V5mL5yFLCH zIolcoD*LB!=B>#sg0u{|nkQr5aN^u8=aJeFuR-NIQ8BX7&fJVX_-*}bPuoRg*A|U` zvEmkT&e!kIV|{-r>u%1$DrB&`KV$Y-!HnWpa0Lxa(7ovYf3f$TQB8JTyQs>eJW|Al zNLR4|3QCnOAfh0>caa`?2_=+(s0dP21f=(pKoTjThoA^ZuSw{k2NH^u&=YpR=Y7BT z?DLH?&N$=jeg2&MAQ=hwz1F?fTx-p8U2~RFTy1!bP^uv;Bl2!O34-D_{at{|P>YfC zxXfVY3S!Zy5MjhR^X%oFwN@k^q>NNNHOxfcn8=MSWinCw_KiHU4a1$`zf))uI#z<_vNt{9Uiz)D+NnP>wh&%Vj>inwb{^b zky`6guKZ)uLiZ^}%D;n;ungB)ZBb)dgoo3j zbDqG!<#QG~H;l*2lG!Zs&5`ng;7OLv5lM8!-{AXpBa5Z*hADS@6C5e9XJJC%yX2sL z#6%8$Y!Z_l;m9JR{G(P#D>QhChw(ghK6IyrW1VA4nD$`j7yq$IGaw>6LicwTtt||M z=)Pxiravy_Aa;3`9M}3N?v(-Ae^%xGHBMOiAXER^zTd#Y1V5 z$wTcrJ?wSuAnTs(ll>CrhZ-JI2ZsmxbRnmH>`gr@lK}7Mj41GyEKlF4-Hj|^bX_K` z!x#;&)5;bOiITO8h)v2;x#=0JSL&J9z9lcS%UyFMQ;(+W2HiiVW|U#J8i5qUE062X z=GK?Hq^M<1aZ3@|y-t3CuXZeWl2im~Z4D~w`EeF(kw3Cn&abtY*jXRu^J2#jW&fhq zKx3d{AO*PeyVCvr<2(Nxi%TBw1|oHGWh}Ao?iD(7_X0-O0DFxcDTn5{dbPGM%@=EH z{eIH#?H8wFBt);9xG>B8o*Ug;XfHFln3GDHf_N%73A{Bguv6&b9*}bm`FO!X%>vJG zLE6F4_?BBd5@ZY}UriFfHPxgu|2YCVGy>KrUueDQ$vU!-YvK-QJiFSI1E7q(3=SSo zzT=~*lH{0W6!I%-`ABd1$o7wsnKGmV#SqnEzWz>@=vqL?i;L>EKSWh~!8RwBddMVE zf`fdt*hyRb9i+=dG5bB>;$6%$gr@v=*Z22}1vA)lSgn8^>z~n1%`}@kZh?BkMevzPq$FbKp>^J@rg}; zW;*zrFZ@O1Xq?+w11Ls6A|$nz{w%FTy|}ize7#7Al3Dp-LD&A{nLVt2Tc=QeLtK5n zMmf!xjbTt^H5v_bC-z)O4nP#VqxTk)W3&86Bu*WR#QC;YjF1;?ub`N`WY8w+c_x?~ zSqVQ-VthJL0w*&#SWhNd0YRI%{`_1q@~|ML!8H3pB6sl)064f^>VVvgdziAd5FlOp z`lsdS@1cA^Mz*WJj$l&k-~x|<{;%ZED5%rptFCwNtfnB$>dxVEUTPo{0ePybv4aK4 zJ;dD%8dBofRhfq$z<+&octS8bO9B^gg)Lb7h-DNlpRj zEnTz}0;=0O_}i?kye-y|g1S1(`xA&7##TUEZ->Dh(fnRUL!HcQKJsdh@H?=4_4OS> z?&j(ewRY;}UvI6E$!YakczLcI>CHq*=aC=6vimhOFpmH`Lg~(D`qo69eN`*WJB5jU z0%fFV%4t{mFU*y|!*oQT6=zP@urF_<&RZ-tFnv1=2rjQI_IW?UVP?)e>WBN9T<|X9 z#h)r7>m@}qR|4%RKp8zCs69;xll8iH((cVb}3cEB-FQ~vdd|G+u# z{C%qNxD&^JCi(vUkNowaao3JR=KuWuzvx0Q3$dX;aJCcX5~U0ZKIT)NTeiBf^#Yc% zPfl*#JZc@!#>3-QC=&ahJ)b>6OKV=h_y^Q>+{ND){t7)B`aiEm)${+6_WlH~;=ij8 z(0&j4>*ULS{*U(dzv#kGq@3@XM}E4+%en7u3RzwAPAN0;TV;8}FBcZY7hYz+BlWsT z|G|)T&ml{sJS?}+Ci+R}I_o(DCG2EB-)gyz8sSaaoxKG^imZE$#DVwYKyGI8f%mfh zNC-LTOZCn2-co`_~E?Sy-y{ z*j0~5Ao-iFyX-+emJ=e4QY9tZch~fzQ>X|2U2;OKPLwwjL@F;+@x4GRRDrALMT5=W zx?oJd6k8HqKxT}t^qtw8o+DBOSCoVUI%i2rV9=aT)mJAV@M0s_Z1zVa$adas#>M(B z#&9MAsb@_}7yMO;*jyM=@M(WRkHt2wp$zcHg;AxrkH$aLCFxQ)_niutJr|1ggkYjO zB#c{7%E9WQ3Hu36b0e=1hQHf#dtcx3(da6uZEyt|{91%XA%?Eyv3yZ}x)Cxe%(34g z&-Y0yrp`~VTyVwdFuzg{uVG%o{S^8VMN3rpT#?`+Y4rHS&hI$TR`c5y6E&|lUv!Fn znf2=c78ZK)aR=$@w#7Dr4cI%*e9`*sz$L$MxNmp&^?C^1GXaOB#e~`QaeVceP;NW- z!J+G}@TC(T8P1!V)t0p_e;&ia@UKvII+~-mk?_Q+XTHmHBWZ2Kb1cIzzb@u& zDrLrygD1-L=P;Mz6P*ylJ@(X1htjv&ivYqZ;;eK*Si6bS2;e z>p?;kWJ8pKDGb&V|8@Pl)j%@JY#CH-rn(d$72!S@)^Yz|eS1@}0#oFM>rh6z$iJIl z@cKyvq#XuoaNx7yh4-aX-0mE4Gk)_bA5Xnh?68-|UL73qDP^<$1oKLtIkVcCj%;IY zvqRV!h3&+KaaUmPd-YJSP~km7DEA`)?dQM`Qt>Ayh4hhioBfR;7K0U&36H3Vw(QUM z-6glOlcWvKeIwA;+$8#VS823krAc-xaC690C9eu&yJV97fV#5KRvv|Pu!HTm%D~ca zS)z}38Itt73@yYa-?E9Vd}_EvRcy zo#MCN)+L5ngh);EX7`V=7&E0+&c=p2kzsRK@$Pq)aNT8F$y$AT8%_5z#>UK3=Gp!~v>f`;HTq^~PE z>sxuZ-nxo;4NlC>_reYC%#)O78O0GMB>dAY^=D zY4}XV`Z${yRZG<0K&c8XqFv=r^xGZ^V&>T^-{ROcF5JF5BWe*F!<0CT)rxT5=^to` z)<&}Lyx!9F5%O{#f-@+bV=(&WuEXRVW^G5|X#@25XBjB6;@ZF65v3xl4FzXAw1 z`;EI?{5u#-Y%)?McG=ACx5vkeKPmMUwTs)2OvLJQWzT-0kh2+YTEN0^I*OziEE;=yJyNknH56vPWEU%tJ$Akut=fyf8aQ1 z&K#M!5-Ku0x83|mZl~YHb)$ApH|^YktO=r-{#p}&RH_L7j(@~$C2J6Oj`FO$@+M65 z-H^BRH@oZ>CT_SSTc#Q^A3wp1$9l&nO7s40b;Bu9`S!+xpy7Q`Co~s+QY?P0O0`RR zul8LKMGLz7@$TFD?W^4CDu#nF|I)*Sjh%z%rkbUNNC!+6$6lwg#`xF18ClNe%zeWe zday?61^b#fBXAr+zUh|KRy|wbv>$4BshDG9X6t5{LGG32C&qK14RHh$GrxFsSI!u} zOWjj(4I6c_cLMi$HF#GJ%&I04{0$S#Yn29QHYEO6Cl&+Yi35{1g2Rpzoq z3WjOl23Bt1Tn8*gr~DF9#59@2>LRc=iKmIy~AuNw03cZnjS^S3J0`@JinN?uNz8$R=D~ zG}ejMo3^=;&FM5TBJkbnhx&vOpxD~M+ECH%NOB9mv;o_eR9x=cz|V6L8`8hS_RwOg zGII7U2|!p+`!bD9*f^)i_-9{)ynQwu6p@)ZeL1h#6gbe74k&sv{8@ObgjTxJYE{z; z&i!d#Sy{ngMM7T~2|Uw(53FH?j|2;}KRaWE(NW$*R+yb^S@<==OWvx;9|2;&GL_^+ zJS7`+oG<5W){Bak$s2YL$y2e<&28rEvo9s+AdnY9Eq^xIk`<)ZwF-=F+Y-Cca60`CNfeaYf5tIbJeTv_GWX ztRWkO4+$qGFzS6nCu{9jY(=b!x$erRKP<9IVQ(X9d?b!b8f%H4lQ%9Y|LD4Nb%$s|o(;epg``=sPTn>=w*@@$DkOY{Q^ z{HisO-$}?(q^{u{(k#VZaa?Vvp&zP4elOt~qtTF|EK|{I+_Pk$nl?%@GUm?Y$+Kj= zNN1T8Hym6#3|zBHk@bOBUiD@WM;SFq-+tF{q~T^JD4KYzbhx0NhYedSwiP{s9qfpA zJxI;D;#j1pg)F553)ykiJas=uF?a6Ta8_ckGHOzr-}fEv+%vUG$;>Q#(|(3~&~hV) zG;-<@9Z)i4pPIf8Z@H&nS8t>vXSE1_BheiDlJ)M#)?tBuASdPZ_{Pvki$)5$50_GP zr~Ru4{5le}08=I1spvl32)E`ywU;z0*6t= z2jaVx1+4llCEG1h0DL!Qk2tVv8vLV#+#)Yguf95F)nUS0KMCsE7B*H!t*#baF{ECN z_QF>$$e{MeucV79;1O@!z@Axdo>J~L846v_dc|((zz%V{l0XJ;1;4}H55YYzmqP`7 z*^4f4M;U`jUy{AUb>1yjqdifvrmd<2nzhB=+ytqg2WhT?n>Fc4-}BY(_E5t`IDZ!S z@Fw+BVvxLS2cOe&qiyU60>Qt(bJdkZ3$`PJ#i%Z$_cjj3=Q3&L1sTEJs5gx&Q9Ty-2QIm}9Gh zX!3ZsoOV47$fz`RmtG#LZ{7VZ@~vP`J^-c8_U)tqfQG1MkWDwGR zrouol%Gjx^AG_XCA=R@R1%3o=+7J&2<313lv(A0z*cfAQsY>{PenRR*L6WLm-j<3T zJ=i2e<@wP{Wp8@`oHbMg+qY+p+I?33=EN8NZ_f;XAfIoRE^}j{)fDt%yq#fW z{;!}$g&@$Y6YF8t!DFw{QR7*V%uyEOE_kFW*$4sJqBGPBLIt2QrLTxf9;9JIC@6^l z0N_%vrVcia&a(Gch=tDpPy_Wh)n1!n?&H@8Md-lB@NB?WM7^88?fcuC@EaQsJ;y%X z+FKy}OoW%F`Wc@TgM5`%07Y;=7G<|HZb;7H=+{Yr)rRO68y+~L;y>$eOcbqRAAXjU z&-LclGM@I-yLo*lRU9bThc^6OZFPFWmv!h$!JF6^)n@h?;?5$2+o9>rRMK;qA z>oSJJKhf? zv2o^fF2;EaFEnG{#_;n4npjdwZ^=(@#8F4AvDSRTh#HM>_lj^dHu?vkm*OcG02_xM zu98h{(yc@c>CIW)boH?AVnR!Od(7B-l7SLS6|d2|YFFZcjw{3V;L76kky>24u|dft z-rnvg5k@Q-29-%d|Bf>}_|#t$6h4pe!Xm%DyRXYkO{o_i0F#?9%j~2U(o(chO-Ly& zr@8pbl*kHZqv7v>OzuBsS(Sh3Lj#e zRmCslaA2h+X=X!YQSe0|dViSxK)f5Jv9gkU{-CS>_?))81SZkK4x#G#PxQveJCVTD z4?!_Leu8z88b38*qpL4KO=wd(B!b4ebhd)!#BNeVJV-r)vqA58poT2B&nne2loZwR zy5^QiZNW>^+LOM;PZgFtJm_3w2Orp_mRMSEVDvIA`Qy-R#=C}c8Rr`=^`D3e!GNvfI!4gSs(p+ zMHb`>Yc5@7s=eG`ep+&E)^bOTY}q{My48K8t33}L#z4YdfN~=6)AmGLRBghO>;h1| zYV*&>FD~vnPZWgQpTU)z<5M++2VPb(k;uOXEKwP0$)HJDJrSRkIwtaM@lPG%+gb#j zrJ^An;XJP;Ho&kd3r;lLlYNrL7Wiq$*~Ec|W+cqeX+38r6v8bA#SqEzFg$p4!LF+0 z9HzPwf^;Q2U-{DHQk}xeAgMj0Yk%Wu>Y*Cw@j zLuTA+c^)C_ECb|ie2Fyn>`a>Bed7!zzmb)Th~0UXi?v0%4D<=$x820?o1N7eZ|{2G zZ^J5u9V0?aO32udR9wNRz6>((9sR}dUkZmVTQru)ty*D`Tb8OZ_4P=rcGT^!0mF#8 z6yxvnObjJ(nc4zvd?(3=@ROJI0NIz~+!l%38v=@Mu9!N6(c?&PRpRY=GwktcAjEd; zVN5dq1VHL?^L_JA5b2Jvi|Xy;GyI{u0`2dnkLXJ!e;@r&A!!m#%Obd4r$rZoLuoLK zY}9*dlPZT{a|{@rQGnB5KcbL25ygnC(H2^rnHG*r9f9!@Bp~myTv-Adk}O~b8QAk) zRxniCmvoLFXK@e&=%c?!=k8%Rd%3yGaI{SNZ$j zMTK-IbZ2=_KmjRFYj$uYi%g&IJ_WmvICXg&86pwSb6tdQCCQc;S6N4e=@x2>L+n&P zvaAeB%j8U1Axp;PR;_7VFF}~hr%h`wMRC%c?3pvZCAK~4KRW8S)o2#RO@S&v>Qh|v zIfL5lu=2UQ8%S#ufjs+!U3%M25!Lo3W)wNj@MRZbUq0^?)SygucbR1Jz4hr9Q1aH< z(W^Pm95sG|snLfRfN?YXwb+TZs_~Sv3b>F%&pwG0wKi~)5XWI|Q1iXUl~M~aNd$6f zYij^x=mIZ{RyxKdlyQ%i#Mqw@`wb9>nOVdXCyyq{Y6mSL(z|)Teu3t^TeA>z&`C}n z7xiO1_1_C{3RmiA4WkhOj>W>oGoha&^la zv0bLg_WJm_6f0=uv`uja`>yxuMmK4AVc#bms3?=o3Le%7P!}8QavB%?;#$1r>vAwy zKwkF&wl4&KlDr7d4KacMO#__F(e4e{m4+L90tV_x)@m?veXC~wbu70A*MM}Z1<6Lz zvHuQO%1na*fko_B``yn#j?&y(p&f6J9Kwya3@iMD27XjGfL&J5Rho4>ae7qkgr583QP$1=2u=}_g)O;_fKNzxnVAOp^ z`J{jacEct_^7@=XUkEku;63HzKAz845PKrwUP8uX?HyHdLV{nq#fa%R^4zm*m43x# zITw|OO#9+~(-9o0L}!TasJiN#K*t=TtfKaU3t9Df7uS2O3aJM_nzriD@+R)$B+(}e zPlCW{%_ED7b&R7!%3#ONkJ+Hf=0hjq67vYpg&FhP1{3qBq_P~h8vd+y1JqT%zWfia zJtR+~hW+yzV803@;nfyG_gAL${j!`1+aKsd9^e^i{TBvMkd9Hiq5ds`W_5?pxQ5BJ zgj!w5TADB%k-0U@m>K!4t`=CN(<9XF<}3WfX`pImuECfPGUUQwZV?susC~@!l_GruVDxgaQE`2O-%8l@UD(Ld!Re>Nwak}!le)`9L@%SW zOViMP(vZ0i@fDUa=J|H>SHHKcS)mOEZrWUOXi;=M#KAAURWHh6BP>H%r{iEV(jJYP z1;1#5Q}RTqA;7)LcSIrR>^&W6GVc?U*9Q3|;*Z~cifLW)E~ty1V9W2ClQzvsg9d&| zniEVaRS={wuxiXq+`Sox(LgP_=pV$+RyYTzVPB*}SPdERH!T#*%KQUqZb^^f;}}5o z&jW6D=0|U#c8As=ax90ym6v0c7BpjdU&48XpeN=yd461SNlwFRC40^=WxB+Z^kVl% zz4NYa^=fy~QYlEps6KCDv<^HKb27FHsLzX!YBtf|(c4f1I^4xM?HfD;boxc)J z^MKAnQ+k4Ka2J-<}4?r_pUqG zMAuzJNMh<5lYt`QhTUoXUg9e$NGEpu%PlvXye+r&k9VG1rpAH(enfE2bFk#h+9zKA z91sxsA+k3Eod_Vl=_8JU-=B%igyrvxuoZ0;xde+>#B$GYRSC&oyOQ5b>P%b?ftsKj zFzdaCDaGkFH+k`Sc5C-NZ6pEVtjt0Md(4->U*myx_J2D;w~*=1C3 zytGRswwy5u@C8b3a}u=NeZMPM-1*CfvRFS~r+$c+Ihbyh-MTlkt>W|?YzfttuS0t7 z?e5yyDwtP3q&Fw&k@kl9KU5vnhfeBZ-MM<~W4`&=4uLkZxf9*LFD#cO4=XMXqK*VrT>h9M(~Ud^Fr@4gQ(LciaA5?X_4&ZI*y%ouI0_E z&o(4hQD0br9bG!h>e#N5J5I3H2wM|W+t;6sgHGulPT47C@zNLYe@i8I4j#|jL*(XH zHhz>T6iP`-Z2Vk1^@*@K^=67=;Ls3QVxfC_iIPrn=(~6+a>g~fb`~Ni9$Lq$Zzp*znYP4d2lX~T0gk< z_b{s4>bB76*KypQSZ#=JyW;U)>{IG~1nd4-E_K4?u{asQDG=^4m zW^r{;R50K2+^1UOqEf>0)(*5dihmQvL9?Yed}=I&8)TJux^Q9$v4rL=DgvxN-l=xvg)NuH+n-t(AUFVbi*N z^h!aA&*F`i8vJFLtexDPiW&mCZX9^9QS^jdK*YF*QXQy63pHl?!Zco#s?+kO)1H)I zi=nR$GQ^;`*>0>GX6k;xyHB{{@Ukk1SzP08(@XJ^m3r;v@%ryY%>4yuUsE~D%Md-h z>%!}M!sPqrklRu7S&NFym!Ieg~ome|CHRat6;iYHpY1LG`Pitzh-#X#R2^#a{ak)B$Pz z7)zuTDclLmMCct9g+)jXw>Gw;+79KvedF)}o69X1_!m~XV$t1sGQt}Zg0x7|n0ar@ zTSi@k)jK&xBeR*@6xb_g%vuEx@8{Fx+j;;4WNWB+yZvy#7|7`TK!FNr`Qe9gyXWH? z&%4^YS3bqaQEf~(zRwJ~rr5=GNrhxs*zj!w-qyIbIERmWDST4?K9{-(iAebc&<>vB zr6Bu2d?fwiVvs#sXP*obTkQk0s_SBCOn_N-3;tR zJ#^grS~HT-G>z^X1rK&yN+f=)u?V>}NX{UA!S5z!=hPyRyoNkh@G1xD%#!_J_`-7e z<`$wm0v)TXG5Ap4-|5T=(?k#W%%oTF=U0+No+Gtp-%37I1? zYF@U=>a#=?Lfqi?w}Or5Ng4$^IGjdI`geG>g}1nDLfKg>2?KY^O2B>@bOm&|U!NP{ zNo|JASrzmnYXU-2@=dVSX)<|Ac4_53RM_x*B|9S0o4QpGCcK&*lLeo)^;%e(g%(+| zdgp%{shE<4joZhHn=8en-i#$V^P5|Ucir85D`$GxdWKSie@1{oTb{?|-xCluYIb*Y zp-*6O#+2bV_pf+!(&?jVG1ikOuLlhKxX~^fR@CG5shVhtd;x04e zTl%h}PwbW{$=fRJO;3NWWaP37YO&+WpQ&7_Q)6C=GC^(tx8$0hccp%ANAiP`y0`J{F^q zV=+oAG4rQM)2!HOOeK)jp(@b%V!&MY6<&BXxe3(v4J4-_hWZGG}S1(XQ)sW2Ah5&V;u5sDBR8*r-COaKlQigco{g5Qp`2 zl@b317bWd$(y!tYL!=cct@pKRAzE<&?7pXJB5^KTkKB>* zb6J8;S|>2kX^e4|WA2rk|3{+FDp7^;Tgm4Jue%eFI*W6Vxv9V8M1xbw*G6joPu_uumg2yd`*_mw5LTB7=90K%T#ByUO7jAp)bNer3)|^8udVnUtip)>bVu-~(%^ z8R<&zgo0R*a(qlZlaT2U@$*4hJJuQHjO)n;0P(KSPgs!m!SOnfZ3FhbEIiVz+yu!j zO;)BeSFww7rafZb-5LQ6^nnhfHXU`?715QB3~c*$3kmGp1f$=%eVBFrG$B@RaMAlL z%f#zqJp3Vrv!v{1hvJae zvbkgl*?f5^JpQF|rnPdBaRc2_?j)qt{v~1=-!&1yT8Bj z`jF&*;Lu#t^AQ4yuWi1Rft~GodLzN+=GLS;$fncWHR?sadC5A;;FBKJA)REK_MwoI z@T!mrYoWJv21VJt;~Uzd@_AXKA%@z1iKA$Ykjv^RRO+_JhSn5jTArn{w{^Q_P$hod zO>&6#@91+XH~Z1Jjd$_1w>Rt(fBwN@ zU97z#JU+#anz$9NAod&jV#X(Et(9YaH}R)8T6GJ!`(4@%N2$1lF8r;32gbW8yY>cT zpgFQB^K{fc7WeBdWL)&?YyHvzI#6l+K9aw3`7(b={YsPg%}kor5`w0n{90!bj?LQ!mYL|SOp*# zMYY}Y_pfi?Mla0>#FmphhC%zz*IQ+=DKWESov$4C=U!#}H=> z&t+_QjFB>4`=2u)ZsxTx5sS|FTEu>c6j}dq&TuCJ8q@>_-FG^1U&U!I_`>*l=cQVN z^>fy5BJ!tcJMwfht`s|$ps)x%@G3S&VmWN2s6T&=zFj=QJZRI^F$x?fyHhS}=atcFMFjlDeYpi}L>CYZqZC?{^m7dv6f1Vt zUTcII6+1C}x6+&MxECpaTim@m7r}sBnh9C)n?cAn0~WeZhKu@J z_)h3Wd)Lg@VcK>!x_*c8(4OFg!6LO{B9MATT=-JT!HCU4aF|*Q`PW91*bS54k|cjW z@JxNI=GCPDv#t%*aI-z9&X2xOpXXY(khUq@o-MrMD8g~#{t@C6ex3#q^ATxaR95}Q zaQRn!KFg3fZuReTdfz8q0tGW|Lp!b2NL!oGv?FeQP4G1km(;tYp8z&ctBXDB+L^C z{6NwllR9#uoPb~b7dY0%3~ZSX?t1bPh;(On={mY~sNmUuELt zV8`%VbDe*|g0KEyyWf}MC~EKmR|RwY=UNT;hchzAq@SaPXuZ2VH8tfcFynagPx{W| zFaK|$hs%u9ax{5xeKxJY8v@-Kgv+Sl?Ax)aC7$JnhV!c8?YBz{D}v^2QPL~w_oWva zz{hvCl{^kGoCv+=t6knwUvMX)pBp@d zL|izYs}tt8S%KT3aDZN2ZOXV;=H6hX1L1BfdD|)#+2T*Bk!;T(2;~9YnTZ}TM4THu zg4Zqo$5znsJ-kl+)8md7^iL#lU{#)6SDJHbIlw4G8?(}{PPY%#8F*dsr=8h*eO?%6`k-ER=clob@J;iI+&XH>x zYz1HuqA795+6@5Z?G#7cC|r=GQw^|NW=XPZTJk5(0^bu;kyg8{TTptj>=>?8iik){|6}@ zz7I+&KyT)p0k0KqRiBn)E+zQ9>`;nf--AwA29IPUzk8nm+88zxpKo1uQ#8{v@AP!t z@k}|x9AKotXA2O#D|KV!YYh~74s=B&A1Msz zKw%SCv6{^=KaJ!r)$%&0^5R9bSipk0>q9&Mgm?#haqyTJcMh7%II^2ld^N5D5z+>JXYOl+ z?Y0;1T2RETAM3FuaaX+PdM@h7nI|omiAjw!N2D0`VlQU}C2&A-jo(2qv(u+j%e&nM zDtaXSdDtY1u`~HUgMRC+VOcmchwokAab~!uYmm;vUBYI@`mJDQ>##s8G5NY?VJ9KC z)aorG7Kz*OWJi1pKO8B^d$ZV`gTw&#L1>i z3>_vsnw{oq#k|lkB}_b(v>bbT0<$RoOxO>x%tTE&@=cFgPsLGiMj;HF zswpG6TKXEzPy%VtvUI1x9sg$p&gQ}J(TWKbWczbU{F0~>^IKDN5F80&-n2zOZFld| z68g3d1J&A`ZH`#iy<|+Wmm3ke_qNoUTVS}d3SZa0&WE%V2EH%%hB0=50Xp?+>{5Z_vHunO7KxlFVVSVZL$$T2!}Gc+D+7;b zfbQ|HxBe8TM*Ks-8J@%QNds=3(ua6WKdRwhN2?jA4J}?y(8U0JMZ}Ttegoh2U)QxL zY7VrMVDdA|Ep@wV*8-leKSZ4a?4uuc+fH4Cetmj=L?5Yi@RSP|M(5kF(l_noV*BhP zcTim4@Xv{FbAKYHuR#BE#FU+>|M-afmjZFE?q`cs-F?IN3|Go7I^8XL%};jaLTKwG zAmbtHetErJW%p@<9^*q$zL<1_cc5$N-Odnz`hc}E9ojZc+-mVD$+$PG+3`X?XA;wW805r?L_7u^1_L-59lVI4-&d}N=j`8 zyp-}Dekv7ulyX%Qc(AJG4k#=syKZeBhoj=Fdl}mR>u4f(Dw=N`@$%9O7v^ZKL@=)Tof?t zq(%iVeWQ97=puoB2Tw2Swte;$>G<#BBe2K6lbNlYe<&q2Fl+w~8S0Vb{~#J7kg;XTM_tXMVFfwX*JnP+=`u4k(^xKw49R5TT!XlE>=) z8-IGQl=s9f+UhFSgQb<<^4i3ke!Cab2$)r)e3R%`lZHd#Pm@X0iNtr)d;p0kvm?mr~%lan(CH`D6`D#fDP zB%zToRiZwhMop1a*HaL+g)#j{ zG@igWqK}=UXvd!SZ4^9Aw6YD5nNk=9+Ag{k7o&BwSqOyKNFuA&zaMl;in+{NNl$Y` zM#~pqMDbW>#yFGjW~vYg;;8h{ZpL-edTE|obJcAsMW$;w!2H6*(f8ek8b2(hWe zrhAcunTX z0SscJfPJkD*|bKUZpOX7ocrt7##xvz z<%1+{BfPFCignKC)9GDDX)ziSH`)7viQv>9f|@;m##Go*hxw(l^|-K8O5X)Fs5s~@ z+mC3SCXxq#(Ub0?=ITs?-^mvrdj}r(Bb;cY z9!Mzp6#I_}O*Sl>bT>R}kV{WbLdwS&U?w7HZj!2D+VL;SyQ)Py+u@MHGuOLgnBfLm zWZ31SXPH!ca)i>SX}UVomya#jg4AF~fM^Sm;kmma^JZHvsxE{4>Ct7Qr(|9mWIfKfTuYLuB-^IF z)(bk`3p^lwf7GU+Smp1h86eNBHxgLCD~TF&q8mE@a;2?_3C2#g!+;h+3!2}6rV&3q zzH0>7<11yiMG!LyFNOUDKHB;wqyEqok2+3!{XZvaKKXymDn0JV{~j{zzwGRzCjb8y z|1Y`8zy9%ypO{o|z%&@g>`1A3OJuTH#fC0@>hK3bGt8Ps&JQ zjo?J~16Nu3v_|2N%3s4K6*7Kloj=+Z8^MM&O6TIKqnw(we;Qs-niT%%{k1hW!2EcF z_=kfWdU&sV)Pbf^w%$6rx$U_>n&qKM1@*KSPptaUm%q6FoHIwCX>$Gl0k!&npEQLE zMrRUn=lYAQ-Yh^kwo20SUVSW({iroyMlfU#ymCAON$USzk%#;>XSl2Ml0GYU6-#}= zXL!|SrJKDXSIH&JRP+?acTw_19}>6s*n{nR8txJ2F?b6){mx&xt7xhGI^6Kar5)#m zrrphcgPQ2H1ndFGoO%8czU`t41*ms@qpF_`xG)(2lbTC&t*uoG6*$cvSTjdy7j`YJ z_h1%ofoJm|)tOOdk;cJdTNRcQwi>qS=pN@8cF|Aj;_dXN<@byThF$f(BR$z8Lf@y( zWe+(>kUrqh$t`Fm_Yzhc*l*7E>AAJOyv7{vrZM<6|k0va&Q|?-rp~UodI= zR{sz7-aD$P^=lVJ-HM9Bb}Jwtpdun5Akw>vf`~L}(p7rzEi^kSRjPEUfdmM>Lr?^y zC6t6ffCOnFfe;{sKtjlg?%%z4j623THU>@A8lC}_IFQxt_r&e-*zH6F|ZbT0I+f_hd zTjEd%Kjfn03~$J(XOA6!3%up%zX;^Zb-!!YT#r?N&b2ydtb<*Sip`Pc^)!b-wc{ZB zr_#O69Gs^^R%t8YjZ44OJ<7?n#ia*ewRun}Bf&kj0G;ly++ zv>u(~d~b1PvNGaLu;-TT={ieiX|fYs-NVJ(M*1CE&AiONJQ{zl#B-540iV7~OGrE- z@j~j?t7(NseP;iaKH9d8FmZXeH`Lqi@*T*<0@EI6D@$Qgf@yBn4Z^6#lL;v?We-~Y{U~K*u@JBg`VkQCfW6@;C@g=g4AqZ+X})skG5fvs13w*X zZ;#vMRv^HS?XLUipmRevoGN+JPfccqDmRE0C+=xz5Xye&NC5YV%e@4(18Wg~T5oE8@7DaoFP{^p&()A4i7oeUAuxc04F6hWhBO4zbNG(q7u!Cs~&%DWWmM8gV?*z5I?N zTTAJlbHegq7jNml>u|_Wb--Hb+A*`i10DYJKrR>M=2CRLn|HjzOn2Ec!<^%KT!`%m6BoS*aSlUx>h4Y7;$ZF5)@r=6c`9Ak8UtHtR zW1cNk)e18>5Ui7&^?H%(bpMS&Im z+?gl;fF+l8ul^gnPqW(6^+#(Gp&r@T@fVH?&MQ_U&99sMv*k4&)f;8wZ9QCc1Tynb z9&!PzBx8;GQdh?qJECvM-SsoJC%A)~)+4`uk^9mT9NJ*P#}re(RGgVH^9nA4+ZoqU z6I=%pU}-rK5_Is_EM>mp=W@lA<}A%%dpKMf$nBy&2`^j|I1YCAm-}#oQLp)g$eWMS z6zTMxu@VtnJoB`lgTq(@j9h;pMOV1TRT&(8i1mb*!zJ1&-l}2EQPNVDGCw>H_WUR` z#V0)$ee7v=>v3a*MVIeJ=|lX-$1k(m2<~Dg{H@)V7y!9vK9%*+92N0f(c*z)i?!L_ z8-5^Zk1f!{c3T;@!{#w-uZ&`o>UY}$YaoKLbNfO6W0hjO#ipX+glqnoZtQSS$DKxT zZycqp{O!R^v(%$dsromAy@6|ow`*x(&E(F2z92rw7<9V4=l$G6^=Bu71VP?SJX~Z; zXSpwt(iU1Wa)(;s->mGzkL?V;G&X2~Iq19O*SsEX#eBMr{i8xl&;FCTnAyW;zlK4a zUE+o#PR}@u!R$wUP(1CQ#*WlG1Fyu?v<|CC)gBFt23fP;oRq&*;0{3?Cn29g62o&+vY+pUJg^^ahNVqZC=05rJ?1$>u@sLuz&QSrh28IP z_D6e*Nm=e!w4}F`i-cqjZdnlHCQQ_bQlut$sao?XRK3h_~M*VnV0_;vL(z@eS55I%z^D~Rip8DZQ>cANh=kKN9evPozakwSExj1Gqp`fitc z>k`_rcG@{$OdVzxmKK<`=kEc|IQ`HK*$Rk?&$x6O8(OY|WJBI~c5TE0Y>_$@Kf^Bs zwTmXqKb}4?`-!PO--o-@Y+e889a#*2y``*R{dqth=Zw_jk;|omY)O`VUkrWY$7YE7 zNlDCv`lBUx-yH-y_{+t}crc`KoPD^ciiIO>P096ZOVAMXBGcvj%0$Rz%v928pR8w( zaluV{!Jj4$W3xj7nl3aSodz#fW{lr`aG=oE zpzU%D_f|GO_^v~=VD)Rrd+;2}Bzr3~m(yXmG-dhq&U3iB9^rQtDrR#A~y;0}Gx&)&R**$gV1Xv`^n{M&Q~n`s+%Itd%-q+h1UtD{@gL0#s$2$PF8S zeGLDQ>gf{%i+Xd{u-xbwF@tH`8QaO0>)l>%;PcGvDhoN+K_T459}*Y7p0gXServ#~ z@xsed4(z(jK?_{7VnqMs>%M6z^3;?tE#(t;!ecPuhy*S-0PX74K35u?+83_S@`(&~ z&yon2FRg`g$3Ny`oiuGrc!iZ9*uceV30{>ma+&c?xyshNGgVo~?=xGYQoCVd0y0H( zC4Sh-*=teDDLX8l+X@k1(9=d22MF?4uxq42N`oV!KsJFKedzqJ9-{qoxlOXd1Y ze2H35P*_g0W^A1K8hc^O(o^yeHSo`hb>EM_<@{2A$f$YuMoFCGu;r1eE|G@`+VRt} z{xqjuzRnlBGxX3j%v9vJ>9z))4~P8b#$vkMqa8elw|Nr|sJZWlLr>s`*)SgUkfn}j z3D+iqdZc|p7Ma-XY+PQjy;fx5Tc5M+(pOZUy#uMAS)@sAyU$1-=RUOla(&V-QMMz- zF)e>4?5+%hzu0bN<+yTC4E$D}LWY{!4akN}_7EC)Uly>DL}q1JK5I4WXgs~+s&fGW zV}FB`MtEVf4eh-P8cV1PWYkmFWWM{F{NSvux!e6o=e#0|o6z>cpGJa`=U#Z>((GW} zJ{1z*vX!Q!nTf4L>H71Xn#^1lsqyiXo2XQ-x8k!uq4jU>A*RnfbZGf%1-&mC6wBCx zDZdk7X4bcTNt`GU7;fE~v!z$GOy}*4k!e#xJ$pF@wW{a7=s)j0ra8)P5ZX?+@hfqVV_=?I2bSi)dEUs=}A{bx}|g-gvQKFQGYXP>gC?bO$=wu3ld zFN^i#jINz{pS>H_7VCbCe2v-BhR_^4PJ!X&fc_uule2CNd~W(PtjsxrvY1ZHOpaiR zSZ0u_g|Ae+9`$0ky{|)C%L=5y(;(IRK;iT3EoWHE*Z+=V<=uX2rNe7FUE z+hcVY%TxiPntq_p%~ao*^FYK}#Yz)83TmM`hsXJ_oA3ue2t>FDLZQ%*FC!O4+dDDZ zKf(yOzId$XdNV_AaI4I>xKVMT=-{59#}ioLi&kmE%UVHd)P~{**+0t8KKOq{_M)iE z^?a_d;NW*`=1+2?r}8!wYcrDz2$oxx-^!md4t!I-mc-pI4Frd5aM*jdw-z|VfL)rT z@a8C$0#w3&2f58N4fD1)No~Z)AAuOaHhJ2fXiM z`v*(;poEB@3&Dy|F!YJD_b!~+}q z^8aKZe+vEUQtp*MjiS0KEmwu5@+WCMg9maKpBMWc`~zr{ZZSzQh%2{UMK5W&}}mb>((>>Xm|EzllZ-Ku{`662e@^< z{2y-LUB%*;ugVYQFGl22L>g~nY9*djx!lK#MW}v;W@l`g4lEqD4gTLAs%*1B-u+NT zP`YBx3hgbqtL97E_p7 z+a=T&5Umg=IJ{tUN=+-K`?g5F!(yti`qr-JV4b>_LsfOhn4W=yeiFg~{aSQvXi=R8px5ggMxh$=Ht5c zu;iOA-*P;rT+0;ATl65DYhYKk_ihyCdp!Ee+WFV6vI1r0{&ATK09}(gikm~H?9z1w zEvN~Ef(Ne@H;Z!AiJ~h^@@SwnX44R}Er&I5ND}~RlxGy`BFRGxRlwEnr#~!r)|OUl zH2 z07nSHsT3?TwdN(blY<&HB z*wTQDi%`YeuG0Q;x9Jj0_aZ&|MQ1+o_9Ho1#yACK@u*a^p#Yshnb@rw8|bgm2sb1# zC4+C^YFwvadC1}knA?;O9t1wR6S;V2j)w=R1XZa*aoHh02J)VNo&L+_Dq=e)kcNa8 z#`2#a?4M{w-jKHF>H0WYZ1ZFzV4A+|A2Qat)miAFpw~vs>f+Zb%28cGgFZ(IAvLfC zwVC?fdBSUuhQ%@Qmhy?d!~73jtD2ppT%SWJLvt`Yq1WXV;T*sOE2C8`Jyb+o9=_O? zW%)?6dh=bJs!yfJ>}>DrEBpcG(u~fn%08ivXPr@z+9mdCU-Ua|-j#PK{GO}N_UvD% zqMLd^t}3hcFYlF7x^XkqaW2FznUk>@_r#OEJ$TvT!G%tff)12Eb$9h^|NA85Fn#cb z&;D(Ok5sK5T;rC0`ydA7z>_%ofv$FOh%&w;tcA=KDnuV({xW!oc{&;3L5l!HMZENh zWY|@OP1rN%&!Jm7l3p$X}JdV%pW1Iu8F5IQz zn~W*48STX(_6c2b_mgn#<@=s6_qfiI_MJ>4Cu6y&PQUVeIr5P0ZY&N7d|1*|psq`= z6di}c9)F}vEQT(j^eH1zoMZLPZ#^EGxKmf$q#Ag)EE=ze2RUFkXnxPrnsU{^ILp3@ zun~1Y$;&?kRczh&{*2yy37@7A1H1#wOq&hE6U1YJH_#8Si1DuV9EVXg#7&z%T+)q3 z)g;ZwC>B1xI<*t_gh8BOy^xGLFk*|b|h~Eloz#=q&$zqCN5koIka3JAC$tS{jIIZTUt9K4KiuGoL=v$ z@?Z@Z#k+ii@9QhkS*SHm`m-*TyHV^hJKS?@+SbEV_fnqfp_S_5nVE~hUT`h6o1yEoysRfv4tB#9Yp3Gzr#XwQZCRyuHu1pjbLFq9 z0>St1$8Y5O8$wSUcZ;mo*HZlBsoT2$#~{n9QGO{ge~uO9Z6qdDHMN?AUQh-KcUfh; zP#SsO`QGzz9;CXD_XGtRSaNqZL4~sGWc}mOM0%s;J9DB3^>UeLO!+n+^TFGK5X1I; z-I)=$7p12`%elYGwiH~1`=tq35M8ohVqGRW(8qJnC|jPHO9*lYewsW=Z&-Y3))WxV zb$6u0<7xYcyxn^sx|tni_(Zc_*r9CU6xl*LS%uw6*p<0hjZ(v*>c-%pU)mf_!64hZ?}X?7Xz zljC;1(gZLP7jL8jzyF(2M4sA%KYLrCF7xI@Tw1?om#q3 z(AR2TB1W&q)V|T%XBeyQK=Sevwz0sW){0dIj)9&xH$CC-MhsiA|M4gg)qyWOU67+^ z4PIYposWo0k*5VmCTa$AK3&h-i=yp`xhBu_j^Uvf>1nw*I75#ltqe?7RWN692eY&| zSdyY|ESoO1y#2|plD++mF*d7z-MKUQSHNZl6rea*^*YvZ2P!&7Q%4uJ699xes&}N~ zaO2Zavb5Xd`P?$wm0g-nK!ef)eP5te_CkvKDf^ZdWTTE?>4Ol+f0r%5$#bSl=Ob+A%vLA8O5o zu^O}==g7Lj4oT-UORC|ZxjE*Zw&yONd9%LnbHF0ldIWT)X$?UL;-IA&(FXJiK4EJ8WI-gfQ~!ll!u*7q#_Bkp~dj^IhJk6u5-%c z4IZDe42;QxJk4vw4tzL39z$H8FVb|lSP17*M(yKPPR_MT!0f+^N9w2PT>4qsRdvq{ z4|;Z1MnuYnuhdHK*ye9*u_^p-+0IM&hpc8}t^3O;!BE9oT#H17nrepWtT2cCh&HsA zo8DPu6*c5Jvw9bV`Isa$nU=3$|WA{{Q!`F5QZouJ8n7IVT+PL%@<2F9WI%B z*RQQot;L7!rL$%YSSF%eX=Xw0I?Yv@dtWW7@-tb3F45rtPr z5OVm9w6($qWFgeZp{K%LwQdzfAu=-Sk-D0W@a(*-bym?Q248h3 z3_{KEidIA4(fHJGZG@Ddtf%Swp>Li?+JH^a?TZds5eSa$TYZqKJ0H5bq#k+)^b#6d zT@fCA?!mSf!9{1acU-J8*=h={>y1Zz2*y9KuE?#$lSt-HybzOKRPCK_IYB6$bq)p$ z^$TpRow45aKY`){S|&s(P*MAz#*KE>`2I=L^$k5^HpfxRuQ<~R%a@b^nWoN4JeMi@ zdE>0L5cn(jH3CZ;c?(sw6E1h@!^S_o_`q`X_nysPMLl?v_ot)ihQ+VgM9JGN$&Xg_ zRc`SHFVrN8KX&Fgfe!2l+D+TdPd=S_+O$SPQtrjoM7*(?5VwrbLM^3=+A%}A4_k)g zWXisWuUlc1g)5Hf!X!%Eo-Z58))6|-WNP!M#cXsW=E6&h3J=BE%p{bj zyT4aF^xY3zd{QZw3hO8M<*IbuhFbpik2kRw{wMSPSHv2BKl#6(|9_X%{P!CFNZ|jS z;OW1c^WTu=|JOnA|K7(x68J9x!T-wYzxDB7kM;lQlXKZzHrB#pN{|Y=_a+}Sdcb#< zPAPw}POWz8YIA5wdEiNow?uSTruKoqu{>h36|SvJj&q}a@< zb5WFWr>MZ6`3)DIpmv;+!lsR~KDyba6b$+{ zu%Da$hQnb_#&*D>+-T%nHlMT6^^;GiR47mLL$*kMESF4e9)E~kOu~#SYt8Q6xfT2- zbNQ@%n92!OL2tKcEs6dSup7Gw`&gOM;JgyE&(Q_U09TxnE-XuURB;ap0NGTqTqbfe zb}vbUEmvIjoZ1dKRtwKK4sJZWQ}W&D{_r0OVUjmGj-;3Z#IBX`nAw}|fkJAn^j4R@N&FM$iz#VvEO z9k`0vlcsYKC)V(u6>)d^en=dQ`oC)rF}fVP%_~)T&`KN_zRDK)@wX`FAN>ZO{Parp zjMe2*G>w@uG2f^cT6VIvzx57+y>T`>!^KkOIOu_K9-H6$FOK<%VJ|u`R>6bqwT6PP zKtVkWn%BAkD8D~H^Vr{PU6C(V5}st~W{8jHC-ROz|FGLR@%YGYP}9IXd)iQ;ZZ>3K&kFlB#@8uS8k`U`utXaLMkLieR*CZ+S z1(Es^A(%&P^JomSTI@JG`(>f1F%Wa#ZYJ`>by86^gZFp?3Aj~tZ(ZEREh<4c+L>K1 zDi|s)3cHeNt*4=|VqqRKmC6$K2{HA4gY|QcagErjHBC})o-G9EBUlZuZwU>vJ@p;oNRY3J zBt@TXDg8*(lr@vIJY$)3Z+FJ>ro$XW|4rb}<#WbsM;NtB!BIQ+*@L^5Ejk&!>@-I| z?&!4n^rune-cL?dwDUi_$54T=Db|nxmajgu%Bo3Eew^*dCOicqDdsnbd3_T_g2Jtq z>%~%^pP9d(-zIISz=XMD`{vO8^0q+uOnu5g6(LF&kNSq>_JVJP2OS}Hk|hzqZzo68 zy^X~DZnW46Y6MxDnoIDOUF|o-yDddWQSr7?dt%o43+jo4&PE?YF7pOpJ%`;Lkt23G z_5jT=&R1Ng3yL|e=yV6kb}sXy-4DBuE$YK~;a4^_fMr_XfF4D_!LPeTrvdJG zrhIvc#;I=ozg|Kjf2RmrQhx89Q_>JOn`Xo#a0Y|b&Q>+)pi2yw_=>I~fDPIK9#3zL z=4bkwh&8#59Y|T%2Bd~ukLSzOP3NC9P6eO{w6^C~*dj%aqnWyykH?5fBjW_8s@i)& zkrc%HSJY581T_4k4uo7$WGi|73x#~MaNtFH@N-ykv?)|Q3Ais8dx!x2!0 zpHPI0HB6V#{aG$RfP3PzWp7;j(yQ8Gn7JfnIY~cZ@heCurn$Yk5xWgLmw*o{ut$3t zp+8YCmW~t?O0rS19QKy`U2)vcjruuS!@qDQ`Mxlk?wHP$=c72XD)70mtHy^#@6xrJ zHQdS4Y?r{B+B1zis7Bf{%1+e_ZvOd`N2p!rPI@|fChg$)B$6U&DXPNmQd#{VPr1_Z zBNF+KZOxY%tPNexGs{Jw-=!-@X#7h~9GdiHKg{-*Piz7%U~46?l0w9k7w}$J;VJ>z z#xMG@Y@90%=nv8icq1oBLem@f6I^!hU!^+E(ixAeP6yvS%(Z}4^II4?XgpNo(!dp1 z$)N2}54{C44EuK@7H{WiKS`a#%{BWzX)TFK-DrD3-r28S3#gje+J0N%rMeMbw>|s0 zsPbm&O@EzKU#PZG>zuV}nv8ritEaFYnCGFs)y1k*;JDfyqOmVK&}mxhaW+U>p9}Re z$W}})6lOTR+(sH1hi_fSR?=FGu_M9z9rOQq0HTfsw^Wx&ga>l1h0M;77oedHpej{- zTY=u)3?U_qZO^c9QZ+KS*Hb=5{{_iFd~(dmR?88B=~xtv^6LilSlp)?McEmdH;JA9 z3*=XE22py6!nidMtdUMzn(Isw+oc>N8Cb92g|2E~<2n|+*`~!53i!D9Bu^^Sa zF~-K$_1iRFj<8)|^ZT9S4cw&jH}AYGQt!u~acNFX*g>}&fsK$s(PLV|6%+@SU;GrOF|8AxM@GYtho!{W3*Qq!N zEHcsDO-sdPoT^}dS=<=Dd*SS*{rZfuka)GD<`vOqDpL%kCUKREd2AWkr$@mwlqj7+LR!RjkAQ_Q(G+Dswp)7Hq& zu$qDZq3mFi$Q<)A|Gukjb2io=+Q+%OK^_muf?XL{`byrI+|9NLP3!V!27k)#+I+Wy z&FK=h&7-*`KjOl&^z(GXM3QH|F^3${fbB=Ie&B{*=*Pipl9%>uN3xA301@L0w+1(2 zt^gK3_iij6wd^vD8EKbXoJ$s<%A3X}PW)6+GwlTGg`9oZAACCyw|-3;6-6qgXnlM98zflo|TOR#U*xV!2@7$HF0C3sypWyBX0no3n6%0w)o$zc>{D!GS3}Z^Yx! zv_@5>R@0I9(vRrB((ni3RXGYKBLwPLo*dI)v2euMqCCMR5&)J^TgQh1dDlum`e?z8 zHr9PQ=jhVuM0JyiiO7r2s*oN5UiX@w`H5-c>Ct|p*9a3G(ScD7D>?x#3pohj@YEwileBk1Y zYT3{m!a-MPct)FYo>9oneeuw7z@mvBCG3|h!`CbYWjbO$Yk#$0rOTqHZO5YcNT6v9 zo8zarNf=hs6vY!-F%l*N6LDz`YS%~7BQsoBW3VcRWWW|{vNTwZrBRZV%)se9W3RT=0*Z|*$kczkQ9bVdV2-mI*Y$s8Jt?4~C2+XX@a@eVmF+7D9A zxiB#kdpYzVOC5+vtuAHYjmsSQDl>jF!I%g*Wud}GHOI*k9MfPYOPO(YIF2tTx?dYwVHo2 z|E@!c24C2-bD;s?zB%$&ANqC4*WJLKeQj+8pXOK%&MJsFM=V(PN(36Y zl*6JYE;L5m?8MEU`5=?Ivyo#b9bE7G3-DZW8{UKSBH zhdPXB#;mC9lvXFXO^Jqghn<37QQ7I3DbY_|y1O=_PkF!(Z4L;0mZ+&W>DQUN0foNL zgS{N`-}sqvTQBJt?FDPjv8sJCI@G65PM4eTLyMbWQBlO`S^Y`X&xNcg;xsr_IN~{8d3Nbd% zfOgY%mtzXXwN>S0{@GSH`zG$Zk52#)CVy3E-cY5D_yzOVYfMiiWz2q)uq0={Rrj?J zFNJ?X7{N9324wnct?7gbz^Ww|*KS}YQm&wDUS-cyt0W7*_56eOx96qEVay>+N}|Hn zJ}F(tznvxI4gASr!9DZy>fWC3)5pvQ-m9vEjQUC!Um>{{aH#%>@|g|XIe34QxS?1y zU%|pw)K0ObI_k>e7je8r<{OQW>5HKOpEraXzLQ%;h6w1J!GNFi00t$M)S&Us^sdFA zSL-_Skg~L#BIfWN%d?dx+^2H=S5&6u*qP8}-+W!6F-q!gS=b@h&$VqU@wCsaT70dE z_b;M!m3-)#gRQC?FZ(oh?_Re#Yu6X}&`^^!2{osR3E%>nyAH@yc{7uhM@6v#FkgT506V$OwK@YZgZg zl{LXBX4F37w#axOtjm_#IUN!s=p5m{so7$`GJzfP38Vkz|LnXr7G6JPz^+#Y*W!lNy3LjchZ!Eiz){4 zz22AK#fni(>fo|jjvo$bV5>-q7V&j?6#Y{9E2o7M>IX z4l%%>wo76bZj|IWMBgQ0qSNWPFR+bCgqS_zr9-0Rv{?9{unc*t+yq6q7%Vm2!=|fu zcF!e6C+uebQz^cH0@cXq@A-ylkjW|liHISXDeh0bFtOqFc*Z<4^=1Vs zOW@d)!A6k>3Id7U>L_Y--M@4;DkQs~{K3pP$|bV=l!5KqJDlw1HnPpMUK6UHkh)Z$ zVmKE_jUSKDTYFVphOuU}3Hf=(XMApR3GtN|Nj6x!#Y{%uvLuZ^U z!DS~z-&78yC~1_)D)BasaNq>!$#s z=4*t?10uszxI@)m2Bx-frTkpc1_?fjP#mC&HL3^YgA2yyLwe`>k2dsSE&=Ujm>Y$` zMcM`qd-utt5w~{6P!MP9QCK_ux@MV&W6D7(YH6&&6_?iUSc4;*di0&vt-!Yb;4pIwj#qB&Mam%4c@5jq%xEuybEr>QbOxo$Qwp zA7sSNfpYi|?W!PUNH}RQ$J8>Q0>zhFd`E>6=J6HtkY*>9Kzb`K#KpI7=$80E-9L9@ z4@+ALmfzzyIPfmnfR(`q!l^9ca)&;ahOuE6Z&YZSVv(=EX_(sjt4><`4#pq`H2NpWfYv`$`vXdKP z2hEf}DNMce&!xX%D^pto24Lh3!-TM57AB|+)Yx6-MJwaWoVY$1d~=43Ev9NBCX;4Fg~4{8 zvsIP^rSuLfRUagtCdzwug;yJHKO1w(2S;!s(U1+ZJSX2i_x)Ih(m6Z#Ptp@AOQ)4d z8TeqwZ6T#585A!jvQLYH;yrEwO7sje3Z)8rh7nns6L2T1#5>gmrr(xu9NCz&#x?Iz z9zieZaeliN2k%fZ?IZO6l2bnsLsr-TBP-^#D3?miC3QUSI2$Qx@TKpn&;#bEE=)%7 z2kVYatttiBH$9f?J6~s@u&@@YP^En&B2kRfd}AwRGLqP;$-dP7DC&AA#6f*7r_Xx~ zVWiQ}H+-Z&!AgnwRM{*lLLVN>(dyGfG&5?zv*u>jG2+8xUR?c zhLf&Q2PP7z-7@|IyqR}&Rqg5P;0qN`>rKF^`MReY#;mFmf9Q+&QQ+c#CBRuhi$Nk`_Vkr07!-6!cryMaFFMx|xqmm@Cs22;y z%UuvR9ZQ*LcboF8vgrJSq0reC;T`CO=&$*LgJx32P7b|XLX$#j?oI01^5F?7A%6IB zKk&-quCc{8>`JZrYlTMkV=qtZ$<6JJtGc(*k1ZZ^zz1_l^=4}pJnB|>1tpw~He?J< zrJh=7SgKd?IYN{dboiPt)JClrGVD66*3>UOh`FSuucyl%v|=v6T?;hjDT6IKOw8~;!Ip0sBmQ-ZQjm+U(rzWZnwX^Z~U#0&>wdP8V`0A?)0C2AcbHWqqHC9`{ zOSj~gB;}i<7Tl4Iw;F{MtW#~mY0tG&79*Ilf(@x3@0nk-0t@rD=B#$*q$H||6Vdo+ z&22N3SxH{kW?412N3pofq*3%b5OF;6HZ1Vh!MB8QO?Icr(i@pW*IY2X0Ga85e)XjI zNl(gzrcPW#*gdiX1QNL$^tzZs-lMEp%S*gGLPrxcS%Fm1zEjn{L;UJ7kVJ`!@vwIR zu*RC>k|h^9a+o@EsW*=vB)JSfER}pZQ|+56HUmu#AtDvt^kbHlL!BbB!W?^LXxH8U zu6uYs7~%``HUQWHOSIDCY-^0Mr4*4fi}@?*q|{I@pXDC0<{KkZKKTTGS=?ETjP}zJ;~7va)J18am6$yrnl0h7ug=toQY0DZt|id)lA_!v;Bl#Q zIWBbn#qu&h)b*r`g+&x06qWc zT%ardJnH=;A?SHkvNDnMc16R0YeabF_B6w^Da!Cu-M-LSwwGqVq3Wf}$eo?~;Epw( zno%kKQQ3V+htgrzk{E^~dVZkPjM!_v{r#Pm5bc zbf)$vr{7QJp@krF>VbKS- zFMRcw)<7nl6rLZ*8a7V4_-2dYhttHVz{6pI84)YP`*XNl_al(wjt9cKd_E3wx+oUS zE9wTd5p>L_yZu{1x~|Sw-@F?~5TarddScHAy+E#X|VA(vUb!N73;+IQy2Xn ztg1J`m_^CqUf*_9zJ05cXjuSBKR7r@|53ZR>6_{nxeLp@ayNYu5X#l5;jtDtDx-Wd zr}cC_FK?vFx!v6BU8nkt;)n1s@do;!-<4^tC5L+*W9la109$=N}-9<86e5OfCg0c_8yo|J~t z=baksE#uVDI^UxSN_6Kk;FwUG?&PW0+{}x4AF~nVpf1#-YDfs@_BkDW*cEYXMP|FI zIVIcZek|is!iNtxZl8Gh@x$uRu^Lg>8R9Ko79X9I_h5f#pk=qxR?MD@_Rn|p(;5+9 zeG$CR?;nMccvK-(4l%qoNr;}+BvGw*n68F!-vi0=*vHRP4561$$C>`|W|4nBRCc=CD5Yk5PYA593W;ABJ0No;OElK~Gu32@3B%Q1k6e z_toX}5jC&=s6$!%tAntQExSG2^`2)HC6+;S;F{Ccl;r*DF!Oz_+|R-_s1dJCF!s*; zXG?>p`iy4AwZ#-qxMe~4)B7idDrwc5LLVNbauQ#BaS#h4JxjIs@nVWJu$y^t{*qm~ zp}KLM(sk1EFRaOKQt21_(cT$~!+g*D`S;d#w_4n|{BLGC_CLp7H}Q)~2)*}OIoNOc ztD+(i!uS5{NzF2+#o|zowmI*;!0f$hhJWDduZlar-~}(vkI1%{z#_Pq`;=44a_`|r zEY_cUZ+r=IeioUlT5`{+&Q$Ca0V*SWq#(yI@7}$(&&aix)f6wZc~g&dN%#KBfQL$tFf%%uwoSdFsSwA7e=+SE{jJ3sx|KT+rY{R=|J zy6@i)T5_BGi|BQmU(Y+|?TNo8xb`SzgFWbx!pt0-OAZ_}q3enGMliqt(Kr!teD=lu z&s_?&Fy^9?>RQ7^<}Dt|D04Ph^1;+08PJZ2>7gaZHuo;Z%e`p17;HSdw>35+>!J5B zM#D^t%5yWmsM&GjJ@I7g2C_k#5IZe%n$>S}{Or9pXW+Al=e$Uef-Y{<-1hM>Sr`Y& zO%M$9?U}M4F%|~{H*28kAB2=T5Uq>A4r#(2PJ0V2WmO0})_o=|^$u51Y`1`Ch zlEJ0fW%Sx6vv{I=$~QtF#KCj?#N3OP(ePX7g7L{R&MNI@yGPx$#y#mJke7b$j7T3x z>7yqkxiOKF;!%r8;RleU^G04SrehDg#j6NY4Mx@;Kc&unnjgKSomjo-6LF^N#$Ho} z_!qj#(oDT{L96_d{!{N0RGD$yy)>46s_{*|u_SH(>G-z-_=?7@%0>frcQonoU$O7! zhIn}V;^2Nb`8!l{d+)_-|4?r2q^x%J@#y{PUr$jbX&i+?1QbtCXB_tkJ$f%RuFdV7 zzOiPlxb?eBVz)mNLIq-bn5`9WEDE>aM;p2aq`bx@Z5UlO10r{8nNb&?t0C9o56>kE z9@itx9pinsvwB9PmcvK*A6h#fK4)v^EUK_t{ob$l6<-cV3PhuEd9cp*{=d6}-ZGEI zMl3>_fPj`o*9Y>xtEZrF-c8UG$p%PFAI$Ff0Wti>3hTTC{y8t7jy$`1Rid})dEllX zZ@O?nJ6}~hXA&`(fh&ZwQJ}rs=ez|J-&t{0&AheU`uJ$buC6tQxon*dp&<2Ph zew?a3u#3DE68$>Ie(vM^At1dS``R3GpS-T{Y%yaL*!hCkt}HhjZ8Gn9)t+nrcBn)M z&tydLi+5LT-+nYd3Thy}inY&5r5 zh`%K)6HA+)jR_7C1Acl>^8r4$JU^fNkEx83u6FL<|EPah_~Lh80^|7ee-QVUVNrHb zpr}fT;2@m?5`uI|$4Dy(NJ+N{(mixaBZx>zDJUS_J#=?>*9;8ZFbteQKfmvsd+vRn zbAR0D?jJl4`<-|1wbxpE^}F}5>zo*}c7e7zTOTL>@sj(w0i4T9B3w~~BGa%j!*?{B zAqp7colL}XwKF}dH${J#FpD~ibiEmi_zbfi#5ux#)S5av*8I}O^yXfu#ZSjPfHUnUcMT1ep4u5(LI2>~7b&k#MZ;J~sZ{5HxAJRX8G!?rd&+io zN8lka=&}IoTM&w}sp&eUEc##9P)Egf+3Iqovy^hn!o9AN|M;r;Zkl4ysBC z-NG=q<4Wt@>rsEXE$u9H!Sf7`V92uRD_Mi+=qHqnpaSJ2aaKc( zhK}|jZ`hmXz72dnNabvUk=fC{l2C=No|rYK4=`3=9R}QkS2(l>H7|#grL}t(e;vnh zqBNlsuH}=Bu!x3+J>=T@NV+e3GlQ`x)07&RdU!v`b5CYA7V{gjm|UwG{u;@h5Xll} zQz}?JzL?7YQd(L%gyvQRO8;ys-Se$r27RPll1>(lH@m9AP9E95LtLn*k>b&PzfYT= z5~O57!#K6su{8+_9U3htXN?%Bdeu^tm)2e$0~{(fF`j?EPM%}9w1HFje0H`${4o9d zD|M=#>vb^IVH+-(s<@nJ@9MLD_BSh9W^=9Xcg4eT`Y)iYCh9cbvgR8##8)!kMp%5^Tpk1zoMw7h;`qc2Q`K!&Z?vMmq7n5i`R>cfeaerchUBI z?l0bmQi_mt7uXFpF}w7T*jp)+`rIsmU~b5amcS(f~iN^Ha^r$>ejv4k3IO=_!QS_e4 zR84g>g%3AV7po;iN&2sFZ`ffcNjMdf0d2Ym3!ck9zk=%4?f6wAE`OHVgRPj~JaJj@ z%ug}wjDmiW3n`vu7K4O>?@a}`=vwn&u2ZH)CZ~OkRD>_I?(HpxAcD&|&Le_$o%7ue z0VyZa4p{zbCG>s3lFZNX{-2m8-{jqO`bx5UP9A-z(YiA$<5mG`_8G4Eu_1-huFfWR z5<^ip-tJeeZ8^hPr!JARST|oiiD#yT@v`S+$_{k8TEi$Z2W6DTs^}=j6)NASkAn)z zeof_{Gxx3czEj+;6{Iep*!qwzHdXxn!>)vWCh5DYZ2Ew`w;KzW5@Umf4-t{8vB687 z_K4?wMcvg*$KSK$%5~5ObM?($Te4dDtt1M5YETXIUpb&J+r!itC(bftorOeOoL@ zVm(-(OD2ifSe^Igw;A8|#J?ojBp(rf;;=24QPn-*?q(XNh?uV2Z#F*Aste9R|xG?oi!@|KkuMmsv5u&|3YkbyjPW_U3liPw4@phIxdo~e^# z*vbe|eNsu8BmeVLlgON}sTJE~_vBUh3BNYcZkz%)(?*jX^~Run5U$AD_?C2vajXg} zn5tG^=$=zUVqjzZT)4kWz*!4!{mq2xqB-qcL!}cR2@yO9(z;h{mk_8@L@fNK?0u2q zx&6Z39N8JnWH*2m~aT(^j-pzTz1f%QUpmq7~Cktoe9Y^ zZTd;8KvDNu(3PrrcCG5H0T=1m)jU&wXD|dkj&gOZ@;mg|a$tK9w(qt2ocvaO)p5EZ zsmgni5Viv0%ICVt$31#M(-EdOEtXS@J6ICCJWj*xtHsvq*4u7SdFR}>a)NWZ2bZ%l zI8(BvF4v@5rlZ5NVPMch0)z3AJDLhlGa0U~PA}Q2NaBVO@IU zl7c!p4s_+CR$+4uPq9;{tu>yJjL@yd zvrADfrt&Sp3?3)LeZ4*P4}UbX^CHu|(^Wx1$QZIvS}9poHZ+EO=dS6c159ku9Cy}qqQdY7I_H9V(F`JZP)8fGt5)Zd9Un?Z+7Q(D5up2! zK&W-1yOvAdk?}u1UkJ8k^SnC9nIxWQ4BMqe^x5lOzbhvu%4AU-;`xC^Uwk=VqvAaa z0$&h#Q8?qMwb4Y!N_nvJw|BEkPM+1iw_7Q*;7GgTr7<-WJCC^3U39yLR}gj>@vu4#ZOem8KFubX~5MwJ_rMFyoUJw`XVRq6_f3H52DN~QQ5h6@X z7%0x_M0y=m%}9GTCzcOrcV%WK)tg7_oGzc-(5^lnwg{X-a665)CXyT~WD5u5?m4cZ z?mdu>qLqU?R6Ptn$uk{|-;s&0b7Lk!M`pZtGLDvv!X9P`GwsB$Rh;k*uL=wVpu{ly zTp1;fhsHyQ#!aEJIG#`;(@6sZLl-AhIf6Qk2zfDDc*f1pcQHzYG;!2&m zRP(514d?mS$oxR!%`VEah&nN>h&^|nzP;0ZpCmrMH9bdIBZ%|326c5RJVZP^W2)Wt zRVyfh>vB0=a&JU653BGD@kV#55&Mj-36?XM4p>6!7UEs7mG2@S#Lp09{L#qI{%GVH zkLsPMGAUcdygHv`nB-_m6vRo?Ds?J+#dbN>D4&ysUvj)_7Xk!UP?-2?%wsBN@ zzZk-Bc(Swl62|xQ6R1t!bH5|!Wn!Fd2xM#NlA9Y-o&#{W76?w=@akET;>##W9tdGge^bTMJ>?Sdkt53a3QX zMeDmdVabCuA=y$MLuj4);$)f#F>`)BWu|T256L(+#pTd~!IHKt2#W^pdHplUscH(% zVNh6so5heXSJfwPcBk>)>f_CV@15DZ37B5YtD*MyD;4}Fkg6Ya=j4VCDCUR{F(_Q9 z+)u>ycwDTS(`j8^B|G)@lT|RR@%)-mnlzDgIK~uPliwh7ET;y~KHT-^=eN0ytbjV} zmvj?5tJ=G)B8u2=4F!U#?!zPnsRk;7MHk%451y{35=F$O_6GZ%9*YTyyEnMz1rM)X z6k~^;$LQeEd(4GF`AOzj)zU#HX~A}qc<)1Ayi7fduRMaUsMQY8;*^mt-jFHmZP3e& z`y(CRS2yAt07C}O^4p>U26RvMPGevdO^{NeWwNChD`x-$$bQY| zv9g0Fn_)GDBZ{F%^gfbwgDXBLq?1s@J{tSS+<()>M3QM1@cP7X^dLcZ@ z*u#r&(=peZ|EtDNCW91v#}`X;5QGA5C1PezqN=q|5kXwWI2RrtxDjl?5M>uIySGQa zq3~GFZ)JfaYU589<1{yfr8Hd!m(xs9LpwyWVW@!9#H#J84;lF}#@(~h1TGWf zrJeNEy3_D$9Ngijw-UEXal&{aV98HGbO1iee(F@(W?NmWxlc-YFMWC2!edoyj$|W> z?uB7Q9cT4Dn-Il^m$++2cK%T1kT z0PRA`wz6OQPb{ZMIfE~Fr2p7)7HS=tQ_oNyt@FmK=j{%8+kWH4pay;6dpp}k-&@9q zk#DFHNm@rAO)AUOiPNB;qKAzECK)56hw}PDEvRS58`1Kw8=m&uYw^p?8-( zP!+7b9W321{BV9TC*e1yvXc@uB!cb%1310fi;?tIKfmoT4{A|=bZVJD2=aF)SW(Gy^YEyJLNw`ME-5EwADqKpwGVKc157h z1&14=(=(iis#kyiK1I|u#a$~-Rqq?N7Bgc{h)j`VtjCL)THazL{wX9-9Pnk#-R@;y zww8FAC4x_5b`U_m1wORf0+#|=^w=7C1`)i^u0 zcf4`pYU0%7dcP5Hma}eE6wf&#T1_&=t+WjU!qN3K@W%SG{iUMUaO0Nx&V%Q5OVpGl zp>oKGy(TaxsTaP$ulf7=iB9A?a(e4RQ`r+|X#oL^E(0COWi9BwrVKXP=jl<#4eROt z7vP1+Wt^6IANISzU7ve2xHd%GQ=0?wlZaPqIN;L4U7>26g?7pKb$2!@a(C?qq|qCJ z)J-k-0vhRlL2VKR3f&W3^s9SzzJ@GV3SpWrh~R^zuOdk$#TN%b_y-xEr$dA@Jrb3S zGKRb*yx(y8>`!nt8>$coW$6CZz|KT~*(@+v@7Kg(S({r#!1H z&JQ-5NmF}ngOBFInW3?rsH@&Q72p>q60C~QPvRO_1|h?=;B%p`Njt|I?R<39QaB7y z*BkeHU|I62*rQPQO!_^-AnGDQ%H=3%5&L06TuWX6JgpIfRFie3`=fA?yHUr7u4Y5y zy{<9(6;Ztx34@aIcO|rwl>H4c)#WY4QPDs-{NG8pDV0n##(qy?C)qSI?oh&)sz_cg zZAFoSGkiw}mJ$}FO<(#313t8fUGaw}rZwkDQ}Va3&!XJq*t%_ac})HhMrdVH&v&| z)Kh{5=KU2{4P1|P7cY^6NV17!e8U~-NN*%DTTRK*(v@-S(4EYMFk~X(jw^lzrc%?K zZun_?pw`%yH`4@L9h#JhFzkWLD>y%HL_8?4P9(mz4AsR9nYXpQ+Jju&KdUJI;Tl-{_CSg|ZB+ev zcFfso-E`m(ZHESU=+?P>mTE|vH{uL<|ErOf+UpE}o3Az^a`auD*gHKnc#kGxhm56j z(9^uZpsPlo%O%RIZkv!)_By~C{lG=ow8wnVxaIr(R}-)>aDxX)v}@S<6iM_}_HpN2 z`=F5?k&V3N44%`tDC1cnaFu(u&wL<&DLUuk5lRlQligvY%P>_iVLz_*B=FJydCf&N zLebwtd~9w@$HE8qD^UhTgA(RLmYJvvBTgOba#<|qPT%5Ey8{=zZ`iLO2kdN~TXf|` zdSjs1y%|UBvBgLzl-uSlR(ZbGkj8y;G0}*f-t47K@d}g6K;g~m(fuI=Z?X68N3xMh z;U3cJp1hSW2AU=tpTQ-k?MEtO11ZZ%b{CCvVy{3FXG)@C&Qxi*l;}#&k-PN87AS+x zV+8{?Qf=)|D)*U%|9MeN73!3cQEpRvLZUI|{Iv`A-ch8(OaEDV>UH?D)=!?)9Xi_a z{tr#2b}hxdJAQ5UT@zn8#fJ*p3^uRT>>2g5wwFWJd9RluP*G?|b(Jofdbn1$PD4k- z;MurhCW0*vbfDU&e?t8x_hd3p`{LeY*aE3-4XITEC@`c}*2%w^O$V<*xu9y2>nOfO zJYnQ|f=oz7JRvqC|HhuDGsQ3gi4}cn7cAUfum1`;xHS0$Z&k&`+D;p?WaGs3ISL+} zkkH@J0S+Pccoo5^3CupGiBeumdP8;r6x>mOf}gXiv)b#@uoDb_ylywefcz;(o4dd3TIc+>&6oW2(5ysddJUz?l+v~;VP9Y?gs9~($?6%#nf5NZ{*O>6JR=&Woibn#DriR}>+nl24hmSpn&|$6P zC5Zmmy~O&pO9T-WEJ2$YkCKZsS=jYYFO#aU3nHvNCU&cR?An9`SvCwfaAj7(k9yAz&rmrTp_;P)(#QS78Hg(0AP{o3Prg%# zyM5&;;&WVxraf3Nl;tx%w4@&jV7Mm0a9C1M^hJUWxT64wTOxP?P!H-I*6hr z-iC@$jfG?w3zaH~;_gjvKL{kn6z@FeLPvF=8mvo`>aNkky|1_bpc?Ga%uO$if3x9m zb#t>ABJFqQ(|flH;!l&j`Z$dz`k`6iyfLkHc6J+SU79=6xix-KP37QssN&C@ zx8)tv4-Q(=}s=M z1}z$0R8pab_{ey5#+;u(d~(b}{-EpXXI9pX`Y`vMSHGuf4?q!wCG~K>H8ay;AWx(f z)7cc?5Ncg7w5N1jV9fgm!vREccM_}o{;nwe>8*8yzo={xz156|9wo8vs%f%pg6aE* zenY0W`Ig@ebrq$B&kp^$%QO-tv&6nc(>|gyETq0v^rCL`c}A4lub=S;ECBOgf`_+P zaf*F_`jnzg{G#tLwPr#sSY7AsPRj@$bh+RHv7I$+5pl(8P<7mX@dxS*dcxny(%Zq8z4)hfIwQ2PH}&wmUk-Tqj>hST+D-Oi_&*S|2gG?a>^RJu^0F$=ji zg%^dcM&S&uhI9`N-}_tCLl{6j10cKY9bN7O$O zD#N65V|ZC`b$s5n%Yw&|XJT%?4J~bEjz3)IPu&eGpBuK7Sp9nN7Qs=0lmxhT(F}>SE6w z((0PMIPQv?wyJ-C0has~h%7;RR@tlhIBBgRA|{a@wbvcG0?`shs2uu3++FQ`niL)w zFn>z(MH6?Tm52ekIA+2X7|X;m)rv5!-Ws>?dI?o28E?CNekJ6*%L@c;Oy_^zADkpx zSS6W5y3|@q5otHxAtB9%+jmCE?dnaZ4C!?epP8IesOSpaM`{)bzClRPGNmgaO{Q8#z zqQWYM?N(yXz2`&Ddqs+>4kkNur8q8)}OCu6D>flcFS9a;L^qfIqD1 zy!KZ<<`Cu0?aH%VSw1kJ_PUpg-bq5p`VINS6lG8oiH_F<^dHAw5bk=|yT4dEsM0iS zhkI`OrJplGxXzL{6S=F2E#u3Q49pz7ioTzp_fB%H&&kt5oN!S2B9ZikM;rV-#6vDE zL|2#B_mAJJ-hIhG8KZuIj_bSifF zCmpwWDGIJ}% zihN_!30LN^naR6{sr1!PA_xNr$z9pXE^0|qaRDJI_k3!{v%FVy@j4LTs;AG+;V&$~ zz%1Nc+YrFdbvHYeN=1>+4&6X*Yn-vxeu31&3CnN#3XSa)$sGTRS2>)2ci{Kmm6CPn zB1Ats5|#%HzKcm}dL2O&?}EI_?$Ro+*i7M=dUl|`ulC+A;yQY;e0jHb0+q!S9ia3f z|2p#>#_$cEvtVHw0!ZS^D-jjs(!GABH!V_m5<8ZOrd0L52;|cekjkjNGVA}3Vx{<9 zWradVoMfseSWY83$^d1`O^jrD&r$kTh$$ZxyE?(7%qden`Ddn`j|pyb?X(a*sjJe5 z$u=X|z)J%v({F0ec7u9#XOC$=*BOgcqTm^=&1p0hsO&tvtb0H)RypeV)2OcSipv`7 zA7yO$SM{oIsY~?66Wa*$-xhd^vx1>Y)+1pyQ}v2W_sVTYTe3{Xa`?BV-%2NgKVYg; z@;5W9EGkVK+C2LOw%7yLJMdQ zV_HBydseE0s%o&X7|l+d>&o)F&BR|N(hzvvDI>Km-MshAE=W!C4V2&Od|4?usyVl4 ze^WeJTwTfT<0=1Ug|S!z+eXOKg!8{R&cys{thE=odw=)?NJtOPjVH5$}c#kCKj9yA5wzn2s7G8LlpL^0$v6o`El{+^mCU0mMHD zFI{fylU#}#`~tDUp(umQ)_M{DSiZYt z6|eJOpfLUeY8~4G=oqqK<7PW@m=oZ%j8;<8(~%LvWc;pNV#Jrk__!5B+Y0a)-|~lh z&Xils;n9nPEcm#=DV3ML^SQg`Jkka&#p{yDl1C~&UtAWmPXQkGTw#Of8}1JWbsrU* zZb{FTzWAY&9jzITF!LF4q3@Ji#_AjghU#g1!K37$Xv2S!W@{=W?^t43Z;#XGY5(2 zmx<}Ny!9&%8!%eIc>p=F!$~Mdj&(@=oXEkk-*B~iciO!KPVl5E?%u(jg~*?QPMz1) zw9hi4%AdpzUH6=opxm+#ae>5xQLVqCt)G{C@SQ{ktn-t<9HlJkXp(nr`d-WJS9@U+V}$7(|m1wud^9p}cDX}6i3PfMJS7Jq=!YAbVrhcCB;Fb7k0n*kRNdu`>*lhf-6 z!e0x};SE}sJe`K$DL9(W{P_|NBe6)&deGO94nI`3fI zYQ8NbH;0llh*Rluv7;C+I1{-T(_CmnnClSB!A`M{um=*3W8GakS~FU*GLAK5Cy$@j z`Nsj34tYf$Z8G}D5>U53+@EF-bhzkjA4!u$*jK&W}2mHw$Fa<-B4&EXrM&DrbzP`p*RT3`N%L22-#t zK(-pg0W~@p&+I6IDF9*Udi!hAqC*_7@cJb+o@cwdSl2$yU8;rBH0?7Q*Y?R~syc~s znM$rL6}_%bf7TzD+Q|Y@#zihfZWNtyDNk+4Tdp zDd)UryDhDVWbO&iA<@OjX70b_XG#=d1$wHg;@rRP$h>YplLlOew-y5>-L=$MhRUYuY0jmO*A?`bcct1Uo7$rlTUx9rrXuNbhwsKh8%bvC@&60d)}beB z`cdd}?esDyj)+XS>xBgw5)&8!SnmRDy)g3(_o4^JP42rfPIP?gE?UW()qM=(=n2Z@ zv%j~opgQ)=N#odUUnoC`#MCp$(y1|QaHZ3{4h5pHyoE@)NSVvj$4{4HrL>4}K!B-PFxvysD{EE@3sWBhn;r7G@g`BEg z#>$_~!?Z$$%WNo@t5;cwxSx~nk~g_yb}goVi|AZ-Wy%XWqyp7xoWl zprVao6;{^LrCz?q^LUiS8jGZYtw%TpnsuXZ)-_^?ecRXM(;B>mt%M~@z!Jn|I z@J71_8LnX(Q}(|DKZjM6X`$8Oq7x36@o0E=i|zW>g9IRMbZEJPB84b&5vFSOFjF? z0`^m{$e5=nnbSjao*AROv8VDe02fBke%mlJuhOw7N(PoJ7X=Ef z_nhks9Bp7g5N<7NMy=}B z$IQ7C1F&OUOnH2naDaEZG3#YGGr2nHOL60DY{IPY7xT_P!k)k=IKEjeh=r={DH%K$ zwze}my#)#9)&#-04|d~q-)I~1t^aYNfb1OAXdXbV)mK)@{oKjqn&{FSt!Z6h@& zWhrhwHs*g3i`qpoR`!nU12;1%SA+uq^%|fsH+)M2c|IpeGTLu>rDpX`1BvPB(H}mz@%{<; z-V)%6WMOxAg%IuJ)-fL>)cYA3IwKtmE(-6?efCPYXp8+xKT?bspByCp3HIN<5)!DF z>=e*+EwQi!Mo9=N)Q{CIiJS?@99v*uN^)o$4{aLcPjvluSpY2POp0C}4*22VjaW)R z2THJ6p`=!ZYH!MMP>p6}{~?I!OQ~6pbbS%-Us~b=B^_-BK%sEOV949f+2<$`^a17Y zu@IXGE#rvBd@;Xs^fu-%&R{Pdc|kbht-$pIa?)>a&4iz6PAl1qt;g5IqC)=!o9XC; z>jR30-LZPlI}U`Y@l}?8!_b{_KX`$r;|5)2q``RMI_cjr_jx8^_ljm^9$X&sql8Ax z?XYr?0Hxy;2Y;qWe&cQ~Ws-mQ6@arwmUMR}m42?G!RQu>-*x5xE(WD%e%kB^eGj}rGO67|2NQzrVKCR%i< z-Jje?edsHUl25}b>|Y5%H$0*$|E;pN&BHr-@=h2`s}nUP&}j|*6O;cf*?u=UeuGYW zIu;7l3^`*D1ch*qA|FA~KQn#)`vd6^!|#*utHOf=4-}H#q9##cCZgC`$EN+eoZ(^i zE4~IUF%U|gINUz}MWFj_a&PSuH0-}YG@JNpVVqMXM_BkOk8hVlraJVJo*u=N|FjU& zqD6dsVywU3(_h5@KcqBr)FU=7XjFp-v1$JzO}IV-qSR^Sj*<|!7FQIxDEEI@5I&ee zfq#5UV^hHYM5!o1eY~7Bk;rchcM$%QsX%E#dYqzZ6leZH{Yr}HA;agtAi=siZfBAC zFC+H{760d^LY$A;w#Z-n;REO03Q!XA^(_Ipdsh#p{^Wpep95dI?L>v<{BK&F<;nk5 z&;NhWlhN867ebVvNE+ew!))WbR-ULORd25kTep;@Jf`E$BYdC~%DSsD1@Y{ltPmAJ z6#T!}G~C?#JNJ{UDIe7@IyU#>rHgUMq7~S+0SL}nH|g2-hShWR0uml;rr9O&&hzuS zHWt2+fo{G>WlZqWt>>;~DTEv2qBQuSMmtv=z-&lbu$6C5nb4EYIB&sIx%AeWZFR?M zH!~^R* zbG3Z{wPsYh@Qdzn&dKv~m@u}J4affsyUH-~2(81A8-08hR{~zx+MhSNp5r|r{c6@N z2d!DC`e?`5`OGtw&l~i$u^tae^3G(HcIV!vghwS7vkHPBI~f+G)c6hEjmh!- zZQOijNvf&1yqWZeRKbs2KcS~+3jj`{6q>O4nMi27QUW%30Y-s9k_w8pOfyGOrMzS# zCwWO~5{|j((^0gu&Rv|c{b+U-0>EG?WufAG!A+S8u?3+!!R_G|XLnOFCziWhTm=J! z&CBHwTb-G3W?~zq1IM2~O_b$z4yb8LN5UHiS{X^1nSY&&6dd~uoAhV4s+4S^_m#I| z*&x-+tvv8Kl1)P@M1LSNPb-iirJM*ly{wJd-C=gu^QRj+;c{sUp+6SDCaWD-++FWb z^bPu#>xuh8s61EnLE@E_=^Xc}+4j^qHsI-#}nsgCC-= zTWarwecB;L)oZ)945@JM3P)QxgDz)!^CttsZY!zQ&te^vt&%0Ae=cqmOu;afb{+V) zm}W##oBsaaU6nyM6~^CdWGz zKiK*l)p@(vKF1S;zUey}Dcw&OLOAq@_(QaTl&+{_t|#_jw%s{YoI_s?I!do@_a4E+L&7dU6j659K?q=l+SJECI5YNt8N zAKy2WCs0yqW@n~<-DA%6P95WiI6BxXAFxHLo#<84$;D~FrTfd)dvmR;T?pO=%?QoK z5ja>O7{0_to=ZFLX#-Z1e+^0(8s3?*^A_2;KV6k_dh>H)GaE6yIsVM6xOdwy(+71B zdiJ$-Pvhqd%ocXfa)c8R!b*C&<{UNf_)D{4J`Nh1{D;0+e)(ca)!y-Cif6M6m+z7d zD_bs>q-Qj7?SMXr)jqLioYuM3bOSg?EFjPOmNSKZF?-h4g=8U`Ys9`DEI`ZZSKnE(P>hd=>T0QA7bYR~?Wkz$; zo!M&_PO&GjG?!-rg9fAIvXuf~*Y&Sk)~b;0Z_95#HNuK^Q-JmFeaja1F}z6vk~E*B z3s6UMOlM9=l4)-V`l7BnT>T;je;4WDX*E=)=u~{Y!!&%t*2q(Kjcb^$N$tv(=C?vHdH-Ir-)Zn|9Y*AqC;QiwXLl+@aAlJllx3^)g34_&bS8RLAQyL@iNXPq zc-j*dvny8|b8ok{x$bEE7`PATEdDr9$zP=osOPJ&yB;`nrr<}z0n1#Qgj?_7m~U(R zO6Pu4@$2P~FpdEz6;s@BUmx@qM1IL!nYXrr^~&47%G>o9zf$`}>Br==QMiRgm(Mrp zipKL;mrDW?)SaW`XJ0P>Zdi?pF)HJvhtpeP#8&qX6HM}TNL`e-t*TnRtm6ki!jTe}MQ;$!03AJ{fX~+m!_Nf!Zbji1 zsXq=&%eXfB(cG2>c?6*hYSDdm-G^v`h*35{2L~tCcLLN&u|ar8Jxh_RD=nuV6vup< zp{7W~>$~~r$AWo0St)ANC&%_{x@sYf>t$H!J|1@jt{)t4KDBw(Hf_IJ6SN6K6gY8% zNI3_D{0@9`)-8&9Qoe>(3USQwiU92d#q#Od;2CyT3FDPE=KPpmyOM9#-BMK4NLZ@- zUA1j#8 zM5J^|=4AKXxpG>^CWey8%b4|!89xK48TXHb8S(5Vv&&81z3)5Ym%J6KKs3B0R891V zo~3e+0}D4j0uKhyVmGHK@FMr&{_uwA4~EW6u!|U3`L@dLpvrDh%#T8_v6+u3hsaMV z4m)*BU)%17?paP-!Ov2}m?+cN+KijJEvZuphD4uWAzt>`Pu6P$N)u%nz*?Wi5K*Lz2$K%h?4_wDM+PurBKTDILiRgyp!_x+N~ zNWH@fWWI)clMDOmYwah=&*G8V5FMDE=Z6QvX;clM2z^bdZRSm@{C$x*%jPs>O_sriq&6DDZa~yrJB=tl!k+c-^KeS;wTIRcZ)6)<+rFCHO4cox?R!gNMUsOEqNBu#6Os3ofG40U zilK$q2vAyRythGzd06&JrKjx5fe1&7_B5-5Q@Rz`@oJMf$Bo$0U1wkXYU?@sR~|4` zJ*{i7sF)XS;Q=eDw{G8FOGVL~`BuFtLt310uXS6igv(ccrDjhAg$ay(q~mDF1DPzC zH)wUfwb!JpmV7bTkwwVSf-Ds^_4qbiRL1>nR?$rwNsR}swnaKfG1Wla#Bj;L#JieB z&6QObX+nhdEf|)_>KT(SYKw;H@Dsv=LYfMZ<*YoN?_cHl8=JV-;?%2l?0V!Wwg_$&ooyD z6sVhLwND%d$ot30qi)Q1Wv;wRy*6Y`CDXU2_|Jr#DNn@HDER zJLd!fr@oJPQ|}a63E9GscA}>W-gVS<-+BhihR#~dOW5WTxOL9jkayw5pn(E*`cu=5 z{XF{_y`}UpZ2;N%{ z)lq=k=}+onJ_39h*2ODaVSo(cLE4+GBN{nr=O44zEo90;j8*OiGj_Z!m*Y;0)1)3O zxQIF229SXwZ=chmFfZ(=20Fq>>Mt+ z!W-wHLJ}J{icw6HZ-Y>^wtMP)g9)ml32ZOUyc$~9yUR1Zu4aha`s6COjm~M5>+pC* zJ#EsK5Bri>;g*fi0yc7fxI0YQ-6KCfZn?%sCmcFM^D2U#9lp2NB|0X&_(ZDG#*$LB zuG4oOvuYZU=i=Ny_-@vH+QohaK~8Nxnaryh=gm7`wg9lQQbTUQtx<<}?*za_mTFdh z`if?I#lN3~XipGkWxK~C*bA9Bd!6>2<3LA#<{|wL;_G{RfZMt(LO($dea*1bhRrGn0Ye|M>6Z7!D-7W6m~Yb?1ve#zaZ5pP872I%k; zdY%XM*tVs%xamwgQhwbiH70puQx@r+Hd#dRZDz^JE~g@`BwHW$%X{2hVsv+3bVQ+I zbz4&m1UEkN%xif+=+8f(LJc52ROu}NL|Q`c5Snxdp@$wA{LRdo zH}Ads2V||Rb-(xCbI#tM?HO$(TSV&Z4znK(t4Kc&%9uK-4Rp^wjX&+4S*zD029?UJ z*^I{S{C3?ZOULy#Pye|rFYz}T8E?k7bv8bB1 z*5Ac#T^aTCGOOJ+4JT$;*T&%VgYwnvfw%~cujbitP7u#ttAp7DdFDY*G! zoKv7@uXZU>YMf*_CG&D_;vAdu`McfO(YE{=lmCB}JXQ3%$IrfBUZ%5-j2?8~~?9QN-K*HAJ1B_{VI!C#AoTQq=mqw|#2V z%gGW=DQjy!hxyl1Q)h$h8a0;>dt5?sMIpa<;uTKWg^uUGRhcSQN1aQ9I(QZrK5a;N zr(k_>1CRDLXS7QNqOmMw&93MUvC5%=tx;m#*4aa>Q$$h(7Y2k(}ttCiaEUeVT$zYPmN{kT< zMM+@f@p^5V`hk8Y6UN3&xPq#dTw<=aPawN6;a$%@|V_05ag zfrASflmdkC*OzG=i6rqS2pQZSZ#osPK?VJi>!7?c2nr_Fcy7xi^A4%lxs5yUlygL5Dza2f$NqQ$UbD0@p zrahuz`Q->zW%5h%M8N!ZIlF%QU8d@5B9|>dVnEp15p3;`sU@{}pi6cOq#!(KB?UfC zqB-Kf8rer{t{m0>qU=-46}2Mu?`db2Lcq;gKX<+rm);OLgwMk-+o+7MJVc4NA8wxZ z5ZaD0MUPwtbp zJmwGQ0p66E`jb&xiuK(c{YXjYxukIFOPIm@z5_?3Vx;@+c%X-*0@4KwsODarC0TZV zUBN;>m02mH4k3bjM)n$L2foQY83L(gM>R)KA=w)$C;`wg6;#>gsof3pydjM60?* zB;p#!F7It9)!|FH5(jH-z6*2^?lsA%B~;kWI!vD8ABCUjY9**anTK@2$`hY@_ufrR zRS&%BxGQZIT**zMpsTzZ$0e|GOxBE;V`pZU|M*oCa1*L|^M)E+E{I|FzW!bQOIfjHe$@)l4eY+Es_iZp-)`})PS_Z)ZVNBaS9OhhSb%ug zBPx3E>*rG!-eRrcj+A$!A{yl=H7Bo~v+~pvw{|l7>t&0P?j1$5{#nW;Ez5=GBnczJ zyd_U9?XG@d&T!Il6uo!1Tq9@0Us$=h`4!LD>65^}f_qGV`HbjhzLOvhTF*oy{vK3m z3+Jr97;$`m_o{CqhZ3Bh?8&-$(Q|!M!my4Qc{NPq`EM5Rl;-jgJb3B`)5jk$(JhtL zs&VCw%>XtF&v?SF&ayGZFE6&7uGkaUOuLRCutTeN)p}{+F*>hrtn8{9zE= z(z5(!fMLOsf$XYnRjXms5s2jWyuoGLX8NvVr5R7EPQ}G!S_JJz|12HtlJ=bBh^nC< zb5<)m)tzP48lV@~6E;Y$y+$c{SoRx!l9{-@-Jx@hX8Rk|qRpng80+qNHET;zZCcvb zolk`81y135RB^eKIB}+X6Xz34Hb!;VX>Y*Qttua0$d*4Ci!S(f1m#@F(O}w2iu-qK03MsB8u-1mmH1AjnrH!i2_FFg0CVhP( zO}}is-&sF@K7IVf4=L22-t&IZhM9*iK|u^MTh7lpP*SjXxlom%go9UT2Jy}vVH>pUq*+1wn=<0`ez-Xynm&&$s%Ze5Hy zrv>no_)p*}QVbQ-$5i}Cv5TM|QmE!)nCZ~pj4^h8HtsetF98s}9P@qWaSUk+nk-p! z`l^)MvaFL~Q+qni#TIKJ_ld~G*KT1s7{Beyyb>Tx=^q4Te!q?TWXeDH#}7%&z?vn6 z%D)#nxz3dFX0v(jA0q1C(5&6TprEKy!VihJYFY%8%ic}u^zk9BYn(ujx8Jp z_G`sul!es+WB8XLD7YGvXI?L+cMw1|yV5wrmmWF2slj?an$YbPYq-G3@FT|f9vEXV zGK_idK}Cgt2P`eywk5=6lXd83!1KW?Wqf=h`9fDmHRUb~*babG8uCt;+D>Vbc8T@5 z47hx*GuVaV&R~=dAt#u8iHvN!2t12PNLXe~>@TQITi7h?Lv3K~*JG|EkUnWsiIlicqE@k~}Sh+^Z=6LVq?jB07{zH<+#EWcbK>B04D01;cHH4hIhc zrJ2Tix_78aQ%~?GqV&Or8n1|aC?mY=I_S@>P5$oPRvv5_n5M#@KJ@aeY zRnK5w`0^dTpZ)wk(QJ^v7n=hxz`F zwKz)e>~#Y7?mIe(dzYY&vTsczP&2PcoPWw9PD zlB^!KI`9{5w<8z%&|G4C6=l^5PiVGk)bz($Hs1miQ=KB`O`|URur`#hSknBVA{V9= z3|Pl;h3r$*xJPqS7_|^{M1+wV{rH?P@i5}qaV~_<;+~kc6q%2#*!4@i5nbwP@Rz8D z(ieS9@t|Nq$ru08Y?jAop8>spPcG~2u1}9D470W1I4HAKk9dt8-~aS@2CBI;&k_H1`r|1>P=_PPI9 z^~3)D*|1|R)`4NWD~;E$WfdUxl@jb{TMt!(B+1=NuV)s97n34=Reg=*6oKmtG=GjM zy#rd|?tpw3Etd0Pk=e(xp1BgG()|ZL2H{>PayKr3jX& zrNV-NUKXd()B#e9UeyYIL4ZbNT8e>4%p5e%gJhUu#Azt}J-VwgIHfDV5G+4L0wOT` zKfEMeKCC zUT+#NtwPH=M!_KI%4aSn5BmIhSTM1S!nw+R{+Ln817M?o7N)=L5}E!fSz7ZXV=UjM zCGDZ}o6c4LK9w;pmJHo{vW(NdOM!Yqg3{Wfsb5&`t-e)HCZBfKwX#h4({OiZD_pf8 zIX28m4iakS7?jVGW$>Lkd-Y+<u~IN;%Afk(-}!lR zGZ&){b$BEC2USm<$dah)av-F9;CgpVlg4?@xH{d6kYq^b?^%(08qXTL%(tO#>9moErOiL zWv&tiUi|>-ChX70)jQPL1b&~XN%pnU;=V}Lp-^mykI(~S5FRg-*k-5FiZHq1U$VsI z1eq22mTb_Jg~!o?wSHz4uD<-#`+Ez|bVr%~3c+=Bahc(!+m7|yr#&XH`s29@8kv0` zW-kW|!@1DK`D&yM5<_Fqw(@Vq5PKwVevmc9WG&<11t!~OS!r_-J75@n8xZu9J_Lvvcx2V z(*IPYH|}0VYS$66X&cf;GRu~~G%5I1`q!rJxeFPcbPC8l(tn(ivdEV^(tYPw} zj#N_3tDjTHEm4{=#L+ux5aO9}gULp`_!Z)*Klf+h#ZX-CYQ{G=HWafFs-z|Y#3pu$ z+x|@s36LWqs0VxQ(Rwd@p}iGtxpS&t$x7IV83bz6m4sWuoA1hkiCufn7gYTg@(;u0 z`jqx@Wu2c@D2G=x-G81Y?DqO^rxG%Q?3DmhM6R^OK{fnStb9g(p5FcpS3g!Z>GZ2| zJGbgY%^Kr$Kx%O`aU%6+&0oF!UpGewpMIK4)^vLqj>BDi>7XBCyGgg-WhTK5I$;{7}82R}%P3-*FQ@1(IM{h(ppYnasq{>8)Sb&n&10j;b z>!(W@f=q(4=|{^W0K&=CQj=9G&w0KchvpPT_(#`fej`dRf;(z`6o>8(<(Jl@^ft&# z(GP8^?~;r8M0R%g2-gyXeCV;ei!e_t?OgQW5awl8UFLgYS;AOf{oe32hyc&Rd69NA zyhyAnu1uq;r+mxI$(b-J`+0F;!62Oq%6#y);BaF(_OR&WL@>qVUNdX}1K1WXu>`i& z2Ax}OM0~4m1Fo~?cb?H=WSkAJUCOAQp)sEa#7{rr4+pjp#cb?$6ka_ZhqtNbJBs=z zl5omz{~+nDgD;&1p&K&K(`6XlTr^uxWcw9N8|tGA)B_E3iw|hLXT$t&sHc0~xRRDD z?pwB{v9Mf0ETR|EuACpH$i8|TDqZadpQY3@+Q_#>6<&*KBtdvS>Cb)dmiRUZ)@H9K zkGha0pKnc=;$GZR(dyA`RkW<#`6bX_m}|zlliSm-mYwqBTx1 zu!bF@YR)U(8gpRUHGNMh86Q6>nxd!uO`6J`>kexdI^u>#`pZIPAN#DKaPF~^&pv&+ zm{WW4zB5V2Mov4u64F_teQA#I@Kn20sL;6#6K^$o0srA{n_P6w3&@BJlR_tCx}Puxks#-Y=x8X5zvWYBpU` z_dMQW_m1b&Z1wB|q-16R%(6f7SFtA$u{nd2cX?c(VA!qNlZ#!q8KZakoV&f zR}ne95s8>a;l#+($Y_5qE8HGUrOT*zQo`+s+ep5@ACypFhtVv7Q-cGm!&OSJGfNt# zweQ*;WU$1}a>R+R1xycr_MCFAV6HLR+>p68+@H?#n=P{6@a#qSOdnJ}BsFMvo~D`+ zwGlu!(hvZRag3O$1r`M^2vnOF#WL*nEZ+@0vwHj>BlhF)h#v-i?t9>ZzhtK7m?G9c zJu8x?X1~faug+6lv#vZBb4?CeIdN@j9y_3LnXVU+Gr&DPDSK$1ee{>CZuv;0ZZXz# zjrkb)^|J=+uF4q~HB;Z4vnd><`y!NHORAbwZewBkr8J#vU)jg?lErebWIFAXz_I|8259OwOaKo9|Xl z@)UaZzUO|`+H-P2p+Hug)>)=Mn7r8Clb&fPTqu76!N5c$!1T0pHJMCUPPp-kukJG2Z<= z`CTG_yPj(8bYAq>%9rE(VlKi1A)vkO?=d$H_V{Hg&+i(2N6V0*@h|+B%bTqT2Rqqs zR~&)Qy8378lD+QxSKO3ii^yjxW21Msli-W5OUsf9PJ$&%u@=Vzk-2?K4?;ixg zO{1e1etoaec+P;e8Jeba-=}Ka4VA40Le_A`@c|F=1blBZ{+2DfQh|P_0?RZpynLnn zYhE#l`Oso*v<+DL$iWgWD!}xKpq^V~c-Rb7(TA@0hueh)q5i&D5$|$kkr7rv${3Yy zMdgzPI5v^Xy?*&N79ANja)*g$k<*BFvL&*O2C=)Bx8g(^z9MVv-l$=ss`6+=BAquM zq~(#2zt81@i?McSJU}O8mQ=|K$!ox?QiyQ$*jEm{Eu>)TEA!;fRC z*`+P+>XdojX}xPi;ho2m2_pQ4`$0d~?Ui#d7J#@&e!$^~!o~S5GPd}lq|az;(q^4V z?;xG`9IrR{E#0##L@eABqAKu19nP8FxukHW`@NnI4=PsXq89twkNiEXdIO)JsSoP zO8qA0LrG~9hG8pSC_0u<{8Peao9;aBp-GLCR>fIM@r?Z2 z%{|wivGO0-w>}PjG?}w>cBznqQH7s!s9!mfmF(s99F3vX9Xy=tnVH|>ujNgnjE_tW zhP&lOk@YuL$xYMybN!B-)Sr9#_u3oMBVei<9qZ!ij9e-#13}RTY#QY*2`}=n6rzh> z<%ZC8^m`w!os^iI#BK_QT#z3O-he2l+dw}bA~T+aWST|60+O4_LwbQC{e%QRH7TSk z!-(aKqdq((x``)IFn^U}5j>+3ViY=1;kvlQ+=>t!ikxtWC^qA{RdlnE{V>{0R=)CF zL|~cA9bcun5m(it3{E=Lm$K)JC{daKe`V(=MH|2YzK zNl~T*X`_xFI9weL94OFB5fH)N~_kO{L?i zW2Li89zwrs#D1k5UvrPM`ns?DBdE~2`#q^0!{>OwOO<(TFf=TvPt=jCACDd+`MvZt z0rJ9#G*#=7acF9NGNp6NM0Qxw%3-$@w22%9262}^m9-=|Bk_X{&3|KHDTc(Oy&8)P zb<#$`x_9h@ql2QWA%*7%KZn@s;VqQvk{8$(96_mQ|^iQ1fP_LS9h5Hu&yZL>}DhskZ%23_vAWpk=U4@TuGyIsD;bL)KbR!YL`}GPoZDHgrj}E*wth=@;={ zcgUqP2@)-?2`}a+l!mqI!ldV_6ry~JDj06TU^E!-_|s+Pc9FDnj~8XylM)r8x<8V+ zanH%v3?hmFldmdV_br6P`pJOWV_!x9E&~caV!;t3B@#cup90T5&`3M*%*ktiJsS!l zO!#DVPP%Xa;?_sND<<)<)7!DDO;0P_aq6U%44bq;>o&1aV!aIyqFUYppWzs+o6#v* zjbDnSIPu#+zP&plhvH2XG7r(Ioe8g;Ba*H*@6k+I_+1xDJ7v%c@B*G5;vzIzB&Gn* zlLD_a>2xs8gHlV1!r&#Vi3)-9EG@TJV<>^?BL^XI9xkhQ)>px;Pjcmi)m$ge&S`Z^+c9wnSgs^1{>dWh|K3#O%mYPf5xfNP8CTboFPZA1bwDLUrnmc;^9{K{{z)CJEYoY0;H4I(7*9{EeQDCe!qXaUd6NiV@ zujxQ5)NUDve&CLAgr=&Q@Vw(&)I@roEk9(nO}JJOKdPW-kWBtM-TTfT=CZJ)p#7LC zatW?y4p7YLM(m+_v?=7y$k1A>qpaP%e5E zt%euM2K|Wv0o4oAww8esrgV~&SUDoaiDPh?hnl^;V_;qZ6Wkt|;>+WiMNUAmhF~uDx2|`K)e!PIoNstYy8bMA^7T)zOyFz! z>jXJSG~R=?D5V!QVvGUmD01sKukwDs!;-Dr0v}YxKv&f!EB9x|jq#k4q3qH0vQ-X} zR!K3-br=5O?tmOxpd?}?A6s~#S_X1xBTgRm11i4EtQAC^SJOz@6Mg)sknE#ZKHip_4xn%DV&U2y= zLiMeYJo5DQQj;pWxET{Ad#D9Wpe&_>ybT=u4EJiaNJJ!C_T=2G}H>_@YBS z70e!Uh}lzTWq38VI3myLZV2hFP`6=>jYWQV&vR?j**+O$kXc)_l)5b5>N3h{ruB6K z|1STBk9~&7^&a2kj9ORbij%(bw&Yiy>AafhvAU2h?Mo<;nlG=|@)P@|AEjoV)bNH6 zb0T!}d2aY6)Q7aWZ{N4FvZ8#Yll{QyXlrI7u0k7cyj!4O0(2ZfgxhJRSoMxuzTH5P zdnF&=syIXh8sqi$Xz+igsE(aBo~JeY$j){>jn>QXy@i!OW!OqHpV5=7R}y^aW2asW z7iU?vm-!CnZyw)=c_;N#-DaKa5j7iLr1r1jXRRLb>)s-BEuL9d$flr@L}jjOG3wZ! zCYND%7wM(mK^@;em!7ciVqhit*T(pVw|lzuvyoYx$0v5I%~Pvj7$swWh3NxI_FZsq z|IPu=#mb8uTrg=|9N&PIkzZOr8CEV<-i;CszNRWVG7avcnWzmgP`Y>*TLHYms~{gu zuDl58H=(Lir8lyd^Tb*)UW05H-YvXjc&90lDj+(x%<2AAHU#{J)PD$L5SpwNqCcJw z;%+f9%;$>13FMP==6X^__95k7(~AF`66(fax?jGn-#axNs&FAd-+&nyG_1^~o|4!OyRHjv4PkD>GV_cGn1@UE zMk?5PdV1JO<0|C9XR4|Cs*Lk`E3Bunp}})-J<|5F|g?xxs1J+s|PNu7pkUpk|XA z8h{M(4$AU~+ItnIpo@vq$tCcrlv=QNk2*a;y#)U$?00IK62B|snDIsX!?a9Q#hz}C*z>UFf!V1WVk`QcyZst2+(jWA;IN_zC^40bWUaQlh%DTndy zu;UEd-w8Al;^m%3?A_F+J0Vj% z6h`u#5`R7Rd$L1+E1z!8H$pFZbF-lOrs`MkQjVc;PiJddp%+h<)26(q z*`n2}J^GkLmZu=k)2op)Dc?VOLp*stlf01NHAEq%MR}j=Sw5_LT+YZf(S#l$m#jsb zWR+L^AQ==L2Zo(=J;aOer8a|xPn(&u-{ZaVnwZ@pu~iRZTyn6SBuZ`0^63Nn&s$$n z-7A7FjCx`{W*^o3B&*;PbV;Zh`AhDaD`H}okkygw@)&16R1x5r3N{(9*c@s!rE~U_ zen%9rW;u?>Kdu}l(KLv5%>?N)-XF*65hGz(*`iZ03y#W5T3^8+pZqU@b5HN0$Pc~O zeJD(&2cm?4{lJqWOsDAl=ouD}7}1}2o&M)fEY_Yczy zPxiPdOehf;Oh)gRuY>!G6|2yY17haD+DdcW3WsMH7yeZP8j4yIMdMvfnRq9A5 z3oWW&j(Ff*WYH1>l~uX4p=LPBw_5Bee0Mp)uX3_W$vIvch7e@2+GlagUMZY;ldl*U z0Nmp~h{8s|W|LaYuB@(Ci}m{dKJ8R2jSuZV^>(M{5X#dSH>v>r%y!q3zN#HQrn*%q z+r5$`FTg4PacNQ>_#|<6@%#frecEL3vc>j%ibFI!Iz3~ye_zvGja09}-mR&=x{RCw zvTaE?YVX>xkNE~ zh(yB=CY}QSe%yi=taPc8+W4Ir`w^Gx^{gelyO4Low;cDSsI&4OHI+~6OncVA! zWv0`i)T9soRKRmcPZkH_VJA!eoaKVS<|*<|A#u5BZ^*oFd-+4eDyAKcza{~5yenCo zWVL1-;ZRUsW~EEGK*lo?h1F=Y>Ti46)t%%)z0Xf;#-Qn`UpciCwL^=b$by@;jVju% zRQf3)g$F%aL%0{DjdoeKpuR&9tc*7FW)aZ#g5mR+L$x56$pi3Zy~h$fJ? znG!r*piM|jOPd3)i^)HFj6~^+IX+-bGO)cUO?x;4qB=&4po2IFDj`$kak)X2mugZb z?9fXc0y<#XdwFl#+2rC6=lX2`GH>4t05+lA3vk{yd4rQ|m4TTax+KGLdL=7035SNm zU2?hd3>9znnR$6m`uuN*X&WHf00B5T4L`H7zm`W?3v=E)$7j3B?0?Z8$aHK5o~8j^ zW%x#l!ey#cSHOit9T&@)H$=;z<7&-BW!lvK_-BL;n8CKA!Iot+l|hPl+bp}$lR`BJ zrvc(?Gs--Kk%C^q+mSmFl&857&1sl%bKa2W|Tb;sY;6;ptz`E7&K5t!JZ8yqC4xQD;TM%ZXr@^_b3~JgvuM9 zaKGcj6c$+LD|=1u-GyZ8ht>dZmE?_**dm*|VGKPN>*PjYi>?Ya)&{2Xsj_g1V?G7@ zQS!-%wEoWrB4f+?rfAhNOV*rG2TTA`Vf zCeR#^mqYudd-suw2Xu`eHt*~Wh zdq1DhW>L^3KdU1ICfdY~3< zCr^73p7$)6*+5y`Tj=yoCuIEtnn%CgzRj&gv$tq*_Di&{|0Qtvzk_k`$A5u(|CC}) zOku2c6KT_`rt}!8EUmM>G;7xL1eluWHFKE*ApH}Z@!s+u>9JWOk#tdH3~-75T5vn` zW!cK2z=sjUux@bDGJ}X4<9X~5Upjz9mvJQaMS@T^nYSI3%20KOM@|81mtuxV!Qz1m z8vDxMUBfkgB1T*J3ED?P)dw*8v%j&dUD=iiWb<@} zC{$DSMCMaXg;Jz1{VXZw${$%rVaOJzU_wmlIdB~ zACO1G-3QPI4q?!B2ZFC?6xAKI#vat$d!6L5xwLz+nPnhXG2~|0srM*?E?Eh!#tKbU zAr1*i%QKhxXBGX9>y5FQB zwB8_)+hxr1T6Zi3g-4=7t?)absK8=c)pG^3D!TBQd&*Du6+x15a!5}KaaO=wZs(>~ z@GA9lJeIYdGDNm{TM3;<`x(>y>gCDTr`Sv?gt+79z3vd)i+SL^R?Gs%$RY6IL6py` z?c+jSlj2|pk&fDuDD|?33$zy$<5#JjS4)}g-=_R`ZSR4|y_5d$!gzV1A*k>WRy&Tq$$IIhUj|Z) zrsifk2tTozpV!(6bdebD-sj>HoNVB8dpUI4tko5eW0Y}V=tY{l_t22)k!pyM%8n-G zAI^d7eBo9@D(+=F@DtwpG!(J;pv4QysrEvx1Jk&b%kRe!gO;ehBEcplB2Lr;hwf3m zQq4425&ZC$Q6Qd(b%BN-8OF`nio9<cn|t*VF7BL3;`?nk=IGhn%U` z6JtNY^fW&7q(L*UH%~4ZmaNsUNMwRO==K=PU<2g1<~PwGtP{LDZYFDu=XI`-l+L9!otN;JL7j|c}VaF-_A;-b0;tGf05O_({A#78G9*N4y$~!6@S?^Is zZObCVpmk&u(E?;6w7!$+7WEkoqa|10b9H|6t>>xkRs;#@lQ_0 zv8*6jM)4)Bzp3}ju*&||6;scpC~eaxGaC`u+UXBzejAXSwb{#3=gs3?Y4cdr_1fsV z#Q()_`Tpde-S!`{W(hfud)BtHq%{OJ?xTWC!B%NRuLZatoDw*2x_dd}Fb+XMTHIJk z8#;l1cht!8FU&HiwZ;V-1Bbh+ztW{h;5SmrR*D*Efbds2jnfI5!9N?8m}Z+)+No%1 z)huh2n{=^LTr9nkuZ#LC8GMTzmSFA%=UXH%)i0%6P$^T`pEh_;ZQ|FLPY&Taeo`xR zZ!gWl1hC?l!R^Zlcs#69t_6Lb0uN!ch?u4`8fxIl)^H-z6#)$E4a!K2R$&FQgE|WM z0Q(8MTKyoZ8|xvNh|Zwr&lwM5A0^exmh8~?sSzuhbn`*cQ0Q>BQLSce|G7slnGm0# zpB?l}kyZ`Pb`QbIr#J?`stYnk%EluEBB)Fe4_w^)$oq2Gl3$=xN#ev?H3>u6xk{;f zHJw!^(St5mPlx;n4MpOLQ_w{FvqgwMzFg>Usv#itTP^jw4z=H949RNIhrP$b0+uZ3*L62Cx`kic0xLE0)KbS(#xEfX`17!eBa&b`iYA_Grk*#mu;EWZ3d}5_R~Lp*-P9DI=Rao{OjQf z6K(5mx|Y()l_o(~$epd#>umI$J!=vBQy=q(hBDH$N29%+F@HJ!fsL*f@IS=-zt`-Q z2F~gKF6+zbF3{?^%-6odL1jS)?LiP-Jh?LGTI0LH)g;kXvVh%oriouR5q&-*g?fzD zPUEi<`0naty{vdp8dcn5UT5yQw6uhF zGR>nS8Bsa~w4CBn=$Qv~4v7!j?MH<2@dn@PA`e>BkjjE7+m-I6zbK>=DtyZjB8K$b zzbe>xB>B^>eeZb{Dy>DYkgTNgOc{;y5bq~1%JIn|ckL;$*3?!_Fx(%5sJu}gT_-O$ z_r#9;sesDqHmgIg7x}EO^FXfJi2`GIUB3z%U?yT}I}y8@VqkqzlS=ii8~CH!8E(q- z`;LTs?^N7N=o{^_uuezQzXEabUSm;tLwnkJoH@#n9inedOD{CHdf>mvW00F3XXey7>Wca1)BQ8qrU6 zidh|Yh%2V|>juX3H&mICF7Nf&Cihiof4A8^#XK6~pE%JC?=c!060%3GQD6zT66b1S z#i=eKt9N3orS5gXLN3lW`0tBvv6(l5>4PlFZ#BilYy-@ z+x<~2?k5Gok6n9+@4OEuyR-~2F8-v-&Kb*9%Ip#&nDi?Pi)%C8{-r1h`WPQu>f%nC{C*HL*8k72AMb#2t3pEFDheqe`b;jlger+SX>A($Q-TgBJg>p&NrNf1bgw(Q&%wr?&bm7L3597M z(56Xl=mXLEKs|YUxt0nuL3=F!!A{~}J+P(tQ`%naK&8hDSF%VHIRzNxJuwFU)axmA zrE=4Mchff_7i8b`%_GPW`Zhm}GgnSb;1WsbQrX|Ktd0{W+v8?bMLj5QLx?lZ>j#tI zTnaDN2|OpUhRcLkA|EttFzezt?_^+Fax(Dlc2Dm}iVz?>0K>nWlT(P<>mPQg6iWBo zIK=p#4abW+x58E(k!q{v%CWY`fWl-FO{hgiS${)~W9+n|4MAT$?e_p1Kr zV@rxb%e5|LZ>0vhDYYHLLnjj<2bi<+i2!x|^_rgX^~r6QX5uD-CVe}Gusm%#wMo5E zS+)`T!s~6t`v{Wy>KZ@pU+-y*5|YH8@N-LW%B#ellm`C+)(rYJ$RS#>y)0WMbpGsl03OFPAm+c#3qn@b*Hrg2> zgA8&cW?ZEudOPSNb&Wu~jke}nz`Wwy+d@u2s(pNn(f=b816JwR?n>R^)5xqX(Ri0K zk5J_oF_A`9AnBUGx}%Diq=8+|8OzB29WEy=ZA2v1=!}*xZHHk{M*HR;dsAySy8D1Qfp2WG511?ieg%CmuhKbE(!#6$e74)E?qVm8u5NndKJ?&^j`t0Q%_yJYZ+H8R1M16RrsMZAr zIwX6*seC9w^`s~mDvS7sECf}BDHV%5o>Vl!`pxP=xmj=ofoyGJJHV~*y$=B3djYQ0xG z8I(UtPc;VY54?9lP~kw@=)-B8VsF1Gyp$Bxr3Vt8LW@tWm87XuQ}DKka>&!!5cszt zhr(f3J-yUg_&nZ*bjhwUnTGH~Prhg0DjmvciNv;;&NuaX0kt>A6@#3ER7~~SbQ92` z!zica3c3wVQ3UnyKCGj}Gg$|8_RDT1J$b?T!`(DXS#sa5h~mP}eyPMz0aj z`nGrjmw1Q+=1#{5&zbx@y1%UfceYSe3sQ_)+*tR}Renx*^IYSa@8Z9-Q6JItxGTX^ zQL`_Tk8IsF{ynXZk#_pGZ;m@p*mK(MUb|rYFAKGVi-W$fQQW3A-bi>WJ*o=__%FFp5UA4fMv}FbH;0pXkat`QIr{|L*fkmEM1{1|j3AhM0S?Jn)nfXNX z>4y65p;?^p8Is8zTQZ(y(a1RZ+%+dR*Jcj&+}73>VNHM7Xtx->>GW%yz#t-vnHQ=g zI{_c2FkL8lUzp}B_5CR;G_pEF+5c#eXXNEQi%Cz9x_K9!HST92yqopQxM@wW$L|tM zbKhOgu+;p+W5rLIE?940eD%0j>at;u(5M~NceQBAAF#Nvo&#c+hNgm+60m|k=dtXv z8}S^(7$Aa#Xx>mxWN+Xp-&*HaFct%C#9IB@3NQKudG;D6_JJ~etj#+OJ+7d7qWGE^ zSCy;qYlomY-yu-$of?%PlHgP`uKTMNW-3I1=1xZGg<~91nSWAOYRBxJQlb0dL(W)YNpW=~_`cn+azV>$jAB=yBN<|+cV zs+-2Q^2AO>ZNr*aAr<5h=eEHp!Xk=v$p4N*$K+@#j$+Pr)(+CdWW6E6ny_jI-tBa) zl?6?#5079|+r_?-gIRsfsJZ5uvy`g3ZemLnHcK6y3I`qDW<8FtT2ePr#rY5{Yf{OL z@fRG)4Kq+r(I`=NW`NDV2Pm4_{y|)RfwddJE?7(IFH9Vh`N;rYDFe2BjddY-bZna|PN!qrPRDlAv2EM7IyO4C&U)Yf{=U8Uxj1#Pesf*Vn)Qqt zHJ(wA3^5CfeS22#m$nf)8qh~l{`>#_W0R6_$ZcY*en7yiVE3496fgWZHr;dxZY|!%4 z?KlNnTe$Wer-p4-#rqcuL37@t8_zrg=AP#`g=cO2)&f19%$V}L0ufK@8~^&KJ?2Dm zxa#$xDjl|JU_bAWSH3Dr8jdxbaG8}5P~Fy=jKRZm+c9Tk6{fTd82-nwYz%AIyYqao zW^&K(Vw4#yG_3u+JO;FJ|v&d*`by0wSOLctWo0Tfyi1L`(PG7r*_z zUtVXHpDz|f_4V}+?r7|sUFOQeAwJcX_WMMGsS%nr8$f`8V2UvEY*QB9dT#A z`s#7j#Y`3F32@J4mZ$Ah_9`l<(|lL-?{2S&&$fqpo8EU#Qi|JQC}a{R$KZZ%mt4He z44{pb;Fi9^G5p!navLRfeP<8?&d38c;KOZgTfLzWQqHmbirrkqq?bxo(omvVIsGC~ zdZvHMZU|fCm;_uXMvZK-Dkh|mBulb#N_1PK`{fd-ED2^+o5t>o!8p2fzIac_wgZ#> zP)jxTv$uMWii+d?SR-DkzCsp{D9Fq@qcnto3V?54yjg}Z)dR6|=gXY%X-+*#XEM_v(E+9IsePt4j>#lUwmz9oSI@>9aS~)CgwM-?LwJbqk zO)hjXoNv@iWyRN?zpV&ENje3wF&E-$k~|$)ORJ0a(^VSnA34j>`rMy zW*c#6980fH_K$HnBef6P!8;fO3*wf7u*`psb=)1zyN)w@D}&9T$xqfQJNCTU=1d9b; zWIAD^ z%Xm+qG_13nj*3k*d20S{`Sb#wPl%1E#PnLC@-D^*WyWJVL(vyU7_U zyudkTlzxK$RzcYQ&CQCT+Ogh0wpc%SJYgO;j6pxOgZo4+Ok9$Iz7e;ES>#-NEE0ia={Ip;|&s9pHxR%Hix({=k-ov;8c#jNj!1SXDaUe|v+n1D39Q&kzV}JdP+E z@dWWQ66 zX;k9j&@ z&kAV2Obd$%XS;mNUaz~lZkL#HO&1y7AZRJ>C2*2LHWJ~08-P9Z9w}xPr_>K=^Nd9l z)m>5dCPs_27VhMwu0;&yInx22ub}Kd?C}YG4iGD~K2aoM2_rFpn)gYz4#W57x487= zh{$AGQa(CSDEchJc%Um_Ln|S{AaftK$72n`S*iA!zt#7PzJgn8WGRVKSZDh_AmChh zTZX{DchaWd-b=9vkzpQvcM6p9)Db}1X3!|2%7RIg1wVLfnXaX+*)T7T-}59i|LaM3 zJHMdq*;N+U{8M+iam{r6Qr{=heS3*}$x%9;###F=!GYDf-rFVfCbUW-v9U}x?NzR0 zsbl={1iE&&68!f@(N=cz+41?Aw|Zuj+Q98!2zHll+LBc5*wjXv8oK(0vvgh@Uz?a1 zw(M&~EV1!1??u_8tIiFxWPFQRZQq4A4Tgpsh3G~|=Qj$)k}25}YjH}ad2^NR3@r1H z(f0d8&jnu(mb+=Sc#pGkxg2XUX=&L541O#DzlZr;p03ISnx#@7fS-b#KrtrAxbL^Z zIK-%Rj|uner1nLj23v0@wt_;0EonJzJ|^k3kAXt)<@h_*<4pfD%a-irvYCVz*rDSIe4WY0)oQL1s5&l3UpEFIPw`9EMZ0UWKB_*4^qPoi zA$LxpLW|W-?Bk9fn)T>A=^qVnwc3u zSO;)B-Zt*T$nh_te$f?ue=8`2zKPta-cI4<+Rx;%w9YBHmiMxiYa<0d{uX;w%2P+I zo$3;Ue$5v4@8f}7*GXvnF0KEp^s~6>2?l=9%M2$*c02^#IW$@i_IwBQ?g&WVfYuEd zF5eV~L)(z{FQKM|MKkfbB2WG_p#QYs2os1QGQiJ2_PKN+W45^2 ze_nCexXBGWN(Z?=YIJk8(V7@V_&@D3?5sjkMQ`0F4=O6T(k_I$ynk<7p545| zH8Ga-4e&0>Ejc^m7vov74?agi=x>R=rZW!srUYA&po8PtyiGOrBg-U3Zh1wr1>Of9 z7ufV%h#)6N$2vOzZMk|yAXRQF)>_6=fy+}gu;o}(NBy@NFh#6A7 zB1{zq259dXsKLr?aqd9~mCsO~aywG7D<0-q#SNzE^4c^d=ksK8ECkT=Aq*Be*;Z$X zFVf$opgi=t@t94RGv4vR5YenWPHb^&}KDV`He$H!b3w# zBM`Ceo=i1SD69Q53$Z(+kntRXq==Mi=E!~F)^YsI$TE|#ImML~ttnVi!HCYKWwbKVwDP4aCBGkJmA>QwozgNDoTX^mV9r%1*C9W?(3VuhTi ziZc!YclpfwI*}za&z*9|pIM)Kkp~s^<;Hl|i&o1J371&1g$5t>BlyP(V7$bY3%4N{ z3l&;Sc^SEXKdgdg<~d=I`C1~Dd+5}<{A|7m4l`Op==MSOo-V#uxKgD*P+caQF$6bk z9jMnBk+puVhh{mex4iyAow`R95L&Wr!lu@3!~Numi=bbkTr;R!6oo1?U|3YQ^ZRJR z)4Ibrx{4U_FsT-Y+AhdThH&n>Q^`8ribN88(M7Q95BsI6^!s?ImG@+=Pu?y)5WI(H zX1nRucj(`xP+e5}haqV1Ib8T{IXd88d2}k*Jt3b0y1F}OR(K?1h#2An`{fn6G|x^@ zaUDCl^iDuU%t{kb8#%hGGs4 zxW?dN6fw}}uQcfVidX35Wk{XnhaMBVL(R|#+@b@}hUcG%`F91OGRSd%s~-Q%1e-uR zD;t}`lDekRWEzWo+wE+E=! z?uC82+(-INtu6bu-sRu@NRiw4PT_l z^*iS25g9%wY`^8V7mtB47c@8M_84~%TQ>u1pO+8-Brng1YYyEvvPRohY#Q}JL>^91 zuqygo#JkFLQ0&m#)VZn5whU{I$e)s2jJX+&G*^XJY(unJmPu(WtW@gjuGpmf(e|2) z-}pWv8@EnzKD3B}r_KE!#Dw+sxm9(AzPq?vNpzfz7@zHRo$6_|UddAH0o7bUsnf(B zD*~-lgi2e{(zxjSaEJ8Xj#lcUXGqPOUvso~T7_W$6xJuKtg1LXg7n*X;a8wRqTDsd zcMr8P<3#cMk!tjZ2F467C{EjWitR|KY1o`6@qacWw|8n3A#LUIz?YQxM3M+Vu;UA8cQ{t5Y44IF*~{m(WH6pt6MZtTz{_#xv9Nqa z@Ij`o#)p@i9ysL#%+%Ps@ZBY)E`$yaLI9biGvbL>hn4*xBm?21@k58H(K&bH`G!)x zvi$1xw)?BbZ3r2g-r;46qW5DGCZPOxp*@(xM?oL_t)Us=lT7Ky;wW7f#rcwVa)#zh@Poi$3dV}~fp5DU1 zHH-EX;r`50ZoT;8p4D_7^*!;_MQ8Yw7rm!ZuBM{a%=?ZNsHVBIwXjFOv8$;>(q;tc zB$}yOmOz!iCtX&qgmqqc#?7^_G#X&gDsJ6-#-ngDm}Nf{FCuon(`HzPCw)1|bv+M}*qk)6s3bmN+WL^K61<&t{%V!D4=^?T{pm>kP%dwIv#j_2 zooj@O%D%EBc|WvKf{3q>pguOuu*M_(^bmL+LHL?wLAZ1|<5(sxlF73~r@V}^MI1iP z%x|n5OuSp;q2JLPE;#WBkii{hHjDWxP$r;G+FZ*2`Lww%B8$H{Eh`&k(nW+BJ9CRN z(1%n+lVb{a-JPBm>DCE#fAH!n6J-jKAJJhFx0@-UtHq6W@H~ddGeB4rqjic_;>*1~E??|2KmzBDSrxC?GRx^!4c@CBr`R z{E*wstU`HB0UGH3kkI}PNI2fSUE|U>%5t2iJl0tJdT&5F&fb88!|IGsRkVripnAtc z5`5(@SFb7$qMY~CZ^;-=H~5zAd9kaVfpL=U-!&&a_1cB2~!n? zP;%Mha=GkBg;MUfT1rdx9zrHnzVkmqHsi87-3Nx|re_$a;VTteDe-fx^JR1IagMhO zauw1z`qLWZ7u+uwGPN4pIR;&Yu6!5=DHEuA$rfO;1Y5neh_5m!+F`t<74yZQ^@Q2P z^)QQPhw+xCjh;LsT0ZALPAx084ws)%3ps`V;QL%S#PHpUqn823c?5!rUS2sD${BG| z1Y3?6>U?t_)|~0Eg{Wc;za*tsDmog|#=(S3S-J zChnhSFIHnR))o3t(PwW4BOkYjjIE~lga$apZr1S!MkAHd?#?c((?m;1^6CmpP6`?f ztKl;#NeF3f1+TW=_UBs8cpXYm8c6gW;6Zk2fnOF^ydVX%8P};5r`fZ7)C8cAkPwC8 z&@##yfz+6@+glhzp$Hw+u1XMaoJ!wO#N)OKpSDD$uG%*BKhxKq{xXt$|E|>gk>Fb?X8aNmbY#J5N^_nypLYp>yM-w%h5f8 zFH2X0E3^M2xUKRCdU5}WZWy~9Xg9p+?JC`teBBn?)gC{lK;%e4A70~0FRp=Tv4cai z-qY}sVE$b{?RSj!l zC|$7|sZ^EI0v{u?=wKcKWn(zfbSe#ujE8w`7~IDA7|8IxdPjTh)j1Le{2@gAWG!i$ zoXS_W;553IIzrw;LdsmyB=CvKTw1bJ;UPA8bhr#;USho{#)$a?t%iv2?GQ1e4ea3$ zGP6a89-MuE+&xa_>8M^#X2nUkLY#cs+2H_o;d$iPAs_baB5>^bfcrYH4povx)2jT3pqqB2&;wz~PK9g-}X;grbm(6$+42q8H{%0P!_ zNkel>xQosU6jlC~|3k4Ml{`cAbk}GZZa0sLNrklqn6Cfstcv@q3%U$Xvrk3Kf40`X z$0n+iTnI7K5}NYMJuH+c=R)mb%} zewD)IivUTm?Pythc0zvu)uY4{N<6sQhF zkxH#(8e#E9paV_FcRd8TArHY}ngc!kbxNiKgC`7&o+yBW?U523pWK_8`^xNe;IJm* zFll~V(0P~fV~FK^v@l)d1_R6zt>{JpOwzOf`*!DBYRH6Kvk6MfP0;@HsjRvyT0+JG ziczuVW%0cZ{cxlftj?wDSQtU|e0LUB$PlJjg@YCkH_s%lnzmMo(|+P!LsTt~(2>In z4b!qwbuWem!$Q6;1q(qR{m4zHF&{TKHVMh^+F&umBcw!@adjMZrgm(=GSbK-X0SkBgVMv^Gr31uA^*iId?qY0QMtt&LGS(rU#+u{LT`<*X}&ee z&_|q*OJv_BjpLn@U9b_QXEGZJ$UNWpns97o8fGk{u@BIrDNiyCv)PQ!Nw5Oizc77A znkcqQtXxQoy)pDW_HD3v3Q=e`5W0J#s}ceIO*8aEkNhTZj$Z8RThAbZew936+pn1& z9=x`ApD@1b`XKS-T}^!3p?2HdU@qdvuKa7Cww=mvzNWF~gYfvDzT_E#tzakiSSddC zAqSW1H*ld_@4o>^7o~H)$bvXt3_2mu;8p;dOft{swtlBH!G_nb59IpxroKqYZsRlU-brBej7hJyI5t{&Zun)e*Y&Nc;j=@ zMSH#$uTUN`h5uN+A?+sh8X7vh78n%;AH?hN0}A+eSUWmFG!3>Q zldqU!@+ny4&BI)a&p%oIIdnD4d1h)V*(Uev^_&TUufXADiIe|U1#_(qUbf3BjC=BKXp@=DDFuby` z(i0B-PjG2O5Jdaj&`ESwxY3Cta~D&MFh}V|iHO!%u$ctnKX|37s39f7_6Ax~Z_Y+ngi zD*@5DW%(r%oZewd#p?Tql1V9)$_V?t3k8E9D7(XTw*;q$c<^-aNItVRe+q=XwV8~v z$@Z77E@$t&3tpZ3E|~N}mzSGdCa3&-2BKku4^Bu(2)hKI{gX|L;d{cv$-_BmE33d! zYHazFL+|V4mW7)RbDO;Wrl$vA=iTlIH9fWeP`R`A^PjT|ISUI{n(4y?GZTngxr{p+ zMs<8Mnma#~wz9Ces2^&-TyV1rh?#&puLGXP=b$;Xs6teWjth4rB#dDlMfR0wZclV+ zI#?6q)9?aeG5Te=6TSpv%&y4rcdRSm-z;gufVuNe4Bz}0^e7nywVs5x`~i%2EE2R8 zXEy8V$GvNRQ1HPQtESMrv8$p322qd8jMuYTNO6*x23ToGrrBr@<`O~U z{CBwkkAa!PhP6ujwoR2(nB1+5G1w)zopqVYo?|LcFA&QabcNdxrzAlY3DQxBCu1FUDNp=S^P2P zcEwXc%A_$HnMmLG{Cs>uqzV$zdlY}mgjf-jYra_K(Et?o!y}y5=KZ6VAu1COMtg5 zE;lZC;2t>pW5?$Cc7n-)n?}04k53NB4S>^WR-><1mS{6Byu58xYP)|m%*=f*#qK&d zRl|1Q5&bv!vhBtNcC--8#Hn=`(E_5K6{MxTKJ{ z&@}mIUR%|8rz!g1v0oYL3S#w7s)QLS$la0iD-H|Y45Fn0aq67wU@}~PV$C5LJw7${ zb-%HC;_^7nPDlxL;yhp6ZcZfr6RB2UzjSIH?InD$He)ptU%=h%Eea7$+nnh)PqG5-$bI)k+jZ9mxtDeAA0#0fF=C<;pOcHQ=Dd)_(Vs^5ROaa)vRQEw zS#!}z_~*z1zB+-MpfvFZBy*cWOKVB$K1oOe%9KXa%Go#xAxVLjjA7(T4&JPRDhh~B zV9JKGU({fCKv{k`?@gGR6j-?+tq4X3_VzoO!;6x`Ee!^zjn%bJV;@!N;-pcA5I0(} znr@mSSiTPl28|J6OFC=z$i?OZmSj_=PO^3JE-ubHG2CB|6O@Y$KagD`qqLTHrVH7z zUbqL7_~#8kDVsa=tud`3kQqx7u~D2dTL-Ggvv?FkH!f2!`uIN?wL7u9+Vum>nY^RY z;Bfo1_v4o)vjEzC?P~#6aEu~*`8@XMZFA)=R_<_cI~-XZDp=)osnT60YXgMN5&Lem z4ReZgPE+u+U~>J|NY+oecD$O<@4uYXJ`K` zV5Z9PnEzwmV05-v=6+g~ij0O9bbW2l&p-a_RlaL<>PTIe--Spd;@N5-G>_Q#g|LWe zFIg4Sw7n;hcxEPd3~jv_JYZtfWqNX4;!isVi{)NseaLB0tUv&CIiF^znZn?%J*g7s zZR$`XL5I2=6pH8^K20wDWG?AsA-7+6ijW3!+VcHTHoMvjI+$g&AFTP;zLRvu8-h?H z3O+7u=0I6<4M($~MG3CZpds(l zA%8YxF|JFaZ5Rg-$B*Z5b|6GZhwT>Dv9ohyukrBA&m7h0MN?w6^deYR#LJslSF8vH z4g3s>c8kknBNGw=04t@fE@AA;v-c*|$!s&j&p&tY(>+Gau=ATq!(Xhl_8>|Kz?=bQP+v`$k1(8a(c&1*bNA}j&fiv*&VPWYh5&b41!M^*;9UK~( zXY%GcIyRO3WXY=F;v<$>rYi^&ppDI*OMV3s1`_s*CjvpBTt0-%2r`i|y2N2PU_%`@ z9x=Zyxy?sDOo@2vN_c#HyuXiNW9QH6 zSpuu9Q`C3x>WIc8h~p7wYYvkcoJ2U3%8NY3PluqV2f#a=dTA(7C{jOUTPVwtdo>m2 zRU1B=#LricNOlb(h+`T!U=5$K6ia(19p)E=Q4NV^S3#oG;snXh_4t+>L|Nm$B_~_R z3y)7COw_%{93J;bs;gUubaZrRGL}#AY`7?;CPf`ax8BrO(6SwgYymwD*RtQ+4>@}2 z$#HR$9DhGDvnLlF8#@wCB}w{Quanyc4p#5kV_nhxx|;9ibEaW#r*7_t_mlppA`N<2 z-Qq*|EfIlC&N!B}@M8}6>itpT$!s-4_2n9PTbsviEkq5NYX@v0fO!-Bs4CB+iAfZ{ zov@{xYbo&!ZKT3cYlm?(Rej7`pe{bL)$itsX2?q*L?-5odYax(I?ds8V215bb{-eE z1dc_1!*KM$W|p26`#n7OKM*B!xF_Nr?3Dr8-cK*9m~Cwp zsT*a``HT=m5k z2CKE7kUp+hCh4y^TnkDyyfWXC^>m|0D8dHP{(k$9DmTO7KKem!dT1K@@20hAht>wG zaQdZL$g!|D4&jkeaTp(msHjSHD&k@z!@vxMCqdb@{}$G}>)ijdMOMh-Ll|>udyR#% zBGjXaDjN=N$xEfnx#~Jn(qL)gPq-H*xQoSPFLjaDl zvNE-E8&G1(pujb~qBhuGSYFP?Mgd>m6r4=(Jb+BecTH>JdJ+;EN*a7NU^W3Xhtx3t zcIzQ-;R^~|dXZednAf=oYZ>~b!*ZXE47Nb+gPP*_W*NWd9j-(Yv%6mFqy#3B&0Xj& zGk!o_>S{5L-;hS7Jdb!WqglV{i?7I2tFNW;40IpQQp$cmMumT{I~Yg;B%zF2Y^45* z9hqv`4$15Q#K=Oyf15`Q=;Yth0m~DN1oyhJ(BkMMP=>*A!ZIA-n<2CK|IwBGauu1wJkA84$YocBD zxE+gzyo5!LsdC@8i2gqtxO9jk=4~|C%j5K2r#?`67kGa;YpA?Jr(p;_x7C;1^O~N2 zuCWCEu@yF`Mu_d)>G#*&lu`t(tY2W;P+e0dUMs`1=HRjY%`Z@j{0@Ju7u^<3`oD-q3COvho`Rq>W zdBT*ITO|J9{H1U00^jIP5*%6KYB5h6h+zz}8`=vKf-F}9QDF^u*W0ltjZ1+jq+F;u z8gMQqi#{26^Y8Z-!#L{OW&F-PXT%9-JRpifKp0wDt28(~3`>B669LpWlU3{S1m8yP z)!Iim1qUNf(RpUu&p!08e6#b)Oc(ZWQZAe9Tz5YlKg7PB&4iAr3Tzw{us<&D&2~Xf z-Xoi>wz1ONDx%YAu?%WGp>9ie!N433q8_Iy9yYIT$KCi*X+)?DUk5FI`?%a$&qYg% z3$)YH>Ttz4V$$+ItXL+gn2oVcg^U>;hmN2L%g*H5-92X-?*06TPsw5Qc*(1e>pbwx zZ_w$QaG(X;@!pMLUnkE<&BXm6r6@#&VwT5|CT;|qu!HZV3mp;{~^ewFqK;nJG{_dl4%Qq<1yDwC8z13!c1QdHYz!NPJG2n83FZ~m$ zc7`TxiKEqK$(A3)ACCVHB3Lg*ny^S=w;n9uHz`K=FtL;7KDb;Kb~~j*+UW?dw|4*M zz;S@o#`F=AQEts}`4_>?V=eJy*Qrk7Om>Wilb>XE2FJl~LUoSU`_m$}B9r4beh}ep zi;K>tb^N`HL&0e?qmgRwToqnzBU?8q->lTqf<{-1@Iv)hdejjlReK-r58ZoaTv77gH9 zXXgHv)sieD5+JME#?{ws3+WYpYcG5@>+Hdy!+EFT;_klIy!Z-Rgc){8;)_ri=5Fu- z_oLCy@sNbA%3CkQ#uqJd3=83YuH61O)=1S*HTF@lv3<`s+dDB|0ue;r8R2y8&LX@% zYxUW3ZGPX%{Ro+QdRadj4*5oen-2s(6<3!RZDPdHq3y3riJCmh z%a{yl0EoBr--If9Qwa(7tc-=wv$=~_rOp}#i$R58W#)$~M3PMV4q+!^AGt-&O1281PY40)=;e?UZ}R)__~uJePD zUW4y!xh#4%oVrrG39Mz)6K>1zi%iTDR>^jeDlOYayiJLY{`YvzWO?gG+g)jFJAYx4 z<}~KazF6N%{F0^cRyX)_nU8$qk3|r+l8?M*BCdyV@`Q28Ti8)W>en5|>v2Fc%|va8 zhkE_#yGzF{52Q6B)WZa+!>uEJ4XinVMyCG!P4mj6>P8J-#q24dijZ>zSDmoh76mWs zu25)OW)~zYO8);#Q+D=g%Kw$9r4frDrM2yCCOZAziqws{7NPPb6Ke+`DZD7plqr_! z7by{@qs!%1D^;S7j;!vw`;LcubCqk5tTZ;unRYqyVb_X6ALLh`hqY|05t4w(K8!Ab zQK{pn{m5~UTK(wGQ$^)>OOiJarL7lcV*;)|Rp-Y_5c693_hxz#F){261A9p0{5_yJ zPH5~cp64_7ZLXJ-<2IkQ?6V@!oJU?~e-osoY`{qJhkJ0NAYfsh=oI&8DIEXEO6_J< z8Z-EP627tPh48||j5aWzI{RXHI$Kbrt*_jJVNMpL#&=+)9hji^}( zOOI0_G0`6Lw47>1BwYBX6%F&Q%O=|eW#{##>L^p8L&$I-DA%8WG)B9;pO@>@^gGFk zu50qWeH~{BTlb=2wGMMgX-`WHrKtMBRD^!`D+u^f^)I7iW9nBIW_Yu?dR}^ruLqZ< zYr^;_I1yt2zldXi7u4U@qaX7w+&{T&!whlz$Moz~9oFPJ9T#x$g9-37$Sk&?y&u*j zfp8wphaWMrZq;Deg<=IgdkUlXs0kC=<&QKepwm98F#uUP#;hCm*~O7i?2QAPO0{J6 z_9_V1ZOUD=SL%F4_Dh@`t2JNic8_>z&QSUrsM*aNrB>X-b24=b3TL7{&!#OBY5zc6 za&|P}h`yJ?hEd$s7O~lOD>wsVVmIHFz<%X=cahm((c=MaQjT5>Jv}!goFfA9H1l(w zW=q=tl6XUCWWDy~Lu&uvGbXF!=A!F=ZpT)<2!rBDcTCqwGK3IM9lQM|g^>mS1?% zQ1b6^G@io+;`)EyKnCEh0?c- z(>puRVk7Qz@2FgkPS2DbNtp-!#C%wjKjP8W2U^zq`7(PCpXA@M$}YKcaXpxTH)wJF z-g%JXQBaK8RFCd~BHCyoZgXn?Wp4SrW<+bd;#imKrXPfxnv+4A_!$ggSFKghMLO4j^ z&+I!DQ*uTRELRs-TA-}eTZT#L>oT&Lg;<8`*r|G0J6Y;ra-3HYe>c<-%r~A;O}Xe* zxk7iva*r4FI8@2`J$L9Jox9t5UQks!e`B=y-Xm%6a%HgUMvO8yH&>sK)+eC<;A&ub zhBCtZ^aTq3w)>e%nZFjN$hNc-7&Ss(jr3j(E_XxT#ASg^p zNy(7=QHv^du`^+^nR8mABcsl73ddE=<}VQ&_E1*Okm;dm;mrhGWC#xvEFQnYRN-Rp zY|)wV;M=Y0;g0C|Xnenh3s(Ydw{T|M?en-auUN0W0_?(*uu{90j0k$1dbuNG;M7l) zV>>M^YS?fHpAeO$S1s+)u_sL-g%@@y&FMlZ;Md9@?w*|6^SJ5em)keTXm zsq?)W;L=(e>$Q{5B(Ld<_|PX3@01ut$28(jRjVU>QN*n+J-H&#BbsK(2p$p<$6Rt8 zhPjxs@JkPn2k*Q?; zqc-h`&4(J(&h1n}{P-@s@rhE`JT6M!c$(85VED$HthYUn0s@BKzE(^EjltGSe;0^lUpBDSa;b3H%1XoAj1xvk?{F0Jyn1 z<>%)_hv)5@bN`>o0bO2e3lQiB{f>rMSsrWQ#pi1pX|eVdkQiv=B>kAdxmE--E~T#$%U+=)#0`K#ysmj=Tc#)VmNz&FuMF zX-_M`%Md#*3*j7ttC#Iba#64qUbMZrFL+IN?tBceGtG2gl|*l=f$K-3xW&p99Qr58 zr{nta1TS1Gnn^I%Uv{HW;-^d`w>J*|*4ibaL-j+?=eG;z72)kL!O$gJQG*n`+rJvx z(-&d&4Nx(LbdPo$;V&khhFdj4q~zp-D~KwH1@YYEgIFBn??=v~xQf8%vjo{$dSwETC9E{ycFb+vco-zR!;7!BS++|9pHU zWDbgZ3)w_EC7!sU4C$5@VDK^l?|QqAudpxB_miV0`Ujdh(ZRVWyDF|a=H3mqh{L8I zkLXt4fapFbpFht9yg-M6=KtRb{&vWprTdpQy~mvWr<$`G;X-3*aJk9Jrd`2=Jl;(* zEB22I->>a}9N}p$ym(#jfa>{u0EZGI)|+luQ?2LKc*;dGklKeDN;{-HHR~Fj>=0{f zZP>cM-k9UA`P#TJaP5T$s@Vu7NpT9o^Zi z%b56LLJ_yjZN|KjUBke^_>9!d#TT`TG8Uun%iJrof(U@T$Qqkr`YvHk$;#Fcmzj$M zoOeWoAx1c*zQuRcDrxYrZeKc((Xu8~GhvaE0^9SJT_D$ngdpDZQ~d@Argq~ggA7kS z2sgvZzT493GG?=#1WxATb@RhscX+U=1Pny{%-#Q!8Ngs=I5Fl=CIsc7?R zG;vaOh;X+5xI8G<2X~F5U~~aF*C9a?*-JnTy|9)y{w?bgW~(tk!S00paw>*ZvNrny z;{9e#_1S8i`u+KGGAQXSnZAn`^H{nYY>5uQngf5KJ@XzIo8l zCbJ-CzRZD~FDWjgb$dIPlruzwpSD~m9%%+NV~+VjhHw{+E-_o9I|hMVDH;r)6K^m^ zokluIpCUAI*OQxc9`eTFhqTsqwcrw`$i5NjrmEFp#%JL3j&lEO$l6_}DbgDD>VM;- zO23c@!6!{Hw|FEp)w{RhwZ98>HDdC#%|Ms*;x!XILm0f*e5`{!C7jPw*=(WFXqnr4 z4|_4m(M?1hv%l76RpL8A=k-DYN*7HggO!~4+GYJA$6A@H`RtgsQ0_=e0IyKf`}jo4 z9aXLUPjQb{jS19eyV;|{+r3ysighV9wg0z+{6zTQm>g#9Ure4Tt&Vsn@Ou_W;tA^F z_v#sRTbh-iZod=qIzwmkxeXspWnK>zw#-#%VilHHkT5BB)hwSnhu@_Vs9nIDQ!(>p z>$IFkY=mvcc7MF)I~K{*FO{#Dh?WovV?R{GL3$*`@<>i|jaieE1erPl`W^2opU(;} z^f^qy0;}Yu$Wz6lBCZ>dH;FD>@qigUSL&e2?|k*g{dNv2J}ZG1(ePt`cM}Al3U90E zguj#Q`p#(W%DG-zl|C{}XAtd4O#^ejY}dQx<5g>QtUyjEL%KzBvDJ|3n{_m1yzWm| zAO{WSK+4Md4d&)>$FZZX=oOOs=Q@};2X20;48vh%s znErZOaMmxB^|KFOYhjmCA+ruAZtXDRHCI2QIc;_0%6?}3N;{E4PpG1(LPhsrB&cBa zC>B%|@?(wt;zm!a;SSU`K!>>YVfP6K!(iwG(LTC{wvtNheDzI;J24ukPNZgbR#j5L z?axo0NgxS&p!UK4y%$^+jDtSIlWD1ynh(BES{q-KOLar8XcS|Vu}dKg=M#S&X_I22 z>!kL(0~x4J9sE_(8CrROu9fQnWrgU0++X1z{r-j6dLh2pJnfFR9Oa2a9*NOPo|jgd>x%E&D`VARAj zcw<$Ke&jpj*og*GgKlo0o2))qIPR^;YzH$nZB|D{fY?6#Zzrn2Qm?U7wc;n~cz1ri zsIKmvS@O@|{l`1sEaJbysLOvK&}>}9^7sF%IUSk7IR`m%oR6^6YRl5IZP|zhI;0st zoFzYd3_~;_pAd0QerLBFs z+GfJXX}1;Cbk1eC5tF^z?n8x&R6@o;2KVyfQ5!r+!cCg<+KOQmUk45IOH52pomX-U zwtM!Py1n>Tst1G6O%T7&Ti$(_aa7#ZlN7dIHLl){?IWS7KRGjIG6`IwEOG!B6;?J` z$9|<0$?A@i`sWsIj!ct3tb-#DX>3d&SbXwfgZD0LZVe!(=^%(n^ysFK@TV*KF>-t+ zf@u+Gr_S@NAaTU_PX4tUS^y;$c)@U76t?6kM>Sk|lH)sXM2i)by%W~XZKl7Eu7BDs z`f)Ko&3;C7Kx0tv1=HMpC+7+G0Y-VX>LP^glC^=|k$XQKfe9-9^IgYGeBBAg`};l; zG$r4AlQ&H@J~O=Ni1l|VclOPYpX$Xm1hHT>CCDW4ob*M*px)|v zK=)jr>;-X{AP_B003f6SU7neC_iDxHdFlasq5B*R^zh4*8G@y@Z!7dJX81*t7o~@X zD5IZ-p(MOdPQh*&dJpFd{r!90{fvTvwEPMLpRN?M#`qDTA!Ubk5T3=n zQe5tg6})|K2Sg!2#UB0JHkS~sgI4|n#Qr0)W!=U57kIJa(6hBs{zI^{t$|jK+isSk zPAR|{^xZ%2$LUc-E5?Y-~&T5BZ`{bI26&$V*)S2hR4}1ss21#e9&t*tOOPnIgF;%zy!hx|GMaSL@C#)7jbh#ThdX~ z${5=`iFl#Od|HkP5ARx@W4K(4=`dQmmpGNVqgdGa#ZgU_gI&@?MiL%mb%#NMrLdq% z+ik+ojY)!XZxX@sr!DGx8oEyk|Mo6HkY7Fp+Ko=fLE>hK*jThQ9X0N zb-9izy<87G+~j344s(;>kv|&QoQzN zAA=c%sE}nD#sI6kiNXlj7|bGd8pqPby)T1P--7ks-WT@rM~}d?><(Cwoc|X!?G<^A zf9OB>XCZ{sHJDyaIH$w@cpDfuw=4drQm#*UA7Q|S_MpLGt|Fna3M?e^o!>Ps14EEjDgBj~yXUyM&ZL5|1I|zJ6X5~frxXj7fpF-dCAb1jDKc& z`s(JE5TQ=n(QLpC#MKO_Zz4s&<0xr`IvG-G4o{pru(}QnEclDqo{?gLjMn`?nwH~S z$LoD}hd;=@u{9o-pNCzL6*Tt6@0^rL|kT{7WIZ+7D#J(pKq!VPc7ew7HVM zEvuR!uF59%WYT6xbc2T`tFT%pWQ1;~fi&_GAXC_T#U-`LJC8|3$h74Q&1_n*--+$? zj~}|hXw_M@@~^v9*5}5lI`nO@IhG?)Ty!vY|5oJK)AcL5aq89-d`nhp@0;wPPK@Kl zN5I|@S#KR#&_Q$Ni|*<9hY!@c4py*l%tLQ5Z_v*R`ToqRB%sTOWQc?#PSQtcZ2c#e z_V!ONrEZ-g4RyVK*GxMv7F$DArI>4PexNMZO>u6r(^ns?{&5)za04Hl;0AelbaD-m zb;0)5PeMzcTe#aIqswNITElUu6kh@l=tI8o zhCMdJ;=9C8bl@N~(Nkr}0LAaL#f0cx8{gx(AlPhWWi#*2y~mx}eqs3koxHqUXhs=O zv;Q&rywH?9RRW*o;T3Iec0GRlKw9_pLV+;$F}ij~F?l_7-3RI&UJqmm<>j3DRAWHRc#wLis1mKkMvt?XVRbjfuD48)fJxUdf@g z+*KRXzXZRx3LF4?UQ%;&qnY%#hNoqu2Gx!Kqjm2iK6JX^Ieh5-a@+o(uE%}JTzkX? z!d~ zI7EbjNUo__ZX?W=^Jm{&+V^m8y*$z2VhqBqGqit=yMx8w?iZ-5B~31whdow!y5H7# zdCAD3q&D^|*ZBz&hccmm4vFMNGfVI-K7BE;*e^=kP!fl7-XUMY4z|4SJL>Ui2<608gGl~APbEl-A zqDB(1^_u_QYotv_{=FJWJ8r}e3nSzbS3IDv>x#bV@G41msvupBRNcTkv1b-HR^bP5 z(rFu=^7S=WJVCiD9(9*a$t`C%Dy}u0E=`iaC# z0IixWMe$TJwt0$Dw4PyU^}M!|2-qsCqXB@QSMHLVFgpINfj{)pA`h5D^Gz{kRg-b~ zMXggmktnVHjSfFlqL4l?=*Y-{jAYN%ix*a(==D;A@~ZU`r{qNXR;g_j_BEgQ%Q(L@zFLx8782^K4m*BWw^8dSGI7*6s3wvViuCAt|MX2a_=X=8#?O$_8 zjZ-f{`hGpWVUgj3JRu;6lq)G1O2lPF@r{q@Va=W8`L-P{Q}GooE)FxN&^s9P+dX1u z@d)92`Ayk2%D#+sNGgTq=lzs?)}6gk_#xaWbk&xxaM|L!S?} zgXoG~m~0V3#R|jt>M185q_vW=nPMTZ+dGEW9#CFko)<$Ja%zbpU^+67C2$ja65^@^ z5Fo2KGSDw?kRn(E$ysJS7G8EBvv@_AxRs-=r1+qdN%0bJhzC5XSYBkhV@@DrrE|^leM%;=prvzgnJA^IRHdpDsCgU{~9@(svl2mKXFX(Fl3Tz-OZP zKKFXk6^lgvjlDYpdc}QfGU{lX1hKjZ-Vv($IxxA_%L&1Urry?vO>bcNc?sSRfNL8I zg;o^!T~5%yc0xfi`32Lb{>}vFWs{X^?Zx7q&oq_ijZtK_5(~vN>4a z)kSY=>~PlsXx6y5PaFE6)9a5A)pu!<&JtUI!(UBurXOfk;h}L7J+6B<#MBz-9fgQ3 zmoxS)Tg9$~8LbC8x3&vJKJaS+Tlm2gKd+z|x%|$Nx~KLFT3Da2u%tGBjO}_n{)|Sx zDt|GVO^0@P+58Op+rKU}x2pAUfc1sYn8*UJe%vr7@HVY?dpUZKID*UbQ>(NNFY3kx zPr!i07v`27V3bcr4E*JB4>W6KJ1((>T<6Y?=2JWQ|ImeZ6)ERZ6};WDAtB8^e==A~OHK}|y6}l{ zhXBj4PfwMxtx40%r*4d?!sLpAFTCw<=4HGQ7ae{$LXVfo5-L75HLW0DMu+bg-lhem z!2$bUxXs3$pS`IP6BG>SVi5PM){IYm;x-9ns`5Iu44qDg?rWe=KY?Rn`m8H_!jcT$ z5l#}vq(Gp?%O>9gG13vJqfnTCEHkaR09d0v@}pA$P9pfPD3U@qCq>`V;E~*>+r#_$MWiaK2?|pHnom+Mep>Z{y;9(jI!L zbUt!ltZ^iBt9T=2ZU%Yq*HSgF>$?(VAEu^lovjiV86Z|ig>6&~Z{Ba0BriF(@!D61 zpGLYZe4_ZrY((9xLTdCTw$x47AoOX~iF`NiiR3vfdlk+QoV5wUNvQa2a1^;1@u_2? z5h@t{LUTn*syAzTo~!YFJlvrsSFc*2o=IM}@@7=jEcJbV%yRzDuSl(eQ13~~o*LWS zvtl87Qkqyp?t_G(y%oF0{5494tAvUrreCT`Tm;ZNzM7OUh8y2AVFPXMoZN7hkB&3t znzcPD08n}Vp6H4=mWOD5nI#i$dSc`V#hyu}Mnx5EEeSGLV`D<{|9QyzHQD^Jrx$T@ zOR?X~NNmrdUN(y?oa=^rSoO<@XD}tBviYGJy)^kl;jgN$!n6|w1ax$91v_RWy5wdr zc(^t;vN}UTbX`opiCBH<@&3|)Kz~$KKZ)LuzC#@$6n#juE8>br*x4l6_mtVfqh_U4 zTs6U>k(s*Ik1FEJyFo7u!pu+Z!0dR46)SGjDa8@ulLRiykCSNFKm`YF9XNE!5$5X$ zd-EmtaV{}c3dW=L%)8Vt+JqG=B|ux?+>`JIK{ngn**(RyhRk@HE{!mA^a*Ay!|DVa z+nQepS3a|Rc%rl~#)f)VkOC=R&v%NZ8)y^GbTp}g2OH-Xw!luZm+w*OVHZ~v=i5Hc zf`nRcBZ`k!+EnaFPkc3XQd7OV`#>DLQL^jUHq`MtAw6Wjw2GM-W`jK7D%F=Jioe`spupY&qFnE z0)iF_&k`S>+sG5yujpIDSCUQas7sIA zIY3^sSB9gSW~L!bICVO1eYR^SDyTnvE-{afl=XD*rbJT6*`tn#mN84$oEP+nz*jH z+-G|-DlANt4Mt*X@V{Hq!p$n$`A zY-B~qp2D5H|DpaqI_7+N6veeDT3;U|ku6zu3#S*JeA6@WXzK-6t&bNppec1=-JE?M zQgJz-NYpss&{*n=XHxt0+56^L;uX^!(7*2DKdlNS^kh*XvUr-w7HsoZ@)^QDT6%qN z_>@NClQvD=5a$Nm$jM{_zT17-n{>C@*XL==F;B!HeX;e#K-UzobRwvp(d>@Bk%1i_C%2q4t`CsB-(ktzW~j0ugfmP zhYqWX537dJv3z{KZA2DNi(N##OZ$}f2H{ThqohsBZbkdq=yynarjl3+esASc>^(Sw zoZJxLg!nO%;7pGSZXe!b1MSe!zCREIdcX`%X8PROpud!9KiVqtAu%fSsMO6(x3Kd zOz4+xE=3nX@_pJw9*wq)Dg0**)jW26@`Fadziz-pd+4lsgvx#O6OhH2e?15@ z{f8HW@6nD+%Bjn$m z0=$j~r&&8gWt_PVePvS8I_w7Pw`@7^emU>>^v@!TI)JpJHG+ki8O^bZ%@|n|NQtD! ze5C7^CjYFXr&q>13?RLc_i|jEeX{o-QDqkT%+mfy;=76wVNLE!`n04b*&GkrBMltU zzUE!yWf$gK1P&{jR_0FX!f0kl)yM7Q4#!=oPnI1BHa=(DPhAuXJ1*IpV6Ig{>#1Q* z^d}$?yV4A!wxP@yp2N>qz){I4@{$UegAQ4%v-&qrpES8Psf3oKT1VmQKU=@U5E($} zIg_(O&T&=ux^ia^8WHZEc2ZiTXeu8&dYUB#jfLMrLioES>RrLG(qW}&rLCI@1EtuX z5-P&_%ZKllso1mO%yMm1=ikMtsp$~9hqcLfT9@k_4APeeb5BxUDi@RIU~c8j9axnF z|M+_h(~Jfe8$&{`_n2{*LZF@iI!!Z*(LKJEq$EG+7HsP%>#G)uCag;)g+my=H}*j z=|`#5{M@ZYxc|ytZ}MU3jL2-+)7xCyq1keUCX7#8Hh;p0%f|ggqq1 z()u-V&p1oU%U$Sn!e(39)&(kc$6?^GUul|SKb~TOJ0Ew3QjH)UM42#KD!;NWdz#`7 zOqyz!%O#ihwE85Mkk$$qs&Q@&KHlz;g+oF(xA*p^t0b*9AOmDOFqqOaDy*z#?S`1z zkAPrn|wU(GPxTE}J=}P|Lbf+AR+06%$dy*d79f-MC5^B3DG6u(s+R+W zhTA-|ed=p`S%zuH2+JKft(3(otg4EBQy+!Nd5ZPjZwq*@?4f&oM?D-wm zyEKxT+;ou+x{zcyf-7&t0~Sh}Ok949VN{Gy_WS0qyyqqYuiXR!ufw2LVQUT*Xy(Q? z8Nxgcvbm#q4vhMUsxVP{w+nWH{4BY*CC!Nowu$UxkF&1{N{wE0>mQci_Fr#dh4!r* zdKa(93~FNg>(Z*pE}~OH^7F*6t<>e0=vgaNjO>!yrc{R-Gm4^8h}k?&UkDg>DzKS| zG=okq`9=+NjlV26!8qSHD(5Bx*#5JQJpRdW^>p!yuozB#-Ca5r*nIh(;Fs{E zj%`*mb2U))hbZ%ZtgXUl#{W47cTfW45JrM3bWnQ-GMzty#>{)Z<8w=9SLK9Tgn7v7 z7{KaPtUqn*VH{M1lG?Y{nNpG{JcmnFzZ$IU?sD2J_tu~p@R9;60oTfu?PNn&6CxS5 z`>VJTZ5X}#_?*LEIDLLBf$l2sf%EkaT2{a7z3I>g(it|NFX>PCT&*a07nxT?;Q14v zwU*vjgO|X1if*sh0B&wcjWZw4b5)e)E4miVQ}d!Y4Ib} zLjycc(Ee$f<5b=(kJWFol0CkzBhEFOSaDpd@!MRcvB;S+3)}>Ub#IaCVsLJuYQY;o zt%&nbTOL78!j_`BL8XC>+W$RG9k+T@05ECuoLvHz$5S+KtDPSTENC-KpBp~6KZ)h< zF+qz_n^Bd8r9-0eD0uajlRQMxh*YPsfOL$%`V>r(1uC7qACG1I{(fl|Bh`}WIA-_t ziifK~T@pP(sWW;=&6i$gN9S1s)kOJOL3%&fWM@R1!?ImUa~SUE$=|UN{$O8&PU4y! z3_{={G!*pXu*@VJlOJC%(cps_JWed4>-2K_sZ}EszngIS3gn% zm>4KRc6;`=dM4$E0TJ25+3}7-*A%fSF|1k!M-~}BApdcH51}yTxcDqWllkD4ZWN2W zLX*wA1?smG_qZw^)OsVUhi(CgiNUIMrV8=-wi)S#-MP~5z|Mo0l70sRiME8G6?c6~e0Y1#A}`?0(I8}Gdu;as8*Kfo}x zN6VPde6x~eRVV{#zr))8IdC3}y#7;z{75iQD{S^(PbPX=Gc`xs+)5%{FA>4{npz zX@)7~rN`jXHR^MYQ`ODZkeb7$8$Idx~LSRwHyd}NShmf*ps#anpV<3Mi zxPqo!!by%})&1kst?hvAI+^&z6Z!js06{piU*D*yvJnM3CKFt#t-cpGodG#Cyc?;Q zfrL0pTejd)Ge*)w^XG=Th+y{xa~n2O0%k9Ll$H-7J*KxZ!H^9<*wp1|Huq)jSt1vP z5O?5vaAWErC2Cn;ea;%6GuiyE)ONM5UEkW8E<@8h&rY9i3H8s=36m!thp^=rl_<|a z!}jcl^#D=VGU>lO#C{}Wac(#^D}PYzqq!S9l9cB~#U0L`6iC)v4ernBNP{bR4#NxK z>GLpBVG__srZll*{@eg^( z{M$>(b8QP2y5Ry2ZtF|skJntUD(b07zVwQoJ4tc^Uki9nB$)WMdt`QO8;5l%C48AzGrZ3QeMw~K>7YbL{^sa6v~#E zqBoqRX~gR_{F zp+mVo{wE_-X*yUKoW82{e;fSls|Vog@45fm%jFu$;{W}Dbm4!${#)m+o`1*ZWX}4~u zmt9epfi^Vo@Ic$PAX>O!@#&;eO{{f?`S%D7ICb%0NAFh&a_>(9eEevgx>DeiVX4m@ zgDv|;5a2VJG(4IAD+i`|Q{z89Kex?mjqMo0D^4OF`{0kY2UhcO!yp?2bvt(|4i@qi z_tV~zIqS=_2UWJ~Cj7~KDHfMA4^%S0W58>j6<4>66i6$%tlxx&$_Le18J4)<%+b2O$0PO`1#Jzar?-}9#u&Ej8Vng;%-r#2t+K>ss&3*_jk z*L8EGWJXsdLWwlRLOP&Gm3qeOgarqaABJkZ91Gms#n)7E`eKX%-;H5iTuOG7aFcG+ zM?g1r+i%)VJn!Tb*hAygrvlRCvl>LoSaVt*$xfINm|;w&qemi5lqa?C+pP&ZdRi{# zQxI--)_N7@%u2KW*wF-2yDwxdGAY-e2YJsrGxX^OpNg4^#Ja&o{5eCv(QDeJm&+DK zkqq*TN~7@jW6%Z zCvK;M;iA!?o|?2e_|k~-f7MyO4P92<^&?!3Eley)szr=5GZ@SLY7NyBSzFjA6R*{>nZfy2^$Mqa#Ww`z^&n}NY!9&H=b8P(_Fpzv`*%c zWb>k{@!x3?P~GtVg4cbeX(~=1ztJ%l4n8viHc(pxnDXRLldxUtC``??~bIjEnXj z7<*_U?~%2a*U>nk7u?aPd0jXfIw``-vaOU<4w zHo{MTezFeahuUle(B(ou^reR7uW_lxR<_h$P?gV(Ibx=ozW(_(xXC2v)T}8>29+1; zuUzT;Db#oi0`##2mDvEdtE~w<_YAK}o2W^%(8xbsN*H-vE*$u~q3kkSlJH2Dj?J)l z(9f5f!Nf0S|R`P(4$pB0p+e zZWoZJe`;EJ|DBOGKO@>Yn>#&*yB?&9mb>VS$`(D@Vupw;srM^m3{Y|QSQ4QOj_5#j77<2{ ziK(9dXxv#G0{8tNdPU^-|JW->xPT4AAzk4XNDK+{AbzL_1f+mK;AV9!760OoOtx=& z9UykNeU{{yzhx*2C=~Y&?of7u0!=N;M4^edRb}@7LBon-yVl2 z>nh>0#>B;>bmR3PPJa6%T3gY91$FexGnE^HaP{@X2n5AGzbSv@AjhSt(<%sqc}ASL ze~nm?!37>?o2P=(EMrC@ACIG_p6VM|cjx9T*FNZi)XSpvl8{A(y(40?(=k0iD1K?e z)KK##7eb8cI_$0*2FjB4JKS4Is5RmZR)U+C1{C4o#)!_zgHIW1iU5RDz4GlIkg(_v zY^=|fJxlvpSKR>=)0l=w-b9h{(M$7YKka{F6FD?S2+S9AtGEi|X>rB)bZv3lXx}2E z*=58Gko%ypO({=jGU1u=On(!Un02J``-M0Z^I@9i15UEsCq5cw#iai!(j=i5oWCme zlwHdfRgDoikrQAEKIoY(J~dlZq{YUu@5K$wGiftl&r1`^SNNRcOU9AF{Ozk@!S^3s z!uO>vKXSVu;KZEtfIx29Xkv4C?dQ0!m5lI54lPIyYnxq*JX`Xnr^AwJdW`kw>w!JD z={!b<7?A!{nCO#v$%(WJk;S?ODk^#{jjl9q_AZZ`K+NDK(IOXRUAeRdf>3nQ-=V_1 z<7GX?l12cW@@t^ZHEzalpe}v8F{14-a-d}#jrOr$-|%QN$`S|S>-fgB1Lu3OBxntJ zQf#ao>CxvLNn4AjD-7EbBD<0Yc|F9&Q(yqhyY_MemTs+8Sq1W zYOt_7Lb5KRg%KRt==AxbI$F$yO_3=Zh`;KjEI`8frDX=)xa+UsC7Msi`pYYf+=DHH zXF!n(c{sEU^4#Ykh=)!fy#hfd3eE z_2n8AmDW|;fluFG9Q^$aN@s%c&K#lo~v@l^LoP+V{ zGTgSp;GsmcvC0GC{`DG{%x9l#^`l?&(foUklM)GTepy&PUUnw7!(M4TJlf66;BU6K zxv54Ii7W9o!xa%}*;Nl`Vl_y;gks}{kRTq5cN>Q8^q6F^|9el%*6&L3$M>G9#*1Q} ztIqV(R>yW6?OxVZRC6dT;7B`RR&A^0^@@G!#WpRRD0!-_N~es)?>oe zk;L%eDz@oWw^jU&rri}?5Bm_Iqf)qE$dCM-Zi_S8Mw`4YE>NF8-hWhI68y{N&c`Lb zNf;Sy_mT@{`l@WR`jD&RVQ~G|zgOjTZ@?x71OD&k#v6U|WIdvlE}HR__nzdKb~Tpu zTEb*~`BmGu9eYX*Uq@4)$Tsozvj3(hvY}pkd}XfRbNaq>L8OfDk^u^k+gW&!{RtE!YCoJk-& z`hPh=+emA$MX^fQ%9Qw>XG00$mKk1&h}J{?+21bARMK4FV6SRs$Rt*tDOTM80^g5% zcigQqJpN1T#^8z)R1%ZwH{ag|RBr=|pe+}4TZ_g zd&-*QR|hCIQ*{SXaOiTO05j<;CtO=20R(Nu2C7d;x!Iwu3d@TvGU*$&l#*APk(y4Z z9{+J5(&fGBV({086>*>?1y-vQX^cWas52r|ic&uwX1MpiC_$1%)C}qXFls30G+GyC zKel#B`q;e?S)M|E?by_F@X~ziTiY0BQ0u78D9D|5xxqHt-={*#z$Lh$wS1oyG=dI&5f!$6s123wo0%PS@R~TJJrmNFi9gyHn5!CYp z$=^jsqlNRk?m-3s0G4yjT=Yw=T6e?9MNZn{S~~6nG~_-}UUq~bOEuNN#3|Dny)BV016$tzbQ}B-i@xLXsLh}UzBTs0`hho;QX^Y==2TAj~FGGe;)-D^y z+6eoRm!8(<2>lU7J>00H{hGVViwYU^mgTH9?Yj3hnt+48uAYW48Zf?rhX-?pW{lBn zWRJZQQ*U%i8={UXFOs3EW7n|;%j-$EYh&)+8cPY=5}P9F_t2N4GY?yHUS7HGxfrL( zf=v)r^h1ve%cP?nEy+#c#a0w~ z5Qf?KF*NjyB`FnbP3YG%dE7jGJpA8-ULEYvdh#m03tTt!>LQLi%Xnj2f6*hw=H8o<&WM;} zh}l|=whz_i?=30MQnc)evtitj+n7Scb@bJ4H&DoWA0Qh*DE!IzpUVY;*piJJI{e># z(E(Baom$Q1A+--HAlX)q?-?k66T2Drc&O!G>oB1cC5#$>ckg zcxUjh2HG@dOhCq;{hKD38lh983XO6sC+C}8(nf!VUt=62*CkeNkNy35xKG#`k6mHs0QYr4Vv{U+Ya_On13%l|cZC?3~rA^&&_QaS`vZ@(e4 z*Zw)C{R)qa*rb+Kch}=~o0dow$tO;Ib$i-eNmf zVy>LX*AwFyq~GD)jkzaAlO(0!^@}&wl|DlrVHON? z;+qsrIX}gAn~|t{>Z2l!gu1(p@Y1TplNCp zKfu>f8p=o`Ab&MMu(qU(%wSdm3C#l_3)QDrok3dWuUSIt7X2=0D3V$|>RIiQA31yk z6UQ_$-hU4uIDmEZhjV*0PfXTRgMws8b+2@r@J9umdGD0W`Ws_4J&XU~)kAcNa7TBR zo(&3f%d3;k`z>l-*=poCxi6UO3~u}83r}KyCi(!i$>ezoeq7pq+y%F~WTvEW*udK; zp`GYIK>`ln_wNQCM*qHi9Bgq!#0k%(j0>eg($!%LB9qkf@d=v8zo?a}kv*)lW5^TF zeh+qXblPXV`9S3?QSE9>14Qj1qj#TG_V^f4u6yiIM|nqs(eaHw!k=+uze7C9B~D`J z-=aQDnYl^idPABvj9!s4I)z=e?)HeS>ZUj{w-i@`5BU!zQLHR&UQ-jkbG^OLmaZuj z`&iG5*h*2(SLpcl?z&I^om-4xoh^5#dMo;5ZSEWSQ1DL_sSJThllZI!y|agOgxY?^ zyo@97ovb7mh{~_0s{u5SDU_UNXIwX%^g|xf66nYihxG8>@E8djE7#x=FFN3n@hNS8 z{$*pclw>;@B{7;V$NdzDyf0#U_grmz9^3Es#dcN8TXq>+LaVK$C`??dVF?T(>Uj%= zR9~fpO>LAxy%b+_zxzK3eGtmh8X?n#!r{Ajt@W^o-o37Ab@3CC>w&K_{US5nvCa^r z&O%;&$LuV(qz6*DT9*MZ@>WxC1MTTr7U-j)Xcuta&+igZhW-Dp{*+nE;i~1YWWIUD zc;}wQ(OPR0Xw=&1;hvN7v)cFA<*5}jUp#SbptpLRSTSxSMh&A95nt2@VXl3ks1YZv zlk+gIeLM5Aij8(v?ceFk{G(jFf+66jen;IUBeQnqQS8$#hq} zIeb?_FUy{wk9lh#H-nW&kp@L#(8}X2IQoO>7EdoEwrcGq1QoINm3Z7 zcsVQDC{PbS>x&7fUOs|6$d8C4|3^H6;deAk|1bHMFqk5;OnRrB%_C<;*5$%Lb0qH) z-|#godC@Z4Bd5jt$w{l#^lNqXwQ`LH>h9jY@?ZRauX=p&l++Bw(ZuPBwNfOVQ2_x^ zF#Lha`Bt1Hi8mM~HkN3~34b2r z**5X1PJW^ol)B9VN-kEA5>u3KGjj%MMg)1rMeqfUPt2p!yU@@I*rLFkQh*&x{JagB zeC(AJI%JK~quihkZmojw*VhpZ3hr+@HiaVftf!Q2baUJxOkXkrak$N(pD7A063gDB zBf8^@Rax!(zUfVy5L{Qcxp>gQPd6>vk9j)2Eg7_q)$s;6uOgsDinfR<0ymwVr+g=G z!pc2`R-a}Ig+XNCI3DPsmw2Wf28K|UXhbJB80c3Dqz50g12br4MA~6ql-d*I+a`Fe zj!%zU@)T5XVNtoF-|(}$x)$4?H5rp{al~>?b7DvXO1xD%J78-zt`B$j;PH*m9<84( z7OO4UGyLwgIc-;C`@cKiu{6}hvBa6rl(v6^Nsv!a{F{hl&qtJRJzW2C%xXI-=7gsM zIBWd4N%=@F-KI_KHyskURD~}z#;h4@M4=ZfRPn%|9qm3v!1Ksoq8T8GV*`HUKvV8% zZbIp0yL0jcz~?2g6V#@}^b!idZaZsBBucyKV9T-jt*H?uWJaj{Yy`i4!X9AIUQaPz ztX#p^9Uka+Hwa+r1|wgz!fVQBL?}Q=Xb-^(F;Tn+(vF)2i_A|5G0XH}&AMvQ&5P}} zEv;UEm(1JVnWTR{WkV_xX|a+fY8xgc*G8M4EoFT6{nOhT^cRp7*E!V2{RWH_qBX`o<=jiaq?skRi9FGl{0kSPz z-vh3!`RpICAh!^h)|(Rr(~RxRMf_T8yIQvJA@BoXePMxe+C^6mUFP=Q(vU-jAD!nMr|Ad`4gDf}mG6;_H=jHD z?<0e6H=A&B+M*lkn3%K{(rtQU;DI%(J9v@1Ct)Rkw&5tIP)_!F&NZG!K zasK8TgzmQTVer8wYRmn$7Q^PI{mqz&YvB9+npUGJ;GGj}<~5hmUvF+ZDa1_d7xjYk zM?=Xkx7x;#4Z1>ZJ!lmvda93v!K%JHA6G!@?Mw>fmpFYzo#4L8$3t)E&2~&|ER_}Y zpPY9GCXmMrfO46KS~N|jUp9>GBzc!zI%-`Gz9d{NM|L|NPRI}l`as`1HV3Y-Id{W9 zCLbq>?A)07iz}svSQ5nrepgM}F%lE+h$i5CzqccfIqmT6Whi3^JRVutzn!>x8YT(i zw)Hosp@8s!tvGp%dNddM?YGU=jxU?r1JIiD0fFfYr%HnKQRP`j4<4H)EJ)u6CwAXU zz-K4;+i8yETSvuSm{YCrA$nTQFhSRI;f1)(~z*n{C33=48F!2p*;OLSmE+;z8j?SL+VtP;*P zse5*SGtQCAv?9GhLfQIH-Q_Q@O`nSKNn5G7v-L=vZk*zN2vaPjn9ir68}t!L37?ve zWkhS7@%03Hzh2)IKK?wWX)I9WnJrURCmD<;;z~^D-P_*Ta^VB-L?J}Iv|zvcpQ(E4 zhMV{g_lz^FE4E9l#w zcd=fD&MC|E>w=$6DtRkG3AJ+t8pVZQEpoi~N(cb=`ca@0Qi*{+N;WpkKzlOqob>{= zK$I_Q%bZO-Z=+lbhJM-kXi_7V0CqdCaLh@c^YleK4_-7My13fY;;*@m&p#(bliyV5 zW*lI=B4d;G63er74Ig+th2J@tkDorBPVH^xu)&|;Q(5*)bvDCV!B%p_|DGSDVFVeR-$#IOePcxPyj~ zS}b-|6XqCkt3ER-*im$Q50O}|avdUn+*>1deEa3w_%OaQH$O3pzO+@*-0rx>-sdrs z(u3r!QOnCo_dC7)$FP80ELo(yOQh|WRP0J$u%>{yZcz3u`(rkthr>6D)5wF{{-!)z z?>CHVrt*(^GarNj+ zII68;;TcUS0}Y4eqwu^8W}}_<?xv&DzC*X(>(URa`qh_8Wz0fW?n^73v$SSGr53J-~e3Yw9?(t0K zYU+@l*O%}G8Ct5grH<{@5*K_|p)|)72pl1HXM)i49_fG0sJi>5?(rY>Jt2Ha4}F2@ z;5~B&6F(t!+6}lELrv09zZ6DS!lx}c#-XS}M+k*)C?#m){iUpE;{*<+BYD~6h_kix zX#ELISow|UjwFDlS)F}XZdN1-ugdAf;3bDzv-O(`Q2?f3=`jC{A%Xnep0)E&p^`u4 zWXO~1-|gv!rT5rd$*wQuH@n+zas@`wb`6hHAp3vXYI(QERJ{Qgs&RT zUG?*fRPi-XHE(z`WHc5qQ=t}DXUW|OLnNE;|CekN>Y_nm-JJhCh4b0}MOs^3$N&G4 z*5*<{Bob0m8Gwd$Z8{k>W*!@`ks~B}`yiaWfOasV)bqYS^9E9_+on_Px_^J><)9vO zPVlhh<-kW$t&))Lps_xjaC|qp6SMgaZzr-hj5}4cP!35w_+I_SY)>P&e^%(QcBe^A zEeP*sOH}^eOKC+(GNO#Ql9*k#Xi}gw~eoUGHjlpZL%SFc_@FQeYk|mW%e7PAYemTnVFyuC+y#z2VrSSM* zZlWibhncszYvts%GxO%IgHWx44yQNUvU4s^P zcXw}br?@)=cWH5l;!>ozLvez;y9al7IoW&vznSx$_ac*-T)bB+%bxZ8gijZS?1swB zJfDvo{2>H4K|Tz6RI2X`uK^B_wa9CDgTz)K!y>Uptt>i&`%#oJS8kWM1+}?PI|3NT zAP85;2e!17YNP27WI`hFeVe@6dCGZpwngx&T!4n!|?vynol`s57kVSY5;L3U8}= zXnVboIHUR~_5Nak8PIjCQ8pYjydX05$QUSP7qF^eeJr3o7kO~iHR}C)qpmBGn7LbJxV2VG;DLG)s5&7Sybft%&izM4i!%)RBz;LfSZw9pajoRl-wEPC z9ry54L5Huz*ZVT|udNVidYng12)(I1K)QGyqeG+9gkhO7SG?E0(HvBY?7W>h*wo|# zb;G^6Zk#PA!P%c0?mU0kO0izLbEI-`=E9;v`<3Z3cxq}E)H3me+L|Q=l_<0J}}a`apZ|JL}EaP^P|aygIG$R z@H?W}F&#sBSW^B~&<=^SR##0^mGMo^qC4`=K-ZG4Qy2x`<)MZodu)a)*-cd$P_;e3 zdCSNur8t$Q*}bVdrbpMNHS&EPZ8UFr_|p(ttcnAS%ZP{fkU=6R{(Q_4xS^bG6U}$} z*p(PwkAx~_0*YNFzfH<3cjs@oV;ocx$LT=>_|Zj`3~OvgNGJ?WWzzZsR?iNZVDk&a zezsTLBy~g1{soSmZgEX5x-c<9CrvcwLPuwbJS~rB?`LY4o}2HspUkfbsbi)(cL^N3 z@!iUwvMu#dH#0P;zuQajx3QdT*YbxCtED9N9?trH<;i;8R{$Ln39A`CQ=BB2u`&PYxGxqTkj(*qu<`6e#-4*olSLnVT@e00^q(&CJiYK5D&b`FHCQUdzquW zrW9=G<2*2fs&o_rx$o~%Y|F*biS*dbq?$4?gT&(%4QP(yq~fVkgF@$UOp z>;6epAhQ)!Rr|t!sG@5v_ZT&F?}DKw?M^8rF^S4kOw6PiSd$;iu*aBi$CH#4A}W5~ zHEGOv@p64nK}GdRTbmc+WG|wp$Km(lgu`UFfh&(=*M(}RD3K_I9It5SWNRTonsX>Z zm{ZcOsPBVP2tVr{IF8x05UgqFj~IO3Mref(Bcme-zi?BEc)z8$cyg3go5DiKR;TxH z_^kinHtz@gVGo(UEegsGj$il4bx!wc8_y~}5zZyYCV}uRr;o%0?k|g{-<$pYc+S`* zLc&La@iK#Uqsdhl4Y`b+RmKYqcd#a+xHMteAUA{I?0ANLk1*uJIk9xeI^D?wJ#QX7 z@2O~uBv=^xznkJJpOCn}(=Uh@udMgvrs8Y|F*Q|tU`mF&e?;sMpR7j>0C|(?3R6$= zbd`B8p%ZETIPk%`JX#iWCrEs&pieq6`xN-oO@&E7V)-ru;y2pSdfs~u2K0`4oQuSB z<95%+j)to@+x}UL*h`) z-AG+$`4KRO5#Ad$*Fr?=S&GGW*yYX&^x4iLpv->LPM!@8O-Fe!{WxV85;gh)i6cw~ zv*aPGf`0-#=3JQt_=B#pqy&H1zT~iqH(eUYhA43uadb#c$b||Z`_+mg3Ah|US zYoGS$ya?BtQ>#20Hw!oM5=ewPSZ%Mo#T%fc!&P97yQ7(wiuFnHr-=|vy@Pzf$2B= zppk7#S5me+SAA5ox_hV7zFR?q_Y|8=;H}`)Uk$Ny1LS}9GyTkh&g@GC`3h#dvYAS2 z)S)v={^J}k>=2uOl4m7>Dz>DlI+8lgebQR1YmSKS?Ae`e z75(#%Z(SU3b9rUthNPuFR{=H7;OjasmrejajZ3G4GGo1SpPuuN8(t;%%Fc_7p2xG` zP*74%f4v&nA(>GpevuS=zGi(U8^AmmHEtaXo2_?!;j_URcbNMWqXPT0gv31kEt2JU zJp4wG@0zRMJ{7l80F`dmDu({-5$-kn4SB!e3^sD?N4_9oz#)MAV8Q_{$xCHgMI6c< zHZEtRU!%>)r1hXZL#5sg=CEO~@%H5dOcj&A=j_bG4H(tQa@VxYMc3C>mlxMKo=a=D z8>(S9Uz>?mmzHHEeHYk<7+FhZ_Ri(w=;3m6=*8NRc0t=vqpPvEV)arN0ZMsdI=ru~ z)9zOf`kMcgbU>LAfvd{f|C`8FF@olBGaUDUz$p@>nH)TGnGX258IJ7p6a~B{ttbyM zouxBQVYT|WuPBBA5(st}Mv(87NMynKy@Q8gHpo8O79H>t7tifC2v_;ykozVr&QwaL zGOML)-3VPP<@zhx=Q86pAM;`^%#&(!8lkCCb_}Pe$(srAck?gNsG9D52dUZ8M|%wq z6&AV>A2Q`d@JY3*e@(cqF=|bh$#1X4U=^9a&ZVVoD2PELOYzCBA3BkU!)}#P2Qmr_ zyMEg-rL5rrU%0M0CZa^10KvwnfyS{W-3wd_uv&)ysuE_qHTDsZY>2}ugna`Y?*2Su zAV=5XpCM<|Okw}P!JT8_`A_{t@GkkEvtvI#TvM3{uYdbVn`5L)(1gKu4Fx%);3rwx z@c4wxpr}y=CzZvMm(0>fKSfe{L1KE%3JFlyJ{dPPYPV9jt@LQ(&fVqiYMW%JL}+fcCE#v_O90=ezYb$Z{Of-EqpO%{EP;ZSbLDejqjd!mD;vq?>gANm0~&8;)AgeEfxLNd*zaT6&!h9j_#Ie{V&04`d1fd~n5C z;6-D}T6e^+DEkHbaV?8~DG<5byHuw9-oT{xzLw}r&Gm$bM$$|1yI`+huOXT=dwVTT zulo0-0_0E-g>YApq&!*=iV+CCq|1vZt2T5(BaB2cAu3h_mKw}|!_a&7DqEsc zRY8aQgJf;*oe`^!ESmX*l%C-tmvkjq2iH~PT)Lw_x*#=gtZN?)-4I*Sn=9Y)%F<{a z8v3#|Aj|c&4l|ATx4_-xqC^&9gsh0FA5+j3yGou<(1~1^r>XhA(S_SEhzq$3U_dORC&N#3%iWLHlC^XWcpE0nI!)BCYonN*lCZh?6tKSPEsK>cXHrB zKyx!sQn8nmq-3{Tt$+qi$#Jme@9Q5~d9@fzDx|77e$~>9Lvc0hBP;S5CV$94W=URU zA%4p=!mmzgGc|2ImAu(+yrV1$&fgPRP=u3E$gqM*AMqCIdK2wYE`hl_bNA7YT^Psv zC-|fHj=nqwrb*?4*Gmcxnd)uJS>&{|_zU-~IGyiTn190ft9QcewLJF~7hiWR7P&1@ z?i`lGA~F?B0Xz{v<&Q`Fg4MSAvDnN4;T0Y?-Rg}!B_8nGmZ0uI$rNG)=56Gpz6x z^im7H*z05mOpJ_ROT$z_qd-qYmJK<%>+oz!;@s`OqVk^Y-h>(_g1#k16$Wv~oxNeC zyw{P6)W${=%@9pA7oD#W*&n6OM=aF@5)dR7AGT>W!Ycn|41*2hL1cPKtfiIVu z7nh5yz|Fu`Gu@flSq`V0YNi>b;qhXeKs%Lk!3Z2~tbKfu40653@^S?R{T75Q2!Tc0 zp81bPSr}uh-fX|*tfmajY?z_>8K}~?&DRZW^@YjkD17z&&U`^E_P9z~Nh5ocNr&))uPa#*7rvC;u^8PV4NNJ1X{`IQW4)IFBan~Eou>IpQsvp!sdo>=hy$^Qs zcqg>X>W}=SSGZq-=r{(qgu2;JQk3W6NY+|iBn(eth%V@ahB2;};$LPBl0+dCh)j1x zDSue;e=cQbgVROg~`p#$i<3>;*qO0cPk155-T(9vxMwsSiBR-3B& zV5_3L*p-DNqi#4_n9OY4B5S;%hFk!);n3ha+NsZYwx#cKK0$ z`SSHIX|I&Dyzs6*UM32)*bgNL(|V=xyh|F~51!**?@^v98o^T)A``9r$W+FYEL(iI zm^}Ir$9K8dBbXWdQrczq^>y*2OzPbtrdmA{DvOqRucqYCC^`7bWoAh)@U$q{kfICh zN46xDS(ntWV38tfM^&+2*B8z+F;wK^K6#HU+|?7~;J4A1nT6t+8!_>-n1qSVEa=cS zEIoxiRQzGIii}kE&jNY~IRk@&J2@Q1uO^gzr|ac2O{0+n;R~JTejp1CIVVIlAl8Dtz^7Z*iKHYz>99&i}hzrbOHjg+s|RB zgc18W{%BTK_`^=$6=HC^KiQ~opy0MeU@bsvF`hi^TwO@;I+Ps+Qqd62iFbrCmIy3W zseDe1sRmPBO(fN(D%S z{Stq8x}+Gb4xF28oC$7U(44u(p$vtDL{9l5mT%0OO!s-x(Idzc66)o9{szCbdpm(3 z&Fd*G`)0Kcnu2q|StsE_lWt^LI0x(rPTSk8A;kK%bJJ04%egc;W_6+ejpx%ow^dMP zxt><^X+YJG8#xT8moL7MP2WdF7D`CG>mk>}%)ewK7_OMW7;H&iL&wK{=& zc1@k)5~1Z>Bk@;6kkd%oEtWYfY3i}?+X*3|)QS1cheVu=bOFA!LKc3e3KT-3?w6+x za>y=**#GtB3&dEbGX4c%V1@-anxb$w^75VL7`v$0cS( zn~kJybp;0Z1C4N{%_M+$wJz6FH$mq4*84HUJV`*b(-pm-@UvFwM(>Hi!5h2#@i@lP zbe1dizIaq@91Ww7#T113B(F9B%$SG)$MQO992wN-f; zMn`7NdQ9kO7EXDDFfcHb17=^#vUmY0TLM>yd}bD{i;6_YB4olo62Fb89RkZluBbx4 zG7Bv_+0KXFRuiY2>l0~;2#mMJU7?^N_Jxham$>%*`>tZ# zAygqAVqe;r~Ko|L3*ze=~PHp>$C4Cn#YZy{7$~oG+v4Qj@bf z+7hCP;UFee-m+0%)#4+14ZF90%?PLKZxjUXW-)=+73h?(=~@sieUJCKa!)X-P;5km zBM(vcfuEUo6#jMnxqeqBU8s18S-Fp3`V!*3L{*^pjOeIb+vtySCm2}*Res!H= zn-=z}1-da5WIT{3P74`c0y>_zT_7_Cs3muZ3IZs=x2^7Te{2b%V48=B~6w_9YsIn-+3FX`r{1g zH#k0wBOPPv9`(0YvBg1JLVB}1@YBULw_$-@hWrJ1A#pRs&RsTQ#s&XJQZ1p|-cxm* zW@FrM@t%*KHCVzd-H<9ltKoC1TRTQHQ|rgIvsa`_J=D@oK&&+LO3MfP``T@-6qbf+ zPwnC;X^uA@@nF-M^K9hnn(s&Si|yOE%>qohUm0`FzdDe#E<`gRiQgiF} z8 z>w|IZBjO%7hX1TsV%N0ErNFd2vrVjalL-sQ#y~k0UNt9W zWJKOXDPUn;c(<^}Cnkz-z#h7eV-L_*y(r4dr-n1KvDL*%U*)N3`WbQ=e%pTd-Nx(R z;I+s&uI54nZrph><@Yu~SJ;sEQFKl#>vleR4(XTpx&OCXX-|HGlFXgOB|DSbpSz}F z$?AkoMajqjJ2N9S90&P$E8dv9KpXT~M!*NJ(TLjb#STU2^^KaxN{@-=Ce9#ovCqD4 zgdT&3@%*n!&38%Og$ngg1yVvxcVI8PA};S>pOlb#%s>+bPb=Xsqm<@dC5eVtH~)k5 z{yQxkcl&<~_ILju=#^)W?tcL|{HDKsp`Kg&6`wK8C7M|8q}M3>a5K&eW0AFso(%$V zW!%B}0?vaCC*$Q+-_9>6xR}!v-b&F0pu;*sq?$TS_JLI$KJs6VWwSEpj@D&NTm1V1 z+q{45soT&2I-K^}f`WjO)v#pqh$_4fzCSMqa^yEVx>qvJgySNZ^go;Q-*4pFL#$B7 z$5Zb8gkD$aA@(}dTJ<}=z^id-;0aUP<(Ujax;pxdUs`~8I0}6+ji@c?wD-&Q9)>RZ zRzWN*x*Ar~N6b|cAGVv}p~*5!oUcBH9aLQ?sSgjpw)Zz!t;Cera6{ndA=$%f6~o%= zyNO4p(X=b}d4}giq=c{_vAbJNiGl3)$wGDc<|{i4Imv>zvzK))pIm2_cfu(Aibedg2G7Wjz;W z+F)BwyUG);Yn6IB?EQf%A|=6k*zst<<{4q7NS2qPm0p3($XQ%%Mk}S`*W}?zlh1Hp z4M`4K=0$N1?@yYe;9}#P&a+_wlC4Vmj%!_k^s8U=%erO2W(fPgI~Ss?fEyQDc^VBdGXX zX}gX%OUbX;r-&zJsdW6%(;|@Jsip@^(|Mk8I;dofsV96Es=8&|=vJz z5uDEMFB)2H@`zv@Ajpt3_(s|7udb|1zNE|DsW0 z^0Qdz+!*l;#-6uW9)xh@Q^XfAgL=w7JXl8cs9$z6Xbc;aYVS8kXY_sWIl#9pkXB#D z5$^6xI6}1`XCRH0!YmXonEGVtqk!440uq4_;6X6DJhmz5&27)3M7xd-0YR@nx&~IG zm$c#H8=I_ATd=zQ#RWa=vr_~6Eep=vR}^Cd1TCwI z@~oI#ML6+z2^ZnrYTE4u3bG&fhsmx90V+YoZ=X2m9XDiTWV#Asg@0^*9%DIZ%#)EH zPhzWM4_(lZk_rocHGX7bJ|XL#od^*78keD;yDqHAX3h(o`+oUE(*e&U%zpxexu6J! zHC|3loP1vvdbk03m^Dy!TBu`dC&$gutzm3uQYt-+=5w)KgN4SFikcVkR$nK!620x5WsDj!J~E84Qy zW4+t#*qW+?s*<(H2-gbXG1#uQX|A_0GeC0T)?uSNScT^sA+Ln{;K}S;o@SRUo>klK ztq7%(A3BQs+b&L{N-7B8n(I(SmK1IJ=pqHUERU3Th(>! zh81r+)3nqqfjvbyhV3#+g_Hn-v69$}Ki}Nr-dH_IvVFIx>O0FZrD91K%hZ?fhidii zSWWsje^6(Ow7Q>OOi2T_Ualvk%QPx3AY|B|3=WrXOBOj>{e%ulS1x>K!PooDT_qMd zJsyS%ao9E6z(O&{!$spi!zIJ^^Bd3u5Eq$sChxgl4M5ACYZ^yLkIeM3yVt~m{x~w~ zCx!)el|f8I1lF(9p{|Sl%I73qBlcZfANQ2affEbGw&Ny;4zaW58t+c!2R#p?s z>(!YvPU}#jxXsgB!C$dp<J`Ok}|frnL3F@9h5rY5Z5A694}J08{?~0RAuX62^$=P5RD< zaRsHFo}i|UoguHK#-s;5`xZ~++T6k8yjuF=@WTf=8r;}phc;|n10Rw%j{!98*O9~v zfffKEVYD$wdh>ds^S(VbC2I&g&>2PF>IOj}aoGwO8}8u1I?8Q@%g_OdHRRzguXu5v zEGXnspy_QzFG~on@NH9^DZkO|@}zdTgHJUzD|BM>!~uOLIsRf2z~*uW6Ii&a!7_hQ zdI6zrE`h7bV6FCJ`^9a)uE}hXhJ%i@t1&Gi1qGaaxRsR!zuy61n(2k{@8?|r=3dOo zJZaI_i_4+wPSLu0xw0qzdwh6&D@DOJuWCIXfwPWxvf0i*%ztm1q42Giwm*FN=u~;Z ziGhPp7PCHjgS2CAHiRJIjzgtZ9&#~gbirrgjofAU&YvlWdq73naLU?Iv)-TA*st)E*5pkKNs=_;@ zU+>!EbH?ZcCbH~?MTj)1rIBFuj5-qRiPr=`n0Bk*CnewNWY1B|sQ$zQ zQ9IuY2te%{y3!ual~JQ+hlGUm^ebtZ^fB>Ejosfm6B!D(@oDNyzW^w2!7L+XLzpq7 zLQ_R^46`ET!KVkUXN%@O<|IQA3{ywF7DFOHI=x>}LFDS`>1so2X^%)L@ectvZ9(ZH zqo@71`@m$Wp%mzmUx&fsVvdq4Db?QkY5d0)hF)PlpLhD|vARACxC|z7?^2G|e^tqR z3(x(JmvN(O^|%1s3lA=tdd69GGj8twPf4ixzu*6ht*x9k&fNdF>;Gdm;p{U5Bywa? zHtT!a)wGy$GQ?cjM-rFSlxC)S%F2OmMV)>k5~k356NVuJIrxz6wJ-VY_i7~mqq}qE zUNhpV#N>{X=1n_gMjXOyyh~w-p?+VPM=8Zh5-|__{_Fa@-&JH+`v_MGxEW;eG1OR?& zpbdYf#w1BWh^H9sbnI%_@k5r+3jaCskLv~lk^Gb`^dj+Eio9j(|`921!;E(pbp zaaglbDIsvdlnmu`BmCU&S7;8-Nl^Q;ndNE`BEt2@rpQweJ=ajoO;x$VMMLOEc7;d! zNZ6off?`e9Z5c|Mtk24RZ7zW1+{pnb{+kNQ1o_<&9To%!VRvGLNZ_#rCr+)sw)!v} zO~y{1*q?W_SdeObJn$T(yz|#AoRPX^Ct-ejmC^iLZQtGL%2clCr>XAORLu|9a-00; zZJ0B~%Bg-|7C5&y1KStd%=oS6`A}Q$P6p=fTB|KDF>3D(III@~uA)U0TzQV>N@G6n z&lTD*gus20EZz5>G-{^Pk1PB2)$M0U zj-DVU;DlQVK0~Tz7LzYl!*IoFL{)1_*ia+7^8#ZWZ7^>4ceoTx0??f=5AAK3Y3ekB z{XE)#l#~Ey%A#}LJQY99M_|%TZiSKl14tMFt6iR`fp)BuZ;csKO?2;JQ~zGN{eMAI z-2ah?hrZ;|O<8zXT`h!9+U;fq1wW|Qs0H~a07So`B`un^kQCKpr*#We*O&FWE>8jS%!l!n}(BbA}GSC zHF&tGcd@BnRBUXtf+Lu&GO@YmiUidK-?(i*2sFo4@^A7d2qBxVTjBJVX20GXx!`W)HsX=bo91Mhe}cy{IcVP!B%G6b77`l z=7jazv?>xc)j{~%>;tlh7wNY&l`rx*5F^S8%b@Fti4k!HThARTb8;$PeGP7Qtzvc# zJV56I)SfWw=Y~6|tb9Up3Px=B%bK*y(^R0vtjy|S1w|(9^W_-*1UTNW-N|HsDuJ+X)%|mQl zTnPTVq2VB)=tcW0N>N{jPZ8@6&9&)nHgb!rhdd~IYFYatUM{Vmf!Yf={<~sqk_b3~hXc&!^Z0?j$K$w)>_7-DAcAHkv3vJBp=P-j zx_X&L^8J`IzD}d9tceW=2I^VrWkOab?cw9Y<-X^G(TfKVJO)AI>B_J2mQWSNoWk1r zBgY>m*7#4&XbE3`^toAPxjElJwrjoXPWBDo0x5Uq2_T{aa6kD`Gw)ZOc5^;be-2X zAY~zOcl*zkot4~QzfPNqljR2G zOgg0bAryW06R8#0E_sgQE%nZqaYF;*6DGb7-YTBGiw=d&P=?y$9F8ron9o1mTVKb~ z-2>Q_j}&m?8N;GM<)}@fI@Wx{$@H+Worp7W7DC6>I_3X#Fx9R@1UJY2u!lop8tw%4 z?PjEBFB?X#$7_HQjhE20152k>8Bdz_!_DMs4kqF-`@jqAW>@pYs8m<-Dk6%WZ%l~j zW+@ReLjBsnBnvcR^3t0YL3`-%Pzs@PB8}1X;J6E;LkcJiTi{Ti4DzsaOEa{Za>-A5 zYlDDJjf(DZ{nn|o>Ba*{{ju)*tT_6M6o* zfp`5fl6JX)N;Z$6R6t;zjP$<;dZ(0a3ywFfIYI!O^zZLHm8o6x&|$>rGaW~orZ~uvvU4?G|1uU6PLSm z8Uv6*JJ7+PK5rl`z+WDZ#!3PuQ5Xw zr8*u^=86LWyYBn6-9I)RJ(#3+b8Pi=VArvn1;>^eoNt9Hn;VUH&j_}5 z!hj7(BBc#;0xK|tAatkbZjfPB;w1W3Jq&O+v*Rd9Zt#iL$lvTqdhvN$Tu;SAnCraBj=D$Lasl;^HC&I;Lq%So2 zp0Cp3!|N1O_brWabmk>fX?j?jH{c$?6S8<T$8w>ej~3(-1b;0SggIE6w28koZEjAlgO?%$pV` zs!}WFSlMiLpQwyoh<@qsH z;zyolBb+b7?+jnLE4%eU4xnWHR#FP~8Q^<;38&l;3rzuA?VqGPx-wut*(M)GRz?Oj zikOnQ%LRYA`c2CR|5nc}xW@0pW!&38jP)lyHqo?^hZk5nQ|Cjh06EccL=z@(!f}(u z??wubFPx+An_edy9VFd(?l~rNCjcRcK6t=2V14G};dv6QgBP0a?~m>$>jQdVh&MDG z+3nq5#H~EgDpWeE`_&Z)*UMzZgRcEr z?Q;IncD?qKjmK|7g)rDMnp63Ws_v8?$JuhZV3BDl1wRXh{z`$Ym$$=?yUH%vL-pQ&>_VazzHY`wS4mcHNrvZ<7ik}~hIX1x`f zy##m0I}V_nPPUoJyIOjb7BbQd;=*1scaA1{e1hc@!8>_SbQB7+Cd_#GMdldRDlO4I~KOHz0Z0NaI-;+3x@q6sOx?7%tAIviSm?^@u+{I|3oIKT|!e@ z49hM3P;;Xeg9)98QLIG0w^AQ)`DCu|sRtL^XuS83>Zm?qiPW;IU#$W2EF^@cIRKehXoUmiem2jhy=z*#x>dlBbwmipY3^+`B{QD{{O0}wsz$HE?OX*~-34kheCn2(iJql|80W*i!b2R)e z!*|Hm4%;A>CpuYeM@{T+kHmHO_+(%uS=XNskZue`HO%+)9zr5{#@9mQq));Sl6^Lbq2+nsV;21ik4lkA> zmNQnWNIOY4`BiUmN%SchauELbJ9=T83%;?^pk)rrFe}gC5#e_wL+#3FIF}F1<{wPE z60opaKu;6A(lg>*Rrw9Vyz9cbPLz%*K0tXt2cm9VA3K z0aCWnizwzOI3o&Jfko{C$0Cd8SlgFBy9`;aHgXYFz^=upE^yLjh%e~C_`Z4IlC-|$ zxbQCiaqlsS-H6CeMh*+>m(Bb9YXLdXW(6nhc!iT=+#qvvvErXT5b`(?Y2|#u`v)r4 z&kM!LdMy6Kh}4vAJ}nd3oe%38NyJ|2XO%5m_-OKGwWcE6^)o&%6N3Oz2A5s;q_Kz5 z&B4G_p{%cyMq1e_u7`Z2n6^%%iC2FnqzVCz3b-IcXerXo3fB&waE! zwQQ_A4vo5}N6f6%S_l}a;hs=k5Npg=jh`8Fj6+Nu+TzdD6EacsjbFN;FZ6V>$WEHW zc9Cdl$=>H;i*huh>4QFB6LxqSk034M!jJB@d*QT*`3fEIwgxW#`5(@!EwT8_a_I4K z(dZ-fsXTpMAHGX^g$yA=WP(}I_G_Cw@B5gv$78*y=M#CP6MshX9?&KogW4mWwE|5m zCYhTC`boKwj>e@kM_=i*Q(J;@+EriIA(SbeP`m3Mc0wEZOO^Vuank@~&*-I9XUXbZ zVb5VTkGG_49hxw+B~o{Hda)kvke@<9a+s}mBCm)A>wRA4O&WeQVMq3c_7(DZzE)U& z61VF&#MZ{w6gQ34jIgsd^T$9B?=iLhC!4T*01VV~G^!jQ4-ejo$61f&hEMor91BOs zi$5F+`2IuP>B}qF7Uo_)d?u){-Mi+j753s*)39sHk>Ku*-ygzGxZCHj_aHmU)&v~> z&}DfXVV>N+dZQV2q1T-;mKpJ9h28^kG|7{mV~Hdu4_F@QYQWCFy|GpvPQjDq8MF1v z+KO~c=OF!h6! z#PxtYa3pZ>y=%7{>4N)vU!dU_+XjyPg%&e!v$C?*ywAte*Xs6fURa^~`g(h--Tbon z+#c-pvDJiki@)IniT6xZtMdCS?2-IYXA={1q>D{}1^$(6OkA6!USf zgtYNxRcEf=A;!UCC2}m|2<&dWcHe_Vw{knu(3Aq;+ZMRT+6q1lm-|Qhi$0qScRB6B&zJKwnHzv(bK5S?=RY*( zN{qL~$l!}}=%gP&BJz3;wc>tIWaT=DXJ*;!RRxp5cE2;@{1*$Cjh+U7;k zgAY*;y`o7-{>VTa+L>iBYfChoNw-4~l%sjm)Z=T#+-MP}>Zv-r>u%dt0G*fDVi ztg#WqvBhrV_rp)k?(MD-$yNZr(XmZ?5o;Pk!Te0y-T{o%Fn&GNbl)X?e$5B}Dz5ZL z7+CIO(>Zy}=^Zun*bX%K4D*%T5j^P5u$y+33}&t8q0Y& z|H!Yd#unQ|qCI5r)VA(?P@dE-U6uN20UB`9iVYQ>fUPPZzNRfMY|iOS9^vVx6*VBq zO0w=Oz*Yt8unQ`?a^?|WKEkO{WNv-s8M!{xePbCh#Ct49)|Cl4Z&`b=dnL2QeErSZ zik=zd15>wY*tjR{z98wZC-8*F>N%YIaq0=7)&Li--fu!MIRGR1x;uuvc4ne!(EKh= ze+fv8n&5Q2Xp#$5RQo-2$G!V?-V=WxU_RyUzQs%8PBhuIY3#DoNxedhDiC z)Syew`y%9CwHEW+TgeFZ`kpu6PLOTTx^e$I*M;B0w;$!l^}*+%8E}riSx6mV3kCD_ z$d)Ibd4%jRwmVc|8;+NKw4Au4H~n8(dBTDUDquCdC-`&_0f*(}MJE(U@J}b=X`*8A zXJi5)vB~wC2L$?#5;_D#=N<cA z`_+bH_geCL`S3d$gL1qc@t~<{1L7S=4~t`AYeqUc0-O1>ofkUORxDA3MXkcZP(<8* z<-ZhKzZDy=V+>1L?2mqbNTw?8haVU=ye!m_C9^R${>;vfx!U;-x6%l~9GYcRKg8Z@ z{k0{o)bE6Wh2__nj$`}!dd1A>Z|8J0>zT=a4~-@mWhZ>n#n;kDd>*;4zKUKBJ$V7=x2z_e7BlaBCNReBxYE!QkQxloc9j92? z`fwZXLr%dTqj{xb7KSFuInDx@lTR7c;G-9{X+F>`&mF?5abmSpsltw_TK}obZQnCA zm(93$&|JUTa{Yb#7d8)pBc`m=WqFiNix*=|77x64w@m`Owd^V4w=c_N$41VDNvxdg z7Q9^Ob~SU=)52ep0Ed|@g}<(x49+5dfzZga6C}J86w2}VFR=%DS2s~M%ZGjRWB|fm za=Qh_0{4cazVbGk{WZ6iI#p~$S$bNkvbin!dz`KihHyTI*R+<(5`1D2`O}c!Y9|l@ zN5lL(NyMYXZVQ4J!EE1UdXK~g><2(`#;?zaWMx)GlvU{8eRkzpp5ADclgWP;r%Ify z`3JaVaMiih4^xX*V`xtb+RQT$3HxOllIErg$uu6y+Mnmum3%8E2~!h}RbD2f;3Zcq zZ!Z*3qhtNhp!`$+@1Ly9WlF}8ejG7MyC~x$5vB5vT;JCwe|L|HVZq5t6_|JJF$dQG zFRNJCn=oD!z`O)lcqJC6$Nk^Lr6%dbj?pip=Q$BDj|=7Z$qb8)(7tG^{7xIb+Rqds z&6YFBj(p0*k2lB|9gq1Q8g8b2IpXT&j3k&Oz^1sT`ttsDhtZJOOg6_Z9kYQzL%J*s zTSd-6lra3-zXD{8B~@1BHuc+FC=J#CwEd{-)V;Z5niD+2>UnD>z&#$hJZ4j%U*Xer zyO!2?gc8I?bWI!k>f`CoZl3dbn7cBXse&%IIbQe;74>OW4eywAv2Ho83$LrULk?lrY_34@ps(7Ki`|blG5N8w~S4m}= zhZyC4cy3B*^hdv$9U9OJ_RECuxO9bX3T@DfY+keLEqtoX0A^+@`p;gXY#K(PDl`ww zNI#wEu~-F_HVx#WCXID9;HiGJgXYHU1~%jKd2}=)O4mv|!*YXVfCly{y6-cd`HMT{ zEAW1S^9};edo298t#t4AUYZ~N~JC4KzfF4 zkoX?%c(1B&i-w5?ExK+5cYC0HA}*mR%5Rjs67lV|9^PWk=bS~jwv(v?xhf|5XRj7I zAd%EdX;4XcgDGQ4)ZGkxE6^OPMTH7>7&f!1tiwAAX0ov6&$wRgASF;6g1@vwt?WCz zR&KuHl{}bh;D3B1Q^>0O6fSP7qPaju-gI#8Q@<8pf`n@~e>p)vFZo5T4}O2`!jy_0jmR727Mhfm1nm~{)` zDB(om4b?8bF3V4vuk&$z%a@qcHQpP3Q6#Jcja>F^TZ$T~g|npcOZ*-r-xn$=9G#uT z&Xxa0-cUBC+zzG(S8y>hFi5U*#0Uc~DEFHh=MR&~kM`>7GbyDJ_{CxBa-*-?Kh2KW z(MiYjSQ7=l%yw92#E3SazrrEG_2&57ck5Rp0Ip) zhVAMWr6ZHAk;7T@^JA_t2B|7!^58QuDcSyzYb$t*{{|XKWe)U?3BqG{C&(l^i4*&& z5O2=}JiC5@xo>e4t&K^+F{N89z6pE~9Uu-53A=KdMBE?45&mg%*_XNj9!lJ&Q6WX; za(E&xp2!-=-J&qIumPEswCYjQyU5CtNgLROCx6_5HqE?|r{eYgoox_UE)K|jf4X`} zotasLS{fTezCYg(uQCR25@tiWxP05oDNU!<;W~)Ao$>Fxe1(lmN*nxH!@>HNOs6@p z?>`#qphJ1hBza-=Qh2_Upw*ycx(t25Oj|c6B(q%D6Z$MRl^O3+o8y&3BCUKy=ac8G zN54P#fwrJ9iT(4Mq=KvVF+*HRLYJFkyTpJrobN`G&`#}PariYd42WM)z$Uk^`T)p(b4Fw+5O{SA`4dH$K_{LC>;J$<^$VncvZKYo~efR(aQ_IJ_BWpwr$(&*tTtZVsvcVwmlPD z6FZsMnb`h%?|sg>`7Zk6{Q+IiT2-s6>SMPBJ0qEVa7bv_Q&T$^W!3wuX?_eNWLhB0@hs4FeOmO=8(JHlCIWUs_p(q*Jhbt)RG8#s}0GBj@&H$eMGgmV5-qjc= z#rJ~d2BYC*-Vq{T`Q_k?<;WTfdR$)l=JK>n|!_<6OG z$$~LSV~)5x6~UVWcp02hLX$iGE>ZHYQt94Gc|_L zcW>KO@{Clg=<)nTj2qHgXI;4y15}TjEpA^8!nL@L=v6mbbc;}2lmgH zM3LW%Se}%w=0Zi<#_+gH%15<2SRY~S!W6o3V-JS}!HT zZ{xF!b*Tp!C6{ivy@Zr<9E-S5bWy?DP*PHfHsjb|V2~zGrbXIqEM7v|8fx~ucvONJ zGDS8hY+~CziG@hx?REP$H5{}n)Z>`$NJu#Yf6S2FmY#Z1*WE7SBWnc`4%}fky3Kha z%?>IykPKU^3tQH}_Op(_MI83}2qD ze60m@BiERjzb|w?lPoX%tiQuBGiC7au!V{XT`TNKXk^lv_*~G--TF;l1FSQ?a2{L| z;By^EN@vs?8Q0vj=U+-0`Y%B520&;1(E8uJUXqj)lThY>ywIIL-gPRqu{2`mmmTGd zRzAQGPGQr+jnF%bz|67a%x|xytCg`|-`hqiC`iarttlR9B94NFHwhb>vdDgawGf?} zpjKX431eci*JyI6u~zrZ(HpKJd+vT};!B}`w-TS{md>6zg?U)%uNzZsY%D@o7opM1 zgx|^h1>60_29kUhyTr?_xpJKzj@#KHN;KA25Tia+f##JnxAPu9J^_K2v9+yjEFir` zvi-7q6_}CIeMV48`+-i0jHFSc6_xv2ac6NHuAz0FgogzN)1u7N>8f$e7+w<#t4{P$ z_c6Cp^Gs#%=;#O<8dhXOgMrz9N@}yq3(K@OE2v`3O08B0F@QcVE>^c~H~z3XLqnyg zsY!T|1_MDYxkeGG)j!nm9=WqL9|Qc~p-PSgy>*gtRD%Bx8nGz`hTXlL!06*?lf{tn ziscr(nu~wPcmxz?{V`YgOWL}H_Q{tWEjP%Y@6NcGGZ|scqj5m;W`~O`tu9NzEe7L2 z*Kd~#Ud+!%@VKIBbdqwpkRKWfY%mj=h`Z%xNvhot4G}3C1NTY6(8>F(O+>5!S1DzW zJEAqF2|Aw%cNK1akxOzAHA+S!{4S!H%m++SKinPtRuuYH>K1;)9h=))Oj9HZhJu4i z>`8hk;!bH&Cjlu*`g+K4Fn&CaSw%i7C@9$Bae?~-3`~1O8b|I0CP`BJN&m31irZnO zhYd)SE2bqxEhj%^hQlbSs4WpjF|($qz^W;@&1aTNIbt1wcCPJ2Jx7VrCk7LAHH^7N zj$_?brrcA@_tW)t1D#VXPC=~Tp~Nu0ErY9vM??{^ucC_2X=hZ8y@Gc6&oz6$ZRG(6 zCl@d>)hVhd9lfXIBsS)|!zNT4K4g!+Sx6jOkc=UyecZ@21;-&ypnot?&xJ>(eIu?6 z46*QOMRL~lp2Q8ijYwaDK)6oAN2z=tfAuWz0DTSMjUs_cLxj5pj~k$)Xi`+1NPI9X zUDM27ucpnSb|90P7-R0GG7o*f_dWFCl(ji2zBom@VDXQ&%r8Nr`q@p&RAWG@^8DDG zF6(_f9ZKZsO_N8|a`66VuTVIu`7myI2y|I!RB;FfGWyBP?tyOn4fhh_QdUZ`WWt$o z@Va|+L~s2-nUga*ma94vnxYybJ*A!%bRL~@rg2s|OAo`h9{aM9tS;Q_H%iMn_?vC z0b|UW34vTVLRGpO7Mv~iyFq#TA5=%8C(Ub6x}5}0u~jZ4wb2+_MuAYV3w1#Ve4;&% zr{jlAzj{5ElskQ7TPmw`nY}nWO=-a0EzX?BaSm%X!K>2@|YF&wsS`x8qW4ULT^!{qk9uD`Fq)R62A=sso#nd#@PeX>(HN)};}kOto&@R(f= zJUuay0s0ux`Z83K{!!94~ z!&poEdwanC;PAb4FIi)n=X42J)5PP?k5TG_)A3PhRl!I%?{PX&nQd?>8Z1JT$T>qq z(KXi62A?OC8iQuANSMfzzrV>|p}AcCf%AL6gY)K^ILo)tEIGBx=vUne1I>b1spXw< zQHbwkCO7Vx>GXNxUSZqF-8|gI8{(0|tS7cPF;w1K$npDex;Y6nx-}ob0r-eaZ{O)8)5RB?L10MQdjb~Z zZEcqnmJuODl080_%>+=$7mR&vW{P7X!G8m`;__44IraSXPldz107(F6VR%{p8Ip=7^)ncdg-8}kO z=sObLfk(3tA{83?glV{i`(%OZ=(Js|e3S59q|jfB-Q{Zy=JcV!d4ls6$g`6ZClrlN z$)tj5DBLHvm-L&eeAcq?(ET4aIZbI5{>tGs;Wp*IthwC>6%L5w%r8rBaXZ+%%2BSk zDCMt9;1ri%P*X#zGzJ3nh0VyezFm6zhTwCEHDvt!+!-hkF2vPVaOMg)1MBlKg50cx za9J>Ah%a+3wuW-{iFk1sc!i>$Vw+ptxXtlh(+*m|`1onq&%!aImQ;$Sy&y4-56^s0 zGDr8L1|ifF4S0bm2IE>!buHbbDBbG^`4~Tl|6n6Bavbw2vE+12_9wi)!@&{}U0$5s zWWUe3<~OaUy?;?%tfXMD$B9tfy?Cs5GS-7%{FMG|aH4D-OWYO}Z!}669Ggi_=S?Oo zgg+rhuPFM9)wIWSC4+^_)2X($QY#5vph*1f&44^Ltnt~?Dls|Fn^VNpj^QcYM*lK% zJO65DICH94Ou&C7tms_#64oa=woziDgD18g@!jrXc#X%`1!ouka{t!$*@#Tmn;lIv ziMYEd`v8B$H91_(`eM9191v&s$i~<70%@knDF}{amb>gU<>u%i;T!1nIr6|z{r|_d zI0pwDjC**38fse+VE^fN5Uzom>L|aiPeH{~`=mshMjs*CeMJ**{8kwOTLZ1A?*zZI<}CxjU|JcE*do zXhbyfUIj7TvW!lFozG3OcwOA?*msfvLEF7=m~{?yR_k?Ofc%%|TWl70G0YF+-g%_& zMe?zf(VDIG_i}}g;M*P1dqi_gbjcv|Lq5JyDeN7i`~*`F;WF?FRbrK`m+LYY@STs! zH6sJhHQUCZN-vGe>OerW79h$OHJ@%&$QIPvov@psg#Ts>i3v|1LM3@@`kt~@q0|eu zXJR!Cms#FaG&lqd>Co!<{d;fXkj`qp1ZG=bmdPD?U|_)MU<`$&jbX0c(a`Tb`>2VQ zEk#0OlgFiljFT08q-08_)I*%oqss8TkcAw8Vx~n^uDtgaUbCE08@R@_ZjwpN#Iu{e z%kIB>IIFCK1o7qB(}SZHgFea>oV=UDgkc+BT4bk4!0UGr$hoakum&#M^0ti0K($)5 zFD40}kp^e@k%NbJ++ngoiS(@hAQoN3$y|;=`CS!Fg?d3?4``y?-gu36G^P8kS8~fl zAP(zXm~;ijk;5T_)qlRdx!Lbf9=o+>PzR$fv3_VZby*10Zs*_CY%Dy``dZiphL?mv+1} z3@5|4A132vl@&j{3#^F<(4@9Ms11@XhT40p(K|+ErOTOXFi|KG?2J|2vlW?Yg}Rnt zT&yUxY5!;B2m#6<%ykzSh_%_NJMimGXi7(`l{EW%`Bbc1R5Xu;{AW&Cvxw1HoRpl67$SjcejDGWcEG`$1`sRD+9VkPa3W+748Dag~_VI~7EeWzai*8J`j0bRO}k zEp{}E<}V7)!JtN)MOsq19Y)P!{RHsr6ULx2{M`hlu*)X0cg@Zy1n&Qp3>O{rIU zSK0y8^?R~dnVgrl(hY4aRju|5Eq^#!YtVm~<%H%;X}>~H6ku7%e}y9Bw;4h#Go$(a z@%&Bfqu_(U)IalZgu!bq)A(~m_z&xz;?8lXP;Z@3rmuBF1a+(d1aEYISnMH zZDgT&mWkWpYld1cp~OmMjQ0zH^5&l(BwLqS%(KvK8bVFjHae76gOPb9dX!rLzoX#0 zbjCYb+LD5UOdDp(vu6|@Gag0BiG@j~MW~6?rDy9g@P7VZlq3qiBPi`Bg1$-k0^msM znMyCxBylLNe`cdJZyJkMBId^w%{{w00{c6zaTx|u6jNv5z1V_p=Yn0Fad70(ODF60 z0!+ofzKrzgkz7czj}_l=Hxs3$f>wql$84^?u69624$o)he{rt5C?Kf)QZlk|@cZ9r z`J)b}-4+>1AXZL0^y!e$zocp-)V2(|bF^bgtN<6G%=`GrhOvT(5i{?=Bk2y;PguH3 zcoeToMnc+8B#26E*s%6?`09xJN3H~6f(cLF@1H-NGcZgbrM!TuKMw>dzu;x?dbT?3 zkD#%rz|y_3=rC(XZe>sLo9eXCA#Q%8*N5zE)?zU;Xb`qOU^>4jvG(GS5(0!1{6>D^ z8|3wGirY5cjq_EhXu+T(AI$%*nV@f(c+x32)~h}Ugl3Ti4r*S5Pd?b5)zFI&$Eso7)VZtK$8g(au?o%>jw zT^AbCmNH|#ex!zp8vk%v=N_BMDMUy>gjZdiuMiJz{*ZgOJBqFgYPRC$@{N3G>X=i3K zFp-yPyBy6wesUeDH70Lmt3?}=XfeL5VDOV@cVO7o$-_k?H;Y3{TI}a<6@_)PvVfAQ zn0Up$2xC#DZX0!n_>>_J4^FN3QQm)>?$`9Z zc8BfoP$@VVXkce21>MB{KH9^}gUxqXI(t?67n*QE{lJvrAyJjRvEnv)WE7N82Yuba z%>ne^kA#7#sS3&xw7v!2i{9ho7AXMK%{ZxKFS8uf$`A^Sl7Ho|K5nN`7*FrB7N?Xc zFt8!X&(8Sy_~DorzY49ZJyv@>Sl$i!M|b7`1)dK&T5bN{KlKEmCN3it%f@q8Yx)vlXTVp9vxSG zDmHf^%Va|_zyGRVJtGURe`GF&0n`<1!}91&QLFN_?OIa6ULo7JxQWfnr|J-2R`|7# z$KCiU`7T%jzZ_fty*SYI+5d?DpWqXGF{K|;ZYiSw_i-r&5}pDcx>WglE(#ii$2u?M zY`dt@_JuKy&W|v#s z4c@Q*8rrk8aMEb{P(^1-0;Ab|YHav z=+Tagp!Aix&-NwDOcVLos+aJ7fNfF38~vL}8u5J?yLJGHYHvs6D$rL*OOrlYC5?r< z-5D(oP~0|n{XF6E?mMO=3faL?5qX=I$lbWdRMWXP_yWw=A1KQIxfAI%k}dPa*nx1D zzS^TSk4m%L%RDzSPNfQ&_sEN%Itr;_r`ymD->Buf^4z_M#<9+kR2hW z(esAbG7WFWM2B5nh(24N>xbxKihd-?EdMJ~@=`-fzP(9ASRJ|(fbT(4G}?k>GE=I& z>EaB13R2hdRJf+$MQlVdF{ob;{3}Q^W>`wfdge9g^y$!`C3jm`Qxz@W8TW!_X}tMZ zE+eMVATghd@a$~*y6)`oX83&J%Z^XWB?M=&1ULxJ=19sH?9a3J>98|%11HSy2;8_C zaZ;K_^{}1&#&I#|>~up5){`?luvR2j1cuvEb2|ZAF@}8fu>_RsfneAF=>0jgpgb7= z#zu$X?t%tQzNSoI^Q5KeNldpk9Yix7-qk>`-K4oXJ5AP>M@9i4=}fN`iwYQ{T;)Ik ztpV0pZVz$THpQ8Rh z1R&`6=?m`vt;*LQy#vzbNt;?nJ`C<@9p{Ik_I!_ImJV#_bh#1Fo+?N4BP>Q)X;8d$ z1aSm_QP^1vdE6!rGv6N{1?V`~)-~6p6!+sD$Oo)`yb0Cd2{KJRdtfTrNiw!)pJ=@s z$tfKzr`ug#s$KU;l1@(0M5R>&2@b7{57JSSqwz$|NilKKhzQX}^0Th_Sj-&FVwZY6 z2`M>4qmHgPRbqt{gNEMFlJP@BGe4YMT}>#MX#({0a(5CZ5hUaD zQ)E;yWGLjAz7#bH#~5dc9wWHD@HuU3rC9oKO7?q!L?s~vJT~-k;KM~9Ne|GgoiM3- z0#4g+g0z~IanBvx=rqcZ-H?d=%f0@Cm4m;Pe;eb023Dj8zK1}`%=r_53o9%pLn!|X zEV1QuPE+s?HBL^>v=>QM3uA|ACIY=q7mUGP{7}k2y2TbBlocBt5V-8tL0cb?CJ$Ne zIop5!q{g4hQ`Y9q6BQX&W*I^ze5k)E7@KdVydNBY!ZG)TIk&LA3&Ym5MTn0-ge?*+iM|+wP&Uu zJ+iA#&yc)NXK-w61Op;T&*p)v zR#w!LICtaUY_!yIw|m^d5}hTST<8K*hPcl#&5Hn0hA?Q`r{n%8qo@ZB2+(~yYEL`4MjI%{|VCr^z>&k`_z!Hy{h+|K9j9^$o~138PSyWjek7^U_dQ z@Fnr4c)@uQH`ZCGh%G1(A~DrIUbv>sI0pV~^mXI(bI_rAPj(SeT0!_hqX&~ij$hhn zI9_+$3GJG7?Gh7_{zXomf2NjTXdk_w2{~L3Oj;s-p@AzeulH#|9J_@){G=GuE$5`= z8QR(VrJliVN$~hg2eSr*nQ$ixEab>R_C5^MI{!p>w;Rf<0Ae#YM7gA&0>a&25V059 zzD?!j^yPs0L;r5Vl4YVOa@xpyu6f^RDVVn6sbE__Ld%ydk2m?4F6Mq8LJ!Sy8_5W} zk`@0TF#_&gcpE!$^lwD}z9GALY-d=duwq(j~q~Y%X`fo|k>_E(Y0xnQO#~EMYx)rA7(m zRqZ0!LA)ZTcYFE|dzKM7{RpC!zhW_x@-f)U%#(Zy+cA14%ndxW z+M&DPGfw~((?5RPZ8cE?GKetd2Aa*mGyeVMr*|wC%iebW4nb$RZ#}%nK*yb`UKZFi z#_T%k?&H|eN`(sLb9q=Itd^H9gsAYGKBg{@no+}*qQqti-5A^B%sTilDqrONxt~g+ zDKb8N=A-h4F+Aa-yNv7DTB4`nkyPG@*3rL27!_!IUz~@v`I#94F9+X>2l=w;d$!$K z9PbEEbVp#nAE&w-?JDRs*2iOp)%?)_G?Qf`IgL_b@X%SL!Cu|>GeOeW2auf*QJGm(=M$Vgp2Zr3rfj=hvChcL6svdZG2ihqSZ}&%N{>PR#{J9E zWAC5AkD4#MiKVWwvH#n^eCq<@d&ur`vQ&m;!}Cl82>GkrvjlkFc9*R-XrFKI!l;e^ z1^=1Q;kT^DBHf%YJ&BmkTn79f2IC7UX8r*2zgp0{BIz9}<=|;{Exrb)>Ui}?rLp>{ zaP}vn$JOKAsVM2{6U-Cv6kTy$NI_a5sJR)zl8d}Ad+x=Y(D7mw|^G>@^ zSYt?8nWaLn6TZ#vlR!fwtww3u7yb@U_{FnX_sG)h@VMOR-thSp+7Qc968_bfl-G?Q zkh4~oMZTnKVw3Xl7{TkXvdHhPtwN;}*FU>sf&$zF8&BJYQy@xhjLsvQ#w~6sk>LS;+G1(k3>pn)d<>2G* zxPN`;efSp}9#3d`U7!d`Ez%Oq%DPQ-=@6e3Y+!EfzpOpi7M6sy2&;&fsB8IPs&D`dAWlopnT9hYU*`@6~PHIFW*e+?z$z!O5M!8v=e9yU=*w|nx5@O)cM z^N#v${09LF0VZllt!?@~D1^spG8Ku3|8`(*Ef=FwW0`Zc#~+863k6UY?iW{3K>U$W zQc^Nta6h`Tf@K(=A2Dh0q}-)qu2!QCMfh^t+}bd+FM0jTA7N!CFU(qn^jC}hc$0Qt z^S2^X6EA)>gR{3np>4%I*wRUITb0F(`<9#R6Ke7}VlGVy819g<0Rp=Fer(Lm&K|QRB@S>U+ z0&{L`K}?K^y1{zL&Mw)_X-BC8aG@Sn=+6NYXqIHw=11UvD%g!)@?3=aW{i1#;8rk6 z*sV1|5b(O~bc)?+g-(b@QEfe(FMz$xK$`R&3`WEuh9+Y3_1tCU631oqyHqd(_d|+b z#JtqH1}b`?isExBGf_x`4NNXNZdbegX=qdGiH}s+pW;c@i!qaj-(4HpN003JW^Mb7 z6ja`x8I?wT9={pgGaD^n8co2W9k9{GoFi%zJtD2ZtOZh&K;1)|H7b*!5O!0=8dl)JOkU-r^6>e)9bc#dZ<5mE@ayfo1vFJq_a@zMJD&*@S}&2<3~RU$*nn_yAuZU)%f7M<_Zo< zeccne=|qN^wgyb~V3CFDM+m&}uI7rH%+4~8!8kdni&KYnD2kua3w8n;Au}OjY!taTMK)2syj8r5 z3}!vUT_bS`t%ZMD>jS;E&@}gXgkqVyI6_pxCyY1#KX=Er6A<){DXcy5Sj0SaGR|ua z^$&eA_XH!3j0-ta{@1WyjcJs5|Rcf5>)iZnG%K320n8s~#LY_Zs zo@C7sZU1}j2}?@)`C|S8$>;t*a@X`b9T5A}(98>MeGL2O)!%)mn5IhT2^t$M9o8#p{Det}i2{JG3#yLu&t#7@VT~^i^8- zf#(};|95T~^qYe&CNPl%HcP~eIfCve4$d2SN3ZI7Is_VEZ;6nrvvXMLSg-jT$lbr1 zn%av&o6=vQ?1%BGOk>T1jgI~UPq0i)nbGOP=!9!@8iysc-7Dvn zXd*hDg;I}CN`EPRnj}~G#>>OgWX?zP&##LJRE3Ligo!B?p(tS`g_@J2KUb+qM6c5e zr;GS^Bqsl;(0HjRqN5o{67#;Vi79&jN%*Bs8yPaik2oH zB%@bxqSLWUBSR+gk&uDuX@e=A7uIM(8=pPtu9Dv#OP?PEO73cIQ>aE~c4Tf2Fnana zKhlBiEGA!q@BW{h1AC}D70rRQp*%AIxuG~RM>iqGezcdHZUfEdouTlV1-{1D`h8*~ zG(hVQ{a$A_k>_Fj7nN8Uy2C_v*Rp)o@6p zf-jb@V${%+Jkwkn1H^LnDBIDxgPoUI$lf2k^VHrxxXnieiPJNTW=9<951;JY^lQcE zgxsbp*D35PSN)R4F^TOjVSwKyKynX{UX_jXx9bOi=XKtJO8k?6BRIVs{#VbfCh^NO z8^0@EM9=KUz-8UE6Q-gn+OKUk90{Prx*ZoLPcFV43L#^>lLprsg0Qi> zYJN)Z!`YH3=m)Z>OM%?+{eS*Kq|&DLB~eUrGtp&55)LO)VAG7Q)ag(9maQ9h`9|Wc z)D>AAvLX|RyV>FE>FXzyrBFC|UBWDpF+@u9T<-lFdW!q(^u@q!cZk3AgX~*bL5js& z8fhwJ+u7SAuS)sJmzkMK%FT@)pZ{DS^1`aJR=r&RiNRj&TNW0g*j9VAAAZkv^Pb{$ zGNyWEIm2RheJoUJ!)!eZU)Li@o%2I$m8b7`P9B|M4&H!kAN+$7NZ6E?DOQ5=@3dh#N#s!d6lr9VahrWrb~*o1@%p4aa^i@J%tc_WI56+}PNntlhWd z^5l03cbegx;a>Q_53sEgQ1YUgO4adnYO={Q_UdYemIkCMZ!90dAOT7mxs_~~&osW( zQX^PT{s)^!PFJ|Vv2UZtvDehggChLD4ZMdcbYXEtf*e&sl9v}2ElC66sG0BNFZf}8 zn*^S`BZW53Ki%xNe*on2gU!#8OjasKSG`7{CfkVmSH}SbI=Sm6m)yjx{F$jejdQoF zw$?8+#~tfbMVVdF+Sm^&{0~72U=1xxg(}(g6utLMFnOv;ryik;WHuK0!R8IBog=g893Iyj zJsC&wSMu7u-V-=&AJhuR04y6#$~s8i*dM@Qmll^W77zJ&(WrBd7=b1%G$g|zo_u1B zYn^B>ee!U)D4&C{Zh2IL*VWyD!uO2T0nB3FZ#+4t5D=Z-n*q<*T#j3)uIf~$n2qmd z-V4@c{`2}rUnN9eOeCwRMbr+bhlFiM7;`NKh0(BWS*rSpdo zpA*;|3OHE1#~eBjaFYIh2D`~|k~)#9w{W-*RD8*X*0SRx57Ibu*UEjJ$h60E(}{}( zyS<3LY|rjbY^%#BAtb4GDN;bVtVg^E!BRj2Pns)`~nkq#e^}{`$Z>MEug%&s|MQMVIIrXE^gRcg-3=ub)+X8DmYpJSy4G z{dj)|ojGI5tt)#;M1kL`28{iRNjY#^yqjf`EY>JKdhc>Ng{@Mrj@S;!k8(dh zB2moK1E$}|(cQ#(Hi+HxkqE-nW^svwf@0#oKdCSNiGmVFYqgv;|ITAUPBdaBLv4y} z$05fAAK?Zk3+F4~@I$1?G;#d}4c)~l?4|UsLah;UI+s6$)qJv8&zvhGi>mJ_6UG-5 zsDd#rfNowHCnl^5Zek*WjE5KHxl4tGg92Pf&@ug6b^$!H>KRO5$LDmRmzes*_@l!) z9Np)1L^YfZx3$K%Hh8?IYNy?UAKjZBsIJ=6pST^+pJ@(vZ8U?K@hTu(DFRWF!wP|l zU)H!6h+lu-NG1sbd;dLC!Nsu1lcj8M`w9mL_A&e%ZN^AXE}i-x8e@=ifQ&J7a@ zQ|aXFELLihI#(l4=gYH;H}z@CfF{7aQ(qba=_O>UMzJmU}&L)?MDeMmxeBi_xRz=!Q;{Q&Q7Z$`p(Cv^m1Z<-BWCLStfL`tpWVN5gFn+j?KKaexeN;4K9S`e=_tB^ATX#5#0kml2NDwD zhSpYz)A`}K9(_@_^X1^XN*N;+$b{SI6qCHXyc~%``l&xR7h^qAWYK#4KQ#*Qs6kB_ zlu`=P=7-<3bpm*fY!|IJfeZoCom>S0NHw}|bZw5hAzR(Nq%17jj(*bi2h+J=x@{Mu z_or|y*6&&=wCbogq<}}J{%!vJ7W(^9 zBHH32@w}7>Klq37#R1TVYr5EfffH2c8RnxvcEFVKgYKL?1OjjW#!uA~z#O#A22vY1 z!~^qrei&x-Z?C`$Zl!hjF$j-|$cqh??_DPrJ3WjAr_yQmcUnoeTx?=81(O<4dP?0V zH33-p;U_Jo`|gV0l(zbR7kBc z+|)26px7iv8rS`ODb7;a2*urwYo)}x1F`@$Gu9R17S(_X18)^jL<&p8K}z@@g%Z{x z@yo;PQ+!tvmDo=eJ=83O53o?$Rt%S{DW>lgOx_j5+U;#^62%g+T1S=qK~_aC*E{{9 zi*@=4*=C?*h!V131xM7RJC{^D@kvN1r!ULQ{XefNjGa(aaOG32&$G;gJMH7 zga~>%#xeW7Ax1*!Z%*`{DCzt0`@Wl|`0<`$qJ@Io1b6Vw@scK&8m>cP>pOR8N8DUc zv*Q1NSCdMOml>yT1&`VyGW4}XEsQE(>}E(qJXtP9f;0$z708d)S*;bay&@2XIhM%{*Ta4FRW=`^prDNZl;Pvyy>;F+BaveQ zR2CE#8ILowlB(o&kOZIZr{zW4D2?jHDk4p~vBGhtz@5&_CjIwM{fsxZRKV9m^cNK) z^}oi^|MT>Jfp)n6z5LL^8o#=Bvt`l>=3OGuISrmJn*oNOn+W}6wzdif`pVs`1V5Oj^vZ3EHouz&iLXPnVH1Q)Y$GeYNLj-SjC==CcgAn z|0%oFEn$}zz7i~Ead@XEk8JyQVgDdQ(Td<8xprN~ts=9rv9UW4dS0Q^Es!U8H@M6Y z?eu=aYq#+Wn@Z7c$kCO`c;KM3!{>>_&J8mnCaRx}D4>LL7}SQXzxmTf@~@QUhU)&u z$A|fE*ecEHKofC+n_Kg57IH-K87D%E70Pf=mw!#8CD+HO4zUO(e|z0otgf#+cX}<1 z7P(axMM%qFPBDl2AZls=*=D%^WA}vi;nUrG_!WM1!Dlp=bm-*PGOB5aFfvULVDhMF zSgc+hmczx)4m>3d4XUk0_|4<`DRw+9dUM!7^6Wh&rSU5}D^oOvJe@?T_oTu>R4^*4 zgD`c}JDN>pKJs2od{>C|`W%!&X>A%l|M#tbaG8*#JigFk$-Bez5!>ZpD(D>oj*Nvw z;UE=O+HythfG!32BUE)~FAX*qLwk<)mgKCZK`uC17T4uSL9EiHjasu5m($^I+`*9N zKLKY*Q7U<1HMt*mX+rl@}^BrXTj2*3Pz=}BSx3k#u982M>o z=iC%qPlDIEF1Y|hst*f*ruRcktM}02uGe>TNoyCv6b98O2J>R^k7Gqb^cH2z)PN>z z9*1Dt)Hw8tsQ@(VT3H!#^+;JSbxALpIEF}ZUYc|{?p}Jw46eU4wX>=>s@vq;L&W)& zMQqDdbOkPpP*sW%-{k((&RHCItJ&O?HaR44&>WJzhU!HgKi{Aw00R8eypsHAeU7II zVsIZQCej&#!WB_(#&_hM+$N}w-1%cd`CUZ8P3E%;sC2Kq9Eo`=0Y!Mw_dP)=9ZCn2 z$270Gw4QmNP2U!(5~Nv5O2}+KpCC+?1B$fXaJd}7>o>4K0WRlKjDk>Lnkzzs{Sw$u zs<4-Wa-zk1eOF+CWU7I(uE|cm9{gH3tb?wfc& z9kz`iDB>%vqRn&&40ZTS_pS0MPZ_j0%#bKe3?#%Qn!cw0{>J8QAhO}K0WitjU;FFzY)2ix(pcjS`0}xIVWvG{Mya?51>y_~IM5oKC0F;!-NJ)v6PShr{NiyQE{SIaj zK{zjzx1Ny28+W^^@y=lxR?f;&Y{m7xKY)>l&kr#jRdm9Um6g?SNL06NG`HmczuSlF?|Swvii(PO45P-9xeN*6@%RyM z=H|5c-N}CdMVue9Qg5=z@j%SzR-}DkMAEyg<|9vg?Dt0{n%wV%e|MmDU_RKw-m{&$e zLzSS(Ld8lXrVtxY(lj3(pIPQcp(x{0mGIqGuh$y|)bQKa@Y(G|Lkv6E`xbWf#(`og z+O+@AE*fINa*%b0#$xIP#(zt(6N0WEj*diBjE<(&s^)~+zBOMi{@W7(%}njcvq)x$ zri-M~G_(-=>Lf!;t$rK)`}glwE1g{a8NXv{Jt|3Q9!?8>Rl+`0j#Mt8ExL(18E|al z8EIXe_eqYIp;&jy$^~VlIU!P1k zusrSawAZ#mjKmPY$+94g;bt8?Ki`;oKF{KLAPy_F>HJiyS(1(6?&e2k8rg(LewQT^ zZ>&&-2De@iYbM7Zn8Q{ctRnM15#DL|&Kkb`y^9hiL1kmTAN~z9E_9{ei`(axoB!@u zxGTffo2RgROreWRyU3?f*Zm|a*>alI@q{8RAgWTe++-jG=F}dxB*KPCuPgKptA1yG zxEUJeTEZj-pn@i1Y@7tTJSJ<5;~pHF!bD{BQf@P`*V6iJ^vKk^`}ojY1c~O$=Ri&w z_XZ0Jo8u3_1{$0J9*PYX(m?7<|5ozx@GrV6rw z3n8meY1d>da}tb4;8uvrv%05G*p|6g^2XUY0vai(H=ij_&?|!OSaBaD=|LkUKS?j3 z%<1#}6kCbAP%c%0P+pDzj6zqnvW%0?nB1xWp(oQ>4>IOfrJYk)r5jDwqi676MOny) zix4xV17d+BdUv4irvHM)|6v08PzZ6z{3pi+ez@GXX7tGZM~SFk0x1!j(JW#|{~a3M z>xo5p{$Az_{g*S`4ZzJzXU0i0yd0Y`epMLz50Fev7`hC6vCsqt=L2@BXso2?MAJf9 zSXg`)8=e*{v3ZIBW%78zv$IYgBWyI?AS<&{ql)cfy)M$ZCgX0blZ<9+%$_aFap`ji z`L8?n#8fi7j1r+OMVW~nvlF*8&&#(TcUT`m^15y3@up>MQeKi1OTxjwOm_ku#_|E} z&qh%up>;5G^6rrmf8^zrOTB&2nKY0$+8ITRq_|a*4?j9L;|l&PPeVdI;t%Kdeudi0 zmXq;wqkCvzf)rgK2cOe!9MdZTZrn0M_5yL!14}x_2XXa?aZQHhO+qP|672BxTb}F`=ij#i#{`Tn}eSYR|M(!tTtvTm4X`fxVpj%&h zJQtyndox3Y!)FSd-`y~{&!JVS72x`d;?FZ8DB|M6pNd zheHbsK(?Kazt@{i64|c3Q!JLCW>)J8#+uA2G=G7y(Y?a%%)YALifP4W-}dwuk4Y}N;=fH4F`wEJ07gqazOTWb#?SFFNfAFOU6~?M-u5PDG?!s+9ZCA|2>T7 z6y|y?@VHZWKpd05wz7dWS*wZnmOf4lEZ_;%rU81<)qCUVp z6Iv?AWBJ)0n+`v7@cOA70sSoM5I~=#9GggU99}F;cQ~PoBr3%w(o4iTv|$w3zUEN7 zIyRs*#i?{Jm5Gonp!fq?JUS!+^R^k)4~}}m;5z?B*i=P99A@wa0!tiEy$Ez%gQ*%M z%2Q)+x0koN!Wd}?-%86P6E2H?h)k<(!{s^-xqK$Vf-?CVWHOCbc&FFb)3*>^VF?|z zQAkH9N&_0u3mC}+$gygi#TX8VNF_Y^0uI#;zN2(3)#~Vf*gl5ogKv3v_wzg95`fzM z7SkZ&Wruo|(T6&TR(ohpg1~q!aGP2i`kyA#=XxD&eOO<~AKxyad!cjqZcb6awTL0k z0q)k3)D;osyG$beiYRdp3y2vU{*VK3_k-hQ>25wntx-4I`RB#!3f*F^Nj%LQOz|h zuYXBUDouV`onEv(*>`}zJm2tqLupAuL~LwmxHw!49xDQ`cWY>DENW4)5dwPt4|jI- z4-R8OG+M3b=##bqtrA6U7n+ueJi#dG+!naDx~-8zNq*x4`{V=+^jWk>u_9k|!6thL z2tTa`TroG#+lR|_8%1jfu9;Tl@|k^M+Mm{HpD{pro}jvS)g0sq{uT#28zWe1L3WK) zB)v&bEUqj{w_(-gk~PAfXLJVK+}QtE!qSV)_Mcz-`c)1|`5y6^V60c{2i9(C?#AaZ zM8dfU(~oZInW)1KQ#2HV5p!~J_pUy1lFL7Wc)jHc)Sk{Ucnab%(nmJoG|L;0*eD5? z@TsGGlGLd#OP!=!;!>SxM?>!wxbXR94oDXwZnkIhioIexB_?v=E&0Eq)J&;~UCw}9 zXq92n>GFl&8)*gv(<_lIFL-j%~vA3Z1y_AE`mSx@8xP6&>cp{$!)cp za{B-UB~r`#^M*Sk9ebR;nEgKojgKv^n% zR7GJINge_7M$%JB{Jh!U55a6YF}iQYoVw6YzY!}wmVJrSQ@Y1E_D8O;L$$&b9%hJz zy!+1oo#3a)JO$Eq^9D?gk2yG?@~FO(_QUkByYa`JP6BaJDUt?*#FV@=;CuJ_|e zqA|Hh#t4;h?WMpL$y%o?^+t>Js2?i5e(xdI83cfgfMh{S!pWRNeU?DKh0yRg0NtY_ zL{8Rhxd>J+mpjyP5T3wquNRkmU!8|%5DRFYB_`s7?25~qNBO-TQu(9T?Tl!Hy*9Y8 zxKDI-I~V~Kk?c@x><#-RosPa44ZDd+qr7Q99WIa8Gl2Kcit)~0*|&7#jb^Jr!(gxi zx9M{mSQ*;~Xdo+WmGpgf8`V_FO5wNR_T&HsvbzMv`%KKN{}HDC-5|pJx&M3R|D6lw z?29TD*p*cI!_T-0-xm*-7^wZnA-_jUe!$&(R{Kb%x-8ty((AnyyA7H}M8*zRXCBP; z`J?mIYET87MK^T6HyaM-K|sKWdH_1OE?EIl1M!-ye8GS#RW{-W?z&Qmob> z_W4{kh{0Qi4-BGH=2BBjQSJ*#HcDe#9|R7*9WN)oTg`EFXl*h)B57Vgt72=C%?l_5LN3Ifm|}l7fVZ|B4W^+*rYu( zMjSY@U_&D`;M^IkDmB~wAxZwh@qS2tpJ!MuSBput`jQZG(5}iK=~9HpEZ^nE9g>kE zQM$^?ma$?7(r8ml@M;>+C1qpWk!OBJN#OhZxQ3m6lWsDZT)1MO(Z4HnOg$j*z;wBw zxiN@INE9A<5iNhI#8cAHmJ$t(k3+`A$vL>Xhlh*X9ZqIrqtodO#b&$Ld!0BQGaeBm zNz^5#r43B1Z)vj`KZG4=IKS~wheA?PjysT*-o~uAH+Vz;z1|#gKak62#a_kdF(u`t zl#`KNMD1b>`kRqq!Sj44Xd!_>G%#Rblmh0gjEq9Bg%Qfbt5_mI2>6u4v#YD~h2;pi zkdl!$EX2H05S*no5=ao65E5O99eODlo-7_; z_E5TovXdmGQk9&LW;FLmi2Sjf-ygXl(JvWeU=|T%g|jT_33JC~)(hGUhIlFpOYO~k z`RR&rjiVV8YyBm(29qb^Tb;QmNE-+$i-ka)tM>0*0E! z#{rOV$_ORV?Ft#M?N`xgYBmj z&RPp-LjxmE+Kvw|*dRFkVS0E`QSmD&rB$#M!m>0YsR;xIQIBXEW+_de(rKSmaoLam z-Twbs4sPwk|NHU3Sk)V>A}SM2-)3U|;A3vW=b58b2HWB~;N`o6usn&*Q9zJNkEMV8 ztXQtVBqA{98p-w}JlbEU%E$Kp0JI5N`}dX^nxQjm=Qm%x6$b@ zzT-|b-`2GL2%_TR4MOn(?z>2|q0rv@7j~b06Qu}vSa8aM(073&lN<#fjT^pgrj735CG4x;@* zuYj^VRR9k$Jfj_iB$~ohEOj04@~8o8$aP!G*g&e0;NrC^!Qy%0BhC$*d+eIygIRGM|n0%^@{%;hT1~W0~CWG*_32Z2~_J zXOhw7X6Wjh+JdvQxi_5;O{7J@#lEnc0Z|eD1CUsk=O#p> z;>84nI^o}w3)VGxCK zCCUBqbg+--!@$f+m??|olAvp{QO*XbXZ21uD?p_yFj<$g7j2YY~1XZNzgZ^u`Gx3m`Qe3GN^Ck;l6h4wl^L}O;i+06*@VNdE1Y?{> zzaH4xAz-`MaCkJCKDbP+jwnxG43RKwKW{XwSgyyLLZON!8ij_)lpdyUKKr{Y7Ml}Z zF!v-=@bMQx2f60WVmW=#$7j9mAXY-vpDj%%jKoRZ4wFCTPTQPryo)^5P#wR z{EyHB7!CGz;QsqC{I?7ohE@MG(eUda{{JQe+mA-%uXw4Sm+vA7(vMQZu^pkLK*2!@ zZH~?$;UW9s_+rK{^?F{=20*r6UF{r2+RyZeNJw$Wqbm*jL2-ks?=orw=jf*u6&S59 zTg{gA$KS0$F6O4mVNZ99@jJy9djk-J(lUv&m?z3N=wwyGceFX51EZb*D+1$1`Ea|-Igwj+e)!s) zL&?zSU`BP_sdP6*wv7o4HaogVi0Huf_)miLl%T^54iHGaIgTVyhGj`WgT=n2?+FD| z^c@)~BW2R5-mZh9-Rdx_0SKaJ(4UbRpJ$}d;WuqVoxk)B5#eN{;)SNp5L03l?^uhu>>N#qA=c9?x?$>*O zHwqV!a@=Q8(pg{I=-=)Kv{m;EBazMgv-(dh;_)qD|6A_yikF;Gkg*qYXN}7dJP9j-uo4%Jzu;>oKB#2mDZj z85I#HB%wes6Ds3%I!0j9h8T`UHBD!41E=nEm9xuW0hBLI=g>}M@5Z}|E4HYy4vEa; zE|ol`@#CQ0Arvrxme`yV7CmZWgn2HZ3_6tE*AX~-4t_Y<5)p3(>xp@wQ62Y1Mkv(S zs46gi5#vDefur^n0%hQgQac{1ub_fahW_#-EZ(eOGJhGDd--LndRD~+R9dBQ0F$Vy z!}i;mlod0Lt*qVGgxKwK0X7&M?sr{Nc{HbxT8_(V(Q2wmPBeyouEI`&{!|36Z;|- zb^FNW^-P{`_m~yQ^qLJp0Q7Rc`*zt2F^!&ca}hDo!3Y%g94UX4prPa&JXHD0I^`3> zu_J?MwOFfx@%gx$lGyl2VH!>J=*NUHi*rOH(JqraYh!EJ*&t8FIyqGisH_1|F6w6x zioVCW;||81K1x5V-{b3nsD0KeS3~2-=n9Q0h|PA(2&q(QW|K94al?$(Z=w^J!@Ex9 zfwWNo>Rpk|k($N!GI()$1U?C2(9K9>J+oz?(RE+3;-Xu9liTpjwDnq4dbOM6nZ#8i z4ilzJUp?kAtqx3GIsNYCC5&=En6x!^s}^Z#a&km*ah&d!^Y8xcJlgfkp~aCAw6r4a zx<3KMXs2NcN>}ssm28B{C|epuSs#T$e{yTy)u$Q?9)+qb$9DR2hTl zz4Q`{xTv6>Tv(T&*-|MqbbhQ@2HzPTyOZQE{oQo_6G9r5Tk^=bL^Nl9(oj!v7Deo& zGM79Cij0|o=O2vVsca(AAMCg$cXlAm2P~VOkU4%d$G>*F`VpdNSZbjZd4~2S0kI*> z@rFkA5M~}`PE?i(kR(til$nATRC!-4(-MaC1kcph?0)%cdjWoR5#D1pvb9@V;_hyD zq<42a;Zmrhp_kG6>WZz|AM<8R<7FD&VexNRlWH}`-6aSm4W#_bbu-Yy?d|PFDrXB6 z%C$I^s&$bI`un$DZM7(+#GJVtzk^_cMFh1xf== zuIG!zDU?bm-0U^O-(0Plj{2y=TU%Q#HXCWLdHtf0)$Jdo5wn0^t_p~=&$hSU-ERt% zo8Bt^)Km6mGT_W)Pjl2XNn#FTvI62BkXS%fRHKh2+At2!g+&> z^W1jEW+sareC1|KAfGk)f8goEU=ES9j2V~fBdYB!9JI@oeob-00&u+3KpMb%D`6ck zpJkX|3O*qWn_y&Bik;f2Y~hv<{7g(pgoK7UWkJ1jNv`%jK0sJ()#DT5 z{@(-u8DIk4Z24ZD@61mV2scrBWx(_P5CEZ;8BHQ(HZ-yd$@>H|oaqL&_;Z9Tlfi?T z|JN#bGTm)|uAlYA4nU*4oQI3WUPZHAHW)se!qhijogvk@KZ(cSDnZ}e$^oq@X_h)L zj)7dl{@SRqbBZQ^U7B{|>P)lHZZpH1P^F8$BBwVVEOcIT{R`L$C=SC!ztB zP`%i{F^xLY;oLtl|8rDMSL~Y*+41%klVk0VWHkR9!6+hZ+ z-mB3@Gh@cbRyu_a2R~p-aNJvf9U3KVxMz=ikyDBGieT%+=8PxTR9PJHCz45oe%0+A z2@DoTz`+PzoM zqD*~Sl99!JV-50Q2hd&pDbkCrq|j}|xIdYM_4d{#Bc`K-MTDfh95_g3ZkIqrPnUQ; zFKfI{Cm7Yy+Ng}XMo*J}3RiiHr*Nei1IkP}VsjI#Z;?iI5`j`m;&0Sp5t3rkq$n!@ zs5!TtZlH#RB`)j-T{*z|y$C*%rqC8jb4XhzSJ+56Q#=Zz!3Jw|<7|}ul90k^{V3+P zwy^P=o{F6^oGCP_Sfo;^LT8OfyT^IKQcW!+Tgck=27&+!2QaVq(@1?{@qF(eath@Z zv~J)5hvf^#^wQ2&d!5K%$Y%RvU%(#cpDJUWj5xW|yCgXckUfBQ1Ers7a)S9DQf^QZ z@?xfOQ|WNR-xmop!1F=-(%}sj$ySantU;lelp(2Xk?ukCI(bovnFPE~aRXs;Q_lVG z>NuLDP?&SvuajK7v3Y>Ck29FV&tNN_BzBbCwTM(6ipwzy)s znykt%l|X$60?g#6Nwzam^d#J@9ic1(Q(Ms7WNN8Y3c8Uc5VPZZ4=>dbi94xAg%S(J z=Bv4%$^IEpw%&jD?rXR?93CN#BVX5goWW6OFULn6svfANrs%WOMewKbTZPbki1;;q zm9*DGsh&lk$L;R+hhI%V`P}p+)dkT$Nlr@E*kV?1y%I1MxWq@N#KpynojQ~%^h$~F z_`E{kaJdUTqtgJONAfp#jDTOsBYU@hmm#2F4wX?YWK{T)rz&O;tZ-sEYYO)Y3CB(} zA)M3ggo4d#G6NWq$?l*b=;&sAy7>nUK48R^EMrke!xCH)h&z;hGA-tBztLZzjsug0 z=}?N|2i=2SY7vmbPc=m8SS>t&X@+iq;jPh8Xf4Wzy7gZ!HA4z_Y<_E!{)=n*Pl*hB zhBiL>_3!k+M^)0`6qpOZC50Y4xC>wFba)WI^aEtJ<`P(=PqXGR>9lgy%9Nun$9Nph zL2;~PRC?Sy={SPP`t;9|3X&=#sy{W>);YXAp{a$&eVHLT9k>pAA8;~RFQl7Wx@$%3 z3=A2moi6B(CMGPSi3^JxTH$cGSw_cGb&fB$R@M6K@PGpP;c0F7+kI04ZLF&7i|RuK zTvv$z6o(~wE2H9qg@$40CI0Gnl8o9xzBqfFC}Fn3P%~P$u~8% zdwv`?AR1Mm^BPs5R!qhNjTRIgK`i}TU#|cH4tBdWy>2w?FFm$?&*%{NlERuJJmm1n^-9)+^76u}~pVofi02A*eh&JmE}n9M^?cOLk6~ znq0AL%Bfin%u}8WAtOpMiQ+k>1b(8(`=gYXU8J@hqLk8cs@*2-t3Op4lEw{YPMYsQ zJhGIGGhEvT917*KyL{g~eLhg4)o8bvgjQ+Mj)UUH$~i~qIXSwy1$9+bodz*>UvG`h zGMgEVN2TVFGZG@!64f}RR-P`G)Bht!Ij7g{Z7yT4b(%u=zW>E;ww{N%Ho`3cSa6m$V`Nth-6^}))tZ%h^`W^GN~eDMYeXwV6TLX|R{ zy*35#d;zSbE|>CIjR;(BxV?#^t!kFy88XuHTgQ$Pjvv|QsS$p$RZ1RK_(6Z#ju3nG$?~MUa|E~@NLHbY4@vMx5AL{7lOZF>Z zs8uOLQ<%jFC>XRBOo2VYoUL}e0j&O4!?m;*Yh2kEC2&Y}L&4Sa5)Be}F7k(M%qNA8 z*>Ux3pq=hEvuHg@eNHkko^Saecca@2C{-(V0{MAc^%m1|DAcNG4MsSse25k~l4mlb zjP7uSg^PL6~^Y^SIk3Tk%(h z_2hBd->t1N!uu2XnmhH7Uv1=?mgY113UC!Td>m5d@Ok5*)9a5o_oeH|uiv98wCVAx zRI6aBS}zFzc&CP?5e!>@vnkRLvL2Gkmq3q>fD_9aPh^>>P684W8Zee>wGiL`UYlC$ zX$8ZaOk@jKGfx-WYPS`N&*HWF9Jim^)8!F^aK-hhhSPDl-NOKmYQZ`k4+Mgb0IH(( z7#0hdi_6z^mHJ$(A?;KSC$jNK4B~|^4jc{#fe9fzm1^aXv4pYg#mMje!MUP8KQtm; z15x@PiIgNH82SWEZgvSg>_R*g^Q!$c#Wd`g{K6`Y<;7j)U#%eG@Hfc$l${KAT4O0R z2>6YDb#u9qXzQe{z~7~OFZQ49{~9aL61)0%j|-3!tXQS2-u8!{B~D5-vV(fZDV?ts zwoP$m$dQh`+gv*<;N3NSpIuz;e}-_*CV2k zgjkK^RG=2EW}&8ClkZfRkYHsGFsdK( zl`d{9o&%-f-33}VC1Pkvl9Y<pQyN zd{8mR8!^-bS^JPe3$kYeJMO7U0bqRlz}blXFHfWR`*^Nm@V%Ka4Ceao zIJF0OZ{NUdyATFr5#zm*k=sbd`v(f?`;!p$@`jE+9Ry;e6Wy_=@lFX(mi8aBf_RH; zZz=>vqc|uUrmuc$|VLEh_DupATg( zRe~~dRwkbliQ32K5i|IGD5!lYaW9-Ns5B=}JpI|&sAr|sTu*w!4Mb@b0biE(lt{!t z!WuaPbVo!?YyUMoJweu_yxiXhajvC@bt$K|%|fQFOl9IMiaamkjyhXA#^Kaii;7}9 z0uB}u>9k3XQz`Q?tB#2=HI-Vet*Q6Ag5#509vFZzpVb{6iS?fAbQS(!u?FJdeP~2w z))Z6r1DY4IU0|&8^9vkHUBvwrc^5=KK81Z;V^J0`pmf zx&gE`HnulMSLeamr+11l2QeV|9i6pY<&;kuM{_5!2bf~Gkg{lSR5PdPRJMC&5Z5-8 zm*gjym6GNiYh6@WG+&mhbs4 zm6{3WFU0(C4)!d3qvQwurN7CJNIS>`EgosEcCD&Ff+~T`!zQHo%(513Nj9X5ra(Jh8`l;C=Y( zbG>DxJR|Ql`ht6nd`r-+`H)_q*M7=bS#L z(0J$T2$wz(r7y6$pNq7?;Mt?ondV}a>Io3V79;oS`UT5N9sibV)&mn`#SY6C7jqa zF1zNiHExdn_i5&Ti z@?wR={oCi~(No8rdo03L5l|I1ueB&cCsD8dvrvFnN7BRAZ1bug~Z7wmc4R$5c`%jOV<0qhW3{dq|oMIz^wgb9}2}41}v0IuY77;o<59=D)c+;(mmrylaSv zyBiq+9o!9w-Z?GvuhZrcb5kMOnp zpU$_jR2ko-<}jU&KuvHVgH(EWC=TTh=*x^gkZAev!Jfu~CQn)xDr?a1WNrq}FUJ=L z&D0qW5-P)?t)ZfPHRFRVkoMFXqKRbz)K!B^&1N9&{E>)m$O83~#!wV}o2+N@#a)e7 zq(ud4dn!C;Sn=H&HIfwzulbw1UepX%7NFNkq#jj;bw)UK_qvg`DtjWa@ydm^*F?yu z)uhiNuAaYUQ|U9`z_)JXU+e-^QGX+PX-D4Lh~K{Yf>7vb^80|ngD(}MJ@pVe)6*Lq z`tdv{AIbRnLw-5C?K(ujQmrC-W~BxG({`rQ1HykjNdpYlt(urbuz!G1Oy=-S?BF$x zWdmQ2u*2>&5Q^N$9=3k;?-z5j_r>T>(N=rXVZ;FFW`A9mnR`sfY(vB%biCnC<;987 z?iu@2OB)SUepxbm0}k%5&hxnP zNrTyyo6S}y{4+k!o~$c6y0}`qB41G&TPGzBCSq(FEtbLJ2&hJr8TUl0eIO{b8X*G# z2HLTiOnG({vr{|g;MV$2yP3ZZi1Oav*lOospkcd9zoIi99+W=*{(-t&YedIZvmcx* z+;Q3gb=Q4uRyD@Mija;2-=)#)tpQ~(lSmcaE;^QuNCf5v!{K?}??X}s zh-#^*@C4=Y3m=5Rg5;OBU{ju7+1PUAqBNJF_~R>#PS5?iTcV4#b#g*NLf(Icu;fEp zSwRDZMi(rtT%POHt>2p7U5$FyDgsXAf1x$Y6UaCCx8FX_)alEYNgODgz9`e zj~6DNEimf|TkE*_(e10hyU|jW!R!pC#cm(v|)(j!sBCq0^ zsY=RqpSY&484sC%`NX%bDK9Rf)-=)F%2b7NIpY|NMI6&uVaL;5SG9@ZoUOQ)_<;X) zjAhnIPTFN~mBHN)dmB&M(f8cPC0M9o1dF+fU{}^z>B8VG!yTxs~e%p;4A>iW~`vSSSgSm z#`uT%lIxEZ)d3z}ac5C&&FNxZG$xAoyd>wm_kcOZyCpdby?`%ol(67R1vf$N3>mHW z?mJzm0gekMH=TLSPj8Q16uXf>g}oHdqSBJ?*|ndHz5;w8e2jB)=D_goSHBzTY0l4e zk<;H1}Fq9HOJqzC(9=7Y9YKEWI1kM118M?r74|(PexY=h$pGp4}SfyX`X`K0| z1kEHto(TC{^m~+b8Zu;aD3Dt!ZR++pRKARQe^KHv+g{XOWu-PSP{W@c2}o@o-U#g2BkgC8`K_ICPF(f-3T!fX$`Lv{TW;)ukLI)OkKWpo0F1h(wF_{K z6Uxwg&eI`OY!tM!lyVTn=aq(~f5W{0yRiwo5xQprtUZ9$UL1UTsBGF)^q0V>3K$5O zGmfp6ey2xrYFhVl%^|Tk_MBlMz!jApNqhc#WdiDe+&3J6)_T~=h-@f3U3W$~rq_To zH|N?|z;KzmOD3One7+Wr!Q@5w`PE-dQtD;7m{WbTQoT+#5j&JL{HNagopS2im6od+ zKPW0yYd_oGoS1?l1hvyeot!caQpFyC(8OY|4OJ#*D>93f%HVyMSE*RTlFfP&>-q~k zUuNt7c+QOU3GNr#`#IvEbH$Y_`c__{UB_)Us};gi8)vax4~Dh+D@gJHY;b-CZ0Gxy zT1T|Ivrz8Oz6kUDe3!fUCZaE={~p#xoAtno>%1akH3FF%*1a_7U0_^FEYfREZjOkr z7y~Oax@XA%1rZa}a+P{$ZY;6g=50`JE^V8*xIA)v7E5ik8Ew@;7k=5D?m)?JvS{nZ z6jD(VP9-d4d!wSGzjadYqhLxI3mjRQi14R$276PXO$mPeR3c&+dw0CfYwPI35&`%! zAn~;T_8d;@3P21dI&F8{rv!`)Yoc?mgL!l0kcgCc z#Idxmm0)gyPK{dystA`1MGfW|Ax4SuMaahb3?Zz_kn}7Ly}jVvb)# zMVNFPaR>ft{~8x%?S>p8?&nul<{}i zTu%~6|Y zb?D@AmyRC%nxfg4R4aaB9m$67Y;jAd!($bD^oUU;5LQ7#u~Y>WjWD)*|4|Py%{>;K zD0C|$_PMG=5f>cV-PRQiobgEgc0+|G#!o^x#V;E&2}X6)?1$DaJ|W@rY0r5C; ze*{XG$3;*40QcsW$-bvuq0^4~vzl)>G=>kr?ZQ0c;Bk08!T^;2IG|Tv0df57%tWBM zl=zsuzXv`vug1`7bYH+#X&-U0Rq1=_dmsSr#@9gZ}b147rM5;CfWSpQ}n-9ceyr5DMsM9e;M3`$l37T3FS7Gb7@kd>MFz&HYDhlj!AKmdowGkgRD z6m)xf$E?%q6P-G}T%{V&)J00>#~*7+a3Rpi%^?ow4#-E|ekPejN{ylH7yTfXw4<5(Mrpb9Y-y38aTHsFWUrWcom`#t(t0*x=!D z1vLVPPh=%=gE~$^X&~_`#sSeoPY8p0q7xmq7=><25snz+Jv;YtTGH`4u_;rp(H%33_O{Z zZ{>`@_`6iMq2BPU!v5nJ3K_pEiE!SfATBnS)~XJ<$<>|kCeI@{4=;4VPB||E9$vq= zu3Y95v)2=TfZ*r*K$C!;+I=O|PKt>p__Xe8P~hHLY1gWtF1M<`#M8Pp*&h>nJ|b4 z0ZrDVrD?u@rCWDva>@?AM=Fg$0R0txBR@pRrAs1xT4|v1oi&E;k1c&NGa4}t*uTS? zJP>NTEzl9->R0FAT03_jm`|DJvbGp~)bmWl++J#lnE7{HV^k@8ANb=V>*l(#Mjzjt zHTipJ9@=hO|Nm1=YvKQ_MSH}dD$o+9Wx27iZa2JuBpF`yS_$k~)vDbAfG7Yc_d_!5 z$doCFHQl%@BbFTZy6&PJWOO~20RY1qRL_gW;}cU-BJPaE0Ds_6xEt^TGr8do_e-op z!=*;sAFdiN?_^VXO-PG=AHcw1a=*)D-w_Z|!SYXLU&l@o5){-Jx}x9wGg$D{XK;qw z^y7!S_0Pq^aEEq$e6OLd%*?^X zIWXRjcjwr^;kHlGi~EeKR-+fL+4LpQ`@yQ%A*H=kxeO|skSa;(lqJ~SdXXP zVTUJF4JU`grvDVWe;2--oxHX?+(F?>=2E=a8yP|2QX;0b@}nW}J}UjBv`$7+PDHQ= znfEOr0X|N%beK+z0uohHC^3No6byy+6ayO-7uCBCJE_d1120#qBKpRleJ1NOM%-{o z<5Kq-i;A-FecM(zM^~RO6E77L4QkF8O%bhhDsVIvHdxw(gM;_J?@2#|i4zi1?DncAk}GAD zb=?YUAuD$_ry$slN9x-c0)tC`ZLdR{6Yo>N_fP=PcVXtU`oGnyBLPkfkNvCIfPf#Z zyQMrL*qRw;qQy`X;+81tO=hxw2xW5l-P^)oz&{@>v6xS^Q0gVo?6@t*k6k*SyJ7Thz4;RWbB3GI zbOOa@r#BaMbjVeUy3_3}M7lh_e_<+zNTl0Bnym^Sf4#R`c}>g5&HZ#+yxP}Mqs@|f zQS{8p@9#Jy#g~F+6aj@R=F56|-k$zXb8n?lGN`XHhZTnq;xqbU;--3uk|)Jmky}=1 z)ir<6MtRP8uOR^+elF@&BvjKCnu14GMn34HKiLN0-qaDZ4G^R@5hyQUy_1M@_O;RW zqhr5sI6}gyw_zd#+D}7@p|_%_FPiCBxuE?d*ee5H0^Y*`r=Q7Q3|=JXzN_fMX{f=G z6P)82^=ost`oQT6i_&!0p}`RSijVTKYm6`DJd^O7y1}lv2B=bdPiq4uw8zE^9U+s1 zC-R8dk-lj5xYB>ehyUGsup0m09vI?B>^`7FMj*L-?r^}bv(S1~&B5LM$T)VjdaGXw zXrjc9uZmz8h>{G->sa_Jh;!b44E@D+9O{zC0p+B2Yb2Ap?RI^xFoV~d@BXANK;Q2b zpt^nsZ1;p4Pi07A(0?G4$qc4YIy+phQPSxCMgRJ+#x0x80@lXH22ccDNU3#|Tx4FX zP~a}tLKaA+BDqGOxWWsiS7#YNqHpRwCx7a6d4aFmZw`madW(E8&}h7%=XvmpZjseA z_>ZcoQ7rm46dD>rz(EQ=Ri-xB9VvaZxGh)km$bJ6Hu0o=hHA9g>Xg|<-U?Q}*|y`v9IFQ?Y{BM)T>cv|?3WhHM&$w{Fx zJyxdP?0}}G+G6x?Y-0G)138?3klL)Z0`t%62h8ioi|7B$FB~P$F9KvnPuDs@`OY?f z_H?=qj1dMi{GBw6h>u0QIP!?WU<4WrgB6a)!0aJ|Zzb&`oYjGgu_A2=-7EKa|k z0953YnpLsg%sjK@6~y`nZuj=}k3@@`_&4HCk=YiQ$Mpk>grvwg66w={O0$KcOco0y z0EUHAHj7f(=5d!45ep-3Bf>Eiq609wPXnm}b>y?u?&H_EmKglnX>QRFjs^gGq9LHs zkA^&y_^5~{l@UAgB>G&K;!_Z7(*-%dc7i>Z@?1FJ(tXRj5jnO!SvPw@(s()-3Y z)G-xBcO(4rHTs(2PDTx@!Iv^+A2tNO>PY46v_zVNPL$_c;p(|3WfnZS%gjM}-uOTh z@rdk`>~QjdYSL;O*X@Dpjx?RX?k|U!g+fP$N~aWw zA7dNydLGsH{;&Vw+OPlXW7T30DDFy2G)rIV(rBh$nRD%QK6IcD;D zptQBI)$)*3LV+}Q^!lzt8;`X1H`o81ZnjW!xts?n8jlpY=l7oesl(4=v5ew!y(o~$ zT=0=;C@u!xIgob$0_-;rcN5okbVZ-(?auFHNlD7}-$R}`JkDuy4copIx6L{#XI4f!FgaEgE0?p`-e@e$;{P*r&5(V-04WFz^RnUVyV6? zqAvV;Yh!=ZQhzUgn7Q8Y69@pEf;bp~KRgimm2bi*@#mEa7ciBmBs4}IQqoSNL_!J} z746Cc-9=PyM7X=a)Q-`c%x%v{PA0TuPpJPYPH34&Y~|wfTE-yk7xa0&_wVep@_sbw zLn6~GV4%bppU}o@pdsuWSYKkY;`ADW=3chq2;u=^(i@n|2ld!3W$)o3Y|2j&C^29L z%5~W&@xaQd2@Em0Bb6gDR~SH=2OFm3)4ijvX^`BrzB2ep%m|lQ_!HvM7bss`55nga z=gz2})@G`(i8(wpRRtniPz`5w#II4#l(fNN3R%i<`;^j?nu2~Zx+0p!AKB=@(d7(* zFUtL8uAf4wqTp-B0%&;g4A`alx~uttO+j~PwEh3#?k(Ti?Aq=@D8;Q5*OXFPT#CCx zu~MMLo#O5m2<}?ki$igTBB8ibpm-rTMS~Ow5RzZ+`L<{zwQnt_FfI24 zPJ=fA`XBwI^S!F-dUgy~9E!rgDys1R0!$kxVb8LOyfxeYCPW)~R*f znj=RM12pcjUA)%$sqkUsT#C?MH-D+LC!$X1}+4xMMlaA$*O)6AwVDsUegJOCk%pr!z_GgodV3Ie2xUWpmAX5dZ?dnNq!BnY1 z+pzWq^KK~Ti`-Za`EUDAGOYh-RJo#*t>UB|jrjjju~Cf}ZD>j`sK+a|Pw`k+SPfZ^2OT?yr7v zlF_lT3i+a+8tislsM88dyHPR>KVU8(nS^`ety?&6ol!T6uJ(h@>sj8B8={+lE zT)%q&&HIRWD2OU%n9zYykgEXtG-KS32CXy2$=-Tg=}Bt3otYWV`@+un&Z~^=xiUi( zUEhyCB!wj!GtQ&=Yhg(rnH_8bWSI2n>Ngs2RdwJIv_dYt-0#MuX^-9{qFit2o!+79 z^>glbRmWRfiS;8>gBv{~u4gqZ{DL3tf2RI<6Ct>MXb6@ehTYwj7hR33+Bz4^~F@ot2|gt=rWwef*;}I;vxa?V!!nJJ0`8GW!k& zQFL$GY%Zgw;4leI8HlpDE5{g3Z%0Fs!z6Df^sSR%C_ff=rO1Uo`B~yc|CeIt`k`9{ zhmg>6LMZ2B>A*Wu4S&Y3C^DtWkIh`)um8lHpS$XukU$W$FUsP>N=Ok#EokNYqKsWc z!XN}&hRa6WpV7~=x>}-$e4pK2Jyn(+0q$-?%+Q!n*k7XXUFbQOd|^ z5dfVBc~q*Bo8HQr8~rz~EE+xvC#|f%VC7H>9mJJyIl$$it?|=U%3kaAG})3jJn<1k zpfH3-?&^AAt<$T2SmSz&2t@fu0+16V&QO=zQW_kD;(wx79`6Ao$p&e^PYAtuK_!Rv zS8h)w9X6CH-s#~X+7oZ#z(mf)T0GFwHaI-^0o$D8UezOVG4fTT;_M;%t2Ir{*=}pp z{AB;?BGFitMa`1}%fFQ=-HRXSBU@6xq-=AU_QsE=vs>O~Tvr-azphVxj3O8*cj|K8 zK62{lJosf;gRJk=O13~kXFY5ksuM?7>D2&UGg*Y1?>+?6u z?SZ8BI@LKrYLbn*tV&mLv6|uIK3F6ZGSmk-?a!o;0`Fq_5+1u6&bINR_cG1xQ}J8H zTI3Fj1>c4~yMC6t$k4|MV054}C-A6v@&{%o_RCv4-FS%?nHz>vbAcOVo2?p?D%=I6 z(1}VL>EKP^+h7LzVMIFP%RLr_&8}dauQcQEO^a@)+8JxgjrE_4g~#C6|EPV`r7}^D zvFz?EU#WJR?8K$G;j9=`*tsb<)pPp!#**FUqst1e@k9*Ngzn1UAaww0xfUsh6(|s5 zyzv%Rs$`j_^%tx^n@#77sj9;;qJCZXQClp{ZiPfWtZnm6eW(hgx%l>zt1&2l@bu@a zy@hC9yPsFiu1dSYjhMOJFPVFWtz9_{u*14^!?y%l^%o95HqhJywMZlWyr2wOx16lqZb? zl}#zfK9~4UceFg{d?)z)g#4|J+gBGpx)Hp*@b_}Fvng7un2#W+! z_cK|-6pZf?T;PHEC5z6aR79XjkcQ6AE0f3kERla<0Z8`f=+UFq44<%nX$S_8{QpuH z{%`()*ndWiQOqMjh^%&hWs&Vao5AXaKHGzLOj*cdG99h&9m1AF<5N@u_H2-Av5U1W z*nX}#4jvvRJ*QgWORF7J$&Vzd`_F|k_A6!#UfzFTYKre%8(`0HmCVf0ic3)cjy>t% z(2xqg*p`rxP*`=Y*yY|Ws*KlZR>c=pUk^CjK#_pa>R5iLpRUyDd|Rwc^3u%7DZ$XE zo9AW?SFaaH;U2In?fQ<2J#CL<0S|^RN*w-GGZBN;MfrzHMsd6I`atoJLxc4?QC7B| z*{Dq*FYsJ?cPy3G+I31<4lX7(aP{WB z!%Ux49tYXHQQ~)+M`tKd;ISP&sL5hvK#h;H1yge85qqez>s%W5y3^w8ILoT>v+jgX z;@lqsu0viR*}ew9(~_5dvHqs$^Qc~|j60M37CFdU<}RiOSGjLYNzwPYtcuwk({1{9 z`KPsv8EqDMp>Q{Ny_>Jw6&l{&RNU~C!H-EJ6wRKq=`E~coVuhA#T%X>HO@x`*U_qn=$ z$o`YEl*=iU5Uu79?#7$r*y2#V8e_zpqlK!7(MlFcdju*Csaz{%M$so=)f+C&w)?pF z`tE+-V`E=IFuqGvS5J6`n*Uh<)yi~DOPqJ_MvkJPHOMQ=%X~Z;vxI?xA)A{o7>O@~ z)wS#u6&3rYHwtPMV}f#;t@kM=N&V;CrZPm?8zsA5RzzXb(dTa+orQ|EL$^=1jH!gq zj&;fU2JzDYv&9>~{Vu;ED&tm->DzHw99n5W}&d3bBlmf;z~z!=NYbPO2dZ zwe%TqLE@YD?_IsUw`NFGn#nH)7c&k^{R_lx@HW{vs*$ccly(bIm?sV%d5ZL&fn8cH%M5z8^((X2@RFhw7I{BL<5 zTXlD&uXa8ZedQ1&>q%8?Mo5{vWT#J#V=$oQ337qstk4hmY>h$o9*)n;+nTk|s$tIp zC&F*pCjRYVZh`RrHy7IHWftcD&4p&Zx@q+W4oH8pd_dxIKi5@4H={~=TnBjBz-4#GP(+&7BNrmcy z@?hN{o~HIv&x}yczZScgK}}ns+`k+&s8+My*$WN`@Iim3a5I7qXQyI`WhpMUU<|F$ z)3eE6U$0S{ooDqZOO(8&=#SBgN$Xi45RtZsKes|OfIM&!S=8I_(%?Jb&1t1xyPA!$prZ^&PJ%J zL1PXwH`j1IH9!IDLD48ZXdJHr==bT#@dC)!I3Pct8_Y!KA<{SeI_zAsz&PlD3Xrz% zLwwbZiJ9NO9McOcfk=1z-EiOE-oy)`O-_VY7uf9A7xQ^SVKSvsNq0_In4No#V zXf~-~%J=Stk;CUDcqM@FvHsAZ@rREcw9g}YjoH6iFElN8Sf@V|>wYW13lrJri`(L` zUAYkgs$^5hDaDiZ27je~s`?E$md-fy2068`0-6eDj;nt%jp=$W{Vd}F`^EOB-;_AQ zho{dMUEbBh@a@utfmTy$r%MJfx>NOG)3BI)J6F~K6gHzt0WKsrBiYaw@c}{eZsaTn;pYX0bIp@d*-|7BU zmyQpLvzjhu>93hLK+zOI^*O|sfrv|eDrpeu#gna>esp$2_}@6}asIQY_!>}5(3SEs zw?>G!DbXTXa^W3*Dv4aI#?#Ev;mJC9Mf{hK^s{4A-nJP0{0$pxNnDEC(jeII_iIe9AA zU&tnGjWFw=gdBm3`yoEM-#zqjl3|GlqVReMo8yYl(;?M#k~U;3Sp3Jlb-tv8&I6as zls{q0{H!L7bDyjRE)dxMQ>uYdoEx5mk9K3k@{>KQ3Q$@HF3 zT`9t9JvVgp@bnB|G&$Z(<*L3@2qtlhoX3eZ2~a+Bdul^ovdjB@BE2u+z1E!*glMF) zIE>2CSi!iA;r}eJZZM1p-3-J#cj_bTg5I-qC+1dU?*qv2K_}NfKG-~}FOZx0kW;aF z8_79qczhig$wuIO8A2SC>AX}o;I=!;Dh|4Mj-qxNJX&Z*9WLz_ks`uGtV<1L=9G#F zIdNqZ8Jqi4xgEf}*mK%cVDQ1fh(`aqJ}~(0Yel*a<+1m5cYQWAZI34_%>%5UpfqkI z-|tuoxtQn7vtPZv;^{@mGzJQB-)zG*3sE{d!{zHB%U`1=9D&>s=-LHATpMF;{Dn|< zZ~B`N(+lG5h#y&=b`ktWJv5;rS2`98-#AC@3km1nB*@JxUSFh?)*KvZq8ObsJ3Q`letaN;eY2f`q3uANJ*3u6AJ}b9ybAEe>z{Tqd5ya zQ?QWDlfqI1>%+%e=V+d+X#jd{pzdaSF*TaW z0T|QCkbfvmWJ0siz)4=QSLRz9T=fa?oGcn>8FH{C?U_bCSC%AAOpF@ypcuT6d*}nq zPhmrSjSURS2bFY)58qlTF1^opdpwg<%a)Y0L4z4SJ42h!qmDb6k>igGynSoM>$L5w zX4*m`a0GvXXs*sF#kGu|bC66zUNkIpFBa|x;v$7IsJ6HLfm$?-b7~G54mejU;zf21 zQi#8vk{VevCRZypwh>Z^Al{uHs+%w;?-clZy1avla4#vPtwQ5CS6csf-Y~MQb4k!Tc`Oxv{(lW0@LOumDKz~R~!~gw;SvbFx%?CeT@S6Bps#L z-#*ob<|B^7d&Amw5$_Ju4*6cZ5~hk!N&8VOKuh9&jVJ1L65L%w9|#+TPXF4l?YFzf z$>q<`JL!6&x<8|EChq43MFg4y4(Ifn9nU3&T6tJTp{{#YeS9OJ)I5zVbfsJZ>hPfK zOyeTih;ZR9@9S^pw0$djrsLGHe!U=*HXyBJvyEk5CM8!Mp6oQ8$j=fN5UkE90*pcQ z)w2_CyN|J&_!N;2e*dlQRT`ngz@gLIexDz7AHNyU`(27O!j z#qDn$#HMc<{dsf9`eeU~o4K3I?{}|_m-a?2+V6?S&=^Tol8Z})6UzK$>fn#o7DO-? zOr>t$#Qa>L&Dk)qce$^bC*-iUrq|n3pv!k5^sA4nBq&~>{#+rF{u|3>L(64Bf_3zo zDkAmub8t|;q4`CPvMalm{K0Ll$drGM{~q(VJ9@MAIn1U5j}#M<%Y<39^Y)8{@kfk) z;+m1=#}rt^QPwlrQC&rhzVK(V|18DV=2h?VC^XJs4(2(9qg)I6yMuhWrxi{m04*y}J-$mQi$mm`}&OC_z? zyGiJC$sjnLs5i|^0&Bg-Tf6fS|4W&V2(b(x&(2OoQvWf(j$Jr0^jfOs0HAk848EiH z$9TA*I2+u1GuKAVXK~e*5Bq#Uqn^9?qk4&CJ73-2?)|V|1P?IRqURhU)h6qI?1`Fm zpvkza8@b%0)%;#6wm+3a)ZSm`dv_#ItoNO+$wuycubM?4L8(?K`J~6+{{=i7ChV9< z{BC*GdN7hu>}ThM8HXMZ$?2K^#rPLUt(fomXJ3DRoTNI$xn{R^0254Y0`K*?>S zfI^@bL@G7hRcUrK&>FPbV`4|0==Jyu_@g|)P+a*}Sxld;Gb@Df;e@X9_H;hB@83T$ zA2Pbt^6+*;dU`nPBE%IkO+edYk84zKH)njo=#x9C&_d*doyip_^@}x{?{S@ktpS*5 zcuFrE?~^?q`0-9sl-Wc)PUf!|qN{>;^fM*KF#%LhqDKztOux0AMkzVp6CvzJ$w`!W zA)|oM``x0W19O-*3YQ2-IFxL@FgO+pPGvK7w;ILXe{0n?(7ngCqnKW7(=!2Goxt~im zz;31-%*Ei-hLWazi%59Hk^(=BDU+|M_t0Y#?Tc-u2DLOdG{ye4xgl#I=HpD?Ls4nhJ z$y~?7LNW6ry5QWHro*}I0L_kQF=r!*xN6<$qOHx^(KHDmNzi?~1_vR0`sWNUl;m18 z&omZ)EzbY(Y1LfmP{l0?j=^yRv1a{jojQBRcQP`D>**_-+%X*(;YB95sRfFMJL{mG zh#0yq^UwxglZ%A8); z+!)8d98&q}+PEzX&n@XqJOAsRBe|FPJR%uvX0B#R)i#!t4xhk<mZ_1m_YfBi_05@6PkRJ13q%X+p&Q?)0#{T%J8Y*&v^3 z#R^7lG!a(SNPP|Ju|L^-wGmQNB(k!Pyp)n`n6Q^+0ZCR4V@JcV*MX*vnC8a4AB=AK zES3St1hayJ%?Y8+<1U7fkP*#hl}`kK-++}SD{`!a6Z)nSkIXaSp#4{g^eZgCnJ3$; zR-{It(>qE2iHV5d5}D(OuEM(#l?n~h&~kML+@#q3u-tA(Sb$$|?egWXlO$rAOR-uP zNbkrEh)hNaDHBPckAjBEJO1uqXtti}??X49?Flg4sqGCqzZ zK4N6{E6h6l{9q*RN0vIAl;DHi@OoV~n;c4)6lPMq0ds97pX+~wW2PjiKG zD&Ap@R&(345Dklrl-HkVJdZ`FP*Z3M9Sn3-Y!N#ZLBHJz`uDOD!9$*~9liK|x^(L1NFxG+88WZ(kL~J?Xafw}=b=JNF zhEh^tUq+xzzcd?|>AD(%KDip9u4p)!$4}Hs%P;#wHo^+}XYZ7q)WI}JmExtLH}+QJ zEJ?j7?jeH4SO2Qz0(7jyF*IjL#`JoIgu!YC{NiFJd&igN2FEWSuQ*thad~+e?+!k? z{V4ZW3}}9xk~7rvNyR(w^X%k95CX@+%`9WeTw&^gFzA*WNs0x!ODqe#+@VHh0*-w_ zqu4+f6L9QTC*%Mie-+o%aT9zxb6ha;RO2{+g1Bn=A`*EcfK+~B5(yW85Fz!kB_9*Z z5~LcRSjjyuh41GUWY&XXGvZr z{vj}Ecd?rYrYOG?DLNN*F0eL$C*M5Kq9yu1XM<17XY+bka~QNdy)$n9ib9t3qp<@B zdV+RPhqxX|o%;F-tM;~vE06szm)PPVqlUmWEpzEGn*ymX9bYH7|14h+$I}RC!CvS; zIBOI3a?8CL-o{>~=(n^$9aa30hfR?~l5@2Gg%(U&D#1zd>A6@ir)h~y*lIt0+%_5y zBtvfz9_A`JNKeKqeKV1ex z$yVDO6UNiW@sl2Y_p+l|zVWkMUlrltTnHaAzv>FU6ZG@@JpCD!Of8mZm~yAFXi^ng zN^X(nf*x)H326Reqx?f`g$9CraSu9Mnos=k3Vsg198tZ3=Q#NBNkF73uhX{9Zhy4}uE37X@*XTTYZuS&hRf4sfGu`PfS*m1b+!t6fQ ze$atA*_ue+!=!P*OzAsbQ_yD#U505(MN~rY>30b35$r&Ga<0(BX6rbg*~admYWO9( z-I`in`(e(GcpM&O}K!=QUh!f=S@YwE9*xp z%=~=KuhK#0n{mYFmp~(M5Qc7@(a>Xn(9Z@LPJV|)dEY!y02vWcZ)k9^bhs2~V&j1A zDf2kdR79xvQ`!Ljnm0- z#(%^}voH7^R=xZk9L!yF4pK5PxP5wwAc9h}dl>T!;72T|pX!gU^w)&6FB}8|iUPCw zf_x>`49dchH^wlBqgN>Q8{ETPSP;LHUg2v(xapLGI-tvWU9`n%O(!e!127kef;CS| zZwUp1r_gwi3BL*S&X@RqRj#4k;S1w8mR5lRbChaOhN);v3-&$=&73L3KYahq)82MG z0+L@CdRniTUCgqn^;CPmmh7z3v*FNkL|*e>8IhSE`dD#0iVm zeDjtR^cHKvh9J&#gYuFSAH+cnM9U&Zow(VQ_?D?167G!rRr44nfj1O0@ZkD*iRt(d zkkAkhu|w`p(H`Qk233|FzFGKr67~#LhzL*Kjr|`7y@6e{-Qw#$Vv0Wx&->s@FQmaY zCFMzuSU!f@p~1GRUN8otX5`4Q#Ba~Uf{A^@V#!tTlYFL=f1uQxAp?lMd0R-iK!JE5 zUe{#y`AmeWUc+Y*gSMKu{s{a~WSfg(EutPkfDW}8P`V25ugy8~&N37*?y;lkQlFZ|%|Tc~bEpyREr ztwSifI6biWn;WQDqQesOh0BI`2MEbv&{i48tXhr(R;r;sS=nYN7#bSexagbpDM)f&~Id0$&a8hdnGc_|DR`nRwaZyTM%Yh^Tm; zMTJc_1r5??a?uU-26iQj`4lX_-Ngt7Ki<$@?oP$UkPZ(_)jq`|^Q6S;WHOQJhtMv) z)F|klqaaO$MoEpg(vhk`cl0qC03b0 zqa)si(4~wa;*X7nhQ`M_BYi5eeWys5RLJSXaVYWktIOR}Mie7VzXL)qXro?OSQuvw z#nO~_Ug?aKz>eTfJiop0zHU9|zj*r&#lPr^?OKvin<4~Gb@l0JblA`az$dWHXi;j0NrketMbNDC@` zo=L-eXBU%vuH<{k_}niqPxJd{ku;Y5#3$2S{h92=8@(jhzWShx2ru1jWAKRpgc_<{ z`gkc`ZatFr*wwy$8PVL~clwqMp@rc^)7p12@X)a6!YjMdIJ~}YT&Wa9x8)Ob)i(a1 zve5=}f!de_a)R*-K_amu2?BBC1%M6W+oJ{5WlBa=rjNroM*eR(@t@`0NmLKb|I>Im z2@sc3H}?TFXl>0C1c>ENlCH0JLuTRC383XkY>HpDv&EQ#j>|8A!u3+YeHzhsH?11+ z0uS>wfM?Hw{jZN0!x9o)m0n5V9w6P}v*{?kE)p#NJ83My?q=?GSP1Y%Fyz$M#^#M< z6ohm9b^!WxAK+XlP7yZ)xiG$y-#To)`xjxn! zsOt@@=Zm8BRPwAJ4w6{*?~tLMcJocZz}<*fzo&+w+f&)>VnJ0#L_=|u6j(cV>j`k) zZigl3p%_x#pGB5JziOyKW(fg*|B!rJ`j&8rpRwIH?UeP_>g9$q*yg^LTg~^bRMjaY zS&aBYhqTFLHs6S27$J(JPBt!sv(e&Ol(D{_-v0#RB7@3SoGzc1D(4a@sHP1{>QFx1 zoRVU#`%2iZMr-At@8z@=`_&>D~Nxk3_WkxX{CxVcK10_FcYi5=s zLotmbZvWhh-2a_OtcU;yT^|X!i|zNr^sk;>Tw<;^P>s)kFqVH~^wn_GqHZ7HIXS$8#5ake;-1blGi!;+XZ_zo|{QDSfxE7U$C2ouX^<6EFj}w$LJC_kxwve*i z^Dc-u))%(?RsP0-*&hh0*?+C0Ec4m*5$$ImHJa$JJ3I3d;(*!MxoQFO;Lo!co~jez#xkYnaxktI+oW*>7$uK?5L;{^&3FRz1By_nDH7HnrHW8 z0l@IM+d?_Bkd}8=TWG4g(rRjCTII1a-#r&`2m`}WRFhgM@!PYVfNF4nxo6-bt$5yQ(wkiS;;` zZn#8->eL>UcvLK&c&W5WvHu1mpKZ)j{8$wgyT5+We)oVvb3X&JQu!=l;+j_hjE$>)8tAlXevF#Db_iSkk0 zwpSVj^x)-po_ngQTlf6TcV~@XFgWekAo}KH*5eXEM&b;M=63>bSp7&0>6`7cm}SO(d+q`p??_5aI4#${yGarLm=7&e+Cko&=< z8?f49N17w#!c}ViaO1?WkCes3r!8%1305Cga|96UODnwK;gRkLNSohHLRP1lGQ@Rr z`GWV-qyUO)1tIMu^$}vh`FWR3z0+`vzQZ}a?bU=eSm$TWJW($^6l34>xvF(t8kOd9 zE`FFaBWR{lv&40Glw>REK?_%wuM$EJUww!`&+ z2k94@;E=%tgX^cUno@(kVHm3W$cXM0N1lZ>v9>yqQ!1WeJ=1?u&u6ml+-3f$Yg?3~ zo5ght#Dn^!|9$-5%Wk!=+m_4Wr~bfPLzn;l!@r&~Jd6HcJN}Q~{LdrQYv2C++JEBU ze}m!wEML@qqVfE%C;xol6)8X3f4@KYyB{)F9bO{#PiK|7lF#=^qPhczI&0+|=9&;;XazsD z#_Y7Pr#F+gS7!Mq2LgyXDNj`_|6PJFtY+|P9aNmiufBbiCrG=7otaYJ@~YzuT(m#n zwzK_`Lq-1g;b6Sh1B?L}!JqT1qB13|@zb%7C+ihWZXm@bPN6qf6j$v8qiJL8pY?|5 z1{J!14qc91&!pIlD%z{R>Iy&0Ed@S$a$pi?jK~6YmhA};52k7M#~}s%qL9cHOGVC} z<+rO~=9~-5Jdw)+&qGA-pR|RfpO9~tfqBShS3I4Z{sjGvR>ohp{N4;*FO?N{rz+Pl zAMfOk9dvR15p%)quR9q&+?uO_t|a-^!t(Fy^KMCGaqezx(NO)Nj^aQPpb!2NQPufS zZ((1FXS@Lq#V!0%$H(o=8{ICP4na0)9%HZ74=*<;qLuI+l(pmYnN%`Hqr~Sv1EC}r zFX@s7%9IzHir(ScbSx{UnksO@3WCl^x06-nM;nIbC`9qSk`Q-ODng_mEWbVzMW3xC;ar z(8!D7!w++P>*UsQ!aN1TngsCK9}Z_+AUGT20Xvf^x23A>T+O#iujg3V`EIQsTrQAp zc+@NM)HRDbAj`pibj@68@xF<#r;lWJ*%)*QBv#k@K$;YBOyZGgOlpsi72KKY*Re(% zVv_GU+1CVC^e$eUt?^s{+wbbBjApP7%5P<^l;^skW9N6#BBz+dc9+LS?5iaU98$oa zE8LsQet7*ZoI|0X-&*H%uc4!|ZYb`*X5(}CbXuYzQro{`DmT{a#*PpFu=>v{&ScxUT0Z0)iLZu!B<7s9_MNC~FHEwG-ys_66V=s^ z7VFJGc%~h9=59iib2`$qzgE4qk9QlJosvjDrnNFywzD~GMYZiAUlC+6F=6Ise}?9NE^BB8c2Yst}uz{Y8t;;e1B>< zN08dh*PdIrQ!vta>pRQuKx_sw2STL61xQM_(dgH3PYXjm0A-D9vt2tt7=vj7(T=z3 zRaV2gupb|@QQShhH5DV}MBawGevX&bxU_a6){^FO=IgfW(7mCc0wagFY-=Vx2T&K(NW%)$rh8Fj}8=n>e&lUCdt6AZD zr`^PWYR?~eja+m6uwR2&dS~ul9Hb6!{eGUT{kkauv|s)`645dGec?Ge65rS|>NId3 zu)Wk7@^&dsVc=A;m=*sK&N`I%+p8sL<_m`&5&eEA`qx`As zXIlTf3~M*VD+=A$ZUlqjl9tz8yaqb)j>grcG0KnbzdrPU1l)==-uW0gUR}3NsMygC zXW(C1T1vMY2|#%%a#0>)GAsxKbql_NudPp90hBroB>S=d0{vym4TX(scs2rrWav!= zQz5L~t>Vr^jtTn+$M0(FFb(^t`_ACe+u(FB`)1(jW+uEc7%D-;K28$ityXm*py2ZU+n(~g%A{c6 z(lFvDdt3*hljV~0aADcp0NZOkmkrSHP`bM2X)h&%`b?M-rQ?qj{0m!n{G2odG^aFuW#Q&N#OH8)H|ARKvlX8Y$HFXvTHs1~RnjvE8_ex_l9k6m6_2aw6%SK0#A>>>yX z2O6yVpLrSqrnx+iEFK|&KbHk_dZd_Z=6eRr3pFbxbdf&%UK8?zP)UZTBb)-7*3Y|w z?IiG&UZ+Lnw*ZbSOQN^B&6g~Q%v--LzC6EMo?ReW$|SJ4gXs$u;vLqB z1Bu$a$BE?w%^K}7#eYZj3Rn+rq*Ey|PQjhC4m(}1!a3RCc_fq>(N;7ggd4eUzG^VC z(jNu~^S=;r?T4)`^_{g`lSh2zb*;>sX-QUGD7&mLKXxqDR+~~sV#a8zl%}!7G*h$%e z9qj-N(A97gPtRL(w%goDuL6aXl+3UQaz}0Ok0QSv%|HqWU~_c?UrZ4ZZ^Tj9&8e^d zd!Rc%gX+U+)w0c>)}rzC?uM^E`ny(T;}Zg5pI(Kwv{gv9iSEE^zx#?7Gw0M~S|75n z(ozb2QdlmP(vzz5nUKBO5dO*aW}2HCZ&93VLcy3r^cmoL)H%x=KTK?_nm z4`Ex1b9gX62WYKqx)1n~Zcr#K_(jS>vY$4ZpNp$jach0Uj_^%&2(y1MZ64||*?^9n zm`>eIxnwMnz3h#STyakgiBC>7f@{*vuxQn&A31!GXE3ds>20^hfD z9?eNDmfgE!tKOE$K*o_OBcc(#-gd8z^7W`O=L}znhNeF@r=HhHk{^>OBiFeE>fN!soV{$`mgG3;m*LL!J>`61x_NoG0S!&Lt@Q3};Zi>Ld!b2GN*V$`|s z4nGL{?6mCk{k(}Ej)|qxo=;*K&M6Y-$dtMn&o``;!Zr&GKM^US@^M>oxR`jyBDS*A zvgI_|3Nit=ugRNzm@PWr603Sk#W>;cGJg@_C&4w^LbzDVJ=Q`Sam6>ZJnQ7s6sUE` z*df}9XEX;?d>WU2HRqM!Dm&}5!>ntWE5LUzxF zN(UPM2%)0(!Fc$4$k6d}SKyto)uEfHEyeV2HT?Fs+f03Qv>koSaGEwe%I93?3@hjY zB~N}f*jp}>I}jYNUR|KZUiAb^LK}J$_Y3r9MWoJPgi+Oo+RL3@@~LRpp5MOR{we&O z{Y$$+4p0HKbFBz@EN-(}|p^R*WClaPA^;HUdvp7>2jYNc@KJ-a`RJS5w)_Gb#dJbc~~{Flrw2B>ywz`34NTKkY3tWIg&mFQ zK~wgW$hD(ZEK7ZEUGZOO7^)idU>lZohi5wHb&a+{umm`DRaj}3<%37z{d3M-+Phc@ zLy$knN8Xu=HJv?fwvo|w!Eq*hIaH3Ov=NxVqcf~1z!Ltlp3AZXvB`ZPg}soY90q0^ zN8Obk&gUk-ND1BW0#^fukUUJd_vOI{F8UNrA-AFzEW=GkfbusRZQFn-@nPR$-NfTR z6^AqI#8Hq3(^B`3f4El~zaBpHxIMmKoATAGp{LMD2#}3B<7MqVAs>G^HD1&p_`Lq| zB2#`um^2aN(yfis5b1}WS;!A{h*XK#*cr+dXIVGOS@=yJf$WK#G6)0b6(QaQs>O*9 z6AU*zVKnd(!^ife&7RHS6liprE&s?ZE2T{`i*TE8;5fJzMN_RF&4=1jRqBQvP`d}( zXbncb6Dm)i(ClSM+g7h5%=w9Qw~h{2@18g@-Mdp??9NzTR%Xi-ZEocLWTlq9{7!Fp zqPCu0tT1_7LVIC$`9u%<`YnFk9<}gddNzVao%SGA$1LrB)k*szb%{EBhl}E}=^zaJ z&2kY!^CwvZ`f>XwfdakM&eXB)T)gl&Z+S65lhonKy7(v{U~e1}?txb3AscdYowI?~ zDSso(`ExB&_JPE|DboAng&=H?JGl);WyG_a`)Je5&oh7d@MlFuM zB=9+uSOk|$%@rY7uMb#ky>h@BnuSVC3Jhu#04Jw|7Qe!d5d+}}EGWKaZN zkD^)Df==4(U)tWJ&E*biEXuv(>Ui{nJXp7<@TH0=O#7%BRawfS{3kJtj&$MS3UUt@ zL(*>+OASaI1m;~3j|^WCn{gY93wlh2v@dZhzxf6J8f!>KRAUk>Jr(uP-frn=#&VhY z?S--9@I|FQ&Wha44-dG=A#LUs4jnYi%jfU+ZLv4J3LW^#xMESgBWD9|Q|a*= z6#i%_QYsC6vZOopqv?vG@l14=BoUZ#XpvSh$bp1MqZ!Pv z-X~ht=;UN3&?or!ESZDlKDBT{gJ}(cKc!f>6z`LMN6~hwe&q!BI+_xZTTELjE}eF8 z)%_Uv=eMRyN*Oo!(kl*E>SD4#2J$B*ym3-F3`(?dksRpUhQgY$x<2Bs1?MO@l)(Az z*7extI69J?HXL?t%1*}|x)aA@j^qr!7LiuB4~3<4O1s1-Qyj+*UU0?@xv26jQ33`V z4=6g^|AHFVh>XD$V$jdhvrSl0;}%seE^qCGq*=N4ETwbGmLspn%@@q`2xfw7I$ ze)%NDKsGY+M&8`I|KXaNvz_mFdI^a!C8~xBe>Jewi6o32c$9-@<$7)B^Or@{BX7hh z?1t8_KLsrhx9JuMB7f>TIr5e@_b~v@hx_Q+Xc#(AgJ%jaG;;*sSD_NzCQLjoxbi3Cz8|`XA-QR&kh7qhH_Lc^6HEY!&K?Yu3w2$8jm2&Tp4d3}| zU1p2^xtK@^r0P5NlwPYV_Bi7=^!u{dY8ux6&#g4BS@r*QD@`4HJZztFSU#+s&)|Qa z{*tf$ZjXX{gLpHtOqf-5sPTO#i2qfH+fcS=P^rf6dLYQ5QsQ%DNzofXH49*2L=bGe ze8oaLzLeU_@}Z3PNLZrp|FHH}QE@e0xNZ^x1P|^WEV#P_0t9z=cWK-qxJz(%cX!v| z?oM!bXlOVczTfsf=knY!dNixo8ntTHtT~_eE$IydOA=&IIO5FsnrsnqhR!O@voPKx zgi+@CV4WJUk)b4n5&gD2hemkWRhH{+IKC5T|E?b#bgphwP5|mzjR^U7gbmn16~+TH zMy|HYx%nDwX&U&!)SPfRjD$tMDo$mtEG(0qavi+LnP{ED@5P{sPWQLdp_AP}u|qGi zSv9o79u36QmZ&0DZAkYOv6I9L=rpOrEBq!$&0$Q{=WI@=`5k4FCC94bgW{-nm1vk; z`z(P6S~|cqp(>+~($*WFaic`ZPkS$mR&6WC3Ka+5QLk)Wvw8;F=?H%!?rW38XC(5E zHng-kS?kExXzkuTf*jSO*fM#huMLCox>SXW*HYNpK9t%%il`yxwv@Hcd(iXQqtE(@ zuk9)R9_0Q}tEQTB>iovbz)8oupY08$ubW5M`zBt?jo`uMC}Mg#1pAuEbf(fPi&VzH1aF zmZJcJZ`_wRlPsfUnD?jV3NA<&JqHSAQv()k);jltW30TBzDV=Qq|!ZtRp(utX>cRZ zq6uxzF>X;m+iwuhiM)sw$ZarGMMQV<>wfGQ&AO`^Phh(z3g5w^ZxVQYY-f$KnJ!E^ zn|S~^+t7HQh3eTSk^qNs(vs)CuGGp$1*^%*y z7c~egqw^ zx)BE2Aw!L&ArCJ2~7DX;ak|oWVqCw&zb;+g7e=t4plVG^StPR^8b__i**X>~i<#Y2?At7IZ>&!iBq_aEKQR|H<1! zrc#GHaFD)_trE*y%qd*K9Zwe7+@16%-UUi#RZ4VL8j%{Y&u?}*vdRpz?ly!fbdItqQq5QMDDBdaeA)TW#lG|Bj?~$+uW|)% zyrhvlvs%m(B%5QoDHelwPjVY2!}3|_(7OhenvbQt(6U?wPnuG+vgu= z_T2`3sJCL&ZYy#&p62`5uezm{#ZNxaz^*W%6^DJ&YEaoen;1{!h%a%enw$ipZWPvX ztHvML{*;M)EtZ1OCTv&-DSyQvE(>3D@V3;y(HlQ#oVKv=LQfvUvT9RFtv?cC&`Z*% zcQr#t+MaJl<|IFAb@vQ+HHf-kT_b+;z8u`@11TLaL3Sdjp`NdtbU&A{)oQg3`nT-Y z$7oYC53-?14LQ3lUQ^T4M$TOmMcpiCwLSK?#_KQT{y@}l;{BX_VfFR%@bMYn>{JP1 zE0^CCZ~_LaE};@RvgsF1{AZm2EpTG%G0eJg; zy~k0m4y3L*w(t?of6$$bNV;tLh!10=8=JMHxp!@gPH@T5BcTjzFON1`BZR@zE#+iX zf40utx41}>IUdAzH)N7XFoks1cXqyE(2AT?0G51UB=b=X%-alXtkxStjk`+ohZKRbir4R| z>kykA<>c0X@kFbX*;4GUspgZ6x@zdNgI!`$EcHswae0Dy7_&!CxKc8F8eyp#r?jL@ zuqdu6QW=&@kx$_DCT&|zWL%Ki(4`#w%v&+!*Q(u5P3)EoU8(00p7|u4Sdho9g2(sx2EG2DmSNihW6;KxLH#V4vp*0XR|Tm)m~_*!MU8 zjbDf$H}mqC*dPSk(v#~7Km&uz?vM2#QZ)JnwDd6W(Vk1~)qb)A%Mn+PYSZE#{DsQf zK%t+@4M~(9RWa$O{Bx_I5o|H{Hhatf3ujuv_Ea~JmAKk(nedPOJ}Dic zp9O2xSCWxaq9PH3PIdQHs8#le?H2lTE**(Aqp>)aNLnGC1 zU4sW}=y5+cf@=i>-`@wqH~4CS^^@C63_LCx5R? z?}7%olMLno$VkSZD<%YR_W;TDR#^a4>S}jp%nicedh*?=3N)b{W4h<$ zCmqpHWXos)YXLJC$n#7z75q%~-h9EVgS`$%^VQRp7g}sEaNc7#&8#^Gu}Jfwa4ns}p~{Ie)<)`sVtQ z!k(p+BM)(r?RL91N1Q&RoY~?vgJwdrb*~cdIe(_WY7L*@7y4SX?qxeUY4mjz*UaK2LhK9pB$8%0OSJ4m#kYC*i6Xl z&T#qz8N9)59k}-%7TsS>v3W#Iy=H!lm=U_TWp)SYwCvnm3iPdNg-=BmR&fmZi$ap= z;^N+C2pJZGjXBsq7Y0c%qXz7|V|bkX5!fK>ph5WA#M?=tUB)v+S8u3^(AOq&TSXRJ zxPnQYV%U}Jx_&^hDwp16rBB~L&<6dq$Gqe|-^+j3nEa)zP2CMYNa-4;39|+@=0x8+ za7AGhpAmvjPoRrNXS6*Q6ZP)&o5K*niG@j6Y)2`AhpiWUZoyg4?P|nlqWC9=)?*Gl zI@$rV@bm^qc1^CW;qtZM4pw~cMXi7d&6g%y)E&c0_7<1SFbVs~FX3M=-l0B4ViMH4 z81|{&zaPjNw3{N646mh*iWFjkdIEhFmwTYuuuBvzI4OT}>glz5t(-X>2B z(`pZdQi_B~7;Be~--NM}t`0haNx5T8m&;j#nqT_`w#|;%=tZiTb{*}Ez9D2=uejs5 zSeC`Dqd7ut!)mbaJ!neq9pbYflDgnuB;i)WuwSwDCU~}`DeDQP+e)sP{@IF8!E!u~ zlxS3a5uDd`wdJ=q`Cywfs4Ve>FmzIGr7A|6%-EkhXyZF!V>85iarnyo~1TCSn+CjEyF!KPsMMS zIE-b=t#Exfu`QIid;W2_I>!UDqCwv^II6aKX<>HJ&%~}oJn!)^%SgFH=5pp7z<=~l z(N4K4^KUhonB*?Ok=ot&MiAfe>lw1aggj6U!sBf)AdFBxapN>1$5cy20h zd}8wXs#bk?pH3WM4vD@dM8G{Mash7IE)!xawSpT+fsicN2*v` zGFYy66p#^vw$Be&@$arvc@+QbM( zVr7A6g3Ldfa4HPWTcQ#r@=d(*g>wxF28Q^z1UFvWItE*5P>*Mu@w<5hxI1alu%K(* zjU^iX59A}&3zC|LiI6Km1c4`fa*yC7ctrv}Lhj}FaNM_jy0>+B*hV5{iTEeo=cIK1};J9mJAwnrq!!FLS2A5z}nwl6*A;g_v` z&-iVZF6WkbD=fI(CT&w>BV?l~@i%^*ng^@DP5E9JGIr@hNv7Lg1E(n?N0K;9;SpX? z1b@`ru;aY!LwP6XSWTAox#O)$`*r?9wS9>*f?avme#7Oyh~-Hq5}cpu2zBw_AR`k0 zo&sg9soGy)^A$|Idy*ssI1X+cFxtJJr+73tX34SL-*)|&))H1Yo%R|y$bs$vH7J;q zXC^pw|AjO2b+Q>>OkUW&_x2K-CfytLs?+1ITo*hSu2}NislgcK6lvB!&-p(jb~UQlDy6n zt`tMwSnok2l>P%VQ%}s1RE&MEjN+IVU?+jmD#%C`4>V_oz+gnWkvD zh-M{jB3i!ZIMt<=BKB)^p;P;zqXOX<*{OZcxw@;%Q)TzavBlPgW(t|mCD$1)z`Re9zFS2&KLY(ZPhUny@ z_=Ehg?RN>IruT zUU4ADBi3~?=$@7&H*=?q}9gN@}`Bn^|_eHe%i&; zE=Llr7vp5j&$iQ8?8?Xn{APbAd~4MZjIl>r zG+n|;fpJfkn^OY-SXh2$>l|%-$k3q)K6<%*#*0XPcE*q#D5KfG>g^IO}mf<8ryipC5SGprc z82a{uA2_tjxmcA6x$-=Y;sVIe2d)a#Dx&G|#dnMAWbgx@q_Z_0rwxguw{Lp`L9He@ zG}m)zFIP^>0fl5MdO%xu)EzM)RBEPE#V4#hVTGW9#xc_cycL2mwp7ojzA3& z#GQ>mp6Z$Eo$>~`N*+yY3#MR39d(Sk@aY?TlhDM+$!+8nveF@*5Fd${OLtm^k57%p z$lXtd->{iysq!JSe6%w-WJ9?ZXUs=dsQ@33NZjJOy<7ImC$)sTlu>Pmz87{4{vUab z$u?1MS4%#Ggj75CsQi1cQ@2R>@>zoXU6CVc4NXwr)Ow)+F-CZNh@Qyw_;!7H7%vUs zs>tSkneiFYu7Pl@*P4}hcz;aCUaqaB6R#m>GaA22Nt9$iPESc7CI-J#_hx{>R=Kl6 zyL=kez8Fcq%wl9VA3LM#{+}b^1LvhDgj-tqmdCr>Mp~W3VY6u(c2%c==`Ydra0sUl z>Sr*I8S6GgX5=@B(D%zN1s_G8IzduPmVvTlst!z40{EpIY9*JiJL$HJpAgI6f8IC4{z15flH5%4+VXt@7 zc>|>&Zrf@H=0A(_s7B-=8+BHg)wuiDN}@`sNWl$NzE(%<94t0GB@?h1Y&(l?3?D?4 zgJOlzNcamy0_!qA*EkX%!7tLL{kd+nP1s*V8W9N#xP^Q^^Cg#=DjwBS+}J>(y~^|3 zeQFGTzCqy@aTE!%ns)QG=J0GJr=j=ovF~gY?!u*&hjiqbe`qs!b{Crr zAHIOU=%EtV=6ZoEC68fc6C7=P&_wsV^y5!TZA|5^Ue5y!1E^>JXBE+du6ff8lQ)KE zg(VZY`{?9)j<)K_k?gDUb&v15Q4HqPiFX-d83}TplIZfE<6bzgGMa_gHRuSdT(t}} zwLfM z(+c1JJsk-hD=Op@VLF0$qmg6Jh@`}!b}qwlqRa&$FE(>!wcQ~*!ZA-6iGf30_d{&C zdjk3CGgrf1Pjv`C#FKHh;QiXc*v``>%b%0+qh3u{)FXcG$TG2?Tx0f|*Y52s%?Q2e z!ubG4NoJPK#$uSSx^q)gwksRZ{R35Y^CWfOG`nyMw{0VN$mivfl`k@95pV6q07mIJ zl`@sWsSREnJsW>!KfjE$=4SVrD1!&rjK+59oI&1+mU-e`&(mhyo5fj7-ezUYw(Cc~2b=YatWQ5sPOFt~^ z1lPE=d$!SxHe>dga}aK1E*meg+Vebb?9&2{+vN?k$r7M2AbfM$0RROh|44&d%%atx zD=(*>aAGV~E-%eftFcBKgbi?_tbr$q%MDygW|89d zPml5X+E4YGT&QTZ(@u^++-&LV%_&HYCX9D{R~?~qgK8Twl>8xuGOb=}8_iZIP#gjJ zA{5Fmg{M>cvp+`fD1&e0aYrvW;VsDFzYX3#&nvpm8jdWuHIdLxaH~po@&xTR!e*;r zw7*Da74V?n6=UYw4GOLgu3Mx2{3aaK6J*metm{ux8RFoccV*(DM*GH@sld$y9?T|p zAxI#Oem}K{l_k!rhPmu}@_7UFE&!z3Pf-@mZRM43fZ&O@;n5^x@e`UBRFosiQX8}Q zK5H9+S8ZG5L7S`Ibx0#72DeO9S8cz`?oNQA-UO(`T z{p7(OV5Fd!TD+}VB2~e^>6zUFNQ~XcT;`B7zdxF&hA+uqZA_jnG#?twIICV5-X_>P zt?TnKpXS6mAAv#~80HVfIzRrCK%F-7$t;$e4(tJ$fn7TF`M+%6>Fbi1i*jb@FIX!< zDlMSDU3~jX@CH3q=KWB;J1eODc~s?|X+XMKJd z<@rBkus;0oJ=He&;0&1lIen^rPko?(XN^^K|M7^mbyfAVkBZz@39uI(GJZtprA54A zL++@yu32|HW6AW|5Lw*K6e%1~&){qYf!0)m>`4C6v;S|{UeK@7o=v;o?-@gFD7vs0 z(NrZ#7nOh~SUJNrPh8%Q4;O61?tD@H3a1t7Nv$Dz>7thfzqhBnULo%>)F5iF^=fW! z8t9{?6>V)Ks+bY47JO~&Y|^)Ess8^ED8qBI=_vBqaj;6x=>8x zk+q}Tq6J|?(^XWjc6iSx`HgQ5MSMu_>3t+hm!857y{oeI;7mq(O}p;p%7{aw-pH>$ znl1K#6GnYynY#LpU_M8jn%xLJEq6LZ4V6Ki+U4%4R}Sew?i^JsJs|-Tb~N{Us7kmN z!Rs-_D1Fz9i)Y62ZXIcIt7c|mOFNU|)xdw)zZ#8aoBjstkd4qUBabA{^=1;p z>p7aTS-LF4A`QH*H|<36mxSWZZ_9POW7^;d5}SsmT^=9BkAkJ`@79^c2{&rjyqvUY zN@52+D3rK&go-3vUl4+rOXr)5=CoRL=k+VvLeeISZV(*G&55Mk+4c6NEEKH{kQ4c$ z+=|k7aoA{Q@qf$=X)~ZohabR8Yzc8-x8F47igiqb=JTd)NS(d&X%@ z3!beRVruEAQ}X(6NVE5^J_)%&dLKLO!7egjZ1h+tzpd3#a@Y(cQo-Je1Yn6cF#`sidVB%Y^1RI-tFS$#;@2#y)L6G zg+&E%&hh)KYS-%e1{73Qj>ZN$CBsQfF)CH7mx9Hw30Pc%SR1(cN@>gykM&d-H9IB` z*{*`i51W<6o_?0zS$j>TZr-qfoLMNPOatuf*+#M)8P=h$>IKgui8{*)$5Q0;5gz*; z!g8K_jsy%VQ6vl~lemPD%#j~|BEtg5nd_}mLo?gPiSV4Oqvn3B6wdgA!$Nm& z;SXIDr!&j4`xD+uG5^EJsc@yvQ?OsBPVI!0TZ)7X6+ zjHvi=8&uFz3}5vtyPLLomUo!*Dtb{fAGqjomHSq}K%V^zO#vLkkbux)8$S@agI-AA zSfgTO)HcF&Op6W>R%F*@Y4xcNw4%kR^vg=3P(adk(v%~2g@lEs4l53G0p961x7#n>DE(V z!gz-N^p^H&*nT15|LVABpOP(~-N-@cAgNk0oF1E$^GME4-T21yxg++q;<;VnR2taj z0HZNXhbou_F_A>}KD09ms^jf*X0$)T?}v8oOyHcz^I1ZeW0Xf+&E)ml;h+UQtz4_J zyl9?4e_Bv^)LX%aRxB#NKVd)@?A;)mp2t27oW~&e?OaS}Gy6_yqkBGgqbp-iocKKzoOZE@F(tAh$ zUBaEj-!)+_)KajF*Ti0}>3^v@qu^||r1xs}msH?rC5LV`!o4Zd_F_V4{fF*n!!%Jc z4meN=JYY-Wx_vLT8vP45a)Dwmtt@+g^=?sK+2dad$;bUP=?A;U+Tg$iizJ0oOnNm_n~xb>j;1qfTHO+M*f#yf}*&*7>!4Fa=nXf=>sntZ9C<~3O(D$!`k(a7~##SY`U z!ONEXROVL3HJ|iAs}Ln$Yfb02w>N^3ckkuG`M68R3}J^Lfn+d6HqxiSOqEr@&QRX( zq6Mq>%BIFxUm9+SUR?p8iNpSj0|p!r`v9b0HdpvWnrA3X+*QR@+um)nCx9@cw$AEd zACk%B_c-~VNKA21W8WmF2st+z%6`&lUB|a#ep$Y=lC@0vG|Gl=bNi|TL-$rN=L!+B zfD`nmnjNgt_gNq5hwsQhQSlH7wxNDt<}4KoAc!R;cve!Nab8zoMYh_Zk@2SDKEyQ-L}9vJ|uU zipxu{wAM+blL;E_C7f+v^KaBqULLehAcGFD2s+=<&?;n0 ztC&6zoH-Corv^Z zKB~@*NvRi|vUt6&fqUVt`irai!5uYFCdT!GMrOrnY@E#R8_trv0L&SKFH+x1Ep09t z1M2G%U@+WrA4esICW|m5Ay4~egk~6O30}c_DCU3_n)zj+TEJ5azjejoPmJlHlI0f|Pbk&=c&NE>`yGh>%V8kY`ge#W`#%aw_r954BB-g< z52cw~gCohzHaYuE<(M+r*_9W=(W7Bj?-5Qejuc=QVMh?+es9UHCThbn8f2}VHD7;sGYZzkRa`Hu@US%` zM(=!e4RW6Js20LcuVMVNG3e$D74(-`EPEBFk{YowI8Kmg+R?=Ed~5_+D2eW--B-;d zdaHexA~bhNpWL)xbY%H{pwbA;=-EBVpNjYXFy5Fcbyl&g@~J)h{^#2IzRQ5LjY3VA zyd}K|RpHER66+bn`VcQ$B-mSO1^e|ZBlo)Ld!l87K(|{{7W(xB{Y&7q4&Nr6MOKd; zglp#mgP@yLu!rl{Q-##4Y6d*q34Wj26?$8TqA)w@Y>sB24PHwM>KVex)?ydrcw^-^ z3-~$8u{HW_Edq&)qGjDOLTWag`b)zmq)+`*5QVmi*Th-GBFn(r+QO>ivOUReTl@i& zaXw+*{I*iw%9vyJa02=`pv~nels+dw@)#El2m#&zI6f&vqV}^D0r5sSnmcH>JWKS< zBio^#YN|e;aN8p8tG*I-YCdX;Wc{7111oRSwDn~&X7f6u$*HoUbAj6{pr43*{oT68 zcagBc&-JHTmpmeY-7dO}IOmI)Ht8HN+!S$%2Yj;nXKYv!#XNs1N)3Vdj({(h-ab!^ zX1eKMw0V#Et~um)D^LACNPIsyaHvg`aXnnen>rzY*!WNb;g6_w>(}kx2i7vX4a?=* z%7*qN6f7u<5nNSP-ZP0iH&OgYXXN1uP>tc7`>Haw z2}kv{q1Dng<}_|mDP-Y^fZ`wOvetWeMz)5bLVIG}C=aJYWY8ueOH_b?3Z-qFww>dm zUG37{CnSUE-V7ZzbAUr#!08i%=62@JV|p)V>2uMZ+Y*v$&%FxxIs2Vp;tixhSxm$+VuI{?j|ro zXTREMucozTuY#m^DTE2HGqo@zT>5xLKKwJMXKfdNr&ZJQ;>pr?tZ+C!{WW513Y?#> z@HrS^c%!#ScH0Qe>!w#T6=y)Z<}C~?Tlsxh%3C0pua?mg0cNT@ z4f#?uVL!nnK+2mJR)^Bwv``qiUguWc$QwqHa9SdR=;TwBZB3~^STE;#w8LJ2odcG} zp}RF6d<3KjzgEP~t2g3vw>0N!3%^LY?M-u8a%Dm(9XAS1u;s^myQ^3prBs!#l=*x{ zYSWKVMidm5e{Z*1b{Lg*As(aRu@Dt0_vKf-L6=7IxF8YIE-GgjcwI=P-T z{Yu%qKKkvtVHcEX3#0sn3_P%nyqcoJFLDIrWw&RfGA)UC;dc3y+|Vs9mXP0`p>E=? zDhi3A;rM@N;Nj_>vHC{VBq3HQZuw3{3y5kkB;{=eQto)BF5A`W?kg_iF=O)$D%qca zt2D2WoX{q-MSFBS@xorss?Ih0Oq%*pVdM(Qbi8&8gj|X@nBu3}Qf0{})OF6ij3o{y zGx_9n2r&`v%(p+ySF$)^cC&4@jLJ3`X(J=I4(1dobym6zCh?E-x0aW{I@{ka9u(g) zQM+zm0O+5;hr|3a{XfgtnXOzXe@ z1d+Evw(P%#X(?N5A-8A-XOafy%;fCWsBj0y}oI&M`AESVN-PzmWRBWZNt6 z=KP|!5t46VQ!NVoU^ATa1;_LUjDZdY%XmaJR^g#zqJoc5G-j0Z$gM@ioaR_gv}d7C zPCf8ohD*-m2-bt+JmROc<@TLXn&$-$;gYcGS1M!8l$(CZ;xyOMQ8gYI>Hs8^Vco-S z-cLGn;y(ueMfj-}utdYWx?;7{qc4xD`jhpL=5t_hdlu*_Rc3BIJbz%*Hoy#_mf1GH zyTZc6^&UT{&BIhTYKcVPc~P9>MMaGyz~3jGEFkc}bY!+QsmH!1{}J|8tDrBxSj_vx zbU*w;2w;YCHal_{`P!x3@Dq0@S+~nGgt6B_g5uH=L+vq zeBof$b2WKzr1WR$K_jhO={aC+Exq`}PHYT?=w|}c-fFI>P%VQm|Ef?+n!pk>?`#oD zYfwrw5+Ic196ZKB;F~JM%ohf50aTaJ3%V&kXv*gCX3m`ElotJYWH&U&;B%sgxS9&Pg84`mTG;wk3}F-TY* zM3`qQi0aPZJe5qcIwzD~=Re%)C%{LEH?6B45|6T*xoPmR-3s$^Q+{>`9~O|3*yTuG#yIzvLgyozqE_;u(k8J3HS z#iK`EfoT>++Hsm+V{&d=8bLyi2?D}>5Nr|bL4t+;z52#U0 z121==A;qO_8oTzlKv^%E-=TKaZjHq;0=Lfkm?}wh!+y1|S`Z)G<7)N+_!dX_-r~sb z7-T*yuLD%`sH7-&X9(nfLrm?3fdPc@U5_a3wm&QFJz(2HJNg4*Vi}V*ATb+Yw4TaD ze{|n1x~9=~9*0Fp$rDeyqo_+nbs?m;;_XCw2ujiGH1K?G+*j#Yt6iQ*S`90QKJV^$ zlx*gS97Pl3gb(2F+yao+Y zW5Es*c%?8(pl0j#*ICe4IzQI^pzvRVDzRUBKsTmvxRJg|E^V z77v|`O@g9t+(*7Tv;wbjcUhwofZ#~NVB;=GSYhsx8HMq&?^Gd5bzNY_Y#Vsb_DUD$ zyr0pr9dxc&$~dr3!>4#eHt#uU%HnQ|jp^^4x@k_d=UEa&`%OQ*-1OIblRekm%yrV1 zUH@?|U!u}B%AUIpKm|*z+)R))J_ACp-}d&=-PN6Kd%Ze4AIM2>qIPtM001T7ka=0K zkM3076t1rw*3Wc(El?aRgmtm6UpVk@TL>%jCVr*`X&Cq1R#LOi#5bqX>6K&o)uBs71}y>Sx~?*j+P+ z%w<_Cdb`d1BbBl}d6+97}SQBCbpoh12E}+wX{o+XYiR zHHatT>mLljI5Sl)d4}rK)f*`oh1+paehG;?NYyXSL4KDS*c`P3%%q+f-WeHxH070I zC*PjS7Lz?07#SBC2HZ~uK1UhcOKCheWYF@T8r`sa)PswV85e#U zw$Bu#;KT;p{GhCJR{*-tbqKnf9I}BH3n||3`(FWU2KXlZJNlAbK-nl`j9rV4@tU0m z=6LDa;d^VK3z_i()yAMiUVg$eKQ6*ZgCB(%(>6lhZ#@;2ESL34-`|eKST;-x8{$TK z!Gas+)0cv&|0*Q1buV;6QfFKFWlj|Z9@%^dVcGp^A8Dk{NtKpJp5+Zjbgp(J^kNdz z55WgLP3a>!vs0(RvE3nu_jO~V*S7UcZQ7az5;UyxYJD2V27v_PpTy!StE2pN55F3P z6`J&K%*5>+D1TJT)WYyO9y1Je%#tcD180wDwk&tf_>RpjoTN;PKfKaHvq>fxe6iYM$?AXAE~=& zBXf%CPi21%Bf>USDUclE9-TTZU6~^-n^`poI^lO+X*8pDIq!OFru5m!2q!{v$?yIE zeMA-k>!^_{z^p~AwQqGCYqmgZNB=jooHj``V93XXQcbQghX5am$ zj00OEU#&&)#wzqt7SJ|VkfRv~B+K6oj4anVZ!%4rX3V?>yOcRa6%w1=w-5j4MX>KL zi_Eh*hv8M3*0WnjA6`lG)crLZ_F>7uN3ip{e0xaq30yu#FFJ%6mFYM!d{RK)|4?vS zeiVgSV5LILhX&-c*M2R@QLP{+P>CPj*SPu1zDeHw%Tw+joXx|%K5%P1r-$Q3)V(gT zqwAFvx7v#$uyEsN%Pr<+FiYiCU;d)XISeo!E5@+1npX5)DE2(jpi`}B9siAT`d22&%{o+2k|!lY$J$rP&obXPd<*5DQy6A zZ$gcNs)=QP|Ed%?1(E+t9}eDGcdgGi zd{W;NgalFIN(bCDPHgk?+=%5}pcd^Rew`OB95z3QKCrT{B1 z`a{;g&pyPy=}Q9XGsDfMEA%6dopR38dgW= z$l>tv?1lB?v%!g+*#-nAnw?uH@A3TBDydn*H?!#OJ2E=_Rv$Q-JT)C9rtl?0F)JR> zyN+JIfG?u2kax79bx%h~eInQpDn%RtlTQsoU=iIN-R3ZxwYbz^#cT%wuD8 z8YyXeZb&YJVz6PE5Tl`vwu_*&#TR-5Yjv>9Y#Y$v?_C#O$r)_EQr2YwHA{N(AkA+ZTWZ z4dqSkZOrCeKT4DQ{%uK^*YJiV#+M)dwZszW>w7u<_D76xw9JH_R>tSgI)yTJcyw!N zRmnG`wANOb_vt%{@zSg9k$pQRGMAcZ@>v~~KU~sr4^WNtsrAhDOz(%QTK|N>debEA zk^TC4mwt1ywbsfh-p1p@cG|v4F&3c!_fiPq*m02MQDJ=M6+PY$ev$sZS33WK07coI zXG@haZpAsp?Qb}9NOY`E&WORA^34%yu3FaoQ?Zp$_w)-ZQ_4bxwvpn%)b*f@o`$up z3ee9+1?1ipl=(RsQkm905TMf4ZTmDVW}q)s&vykMCRbkuW)A4i(^3^ zs)0<%*%$907Sy>5UR zpGgrx{ld%8$3x?jE5TaH~3V}6>! z&T=|Ok)S&7s`9`A;sq{2cd_Jp`a=wG(c>pAghdY%;p-DVM1`^FMhIv!mKM2zxGgiW z)tUxpm5<&;;puz3>g4an>ibXEol=>qEymyeG`qs`xu$Oc58yE#hP^e8{xM4YX!78H zTB4*O6mns>U@dXRTqydEPCJPJLD$27si_1S!uBkJDK|u z1)jJPv6|0E(|teBxGM5XdTE0o&op_1uo9rwn08%%hdW>he8m-VWonaJ^ODU|+^dGa zZ7!MUk6ZrmuW(qD_#bc8M;m+FL4Rx^hAId3?;@UpB@Tz5?Y;S-UiKo4^n3<;ZdJ7} zIHir8zGtIl`mp>Dh4u(_B4?xJ1J`!iM0OI9LYhd6+aCwE!zm&rYtt| z{v8+)3!K3oeB#BoI_9(mwja>&1BAWm)gfEUP$8kn^Mv~34ndCvOp1|ZqeB_R^>=lj=7iTj_X zL=0!NA`d%n|A+l*+cNrv(p2{^M?68UfV@6EM_&80A2&1!>O<`RFXYg9{n^+Rf6Dc` zXAhO$M49a$9;rC(_V_EAeEYvCsp1L;tgoflrriyUE4f6|qQb}VLf^``jsi*&9Y^9e zrr4p{MxU0hif9KMeVZ@4sB#(?nHGLr;*qo0Xh5uH9+Q4VZb- zgrt-2n5eW2HD`WY^BEY{M)mt2YrKn_Qdb!Qo)%rWg%4e#^Ipt(AphD9QaLXadcv-H z5W@pfad;bzzRT0NE_z7T;+4Ve;usv9TOw=C>c1TIh^}~b;}M%0%?MzTrmXBgfY@RN zJ|uz=NsSh21VNhC)!5z%;z*@Qlx=!O9&(hZhwV79E1y?7FB@Ri7j9|-ZE7nH${#R_PQwuTT)V7HVdwU+-gIUjN%SF5={_+H ztFv-pL+~egzuuE}r_3L#Zn%1z@t>aiR@3f21GUO}2H6T+pfUkr{@xLnxtxtDl0?Nq z;Gv2t9U;9P$XAkvtl>2RlR{AbdxWY++P{6@>a$HKw$wboihsTRf4V!%s3^Oz-w!P< zA|Ndy9Yce_0D^#$0@4lAEuBMmh;)N=cgN5p-JO!s-E{_^@?Gowa=x8)=EJO+d+yoy zj%)3@{`+^;QjhBg%rLOBU(i*7_Cp^g(4npLQOn9z+{~5*!DS!7>EZW6I{z~Fg5em= zN!78%T7PU?R|E>L8I@xOm}>^|nrD2~{#Rz|z0U3Nkfq>ZuK6H+H~f@lI5UAj10U)8 zf_}cNtdRM3bnc`FGdN5@PQvF}f4X)LSG+{cZxrRe^IRUB(Fa*QI^j7A0nA?7Xep4l z+fW7A?J7ytI=Gi{m?!zd$z;Tj1jRI3GZTorlJ{=n*@RvM9j^zm6)y|slWr65DCjA6 z_1@i$@PbV{n+%{QeJfW&-&fM0F<$4*G8EFmn@FMa_0Z{R^_hBCUX>Pb$PaL~yTk$R z$qY+m~kklUB9sgT7@wDUm@;L!az<@cDm4cu+P5ITCYRbOsMz*+8v$ zG!_!u2a72a5qZ)T6q})HM6=zOi?joA`P2T;7qX|lHku469X~Jb32r$HQx-L`f4*qE zgV!Qp3~4EseQMXX+~9Y(cF5dsq!4C=(H^Kb!~#(ervP!q1n7ChGl)qMW1K9oyo*ZAHB@q_)8AkgQIj$kxc)SPDVYg7^Q~@;Ww}4Cz&3eS z$rK*CuhC|G>rLstar`#PwQ+A&BrtU%ADR1S^U+bm{tgj-(t(tsxPGNR>3APw@ynjX zsb|D|ALfeKiErc;yQ71`I{l8e3)mA;4E@9n>Y?%5F?e(SvH?XrpqivlSY&wz4{%K4 z*d0#-^bcpi*yjddoc+URoFbX>Ce~jrco)2=$3-6uOBk6FZyBL8Mb*RZU#nE~H-x5( zTlxlH4yFT_($1HGwT`$Bi&bJ1{$w`gYjW7tl^Pv6e%zjFKIKJm3}mLq{iEv8144-l zB44~5{twe{Xas#IzqhIBMBnL_IpxjxTz)#P7(U|4Dw z$~B)schxygUp4}d1A&;6`7W|ppTQL`{Ibv0!HO?}?O`kj(V6ex7nZpzUVXn4mta*O z=Zrl$Cicv}bwr*y-nv`Bsi&}X{tao1w%UokEanNBD+u%ZVw2*4fHgp@_iCva3&G<1 z-x9TK&cFD5u=&L>zpisrn>OCuQ$nkxj7qHK<)o&(rF!ow=8p}oRMD;u$dae2Bl*c> zGFIAArEMjuf<^R>2$0FIy`MYj+~~&;eX=)A3l4ysY?*4+pW-*=mW0x1YkET03w5Q; z-MNLQwAl!aqfD;}%R`e|mO}jHQ`Bk~LIb*Hb&o#XH)f&r#jJ>yXn!P?Ob)s$ZR3eN ztodc{Pnxo?N1;9?W0v0i5zJ>9I$a(wAHi^A=cyTWHNARAQ*qp;El~NE;<>XuAu;9x z()J^LF31OBZHxjLnTY(krty69YTaPl9*2&ifm9_^b z1lqE8{nIfBONl>1{$J(!byKmgnx>QEFUA`B?TJAwJ4Oue1#QTY7v2QXwWqL1O}{w> zIgrQB*rwAbo&HBUJ7PxlrL=Cso?IB&F~zi?{7pAow+P(ASmYFENHHhAZ@c`|PkQ7b z*>6Q~&fn{Qe3pehQ@|lcnu{{MCv}NIjxAt5Y9dlRbSP^(cvEBu|Th&F%ujlrm{|&mqQ- z#1Pp#Z+go|dfKl#w)$pL=~&H9brboxPg6(7?f`Dat`A{To9A8b>3uczKhp?)BvUoA za-gpd65^K85ExT@NG;Vb%VtTqp6)ozzR zh-M*^Wte%YRb0KYQTT-p2#bxSaF$dfs@I1e@9tJwj}TrEBUhPdz+WA74xMcCVdYK6 z*TTmLhwERu4RB#NdwGhoAJrPR`o_2)oK5L$X<;qEwqfR2$~9Re41f)fa5Nm+Y>@?5 z;d0v+yWHrqTXK!^s<&81Tr=rB^MZ&SLk!FZ|M0xLhnD-6Qla0ckJroh11yT%7{-|q z_?^S1Sl`IGzene=({okhf02NG+Wo|2fhVU1Rb<>!q{PA!rm~X#n)}IM3!TbfS(S>r zWN*p0xV^t}4=WjLs|H74^Rq&Rc<%&h!G2KhNt-|EO|9YA1pKGr0@#N?vMD&Ca@ zJ6k}`ILcb=Y;u%R%2iPpw1rfZl)Xefamuboh;lU)A}uHb^cN2p`2~p_`lwR!{Bfw? zR$1wvc_1>%gAAln0+Zgq2W=n!uz(hvvkOR!iB$sw&{#KFGj|*`;tVzall7SwJSzA) zhYr4-TxKl@mP;0SqX%TlmOPc(Ev&XI@?Gn}w{PNFy%IeqXu`cwn|Wy*q&;s{>=7d{ zQl$@rXZ^y(6{cQzmXxS}q?~=B!fq+0!KeJvQ7a=n!)~T6pFeG5j};9?2^hG;J}uCV z?Eea!kCsO{z}9PiR4Q$d_<0b$-(erdO-$Ab*yfS!tdG|N%ly4I&B=V+Kf+n_7BO7b z%-Yv{mC?3YwqyK$9z}lSU}a%F`{%cT$<|}yx<{c2(}!`cPCIR{xpuY}>uqgCG@;a|-hVnEpp z*0fddiwD?gK1QZUiNtZL$_TNUuM5M+9T|1N=5d3%5*rx!2@Oztm)hR0ZU+`TL2i!~(IQz41 z%1;IwDgoC22!os&L)EdAtdWmzsfm81Ql@bfdrJ{N1wk#Ep$-B5E$s|@m%}su`Fp~m zGw1@#VUq_BRBNEw*|q-8QBuqW7WChWnbVr8`AO0-`x-%{;)>=j=<~_e|BVs0EZ`V5 z=L=U*OEJckP~4Jh{l?YAZkeORhLiF$+)U8ntM1Hfs)*-ftME>K z!^AEKZ(P$>3Hc0UdboRL*BVw2$&t>N39WctfXGRMaXVrIgg9szX>B1`o_!>|k@1sWOSit!Kns zQ|9q7cM@ z0<3RCbJe2>CrtTPmlkZZ#6K5OJ{qM|gYUVqPaYDAfJE1)qI9QEs|JyxpjOBAH!X733I+FW#qhE0?`xZQYp0kEr3> z@ePHw)4`+KqoL|wwMUmd^?s8lt%rDtg2Ffuhx-Nb(B9pzxf+Cuh8l4{FX&;mAwfT3 zq04h^bch){iD&_bzxag&t?k2ew=5c0;z3)a!y&_irFuqb^;Wj*Q+b_;{_T)=-w;GO z9YK6`gT-oyK=Y3~KMy&3yDFHQKG)>a zK08(0FLFjdpsSgW&0FDO!lCjInHAb&(GIXR_i3!cN*c_4J8``?Tq$kxndK76KTFR= z+Bj(Ts>~#61{#Fp$^`}#IVZvN5dodHW6}1A! z?HE0AQonW6-?J4wNr`?unu=%g5iaM5tHRsu#;^FhmE!bwJb21X&c^~bIQNxv*q!5x+eQeODM$)8cOSNW zoF86^m>QD5J@ogH^v-v`H!Zz=RBZV%n5D1v45^NMn4l7ncE_35jJKTH^Q5h8lg0c& zg);_UvcT!l2*XB&K)u2^q@c23hOoy&g)DgyDGj((NGHAE8k*EY`<0fi%ybrM9a%};h*!IH zr$S@%Xr=UGP-WrXzzbLQ~Kaj-k|n3bg35iKj;#&UbPC0kCTG!WRL1-v0(>Y zYpAzbU0a;y``pPN2d$%<$ab<8OQUKYrXRC6SLv~`ZS*e0Hvd?xi9H_Oo3)p$mZwwq z>T{N846_2ur(l~Y>bvsH6!vy(q!(9V@?&#;1r<|KUoU>C*gu0ZO6s&e%Lg4DCkPCzk-43~EJTP3r}`kzWhdtiI+-RxDDVg{48al?a)vXVKh^KLv7;$0Y7CjZv|@IiR>H4|ID zM}dj(w%pMFWI(O2FMc~?%G}BP)XO*B3r2{K+iDd4#dbC|El`v(rGi0=<3&oWRB6Hr zfysmdchXFq+975X{7a<^g6?9!0)Jkz(}EhLh|v$6oH<2OKg*?Ea{j3vnc~M^?3dcX zb$0WZ++rtTIP+ZUwTYkov~{oD4I8N!T5uDn#jfT>QZTqs&D9H58F4oCB+9jN@RXQ# zktZO7fAx}2C@_AXDgV6VY4UwlzYTUOKYm&A-s~42TRTbzw!82i&WTOLCc`rK8mJ7{>x-<_q*2bb<(55( z(g4k})(@F?i)z7yma?plofwy$i&V}S0s$gN3U9?V_^R;WMm02dSSL3T8MkHi=4Qfv zt-60aGI(h?z-w@harlFa)bke?sc8@{r6S8@IA6rXQc z9c4Pdf2w^sdFdUtnstmm=Ud`FN%`90ipbn570qi=;8&aAs@AUnn;XVqy*GW7g`2Lp z^M`Ixg4A8ao}Z?ux%NQ;KjbxixvXKn9roC*yu4{8$J8|jXDC=#pw5ZODerLcb; z^kKDpe(MrPucm-`;Z#)qt7{|PfK{6nFiE4;>`Lufk(7*U{x#;3FUiFzX#xlGzysRb z{cuW~peg7ACl6~2h5#b-TOYAeD-yHbDjnC|=hrOS=H~5vcF)w%BeFNIQl1<%I6 z>ynliG*l%>J5{Sxn2Hom|)6}RY zY+_;SKtC0rd@irr1Z{+vV%Eh!(*`s;#^Z{@NB^H1%q7-~FFRy5e9m>ZDik{Ps)Kx=!$NuJneZO7nUG{j8vh3^mdx!C^nCkZRzlQ9@= zBFCs}+YQ7TFWnGJ51*{)GM~>pu_sJPVIpnr4hxhfs)6sZIr9F%Z&dtEV!?RbJlPvS9pI$&8j3dtJtvtDjo8fehS8X46`5O@y6>r?TmL8-f z@XEIH2zt}bgzr6|FbAM!J3;j5felfoUIlI@sytr{I=ixIvH70PD2X_eT+IwB0zKd^^t1uH|oFaVYOb+An#$eN&wFa2i zMcef-?zIT>3ys>R-^0n@Q~N+d#X;kP9@u>Du=|pD^ck2pEWMkJVk`9V`7HMqJe!Lx zaH{$vkpD*aJWfbkaQdFtTs3D+J$|mIO$1`k_dE$*Fon z4fZ@2?-S2_81}vq*IB<9b6gCd6C_SG2k{0NsLTBP3AOu?JcE2-McUnuBk&8d>Q(iR z7YDXW%G&jHzc@=7Rs4UU?R-4|{KFjj)35!W@wXK2pJC*;ZxTj)_Wr*h^ZcHm|Gjkl z>;F%MzoGtro9uhtNEj{cFP+2hQpa;#nYA{kC})-R_Ln4QC-}NaYEM68YQH>QdDaA} zlub;qe!luzmBqG^R&yMQ@}^4s&eS0C6%uFYL0cS9yX>TuPAa|`&4_v7>&7!!L-fr3 z$*B6Pv6$R+7~N+mRuJ9qWm{-QX?Uz;rKQJp2)cMaDD{ssUoIa6G1(5g_G>VzHIt?Z zj)~_iA)tpmzs%GW=_i~+7v$cO_JQq@3E$)PvjU|4FpsLk##cxjEMhI(@>1R1#_)2X zQJ=e{_Pm#_`cS|Gw^qcM_a5R-nuokU?K^e?A2YN4N0iI&eq=$CEoO{delMgEgKfU; z#%E|ALIqCvz&#g1Q<$Zck9L(O^0+42b= z_*&BtcF#M||6_*pAtku=-MP{Gpn}$YEOSzm#9N+c@{V814>`}wTkp|6;JT=B!*kW@ zTt($T#Fr%BeCs@V!A*){$RT24at+DE-zZ55$4k-7+FC2%zmC`ny65c5A8i);9OuX;EKYowvBC&=<&jWXrwRJFZAs?&WD(+}J8dzt2 z>-k5Iz?%8V#4~gk20l+Int|UB|4KS--QPW_3-0kMCI4#woJB729w=#r#NU8%I{);7 zd;R-gW$CHj_a8L8N<=gNmeW)FIfD5_X|?@S?T5$aQ|i!E@1>k;{fAW&<2_C|@r?=2 z)t6;V8uMrwpFQw*wYxA+OEii9iV!h~O{b{#x$4Sy3|)2M_6<@;Y-*P~RGY=gRckcdCtgA#e zcnCL=H*$!hbm~3AuN_9FsI|{y=+n1_w}ZVuTd8Y2@XiG=2Q;h0w#_VZ(TCf$)V%a} zE-a9e<7&!7nkN^Lm!R6Dp+Mz%6iDAO&5^;v{?S3*+9lVvp&@XZT)V`b#yUoOS^y<* zuDSRAZpSE=+9ctvAuYGe0PpN9x9-+HG6p^1Q)!o$YZ*A(KqF+<=89*DApVn-+DnrW z&+M4J03f#Bda;7IU|qz4XDhJ{IJdp)N|?|!*m=Xg(Q~5OVWBrRNEk%J!5lWRAW&>! z_X9oj^G?6v+((goOdHdc`K+4O8o@h99alcjW~O`6bF}r`ao{fnQ((dME2b!3gdGh2 z09X3HF}>6b@_7ACxOjOWlXsJAhV`cNrP&VMu39D9-dv3c!qUwTwNi#yJACwRV3LtZGa}2>iTRPOpqlo*TDRs6S__0}e6w)fHYNFeXh^W{S@Z7JkxvMgFxSo4Hs28qWOS;dL)G9EX+V^LXI1L;n^e2*7_CIX%v z2$z5k7s8PS+C);SLLxGNcc|p(=SNp5v!8N6QIjmB-CyNA9AeN_^cDDAIJbf;2 ztB@Vcl|?-`QIr`L7lEQ~z5l{GUV3LqxAc=o#ho{q?V0GTr8|5<`JO{;4$`{UhO;L@ zZT1%VH;@ZAomVI~w%(=QB*m{cY%P36C!8Xr+DGcoR8ROalanYb&=iPPG@C_LFusHt zNp%Ltp4Zjub5b*6b|>kDmFam{MH{{)`*J3b>H%03gha3tl&;=_@Gq@>E^4kWwfmZ! zTzH>8%smgxB=-=8Y}wkl@f7k54&qQrMhlfjGJSnG_qeULLpg`^2Vm(3P_|mJ#ePDN zDLR8{Hy*rFOfXcbtN_x79K0io6Q=*6oJuz#)HN2ZDIqAwbk z=83M(YF;3CF3=w&10H}Ly-oD`aUeCV{;s^DszUE=FfcdZwA~=S$sAzy67iZ=yOIRn0`Bq8n3Vv4+;ISC+TDu|85k93?3BmszOp>qklw#F4WDNW)RPR|>ukugLbOv6SrM5{5RP{M>AKQh%p95i5{`QmVSyv9 z(>BfPs&ASX#f#7_rCI2mVR|*ku);W&lXIFy8k2Twtu1_A$HocY%bO|0;3oLlA$b2v z4o01W;>u@r$ykTxv`w0?Ya`6elOnn%m{0a9ApjdTrB=Bb#^7chu-nxWt}t&Qpz`^7 zR1uF-$jMFRZMD(ZxgcC~b{jUSAwBnmK_5>X621~Z*xNJlns8M`;JV@zx!mB4tBfNB z|Acjo{$oWbPpcvqgU(g*UfiA;976~1jTbuk^cNd+!KVHSFgUjpovlskT)GW(koszx?tP}6787>DM27vnb%nG$GvJz%LMW<;%(uXwMBe}Hk z39!fD!&KEck;}P~sh`K6d`vtNp@+-e#lO6mG)Ruzc&&tFgrc&@=SQXmUM+nSCFe0I zkQ`JcOgP_qOlV{yNaS>J$ao!=5-~!oLbds7Am1|jIlZvmz*h>oU>P1ogSlO@MZ^{S1uu;_Rn?d<;Y?FVHH_pe1a?7Ip z^1f^DVvZy%O~c~QIE@_nx>8h;SJ!xtgNJ1X7w@LHeTB1dxY$J7J=)NcdG!m;1*C8`VYKavwqC27rz2hpjiap&%l&zhbW=Ur!D!bNfik|Aw zK5Vq`LpxIg#7*jsUCGkQXWPt^)>S8F)STe%s@6&;X2?=&EAq4C`D1!3hl}>?v->sd zOxCj#l{Q5bRVV3|jp~1odfhBFZE0t|<5&Naip6!}ImWG;pb1Q%{ebgFz<4*RVq1X8 zE6>)#QH&3QH(V#0EFH$16QvGbMl)RHi0M4uTYKC37b~IU0$`3LWU;kGU;Uzh&{kt@*BtCC?cBa zQ+xFEOW9Ejrj6f5-Meh1M18;vPl}0o|Ai6Pd0G%Zp}P0$9o}7kFBj9-B&InR^uRBG za~Jq1dO%l6Ij_nSMqIALRY@!K=zglZa$Y@AxZ93)-wDM5m)0C5Arz(exGJR8`bW^7 zn4phC3~CYCK|cPY$_Myou#jIxgyOQF+d zoHiwfq(LIAIu*FfL$QP;w+7??+A@}snCr}qByZ)qTVj`ti1^E2^0zckZUYy^(QDfh zySmeN0&nwiWGpVchYn(v$#^jF5~Vx%P3i?;(KdDO4h)Lafr|!=XwV8zv&$(iL60EP zAMRd-M&8*|8Z6$HEda|UPpf#25L8V!^jaOSXfg2cA`&i?OEf%Ai zp)qQbK#1qes7`A$Fcm$PrN9+CbZVRwo0*@WmhYp7rVC;=LEDfww9GVlLnPxHONW1T zJJgKAKfnCNi$T*e?IOg-sCg4Y7Mb?&kYA|YEs#B)VCZa+C06xgvWj&z+E_3%OT+y( zVmKR z{YVyy*ZnT4il$(Z2glb^MGf!bsk1BXDUA^glMd;QE8JVG05M< zoM%-o7DsNWpPGc_1P4_*MlauHP2n%9jYykruZ`UGG6uFG0B*ejEP%&X%$E2RW3|@$ zoldD!o}53p3sNr>EE_41Pq$!OSan}I`fQU0f==4T=ZgA z+%G5j=4SPVY?CEJlBg2vl4qdaLp9re8m%LI4v$S!IBT<5jUc!7A!+h zK-sz!szv@+;NCp6#o8wD%0X?mZmM}NtoE4UtbVzTeCU-d(9N_Zp++~%Iy^k~)qw5h zS=he5;?!G%O^L9?ce8VNah%TavzRIQj`w5l+yfpyke8?z$UbP@+BN$PuJxqCE%?+5 zl`sh|k#?TR?NVZ!sU#gl^R813*dd0Wby$tREXdYNk@Vr;n|5i9mVfy}t~Z{nV5FZh zvRSco)f!XQX5*G-JqcnZQRR|9dOofM-M<^?j*+Nq$q%+j%*LI-fMLj&hKSk!sEDsPZ~iW8lzH*Tdn2vUk`3c02lBqEO1HF_HQEVV#Znq)=7Xv=>Bb2% z3pV?jEgrhHZ9BUc&j{G&mRS(dR<%1DWkDW{9|y-|0FB(B;^=a$cE+`QKkO2OHZa&B_R71-3ME z7G<~x2Mo3FX53zfjW4b`O_?RpGCr8ynfWw#kk4X`jCV3bH=34+@raXvufo1~oHTPu zODN^uZ^q)F*V39*a(?G|u{&AGAgEC6pn3ML(P_cDixtWN6^}`A^(twZv|Zd4*tYIM zI(PYCkC($oCN&zJu>rSSp{1~NqhVjNlgCPFIT|*b<5wcry{1z|8Un^?rAJEDn3!-1>65fOMndYbkFN_1c76wYi*y39fbZR`rCs?fM3e-IDKT zw^GUDKZQ-=T$Q&Z%;Fpt7Mv9WqUP7RB!0s94ZF)Q*}fEcvAb+;@J@melw$U_m5%Tc-4HrSLjHwV=U=N8HH#P^>;WxXz%LwojEd(@0F zYd2_Aom(=1TjF9GB6M$^ZwHyNboZ%RBw0#)y&$K44b?MQiQBhzI~tcTF(N&=(qFi^ zQukHWrfN0`C%qS>vnd`g^0^_K*+?#z&Vp^-tx`25&?>1Ly#QNo|Ox1~yDAM(xC4?~N8TMjvFg-7RcM z?NGX>(G?3Aqa8Wf*Ddnr9JDMaP7U76tr=I?f2n?jEA6;X-(wH*_GMp zc&ajwhe4WnMp2>nCe8%+?I?MX<5u`yRMuN7a^?QJ2s&F4|6}f^BEJtzXBOQUXWOgs zE9VPS(HwXB6HOF7?poJr<2yUpryf5&d-M}ooWtd1#kQ^#H!i)dB#56DgaKtL5$Y3M zw)P_I*j&EuTz8CFMTRrV-QKZB%Vj2MX>u)TuuIZ)sBO(%7@97N_~A$h{>mYn^34Tz)dScxmzcm_(vj{3S`Ur3T{6rA311xz&L9GMi)-lF?!^hNE<-^$y65}4#zJhMMW z0NR_GcvQP+xo9v17Z1LF;jP!E*_M+04#3GBfJ$Qr4pv6nmK!tEB3ct@9c>L zmKKTYZez5rDF9Ca$dA?6dhjGXgZ?ETl)f;$$}QTi$1vZlpm|942>_*5Tb=YQg-uqn zfpom=m(4o(!HTNDbPLH-Xd?o^a`4yx0f3KmYPFGrWRV*LEl&wrhwSC1hDov^&EJC& z6$;f{;9g#`!oPTY5&%U^{5!o4BFmv|C;-cH90#yG<&D$&`={S;p2CQpzh^(czrB3_ zPY#0!s3?XNtHMURaYE^*ONLTGh1(N_GwM$`lonL%5di=<5x`$h2&l}pee#vUI-zFE zG!st4D_Dg+K4jVY%MHc_8XOxUQKK||&B&MU zVU&57`P%$vxBSg4KXpModDxU*2!VYHqOG84f*d(2B^h3D(~fG z6yQHIyVe+X=xU@J=lShCP;X8vUyufS+=9DWx!Tk&R7gkq z#ysq{+8d%ueo%7(4|qENrG}|usuxzVzZ3rbh6n&7dM3aV{ddJ1@$Z)Zed)=w|50Ip z^|iHWvo3~xp8s)^P(nh2grsC;ZE(f8IuwNSPrJdA@B|njxqy6HyY?7_{;tB`3B!Lh zHqP6THENxz*Rr0^S33*bH`=rRFB`4E*G6-%T=z(fT5Cl^@MmkS(#${t0*lp7dWe7K zpVlb7wraW5?|&4E1(vM(;Z*zc;r|kR3J6YupY0)nGnYo#!=(Jf4ARkPnJ&#J02u$> q{Pv&q&F@QysPL`-{r2>E)&ol3tWTl$$AG=Z%O6B#-jxXJc>f>QpdU>D diff --git a/docker/images/Open_Powershell.png b/docker/images/Open_Powershell.png deleted file mode 100755 index 861e609de0a4a9d30631071a93becae14a435cdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40513 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

    sG!12}hs9OI} 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 D4rK`x diff --git a/docker/images/WSL_2_download.png b/docker/images/WSL_2_download.png deleted file mode 100755 index e9be9a317b7bda301ba4e0bad0ae6810cd4dfcbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19544 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 Cb}}~r diff --git a/docker/images/setup_finished.png b/docker/images/setup_finished.png deleted file mode 100755 index 6278ac6bef92ebc96ba0e6d07cc36bc3fcffd423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35545 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 HCU5@_2so+3 diff --git a/docker/resources_example.py b/docker/resources_example.py deleted file mode 100644 index 652281f5..00000000 --- a/docker/resources_example.py +++ /dev/null @@ -1,3 +0,0 @@ -LOGO = 'logo/logo.png' -PRIVACY_POLICY = 'policy/Privacy Policy.pdf' -TERMS_OF_USE = 'policy/Terms of Use.pdf' diff --git a/docker/setup.Dockerfile b/docker/setup.Dockerfile deleted file mode 100644 index 18bb2d06..00000000 --- a/docker/setup.Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM python:3.10-alpine3.14 as prep - -RUN apk add bash --no-cache - -WORKDIR /setup - -# copy needed files from repo -COPY resources/ resources/ - -COPY docker/setup.sh /setup.sh - -CMD [ "/setup.sh" ] diff --git a/docker/setup.sh b/docker/setup.sh deleted file mode 100755 index 1944bbba..00000000 --- a/docker/setup.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -# fail on first error -set -e - -function update_ini() { - FILE="/docker/configs/$1" - KEY=$2 - NEW_VALUE=$3 - sed -i "s~$2=.*~$2=$3~" $FILE -} - -function update_database_ini_values_for() { - INI_FILE=$1 - - update_ini $INI_FILE mysql_host $DATABASE_HOST - update_ini $INI_FILE mysql_database $DATABASE - update_ini $INI_FILE mysql_username $DATABASE_USER - update_ini $INI_FILE mysql_password $DATABASE_PASSWORD - update_ini $INI_FILE client_net_version $BUILD_VERSION - update_ini $INI_FILE external_ip $EXTERNAL_IP -} - -function update_ini_values() { - echo "Copying and updating config files" - - mkdir -p /docker/configs - cp resources/masterconfig.ini /docker/configs/ - cp resources/authconfig.ini /docker/configs/ - cp resources/chatconfig.ini /docker/configs/ - cp resources/worldconfig.ini /docker/configs/ - cp resources/sharedconfig.ini /docker/configs/ - - # always use the internal docker hostname - update_ini masterconfig.ini master_ip "darkflame" - update_ini sharedconfig.ini client_location "/client" - - update_database_ini_values_for sharedconfig.ini -} - -update_ini_values diff --git a/docker/start_server.sh b/docker/start_server.sh deleted file mode 100755 index 2e2e8c28..00000000 --- a/docker/start_server.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -function symlink_config_files() { - echo "Creating symlinks for config files" - rm /app/*.ini - ln -s /shared_configs/configs/authconfig.ini /app/authconfig.ini - ln -s /shared_configs/configs/chatconfig.ini /app/chatconfig.ini - ln -s /shared_configs/configs/masterconfig.ini /app/masterconfig.ini - ln -s /shared_configs/configs/worldconfig.ini /app/worldconfig.ini - ln -s /shared_configs/configs/sharedconfig.ini /app/sharedconfig.ini -} - -if [[ ! -f "/app/initialized" ]]; then - # setup symlinks for volume files - symlink_config_files - # do not run symlinks more than once - touch /app/initialized -else - echo "Server already initialized" -fi - -# start the server -echo "Starting MasterServer" -./MasterServer -tail -f /dev/null diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 00000000..e9e7c5fb --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -e + +mkdir -p /app/configs/ +cp -n /app/default-configs/* /app/configs/ +mkdir -p /app/vanity/ +cp -n /app/default-vanity/* /app/vanity/ +cd /app/ && ./MasterServer diff --git a/resources/authconfig.ini b/resources/authconfig.ini index 62a5c6de..7938b5cc 100644 --- a/resources/authconfig.ini +++ b/resources/authconfig.ini @@ -1,5 +1,5 @@ # Port number. The client has the authserver port hardcoded to 1001 -port=1001 +auth_server_port=1001 # 0 or 1, should ignore playkeys # If 1 everyone with an account will be able to login, regardless of if they have a key or not diff --git a/resources/chatconfig.ini b/resources/chatconfig.ini index 1bb1d1b2..402534ed 100644 --- a/resources/chatconfig.ini +++ b/resources/chatconfig.ini @@ -1,6 +1,3 @@ -# Port number -port=2005 - # If you would like to increase the maximum number of best friends a player can have on the server # Change the value below to what you would like this to be (5 is live accurate) max_number_of_best_friends=5 diff --git a/resources/masterconfig.ini b/resources/masterconfig.ini index 4864d8cb..ab04af99 100644 --- a/resources/masterconfig.ini +++ b/resources/masterconfig.ini @@ -2,7 +2,7 @@ master_ip=localhost # Port number -port=2000 +master_server_port=2000 # The port number to start world servers on. Will be incremented for each world world_port_start=3000 diff --git a/resources/sharedconfig.ini b/resources/sharedconfig.ini index 2e2b6120..e487058d 100644 --- a/resources/sharedconfig.ini +++ b/resources/sharedconfig.ini @@ -62,3 +62,7 @@ event_8= version_major=1 version_current=10 version_minor=64 + +# The port the chat server is started and listening on +# Used in chat and world servers +chat_server_port=2005 \ No newline at end of file diff --git a/resources/worldconfig.ini b/resources/worldconfig.ini index 7f296afe..c68b42d2 100644 --- a/resources/worldconfig.ini +++ b/resources/worldconfig.ini @@ -2,9 +2,6 @@ # If you fork this repository and/or make changes to the code, reflect that here to comply with AGPLv3 source=https://github.com/DarkflameUniverse/DarkflameServer -# Port to the chat server, same as in chatconfig.ini -chat_server_port=2005 - # 0 or 1, should disable chat disable_chat=0 diff --git a/thirdparty/AccountManager b/thirdparty/AccountManager deleted file mode 160000 index 19e2a4fe..00000000 --- a/thirdparty/AccountManager +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 19e2a4fe9faba8ec2e40162e0019acd711967744 From 09fb1dfff91afd708edbadc29aabfd1cfdc019f3 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 3 Jan 2024 04:00:49 -0800 Subject: [PATCH 077/106] Update docker-compose.yml (#1383) --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3f79784c..1d83f010 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ services: networks: - darkflame - darkfameserver: + darkflameserver: networks: - darkflame image: ghcr.io/darkflameuniverse/darkflameserver:latest From c7c84c21ef18a4eb223e85e3ed09d574b337d16b Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 3 Jan 2024 05:34:38 -0800 Subject: [PATCH 078/106] feat: partially functioning property behavior ui (no saving or loading yet) (#1384) * Add addstrip handling add SendBehaviorBlocksToClient serialization add id generation and auto updating add behaviorlisttoclient serialization * fix crash happened if you added state 0 and 6 and nothing in between * Section off code Use proper encapsulation to hide code away and only let specific objects do certain jobs. * Organize serialization Section off into operational chunks Write data at the level most appropriate * Remove and simplify BlockDefinitions Remove pointer usage for BlockDefinitions and move to optional. * ControlBehaviors: Add addaction handling * re-organization remove const from return value change to int from uint use generic methods to reduce code clutter * add strip ui position handling * add split strip functionality * fix issues fix an issue where if you were on an empty state, the server would allow you to remain on that state fix an issue where the ui would not open on the previously opened state fix an issue where deleting strips in order caused the wrong strips to be deleted * update how you remove behaviors from models * Add remove actions and rename * migrate actions * update action and rearrange strip * merge strips * add and move to inventory * Remove dead code * simplify code * nits and move finish MoveToInventory constify serialize further include path fixes use const, comments fix amf message Update ModelComponent.cpp replace operator subscript with at * Update ModelComponent.cpp * Update MigrateActionsMessage.h * const * Move to separate translation units * include amf3 its precompiled, but just in case --- dGame/dComponents/ModelComponent.cpp | 43 ++ dGame/dComponents/ModelComponent.h | 72 ++++ dGame/dPropertyBehaviors/CMakeLists.txt | 3 + .../ControlBehaviorMessages/Action.cpp | 33 +- .../ControlBehaviorMessages/Action.h | 14 +- .../ControlBehaviorMessages/ActionContext.h | 4 +- .../AddActionMessage.h | 8 +- .../ControlBehaviorMessages/AddMessage.h | 2 +- .../ControlBehaviorMessages/AddStripMessage.h | 6 +- .../BehaviorMessageBase.cpp | 12 +- .../BehaviorMessageBase.h | 13 +- .../ControlBehaviorMsgs.h | 23 ++ .../MergeStripsMessage.h | 12 +- .../MigrateActionsMessage.h | 16 +- .../MoveToInventoryMessage.h | 2 +- .../RearrangeStripMessage.h | 10 +- .../RemoveActionsMessage.h | 6 +- .../RemoveStripMessage.h | 2 +- .../ControlBehaviorMessages/RenameMessage.h | 2 +- .../SplitStripMessage.h | 15 +- .../StripUiPosition.cpp | 6 + .../ControlBehaviorMessages/StripUiPosition.h | 5 +- .../UpdateActionMessage.h | 8 +- .../UpdateStripUiMessage.h | 4 +- dGame/dPropertyBehaviors/ControlBehaviors.cpp | 367 +++++------------- dGame/dPropertyBehaviors/ControlBehaviors.h | 39 +- dGame/dPropertyBehaviors/PropertyBehavior.cpp | 131 +++++++ dGame/dPropertyBehaviors/PropertyBehavior.h | 49 +++ dGame/dPropertyBehaviors/State.cpp | 137 +++++++ dGame/dPropertyBehaviors/State.h | 19 + dGame/dPropertyBehaviors/Strip.cpp | 87 +++++ dGame/dPropertyBehaviors/Strip.h | 23 ++ 32 files changed, 815 insertions(+), 358 deletions(-) create mode 100644 dGame/dPropertyBehaviors/ControlBehaviorMessages/ControlBehaviorMsgs.h create mode 100644 dGame/dPropertyBehaviors/PropertyBehavior.cpp create mode 100644 dGame/dPropertyBehaviors/PropertyBehavior.h create mode 100644 dGame/dPropertyBehaviors/State.cpp create mode 100644 dGame/dPropertyBehaviors/State.h create mode 100644 dGame/dPropertyBehaviors/Strip.cpp create mode 100644 dGame/dPropertyBehaviors/Strip.h diff --git a/dGame/dComponents/ModelComponent.cpp b/dGame/dComponents/ModelComponent.cpp index ccdad281..3f8858c0 100644 --- a/dGame/dComponents/ModelComponent.cpp +++ b/dGame/dComponents/ModelComponent.cpp @@ -1,6 +1,12 @@ #include "ModelComponent.h" #include "Entity.h" +#include "Game.h" +#include "Logger.h" + +#include "BehaviorStates.h" +#include "ControlBehaviorMsgs.h" + ModelComponent::ModelComponent(Entity* parent) : Component(parent) { m_OriginalPosition = m_Parent->GetDefaultPosition(); m_OriginalRotation = m_Parent->GetDefaultRotation(); @@ -29,3 +35,40 @@ void ModelComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialU outBitStream->Write1(); // Is this model paused if (bIsInitialUpdate) outBitStream->Write0(); // We are not writing model editing info } + +void ModelComponent::UpdatePendingBehaviorId(const int32_t newId) { + for (auto& behavior : m_Behaviors) if (behavior.GetBehaviorId() == -1) behavior.SetBehaviorId(newId); +} + +void ModelComponent::SendBehaviorListToClient(AMFArrayValue& args) const { + args.Insert("objectID", std::to_string(m_Parent->GetObjectID())); + + auto* behaviorArray = args.InsertArray("behaviors"); + for (auto& behavior : m_Behaviors) { + auto* behaviorArgs = behaviorArray->PushArray(); + behavior.SendBehaviorListToClient(*behaviorArgs); + } +} + +void ModelComponent::VerifyBehaviors() { + for (auto& behavior : m_Behaviors) behavior.VerifyLastEditedState(); +} + +void ModelComponent::SendBehaviorBlocksToClient(int32_t behaviorToSend, AMFArrayValue& args) const { + args.Insert("BehaviorID", std::to_string(behaviorToSend)); + args.Insert("objectID", std::to_string(m_Parent->GetObjectID())); + for (auto& behavior : m_Behaviors) if (behavior.GetBehaviorId() == behaviorToSend) behavior.SendBehaviorBlocksToClient(args); +} + +void ModelComponent::AddBehavior(AddMessage& msg) { + // Can only have 1 of the loot behaviors + for (auto& behavior : m_Behaviors) if (behavior.GetBehaviorId() == msg.GetBehaviorId()) return; + m_Behaviors.insert(m_Behaviors.begin() + msg.GetBehaviorIndex(), PropertyBehavior()); + m_Behaviors.at(msg.GetBehaviorIndex()).HandleMsg(msg); +} + +void ModelComponent::MoveToInventory(MoveToInventoryMessage& msg) { + if (msg.GetBehaviorIndex() >= m_Behaviors.size() || m_Behaviors.at(msg.GetBehaviorIndex()).GetBehaviorId() != msg.GetBehaviorId()) return; + m_Behaviors.erase(m_Behaviors.begin() + msg.GetBehaviorIndex()); + // TODO move to the inventory +} diff --git a/dGame/dComponents/ModelComponent.h b/dGame/dComponents/ModelComponent.h index dd9984e7..a36328be 100644 --- a/dGame/dComponents/ModelComponent.h +++ b/dGame/dComponents/ModelComponent.h @@ -1,4 +1,7 @@ #pragma once + +#include <map> + #include "dCommonVars.h" #include "RakNetTypes.h" #include "NiPoint3.h" @@ -6,7 +9,15 @@ #include "Component.h" #include "eReplicaComponentType.h" +#include "Action.h" +#include "PropertyBehavior.h" +#include "StripUiPosition.h" + +class AddMessage; +class AMFArrayValue; +class BehaviorMessageBase; class Entity; +class MoveToInventoryMessage; /** * Component that represents entities that are a model, e.g. collectible models and BBB models. @@ -43,7 +54,68 @@ public: */ void SetRotation(const NiQuaternion& rot) { m_OriginalRotation = rot; } + /** + * Main gateway for all behavior messages to be passed to their respective behaviors. + * + * @tparam Msg The message type to pass + * @param args the arguments of the message to be deserialized + */ + template<typename Msg> + void HandleControlBehaviorsMsg(AMFArrayValue* args) { + static_assert(std::is_base_of_v<BehaviorMessageBase, Msg>, "Msg must be a BehaviorMessageBase"); + Msg msg(args); + for (auto& behavior : m_Behaviors) { + if (behavior.GetBehaviorId() == msg.GetBehaviorId()) { + behavior.HandleMsg(msg); + return; + } + } + + // If we somehow added more than 5 behaviors, resize to 5. + if (m_Behaviors.size() > 5) m_Behaviors.resize(5); + + // Do not allow more than 5 to be added. The client UI will break if you do! + if (m_Behaviors.size() == 5) return; + + auto newBehavior = m_Behaviors.insert(m_Behaviors.begin(), PropertyBehavior()); + // Generally if we are inserting a new behavior, it is because the client is creating a new behavior. + // However if we are testing behaviors the behavior will not exist on the initial pass, so we set the ID here to that of the msg. + // This will either set the ID to -1 (no change in the current default) or set the ID to the ID of the behavior we are testing. + newBehavior->SetBehaviorId(msg.GetBehaviorId()); + newBehavior->HandleMsg(msg); + }; + + void AddBehavior(AddMessage& msg); + + void MoveToInventory(MoveToInventoryMessage& msg); + + // Updates the pending behavior ID to the new ID. + void UpdatePendingBehaviorId(const int32_t newId); + + // Sends the behavior list to the client. + + /** + * The behaviors AMFArray will have up to 5 elements in the dense portion. + * Each element in the dense portion will be made up of another AMFArray + * with the following information mapped in the associative portion + * "id": Behavior ID cast to an AMFString + * "isLocked": AMFTrue or AMFFalse of whether or not the behavior is locked + * "isLoot": AMFTrue or AMFFalse of whether or not the behavior is a custom behavior (true if custom) + * "name": The name of the behavior formatted as an AMFString + */ + void SendBehaviorListToClient(AMFArrayValue& args) const; + + void SendBehaviorBlocksToClient(int32_t behaviorToSend, AMFArrayValue& args) const; + + void VerifyBehaviors(); + private: + /** + * The behaviors of the model + * Note: This is a vector because the order of the behaviors matters when serializing to the client. + * Note: No two PropertyBehaviors should have the same behavior ID. + */ + std::vector<PropertyBehavior> m_Behaviors; /** * The original position of the model diff --git a/dGame/dPropertyBehaviors/CMakeLists.txt b/dGame/dPropertyBehaviors/CMakeLists.txt index 5e33a5f5..8bffa906 100644 --- a/dGame/dPropertyBehaviors/CMakeLists.txt +++ b/dGame/dPropertyBehaviors/CMakeLists.txt @@ -1,4 +1,7 @@ set(DGAME_DPROPERTYBEHAVIORS_SOURCES + "PropertyBehavior.cpp" + "State.cpp" + "Strip.cpp" "BlockDefinition.cpp" "ControlBehaviors.cpp" ) diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.cpp b/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.cpp index eabe76b7..73f1391d 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.cpp +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.cpp @@ -1,4 +1,5 @@ #include "Action.h" +#include "Amf3.h" Action::Action() { type = ""; @@ -12,20 +13,34 @@ Action::Action(AMFArrayValue* arguments) { valueParameterName = ""; valueParameterString = ""; valueParameterDouble = 0.0; - for (auto& typeValueMap : arguments->GetAssociative()) { - if (typeValueMap.first == "Type") { - if (typeValueMap.second->GetValueType() != eAmf::String) continue; - type = static_cast<AMFStringValue*>(typeValueMap.second)->GetValue(); + for (auto& [paramName, paramValue] : arguments->GetAssociative()) { + if (paramName == "Type") { + if (paramValue->GetValueType() != eAmf::String) continue; + type = static_cast<AMFStringValue*>(paramValue)->GetValue(); } else { - valueParameterName = typeValueMap.first; + valueParameterName = paramName; // Message is the only known string parameter if (valueParameterName == "Message") { - if (typeValueMap.second->GetValueType() != eAmf::String) continue; - valueParameterString = static_cast<AMFStringValue*>(typeValueMap.second)->GetValue(); + if (paramValue->GetValueType() != eAmf::String) continue; + valueParameterString = static_cast<AMFStringValue*>(paramValue)->GetValue(); } else { - if (typeValueMap.second->GetValueType() != eAmf::Double) continue; - valueParameterDouble = static_cast<AMFDoubleValue*>(typeValueMap.second)->GetValue(); + if (paramValue->GetValueType() != eAmf::Double) continue; + valueParameterDouble = static_cast<AMFDoubleValue*>(paramValue)->GetValue(); } } } } + +void Action::SendBehaviorBlocksToClient(AMFArrayValue& args) const { + auto* actionArgs = args.PushArray(); + actionArgs->Insert("Type", type); + + auto valueParameterName = GetValueParameterName(); + if (valueParameterName.empty()) return; + + if (valueParameterName == "Message") { + actionArgs->Insert(valueParameterName, valueParameterString); + } else { + actionArgs->Insert(valueParameterName, valueParameterDouble); + } +} diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.h index c97b4050..df665889 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/Action.h @@ -1,7 +1,9 @@ #ifndef __ACTION__H__ #define __ACTION__H__ -#include "BehaviorMessageBase.h" +#include <string> + +class AMFArrayValue; /** * @brief Sent if a ControlBehavior message has an Action associated with it @@ -11,10 +13,12 @@ class Action { public: Action(); Action(AMFArrayValue* arguments); - const std::string& GetType() { return type; }; - const std::string& GetValueParameterName() { return valueParameterName; }; - const std::string& GetValueParameterString() { return valueParameterString; }; - const double GetValueParameterDouble() { return valueParameterDouble; }; + const std::string& GetType() const { return type; }; + const std::string& GetValueParameterName() const { return valueParameterName; }; + const std::string& GetValueParameterString() const { return valueParameterString; }; + const double GetValueParameterDouble() const { return valueParameterDouble; }; + + void SendBehaviorBlocksToClient(AMFArrayValue& args) const; private: std::string type; std::string valueParameterName; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/ActionContext.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/ActionContext.h index 5f46fd8c..91e91e72 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/ActionContext.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/ActionContext.h @@ -14,8 +14,8 @@ class ActionContext { public: ActionContext(); ActionContext(AMFArrayValue* arguments, std::string customStateKey = "stateID", std::string customStripKey = "stripID"); - const StripId GetStripId() { return stripId; }; - const BehaviorState GetStateId() { return stateId; }; + const StripId GetStripId() const { return stripId; }; + const BehaviorState GetStateId() const { return stateId; }; private: BehaviorState GetBehaviorStateFromArgument(AMFArrayValue* arguments, const std::string& key); StripId GetStripIdFromArgument(AMFArrayValue* arguments, const std::string& key); diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddActionMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddActionMessage.h index 4faf6a53..ac3a9612 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddActionMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddActionMessage.h @@ -14,11 +14,11 @@ class AMFArrayValue; class AddActionMessage : public BehaviorMessageBase { public: AddActionMessage(AMFArrayValue* arguments); - const uint32_t GetActionIndex() { return actionIndex; }; - Action GetAction() { return action; }; - ActionContext GetActionContext() { return actionContext; }; + int32_t GetActionIndex() const { return actionIndex; }; + Action GetAction() const { return action; }; + ActionContext GetActionContext() const { return actionContext; }; private: - uint32_t actionIndex; + int32_t actionIndex = -1; ActionContext actionContext; Action action; }; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddMessage.h index a46d5f98..76627665 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddMessage.h @@ -10,7 +10,7 @@ class AddMessage : public BehaviorMessageBase { public: AddMessage(AMFArrayValue* arguments); - const uint32_t GetBehaviorIndex() { return behaviorIndex; }; + const uint32_t GetBehaviorIndex() const { return behaviorIndex; }; private: uint32_t behaviorIndex; }; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddStripMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddStripMessage.h index db75aef7..0b9a09e3 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddStripMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/AddStripMessage.h @@ -19,9 +19,9 @@ class AMFArrayValue; class AddStripMessage : public BehaviorMessageBase { public: AddStripMessage(AMFArrayValue* arguments); - StripUiPosition GetPosition() { return position; }; - ActionContext GetActionContext() { return actionContext; }; - std::vector<Action> GetActionsToAdd() { return actionsToAdd; }; + StripUiPosition GetPosition() const { return position; }; + ActionContext GetActionContext() const { return actionContext; }; + std::vector<Action> GetActionsToAdd() const { return actionsToAdd; }; private: StripUiPosition position; ActionContext actionContext; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.cpp b/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.cpp index 3286504a..cc817cd7 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.cpp +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.cpp @@ -5,29 +5,27 @@ #include "dCommonVars.h" BehaviorMessageBase::BehaviorMessageBase(AMFArrayValue* arguments) { - behaviorId = 0; behaviorId = GetBehaviorIdFromArgument(arguments); } int32_t BehaviorMessageBase::GetBehaviorIdFromArgument(AMFArrayValue* arguments) { const auto* key = "BehaviorID"; auto* behaviorIDValue = arguments->Get<std::string>(key); - int32_t behaviorID = -1; if (behaviorIDValue && behaviorIDValue->GetValueType() == eAmf::String) { - behaviorID = std::stoul(behaviorIDValue->GetValue()); - } else if (arguments->Get(key)->GetValueType() != eAmf::Undefined) { + GeneralUtils::TryParse(behaviorIDValue->GetValue(), behaviorId); + } else if (arguments->Get(key) && arguments->Get(key)->GetValueType() != eAmf::Undefined) { throw std::invalid_argument("Unable to find behavior ID"); } - return behaviorID; + return behaviorId; } -uint32_t BehaviorMessageBase::GetActionIndexFromArgument(AMFArrayValue* arguments, const std::string& keyName) { +int32_t BehaviorMessageBase::GetActionIndexFromArgument(AMFArrayValue* arguments, const std::string& keyName) { auto* actionIndexAmf = arguments->Get<double>(keyName); if (!actionIndexAmf) { throw std::invalid_argument("Unable to find actionIndex"); } - return static_cast<uint32_t>(actionIndexAmf->GetValue()); + return static_cast<int32_t>(actionIndexAmf->GetValue()); } diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.h index 39246c9d..8a841d7f 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/BehaviorMessageBase.h @@ -7,9 +7,6 @@ #include "Amf3.h" #include "dCommonVars.h" -#include "Game.h" -#include "Logger.h" - enum class BehaviorState : uint32_t; /** @@ -18,12 +15,14 @@ enum class BehaviorState : uint32_t; */ class BehaviorMessageBase { public: - const uint32_t GetBehaviorId() { return behaviorId; }; -protected: + static inline int32_t DefaultBehaviorId = -1; + const int32_t GetBehaviorId() const { return behaviorId; }; + bool IsDefaultBehaviorId() { return behaviorId == DefaultBehaviorId; }; BehaviorMessageBase(AMFArrayValue* arguments); +protected: int32_t GetBehaviorIdFromArgument(AMFArrayValue* arguments); - uint32_t GetActionIndexFromArgument(AMFArrayValue* arguments, const std::string& keyName = "actionIndex"); - int32_t behaviorId = -1; + int32_t GetActionIndexFromArgument(AMFArrayValue* arguments, const std::string& keyName = "actionIndex"); + int32_t behaviorId = DefaultBehaviorId; }; #endif //!__BEHAVIORMESSAGEBASE__H__ diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/ControlBehaviorMsgs.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/ControlBehaviorMsgs.h new file mode 100644 index 00000000..0e17060b --- /dev/null +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/ControlBehaviorMsgs.h @@ -0,0 +1,23 @@ +#ifndef __CONTROLBEHAVIORMSGS__H__ +#define __CONTROLBEHAVIORMSGS__H__ + +#include "Action.h" +#include "ActionContext.h" +#include "AddActionMessage.h" +#include "AddMessage.h" +#include "AddStripMessage.h" +#include "BehaviorMessageBase.h" +#include "ControlBehaviorMsgs.h" +#include "MergeStripsMessage.h" +#include "MigrateActionsMessage.h" +#include "MoveToInventoryMessage.h" +#include "RearrangeStripMessage.h" +#include "RemoveActionsMessage.h" +#include "RemoveStripMessage.h" +#include "RenameMessage.h" +#include "SplitStripMessage.h" +#include "StripUiPosition.h" +#include "UpdateActionMessage.h" +#include "UpdateStripUiMessage.h" + +#endif //!__CONTROLBEHAVIORMSGS__H__ diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/MergeStripsMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/MergeStripsMessage.h index 0aff7f3a..7fa4d3a8 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/MergeStripsMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/MergeStripsMessage.h @@ -1,6 +1,7 @@ #ifndef __MERGESTRIPSMESSAGE__H__ #define __MERGESTRIPSMESSAGE__H__ +#include "Action.h" #include "ActionContext.h" #include "BehaviorMessageBase.h" @@ -13,13 +14,16 @@ class AMFArrayValue; class MergeStripsMessage : public BehaviorMessageBase { public: MergeStripsMessage(AMFArrayValue* arguments); - const uint32_t GetDstActionIndex() { return dstActionIndex; }; - ActionContext GetSourceActionContext() { return sourceActionContext; }; - ActionContext GetDestinationActionContext() { return destinationActionContext; }; + int32_t GetDstActionIndex() const { return dstActionIndex; }; + ActionContext GetSourceActionContext() const { return sourceActionContext; }; + ActionContext GetDestinationActionContext() const { return destinationActionContext; }; + const std::vector<Action>& GetMigratedActions() const { return migratedActions; }; + void SetMigratedActions(std::vector<Action>::const_iterator start, std::vector<Action>::const_iterator end) { migratedActions.assign(start, end); }; private: + std::vector<Action> migratedActions; ActionContext sourceActionContext; ActionContext destinationActionContext; - uint32_t dstActionIndex; + int32_t dstActionIndex; }; #endif //!__MERGESTRIPSMESSAGE__H__ diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/MigrateActionsMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/MigrateActionsMessage.h index f60e8748..2f1ac243 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/MigrateActionsMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/MigrateActionsMessage.h @@ -1,6 +1,7 @@ #ifndef __MIGRATEACTIONSMESSAGE__H__ #define __MIGRATEACTIONSMESSAGE__H__ +#include "Action.h" #include "ActionContext.h" #include "BehaviorMessageBase.h" @@ -13,15 +14,18 @@ class AMFArrayValue; class MigrateActionsMessage : public BehaviorMessageBase { public: MigrateActionsMessage(AMFArrayValue* arguments); - const uint32_t GetSrcActionIndex() { return srcActionIndex; }; - const uint32_t GetDstActionIndex() { return dstActionIndex; }; - ActionContext GetSourceActionContext() { return sourceActionContext; }; - ActionContext GetDestinationActionContext() { return destinationActionContext; }; + int32_t GetSrcActionIndex() const { return srcActionIndex; }; + int32_t GetDstActionIndex() const { return dstActionIndex; }; + ActionContext GetSourceActionContext() const { return sourceActionContext; }; + ActionContext GetDestinationActionContext() const { return destinationActionContext; }; + const std::vector<Action>& GetMigratedActions() const { return migratedActions; }; + void SetMigratedActions(std::vector<Action>::const_iterator start, std::vector<Action>::const_iterator end) { migratedActions.assign(start, end); }; private: + std::vector<Action> migratedActions; ActionContext sourceActionContext; ActionContext destinationActionContext; - uint32_t srcActionIndex; - uint32_t dstActionIndex; + int32_t srcActionIndex; + int32_t dstActionIndex; }; #endif //!__MIGRATEACTIONSMESSAGE__H__ diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/MoveToInventoryMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/MoveToInventoryMessage.h index c48f7d17..dc105766 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/MoveToInventoryMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/MoveToInventoryMessage.h @@ -13,7 +13,7 @@ class AMFArrayValue; class MoveToInventoryMessage : public BehaviorMessageBase { public: MoveToInventoryMessage(AMFArrayValue* arguments); - const uint32_t GetBehaviorIndex() { return behaviorIndex; }; + const uint32_t GetBehaviorIndex() const { return behaviorIndex; }; private: uint32_t behaviorIndex; }; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RearrangeStripMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RearrangeStripMessage.h index 46819404..db12c046 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RearrangeStripMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RearrangeStripMessage.h @@ -11,13 +11,13 @@ class RearrangeStripMessage : public BehaviorMessageBase { public: RearrangeStripMessage(AMFArrayValue* arguments); - const uint32_t GetSrcActionIndex() { return srcActionIndex; }; - const uint32_t GetDstActionIndex() { return dstActionIndex; }; - ActionContext GetActionContext() { return actionContext; }; + int32_t GetSrcActionIndex() const { return srcActionIndex; }; + int32_t GetDstActionIndex() const { return dstActionIndex; }; + ActionContext GetActionContext() const { return actionContext; }; private: ActionContext actionContext; - uint32_t srcActionIndex; - uint32_t dstActionIndex; + int32_t srcActionIndex; + int32_t dstActionIndex; }; #endif //!__REARRANGESTRIPMESSAGE__H__ diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveActionsMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveActionsMessage.h index 457ddba8..860df0af 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveActionsMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveActionsMessage.h @@ -13,11 +13,11 @@ class AMFArrayValue; class RemoveActionsMessage : public BehaviorMessageBase { public: RemoveActionsMessage(AMFArrayValue* arguments); - const uint32_t GetActionIndex() { return actionIndex; }; - ActionContext GetActionContext() { return actionContext; }; + int32_t GetActionIndex() const { return actionIndex; }; + ActionContext GetActionContext() const { return actionContext; }; private: ActionContext actionContext; - uint32_t actionIndex; + int32_t actionIndex; }; #endif //!__REMOVEACTIONSMESSAGE__H__ diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveStripMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveStripMessage.h index 36e2e401..6a32ab0c 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveStripMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RemoveStripMessage.h @@ -11,7 +11,7 @@ class RemoveStripMessage : public BehaviorMessageBase { public: RemoveStripMessage(AMFArrayValue* arguments); - ActionContext GetActionContext() { return actionContext; }; + ActionContext GetActionContext() const { return actionContext; }; private: ActionContext actionContext; }; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RenameMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RenameMessage.h index ba181f63..3f4119d2 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/RenameMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/RenameMessage.h @@ -12,7 +12,7 @@ class AMFArrayValue; class RenameMessage : public BehaviorMessageBase { public: RenameMessage(AMFArrayValue* arguments); - const std::string& GetName() { return name; }; + const std::string& GetName() const { return name; }; private: std::string name; }; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/SplitStripMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/SplitStripMessage.h index 9210efb0..e41d50eb 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/SplitStripMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/SplitStripMessage.h @@ -1,6 +1,7 @@ #ifndef __SPLITSTRIPMESSAGE__H__ #define __SPLITSTRIPMESSAGE__H__ +#include "Action.h" #include "ActionContext.h" #include "BehaviorMessageBase.h" #include "StripUiPosition.h" @@ -14,15 +15,19 @@ class AMFArrayValue; class SplitStripMessage : public BehaviorMessageBase { public: SplitStripMessage(AMFArrayValue* arguments); - ActionContext GetSourceActionContext() { return sourceActionContext; }; - ActionContext GetDestinationActionContext() { return destinationActionContext; }; - const uint32_t GetSrcActionIndex() { return srcActionIndex; }; - StripUiPosition GetPosition() { return destinationPosition; }; + ActionContext GetSourceActionContext() const { return sourceActionContext; }; + ActionContext GetDestinationActionContext() const { return destinationActionContext; }; + int32_t GetSrcActionIndex() const { return srcActionIndex; }; + StripUiPosition GetPosition() const { return destinationPosition; }; + const std::vector<Action>& GetTransferredActions() const { return transferredActions; }; + void SetTransferredActions(std::vector<Action>::const_iterator begin, std::vector<Action>::const_iterator end) { transferredActions.assign(begin, end); }; private: ActionContext sourceActionContext; ActionContext destinationActionContext; - uint32_t srcActionIndex; + int32_t srcActionIndex; StripUiPosition destinationPosition; + + std::vector<Action> transferredActions; }; #endif //!__SPLITSTRIPMESSAGE__H__ diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.cpp b/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.cpp index de612b45..8b2d1d36 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.cpp +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.cpp @@ -20,3 +20,9 @@ StripUiPosition::StripUiPosition(AMFArrayValue* arguments, std::string uiKeyName yPosition = yPositionValue->GetValue(); xPosition = xPositionValue->GetValue(); } + +void StripUiPosition::SendBehaviorBlocksToClient(AMFArrayValue& args) const { + auto* uiArgs = args.InsertArray("ui"); + uiArgs->Insert("x", xPosition); + uiArgs->Insert("y", yPosition); +} diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.h index 809f8890..92578cdc 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/StripUiPosition.h @@ -11,8 +11,9 @@ class StripUiPosition { public: StripUiPosition(); StripUiPosition(AMFArrayValue* arguments, std::string uiKeyName = "ui"); - double GetX() { return xPosition; }; - double GetY() { return yPosition; }; + void SendBehaviorBlocksToClient(AMFArrayValue& args) const; + double GetX() const { return xPosition; }; + double GetY() const { return yPosition; }; private: double xPosition; double yPosition; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateActionMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateActionMessage.h index 0a03ce9e..aa34940b 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateActionMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateActionMessage.h @@ -14,11 +14,11 @@ class AMFArrayValue; class UpdateActionMessage : public BehaviorMessageBase { public: UpdateActionMessage(AMFArrayValue* arguments); - const uint32_t GetActionIndex() { return actionIndex; }; - ActionContext GetActionContext() { return actionContext; }; - Action GetAction() { return action; }; + int32_t GetActionIndex() const { return actionIndex; }; + ActionContext GetActionContext() const { return actionContext; }; + Action GetAction() const { return action; }; private: - uint32_t actionIndex; + int32_t actionIndex; ActionContext actionContext; Action action; }; diff --git a/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateStripUiMessage.h b/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateStripUiMessage.h index 6d96f90c..0e9afe81 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateStripUiMessage.h +++ b/dGame/dPropertyBehaviors/ControlBehaviorMessages/UpdateStripUiMessage.h @@ -14,8 +14,8 @@ class AMFArrayValue; class UpdateStripUiMessage : public BehaviorMessageBase { public: UpdateStripUiMessage(AMFArrayValue* arguments); - StripUiPosition GetPosition() { return position; }; - ActionContext GetActionContext() { return actionContext; }; + StripUiPosition GetPosition() const { return position; }; + ActionContext GetActionContext() const { return actionContext; }; private: StripUiPosition position; ActionContext actionContext; diff --git a/dGame/dPropertyBehaviors/ControlBehaviors.cpp b/dGame/dPropertyBehaviors/ControlBehaviors.cpp index b143cbc8..248ce4e7 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviors.cpp +++ b/dGame/dPropertyBehaviors/ControlBehaviors.cpp @@ -30,221 +30,49 @@ #include "UpdateActionMessage.h" #include "UpdateStripUiMessage.h" -void ControlBehaviors::RequestUpdatedID(int32_t behaviorID, ModelComponent* modelComponent, Entity* modelOwner, const SystemAddress& sysAddr) { - // auto behavior = modelComponent->FindBehavior(behaviorID); - // if (behavior->GetBehaviorID() == -1 || behavior->GetShouldSetNewID()) { - // ObjectIDManager::Instance()->RequestPersistentID( - // [behaviorID, behavior, modelComponent, modelOwner, sysAddr](uint32_t persistentId) { - // behavior->SetShouldGetNewID(false); - // behavior->SetIsTemplated(false); - // behavior->SetBehaviorID(persistentId); +void ControlBehaviors::RequestUpdatedID(ControlBehaviorContext& context) { + ObjectIDManager::Instance()->RequestPersistentID( + [context](uint32_t persistentId) { + if (!context) { + LOG("Model to update behavior ID for is null. Cannot update ID."); + return; + } + // This updates the behavior ID of the behavior should this be a new behavior + AMFArrayValue args; - // // This updates the behavior ID of the behavior should this be a new behavior - // AMFArrayValue args; + args.Insert("behaviorID", std::to_string(persistentId)); + args.Insert("objectID", std::to_string(context.modelComponent->GetParent()->GetObjectID())); - // AMFStringValue* behaviorIDString = new AMFStringValue(); - // behaviorIDString->SetValue(std::to_string(persistentId)); - // args.InsertValue("behaviorID", behaviorIDString); + GameMessages::SendUIMessageServerToSingleClient(context.modelOwner, context.modelOwner->GetSystemAddress(), "UpdateBehaviorID", args); + context.modelComponent->UpdatePendingBehaviorId(persistentId); - // AMFStringValue* objectIDAsString = new AMFStringValue(); - // objectIDAsString->SetValue(std::to_string(modelComponent->GetParent()->GetObjectID())); - // args.InsertValue("objectID", objectIDAsString); - - // GameMessages::SendUIMessageServerToSingleClient(modelOwner, sysAddr, "UpdateBehaviorID", &args); - // ControlBehaviors::SendBehaviorListToClient(modelComponent->GetParent(), sysAddr, modelOwner); - // }); - // } + ControlBehaviors::Instance().SendBehaviorListToClient(context); + }); } -void ControlBehaviors::SendBehaviorListToClient(Entity* modelEntity, const SystemAddress& sysAddr, Entity* modelOwner) { - auto* modelComponent = modelEntity->GetComponent<ModelComponent>(); - - if (!modelComponent) return; +void ControlBehaviors::SendBehaviorListToClient(const ControlBehaviorContext& context) { + if (!context) return; AMFArrayValue behaviorsToSerialize; + context.modelComponent->SendBehaviorListToClient(behaviorsToSerialize); - /** - * The behaviors AMFArray will have up to 5 elements in the dense portion. - * Each element in the dense portion will be made up of another AMFArray - * with the following information mapped in the associative portion - * "id": Behavior ID cast to an AMFString - * "isLocked": AMFTrue or AMFFalse of whether or not the behavior is locked - * "isLoot": AMFTrue or AMFFalse of whether or not the behavior is a custom behavior (true if custom) - * "name": The name of the behavior formatted as an AMFString - */ - - behaviorsToSerialize.Insert("behaviors"); - behaviorsToSerialize.Insert("objectID", std::to_string(modelComponent->GetParent()->GetObjectID())); - - GameMessages::SendUIMessageServerToSingleClient(modelOwner, sysAddr, "UpdateBehaviorList", behaviorsToSerialize); -} - -void ControlBehaviors::ModelTypeChanged(AMFArrayValue* arguments, ModelComponent* ModelComponent) { - auto* modelTypeAmf = arguments->Get<double>("ModelType"); - if (!modelTypeAmf) return; - - uint32_t modelType = static_cast<uint32_t>(modelTypeAmf->GetValue()); - - //TODO Update the model type here -} - -void ControlBehaviors::ToggleExecutionUpdates() { - //TODO do something with this info -} - -void ControlBehaviors::AddStrip(AMFArrayValue* arguments) { - AddStripMessage addStripMessage(arguments); -} - -void ControlBehaviors::RemoveStrip(AMFArrayValue* arguments) { - RemoveStripMessage removeStrip(arguments); -} - -void ControlBehaviors::MergeStrips(AMFArrayValue* arguments) { - MergeStripsMessage mergeStripsMessage(arguments); -} - -void ControlBehaviors::SplitStrip(AMFArrayValue* arguments) { - SplitStripMessage splitStripMessage(arguments); -} - -void ControlBehaviors::UpdateStripUI(AMFArrayValue* arguments) { - UpdateStripUiMessage updateStripUiMessage(arguments); -} - -void ControlBehaviors::AddAction(AMFArrayValue* arguments) { - AddActionMessage addActionMessage(arguments); -} - -void ControlBehaviors::MigrateActions(AMFArrayValue* arguments) { - MigrateActionsMessage migrateActionsMessage(arguments); -} - -void ControlBehaviors::RearrangeStrip(AMFArrayValue* arguments) { - RearrangeStripMessage rearrangeStripMessage(arguments); -} - -void ControlBehaviors::Add(AMFArrayValue* arguments) { - AddMessage addMessage(arguments); -} - -void ControlBehaviors::RemoveActions(AMFArrayValue* arguments) { - RemoveActionsMessage removeActionsMessage(arguments); -} - -void ControlBehaviors::Rename(Entity* modelEntity, const SystemAddress& sysAddr, Entity* modelOwner, AMFArrayValue* arguments) { - RenameMessage renameMessage(arguments); + GameMessages::SendUIMessageServerToSingleClient(context.modelOwner, context.modelOwner->GetSystemAddress(), "UpdateBehaviorList", behaviorsToSerialize); } // TODO This is also supposed to serialize the state of the behaviors in progress but those aren't implemented yet -void ControlBehaviors::SendBehaviorBlocksToClient(ModelComponent* modelComponent, const SystemAddress& sysAddr, Entity* modelOwner, AMFArrayValue* arguments) { - // uint32_t behaviorID = ControlBehaviors::GetBehaviorIDFromArgument(arguments); +void ControlBehaviors::SendBehaviorBlocksToClient(ControlBehaviorContext& context) { + if (!context) return; + BehaviorMessageBase behaviorMsg(context.arguments); - // auto modelBehavior = modelComponent->FindBehavior(behaviorID); - - // if (!modelBehavior) return; - - // modelBehavior->VerifyStates(); - - // auto states = modelBehavior->GetBehaviorStates(); - - // // Begin serialization. - - // /** - // * for each state - // * strip id - // * ui info - // * x - // * y - // * actions - // * action1 - // * action2 - // * ... - // * behaviorID of strip - // * objectID of strip - // */ - // LWOOBJID targetObjectID = LWOOBJID_EMPTY; - // behaviorID = 0; - // AMFArrayValue behaviorInfo; - - // AMFArrayValue* stateSerialize = new AMFArrayValue(); - - // for (auto it = states.begin(); it != states.end(); it++) { - // LOG("Begin serialization of state %i!\n", it->first); - // AMFArrayValue* state = new AMFArrayValue(); - - // AMFDoubleValue* stateAsDouble = new AMFDoubleValue(); - // stateAsDouble->SetValue(it->first); - // state->InsertValue("id", stateAsDouble); - - // AMFArrayValue* strips = new AMFArrayValue(); - // auto stripsInState = it->second->GetStrips(); - // for (auto strip = stripsInState.begin(); strip != stripsInState.end(); strip++) { - // LOG("Begin serialization of strip %i!\n", strip->first); - // AMFArrayValue* thisStrip = new AMFArrayValue(); - - // AMFDoubleValue* stripID = new AMFDoubleValue(); - // stripID->SetValue(strip->first); - // thisStrip->InsertValue("id", stripID); - - // AMFArrayValue* uiArray = new AMFArrayValue(); - // AMFDoubleValue* yPosition = new AMFDoubleValue(); - // yPosition->SetValue(strip->second->GetYPosition()); - // uiArray->InsertValue("y", yPosition); - - // AMFDoubleValue* xPosition = new AMFDoubleValue(); - // xPosition->SetValue(strip->second->GetXPosition()); - // uiArray->InsertValue("x", xPosition); - - // thisStrip->InsertValue("ui", uiArray); - // targetObjectID = modelComponent->GetParent()->GetObjectID(); - // behaviorID = modelBehavior->GetBehaviorID(); - - // AMFArrayValue* stripSerialize = new AMFArrayValue(); - // for (auto behaviorAction : strip->second->GetActions()) { - // LOG("Begin serialization of action %s!\n", behaviorAction->actionName.c_str()); - // AMFArrayValue* thisAction = new AMFArrayValue(); - - // AMFStringValue* actionName = new AMFStringValue(); - // actionName->SetValue(behaviorAction->actionName); - // thisAction->InsertValue("Type", actionName); - - // if (behaviorAction->parameterValueString != "") - // { - // AMFStringValue* valueAsString = new AMFStringValue(); - // valueAsString->SetValue(behaviorAction->parameterValueString); - // thisAction->InsertValue(behaviorAction->parameterName, valueAsString); - // } - // else if (behaviorAction->parameterValueDouble != 0.0) - // { - // AMFDoubleValue* valueAsDouble = new AMFDoubleValue(); - // valueAsDouble->SetValue(behaviorAction->parameterValueDouble); - // thisAction->InsertValue(behaviorAction->parameterName, valueAsDouble); - // } - // stripSerialize->PushBackValue(thisAction); - // } - // thisStrip->InsertValue("actions", stripSerialize); - // strips->PushBackValue(thisStrip); - // } - // state->InsertValue("strips", strips); - // stateSerialize->PushBackValue(state); - // } - // behaviorInfo.InsertValue("states", stateSerialize); - - // AMFStringValue* objectidAsString = new AMFStringValue(); - // objectidAsString->SetValue(std::to_string(targetObjectID)); - // behaviorInfo.InsertValue("objectID", objectidAsString); - - // AMFStringValue* behaviorIDAsString = new AMFStringValue(); - // behaviorIDAsString->SetValue(std::to_string(behaviorID)); - // behaviorInfo.InsertValue("BehaviorID", behaviorIDAsString); - - // GameMessages::SendUIMessageServerToSingleClient(modelOwner, sysAddr, "UpdateBehaviorBlocks", &behaviorInfo); + context.modelComponent->VerifyBehaviors(); + AMFArrayValue behavior; + context.modelComponent->SendBehaviorBlocksToClient(behaviorMsg.GetBehaviorId(), behavior); + GameMessages::SendUIMessageServerToSingleClient(context.modelOwner, context.modelOwner->GetSystemAddress(), "UpdateBehaviorBlocks", behavior); } void ControlBehaviors::UpdateAction(AMFArrayValue* arguments) { UpdateActionMessage updateActionMessage(arguments); - auto* blockDefinition = GetBlockInfo(updateActionMessage.GetAction().GetType()); + auto blockDefinition = GetBlockInfo(updateActionMessage.GetAction().GetType()); if (!blockDefinition) { LOG("Received undefined block type %s. Ignoring.", updateActionMessage.GetAction().GetType().c_str()); @@ -266,75 +94,83 @@ void ControlBehaviors::UpdateAction(AMFArrayValue* arguments) { } } -void ControlBehaviors::MoveToInventory(ModelComponent* modelComponent, const SystemAddress& sysAddr, Entity* modelOwner, AMFArrayValue* arguments) { - // This closes the UI menu should it be open while the player is removing behaviors - AMFArrayValue args; - - args.Insert("visible", false); - - GameMessages::SendUIMessageServerToSingleClient(modelOwner, modelOwner->GetParentUser()->GetSystemAddress(), "ToggleBehaviorEditor", args); - - MoveToInventoryMessage moveToInventoryMessage(arguments); - - SendBehaviorListToClient(modelComponent->GetParent(), sysAddr, modelOwner); -} - void ControlBehaviors::ProcessCommand(Entity* modelEntity, const SystemAddress& sysAddr, AMFArrayValue* arguments, std::string command, Entity* modelOwner) { if (!isInitialized || !modelEntity || !modelOwner || !arguments) return; auto* modelComponent = modelEntity->GetComponent<ModelComponent>(); if (!modelComponent) return; - if (command == "sendBehaviorListToClient") - SendBehaviorListToClient(modelEntity, sysAddr, modelOwner); - else if (command == "modelTypeChanged") - ModelTypeChanged(arguments, modelComponent); - else if (command == "toggleExecutionUpdates") - ToggleExecutionUpdates(); - else if (command == "addStrip") - AddStrip(arguments); - else if (command == "removeStrip") - RemoveStrip(arguments); - else if (command == "mergeStrips") - MergeStrips(arguments); - else if (command == "splitStrip") - SplitStrip(arguments); - else if (command == "updateStripUI") - UpdateStripUI(arguments); - else if (command == "addAction") - AddAction(arguments); - else if (command == "migrateActions") - MigrateActions(arguments); - else if (command == "rearrangeStrip") - RearrangeStrip(arguments); - else if (command == "add") - Add(arguments); - else if (command == "removeActions") - RemoveActions(arguments); - else if (command == "rename") - Rename(modelEntity, sysAddr, modelOwner, arguments); - else if (command == "sendBehaviorBlocksToClient") - SendBehaviorBlocksToClient(modelComponent, sysAddr, modelOwner, arguments); - else if (command == "moveToInventory") - MoveToInventory(modelComponent, sysAddr, modelOwner, arguments); - else if (command == "updateAction") - UpdateAction(arguments); - else - LOG("Unknown behavior command (%s)\n", command.c_str()); + ControlBehaviorContext context(arguments, modelComponent, modelOwner); + + if (command == "sendBehaviorListToClient") { + SendBehaviorListToClient(context); + } else if (command == "modelTypeChanged") { + auto* modelType = arguments->Get<double>("ModelType"); + if (!modelType) return; + + modelEntity->SetVar<int>(u"modelType", modelType->GetValue()); + } else if (command == "toggleExecutionUpdates") { + // TODO + } else if (command == "addStrip") { + if (BehaviorMessageBase(context.arguments).IsDefaultBehaviorId()) RequestUpdatedID(context); + + context.modelComponent->HandleControlBehaviorsMsg<AddStripMessage>(context.arguments); + } else if (command == "removeStrip") { + context.modelComponent->HandleControlBehaviorsMsg<RemoveStripMessage>(arguments); + } else if (command == "mergeStrips") { + context.modelComponent->HandleControlBehaviorsMsg<MergeStripsMessage>(arguments); + } else if (command == "splitStrip") { + context.modelComponent->HandleControlBehaviorsMsg<SplitStripMessage>(arguments); + } else if (command == "updateStripUI") { + context.modelComponent->HandleControlBehaviorsMsg<UpdateStripUiMessage>(arguments); + } else if (command == "addAction") { + context.modelComponent->HandleControlBehaviorsMsg<AddActionMessage>(arguments); + } else if (command == "migrateActions") { + context.modelComponent->HandleControlBehaviorsMsg<MigrateActionsMessage>(arguments); + } else if (command == "rearrangeStrip") { + context.modelComponent->HandleControlBehaviorsMsg<RearrangeStripMessage>(arguments); + } else if (command == "add") { + AddMessage msg(context.arguments); + context.modelComponent->AddBehavior(msg); + SendBehaviorListToClient(context); + } else if (command == "removeActions") { + context.modelComponent->HandleControlBehaviorsMsg<RemoveActionsMessage>(arguments); + } else if (command == "rename") { + context.modelComponent->HandleControlBehaviorsMsg<RenameMessage>(arguments); + + // Send the list back to the client so the name is updated. + SendBehaviorListToClient(context); + } else if (command == "sendBehaviorBlocksToClient") { + SendBehaviorBlocksToClient(context); + } else if (command == "moveToInventory") { + MoveToInventoryMessage msg(arguments); + context.modelComponent->MoveToInventory(msg); + + AMFArrayValue args; + args.Insert("BehaviorID", std::to_string(msg.GetBehaviorId())); + GameMessages::SendUIMessageServerToSingleClient(modelOwner, modelOwner->GetParentUser()->GetSystemAddress(), "BehaviorRemoved", args); + + SendBehaviorListToClient(context); + } else if (command == "updateAction") { + context.modelComponent->HandleControlBehaviorsMsg<UpdateActionMessage>(arguments); + } else { + LOG("Unknown behavior command (%s)", command.c_str()); + } } ControlBehaviors::ControlBehaviors() { auto blocksBuffer = Game::assetManager->GetFile("ui\\ingame\\blocksdef.xml"); if (!blocksBuffer) { - LOG("Failed to open blocksdef.xml"); + LOG("Failed to open blocksdef.xml, property behaviors will be disabled for this zone! " + "(This is a necessary file for cheat detection and ensuring we do not send unexpected values to the client)"); return; } tinyxml2::XMLDocument m_Doc; - std::string read{}; + std::string read; - std::string buffer{}; + std::string buffer; bool commentBlockStart = false; while (std::getline(blocksBuffer, read)) { // tinyxml2 should handle comment blocks but the client has one that fails the processing. @@ -371,14 +207,14 @@ ControlBehaviors::ControlBehaviors() { while (block) { blockName = block->Name(); - BlockDefinition* blockDefinition = new BlockDefinition(); + auto& blockDefinition = blockTypes[blockName]; std::string name{}; std::string typeName{}; auto* argument = block->FirstChildElement("Argument"); if (argument) { auto* defaultDefinition = argument->FirstChildElement("DefaultValue"); - if (defaultDefinition) blockDefinition->SetDefaultValue(defaultDefinition->GetText()); + if (defaultDefinition) blockDefinition.SetDefaultValue(defaultDefinition->GetText()); auto* typeDefinition = argument->FirstChildElement("Type"); if (typeDefinition) typeName = typeDefinition->GetText(); @@ -388,23 +224,23 @@ ControlBehaviors::ControlBehaviors() { // Now we parse the blocksdef file for the relevant information if (typeName == "String") { - blockDefinition->SetMaximumValue(50); // The client has a hardcoded limit of 50 characters in a string field + blockDefinition.SetMaximumValue(50); // The client has a hardcoded limit of 50 characters in a string field } else if (typeName == "Float" || typeName == "Integer") { auto* maximumDefinition = argument->FirstChildElement("Maximum"); - if (maximumDefinition) blockDefinition->SetMaximumValue(std::stof(maximumDefinition->GetText())); + if (maximumDefinition) blockDefinition.SetMaximumValue(std::stof(maximumDefinition->GetText())); auto* minimumDefinition = argument->FirstChildElement("Minimum"); - if (minimumDefinition) blockDefinition->SetMinimumValue(std::stof(minimumDefinition->GetText())); + if (minimumDefinition) blockDefinition.SetMinimumValue(std::stof(minimumDefinition->GetText())); } else if (typeName == "Enumeration") { auto* values = argument->FirstChildElement("Values"); if (values) { auto* value = values->FirstChildElement("Value"); while (value) { - if (value->GetText() == blockDefinition->GetDefaultValue()) blockDefinition->GetDefaultValue() = std::to_string(blockDefinition->GetMaximumValue()); - blockDefinition->SetMaximumValue(blockDefinition->GetMaximumValue() + 1); + if (value->GetText() == blockDefinition.GetDefaultValue()) blockDefinition.GetDefaultValue() = std::to_string(blockDefinition.GetMaximumValue()); + blockDefinition.SetMaximumValue(blockDefinition.GetMaximumValue() + 1); value = value->NextSiblingElement("Value"); } - blockDefinition->SetMaximumValue(blockDefinition->GetMaximumValue() - 1); // Maximum value is 0 indexed + blockDefinition.SetMaximumValue(blockDefinition.GetMaximumValue() - 1); // Maximum value is 0 indexed } else { values = argument->FirstChildElement("EnumerationSource"); if (!values) { @@ -421,8 +257,8 @@ ControlBehaviors::ControlBehaviors() { std::string serviceName = serviceNameNode->GetText(); if (serviceName == "GetBehaviorSoundList") { auto res = CDClientDatabase::ExecuteQuery("SELECT MAX(id) as countSounds FROM UGBehaviorSounds;"); - blockDefinition->SetMaximumValue(res.getIntField("countSounds")); - blockDefinition->SetDefaultValue("0"); + blockDefinition.SetMaximumValue(res.getIntField("countSounds")); + blockDefinition.SetDefaultValue("0"); } else { LOG("Unsupported Enumeration ServiceType (%s)", serviceName.c_str()); continue; @@ -433,19 +269,18 @@ ControlBehaviors::ControlBehaviors() { continue; } } - blockTypes.insert(std::make_pair(blockName, blockDefinition)); block = block->NextSiblingElement(); } blockSections = blockSections->NextSiblingElement(); } isInitialized = true; LOG_DEBUG("Created all base block classes"); - for (auto b : blockTypes) { - LOG_DEBUG("block name is %s default %s min %f max %f", b.first.c_str(), b.second->GetDefaultValue().c_str(), b.second->GetMinimumValue(), b.second->GetMaximumValue()); + for (auto& [name, block] : blockTypes) { + LOG_DEBUG("block name is %s default %s min %f max %f", name.c_str(), block.GetDefaultValue().c_str(), block.GetMinimumValue(), block.GetMaximumValue()); } } -BlockDefinition* ControlBehaviors::GetBlockInfo(const BlockName& blockName) { +std::optional<BlockDefinition> ControlBehaviors::GetBlockInfo(const BlockName& blockName) { auto blockDefinition = blockTypes.find(blockName); - return blockDefinition != blockTypes.end() ? blockDefinition->second : nullptr; + return blockDefinition != blockTypes.end() ? std::optional(blockDefinition->second) : std::nullopt; } diff --git a/dGame/dPropertyBehaviors/ControlBehaviors.h b/dGame/dPropertyBehaviors/ControlBehaviors.h index a562aafe..ab739408 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviors.h +++ b/dGame/dPropertyBehaviors/ControlBehaviors.h @@ -4,12 +4,13 @@ #define __CONTROLBEHAVIORS__H__ #include <map> +#include <optional> #include <string> +#include "BlockDefinition.h" #include "Singleton.h" class AMFArrayValue; -class BlockDefinition; class Entity; class ModelComponent; class SystemAddress; @@ -17,6 +18,18 @@ class SystemAddress; // Type definition to clarify what is used where typedef std::string BlockName; //! A block name +struct ControlBehaviorContext { + ControlBehaviorContext(AMFArrayValue* args, ModelComponent* modelComponent, Entity* modelOwner) : arguments(args), modelComponent(modelComponent), modelOwner(modelOwner) {}; + + operator bool() const { + return arguments != nullptr && modelComponent != nullptr && modelOwner != nullptr; + } + + AMFArrayValue* arguments; + Entity* modelOwner; + ModelComponent* modelComponent; +}; + class ControlBehaviors: public Singleton<ControlBehaviors> { public: ControlBehaviors(); @@ -39,27 +52,13 @@ public: * * @return A pair of the block parameter name to its typing */ - BlockDefinition* GetBlockInfo(const BlockName& blockName); + std::optional<BlockDefinition> GetBlockInfo(const BlockName& blockName); private: - void RequestUpdatedID(int32_t behaviorID, ModelComponent* modelComponent, Entity* modelOwner, const SystemAddress& sysAddr); - void SendBehaviorListToClient(Entity* modelEntity, const SystemAddress& sysAddr, Entity* modelOwner); - void ModelTypeChanged(AMFArrayValue* arguments, ModelComponent* ModelComponent); - void ToggleExecutionUpdates(); - void AddStrip(AMFArrayValue* arguments); - void RemoveStrip(AMFArrayValue* arguments); - void MergeStrips(AMFArrayValue* arguments); - void SplitStrip(AMFArrayValue* arguments); - void UpdateStripUI(AMFArrayValue* arguments); - void AddAction(AMFArrayValue* arguments); - void MigrateActions(AMFArrayValue* arguments); - void RearrangeStrip(AMFArrayValue* arguments); - void Add(AMFArrayValue* arguments); - void RemoveActions(AMFArrayValue* arguments); - void Rename(Entity* modelEntity, const SystemAddress& sysAddr, Entity* modelOwner, AMFArrayValue* arguments); - void SendBehaviorBlocksToClient(ModelComponent* modelComponent, const SystemAddress& sysAddr, Entity* modelOwner, AMFArrayValue* arguments); + void RequestUpdatedID(ControlBehaviorContext& context); + void SendBehaviorListToClient(const ControlBehaviorContext& context); + void SendBehaviorBlocksToClient(ControlBehaviorContext& context); void UpdateAction(AMFArrayValue* arguments); - void MoveToInventory(ModelComponent* modelComponent, const SystemAddress& sysAddr, Entity* modelOwner, AMFArrayValue* arguments); - std::map<BlockName, BlockDefinition*> blockTypes{}; + std::map<BlockName, BlockDefinition> blockTypes{}; // If false, property behaviors will not be able to be edited. bool isInitialized = false; diff --git a/dGame/dPropertyBehaviors/PropertyBehavior.cpp b/dGame/dPropertyBehaviors/PropertyBehavior.cpp new file mode 100644 index 00000000..f6f6e4f1 --- /dev/null +++ b/dGame/dPropertyBehaviors/PropertyBehavior.cpp @@ -0,0 +1,131 @@ +#include "PropertyBehavior.h" + +#include "Amf3.h" +#include "BehaviorStates.h" +#include "ControlBehaviorMsgs.h" + +PropertyBehavior::PropertyBehavior() { + m_LastEditedState = BehaviorState::HOME_STATE; +} + +template<> +void PropertyBehavior::HandleMsg(AddStripMessage& msg) { + m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(AddActionMessage& msg) { + m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(RearrangeStripMessage& msg) { + m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(UpdateActionMessage& msg) { + m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(UpdateStripUiMessage& msg) { + m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(RemoveStripMessage& msg) { + m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(RemoveActionsMessage& msg) { + m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(SplitStripMessage& msg) { + m_States[msg.GetSourceActionContext().GetStateId()].HandleMsg(msg); + m_States[msg.GetDestinationActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetDestinationActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(MigrateActionsMessage& msg) { + m_States[msg.GetSourceActionContext().GetStateId()].HandleMsg(msg); + m_States[msg.GetDestinationActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetDestinationActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(MergeStripsMessage& msg) { + m_States[msg.GetSourceActionContext().GetStateId()].HandleMsg(msg); + m_States[msg.GetDestinationActionContext().GetStateId()].HandleMsg(msg); + m_LastEditedState = msg.GetDestinationActionContext().GetStateId(); +}; + +template<> +void PropertyBehavior::HandleMsg(RenameMessage& msg) { + m_Name = msg.GetName(); +}; + +template<> +void PropertyBehavior::HandleMsg(AddMessage& msg) { + // TODO Parse the corresponding behavior xml file. + m_BehaviorId = msg.GetBehaviorId(); + isLoot = m_BehaviorId != 7965; +}; + +void PropertyBehavior::SetBehaviorId(int32_t behaviorId) { + m_BehaviorId = behaviorId; +} + +void PropertyBehavior::SendBehaviorListToClient(AMFArrayValue& args) const { + args.Insert("id", std::to_string(m_BehaviorId)); + args.Insert("name", m_Name); + args.Insert("isLocked", isLocked); + args.Insert("isLoot", isLoot); +} + +void PropertyBehavior::VerifyLastEditedState() { + if (!m_States[m_LastEditedState].IsEmpty()) return; + + for (const auto& [stateId, state] : m_States) { + if (state.IsEmpty()) continue; + + LOG_DEBUG("Updating last edited state to %i because %i is empty.", stateId, m_LastEditedState); + m_LastEditedState = stateId; + return; + } + + LOG_DEBUG("No states found, sending default state"); + + m_LastEditedState = BehaviorState::HOME_STATE; +} + +void PropertyBehavior::SendBehaviorBlocksToClient(AMFArrayValue& args) const { + auto* stateArray = args.InsertArray("states"); + + auto lastState = BehaviorState::HOME_STATE; + for (auto& [stateId, state] : m_States) { + if (state.IsEmpty()) continue; + + LOG_DEBUG("Serializing state %i", stateId); + auto* stateArgs = stateArray->PushArray(); + stateArgs->Insert("id", static_cast<double>(stateId)); + state.SendBehaviorBlocksToClient(*stateArgs); + } + + auto* executionState = args.InsertArray("executionState"); + executionState->Insert("stateID", static_cast<double>(m_LastEditedState)); + executionState->InsertArray("strips"); + + // TODO Serialize the execution state of the behavior +} diff --git a/dGame/dPropertyBehaviors/PropertyBehavior.h b/dGame/dPropertyBehaviors/PropertyBehavior.h new file mode 100644 index 00000000..dc53bbed --- /dev/null +++ b/dGame/dPropertyBehaviors/PropertyBehavior.h @@ -0,0 +1,49 @@ +#ifndef __PROPERTYBEHAVIOR__H__ +#define __PROPERTYBEHAVIOR__H__ + +#include "State.h" + +enum class BehaviorState : uint32_t; + +class AMFArrayValue; + +/** + * Represents the Entity of a Property Behavior and holds data associated with the behavior + */ +class PropertyBehavior { +public: + PropertyBehavior(); + template<typename Msg> + void HandleMsg(Msg& msg); + + // If the last edited state has no strips, this method will set the last edited state to the first state that has strips. + void VerifyLastEditedState(); + void SendBehaviorListToClient(AMFArrayValue& args) const; + void SendBehaviorBlocksToClient(AMFArrayValue& args) const; + + int32_t GetBehaviorId() const { return m_BehaviorId; } + void SetBehaviorId(int32_t id); +private: + + // The states this behavior has. + std::map<BehaviorState, State> m_States; + + // The name of this behavior. + std::string m_Name = "New Behavior"; + + // Whether this behavior is locked and cannot be edited. + bool isLocked = false; + + // Whether this behavior is custom or pre-fab. + bool isLoot = false; + + // The last state that was edited. This is used so when the client re-opens the behavior editor, it will open to the last edited state. + // If the last edited state has no strips, it will open to the first state that has strips. + BehaviorState m_LastEditedState; + + // The behavior id for this behavior. This is expected to be fully unique, however an id of -1 means this behavior was just created + // and needs to be assigned an id. + int32_t m_BehaviorId = -1; +}; + +#endif //!__PROPERTYBEHAVIOR__H__ diff --git a/dGame/dPropertyBehaviors/State.cpp b/dGame/dPropertyBehaviors/State.cpp new file mode 100644 index 00000000..59a9aa8b --- /dev/null +++ b/dGame/dPropertyBehaviors/State.cpp @@ -0,0 +1,137 @@ +#include "State.h" + +#include "Amf3.h" +#include "ControlBehaviorMsgs.h" + +template<> +void State::HandleMsg(AddStripMessage& msg) { + if (m_Strips.size() <= msg.GetActionContext().GetStripId()) { + m_Strips.resize(msg.GetActionContext().GetStripId() + 1); + } + m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg); +}; + +template<> +void State::HandleMsg(AddActionMessage& msg) { + if (m_Strips.size() <= msg.GetActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg); +}; + +template<> +void State::HandleMsg(UpdateStripUiMessage& msg) { + if (m_Strips.size() <= msg.GetActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg); +}; + +template<> +void State::HandleMsg(RemoveActionsMessage& msg) { + if (m_Strips.size() <= msg.GetActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg); +}; + +template<> +void State::HandleMsg(RearrangeStripMessage& msg) { + if (m_Strips.size() <= msg.GetActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg); +}; + +template<> +void State::HandleMsg(UpdateActionMessage& msg) { + if (m_Strips.size() <= msg.GetActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg); +}; + +template<> +void State::HandleMsg(RemoveStripMessage& msg) { + if (m_Strips.size() <= msg.GetActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg); +}; + +template<> +void State::HandleMsg(SplitStripMessage& msg) { + if (msg.GetTransferredActions().empty()) { + if (m_Strips.size() <= msg.GetSourceActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetSourceActionContext().GetStripId()).HandleMsg(msg); + } else { + if (m_Strips.size() <= msg.GetDestinationActionContext().GetStripId()) { + m_Strips.resize(msg.GetDestinationActionContext().GetStripId() + 1); + } + + m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg); + } +}; + +template<> +void State::HandleMsg(MergeStripsMessage& msg) { + if (msg.GetMigratedActions().empty()) { + if (m_Strips.size() <= msg.GetSourceActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetSourceActionContext().GetStripId()).HandleMsg(msg); + } else { + if (m_Strips.size() <= msg.GetDestinationActionContext().GetStripId()) { + m_Strips.resize(msg.GetDestinationActionContext().GetStripId() + 1); + } + + m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg); + } +}; + +template<> +void State::HandleMsg(MigrateActionsMessage& msg) { + if (msg.GetMigratedActions().empty()) { + if (m_Strips.size() <= msg.GetSourceActionContext().GetStripId()) { + return; + } + + m_Strips.at(msg.GetSourceActionContext().GetStripId()).HandleMsg(msg); + } else { + if (m_Strips.size() <= msg.GetDestinationActionContext().GetStripId()) { + m_Strips.resize(msg.GetDestinationActionContext().GetStripId() + 1); + } + + m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg); + } +}; + +bool State::IsEmpty() const { + for (auto& strip : m_Strips) { + if (!strip.IsEmpty()) return false; + } + return true; +} + +void State::SendBehaviorBlocksToClient(AMFArrayValue& args) const { + auto* strips = args.InsertArray("strips"); + for (int32_t stripId = 0; stripId < m_Strips.size(); stripId++) { + auto& strip = m_Strips.at(stripId); + if (strip.IsEmpty()) continue; + + auto* stripArgs = strips->PushArray(); + stripArgs->Insert("id", static_cast<double>(stripId)); + + strip.SendBehaviorBlocksToClient(*stripArgs); + } +}; diff --git a/dGame/dPropertyBehaviors/State.h b/dGame/dPropertyBehaviors/State.h new file mode 100644 index 00000000..a6a6d23b --- /dev/null +++ b/dGame/dPropertyBehaviors/State.h @@ -0,0 +1,19 @@ +#ifndef __STATE__H__ +#define __STATE__H__ + +#include "Strip.h" + +class AMFArrayValue; + +class State { +public: + template<typename Msg> + void HandleMsg(Msg& msg); + + void SendBehaviorBlocksToClient(AMFArrayValue& args) const; + bool IsEmpty() const; +private: + std::vector<Strip> m_Strips; +}; + +#endif //!__STATE__H__ diff --git a/dGame/dPropertyBehaviors/Strip.cpp b/dGame/dPropertyBehaviors/Strip.cpp new file mode 100644 index 00000000..7d27cacd --- /dev/null +++ b/dGame/dPropertyBehaviors/Strip.cpp @@ -0,0 +1,87 @@ +#include "Strip.h" + +#include "Amf3.h" +#include "ControlBehaviorMsgs.h" + +template<> +void Strip::HandleMsg(AddStripMessage& msg) { + m_Actions = msg.GetActionsToAdd(); + m_Position = msg.GetPosition(); +}; + +template<> +void Strip::HandleMsg(AddActionMessage& msg) { + if (msg.GetActionIndex() == -1) return; + + m_Actions.insert(m_Actions.begin() + msg.GetActionIndex(), msg.GetAction()); +}; + +template<> +void Strip::HandleMsg(UpdateStripUiMessage& msg) { + m_Position = msg.GetPosition(); +}; + +template<> +void Strip::HandleMsg(RemoveStripMessage& msg) { + m_Actions.clear(); +}; + +template<> +void Strip::HandleMsg(RemoveActionsMessage& msg) { + if (msg.GetActionIndex() >= m_Actions.size()) return; + m_Actions.erase(m_Actions.begin() + msg.GetActionIndex(), m_Actions.end()); +}; + +template<> +void Strip::HandleMsg(UpdateActionMessage& msg) { + if (msg.GetActionIndex() >= m_Actions.size()) return; + m_Actions.at(msg.GetActionIndex()) = msg.GetAction(); +}; + +template<> +void Strip::HandleMsg(RearrangeStripMessage& msg) { + if (msg.GetDstActionIndex() >= m_Actions.size() || msg.GetSrcActionIndex() >= m_Actions.size() || msg.GetSrcActionIndex() <= msg.GetDstActionIndex()) return; + std::rotate(m_Actions.begin() + msg.GetDstActionIndex(), m_Actions.begin() + msg.GetSrcActionIndex(), m_Actions.end()); +}; + +template<> +void Strip::HandleMsg(SplitStripMessage& msg) { + if (msg.GetTransferredActions().empty() && !m_Actions.empty()) { + auto startToMove = m_Actions.begin() + msg.GetSrcActionIndex(); + msg.SetTransferredActions(startToMove, m_Actions.end()); + m_Actions.erase(startToMove, m_Actions.end()); + } else { + m_Actions = msg.GetTransferredActions(); + m_Position = msg.GetPosition(); + } +}; + +template<> +void Strip::HandleMsg(MergeStripsMessage& msg) { + if (msg.GetMigratedActions().empty() && !m_Actions.empty()) { + msg.SetMigratedActions(m_Actions.begin(), m_Actions.end()); + m_Actions.erase(m_Actions.begin(), m_Actions.end()); + } else { + m_Actions.insert(m_Actions.begin() + msg.GetDstActionIndex(), msg.GetMigratedActions().begin(), msg.GetMigratedActions().end()); + } +}; + +template<> +void Strip::HandleMsg(MigrateActionsMessage& msg) { + if (msg.GetMigratedActions().empty() && !m_Actions.empty()) { + auto startToMove = m_Actions.begin() + msg.GetSrcActionIndex(); + msg.SetMigratedActions(startToMove, m_Actions.end()); + m_Actions.erase(startToMove, m_Actions.end()); + } else { + m_Actions.insert(m_Actions.begin() + msg.GetDstActionIndex(), msg.GetMigratedActions().begin(), msg.GetMigratedActions().end()); + } +}; + +void Strip::SendBehaviorBlocksToClient(AMFArrayValue& args) const { + m_Position.SendBehaviorBlocksToClient(args); + + auto* actions = args.InsertArray("actions"); + for (auto& action : m_Actions) { + action.SendBehaviorBlocksToClient(*actions); + } +}; diff --git a/dGame/dPropertyBehaviors/Strip.h b/dGame/dPropertyBehaviors/Strip.h new file mode 100644 index 00000000..f3e10964 --- /dev/null +++ b/dGame/dPropertyBehaviors/Strip.h @@ -0,0 +1,23 @@ +#ifndef __STRIP__H__ +#define __STRIP__H__ + +#include "Action.h" +#include "StripUiPosition.h" + +#include <vector> + +class AMFArrayValue; + +class Strip { +public: + template<typename Msg> + void HandleMsg(Msg& msg); + + void SendBehaviorBlocksToClient(AMFArrayValue& args) const; + bool IsEmpty() const { return m_Actions.empty(); } +private: + std::vector<Action> m_Actions; + StripUiPosition m_Position; +}; + +#endif //!__STRIP__H__ From 10baa98f00db42a7e40792faf2f9aa6859e30708 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 3 Jan 2024 05:41:35 -0800 Subject: [PATCH 079/106] Update build-and-push-docker.yml (#1385) change name to be caps like the other --- .github/workflows/build-and-push-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-push-docker.yml b/.github/workflows/build-and-push-docker.yml index 8f9b3720..e4bffabe 100644 --- a/.github/workflows/build-and-push-docker.yml +++ b/.github/workflows/build-and-push-docker.yml @@ -1,4 +1,4 @@ -name: ci +name: CI on: push: From d283bbd1c453956c280f18dc1b53b823c7269e5b Mon Sep 17 00:00:00 2001 From: Daniel Seiler <me@xiphoseer.de> Date: Thu, 4 Jan 2024 01:41:46 +0100 Subject: [PATCH 080/106] fix: split apart big Cmake libraries (#1381) * fix: split apart big Cmake libraries * fix: formatting * fix: newline * fix: add quotes --- CMakeLists.txt | 78 ------------------ dGame/CMakeLists.txt | 61 ++++---------- dGame/dBehaviors/CMakeLists.txt | 7 +- dGame/dComponents/CMakeLists.txt | 11 ++- dGame/dEntity/CMakeLists.txt | 9 +- dGame/dGameMessages/CMakeLists.txt | 9 +- dGame/dInventory/CMakeLists.txt | 8 +- dGame/dMission/CMakeLists.txt | 9 +- dGame/dPropertyBehaviors/CMakeLists.txt | 3 +- dGame/dUtilities/CMakeLists.txt | 8 +- dNet/CMakeLists.txt | 8 +- dPhysics/CMakeLists.txt | 4 +- dScripts/02_server/CMakeLists.txt | 25 +++--- dScripts/02_server/Enemy/CMakeLists.txt | 13 ++- dScripts/02_server/Map/AG/CMakeLists.txt | 7 +- .../Map/AG_Spider_Queen/CMakeLists.txt | 8 +- dScripts/02_server/Map/AM/CMakeLists.txt | 7 +- dScripts/02_server/Map/CMakeLists.txt | 82 ++++--------------- dScripts/02_server/Map/FV/CMakeLists.txt | 4 +- dScripts/02_server/Map/GF/CMakeLists.txt | 7 +- dScripts/02_server/Map/General/CMakeLists.txt | 5 +- dScripts/02_server/Map/NS/CMakeLists.txt | 4 +- dScripts/02_server/Map/NT/CMakeLists.txt | 7 +- dScripts/02_server/Map/PR/CMakeLists.txt | 7 +- .../02_server/Map/Property/CMakeLists.txt | 7 +- dScripts/02_server/Map/SS/CMakeLists.txt | 7 +- dScripts/02_server/Map/VE/CMakeLists.txt | 7 +- dScripts/02_server/Map/njhub/CMakeLists.txt | 9 +- dScripts/02_server/Pets/CMakeLists.txt | 8 +- dScripts/CMakeLists.txt | 58 ++++++------- dScripts/EquipmentScripts/CMakeLists.txt | 7 +- dScripts/EquipmentTriggers/CMakeLists.txt | 7 +- .../Map/General => }/InvalidScript.cpp | 0 .../Map/General => }/InvalidScript.h | 0 dScripts/ai/ACT/CMakeLists.txt | 4 +- dScripts/ai/AG/CMakeLists.txt | 7 +- dScripts/ai/CMakeLists.txt | 81 ++++-------------- dScripts/ai/FV/CMakeLists.txt | 8 +- dScripts/ai/GENERAL/CMakeLists.txt | 8 +- dScripts/ai/GF/CMakeLists.txt | 7 +- dScripts/ai/MINIGAME/CMakeLists.txt | 4 +- dScripts/ai/NP/CMakeLists.txt | 7 +- dScripts/ai/NS/CMakeLists.txt | 6 +- dScripts/ai/PETS/CMakeLists.txt | 7 +- dScripts/ai/PROPERTY/CMakeLists.txt | 4 +- dScripts/ai/RACING/CMakeLists.txt | 4 +- dScripts/ai/SPEC/CMakeLists.txt | 7 +- dScripts/ai/WILD/CMakeLists.txt | 7 +- dScripts/client/CMakeLists.txt | 4 +- dScripts/zone/CMakeLists.txt | 10 ++- dZoneManager/CMakeLists.txt | 4 +- 51 files changed, 312 insertions(+), 368 deletions(-) rename dScripts/{02_server/Map/General => }/InvalidScript.cpp (100%) rename dScripts/{02_server/Map/General => }/InvalidScript.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d30a63e..91a26dc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -237,78 +237,6 @@ set(INCLUDED_DIRECTORIES "dNet" - "dScripts" - "dScripts/02_server" - "dScripts/ai" - "dScripts/client" - "dScripts/EquipmentScripts" - "dScripts/EquipmentTriggers" - "dScripts/zone" - "dScripts/02_server/DLU" - "dScripts/02_server/Enemy" - "dScripts/02_server/Equipment" - "dScripts/02_server/Map" - "dScripts/02_server/Minigame" - "dScripts/02_server/Objects" - "dScripts/02_server/Pets" - "dScripts/02_server/Enemy/AG" - "dScripts/02_server/Enemy/AM" - "dScripts/02_server/Enemy/FV" - "dScripts/02_server/Enemy/General" - "dScripts/02_server/Enemy/Survival" - "dScripts/02_server/Enemy/VE" - "dScripts/02_server/Enemy/Waves" - "dScripts/02_server/Map/AG" - "dScripts/02_server/Map/AG_Spider_Queen" - "dScripts/02_server/Map/AM" - "dScripts/02_server/Map/FV" - "dScripts/02_server/Map/General" - "dScripts/02_server/Map/GF" - "dScripts/02_server/Map/njhub" - "dScripts/02_server/Map/NS" - "dScripts/02_server/Map/NT" - "dScripts/02_server/Map/PR" - "dScripts/02_server/Map/Property" - "dScripts/02_server/Map/SS" - "dScripts/02_server/Map/VE" - "dScripts/02_server/Map/FV/Racing" - "dScripts/02_server/Map/General/Ninjago" - "dScripts/02_server/Map/njhub/boss_instance" - "dScripts/02_server/Map/NS/Waves" - "dScripts/02_server/Map/Property/AG_Med" - "dScripts/02_server/Map/Property/AG_Small" - "dScripts/02_server/Map/Property/NS_Med" - "dScripts/02_server/Minigame/General" - "dScripts/ai/ACT" - "dScripts/ai/AG" - "dScripts/ai/FV" - "dScripts/ai/GENERAL" - "dScripts/ai/GF" - "dScripts/ai/MINIGAME" - "dScripts/ai/MINIGAME/Objects" - "dScripts/ai/NP" - "dScripts/ai/NS" - "dScripts/ai/PETS" - "dScripts/ai/PROPERTY" - "dScripts/ai/RACING" - "dScripts/ai/SPEC" - "dScripts/ai/WILD" - "dScripts/ai/ACT/FootRace" - "dScripts/ai/MINIGAME/SG_GF" - "dScripts/ai/MINIGAME/SG_GF/SERVER" - "dScripts/ai/NS/NS_PP_01" - "dScripts/ai/NS/WH" - "dScripts/ai/PROPERTY/AG" - "dScripts/ai/RACING/OBJECTS" - "dScripts/client/ai" - "dScripts/client/ai/PR" - "dScripts/zone/AG" - "dScripts/zone/LUPs" - "dScripts/zone/PROPERTY" - "dScripts/zone/PROPERTY/FV" - "dScripts/zone/PROPERTY/GF" - "dScripts/zone/PROPERTY/NS" - "thirdparty/magic_enum/include/magic_enum" "thirdparty/raknet/Source" "thirdparty/tinyxml2" @@ -404,12 +332,6 @@ add_subdirectory(dAuthServer) add_subdirectory(dChatServer) add_subdirectory(dMasterServer) # Add MasterServer last so it can rely on the other binaries -# Add our precompiled headers -target_precompile_headers( - dGame PRIVATE - ${HEADERS_DGAME} -) - target_precompile_headers( dZoneManager PRIVATE ${HEADERS_DZONEMANAGER} diff --git a/dGame/CMakeLists.txt b/dGame/CMakeLists.txt index 80f16042..ac7f38cc 100644 --- a/dGame/CMakeLists.txt +++ b/dGame/CMakeLists.txt @@ -8,58 +8,27 @@ set(DGAME_SOURCES "Character.cpp" "User.cpp" "UserManager.cpp") +include_directories( + ${PROJECT_SOURCE_DIR}/dScripts + ${PROJECT_SOURCE_DIR}/dGame +) + +add_library(dGameBase ${DGAME_SOURCES}) +target_precompile_headers(dGameBase PRIVATE ${HEADERS_DGAME}) +target_link_libraries(dGameBase + PUBLIC dDatabase dPhysics + INTERFACE dComponents dEntity) + add_subdirectory(dBehaviors) - -foreach(file ${DGAME_DBEHAVIORS_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dBehaviors/${file}") -endforeach() - add_subdirectory(dComponents) - -foreach(file ${DGAME_DCOMPONENTS_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dComponents/${file}") -endforeach() - add_subdirectory(dEntity) - -foreach(file ${DGAME_DENTITY_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dEntity/${file}") -endforeach() - add_subdirectory(dGameMessages) - -foreach(file ${DGAME_DGAMEMESSAGES_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dGameMessages/${file}") -endforeach() - add_subdirectory(dInventory) - -foreach(file ${DGAME_DINVENTORY_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dInventory/${file}") -endforeach() - add_subdirectory(dMission) - -foreach(file ${DGAME_DMISSION_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dMission/${file}") -endforeach() - add_subdirectory(dPropertyBehaviors) - -foreach(file ${DGAME_DPROPERTYBEHAVIORS_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dPropertyBehaviors/${file}") -endforeach() - add_subdirectory(dUtilities) -foreach(file ${DGAME_DUTILITIES_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "dUtilities/${file}") -endforeach() - -foreach(file ${DSCRIPTS_SOURCES}) - set(DGAME_SOURCES ${DGAME_SOURCES} "${PROJECT_SOURCE_DIR}/dScripts/${file}") -endforeach() - -add_library(dGame STATIC ${DGAME_SOURCES}) - -target_link_libraries(dGame dDatabase Recast Detour) +add_library(dGame INTERFACE) +target_link_libraries(dGame INTERFACE + dGameBase dBehaviors dComponents dEntity dGameMessages dInventory dMission dPropertyBehaviors dUtilities dScripts +) diff --git a/dGame/dBehaviors/CMakeLists.txt b/dGame/dBehaviors/CMakeLists.txt index d1926525..c8cb0be0 100644 --- a/dGame/dBehaviors/CMakeLists.txt +++ b/dGame/dBehaviors/CMakeLists.txt @@ -54,4 +54,9 @@ set(DGAME_DBEHAVIORS_SOURCES "AirMovementBehavior.cpp" "TargetCasterBehavior.cpp" "TauntBehavior.cpp" "VentureVisionBehavior.cpp" - "VerifyBehavior.cpp" PARENT_SCOPE) + "VerifyBehavior.cpp") + +add_library(dBehaviors STATIC ${DGAME_DBEHAVIORS_SOURCES}) +target_link_libraries(dBehaviors PUBLIC dPhysics) +target_include_directories(dBehaviors PUBLIC ".") +target_precompile_headers(dBehaviors REUSE_FROM dGameBase) diff --git a/dGame/dComponents/CMakeLists.txt b/dGame/dComponents/CMakeLists.txt index d0bb89d3..b14d0eb8 100644 --- a/dGame/dComponents/CMakeLists.txt +++ b/dGame/dComponents/CMakeLists.txt @@ -1,4 +1,5 @@ -set(DGAME_DCOMPONENTS_SOURCES "ActivityComponent.cpp" +set(DGAME_DCOMPONENTS_SOURCES + "ActivityComponent.cpp" "BaseCombatAIComponent.cpp" "BouncerComponent.cpp" "BuffComponent.cpp" @@ -46,5 +47,11 @@ set(DGAME_DCOMPONENTS_SOURCES "ActivityComponent.cpp" "HavokVehiclePhysicsComponent.cpp" "VendorComponent.cpp" "MiniGameControlComponent.cpp" - PARENT_SCOPE ) + +add_library(dComponents STATIC ${DGAME_DCOMPONENTS_SOURCES}) +target_include_directories(dComponents PRIVATE ${PROJECT_SOURCE_DIR}/dScripts/02_server/Map/General) # PetDigServer.h +target_precompile_headers(dComponents REUSE_FROM dGameBase) +target_link_libraries(dComponents + PUBLIC dPhysics dDatabase + INTERFACE dUtilities dCommon dBehaviors dChatFilter dMission dInventory) diff --git a/dGame/dEntity/CMakeLists.txt b/dGame/dEntity/CMakeLists.txt index 4bb49799..d7d96e14 100644 --- a/dGame/dEntity/CMakeLists.txt +++ b/dGame/dEntity/CMakeLists.txt @@ -1,2 +1,7 @@ -set(DGAME_DENTITY_SOURCES "EntityCallbackTimer.cpp" - "EntityTimer.cpp" PARENT_SCOPE) +set(DGAME_DENTITY_SOURCES + "EntityCallbackTimer.cpp" + "EntityTimer.cpp") + +add_library(dEntity STATIC ${DGAME_DENTITY_SOURCES}) +target_include_directories(dEntity PUBLIC ".") +target_precompile_headers(dEntity REUSE_FROM dGameBase) diff --git a/dGame/dGameMessages/CMakeLists.txt b/dGame/dGameMessages/CMakeLists.txt index 3c3cb53f..7373633c 100644 --- a/dGame/dGameMessages/CMakeLists.txt +++ b/dGame/dGameMessages/CMakeLists.txt @@ -1,4 +1,9 @@ -set(DGAME_DGAMEMESSAGES_SOURCES "GameMessageHandler.cpp" +set(DGAME_DGAMEMESSAGES_SOURCES + "GameMessageHandler.cpp" "GameMessages.cpp" "PropertyDataMessage.cpp" - "PropertySelectQueryProperty.cpp" PARENT_SCOPE) + "PropertySelectQueryProperty.cpp") + +add_library(dGameMessages STATIC ${DGAME_DGAMEMESSAGES_SOURCES}) +target_link_libraries(dGameMessages PUBLIC dDatabase) +target_precompile_headers(dGameMessages REUSE_FROM dGameBase) diff --git a/dGame/dInventory/CMakeLists.txt b/dGame/dInventory/CMakeLists.txt index 60cfca75..a663a97d 100644 --- a/dGame/dInventory/CMakeLists.txt +++ b/dGame/dInventory/CMakeLists.txt @@ -1,5 +1,9 @@ -set(DGAME_DINVENTORY_SOURCES "EquippedItem.cpp" +set(DGAME_DINVENTORY_SOURCES + "EquippedItem.cpp" "Inventory.cpp" "Item.cpp" "ItemSet.cpp" - "ItemSetPassiveAbility.cpp" PARENT_SCOPE) + "ItemSetPassiveAbility.cpp") + +add_library(dInventory STATIC ${DGAME_DINVENTORY_SOURCES}) +target_precompile_headers(dInventory REUSE_FROM dGameBase) diff --git a/dGame/dMission/CMakeLists.txt b/dGame/dMission/CMakeLists.txt index 652c3cb2..4e4bdec2 100644 --- a/dGame/dMission/CMakeLists.txt +++ b/dGame/dMission/CMakeLists.txt @@ -1,3 +1,8 @@ -set(DGAME_DMISSION_SOURCES "Mission.cpp" +set(DGAME_DMISSION_SOURCES + "Mission.cpp" "MissionPrerequisites.cpp" - "MissionTask.cpp" PARENT_SCOPE) + "MissionTask.cpp") + +add_library(dMission STATIC ${DGAME_DMISSION_SOURCES}) +target_link_libraries(dMission PUBLIC dDatabase) +target_precompile_headers(dMission REUSE_FROM dGameBase) diff --git a/dGame/dPropertyBehaviors/CMakeLists.txt b/dGame/dPropertyBehaviors/CMakeLists.txt index 8bffa906..47c8ff23 100644 --- a/dGame/dPropertyBehaviors/CMakeLists.txt +++ b/dGame/dPropertyBehaviors/CMakeLists.txt @@ -12,4 +12,5 @@ foreach(file ${DGAME_DPROPERTYBEHAVIORS_CONTROLBEHAVIORMESSAGES}) set(DGAME_DPROPERTYBEHAVIORS_SOURCES ${DGAME_DPROPERTYBEHAVIORS_SOURCES} "ControlBehaviorMessages/${file}") endforeach() -set(DGAME_DPROPERTYBEHAVIORS_SOURCES ${DGAME_DPROPERTYBEHAVIORS_SOURCES} PARENT_SCOPE) +add_library(dPropertyBehaviors STATIC ${DGAME_DPROPERTYBEHAVIORS_SOURCES}) +target_precompile_headers(dPropertyBehaviors REUSE_FROM dGameBase) diff --git a/dGame/dUtilities/CMakeLists.txt b/dGame/dUtilities/CMakeLists.txt index 639f9cf4..b6bb6059 100644 --- a/dGame/dUtilities/CMakeLists.txt +++ b/dGame/dUtilities/CMakeLists.txt @@ -5,4 +5,10 @@ set(DGAME_DUTILITIES_SOURCES "BrickDatabase.cpp" "Mail.cpp" "Preconditions.cpp" "SlashCommandHandler.cpp" - "VanityUtilities.cpp" PARENT_SCOPE) + "VanityUtilities.cpp") + +add_library(dUtilities STATIC ${DGAME_DUTILITIES_SOURCES}) +target_precompile_headers(dUtilities REUSE_FROM dGameBase) +target_link_libraries(dUtilities + PUBLIC dDatabase dPhysics + INTERFACE dZoneManager) diff --git a/dNet/CMakeLists.txt b/dNet/CMakeLists.txt index 938c0449..b4b77c82 100644 --- a/dNet/CMakeLists.txt +++ b/dNet/CMakeLists.txt @@ -8,4 +8,10 @@ set(DNET_SOURCES "AuthPackets.cpp" "ZoneInstanceManager.cpp") add_library(dNet STATIC ${DNET_SOURCES}) -target_link_libraries(dNet dCommon dDatabase) +target_include_directories(dNet PRIVATE + ${PROJECT_SOURCE_DIR}/dGame/dComponents + ${PROJECT_SOURCE_DIR}/dScripts # transitive through components +) +target_link_libraries(dNet + PUBLIC dCommon dDatabase + INTERFACE dZoneManager) diff --git a/dPhysics/CMakeLists.txt b/dPhysics/CMakeLists.txt index 5fe6adaa..340e4c3c 100644 --- a/dPhysics/CMakeLists.txt +++ b/dPhysics/CMakeLists.txt @@ -7,4 +7,6 @@ set(DPHYSICS_SOURCES "dpCollisionChecks.cpp" "dpWorld.cpp") add_library(dPhysics STATIC ${DPHYSICS_SOURCES}) -target_link_libraries(dPhysics Recast Detour) +target_link_libraries(dPhysics + PUBLIC Recast Detour + INTERFACE dNavigation) diff --git a/dScripts/02_server/CMakeLists.txt b/dScripts/02_server/CMakeLists.txt index 1e38386f..51eb24c8 100644 --- a/dScripts/02_server/CMakeLists.txt +++ b/dScripts/02_server/CMakeLists.txt @@ -8,10 +8,6 @@ endforeach() add_subdirectory(Enemy) -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_ENEMY}) - set(DSCRIPTS_SOURCES_02_SERVER ${DSCRIPTS_SOURCES_02_SERVER} "Enemy/${file}") -endforeach() - add_subdirectory(Equipment) foreach(file ${DSCRIPTS_SOURCES_02_SERVER_EQUIPMENT}) @@ -20,10 +16,6 @@ endforeach() add_subdirectory(Map) -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP}) - set(DSCRIPTS_SOURCES_02_SERVER ${DSCRIPTS_SOURCES_02_SERVER} "Map/${file}") -endforeach() - add_subdirectory(Minigame) foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MINIGAME}) @@ -38,8 +30,15 @@ endforeach() add_subdirectory(Pets) -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_PETS}) - set(DSCRIPTS_SOURCES_02_SERVER ${DSCRIPTS_SOURCES_02_SERVER} "Pets/${file}") -endforeach() - -set(DSCRIPTS_SOURCES_02_SERVER ${DSCRIPTS_SOURCES_02_SERVER} PARENT_SCOPE) +add_library(dScriptsServer STATIC ${DSCRIPTS_SOURCES_02_SERVER}) +target_include_directories(dScriptsServer PUBLIC "." + "DLU" + "Equipment" + "Minigame" + "Minigame/General" + "Objects" + "Pets") +target_link_libraries(dScriptsServer INTERFACE + dScriptsServerEnemy + dScriptsServerMap) +target_precompile_headers(dScriptsServer REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Enemy/CMakeLists.txt b/dScripts/02_server/Enemy/CMakeLists.txt index 408ff733..62f61772 100644 --- a/dScripts/02_server/Enemy/CMakeLists.txt +++ b/dScripts/02_server/Enemy/CMakeLists.txt @@ -42,4 +42,15 @@ foreach(file ${DSCRIPTS_SOURCES_02_SERVER_ENEMY_WAVES}) set(DSCRIPTS_SOURCES_02_SERVER_ENEMY ${DSCRIPTS_SOURCES_02_SERVER_ENEMY} "Waves/${file}") endforeach() -set(DSCRIPTS_SOURCES_02_SERVER_ENEMY ${DSCRIPTS_SOURCES_02_SERVER_ENEMY} PARENT_SCOPE) +add_library(dScriptsServerEnemy STATIC ${DSCRIPTS_SOURCES_02_SERVER_ENEMY}) +target_link_libraries(dScriptsServerEnemy dScriptsBase) +target_include_directories(dScriptsServerEnemy PUBLIC "." + "AG" + "AM" + "FV" + "General" + "Survival" + "VE" + "Waves" +) +target_precompile_headers(dScriptsServerEnemy REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/AG/CMakeLists.txt b/dScripts/02_server/Map/AG/CMakeLists.txt index df26dee4..a8315398 100644 --- a/dScripts/02_server/Map/AG/CMakeLists.txt +++ b/dScripts/02_server/Map/AG/CMakeLists.txt @@ -12,5 +12,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_AG "AgMonumentRaceGoal.cpp" "AgMonumentRaceCancel.cpp" "NpcCowboyServer.cpp" - "NpcPirateServer.cpp" - PARENT_SCOPE) + "NpcPirateServer.cpp") + +add_library(dScriptsServerMapAG ${DSCRIPTS_SOURCES_02_SERVER_MAP_AG}) +target_include_directories(dScriptsServerMapAG PUBLIC ".") +target_precompile_headers(dScriptsServerMapAG REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/AG_Spider_Queen/CMakeLists.txt b/dScripts/02_server/Map/AG_Spider_Queen/CMakeLists.txt index f4204c13..65019afe 100644 --- a/dScripts/02_server/Map/AG_Spider_Queen/CMakeLists.txt +++ b/dScripts/02_server/Map/AG_Spider_Queen/CMakeLists.txt @@ -1,4 +1,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_AG_SPIDER_QUEEN "ZoneAgSpiderQueen.cpp" - "SpiderBossTreasureChestServer.cpp" - PARENT_SCOPE) + "SpiderBossTreasureChestServer.cpp") + +add_library(dScriptsServerMapAGSpiderQueen ${DSCRIPTS_SOURCES_02_SERVER_MAP_AG_SPIDER_QUEEN}) +target_include_directories(dScriptsServerMapAGSpiderQueen PUBLIC ".") +target_link_libraries(dScriptsServerMapAGSpiderQueen dScriptsServerMapProperty) +target_precompile_headers(dScriptsServerMapAGSpiderQueen REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/AM/CMakeLists.txt b/dScripts/02_server/Map/AM/CMakeLists.txt index d3d13b73..177b3c45 100644 --- a/dScripts/02_server/Map/AM/CMakeLists.txt +++ b/dScripts/02_server/Map/AM/CMakeLists.txt @@ -15,5 +15,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_AM "AmSkullkinDrillStand.cpp" "AmSkullkinTower.cpp" "AmBlueX.cpp" - "AmTeapotServer.cpp" - PARENT_SCOPE) + "AmTeapotServer.cpp") + +add_library(dScriptsServerMapAM ${DSCRIPTS_SOURCES_02_SERVER_MAP_AM}) +target_include_directories(dScriptsServerMapAM PUBLIC ".") +target_precompile_headers(dScriptsServerMapAM REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/CMakeLists.txt b/dScripts/02_server/Map/CMakeLists.txt index feed8a97..a5fb5b03 100644 --- a/dScripts/02_server/Map/CMakeLists.txt +++ b/dScripts/02_server/Map/CMakeLists.txt @@ -1,81 +1,29 @@ -set(DSCRIPTS_SOURCES_02_SERVER_MAP) - add_subdirectory(AG) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_AG}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "AG/${file}") -endforeach() - add_subdirectory(AG_Spider_Queen) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_AG_SPIDER_QUEEN}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "AG_Spider_Queen/${file}") -endforeach() - add_subdirectory(AM) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_AM}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "AM/${file}") -endforeach() - add_subdirectory(FV) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_FV}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "FV/${file}") -endforeach() - add_subdirectory(General) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "General/${file}") -endforeach() - add_subdirectory(GF) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_GF}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "GF/${file}") -endforeach() - add_subdirectory(njhub) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_NJHUB}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "njhub/${file}") -endforeach() - add_subdirectory(NS) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_NS}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "NS/${file}") -endforeach() - add_subdirectory(NT) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_NT}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "NT/${file}") -endforeach() - add_subdirectory(PR) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_PR}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "PR/${file}") -endforeach() - add_subdirectory(Property) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_PROPERTY}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "Property/${file}") -endforeach() - add_subdirectory(SS) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_SS}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "SS/${file}") -endforeach() - add_subdirectory(VE) -foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_VE}) - set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} "VE/${file}") -endforeach() - -set(DSCRIPTS_SOURCES_02_SERVER_MAP ${DSCRIPTS_SOURCES_02_SERVER_MAP} PARENT_SCOPE) +add_library(dScriptsServerMap INTERFACE) +target_link_libraries(dScriptsServerMap INTERFACE + dScriptsServerMapAG + dScriptsServerMapAGSpiderQueen + dScriptsServerMapAM + dScriptsServerMapFV + dScriptsServerMapGeneral + dScriptsServerMapGF + dScriptsServerMapNJHub + dScriptsServerMapNS + dScriptsServerMapNT + dScriptsServerMapPR + dScriptsServerMapProperty + dScriptsServerMapSS + dScriptsServerMapVE) diff --git a/dScripts/02_server/Map/FV/CMakeLists.txt b/dScripts/02_server/Map/FV/CMakeLists.txt index 505d97c4..6f774c98 100644 --- a/dScripts/02_server/Map/FV/CMakeLists.txt +++ b/dScripts/02_server/Map/FV/CMakeLists.txt @@ -11,4 +11,6 @@ foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_FV_RACING}) set(DSCRIPTS_SOURCES_02_SERVER_MAP_FV ${DSCRIPTS_SOURCES_02_SERVER_MAP_FV} "Racing/${file}") endforeach() -set(DSCRIPTS_SOURCES_02_SERVER_MAP_FV ${DSCRIPTS_SOURCES_02_SERVER_MAP_FV} PARENT_SCOPE) +add_library(dScriptsServerMapFV ${DSCRIPTS_SOURCES_02_SERVER_MAP_FV}) +target_include_directories(dScriptsServerMapFV PUBLIC "." "Racing") +target_precompile_headers(dScriptsServerMapFV REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/GF/CMakeLists.txt b/dScripts/02_server/Map/GF/CMakeLists.txt index 90cc38a5..45ec871a 100644 --- a/dScripts/02_server/Map/GF/CMakeLists.txt +++ b/dScripts/02_server/Map/GF/CMakeLists.txt @@ -2,5 +2,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_GF "GfTikiTorch.cpp" "GfCaptainsCannon.cpp" "MastTeleport.cpp" - "SpawnLionServer.cpp" - PARENT_SCOPE) + "SpawnLionServer.cpp") + +add_library(dScriptsServerMapGF ${DSCRIPTS_SOURCES_02_SERVER_MAP_GF}) +target_include_directories(dScriptsServerMapGF PUBLIC ".") +target_precompile_headers(dScriptsServerMapGF REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/General/CMakeLists.txt b/dScripts/02_server/Map/General/CMakeLists.txt index 797b53ed..4fe5aae8 100644 --- a/dScripts/02_server/Map/General/CMakeLists.txt +++ b/dScripts/02_server/Map/General/CMakeLists.txt @@ -7,7 +7,6 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL "ForceVolumeServer.cpp" "GrowingFlower.cpp" "ImaginationBackpackHealServer.cpp" - "InvalidScript.cpp" "MailBoxServer.cpp" "NjRailSwitch.cpp" "PetDigServer.cpp" @@ -28,4 +27,6 @@ foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL_NINJAGO}) set(DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL ${DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL} "Ninjago/${file}") endforeach() -set(DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL ${DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL} PARENT_SCOPE) +add_library(dScriptsServerMapGeneral ${DSCRIPTS_SOURCES_02_SERVER_MAP_GENERAL}) +target_include_directories(dScriptsServerMapGeneral PUBLIC "." "Ninjago") +target_precompile_headers(dScriptsServerMapGeneral REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/NS/CMakeLists.txt b/dScripts/02_server/Map/NS/CMakeLists.txt index c815a8c5..4927f0c8 100644 --- a/dScripts/02_server/Map/NS/CMakeLists.txt +++ b/dScripts/02_server/Map/NS/CMakeLists.txt @@ -10,4 +10,6 @@ foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_NS_WAVES}) set(DSCRIPTS_SOURCES_02_SERVER_MAP_NS ${DSCRIPTS_SOURCES_02_SERVER_MAP_NS} "Waves/${file}") endforeach() -set(DSCRIPTS_SOURCES_02_SERVER_MAP_NS ${DSCRIPTS_SOURCES_02_SERVER_MAP_NS} PARENT_SCOPE) +add_library(dScriptsServerMapNS ${DSCRIPTS_SOURCES_02_SERVER_MAP_NS}) +target_include_directories(dScriptsServerMapNS PUBLIC "." "Waves") +target_precompile_headers(dScriptsServerMapNS REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/NT/CMakeLists.txt b/dScripts/02_server/Map/NT/CMakeLists.txt index 533a70c9..49c6a5ae 100644 --- a/dScripts/02_server/Map/NT/CMakeLists.txt +++ b/dScripts/02_server/Map/NT/CMakeLists.txt @@ -25,5 +25,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_NT "NtVentureSpeedPadServer.cpp" "NtVentureCannonServer.cpp" "NtBcSubmitServer.cpp" - "NtNaomiBreadcrumbServer.cpp" - PARENT_SCOPE) + "NtNaomiBreadcrumbServer.cpp") + +add_library(dScriptsServerMapNT ${DSCRIPTS_SOURCES_02_SERVER_MAP_NT}) +target_include_directories(dScriptsServerMapNT PUBLIC ".") +target_precompile_headers(dScriptsServerMapNT REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/PR/CMakeLists.txt b/dScripts/02_server/Map/PR/CMakeLists.txt index 3a32e9f3..13b3fd35 100644 --- a/dScripts/02_server/Map/PR/CMakeLists.txt +++ b/dScripts/02_server/Map/PR/CMakeLists.txt @@ -1,5 +1,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_PR "HydrantBroken.cpp" "PrSeagullFly.cpp" - "SpawnGryphonServer.cpp" - PARENT_SCOPE) + "SpawnGryphonServer.cpp") + +add_library(dScriptsServerMapPR ${DSCRIPTS_SOURCES_02_SERVER_MAP_PR}) +target_include_directories(dScriptsServerMapPR PUBLIC ".") +target_precompile_headers(dScriptsServerMapPR REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/Property/CMakeLists.txt b/dScripts/02_server/Map/Property/CMakeLists.txt index 74badb32..52b91d0b 100644 --- a/dScripts/02_server/Map/Property/CMakeLists.txt +++ b/dScripts/02_server/Map/Property/CMakeLists.txt @@ -19,4 +19,9 @@ foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_PROPERTY_NS_MED}) set(DSCRIPTS_SOURCES_02_SERVER_MAP_PROPERTY ${DSCRIPTS_SOURCES_02_SERVER_MAP_PROPERTY} "NS_Med/${file}") endforeach() -set(DSCRIPTS_SOURCES_02_SERVER_MAP_PROPERTY ${DSCRIPTS_SOURCES_02_SERVER_MAP_PROPERTY} PARENT_SCOPE) +add_library(dScriptsServerMapProperty ${DSCRIPTS_SOURCES_02_SERVER_MAP_PROPERTY}) +target_precompile_headers(dScriptsServerMapProperty REUSE_FROM dScriptsBase) +target_include_directories(dScriptsServerMapProperty PUBLIC "." + "AG_Med" + "AG_Small" + "NS_Med") diff --git a/dScripts/02_server/Map/SS/CMakeLists.txt b/dScripts/02_server/Map/SS/CMakeLists.txt index 49db031f..ed6a7596 100644 --- a/dScripts/02_server/Map/SS/CMakeLists.txt +++ b/dScripts/02_server/Map/SS/CMakeLists.txt @@ -1,3 +1,6 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_SS - "SsModularBuildServer.cpp" - PARENT_SCOPE) + "SsModularBuildServer.cpp") + +add_library(dScriptsServerMapSS ${DSCRIPTS_SOURCES_02_SERVER_MAP_SS}) +target_include_directories(dScriptsServerMapSS PUBLIC ".") +target_precompile_headers(dScriptsServerMapSS REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/VE/CMakeLists.txt b/dScripts/02_server/Map/VE/CMakeLists.txt index ac3a6461..2dbcaaff 100644 --- a/dScripts/02_server/Map/VE/CMakeLists.txt +++ b/dScripts/02_server/Map/VE/CMakeLists.txt @@ -1,5 +1,8 @@ set(DSCRIPTS_SOURCES_02_SERVER_MAP_VE "VeMissionConsole.cpp" "VeEpsilonServer.cpp" - "VeBricksampleServer.cpp" - PARENT_SCOPE) + "VeBricksampleServer.cpp") + +add_library(dScriptsServerMapVE ${DSCRIPTS_SOURCES_02_SERVER_MAP_VE}) +target_include_directories(dScriptsServerMapVE PUBLIC ".") +target_precompile_headers(dScriptsServerMapVE REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/njhub/CMakeLists.txt b/dScripts/02_server/Map/njhub/CMakeLists.txt index 2527d1ad..0f287ce3 100644 --- a/dScripts/02_server/Map/njhub/CMakeLists.txt +++ b/dScripts/02_server/Map/njhub/CMakeLists.txt @@ -28,4 +28,11 @@ foreach(file ${DSCRIPTS_SOURCES_02_SERVER_MAP_NJHUB_BOSS_INSTANCE}) set(DSCRIPTS_SOURCES_02_SERVER_MAP_NJHUB ${DSCRIPTS_SOURCES_02_SERVER_MAP_NJHUB} "boss_instance/${file}") endforeach() -set(DSCRIPTS_SOURCES_02_SERVER_MAP_NJHUB ${DSCRIPTS_SOURCES_02_SERVER_MAP_NJHUB} PARENT_SCOPE) +add_library(dScriptsServerMapNJHub ${DSCRIPTS_SOURCES_02_SERVER_MAP_NJHUB}) +target_include_directories(dScriptsServerMapNJHub PUBLIC "." "boss_instance") +target_link_libraries(dScriptsServerMapNJHub + dScriptsServerPets + dScriptsServerMapAM + dScriptsServerMapGeneral +) +target_precompile_headers(dScriptsServerMapNJHub REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Pets/CMakeLists.txt b/dScripts/02_server/Pets/CMakeLists.txt index 8820a82e..79123ebe 100644 --- a/dScripts/02_server/Pets/CMakeLists.txt +++ b/dScripts/02_server/Pets/CMakeLists.txt @@ -1,5 +1,9 @@ set(DSCRIPTS_SOURCES_02_SERVER_PETS "PetFromDigServer.cpp" "PetFromObjectServer.cpp" - "DamagingPets.cpp" - PARENT_SCOPE) + "DamagingPets.cpp") + +add_library(dScriptsServerPets STATIC ${DSCRIPTS_SOURCES_02_SERVER_PETS}) +target_include_directories(dScriptsServerPets PUBLIC ".") +target_precompile_headers(dScriptsServerPets REUSE_FROM dScriptsBase) + diff --git a/dScripts/CMakeLists.txt b/dScripts/CMakeLists.txt index ac600dbc..b3fb7d44 100644 --- a/dScripts/CMakeLists.txt +++ b/dScripts/CMakeLists.txt @@ -7,48 +7,44 @@ set(DSCRIPTS_SOURCES "BaseWavesGenericEnemy.cpp" "BaseWavesServer.cpp" "ChooseYourDestinationNsToNt.cpp" - "CppScripts.cpp" "Darkitect.cpp" + "InvalidScript.cpp" "NPCAddRemoveItem.cpp" "NtFactionSpyServer.cpp" "ScriptComponent.cpp" "ScriptedPowerupSpawner.cpp" "SpawnPetBaseServer.cpp") +link_libraries(dDatabase dPhysics) + +add_library(dScriptsBase STATIC ${DSCRIPTS_SOURCES}) +target_include_directories(dScriptsBase PUBLIC .) +target_link_libraries(dScriptsBase + INTERFACE dGameBase) +target_precompile_headers(dScriptsBase PRIVATE ${HEADERS_DGAME}) + +include_directories( + ${PROJECT_SOURCE_DIR}/dScripts + ${PROJECT_SOURCE_DIR}/dGame +) +link_libraries(dScriptsBase) +# dComponents + add_subdirectory(02_server) - -foreach(file ${DSCRIPTS_SOURCES_02_SERVER}) - set(DSCRIPTS_SOURCES ${DSCRIPTS_SOURCES} "02_server/${file}") -endforeach() - add_subdirectory(ai) - -foreach(file ${DSCRIPTS_SOURCES_AI}) - set(DSCRIPTS_SOURCES ${DSCRIPTS_SOURCES} "ai/${file}") -endforeach() - add_subdirectory(client) - -foreach(file ${DSCRIPTS_SOURCES_CLIENT}) - set(DSCRIPTS_SOURCES ${DSCRIPTS_SOURCES} "client/${file}") -endforeach() - add_subdirectory(EquipmentScripts) - -foreach(file ${DSCRIPTS_SOURCES_EQUIPMENTSCRIPTS}) - set(DSCRIPTS_SOURCES ${DSCRIPTS_SOURCES} "EquipmentScripts/${file}") -endforeach() - add_subdirectory(EquipmentTriggers) - -foreach(file ${DSCRIPTS_SOURCES_EQUIPMENTTRIGGERSSCRIPTS}) - set(DSCRIPTS_SOURCES ${DSCRIPTS_SOURCES} "EquipmentTriggers/${file}") -endforeach() - add_subdirectory(zone) -foreach(file ${DSCRIPTS_SOURCES_ZONE}) - set(DSCRIPTS_SOURCES ${DSCRIPTS_SOURCES} "zone/${file}") -endforeach() - -set(DSCRIPTS_SOURCES ${DSCRIPTS_SOURCES} PARENT_SCOPE) +add_library(dScripts STATIC "CppScripts.cpp") +target_precompile_headers(dScripts REUSE_FROM dScriptsBase) +target_include_directories(dScripts PUBLIC ".") +target_link_libraries(dScripts + dScriptsBase + dScriptsServer + dScriptsAI + dScriptsClient + dScriptsEquipmentScripts + dScriptsEquipmentTriggers + dScriptsZone) diff --git a/dScripts/EquipmentScripts/CMakeLists.txt b/dScripts/EquipmentScripts/CMakeLists.txt index 696be03d..08966e08 100644 --- a/dScripts/EquipmentScripts/CMakeLists.txt +++ b/dScripts/EquipmentScripts/CMakeLists.txt @@ -6,5 +6,8 @@ set(DSCRIPTS_SOURCES_EQUIPMENTSCRIPTS "PersonalFortress.cpp" "BuccaneerValiantShip.cpp" "FireFirstSkillonStartup.cpp" - "StunImmunity.cpp" - PARENT_SCOPE) + "StunImmunity.cpp") + +add_library(dScriptsEquipmentScripts STATIC ${DSCRIPTS_SOURCES_EQUIPMENTSCRIPTS}) +target_include_directories(dScriptsEquipmentScripts PUBLIC ".") +target_precompile_headers(dScriptsEquipmentScripts REUSE_FROM dScriptsBase) diff --git a/dScripts/EquipmentTriggers/CMakeLists.txt b/dScripts/EquipmentTriggers/CMakeLists.txt index 416ef553..cb6e81a8 100644 --- a/dScripts/EquipmentTriggers/CMakeLists.txt +++ b/dScripts/EquipmentTriggers/CMakeLists.txt @@ -1,3 +1,6 @@ set(DSCRIPTS_SOURCES_EQUIPMENTTRIGGERSSCRIPTS - "CoilBackpackBase.cpp" - PARENT_SCOPE) + "CoilBackpackBase.cpp") + +add_library(dScriptsEquipmentTriggers STATIC ${DSCRIPTS_SOURCES_EQUIPMENTTRIGGERSSCRIPTS}) +target_include_directories(dScriptsEquipmentTriggers PUBLIC ".") +target_precompile_headers(dScriptsEquipmentTriggers REUSE_FROM dScriptsBase) diff --git a/dScripts/02_server/Map/General/InvalidScript.cpp b/dScripts/InvalidScript.cpp similarity index 100% rename from dScripts/02_server/Map/General/InvalidScript.cpp rename to dScripts/InvalidScript.cpp diff --git a/dScripts/02_server/Map/General/InvalidScript.h b/dScripts/InvalidScript.h similarity index 100% rename from dScripts/02_server/Map/General/InvalidScript.h rename to dScripts/InvalidScript.h diff --git a/dScripts/ai/ACT/CMakeLists.txt b/dScripts/ai/ACT/CMakeLists.txt index 79deeded..5071afa0 100644 --- a/dScripts/ai/ACT/CMakeLists.txt +++ b/dScripts/ai/ACT/CMakeLists.txt @@ -9,4 +9,6 @@ foreach(file ${DSCRIPTS_SOURCES_AI_ACT_FOOTRACE}) set(DSCRIPTS_SOURCES_AI_ACT ${DSCRIPTS_SOURCES_AI_ACT} "FootRace/${file}") endforeach() -set(DSCRIPTS_SOURCES_AI_ACT ${DSCRIPTS_SOURCES_AI_ACT} PARENT_SCOPE) +add_library(dScriptsAiAct STATIC ${DSCRIPTS_SOURCES_AI_ACT}) +target_include_directories(dScriptsAiAct PUBLIC "." "FootRace") +target_precompile_headers(dScriptsAiAct REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/AG/CMakeLists.txt b/dScripts/ai/AG/CMakeLists.txt index 092b8de7..e031e386 100644 --- a/dScripts/ai/AG/CMakeLists.txt +++ b/dScripts/ai/AG/CMakeLists.txt @@ -14,5 +14,8 @@ set(DSCRIPTS_SOURCES_AI_AG "AgDarkSpiderling.cpp" "AgPicnicBlanket.cpp" "AgStagePlatforms.cpp" - "AgQbWall.cpp" - PARENT_SCOPE) + "AgQbWall.cpp") + +add_library(dScriptsAiAG STATIC ${DSCRIPTS_SOURCES_AI_AG}) +target_include_directories(dScriptsAiAG PUBLIC ".") +target_precompile_headers(dScriptsAiAG REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/CMakeLists.txt b/dScripts/ai/CMakeLists.txt index 44944b90..7e94cd34 100644 --- a/dScripts/ai/CMakeLists.txt +++ b/dScripts/ai/CMakeLists.txt @@ -1,81 +1,32 @@ set(DSCRIPTS_SOURCES_AI) add_subdirectory(ACT) - -foreach(file ${DSCRIPTS_SOURCES_AI_ACT}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "ACT/${file}") -endforeach() - add_subdirectory(AG) - -foreach(file ${DSCRIPTS_SOURCES_AI_AG}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "AG/${file}") -endforeach() - add_subdirectory(FV) - -foreach(file ${DSCRIPTS_SOURCES_AI_FV}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "FV/${file}") -endforeach() - add_subdirectory(GENERAL) - -foreach(file ${DSCRIPTS_SOURCES_AI_GENERAL}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "GENERAL/${file}") -endforeach() - add_subdirectory(GF) - -foreach(file ${DSCRIPTS_SOURCES_AI_GF}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "GF/${file}") -endforeach() - add_subdirectory(MINIGAME) - -foreach(file ${DSCRIPTS_SOURCES_AI_MINIGAME}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "MINIGAME/${file}") -endforeach() - add_subdirectory(NP) - -foreach(file ${DSCRIPTS_SOURCES_AI_NP}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "NP/${file}") -endforeach() - add_subdirectory(NS) - -foreach(file ${DSCRIPTS_SOURCES_AI_NS}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "NS/${file}") -endforeach() - add_subdirectory(PETS) - -foreach(file ${DSCRIPTS_SOURCES_AI_PETS}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "PETS/${file}") -endforeach() - add_subdirectory(PROPERTY) - -foreach(file ${DSCRIPTS_SOURCES_AI_PROPERTY}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "PROPERTY/${file}") -endforeach() - add_subdirectory(RACING) - -foreach(file ${DSCRIPTS_SOURCES_AI_RACING}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "RACING/${file}") -endforeach() - add_subdirectory(SPEC) - -foreach(file ${DSCRIPTS_SOURCES_AI_SPEC}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "SPEC/${file}") -endforeach() - add_subdirectory(WILD) -foreach(file ${DSCRIPTS_SOURCES_AI_WILD}) - set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} "WILD/${file}") -endforeach() - -set(DSCRIPTS_SOURCES_AI ${DSCRIPTS_SOURCES_AI} PARENT_SCOPE) +add_library(dScriptsAI INTERFACE) +target_link_libraries(dScriptsAI INTERFACE + dScriptsAiAct + dScriptsAiAG + dScriptsAiFV + dScriptsAiGeneral + dScriptsAiGF + dScriptsAiMinigame + dScriptsAiNP + dScriptsAiNS + dScriptsAiPets + dScriptsAiProperty + dScriptsAiRacing + dScriptsAiSpec + dScriptsAiWild +) diff --git a/dScripts/ai/FV/CMakeLists.txt b/dScripts/ai/FV/CMakeLists.txt index 56418706..55c68a27 100644 --- a/dScripts/ai/FV/CMakeLists.txt +++ b/dScripts/ai/FV/CMakeLists.txt @@ -16,5 +16,9 @@ set(DSCRIPTS_SOURCES_AI_FV "FvPassThroughWall.cpp" "FvBounceOverWall.cpp" "FvMaelstromGeyser.cpp" - "TriggerGas.cpp" - PARENT_SCOPE) + "TriggerGas.cpp") + +add_library(dScriptsAiFV STATIC ${DSCRIPTS_SOURCES_AI_FV}) +target_include_directories(dScriptsAiFV PUBLIC ".") +target_precompile_headers(dScriptsAiFV REUSE_FROM dScriptsBase) + diff --git a/dScripts/ai/GENERAL/CMakeLists.txt b/dScripts/ai/GENERAL/CMakeLists.txt index da973658..9b7f2a2a 100644 --- a/dScripts/ai/GENERAL/CMakeLists.txt +++ b/dScripts/ai/GENERAL/CMakeLists.txt @@ -1,4 +1,8 @@ set(DSCRIPTS_SOURCES_AI_GENERAL "InstanceExitTransferPlayerToLastNonInstance.cpp" - "LegoDieRoll.cpp" - PARENT_SCOPE) + "LegoDieRoll.cpp") + +add_library(dScriptsAiGeneral STATIC ${DSCRIPTS_SOURCES_AI_GENERAL}) +target_include_directories(dScriptsAiGeneral PUBLIC ".") +target_precompile_headers(dScriptsAiGeneral REUSE_FROM dScriptsBase) + diff --git a/dScripts/ai/GF/CMakeLists.txt b/dScripts/ai/GF/CMakeLists.txt index 9937618c..7a7a1723 100644 --- a/dScripts/ai/GF/CMakeLists.txt +++ b/dScripts/ai/GF/CMakeLists.txt @@ -10,5 +10,8 @@ set(DSCRIPTS_SOURCES_AI_GF "GfArchway.cpp" "GfMaelstromGeyser.cpp" "PirateRep.cpp" - "GfParrotCrash.cpp" - PARENT_SCOPE) + "GfParrotCrash.cpp") + +add_library(dScriptsAiGF STATIC ${DSCRIPTS_SOURCES_AI_GF}) +target_include_directories(dScriptsAiGF PUBLIC ".") +target_precompile_headers(dScriptsAiGF REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/MINIGAME/CMakeLists.txt b/dScripts/ai/MINIGAME/CMakeLists.txt index f0187057..0e07d526 100644 --- a/dScripts/ai/MINIGAME/CMakeLists.txt +++ b/dScripts/ai/MINIGAME/CMakeLists.txt @@ -12,4 +12,6 @@ foreach(file ${DSCRIPTS_SOURCES_AI_MINIGAME_OBJECTS}) set(DSCRIPTS_SOURCES_AI_MINIGAME ${DSCRIPTS_SOURCES_AI_MINIGAME} "Objects/${file}") endforeach() -set(DSCRIPTS_SOURCES_AI_MINIGAME ${DSCRIPTS_SOURCES_AI_MINIGAME} PARENT_SCOPE) +add_library(dScriptsAiMinigame STATIC ${DSCRIPTS_SOURCES_AI_MINIGAME}) +target_include_directories(dScriptsAiMinigame PUBLIC "." "Objects" "SG_GF" "SG_GF/SERVER") +target_precompile_headers(dScriptsAiMinigame REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/NP/CMakeLists.txt b/dScripts/ai/NP/CMakeLists.txt index 39a7301a..9f3f6a65 100644 --- a/dScripts/ai/NP/CMakeLists.txt +++ b/dScripts/ai/NP/CMakeLists.txt @@ -1,3 +1,6 @@ set(DSCRIPTS_SOURCES_AI_NP - "NpcNpSpacemanBob.cpp" - PARENT_SCOPE) + "NpcNpSpacemanBob.cpp") + +add_library(dScriptsAiNP STATIC ${DSCRIPTS_SOURCES_AI_NP}) +target_include_directories(dScriptsAiNP PUBLIC ".") +target_precompile_headers(dScriptsAiNP REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/NS/CMakeLists.txt b/dScripts/ai/NS/CMakeLists.txt index e8ec84b1..0f0aa0c7 100644 --- a/dScripts/ai/NS/CMakeLists.txt +++ b/dScripts/ai/NS/CMakeLists.txt @@ -21,4 +21,8 @@ foreach(file ${DSCRIPTS_SOURCES_AI_NS_WH}) set(DSCRIPTS_SOURCES_AI_NS ${DSCRIPTS_SOURCES_AI_NS} "WH/${file}") endforeach() -set(DSCRIPTS_SOURCES_AI_NS ${DSCRIPTS_SOURCES_AI_NS} PARENT_SCOPE) +add_library(dScriptsAiNS STATIC ${DSCRIPTS_SOURCES_AI_NS}) +target_include_directories(dScriptsAiNS PUBLIC "." "NS_PP_01" "WH" +PRIVATE + ${PROJECT_SOURCE_DIR}/dScripts/02_server/Map/NS) # NsConcertChoiceBuildManager.h +target_precompile_headers(dScriptsAiNS REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/PETS/CMakeLists.txt b/dScripts/ai/PETS/CMakeLists.txt index 93a9012d..8bd8630c 100644 --- a/dScripts/ai/PETS/CMakeLists.txt +++ b/dScripts/ai/PETS/CMakeLists.txt @@ -1,3 +1,6 @@ set(DSCRIPTS_SOURCES_AI_PETS - "HydrantSmashable.cpp" - PARENT_SCOPE) + "HydrantSmashable.cpp") + +add_library(dScriptsAiPets STATIC ${DSCRIPTS_SOURCES_AI_PETS}) +target_include_directories(dScriptsAiPets PUBLIC "." "NS_PP_01" "WH") +target_precompile_headers(dScriptsAiPets REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/PROPERTY/CMakeLists.txt b/dScripts/ai/PROPERTY/CMakeLists.txt index 295137b4..a31b9257 100644 --- a/dScripts/ai/PROPERTY/CMakeLists.txt +++ b/dScripts/ai/PROPERTY/CMakeLists.txt @@ -8,4 +8,6 @@ foreach(file ${DSCRIPTS_SOURCES_AI_PROPERTY_AG}) set(DSCRIPTS_SOURCES_AI_PROPERTY ${DSCRIPTS_SOURCES_AI_PROPERTY} "AG/${file}") endforeach() -set(DSCRIPTS_SOURCES_AI_PROPERTY ${DSCRIPTS_SOURCES_AI_PROPERTY} PARENT_SCOPE) +add_library(dScriptsAiProperty STATIC ${DSCRIPTS_SOURCES_AI_PROPERTY}) +target_include_directories(dScriptsAiProperty PUBLIC "." "AG") +target_precompile_headers(dScriptsAiProperty REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/RACING/CMakeLists.txt b/dScripts/ai/RACING/CMakeLists.txt index 0c1918de..b7343c61 100644 --- a/dScripts/ai/RACING/CMakeLists.txt +++ b/dScripts/ai/RACING/CMakeLists.txt @@ -6,4 +6,6 @@ foreach(file ${DSCRIPTS_SOURCES_AI_RACING_OBJECTS}) set(DSCRIPTS_SOURCES_AI_RACING ${DSCRIPTS_SOURCES_AI_RACING} "OBJECTS/${file}") endforeach() -set(DSCRIPTS_SOURCES_AI_RACING ${DSCRIPTS_SOURCES_AI_RACING} PARENT_SCOPE) +add_library(dScriptsAiRacing STATIC ${DSCRIPTS_SOURCES_AI_RACING}) +target_include_directories(dScriptsAiRacing PUBLIC "." "OBJECTS") +target_precompile_headers(dScriptsAiRacing REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/SPEC/CMakeLists.txt b/dScripts/ai/SPEC/CMakeLists.txt index 42dbf8f8..c60372ac 100644 --- a/dScripts/ai/SPEC/CMakeLists.txt +++ b/dScripts/ai/SPEC/CMakeLists.txt @@ -1,5 +1,8 @@ set(DSCRIPTS_SOURCES_AI_SPEC "SpecialCoinSpawner.cpp" "SpecialPowerupSpawner.cpp" - "SpecialSpeedBuffSpawner.cpp" - PARENT_SCOPE) + "SpecialSpeedBuffSpawner.cpp") + +add_library(dScriptsAiSpec STATIC ${DSCRIPTS_SOURCES_AI_SPEC}) +target_include_directories(dScriptsAiSpec PUBLIC ".") +target_precompile_headers(dScriptsAiSpec REUSE_FROM dScriptsBase) diff --git a/dScripts/ai/WILD/CMakeLists.txt b/dScripts/ai/WILD/CMakeLists.txt index 446ce0d4..418ffb5f 100644 --- a/dScripts/ai/WILD/CMakeLists.txt +++ b/dScripts/ai/WILD/CMakeLists.txt @@ -7,5 +7,8 @@ set(DSCRIPTS_SOURCES_AI_WILD "WildNinjaBricks.cpp" "WildNinjaStudent.cpp" "WildNinjaSensei.cpp" - "WildPants.cpp" - PARENT_SCOPE) + "WildPants.cpp") + +add_library(dScriptsAiWild STATIC ${DSCRIPTS_SOURCES_AI_WILD}) +target_include_directories(dScriptsAiWild PUBLIC ".") +target_precompile_headers(dScriptsAiWild REUSE_FROM dScriptsBase) diff --git a/dScripts/client/CMakeLists.txt b/dScripts/client/CMakeLists.txt index c2777508..b3ad08fb 100644 --- a/dScripts/client/CMakeLists.txt +++ b/dScripts/client/CMakeLists.txt @@ -6,4 +6,6 @@ foreach(file ${DSCRIPTS_SOURCES_CLIENT_AI}) set(DSCRIPTS_SOURCES_CLIENT ${DSCRIPTS_SOURCES_CLIENT} "ai/${file}") endforeach() -set(DSCRIPTS_SOURCES_CLIENT ${DSCRIPTS_SOURCES_CLIENT} PARENT_SCOPE) +add_library(dScriptsClient STATIC ${DSCRIPTS_SOURCES_CLIENT}) +target_include_directories(dScriptsClient PUBLIC "." "ai" "ai/PR") +target_precompile_headers(dScriptsClient REUSE_FROM dScriptsBase) diff --git a/dScripts/zone/CMakeLists.txt b/dScripts/zone/CMakeLists.txt index 5d800031..93ea70ca 100644 --- a/dScripts/zone/CMakeLists.txt +++ b/dScripts/zone/CMakeLists.txt @@ -18,4 +18,12 @@ foreach(file ${DSCRIPTS_SOURCES_ZONE_PROPERTY}) set(DSCRIPTS_SOURCES_ZONE ${DSCRIPTS_SOURCES_ZONE} "PROPERTY/${file}") endforeach() -set(DSCRIPTS_SOURCES_ZONE ${DSCRIPTS_SOURCES_ZONE} PARENT_SCOPE) +add_library(dScriptsZone STATIC ${DSCRIPTS_SOURCES_ZONE}) +target_include_directories(dScriptsZone PUBLIC "." + "AG" + "LUPs" + "PROPERTY" + "PROPERTY/FV" + "PROPERTY/GF" + "PROPERTY/NS") +target_precompile_headers(dScriptsZone REUSE_FROM dScriptsBase) diff --git a/dZoneManager/CMakeLists.txt b/dZoneManager/CMakeLists.txt index bbb22ba7..e7382367 100644 --- a/dZoneManager/CMakeLists.txt +++ b/dZoneManager/CMakeLists.txt @@ -4,4 +4,6 @@ set(DZONEMANAGER_SOURCES "dZoneManager.cpp" "Zone.cpp") add_library(dZoneManager STATIC ${DZONEMANAGER_SOURCES}) -target_link_libraries(dZoneManager dPhysics) +target_link_libraries(dZoneManager + PUBLIC dPhysics + INTERFACE dWorldServer) From 72b69c7899db14437da25814f9efeaad0075ba91 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell <aronwk.aaron@gmail.com> Date: Wed, 3 Jan 2024 22:18:27 -0600 Subject: [PATCH 081/106] fix: dont crash if resServer doesn't exist (#1386) and try to make it as well --- dMasterServer/MasterServer.cpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index 3b829c48..19a06706 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -150,31 +150,40 @@ int main(int argc, char** argv) { } MigrationRunner::RunMigrations(); - - const bool cdServerExists = std::filesystem::exists(BinaryPathFinder::GetBinaryDir() / "resServer" / "CDServer.sqlite"); + const auto resServerPath = BinaryPathFinder::GetBinaryDir() / "resServer"; + const bool cdServerExists = std::filesystem::exists(resServerPath / "CDServer.sqlite"); const bool oldCDServerExists = std::filesystem::exists(Game::assetManager->GetResPath() / "CDServer.sqlite"); const bool fdbExists = std::filesystem::exists(Game::assetManager->GetResPath() / "cdclient.fdb"); + const bool resServerPathExists = std::filesystem::is_directory(resServerPath); + + if (!resServerPathExists) { + LOG("%s does not exist, creating it.", (resServerPath).c_str()); + if(!std::filesystem::create_directories(resServerPath)){ + LOG("Failed to create %s", (resServerPath).string().c_str()); + return EXIT_FAILURE; + } + } if (!cdServerExists) { if (oldCDServerExists) { // If the file doesn't exist in the new CDServer location, copy it there. We copy because we may not have write permissions from the previous directory. LOG("CDServer.sqlite is not located at resServer, but is located at res path. Copying file..."); - std::filesystem::copy_file(Game::assetManager->GetResPath() / "CDServer.sqlite", BinaryPathFinder::GetBinaryDir() / "resServer" / "CDServer.sqlite"); + std::filesystem::copy_file(Game::assetManager->GetResPath() / "CDServer.sqlite", resServerPath / "CDServer.sqlite"); } else { LOG("%s could not be found in resServer or res. Looking for %s to convert to sqlite.", - (BinaryPathFinder::GetBinaryDir() / "resServer" / "CDServer.sqlite").c_str(), - (Game::assetManager->GetResPath() / "cdclient.fdb").c_str()); + (resServerPath / "CDServer.sqlite").string().c_str(), + (Game::assetManager->GetResPath() / "cdclient.fdb").string().c_str()); auto cdclientStream = Game::assetManager->GetFile("cdclient.fdb"); if (!cdclientStream) { - LOG("Failed to load %s", (Game::assetManager->GetResPath() / "cdclient.fdb").c_str()); + LOG("Failed to load %s", (Game::assetManager->GetResPath() / "cdclient.fdb").string().c_str()); throw std::runtime_error("Aborting initialization due to missing cdclient.fdb."); } - LOG("Found %s. Converting to SQLite", (Game::assetManager->GetResPath() / "cdclient.fdb").c_str()); + LOG("Found %s. Converting to SQLite", (Game::assetManager->GetResPath() / "cdclient.fdb").string().c_str()); Game::logger->Flush(); - if (FdbToSqlite::Convert((BinaryPathFinder::GetBinaryDir() / "resServer").string()).ConvertDatabase(cdclientStream) == false) { + if (FdbToSqlite::Convert(resServerPath.string()).ConvertDatabase(cdclientStream) == false) { LOG("Failed to convert fdb to sqlite."); return EXIT_FAILURE; } From 321d354e96c726b8a427c91f94a8dd3419417a59 Mon Sep 17 00:00:00 2001 From: Aaron Kimbre <aronwk.aaron@gmail.com> Date: Thu, 4 Jan 2024 18:21:03 -0600 Subject: [PATCH 082/106] fix: don't crash if some configs aren't present remove not starting if ini's aren't present since everything can run from env vars now --- dAuthServer/AuthServer.cpp | 11 +++-- dChatServer/ChatServer.cpp | 15 ++++--- dMasterServer/InstanceManager.cpp | 2 +- dMasterServer/InstanceManager.h | 2 +- dMasterServer/MasterServer.cpp | 67 +++++++++++-------------------- dNet/AuthPackets.cpp | 15 +++---- dNet/dServer.cpp | 5 ++- dPhysics/dpWorld.cpp | 13 ++++-- dPhysics/dpWorld.h | 2 +- dWorldServer/WorldServer.cpp | 5 ++- 10 files changed, 65 insertions(+), 72 deletions(-) diff --git a/dAuthServer/AuthServer.cpp b/dAuthServer/AuthServer.cpp index 974ee27e..414c572f 100644 --- a/dAuthServer/AuthServer.cpp +++ b/dAuthServer/AuthServer.cpp @@ -83,12 +83,15 @@ int main(int argc, char** argv) { Game::randomEngine = std::mt19937(time(0)); //It's safe to pass 'localhost' here, as the IP is only used as the external IP. - uint32_t maxClients = 50; + uint32_t maxClients = 999; uint32_t ourPort = 1001; //LU client is hardcoded to use this for auth port, so I'm making it the default. - if (Game::config->GetValue("max_clients") != "") maxClients = std::stoi(Game::config->GetValue("max_clients")); - if (Game::config->GetValue("auth_server_port") != "") ourPort = std::atoi(Game::config->GetValue("auth_server_port").c_str()); + std::string ourIP = "localhost"; + GeneralUtils::TryParse(Game::config->GetValue("max_clients"), maxClients); + GeneralUtils::TryParse(Game::config->GetValue("auth_server_port"), ourPort); + const auto externalIPString = Game::config->GetValue("external_ip"); + if (!externalIPString.empty()) ourIP = externalIPString; - Game::server = new dServer(Game::config->GetValue("external_ip"), ourPort, 0, maxClients, false, true, Game::logger, masterIP, masterPort, ServerType::Auth, Game::config, &Game::lastSignal); + Game::server = new dServer(ourIP, ourPort, 0, maxClients, false, true, Game::logger, masterIP, masterPort, ServerType::Auth, Game::config, &Game::lastSignal); //Run it until server gets a kill message from Master: auto t = std::chrono::high_resolution_clock::now(); diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 1642ff9c..72220d83 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -99,14 +99,19 @@ int main(int argc, char** argv) { masterPort = masterInfo->port; } //It's safe to pass 'localhost' here, as the IP is only used as the external IP. - uint32_t maxClients = 50; + uint32_t maxClients = 999; uint32_t ourPort = 1501; - if (Game::config->GetValue("max_clients") != "") maxClients = std::stoi(Game::config->GetValue("max_clients")); - if (Game::config->GetValue("chat_server_port") != "") ourPort = std::atoi(Game::config->GetValue("chat_server_port").c_str()); + std::string ourIP = "localhost"; + GeneralUtils::TryParse(Game::config->GetValue("max_clients"), maxClients); + GeneralUtils::TryParse(Game::config->GetValue("chat_server_port"), ourPort); + const auto externalIPString = Game::config->GetValue("external_ip"); + if (!externalIPString.empty()) ourIP = externalIPString; - Game::server = new dServer(Game::config->GetValue("external_ip"), ourPort, 0, maxClients, false, true, Game::logger, masterIP, masterPort, ServerType::Chat, Game::config, &Game::lastSignal); + Game::server = new dServer(ourIP, ourPort, 0, maxClients, false, true, Game::logger, masterIP, masterPort, ServerType::Chat, Game::config, &Game::lastSignal); - Game::chatFilter = new dChatFilter(Game::assetManager->GetResPath().string() + "/chatplus_en_us", bool(std::stoi(Game::config->GetValue("dont_generate_dcf")))); + bool dontGenerateDCF = false; + GeneralUtils::TryParse(Game::config->GetValue("dont_generate_dcf"), dontGenerateDCF); + Game::chatFilter = new dChatFilter(Game::assetManager->GetResPath().string() + "/chatplus_en_us", dontGenerateDCF); Game::randomEngine = std::mt19937(time(0)); diff --git a/dMasterServer/InstanceManager.cpp b/dMasterServer/InstanceManager.cpp index 193ff940..a5a6d8dc 100644 --- a/dMasterServer/InstanceManager.cpp +++ b/dMasterServer/InstanceManager.cpp @@ -17,7 +17,7 @@ InstanceManager::InstanceManager(Logger* logger, const std::string& externalIP) { mLogger = logger; mExternalIP = externalIP; - m_LastPort = std::atoi(Game::config->GetValue("world_port_start").c_str()); + GeneralUtils::TryParse(Game::config->GetValue("world_port_start"), m_LastPort); m_LastInstanceID = LWOINSTANCEID_INVALID; } diff --git a/dMasterServer/InstanceManager.h b/dMasterServer/InstanceManager.h index a665a7d3..b9f1ec5a 100644 --- a/dMasterServer/InstanceManager.h +++ b/dMasterServer/InstanceManager.h @@ -134,7 +134,7 @@ private: Logger* mLogger; std::string mExternalIP; std::vector<Instance*> m_Instances; - unsigned short m_LastPort; + unsigned short m_LastPort = 3000; LWOINSTANCEID m_LastInstanceID; /** diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index 3b829c48..2dd2875b 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -81,45 +81,21 @@ int main(int argc, char** argv) { Game::logger = SetupLogger(); if (!Game::logger) return EXIT_FAILURE; - if (!dConfig::Exists("authconfig.ini")) { - LOG("Couldnt find authconfig.ini"); - return EXIT_FAILURE; - } - - if (!dConfig::Exists("chatconfig.ini")) { - LOG("Couldnt find chatconfig.ini"); - return EXIT_FAILURE; - } - - if (!dConfig::Exists("masterconfig.ini")) { - LOG("Couldnt find masterconfig.ini"); - return EXIT_FAILURE; - } - - if (!dConfig::Exists("sharedconfig.ini")) { - LOG("Couldnt find sharedconfig.ini"); - return EXIT_FAILURE; - } - - if (!dConfig::Exists("worldconfig.ini")) { - LOG("Couldnt find worldconfig.ini"); - return EXIT_FAILURE; - } + if (!dConfig::Exists("authconfig.ini")) LOG("Could not find authconfig.ini, using default settings"); + if (!dConfig::Exists("chatconfig.ini")) LOG("Could not find chatconfig.ini, using default settings"); + if (!dConfig::Exists("masterconfig.ini")) LOG("Could not find masterconfig.ini, using default settings"); + if (!dConfig::Exists("sharedconfig.ini")) LOG("Could not find sharedconfig.ini, using default settings"); + if (!dConfig::Exists("worldconfig.ini")) LOG("Could not find worldconfig.ini, using default settings"); Game::config = new dConfig("masterconfig.ini"); Game::logger->SetLogToConsole(Game::config->GetValue("log_to_console") != "0"); Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1"); - uint32_t clientNetVersion = 0; - if (!GeneralUtils::TryParse(Game::config->GetValue("client_net_version"), clientNetVersion)) { - LOG("Failed to parse (%s) as net version. Cannot start server as no clients could connect.",Game::config->GetValue("client_net_version").c_str()); - LOG("As of version 1.1.1, client_net_version is required to be defined in sharedconfig.ini as opposed to in CMakeVariables.txt as NET_VERSION."); - LOG("Rerun cmake to ensure all config values exist. If client_net_version already exists in sharedconfig.ini, please ensure it is a valid number."); - LOG("like 171022"); - return EXIT_FAILURE; - } + uint32_t clientNetVersion = 171022; + const auto clientNetVersionString = Game::config->GetValue("client_net_version"); + if (!clientNetVersionString.empty()) GeneralUtils::TryParse(clientNetVersionString, clientNetVersion); - LOG("Using net version %s", Game::config->GetValue("client_net_version").c_str()); + LOG("Using net version %i", clientNetVersion); LOG("Starting Master server..."); LOG("Version: %s", PROJECT_VERSION); @@ -283,19 +259,22 @@ int main(int argc, char** argv) { Game::randomEngine = std::mt19937(time(0)); uint32_t maxClients = 999; - uint32_t ourPort = 1000; - if (Game::config->GetValue("max_clients") != "") maxClients = std::stoi(Game::config->GetValue("max_clients")); - if (Game::config->GetValue("master_server_port") != "") ourPort = std::stoi(Game::config->GetValue("master_server_port")); + uint32_t ourPort = 2000; + std::string ourIP = "localhost"; + const auto maxClientsString = Game::config->GetValue("max_clients"); + if (!maxClientsString.empty()) maxClients = std::stoi(maxClientsString); + const auto masterServerPortString = Game::config->GetValue("master_server_port"); + if (!masterServerPortString.empty()) ourPort = std::atoi(masterServerPortString.c_str()); + const auto externalIPString = Game::config->GetValue("external_ip"); + if (!externalIPString.empty()) ourIP = externalIPString; - Game::server = new dServer(Game::config->GetValue("external_ip"), ourPort, 0, maxClients, true, false, Game::logger, "", 0, ServerType::Master, Game::config, &Game::lastSignal); + Game::server = new dServer(ourIP, ourPort, 0, maxClients, true, false, Game::logger, "", 0, ServerType::Master, Game::config, &Game::lastSignal); - //Query for the database for a server labeled "master" + std::string master_server_ip = "localhost"; + const auto masterServerIPString = Game::config->GetValue("master_ip"); + if (!masterServerIPString.empty()) master_server_ip = masterServerIPString; - auto master_server_ip = Game::config->GetValue("master_ip"); - - if (master_server_ip == "") { - master_server_ip = Game::server->GetIP(); - } + if (master_server_ip == "") master_server_ip = Game::server->GetIP(); Database::Get()->SetMasterIp(master_server_ip, Game::server->GetPort()); @@ -304,7 +283,7 @@ int main(int argc, char** argv) { Game::im = new InstanceManager(Game::logger, Game::server->GetIP()); //Depending on the config, start up servers: - if (Game::config->GetValue("prestart_servers") != "" && Game::config->GetValue("prestart_servers") == "1") { + if (Game::config->GetValue("prestart_servers") != "0") { StartChatServer(); Game::im->GetInstance(0, false, 0); diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index 9ddf7bf7..b6a1f913 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -54,14 +54,12 @@ void AuthPackets::HandleHandshake(dServer* server, Packet* packet) { void AuthPackets::SendHandshake(dServer* server, const SystemAddress& sysAddr, const std::string& nextServerIP, uint16_t nextServerPort, const ServerType serverType) { RakNet::BitStream bitStream; BitStreamUtils::WriteHeader(bitStream, eConnectionType::SERVER, eServerMessageType::VERSION_CONFIRM); - uint32_t netVersion; - const std::string& expectedVersion = Game::config->GetValue("client_net_version"); - LOG("Expected Version: '%s'", expectedVersion.c_str()); - if (!GeneralUtils::TryParse(expectedVersion, netVersion)) { - LOG("Failed to parse client_net_version. Cannot authenticate to %s:%i", nextServerIP.c_str(), nextServerPort); - return; - } - bitStream.Write<uint32_t>(netVersion); + + uint32_t clientNetVersion = 171022; + const auto clientNetVersionString = Game::config->GetValue("client_net_version"); + if (!clientNetVersionString.empty()) GeneralUtils::TryParse(clientNetVersionString, clientNetVersion); + + bitStream.Write<uint32_t>(clientNetVersion); bitStream.Write<uint32_t>(0x93); if (serverType == ServerType::Auth) bitStream.Write(uint32_t(1)); //Conn: auth @@ -95,7 +93,6 @@ void AuthPackets::HandleLoginRequest(dServer* server, Packet* packet) { } if (Game::config->GetValue("dont_use_keys") != "1" && accountInfo->maxGmLevel == eGameMasterLevel::CIVILIAN) { - LOG(""); //Check to see if we have a play key: if (accountInfo->playKeyId == 0) { AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a play key associated with it!", "", 2001, username); diff --git a/dNet/dServer.cpp b/dNet/dServer.cpp index 702a2d44..e60e04f9 100644 --- a/dNet/dServer.cpp +++ b/dNet/dServer.cpp @@ -14,6 +14,7 @@ #include "BitStreamUtils.h" #include "MasterPackets.h" #include "ZoneInstanceManager.h" +#include "StringifiedEnum.h" //! Replica Constructor class class ReplicaConstructor : public ReceiveConstructionInterface { @@ -65,9 +66,9 @@ dServer::dServer(const std::string& ip, int port, int instanceID, int maxConnect if (mIsOkay) { if (zoneID == 0) - LOG("Server is listening on %s:%i with encryption: %i", ip.c_str(), port, int(useEncryption)); + LOG("%s Server is listening on %s:%i with encryption: %i", StringifiedEnum::ToString(serverType).data(), ip.c_str(), port, int(useEncryption)); else - LOG("Server is listening on %s:%i with encryption: %i, running zone %i / %i", ip.c_str(), port, int(useEncryption), zoneID, instanceID); + LOG("%s Server is listening on %s:%i with encryption: %i, running zone %i / %i", StringifiedEnum::ToString(serverType).data(), ip.c_str(), port, int(useEncryption), zoneID, instanceID); } else { LOG("FAILED TO START SERVER ON IP/PORT: %s:%i", ip.c_str(), port); return; } mLogger->SetLogToConsole(prevLogSetting); diff --git a/dPhysics/dpWorld.cpp b/dPhysics/dpWorld.cpp index 1abcb04a..698ceb63 100644 --- a/dPhysics/dpWorld.cpp +++ b/dPhysics/dpWorld.cpp @@ -10,14 +10,17 @@ #include "dConfig.h" void dpWorld::Initialize(unsigned int zoneID, bool generateNewNavMesh) { - phys_sp_tilecount = std::atoi(Game::config->GetValue("phys_sp_tilecount").c_str()); - phys_sp_tilesize = std::atoi(Game::config->GetValue("phys_sp_tilesize").c_str()); + const auto physSpTilecount = Game::config->GetValue("phys_sp_tilecount"); + if (!physSpTilecount.empty()) GeneralUtils::TryParse(physSpTilecount, phys_sp_tilecount); + const auto physSpTilesize = Game::config->GetValue("phys_sp_tilesize"); + if (!physSpTilesize.empty()) GeneralUtils::TryParse(physSpTilesize, phys_sp_tilesize); + const auto physSpatialPartitioning = Game::config->GetValue("phys_spatial_partitioning"); + if (!physSpatialPartitioning.empty()) phys_spatial_partitioning = physSpatialPartitioning == "1"; //If spatial partitioning is enabled, then we need to create the m_Grid. //if m_Grid exists, then the old method will be used. //SP will NOT be used unless it is added to ShouldUseSP(); - if (std::atoi(Game::config->GetValue("phys_spatial_partitioning").c_str()) == 1 - && ShouldUseSP(zoneID)) { + if (ShouldUseSP(zoneID)) { m_Grid = new dpGrid(phys_sp_tilecount, phys_sp_tilesize); } @@ -123,6 +126,8 @@ void dpWorld::RemoveEntity(dpEntity* entity) { } bool dpWorld::ShouldUseSP(unsigned int zoneID) { + if (!phys_spatial_partitioning) return false; + // TODO: Add to this list as needed. // Only large maps should be added as tiling likely makes little difference on small maps. diff --git a/dPhysics/dpWorld.h b/dPhysics/dpWorld.h index d48435d0..bf2af06d 100644 --- a/dPhysics/dpWorld.h +++ b/dPhysics/dpWorld.h @@ -36,7 +36,7 @@ public: private: dpGrid* m_Grid; - bool phys_spatial_partitioning = 1; + bool phys_spatial_partitioning = true; int phys_sp_tilesize = 205; int phys_sp_tilecount = 12; diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index 31fd488c..c8866b13 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -210,7 +210,10 @@ int main(int argc, char** argv) { ObjectIDManager::Instance()->Initialize(); UserManager::Instance()->Initialize(); - Game::chatFilter = new dChatFilter(Game::assetManager->GetResPath().string() + "/chatplus_en_us", bool(std::stoi(Game::config->GetValue("dont_generate_dcf")))); + + bool dontGenerateDCF = false; + GeneralUtils::TryParse(Game::config->GetValue("dont_generate_dcf"), dontGenerateDCF); + Game::chatFilter = new dChatFilter(Game::assetManager->GetResPath().string() + "/chatplus_en_us", dontGenerateDCF); Game::server = new dServer(masterIP, ourPort, instanceID, maxClients, false, true, Game::logger, masterIP, masterPort, ServerType::World, Game::config, &Game::lastSignal, zoneID); From 870b56fe02f9dea5a226f3eaa5a5ce3de58831df Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 5 Jan 2024 04:31:22 -0800 Subject: [PATCH 083/106] chore: cleanup objectIdManager overloading and classes (#1391) * objectIdManager fixes * Remove debug log --- dGame/EntityManager.cpp | 4 +- dGame/TradingManager.cpp | 4 +- dGame/UserManager.cpp | 4 +- dGame/dBehaviors/ProjectileAttackBehavior.cpp | 4 +- dGame/dComponents/InventoryComponent.cpp | 8 +- dGame/dComponents/PetComponent.cpp | 4 +- .../PropertyManagementComponent.cpp | 4 +- dGame/dGameMessages/GameMessages.cpp | 10 +-- dGame/dInventory/Item.cpp | 2 +- dGame/dPropertyBehaviors/ControlBehaviors.cpp | 4 +- dGame/dUtilities/CMakeLists.txt | 1 + dGame/dUtilities/ObjectIDManager.cpp | 51 +++++++++++++ dGame/dUtilities/ObjectIDManager.h | 40 ++++++++++ dGame/dUtilities/VanityUtilities.cpp | 4 +- dMasterServer/CMakeLists.txt | 2 +- dMasterServer/MasterServer.cpp | 19 ++--- dMasterServer/ObjectIDManager.h | 47 ------------ ...tIDManager.cpp => PersistentIDManager.cpp} | 27 +++---- dMasterServer/PersistentIDManager.h | 23 ++++++ .../ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp | 2 +- dWorldServer/CMakeLists.txt | 1 - dWorldServer/ObjectIDManager.cpp | 55 -------------- dWorldServer/ObjectIDManager.h | 75 ------------------- dWorldServer/WorldServer.cpp | 3 +- dZoneManager/dZoneManager.cpp | 4 +- 25 files changed, 166 insertions(+), 236 deletions(-) create mode 100644 dGame/dUtilities/ObjectIDManager.cpp create mode 100644 dGame/dUtilities/ObjectIDManager.h delete mode 100644 dMasterServer/ObjectIDManager.h rename dMasterServer/{ObjectIDManager.cpp => PersistentIDManager.cpp} (58%) create mode 100644 dMasterServer/PersistentIDManager.h delete mode 100644 dWorldServer/ObjectIDManager.cpp delete mode 100644 dWorldServer/ObjectIDManager.h diff --git a/dGame/EntityManager.cpp b/dGame/EntityManager.cpp index 493e910e..a098dbcf 100644 --- a/dGame/EntityManager.cpp +++ b/dGame/EntityManager.cpp @@ -2,7 +2,7 @@ #include "RakNetTypes.h" #include "Game.h" #include "User.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "Character.h" #include "GeneralUtils.h" #include "dServer.h" @@ -89,7 +89,7 @@ Entity* EntityManager::CreateEntity(EntityInfo info, User* user, Entity* parentE // Entities with no ID already set, often spawned entities, we'll generate a new sequencial ID if (info.id == 0) { - id = ObjectIDManager::Instance()->GenerateObjectID(); + id = ObjectIDManager::GenerateObjectID(); } // Entities with an ID already set, often level entities, we'll use that ID as a base diff --git a/dGame/TradingManager.cpp b/dGame/TradingManager.cpp index 7c3c9bb6..3d9a209c 100644 --- a/dGame/TradingManager.cpp +++ b/dGame/TradingManager.cpp @@ -2,7 +2,7 @@ #include "EntityManager.h" #include "GameMessages.h" #include "InventoryComponent.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "Game.h" #include "Logger.h" #include "Item.h" @@ -273,7 +273,7 @@ void TradingManager::CancelTrade(LWOOBJID tradeId) { } Trade* TradingManager::NewTrade(LWOOBJID participantA, LWOOBJID participantB) { - const LWOOBJID tradeId = ObjectIDManager::Instance()->GenerateObjectID(); + const LWOOBJID tradeId = ObjectIDManager::GenerateObjectID(); auto* trade = new Trade(tradeId, participantA, participantB); diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 9afd38b2..1fed7907 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -12,7 +12,7 @@ #include "Character.h" #include <BitStream.h> #include "PacketUtils.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "Logger.h" #include "GeneralUtils.h" #include "ZoneInstanceManager.h" @@ -263,7 +263,7 @@ void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) } //Now that the name is ok, we can get an objectID from Master: - ObjectIDManager::Instance()->RequestPersistentID([=, this](uint32_t objectID) { + ObjectIDManager::RequestPersistentID([=, this](uint32_t objectID) { if (Database::Get()->GetCharacterInfo(objectID)) { LOG("Character object id unavailable, check object_id_tracker!"); WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::OBJECT_ID_UNAVAILABLE); diff --git a/dGame/dBehaviors/ProjectileAttackBehavior.cpp b/dGame/dBehaviors/ProjectileAttackBehavior.cpp index c63a3d6f..732ff186 100644 --- a/dGame/dBehaviors/ProjectileAttackBehavior.cpp +++ b/dGame/dBehaviors/ProjectileAttackBehavior.cpp @@ -5,7 +5,7 @@ #include "Game.h" #include "Logger.h" #include "SkillComponent.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "eObjectBits.h" void ProjectileAttackBehavior::Handle(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) { @@ -106,7 +106,7 @@ void ProjectileAttackBehavior::Calculate(BehaviorContext* context, RakNet::BitSt const auto maxTime = this->m_maxDistance / this->m_projectileSpeed; for (auto i = 0u; i < this->m_projectileCount; ++i) { - auto id = static_cast<LWOOBJID>(ObjectIDManager::Instance()->GenerateObjectID()); + auto id = static_cast<LWOOBJID>(ObjectIDManager::GenerateObjectID()); GeneralUtils::SetBit(id, eObjectBits::SPAWNED); diff --git a/dGame/dComponents/InventoryComponent.cpp b/dGame/dComponents/InventoryComponent.cpp index fc379398..92b5171a 100644 --- a/dGame/dComponents/InventoryComponent.cpp +++ b/dGame/dComponents/InventoryComponent.cpp @@ -7,7 +7,7 @@ #include "Game.h" #include "Logger.h" #include "CDClientManager.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "MissionComponent.h" #include "GameMessages.h" #include "SkillComponent.h" @@ -68,7 +68,7 @@ InventoryComponent::InventoryComponent(Entity* parent, tinyxml2::XMLDocument* do continue; } - const LWOOBJID id = ObjectIDManager::Instance()->GenerateObjectID(); + const LWOOBJID id = ObjectIDManager::GenerateObjectID(); const auto& info = Inventory::FindItemComponent(item.itemid); @@ -86,7 +86,7 @@ InventoryComponent::InventoryComponent(Entity* parent, tinyxml2::XMLDocument* do const auto proxyLOT = static_cast<LOT>(std::stoi(proxyLotAsString)); const auto& proxyInfo = Inventory::FindItemComponent(proxyLOT); - const LWOOBJID proxyId = ObjectIDManager::Instance()->GenerateObjectID(); + const LWOOBJID proxyId = ObjectIDManager::GenerateObjectID(); // Use item.count since we equip item.count number of the item this is a requested proxy of UpdateSlot(proxyInfo.equipLocation, { proxyId, proxyLOT, item.count, slot++ }); @@ -1341,7 +1341,7 @@ void InventoryComponent::SetNPCItems(const std::vector<LOT>& items) { auto slot = 0u; for (const auto& item : items) { - const LWOOBJID id = ObjectIDManager::Instance()->GenerateObjectID(); + const LWOOBJID id = ObjectIDManager::GenerateObjectID(); const auto& info = Inventory::FindItemComponent(item); diff --git a/dGame/dComponents/PetComponent.cpp b/dGame/dComponents/PetComponent.cpp index 901d7485..902edffe 100644 --- a/dGame/dComponents/PetComponent.cpp +++ b/dGame/dComponents/PetComponent.cpp @@ -13,7 +13,7 @@ #include "DestroyableComponent.h" #include "dpWorld.h" #include "PetDigServer.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "eUnequippableActiveType.h" #include "eTerminateType.h" #include "ePetTamingNotifyType.h" @@ -562,7 +562,7 @@ void PetComponent::NotifyTamingBuildSuccess(NiPoint3 position) { return; } - LWOOBJID petSubKey = ObjectIDManager::Instance()->GenerateRandomObjectID(); + LWOOBJID petSubKey = ObjectIDManager::GenerateRandomObjectID(); GeneralUtils::SetBit(petSubKey, eObjectBits::CHARACTER); GeneralUtils::SetBit(petSubKey, eObjectBits::PERSISTENT); diff --git a/dGame/dComponents/PropertyManagementComponent.cpp b/dGame/dComponents/PropertyManagementComponent.cpp index de37308f..833b7d73 100644 --- a/dGame/dComponents/PropertyManagementComponent.cpp +++ b/dGame/dComponents/PropertyManagementComponent.cpp @@ -13,7 +13,7 @@ #include "Game.h" #include "Item.h" #include "Database.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "Player.h" #include "RocketLaunchpadControlComponent.h" #include "PropertyEntranceComponent.h" @@ -334,7 +334,7 @@ void PropertyManagementComponent::UpdateModelPosition(const LWOOBJID id, const N node->position = position; node->rotation = rotation; - ObjectIDManager::Instance()->RequestPersistentID([this, node, modelLOT, entity, position, rotation, originalRotation](uint32_t persistentId) { + ObjectIDManager::RequestPersistentID([this, node, modelLOT, entity, position, rotation, originalRotation](uint32_t persistentId) { SpawnerInfo info{}; info.templateID = modelLOT; diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 5d3384cc..8e20e3a9 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -14,7 +14,7 @@ #include "EntityManager.h" #include "Database.h" #include "dServer.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "CppScripts.h" #include "UserManager.h" #include "ZoneInstanceManager.h" @@ -1045,7 +1045,7 @@ void GameMessages::SendDropClientLoot(Entity* entity, const LWOOBJID& sourceID, LWOOBJID owner = entity->GetObjectID(); if (item != LOT_NULL && item != 0) { - lootID = ObjectIDManager::Instance()->GenerateObjectID(); + lootID = ObjectIDManager::GenerateObjectID(); Loot::Info info; info.id = lootID; @@ -2565,12 +2565,12 @@ void GameMessages::HandleBBBSaveRequest(RakNet::BitStream* inStream, Entity* ent //But we don't want the server to go unresponsive, because then the client would disconnect. //We need to get a new ID for our model first: - ObjectIDManager::Instance()->RequestPersistentID([=](uint32_t newID) { + ObjectIDManager::RequestPersistentID([=](uint32_t newID) { LWOOBJID newIDL = newID; GeneralUtils::SetBit(newIDL, eObjectBits::CHARACTER); GeneralUtils::SetBit(newIDL, eObjectBits::PERSISTENT); - uint32_t blueprintIDSmall = ObjectIDManager::Instance()->GenerateRandomObjectID(); + uint32_t blueprintIDSmall = ObjectIDManager::GenerateRandomObjectID(); LWOOBJID blueprintID = blueprintIDSmall; GeneralUtils::SetBit(blueprintID, eObjectBits::CHARACTER); GeneralUtils::SetBit(blueprintID, eObjectBits::PERSISTENT); @@ -5565,7 +5565,7 @@ void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity* } } - ObjectIDManager::Instance()->RequestPersistentID([=](uint32_t newId) { + ObjectIDManager::RequestPersistentID([=](uint32_t newId) { LOG("Build finished"); GameMessages::SendFinishArrangingWithItem(character, entity->GetObjectID()); // kick them from modular build GameMessages::SendModularBuildEnd(character); // i dont know if this does anything but DLUv2 did it diff --git a/dGame/dInventory/Item.cpp b/dGame/dInventory/Item.cpp index e68cdebc..4a13cd92 100644 --- a/dGame/dInventory/Item.cpp +++ b/dGame/dInventory/Item.cpp @@ -2,7 +2,7 @@ #include <sstream> -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "GeneralUtils.h" #include "GameMessages.h" #include "Entity.h" diff --git a/dGame/dPropertyBehaviors/ControlBehaviors.cpp b/dGame/dPropertyBehaviors/ControlBehaviors.cpp index 248ce4e7..c541257c 100644 --- a/dGame/dPropertyBehaviors/ControlBehaviors.cpp +++ b/dGame/dPropertyBehaviors/ControlBehaviors.cpp @@ -5,7 +5,7 @@ #include "Game.h" #include "GameMessages.h" #include "ModelComponent.h" -#include "../../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "Logger.h" #include "BehaviorStates.h" #include "AssetManager.h" @@ -31,7 +31,7 @@ #include "UpdateStripUiMessage.h" void ControlBehaviors::RequestUpdatedID(ControlBehaviorContext& context) { - ObjectIDManager::Instance()->RequestPersistentID( + ObjectIDManager::RequestPersistentID( [context](uint32_t persistentId) { if (!context) { LOG("Model to update behavior ID for is null. Cannot update ID."); diff --git a/dGame/dUtilities/CMakeLists.txt b/dGame/dUtilities/CMakeLists.txt index b6bb6059..055cc706 100644 --- a/dGame/dUtilities/CMakeLists.txt +++ b/dGame/dUtilities/CMakeLists.txt @@ -3,6 +3,7 @@ set(DGAME_DUTILITIES_SOURCES "BrickDatabase.cpp" "GUID.cpp" "Loot.cpp" "Mail.cpp" + "ObjectIDManager.cpp" "Preconditions.cpp" "SlashCommandHandler.cpp" "VanityUtilities.cpp") diff --git a/dGame/dUtilities/ObjectIDManager.cpp b/dGame/dUtilities/ObjectIDManager.cpp new file mode 100644 index 00000000..a30ede05 --- /dev/null +++ b/dGame/dUtilities/ObjectIDManager.cpp @@ -0,0 +1,51 @@ +#include "ObjectIDManager.h" + +// Custom Classes +#include "MasterPackets.h" +#include "Database.h" +#include "Logger.h" +#include "Game.h" + + //! The persistent ID request +struct PersistentIDRequest { + PersistentIDRequest(const uint64_t& requestID, const std::function<void(uint32_t)>& callback) : requestID(requestID), callback(callback) {} + uint64_t requestID; + + std::function<void(uint32_t)> callback; +}; + +namespace { + std::vector<PersistentIDRequest> Requests; //!< All outstanding persistent ID requests + uint64_t CurrentRequestID = 0; //!< The current request ID + uint32_t CurrentObjectID = uint32_t(1152921508165007067); //!< The current object ID + std::uniform_int_distribution<int> Uni(10000000, INT32_MAX); +}; + +//! Requests a persistent ID +void ObjectIDManager::RequestPersistentID(const std::function<void(uint32_t)> callback) { + const auto& request = Requests.emplace_back(++CurrentRequestID, callback); + + MasterPackets::SendPersistentIDRequest(Game::server, request.requestID); +} + +//! Handles a persistent ID response +void ObjectIDManager::HandleRequestPersistentIDResponse(const uint64_t requestID, const uint32_t persistentID) { + auto it = std::find_if(Requests.begin(), Requests.end(), [requestID](const PersistentIDRequest& request) { + return request.requestID == requestID; + }); + + if (it == Requests.end()) return; + + it->callback(persistentID); + Requests.erase(it); +} + +//! Handles cases where we have to get a unique object ID synchronously +uint32_t ObjectIDManager::GenerateRandomObjectID() { + return Uni(Game::randomEngine); +} + +//! Generates an object ID server-sided (used for regular entities like smashables) +uint32_t ObjectIDManager::GenerateObjectID() { + return ++CurrentObjectID; +} diff --git a/dGame/dUtilities/ObjectIDManager.h b/dGame/dUtilities/ObjectIDManager.h new file mode 100644 index 00000000..7650e4cc --- /dev/null +++ b/dGame/dUtilities/ObjectIDManager.h @@ -0,0 +1,40 @@ +#pragma once + +// C++ +#include <functional> +#include <vector> +#include <stdint.h> + +/*! + \file ObjectIDManager.h + \brief A manager for handling object ID generation + */ + +//! The Object ID Manager +namespace ObjectIDManager { + //! Requests a persistent ID + /*! + \param callback The callback function + */ + void RequestPersistentID(const std::function<void(uint32_t)> callback); + + + //! Handles a persistent ID response + /*! + \param requestID The request ID + \param persistentID The persistent ID + */ + void HandleRequestPersistentIDResponse(const uint64_t requestID, const uint32_t persistentID); + + //! Generates an object ID server-sided + /*! + \return A generated object ID + */ + uint32_t GenerateObjectID(); + + //! Generates a random object ID server-sided + /*! + \return A generated object ID + */ + uint32_t GenerateRandomObjectID(); +}; diff --git a/dGame/dUtilities/VanityUtilities.cpp b/dGame/dUtilities/VanityUtilities.cpp index 6d5f996c..fa1a3eac 100644 --- a/dGame/dUtilities/VanityUtilities.cpp +++ b/dGame/dUtilities/VanityUtilities.cpp @@ -17,7 +17,7 @@ #include "EntityInfo.h" #include "Spawner.h" #include "dZoneManager.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "Level.h" #include <fstream> @@ -182,7 +182,7 @@ LWOOBJID VanityUtilities::SpawnSpawner(LOT lot, const NiPoint3& position, const obj.lot = lot; // guratantee we have no collisions do { - obj.id = ObjectIDManager::Instance()->GenerateObjectID(); + obj.id = ObjectIDManager::GenerateObjectID(); } while(Game::zoneManager->GetSpawner(obj.id)); obj.position = position; obj.rotation = rotation; diff --git a/dMasterServer/CMakeLists.txt b/dMasterServer/CMakeLists.txt index 2ebdee37..108cddc2 100644 --- a/dMasterServer/CMakeLists.txt +++ b/dMasterServer/CMakeLists.txt @@ -1,6 +1,6 @@ set(DMASTERSERVER_SOURCES "InstanceManager.cpp" - "ObjectIDManager.cpp" + "PersistentIDManager.cpp" "Start.cpp" ) diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index 15d8db15..e5997b51 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -35,7 +35,7 @@ #include "Game.h" #include "InstanceManager.h" #include "MasterPackets.h" -#include "ObjectIDManager.h" +#include "PersistentIDManager.h" #include "PacketUtils.h" #include "FdbToSqlite.h" #include "BitStreamUtils.h" @@ -134,7 +134,7 @@ int main(int argc, char** argv) { if (!resServerPathExists) { LOG("%s does not exist, creating it.", (resServerPath).c_str()); - if(!std::filesystem::create_directories(resServerPath)){ + if (!std::filesystem::create_directories(resServerPath)) { LOG("Failed to create %s", (resServerPath).string().c_str()); return EXIT_FAILURE; } @@ -257,8 +257,8 @@ int main(int argc, char** argv) { //Create account try { Database::Get()->InsertNewAccount(username, std::string(hash, BCRYPT_HASHSIZE)); - } catch(sql::SQLException& e) { - LOG("A SQL error occurred!:\n %s", e.what()); + } catch (sql::SQLException& e) { + LOG("A SQL error occurred!:\n %s", e.what()); return EXIT_FAILURE; } @@ -288,7 +288,7 @@ int main(int argc, char** argv) { Database::Get()->SetMasterIp(master_server_ip, Game::server->GetPort()); //Create additional objects here: - ObjectIDManager::Instance()->Initialize(Game::logger); + PersistentIDManager::Initialize(); Game::im = new InstanceManager(Game::logger, Game::server->GetIP()); //Depending on the config, start up servers: @@ -464,7 +464,7 @@ void HandlePacket(Packet* packet) { uint64_t requestID = 0; inStream.Read(requestID); - uint32_t objID = ObjectIDManager::Instance()->GeneratePersistentID(); + uint32_t objID = PersistentIDManager::GeneratePersistentID(); MasterPackets::SendPersistentIDResponse(Game::server, packet->systemAddress, requestID, objID); break; } @@ -822,11 +822,8 @@ int ShutdownSequence(int32_t signal) { LOG("Triggered master shutdown"); } - auto* objIdManager = ObjectIDManager::TryInstance(); - if (objIdManager) { - objIdManager->SaveToDatabase(); - LOG("Saved ObjectIDTracker to DB"); - } + PersistentIDManager::SaveToDatabase(); + LOG("Saved ObjectIDTracker to DB"); // A server might not be finished spinning up yet, remove all of those here. for (auto* instance : Game::im->GetInstances()) { diff --git a/dMasterServer/ObjectIDManager.h b/dMasterServer/ObjectIDManager.h deleted file mode 100644 index cdb6dcdf..00000000 --- a/dMasterServer/ObjectIDManager.h +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once - -// C++ -#include <cstdint> - -class Logger; - -/*! - \file ObjectIDManager.hpp - \brief A manager that handles requests for object IDs - */ - - //! The Object ID Manager -class ObjectIDManager { -private: - Logger* mLogger; - static ObjectIDManager* m_Address; //!< The singleton instance - - uint32_t currentPersistentID; //!< The highest current persistent ID in use - -public: - - //! Return the singleton if it is initialized - static ObjectIDManager* TryInstance() { - return m_Address; - } - - //! The singleton method - static ObjectIDManager* Instance() { - if (m_Address == nullptr) { - m_Address = new ObjectIDManager; - } - - return m_Address; - } - - //! Initializes the manager - void Initialize(Logger* logger); - - //! Generates a new persistent ID - /*! - \return The new persistent ID - */ - uint32_t GeneratePersistentID(); - - void SaveToDatabase(); -}; diff --git a/dMasterServer/ObjectIDManager.cpp b/dMasterServer/PersistentIDManager.cpp similarity index 58% rename from dMasterServer/ObjectIDManager.cpp rename to dMasterServer/PersistentIDManager.cpp index 4739addf..3e56fadc 100644 --- a/dMasterServer/ObjectIDManager.cpp +++ b/dMasterServer/PersistentIDManager.cpp @@ -1,48 +1,45 @@ -#include "ObjectIDManager.h" +#include "PersistentIDManager.h" // Custom Classes #include "Database.h" #include "Logger.h" #include "Game.h" -// Static Variables -ObjectIDManager* ObjectIDManager::m_Address = nullptr; +namespace { + uint32_t CurrentPersistentID = 1; //!< The highest current persistent ID in use +}; //! Initializes the manager -void ObjectIDManager::Initialize(Logger* logger) { - this->mLogger = logger; - this->currentPersistentID = 1; - +void PersistentIDManager::Initialize() { try { auto lastObjectId = Database::Get()->GetCurrentPersistentId(); if (!lastObjectId) { Database::Get()->InsertDefaultPersistentId(); - return; } else { - this->currentPersistentID = lastObjectId.value(); + CurrentPersistentID = lastObjectId.value(); } - if (this->currentPersistentID <= 0) { + if (CurrentPersistentID <= 0) { LOG("Invalid persistent object ID in database. Aborting to prevent bad id generation."); throw std::runtime_error("Invalid persistent object ID in database. Aborting to prevent bad id generation."); } } catch (sql::SQLException& e) { LOG("Unable to fetch max persistent object ID in use. This will cause issues. Aborting to prevent collisions."); LOG("SQL error: %s", e.what()); - throw; + throw e; } } //! Generates a new persistent ID -uint32_t ObjectIDManager::GeneratePersistentID() { - uint32_t toReturn = ++this->currentPersistentID; +uint32_t PersistentIDManager::GeneratePersistentID() { + uint32_t toReturn = ++CurrentPersistentID; SaveToDatabase(); return toReturn; } -void ObjectIDManager::SaveToDatabase() { - Database::Get()->UpdatePersistentId(this->currentPersistentID); +void PersistentIDManager::SaveToDatabase() { + Database::Get()->UpdatePersistentId(CurrentPersistentID); } diff --git a/dMasterServer/PersistentIDManager.h b/dMasterServer/PersistentIDManager.h new file mode 100644 index 00000000..916ee33a --- /dev/null +++ b/dMasterServer/PersistentIDManager.h @@ -0,0 +1,23 @@ +#pragma once + +// C++ +#include <cstdint> + +/*! + \file PersistentIDManager.h + \brief A manager that handles requests for object IDs + */ + + //! The Object ID Manager +namespace PersistentIDManager { + //! Initializes the manager + void Initialize(); + + //! Generates a new persistent ID + /*! + \return The new persistent ID + */ + uint32_t GeneratePersistentID(); + + void SaveToDatabase(); +}; diff --git a/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp b/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp index 55c82b95..1a298843 100644 --- a/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp +++ b/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp @@ -9,7 +9,7 @@ #include "CharacterComponent.h" #include "SimplePhysicsComponent.h" #include "MovementAIComponent.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" #include "MissionComponent.h" #include "Loot.h" #include "InventoryComponent.h" diff --git a/dWorldServer/CMakeLists.txt b/dWorldServer/CMakeLists.txt index a790487e..336a60f9 100644 --- a/dWorldServer/CMakeLists.txt +++ b/dWorldServer/CMakeLists.txt @@ -1,5 +1,4 @@ set(DWORLDSERVER_SOURCES - "ObjectIDManager.cpp" "PerformanceManager.cpp" ) diff --git a/dWorldServer/ObjectIDManager.cpp b/dWorldServer/ObjectIDManager.cpp deleted file mode 100644 index 44a45437..00000000 --- a/dWorldServer/ObjectIDManager.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "ObjectIDManager.h" - -// Custom Classes -#include "MasterPackets.h" -#include "Database.h" -#include "Logger.h" -#include "Game.h" - -// Static Variables -ObjectIDManager* ObjectIDManager::m_Address = nullptr; -static std::uniform_int_distribution<int> uni(10000000, INT32_MAX); - -//! Initializes the manager -void ObjectIDManager::Initialize(void) { - //this->currentRequestID = 0; - this->currentObjectID = uint32_t(1152921508165007067); //Initial value for this server's objectIDs -} - -//! Requests a persistent ID -void ObjectIDManager::RequestPersistentID(std::function<void(uint32_t)> callback) { - PersistentIDRequest* request = new PersistentIDRequest(); - request->requestID = ++this->currentRequestID; - request->callback = callback; - - this->requests.push_back(request); - - MasterPackets::SendPersistentIDRequest(Game::server, request->requestID); -} - -//! Handles a persistent ID response -void ObjectIDManager::HandleRequestPersistentIDResponse(uint64_t requestID, uint32_t persistentID) { - for (uint32_t i = 0; i < this->requests.size(); ++i) { - if (this->requests[i]->requestID == requestID) { - - // Call the callback function - this->requests[i]->callback(persistentID); - - // Then delete the request - delete this->requests[i]; - this->requests.erase(this->requests.begin() + i); - return; - } - } -} - -//! Handles cases where we have to get a unique object ID synchronously -uint32_t ObjectIDManager::GenerateRandomObjectID() { - return uni(Game::randomEngine); -} - - -//! Generates an object ID server-sided (used for regular entities like smashables) -uint32_t ObjectIDManager::GenerateObjectID(void) { - return ++this->currentObjectID; -} diff --git a/dWorldServer/ObjectIDManager.h b/dWorldServer/ObjectIDManager.h deleted file mode 100644 index deef89fd..00000000 --- a/dWorldServer/ObjectIDManager.h +++ /dev/null @@ -1,75 +0,0 @@ -#pragma once - -// C++ -#include <functional> -#include <vector> -#include <stdint.h> - -/*! - \file ObjectIDManager.hpp - \brief A manager for handling object ID generation - */ - - //! The persistent ID request -struct PersistentIDRequest { - uint64_t requestID; - - std::function<void(uint32_t)> callback; -}; - -//! The Object ID Manager -class ObjectIDManager { -private: - static ObjectIDManager* m_Address; //!< The singleton instance - - std::vector<PersistentIDRequest*> requests; //!< All outstanding persistent ID requests - uint64_t currentRequestID; //!< The current request ID - - uint32_t currentObjectID; //!< The current object ID - -public: - - //! The singleton instance - static ObjectIDManager* Instance() { - if (m_Address == 0) { - m_Address = new ObjectIDManager; - } - - return m_Address; - } - - //! Initializes the manager - void Initialize(void); - - //! Requests a persistent ID - /*! - \param callback The callback function - */ - void RequestPersistentID(std::function<void(uint32_t)> callback); - - - //! Handles a persistent ID response - /*! - \param requestID The request ID - \param persistentID The persistent ID - */ - void HandleRequestPersistentIDResponse(uint64_t requestID, uint32_t persistentID); - - //! Generates an object ID server-sided - /*! - \return A generated object ID - */ - uint32_t GenerateObjectID(void); - - //! Generates a random object ID server-sided - /*! - \return A generated object ID - */ - static uint32_t GenerateRandomObjectID(); - - //! Generates a persistent object ID server-sided - /*! - \return A generated object ID - */ - uint32_t GeneratePersistentObjectID(void); -}; diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index c8866b13..f911f804 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -208,7 +208,6 @@ int main(int argc, char** argv) { masterPort = masterInfo->port; } - ObjectIDManager::Instance()->Initialize(); UserManager::Instance()->Initialize(); bool dontGenerateDCF = false; @@ -736,7 +735,7 @@ void HandlePacket(Packet* packet) { case eMasterMessageType::REQUEST_PERSISTENT_ID_RESPONSE: { uint64_t requestID = PacketUtils::ReadU64(8, packet); uint32_t objectID = PacketUtils::ReadU32(16, packet); - ObjectIDManager::Instance()->HandleRequestPersistentIDResponse(requestID, objectID); + ObjectIDManager::HandleRequestPersistentIDResponse(requestID, objectID); break; } diff --git a/dZoneManager/dZoneManager.cpp b/dZoneManager/dZoneManager.cpp index a6ce0944..3aa35485 100644 --- a/dZoneManager/dZoneManager.cpp +++ b/dZoneManager/dZoneManager.cpp @@ -15,7 +15,7 @@ #include "CDZoneTableTable.h" #include "AssetManager.h" -#include "../dWorldServer/ObjectIDManager.h" +#include "ObjectIDManager.h" void dZoneManager::Initialize(const LWOZONEID& zoneID) { LOG("Preparing zone: %i/%i/%i", zoneID.GetMapID(), zoneID.GetInstanceID(), zoneID.GetCloneID()); @@ -112,7 +112,7 @@ LWOOBJID dZoneManager::MakeSpawner(SpawnerInfo info) { auto objectId = info.spawnerID; if (objectId == LWOOBJID_EMPTY) { - objectId = ObjectIDManager::Instance()->GenerateObjectID(); + objectId = ObjectIDManager::GenerateObjectID(); GeneralUtils::SetBit(objectId, eObjectBits::CLIENT); info.spawnerID = objectId; From 2804dc3ec25fef8cdcd4a52331b8d2b4d23f5045 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 5 Jan 2024 04:33:52 -0800 Subject: [PATCH 084/106] fix: make include paths consistent (#1390) * fix: bad header includes tests pass * fix-up more include paths --- CMakeLists.txt | 1 + dAuthServer/AuthServer.cpp | 2 +- dChatServer/ChatServer.cpp | 2 +- dCommon/AmfSerialize.h | 2 +- dCommon/GeneralUtils.h | 2 +- dCommon/ZCompression.cpp | 2 +- dCommon/dClient/AssetManager.cpp | 2 +- dGame/Character.h | 2 +- dGame/Entity.cpp | 2 +- dGame/User.h | 2 +- dGame/UserManager.cpp | 4 ++-- dGame/dComponents/ActivityComponent.cpp | 2 +- dGame/dComponents/BaseCombatAIComponent.cpp | 2 +- dGame/dComponents/BouncerComponent.cpp | 2 +- dGame/dComponents/BuffComponent.cpp | 2 +- dGame/dComponents/CharacterComponent.cpp | 2 +- dGame/dComponents/Component.h | 2 +- dGame/dComponents/DestroyableComponent.cpp | 2 +- dGame/dComponents/PropertyEntranceComponent.cpp | 2 +- dGame/dComponents/QuickBuildComponent.h | 2 +- dGame/dComponents/RenderComponent.h | 2 +- dGame/dGameMessages/GameMessageHandler.cpp | 2 +- dGame/dGameMessages/GameMessages.cpp | 2 +- dNet/AuthPackets.cpp | 2 +- dNet/PacketUtils.h | 4 ++-- dNet/ZoneInstanceManager.h | 2 +- tests/dCommonTests/dCommonDependencies.h | 2 -- 27 files changed, 28 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 91a26dc5..00c12e28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -243,6 +243,7 @@ set(INCLUDED_DIRECTORIES "thirdparty/recastnavigation" "thirdparty/SQLite" "thirdparty/cpplinq" + "thirdparty/cpp-httplib" "tests" "tests/dCommonTests" diff --git a/dAuthServer/AuthServer.cpp b/dAuthServer/AuthServer.cpp index 414c572f..c2cfbfcc 100644 --- a/dAuthServer/AuthServer.cpp +++ b/dAuthServer/AuthServer.cpp @@ -16,7 +16,7 @@ //RakNet includes: #include "RakNetDefines.h" -#include <MessageIdentifiers.h> +#include "MessageIdentifiers.h" //Auth includes: #include "AuthPackets.h" diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 72220d83..8e1d3adf 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -25,7 +25,7 @@ //RakNet includes: #include "RakNetDefines.h" -#include <MessageIdentifiers.h> +#include "MessageIdentifiers.h" namespace Game { Logger* logger = nullptr; diff --git a/dCommon/AmfSerialize.h b/dCommon/AmfSerialize.h index 9a6f56f2..06abae74 100644 --- a/dCommon/AmfSerialize.h +++ b/dCommon/AmfSerialize.h @@ -4,7 +4,7 @@ #include "Amf3.h" // RakNet -#include <BitStream.h> +#include "BitStream.h" /*! \file AmfSerialize.h diff --git a/dCommon/GeneralUtils.h b/dCommon/GeneralUtils.h index 964a864b..37291ab8 100644 --- a/dCommon/GeneralUtils.h +++ b/dCommon/GeneralUtils.h @@ -9,7 +9,7 @@ #include <functional> #include <type_traits> #include <stdexcept> -#include <BitStream.h> +#include "BitStream.h" #include "NiPoint3.h" #include "Game.h" diff --git a/dCommon/ZCompression.cpp b/dCommon/ZCompression.cpp index d5d4c126..e5b3c8fb 100644 --- a/dCommon/ZCompression.cpp +++ b/dCommon/ZCompression.cpp @@ -1,6 +1,6 @@ #include "ZCompression.h" -#include <zlib.h> +#include "zlib.h" namespace ZCompression { int32_t GetMaxCompressedLength(int32_t nLenSrc) { diff --git a/dCommon/dClient/AssetManager.cpp b/dCommon/dClient/AssetManager.cpp index 98a71e37..59427ee5 100644 --- a/dCommon/dClient/AssetManager.cpp +++ b/dCommon/dClient/AssetManager.cpp @@ -4,7 +4,7 @@ #include "Game.h" #include "Logger.h" -#include <zlib.h> +#include "zlib.h" AssetManager::AssetManager(const std::filesystem::path& path) { if (!std::filesystem::is_directory(path)) { diff --git a/dGame/Character.h b/dGame/Character.h index 77a52f44..6c8ead30 100644 --- a/dGame/Character.h +++ b/dGame/Character.h @@ -3,7 +3,7 @@ #include "dCommonVars.h" #include <vector> -#include "../thirdparty/tinyxml2/tinyxml2.h" +#include "tinyxml2.h" #include <unordered_map> #include <map> diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index fce2aefe..aaa01e97 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -3,7 +3,7 @@ #include "CDClientManager.h" #include "Game.h" #include "Logger.h" -#include <PacketUtils.h> +#include "PacketUtils.h" #include <functional> #include "CDDestructibleComponentTable.h" #include "CDClientDatabase.h" diff --git a/dGame/User.h b/dGame/User.h index 5d9ea8f1..54e6ad52 100644 --- a/dGame/User.h +++ b/dGame/User.h @@ -3,7 +3,7 @@ #include <string> #include <vector> -#include "../thirdparty/raknet/Source/RakNetTypes.h" +#include "RakNetTypes.h" #include "dCommonVars.h" #include <unordered_map> diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 1fed7907..736339a4 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -8,9 +8,9 @@ #include "Game.h" #include "Logger.h" #include "User.h" -#include <WorldPackets.h> +#include "WorldPackets.h" #include "Character.h" -#include <BitStream.h> +#include "BitStream.h" #include "PacketUtils.h" #include "ObjectIDManager.h" #include "Logger.h" diff --git a/dGame/dComponents/ActivityComponent.cpp b/dGame/dComponents/ActivityComponent.cpp index 55bc4c08..7ea7500b 100644 --- a/dGame/dComponents/ActivityComponent.cpp +++ b/dGame/dComponents/ActivityComponent.cpp @@ -7,7 +7,7 @@ #include "ZoneInstanceManager.h" #include "Game.h" #include "Logger.h" -#include <WorldPackets.h> +#include "WorldPackets.h" #include "EntityManager.h" #include "ChatPackets.h" #include "Player.h" diff --git a/dGame/dComponents/BaseCombatAIComponent.cpp b/dGame/dComponents/BaseCombatAIComponent.cpp index 17a2f1ea..4e969ced 100644 --- a/dGame/dComponents/BaseCombatAIComponent.cpp +++ b/dGame/dComponents/BaseCombatAIComponent.cpp @@ -1,5 +1,5 @@ #include "BaseCombatAIComponent.h" -#include <BitStream.h> +#include "BitStream.h" #include "Entity.h" #include "EntityManager.h" diff --git a/dGame/dComponents/BouncerComponent.cpp b/dGame/dComponents/BouncerComponent.cpp index 56002ac4..78ee3637 100644 --- a/dGame/dComponents/BouncerComponent.cpp +++ b/dGame/dComponents/BouncerComponent.cpp @@ -6,7 +6,7 @@ #include "Game.h" #include "Logger.h" #include "GameMessages.h" -#include <BitStream.h> +#include "BitStream.h" #include "eTriggerEventType.h" BouncerComponent::BouncerComponent(Entity* parent) : Component(parent) { diff --git a/dGame/dComponents/BuffComponent.cpp b/dGame/dComponents/BuffComponent.cpp index 1819438b..10ac4ebb 100644 --- a/dGame/dComponents/BuffComponent.cpp +++ b/dGame/dComponents/BuffComponent.cpp @@ -1,5 +1,5 @@ #include "BuffComponent.h" -#include <BitStream.h> +#include "BitStream.h" #include "CDClientDatabase.h" #include <stdexcept> #include "DestroyableComponent.h" diff --git a/dGame/dComponents/CharacterComponent.cpp b/dGame/dComponents/CharacterComponent.cpp index efc5d9d5..702ab70f 100644 --- a/dGame/dComponents/CharacterComponent.cpp +++ b/dGame/dComponents/CharacterComponent.cpp @@ -1,5 +1,5 @@ #include "CharacterComponent.h" -#include <BitStream.h> +#include "BitStream.h" #include "tinyxml2.h" #include "Game.h" #include "Logger.h" diff --git a/dGame/dComponents/Component.h b/dGame/dComponents/Component.h index c0debb0b..d1ad0860 100644 --- a/dGame/dComponents/Component.h +++ b/dGame/dComponents/Component.h @@ -1,6 +1,6 @@ #pragma once -#include "../thirdparty/tinyxml2/tinyxml2.h" +#include "tinyxml2.h" class Entity; diff --git a/dGame/dComponents/DestroyableComponent.cpp b/dGame/dComponents/DestroyableComponent.cpp index 1ced2f54..64dca4f1 100644 --- a/dGame/dComponents/DestroyableComponent.cpp +++ b/dGame/dComponents/DestroyableComponent.cpp @@ -1,5 +1,5 @@ #include "DestroyableComponent.h" -#include <BitStream.h> +#include "BitStream.h" #include "Logger.h" #include "Game.h" #include "dConfig.h" diff --git a/dGame/dComponents/PropertyEntranceComponent.cpp b/dGame/dComponents/PropertyEntranceComponent.cpp index c49d8985..2bb6ea30 100644 --- a/dGame/dComponents/PropertyEntranceComponent.cpp +++ b/dGame/dComponents/PropertyEntranceComponent.cpp @@ -1,6 +1,6 @@ #include "PropertyEntranceComponent.h" -#include <CDPropertyEntranceComponentTable.h> +#include "CDPropertyEntranceComponentTable.h" #include "Character.h" #include "Database.h" diff --git a/dGame/dComponents/QuickBuildComponent.h b/dGame/dComponents/QuickBuildComponent.h index feef1f74..f1106a61 100644 --- a/dGame/dComponents/QuickBuildComponent.h +++ b/dGame/dComponents/QuickBuildComponent.h @@ -1,7 +1,7 @@ #ifndef QUICKBUILDCOMPONENT_H #define QUICKBUILDCOMPONENT_H -#include <BitStream.h> +#include "BitStream.h" #include <vector> #include <string> #include "dCommonVars.h" diff --git a/dGame/dComponents/RenderComponent.h b/dGame/dComponents/RenderComponent.h index d4d1e5c3..74f39625 100644 --- a/dGame/dComponents/RenderComponent.h +++ b/dGame/dComponents/RenderComponent.h @@ -1,7 +1,7 @@ #ifndef RENDERCOMPONENT_H #define RENDERCOMPONENT_H -#include <BitStream.h> +#include "BitStream.h" #include <vector> #include <string> #include <unordered_map> diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index c4ac1910..6e313ab1 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -7,7 +7,7 @@ #include "MissionComponent.h" #include "BitStreamUtils.h" #include "dServer.h" -#include "../thirdparty/raknet/Source/RakNetworkFactory.h" +#include "RakNetworkFactory.h" #include <future> #include "User.h" #include "UserManager.h" diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 8e20e3a9..eb6f11bb 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -50,7 +50,7 @@ #include <chrono> #include "RakString.h" -#include "../thirdparty/cpp-httplib/httplib.h" //sorry not sorry. +#include "httplib.h" //sorry not sorry. //CDB includes: #include "CDClientManager.h" diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index b6a1f913..7feb0cc3 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -13,7 +13,7 @@ #include <bcrypt/BCrypt.hpp> -#include <BitStream.h> +#include "BitStream.h" #include <future> #include "Game.h" diff --git a/dNet/PacketUtils.h b/dNet/PacketUtils.h index 2afd53c7..f8558dfd 100644 --- a/dNet/PacketUtils.h +++ b/dNet/PacketUtils.h @@ -1,8 +1,8 @@ #ifndef PACKETUTILS_H #define PACKETUTILS_H -#include <MessageIdentifiers.h> -#include <BitStream.h> +#include "MessageIdentifiers.h" +#include "BitStream.h" #include <string> enum class eConnectionType : uint16_t; diff --git a/dNet/ZoneInstanceManager.h b/dNet/ZoneInstanceManager.h index a8e32c4e..3f8da1ae 100644 --- a/dNet/ZoneInstanceManager.h +++ b/dNet/ZoneInstanceManager.h @@ -7,7 +7,7 @@ #include <string> // RakNet -#include <RakNetTypes.h> +#include "RakNetTypes.h" class dServer; diff --git a/tests/dCommonTests/dCommonDependencies.h b/tests/dCommonTests/dCommonDependencies.h index 228c3c52..e82f4a4b 100644 --- a/tests/dCommonTests/dCommonDependencies.h +++ b/tests/dCommonTests/dCommonDependencies.h @@ -4,8 +4,6 @@ #include "Game.h" #include "Logger.h" #include "dServer.h" -#include "EntityInfo.h" -#include "EntityManager.h" #include "dConfig.h" #include <gtest/gtest.h> From 15a461d857f21dd0985ffb0ed16c0c250ab61698 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 5 Jan 2024 16:49:21 -0800 Subject: [PATCH 085/106] fix crash (#1395) Update SlashCommandHandler.cpp --- dGame/dUtilities/SlashCommandHandler.cpp | 50 ++++++------------------ 1 file changed, 12 insertions(+), 38 deletions(-) diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 104b1232..1cff553d 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -347,17 +347,6 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit }); } - if (chatCommand == "resetmission") { - uint32_t missionId; - if (!GeneralUtils::TryParse(args[0], missionId)) { - ChatPackets::SendSystemMessage(sysAddr, u"Invalid mission ID."); - return; - } - auto* missionComponent = entity->GetComponent<MissionComponent>(); - if (!missionComponent) return; - missionComponent->ResetMission(missionId); - } - if (user->GetMaxGMLevel() == eGameMasterLevel::CIVILIAN || entity->GetGMLevel() >= eGameMasterLevel::CIVILIAN) { if (chatCommand == "die") { entity->Smash(entity->GetObjectID()); @@ -387,6 +376,18 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (entity->GetGMLevel() == eGameMasterLevel::CIVILIAN) return; } + if (chatCommand == "resetmission" && args.size() >= 1 && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER) { + uint32_t missionId; + if (!GeneralUtils::TryParse(args[0], missionId)) { + ChatPackets::SendSystemMessage(sysAddr, u"Invalid mission ID."); + return; + } + + auto* missionComponent = entity->GetComponent<MissionComponent>(); + if (!missionComponent) return; + missionComponent->ResetMission(missionId); + } + // Log command to database Database::Get()->InsertSlashCommandUsage(entity->GetObjectID(), chatCommand); @@ -703,33 +704,6 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit entity->GetCharacter()->SetPlayerFlag(flagId, false); } - if (chatCommand == "resetmission" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER) { - if (args.size() == 0) return; - - uint32_t missionID; - - if (!GeneralUtils::TryParse(args[0], missionID)) { - ChatPackets::SendSystemMessage(sysAddr, u"Invalid mission id."); - return; - } - - auto* comp = static_cast<MissionComponent*>(entity->GetComponent(eReplicaComponentType::MISSION)); - - if (comp == nullptr) { - return; - } - - auto* mission = comp->GetMission(missionID); - - if (mission == nullptr) { - return; - } - - mission->SetMissionState(eMissionState::ACTIVE); - - return; - } - if (chatCommand == "playeffect" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER && args.size() >= 3) { int32_t effectID = 0; From 3deec6499dd2f868503f9f6f81b22ba5ce63745f Mon Sep 17 00:00:00 2001 From: Demetri Van Sickle <demetriv.s.7@gmail.com> Date: Fri, 5 Jan 2024 16:49:56 -0800 Subject: [PATCH 086/106] Update Commands.md (#1396) > Added `spawngroup` command > Recorded some commands that were out of order from least to greatest GM level > Filled in missing admin levels > Added alt spellings of commands > Fixed incorrect GM level of `fly` command from 4 to 6 --- docs/Commands.md | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/docs/Commands.md b/docs/Commands.md index 0ba7d86e..62607939 100644 --- a/docs/Commands.md +++ b/docs/Commands.md @@ -1,3 +1,4 @@ + # In-game commands * All commands are prefixed by `/` and typed in the in-game chat window. Some commands require elevated gmlevel privileges. Operands within `<>` are required, operands within `()` are not. @@ -5,34 +6,34 @@ |Command|Usage|Description|Admin Level Requirement| |--- |--- |--- |--- | -|credits|`/credits`|Displays the names of the people behind Darkflame Universe.|| -|die|`/die`|Smashes the player.|| -|info|`/info`|Displays server info to the user, including where to find the server's source code.|| -|instanceinfo|`/instanceinfo`|Displays in the chat the current zone, clone, and instance id.|| +|credits|`/credits`|Displays the names of the people behind Darkflame Universe.|0| +|die|`/die`|Smashes the player.|0| +|info|`/info`|Displays server info to the user, including where to find the server's source code.|0| +|instanceinfo|`/instanceinfo`|Displays in the chat the current zone, clone, and instance id.|0| |ping|`/ping (-l)`|Displays in chat your average ping. If the `-l` flag is used, the latest ping is displayed.|| -|pvp|`/pvp`|Toggle your PVP flag.|| -|resurrect|`/resurrect`|Resurrects the player.|| -|requestmailcount|`/requestmailcount`|Sends notification with number of unread messages in the player's mailbox.|| -|who|`/who`|Displays in chat all players on the instance.|| -|togglenameplate|`/togglenameplate`|Turns the nameplate above your head that is visible to other players off and on.|8 or if `allow_nameplate_off` is set to exactly `1` in the settings| -|toggleskipcinematics|`/toggleskipcinematics`|Skips mission and world load related cinematics.|8 or if `allow_players_to_skip_cinematics` is set to exactly `1` in the settings then 0| +|pvp|`/pvp`|Toggle your PVP flag.|0| +|resurrect|`/resurrect`|Resurrects the player.|0| +|requestmailcount|`/requestmailcount`|Sends notification with number of unread messages in the player's mailbox.|0| +|who|`/who`|Displays in chat all players on the instance.|0| +|togglenameplate|`/togglenameplate`|Turns the nameplate above your head that is visible to other players off and on.|8 unless `allow_nameplate_off` is set to exactly `1` in the settings then admin level requirement is 0| +|toggleskipcinematics|`/toggleskipcinematics`|Skips mission and world load related cinematics.|8 unless `allow_players_to_skip_cinematics` is set to exactly `1` in the settings then admin level requirement is 0| ## Moderation Commands |Command|Usage|Description|Admin Level Requirement| |--- |--- |--- |--- | -|gmlevel|`/gmlevel <level>`|Within the authorized range of levels for the current account, changes the character's game master level to the specified value. This is required to use certain commands. Aliases: `/setgmlevel`, `/makegm`.|| +|gmlevel|`/gmlevel <level>`|Within the authorized range of levels for the current account, changes the character's game master level to the specified value. This is required to use certain commands. Aliases: `/setgmlevel`, `/makegm`.|Account GM level greater than 0| |kick|`/kick <username>`|Kicks the player off the server.|2| |mailitem|`/mailitem <player name> <item id>`|Mails an item to the given player. The mailed item has predetermined content. The sender name is set to "Darkflame Universe." The title of the message is "Lost item." The body of the message is "This is a replacement item for one you lost."|3| |ban|`/ban <username>`|Bans a user from the server.|4| |approveproperty|`/approveproperty`|Approves the property the player is currently visiting.|5| |mute|`/mute <username> (days) (hours)`|Mute player for the given amount of time. If no time is given, the mute is indefinite.|6| +|fly|`/fly <speed>`|This toggles your flying state with an optional parameter for the speed scale.|6| |attackimmune|`/attackimmune <value>`|Sets the character's immunity to basic attacks state, where value can be one of "1", to make yourself immune to basic attack damage, or "0" to undo.|8| |gmimmune|`/gmimmunve <value>`|Sets the character's GMImmune state, where value can be one of "1", to make yourself immune to damage, or "0" to undo.|8| |gminvis|`/gminvis`|Toggles invisibility for the character, though it's currently a bit buggy. Requires nonzero GM Level for the character, but the account must have a GM level of 8.|8| |setname|`/setname <name>`|Sets a temporary name for your player. The name resets when you log out.|8| |title|`/title <title>`|Temporarily appends your player's name with " - &#60;title&#62;". This resets when you log out.|8| -|fly|`/fly <speed>`|This toggles your flying state with an optional parameter for the speed scale.|4| ## Server Operation Commands @@ -51,14 +52,14 @@ These commands are primarily for development and testing. The usage of many of t |Command|Usage|Description|Admin Level Requirement| |--- |--- |--- |--- | -|fix-stats|`/fix-stats`|Resets skills, buffs, and destroyables.|| -|join|`/join <password>`|Joins a private zone with given password.|| -|leave-zone|`/leave-zone`|If you are in an instanced zone, transfers you to the closest main world. For example, if you are in an instance of Avant Gardens Survival or the Spider Queen Battle, you are sent to Avant Gardens. If you are in the Battle of Nimbus Station, you are sent to Nimbus Station.|| +|fix-stats|`/fix-stats`|Resets skills, buffs, and destroyables.|0| +|join|`/join <password>`|Joins a private zone with given password.|0| +|leave-zone|`/leave-zone` or <br> `/leavezone`|If you are in an instanced zone, transfers you to the closest main world. For example, if you are in an instance of Avant Gardens Survival or the Spider Queen Battle, you are sent to Avant Gardens. If you are in the Battle of Nimbus Station, you are sent to Nimbus Station.|0| |setminifig|`/setminifig <body part> <minifig item id>`|Alters your player's minifig. Body part can be one of "Eyebrows", "Eyes", "HairColor", "HairStyle", "Pants", "LeftHand", "Mouth", "RightHand", "Shirt", or "Hands". Changing minifig parts could break the character so this command is limited to GMs.|1| |testmap|`/testmap <zone> (force) (clone-id)`|Transfers you to the given zone by id and clone id. Add "force" to skip checking if the zone is accessible (this can softlock your character, though, if you e.g. try to teleport to Frostburgh).|1| |reportproxphys|`/reportproxphys`|Prints to console the position and radius of proximity sensors.|6| |spawnphysicsverts|`/spawnphysicsverts`|Spawns a 1x1 brick at all vertices of phantom physics objects.|6| -|teleport|`/teleport <x> (y) <z>`|Teleports you. If no Y is given, you are teleported to the height of the terrain or physics object at (x, z). Alias: `/tele`.|6| +|teleport|`/teleport <x> (y) <z>` or <br> `/tele <x> (y) <z>`|Teleports you. If no Y is given, you are teleported to the height of the terrain or physics object at (x, z). Alias: `/tele`.|6| |activatespawner|`/activatespawner <spawner name>`|Activates spawner by name.|8| |addmission|`/addmission <mission id>`|Accepts the mission, adding it to your journal.|8| |boost|`/boost (time)`|Adds a passive boost action if you are in a vehicle. If time is given it will end after that amount of time|8| @@ -95,9 +96,10 @@ These commands are primarily for development and testing. The usage of many of t |setcontrolscheme|`/setcontrolscheme <scheme number>`|Sets the character control scheme to the specified number.|8| |setcurrency|`/setcurrency <coins>`|Sets your coins.|8| |setflag|`/setflag (value) <flag id>`|Sets the given inventory or health flag to the given value, where value can be one of "on" or "off". If no value is given, by default this adds the flag to your character (equivalent of calling `/setflag on <flag id>`).|8| -|setinventorysize|`/setinventorysize <size> (inventory)`|Sets your inventory size to the given size. If `inventory` is provided, the number or string will be used to set that inventory to the requested size. Alias: `/setinvsize`|8| +|setinventorysize|`/setinventorysize <size> (inventory)` or <br> `/setinvsize <size> (inventory)`|Sets your inventory size to the given size. If `inventory` is provided, the number or string will be used to set that inventory to the requested size. Alias: `/setinvsize`|8| |setuistate|`/setuistate <ui state>`|Changes UI state.|8| |spawn|`/spawn <id>`|Spawns an object at your location by id.|8| +|spawngroup|`/spawngroup <id> <amount> <radius>`|Spawns `<amount>` of object `<id>` within the given `<radius>` from your location|8| |speedboost|`/speedboost <amount>`|Sets the speed multiplier to the given amount. `/speedboost 1.5` will set the speed multiplier to 1.5x the normal speed.|8| |startcelebration|`/startcelebration <id>`|Starts a celebration effect on your character.|8| |stopeffect|`/stopeffect <effect id>`|Stops the given effect.|8| @@ -106,14 +108,15 @@ These commands are primarily for development and testing. The usage of many of t |triggerspawner|`/triggerspawner <spawner name>`|Triggers spawner by name.|8| |unlock-emote|`/unlock-emote <emote id>`|Unlocks for your character the emote of the given id.|8| |Set Level|`/setlevel <requested_level> (username)`|Sets the using entities level to the requested level. Takes an optional parameter of an in-game players username to set the level of.|8| -|crash|`/crash`|Crashes the server.|9| -|rollloot|`/rollloot <loot matrix index> <item id> <amount>`|Given a `loot matrix index`, look for `item id` in that matrix `amount` times and print to the chat box statistics of rolling that loot matrix.|9| -|castskill|`/castskill <skill id>`|Casts the skill as the player|9| |setskillslot|`/setskillslot <slot> <skill id>`||8| |setfaction|`/setfaction <faction id>`|Clears the users current factions and sets it|8| |addfaction|`/addfaction <faction id>`|Add the faction to the users list of factions|8| |getfactions|`/getfactions`|Shows the player's factions|8| |setrewardcode|`/setrewardcode <code>`|Sets the rewardcode for the account you are logged into if it's a valid rewardcode, See cdclient table `RewardCodes`|8| +|crash|`/crash`|Crashes the server.|9| +|rollloot|`/rollloot <loot matrix index> <item id> <amount>`|Given a `loot matrix index`, look for `item id` in that matrix `amount` times and print to the chat box statistics of rolling that loot matrix.|9| +|castskill|`/castskill <skill id>`|Casts the skill as the player|9| + ## Detailed `/inspect` Usage `/inspect <component> (-m <waypoint> | -a <animation> | -s | -p | -f (faction) | -t)` From 440dc8b88fced63690009d871112625bad544506 Mon Sep 17 00:00:00 2001 From: jadebenn <jadebenn@users.noreply.github.com> Date: Fri, 5 Jan 2024 18:55:42 -0600 Subject: [PATCH 087/106] replace macro with anonymous namespace function (#1394) --- .../dEnumsTests/MagicEnumTests.cpp | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp b/tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp index 2ad92914..0ca2e2ea 100644 --- a/tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp +++ b/tests/dCommonTests/dEnumsTests/MagicEnumTests.cpp @@ -116,27 +116,30 @@ TEST(MagicEnumTest, eGameMessageTypeTest) { delete Game::logger; } -#define ASSERT_EARRAY_SORTED(EARRAY_VAR)\ - for (int i = 0; i < EARRAY_VAR->size(); i++) {\ - const auto entryCurr = EARRAY_VAR->at(i).first;\ - LOG_EARRAY(EARRAY_VAR, i, entryCurr);\ - const auto entryNext = EARRAY_VAR->at(++i).first;\ - LOG_EARRAY(EARRAY_VAR, i, entryNext);\ - ASSERT_TRUE(entryCurr < entryNext);\ - };\ +#define LOG_EARRAY(EARRAY_VAR, INDICE, ENTRY) LOG(#EARRAY_VAR"[%i] = %i, %s", INDICE, ENTRY, magic_enum::enum_name(ENTRY).data()); -#define LOG_EARRAY(EARRAY_VAR, INDICE, ENTRY)\ - LOG(#EARRAY_VAR"[%i] = %i, %s", INDICE, ENTRY, magic_enum::enum_name(ENTRY).data()); +namespace { + template <typename T> + void AssertEnumArraySorted(const T& eArray) { + for (int i = 0; i < eArray->size(); ++i) { + const auto entryCurr = eArray->at(i).first; + LOG_EARRAY(eArray, i, entryCurr); + const auto entryNext = eArray->at(++i).first; + LOG_EARRAY(eArray, i, entryNext); + ASSERT_TRUE(entryCurr < entryNext); + } + } +} // Test that the magic enum arrays are pre-sorted TEST(MagicEnumTest, ArraysAreSorted) { Game::logger = new Logger("./MagicEnumTest_ArraysAreSorted.log", true, true); constexpr auto wmArray = &magic_enum::enum_entries<eWorldMessageType>(); - ASSERT_EARRAY_SORTED(wmArray); + AssertEnumArraySorted(wmArray); constexpr auto gmArray = &magic_enum::enum_entries<eGameMessageType>(); - ASSERT_EARRAY_SORTED(gmArray); + AssertEnumArraySorted(gmArray); delete Game::logger; } From 0dc6763a3c53c5b671bdbb2365c3bb0f7b33c938 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:42:30 -0800 Subject: [PATCH 088/106] chore: Remove pointer management in PlayerContainer (#1397) * const use cbegin, remove null checks they are references now, they cant be null themselves Change to reference instead of ptr Remove getter const * allow duplicate request without the reply you apparently need to re-log for some reason. Update PlayerContainer.cpp --- dChatServer/ChatIgnoreList.cpp | 61 +++-- dChatServer/ChatPacketHandler.cpp | 373 ++++++++++++++---------------- dChatServer/ChatPacketHandler.h | 23 +- dChatServer/PlayerContainer.cpp | 147 +++++++----- dChatServer/PlayerContainer.h | 50 ++-- dCommon/dEnums/dCommonVars.h | 2 +- 6 files changed, 328 insertions(+), 328 deletions(-) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index 94d1ac7a..3b5103f0 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -26,37 +26,36 @@ void ChatIgnoreList::GetIgnoreList(Packet* packet) { LWOOBJID playerId; inStream.Read(playerId); - auto* receiver = Game::playerContainer.GetPlayerData(playerId); + auto& receiver = Game::playerContainer.GetPlayerDataMutable(playerId); if (!receiver) { LOG("Tried to get ignore list, but player %llu not found in container", playerId); return; } - if (!receiver->ignoredPlayers.empty()) { - LOG_DEBUG("Player %llu already has an ignore list", playerId); - return; - } + if (!receiver.ignoredPlayers.empty()) { + LOG_DEBUG("Player %llu already has an ignore list, but is requesting it again.", playerId); + } else { + auto ignoreList = Database::Get()->GetIgnoreList(static_cast<uint32_t>(playerId)); + if (ignoreList.empty()) { + LOG_DEBUG("Player %llu has no ignores", playerId); + return; + } - auto ignoreList = Database::Get()->GetIgnoreList(static_cast<uint32_t>(playerId)); - if (ignoreList.empty()) { - LOG_DEBUG("Player %llu has no ignores", playerId); - return; - } - - for (auto& ignoredPlayer : ignoreList) { - receiver->ignoredPlayers.push_back(IgnoreData{ ignoredPlayer.id, ignoredPlayer.name }); - GeneralUtils::SetBit(receiver->ignoredPlayers.back().playerId, eObjectBits::CHARACTER); - GeneralUtils::SetBit(receiver->ignoredPlayers.back().playerId, eObjectBits::PERSISTENT); + for (auto& ignoredPlayer : ignoreList) { + receiver.ignoredPlayers.emplace_back(ignoredPlayer.name, ignoredPlayer.id); + GeneralUtils::SetBit(receiver.ignoredPlayers.back().playerId, eObjectBits::CHARACTER); + GeneralUtils::SetBit(receiver.ignoredPlayers.back().playerId, eObjectBits::PERSISTENT); + } } CBITSTREAM; - WriteOutgoingReplyHeader(bitStream, receiver->playerID, ChatIgnoreList::Response::GET_IGNORE); + WriteOutgoingReplyHeader(bitStream, receiver.playerID, ChatIgnoreList::Response::GET_IGNORE); bitStream.Write<uint8_t>(false); // Probably is Is Free Trial, but we don't care about that bitStream.Write<uint16_t>(0); // literally spacing due to struct alignment - bitStream.Write<uint16_t>(receiver->ignoredPlayers.size()); - for (const auto& ignoredPlayer : receiver->ignoredPlayers) { + bitStream.Write<uint16_t>(receiver.ignoredPlayers.size()); + for (const auto& ignoredPlayer : receiver.ignoredPlayers) { bitStream.Write(ignoredPlayer.playerId); bitStream.Write(LUWString(ignoredPlayer.playerName, 36)); } @@ -69,14 +68,14 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { LWOOBJID playerId; inStream.Read(playerId); - auto* receiver = Game::playerContainer.GetPlayerData(playerId); + auto& receiver = Game::playerContainer.GetPlayerDataMutable(playerId); if (!receiver) { LOG("Tried to get ignore list, but player %llu not found in container", playerId); return; } constexpr int32_t MAX_IGNORES = 32; - if (receiver->ignoredPlayers.size() > MAX_IGNORES) { + if (receiver.ignoredPlayers.size() > MAX_IGNORES) { LOG_DEBUG("Player %llu has too many ignores", playerId); return; } @@ -88,21 +87,21 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { std::string toIgnoreStr = toIgnoreName.GetAsString(); CBITSTREAM; - WriteOutgoingReplyHeader(bitStream, receiver->playerID, ChatIgnoreList::Response::ADD_IGNORE); + WriteOutgoingReplyHeader(bitStream, receiver.playerID, ChatIgnoreList::Response::ADD_IGNORE); // Check if the player exists LWOOBJID ignoredPlayerId = LWOOBJID_EMPTY; - if (toIgnoreStr == receiver->playerName || toIgnoreStr.find("[GM]") == 0) { + if (toIgnoreStr == receiver.playerName || toIgnoreStr.find("[GM]") == 0) { LOG_DEBUG("Player %llu tried to ignore themselves", playerId); bitStream.Write(ChatIgnoreList::AddResponse::GENERAL_ERROR); - } else if (std::count(receiver->ignoredPlayers.begin(), receiver->ignoredPlayers.end(), toIgnoreStr) > 0) { + } else if (std::count(receiver.ignoredPlayers.begin(), receiver.ignoredPlayers.end(), toIgnoreStr) > 0) { LOG_DEBUG("Player %llu is already ignoring %s", playerId, toIgnoreStr.c_str()); bitStream.Write(ChatIgnoreList::AddResponse::ALREADY_IGNORED); } else { // Get the playerId falling back to query if not online - auto* playerData = Game::playerContainer.GetPlayerData(toIgnoreStr); + const auto& playerData = Game::playerContainer.GetPlayerData(toIgnoreStr); if (!playerData) { // Fall back to query auto player = Database::Get()->GetCharacterInfo(toIgnoreStr); @@ -112,7 +111,7 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { ignoredPlayerId = player->id; } } else { - ignoredPlayerId = playerData->playerID; + ignoredPlayerId = playerData.playerID; } if (ignoredPlayerId != LWOOBJID_EMPTY) { @@ -120,7 +119,7 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::CHARACTER); GeneralUtils::SetBit(ignoredPlayerId, eObjectBits::PERSISTENT); - receiver->ignoredPlayers.push_back(IgnoreData{ ignoredPlayerId, toIgnoreStr }); + receiver.ignoredPlayers.emplace_back(toIgnoreStr, ignoredPlayerId); LOG_DEBUG("Player %llu is ignoring %s", playerId, toIgnoreStr.c_str()); bitStream.Write(ChatIgnoreList::AddResponse::SUCCESS); @@ -141,7 +140,7 @@ void ChatIgnoreList::RemoveIgnore(Packet* packet) { LWOOBJID playerId; inStream.Read(playerId); - auto* receiver = Game::playerContainer.GetPlayerData(playerId); + auto& receiver = Game::playerContainer.GetPlayerDataMutable(playerId); if (!receiver) { LOG("Tried to get ignore list, but player %llu not found in container", playerId); return; @@ -153,17 +152,17 @@ void ChatIgnoreList::RemoveIgnore(Packet* packet) { inStream.Read(removedIgnoreName); std::string removedIgnoreStr = removedIgnoreName.GetAsString(); - auto toRemove = std::remove(receiver->ignoredPlayers.begin(), receiver->ignoredPlayers.end(), removedIgnoreStr); - if (toRemove == receiver->ignoredPlayers.end()) { + auto toRemove = std::remove(receiver.ignoredPlayers.begin(), receiver.ignoredPlayers.end(), removedIgnoreStr); + if (toRemove == receiver.ignoredPlayers.end()) { LOG_DEBUG("Player %llu is not ignoring %s", playerId, removedIgnoreStr.c_str()); return; } Database::Get()->RemoveIgnore(static_cast<uint32_t>(playerId), static_cast<uint32_t>(toRemove->playerId)); - receiver->ignoredPlayers.erase(toRemove, receiver->ignoredPlayers.end()); + receiver.ignoredPlayers.erase(toRemove, receiver.ignoredPlayers.end()); CBITSTREAM; - WriteOutgoingReplyHeader(bitStream, receiver->playerID, ChatIgnoreList::Response::REMOVE_IGNORE); + WriteOutgoingReplyHeader(bitStream, receiver.playerID, ChatIgnoreList::Response::REMOVE_IGNORE); bitStream.Write<int8_t>(0); LUWString playerNameSend(removedIgnoreStr, 33); diff --git a/dChatServer/ChatPacketHandler.cpp b/dChatServer/ChatPacketHandler.cpp index d1f0fc74..4bdddd68 100644 --- a/dChatServer/ChatPacketHandler.cpp +++ b/dChatServer/ChatPacketHandler.cpp @@ -25,7 +25,7 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { LWOOBJID playerID = 0; inStream.Read(playerID); - auto player = Game::playerContainer.GetPlayerData(playerID); + auto& player = Game::playerContainer.GetPlayerDataMutable(playerID); if (!player) return; auto friendsList = Database::Get()->GetFriendsList(playerID); @@ -37,15 +37,15 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { GeneralUtils::SetBit(fd.friendID, eObjectBits::CHARACTER); fd.isBestFriend = friendData.isBestFriend; //0 = friends, 1 = left_requested, 2 = right_requested, 3 = both_accepted - are now bffs - if (fd.isBestFriend) player->countOfBestFriends += 1; + if (fd.isBestFriend) player.countOfBestFriends += 1; fd.friendName = friendData.friendName; //Now check if they're online: - auto fr = Game::playerContainer.GetPlayerData(fd.friendID); + const auto& fr = Game::playerContainer.GetPlayerData(fd.friendID); if (fr) { fd.isOnline = true; - fd.zoneID = fr->zoneID; + fd.zoneID = fr.zoneID; //Since this friend is online, we need to update them on the fact that we've just logged in: SendFriendUpdate(fr, player, 1, fd.isBestFriend); @@ -54,7 +54,7 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { fd.zoneID = LWOZONEID(); } - player->friends.push_back(fd); + player.friends.push_back(fd); } //Now, we need to send the friendlist to the server they came from: @@ -66,13 +66,13 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::GET_FRIENDS_LIST_RESPONSE); bitStream.Write<uint8_t>(0); bitStream.Write<uint16_t>(1); //Length of packet -- just writing one as it doesn't matter, client skips it. - bitStream.Write<uint16_t>(player->friends.size()); + bitStream.Write<uint16_t>(player.friends.size()); - for (auto& data : player->friends) { + for (const auto& data : player.friends) { data.Serialize(bitStream); } - SystemAddress sysAddr = player->sysAddr; + SystemAddress sysAddr = player.sysAddr; SEND_PACKET; } @@ -95,51 +95,49 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { char isBestFriendRequest{}; inStream.Read(isBestFriendRequest); - auto requestor = Game::playerContainer.GetPlayerData(requestorPlayerID); + auto& requestor = Game::playerContainer.GetPlayerDataMutable(requestorPlayerID); if (!requestor) { LOG("No requestor player %llu sent to %s found.", requestorPlayerID, playerName.c_str()); return; } - if (requestor->playerName == playerName) { + if (requestor.playerName == playerName) { SendFriendResponse(requestor, requestor, eAddFriendResponseType::MYTHRAN); return; }; - std::unique_ptr<PlayerData> requestee(Game::playerContainer.GetPlayerData(playerName)); + + auto& requestee = Game::playerContainer.GetPlayerDataMutable(playerName); // Check if player is online first if (isBestFriendRequest && !requestee) { - for (auto friendDataCandidate : requestor->friends) { - if (friendDataCandidate.friendName == playerName) { - requestee.reset(new PlayerData()); - // Setup the needed info since you can add a best friend offline. - requestee->playerID = friendDataCandidate.friendID; - requestee->playerName = friendDataCandidate.friendName; - requestee->zoneID = LWOZONEID(); + for (auto& friendDataCandidate : requestor.friends) { + if (friendDataCandidate.friendName != playerName) continue; + // Setup the needed info since you can add a best friend offline. + requestee.playerID = friendDataCandidate.friendID; + requestee.playerName = friendDataCandidate.friendName; + requestee.zoneID = LWOZONEID(); - FriendData requesteeFriendData{}; - requesteeFriendData.friendID = requestor->playerID; - requesteeFriendData.friendName = requestor->playerName; - requesteeFriendData.isFTP = false; - requesteeFriendData.isOnline = false; - requesteeFriendData.zoneID = requestor->zoneID; - requestee->friends.push_back(requesteeFriendData); - requestee->sysAddr = UNASSIGNED_SYSTEM_ADDRESS; - break; - } + FriendData requesteeFriendData{}; + requesteeFriendData.friendID = requestor.playerID; + requesteeFriendData.friendName = requestor.playerName; + requesteeFriendData.isFTP = false; + requesteeFriendData.isOnline = false; + requesteeFriendData.zoneID = requestor.zoneID; + requestee.friends.push_back(requesteeFriendData); + requestee.sysAddr = UNASSIGNED_SYSTEM_ADDRESS; + break; } } // If at this point we dont have a target, then they arent online and we cant send the request. // Send the response code that corresponds to what the error is. if (!requestee) { - requestee.reset(new PlayerData()); - requestee->playerName = playerName; + requestee.playerName = playerName; auto responseType = Database::Get()->GetCharacterInfo(playerName) ? eAddFriendResponseType::NOTONLINE : eAddFriendResponseType::INVALIDCHARACTER; - SendFriendResponse(requestor, requestee.get(), responseType); + SendFriendResponse(requestor, requestee, responseType); return; } @@ -147,7 +145,7 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { uint8_t oldBestFriendStatus{}; uint8_t bestFriendStatus{}; - auto bestFriendInfo = Database::Get()->GetBestFriendStatus(requestorPlayerID, requestee->playerID); + auto bestFriendInfo = Database::Get()->GetBestFriendStatus(requestorPlayerID, requestee.playerID); if (bestFriendInfo) { // Get the IDs LWOOBJID queryPlayerID = bestFriendInfo->playerCharacterId; @@ -174,51 +172,48 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { // Only do updates if there was a change in the bff status. if (oldBestFriendStatus != bestFriendStatus) { auto maxBestFriends = Game::playerContainer.GetMaxNumberOfBestFriends(); - if (requestee->countOfBestFriends >= maxBestFriends || requestor->countOfBestFriends >= maxBestFriends) { - if (requestee->countOfBestFriends >= maxBestFriends) { - SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::THEIRFRIENDLISTFULL, false); + if (requestee.countOfBestFriends >= maxBestFriends || requestor.countOfBestFriends >= maxBestFriends) { + if (requestee.countOfBestFriends >= maxBestFriends) { + SendFriendResponse(requestor, requestee, eAddFriendResponseType::THEIRFRIENDLISTFULL, false); } - if (requestor->countOfBestFriends >= maxBestFriends) { - SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::YOURFRIENDSLISTFULL, false); + if (requestor.countOfBestFriends >= maxBestFriends) { + SendFriendResponse(requestor, requestee, eAddFriendResponseType::YOURFRIENDSLISTFULL, false); } } else { // Then update the database with this new info. - Database::Get()->SetBestFriendStatus(requestorPlayerID, requestee->playerID, bestFriendStatus); + Database::Get()->SetBestFriendStatus(requestorPlayerID, requestee.playerID, bestFriendStatus); // Sent the best friend update here if the value is 3 if (bestFriendStatus == 3U) { - requestee->countOfBestFriends += 1; - requestor->countOfBestFriends += 1; - if (requestee->sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestee.get(), requestor, eAddFriendResponseType::ACCEPTED, false, true); - if (requestor->sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::ACCEPTED, false, true); - for (auto& friendData : requestor->friends) { - if (friendData.friendID == requestee->playerID) { + requestee.countOfBestFriends += 1; + requestor.countOfBestFriends += 1; + if (requestee.sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestee, requestor, eAddFriendResponseType::ACCEPTED, false, true); + if (requestor.sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestor, requestee, eAddFriendResponseType::ACCEPTED, false, true); + for (auto& friendData : requestor.friends) { + if (friendData.friendID == requestee.playerID) { friendData.isBestFriend = true; } } - for (auto& friendData : requestee->friends) { - if (friendData.friendID == requestor->playerID) { + for (auto& friendData : requestee.friends) { + if (friendData.friendID == requestor.playerID) { friendData.isBestFriend = true; } } } } } else { - if (requestor->sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::WAITINGAPPROVAL, true, true); + if (requestor.sysAddr != UNASSIGNED_SYSTEM_ADDRESS) SendFriendResponse(requestor, requestee, eAddFriendResponseType::WAITINGAPPROVAL, true, true); } } else { auto maxFriends = Game::playerContainer.GetMaxNumberOfFriends(); - if (requestee->friends.size() >= maxFriends) { - SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::THEIRFRIENDLISTFULL, false); - } else if (requestor->friends.size() >= maxFriends) { - SendFriendResponse(requestor, requestee.get(), eAddFriendResponseType::YOURFRIENDSLISTFULL, false); + if (requestee.friends.size() >= maxFriends) { + SendFriendResponse(requestor, requestee, eAddFriendResponseType::THEIRFRIENDLISTFULL, false); + } else if (requestor.friends.size() >= maxFriends) { + SendFriendResponse(requestor, requestee, eAddFriendResponseType::YOURFRIENDSLISTFULL, false); } else { // Do not send this if we are requesting to be a best friend. - SendFriendRequest(requestee.get(), requestor); + SendFriendRequest(requestee, requestor); } } - - // If the player is actually a player and not a ghost one defined above, release it from being deleted. - if (requestee->sysAddr != UNASSIGNED_SYSTEM_ADDRESS) requestee.release(); } void ChatPacketHandler::HandleFriendResponse(Packet* packet) { @@ -230,8 +225,8 @@ void ChatPacketHandler::HandleFriendResponse(Packet* packet) { std::string friendName = PacketUtils::ReadString(0x15, packet, true); //Now to try and find both of these: - auto requestor = Game::playerContainer.GetPlayerData(playerID); - auto requestee = Game::playerContainer.GetPlayerData(friendName); + auto& requestor = Game::playerContainer.GetPlayerDataMutable(playerID); + auto& requestee = Game::playerContainer.GetPlayerDataMutable(friendName); if (!requestor || !requestee) return; eAddFriendResponseType serverResponseCode{}; @@ -254,8 +249,8 @@ void ChatPacketHandler::HandleFriendResponse(Packet* packet) { // Now that we have handled the base cases, we need to check the other cases. if (serverResponseCode == eAddFriendResponseType::ACCEPTED) { - for (auto friendData : requestor->friends) { - if (friendData.friendID == requestee->playerID) { + for (const auto& friendData : requestor.friends) { + if (friendData.friendID == requestee.playerID) { serverResponseCode = eAddFriendResponseType::ALREADYFRIEND; if (friendData.isBestFriend) { isAlreadyBestFriends = 1U; @@ -267,25 +262,23 @@ void ChatPacketHandler::HandleFriendResponse(Packet* packet) { // This message is NOT sent for best friends and is handled differently for those requests. if (serverResponseCode == eAddFriendResponseType::ACCEPTED) { // Add the each player to the others friend list. - FriendData requestorData; - requestorData.zoneID = requestor->zoneID; - requestorData.friendID = requestor->playerID; - requestorData.friendName = requestor->playerName; + auto& requestorData = requestee.friends.emplace_back(); + requestorData.zoneID = requestor.zoneID; + requestorData.friendID = requestor.playerID; + requestorData.friendName = requestor.playerName; requestorData.isBestFriend = false; requestorData.isFTP = false; requestorData.isOnline = true; - requestee->friends.push_back(requestorData); - FriendData requesteeData; - requesteeData.zoneID = requestee->zoneID; - requesteeData.friendID = requestee->playerID; - requesteeData.friendName = requestee->playerName; + auto& requesteeData = requestor.friends.emplace_back(); + requesteeData.zoneID = requestee.zoneID; + requesteeData.friendID = requestee.playerID; + requesteeData.friendName = requestee.playerName; requesteeData.isBestFriend = false; requesteeData.isFTP = false; requesteeData.isOnline = true; - requestor->friends.push_back(requesteeData); - Database::Get()->AddFriend(requestor->playerID, requestee->playerID); + Database::Get()->AddFriend(requestor.playerID, requestee.playerID); } if (serverResponseCode != eAddFriendResponseType::DECLINED) SendFriendResponse(requestor, requestee, serverResponseCode, isAlreadyBestFriends); @@ -313,26 +306,27 @@ void ChatPacketHandler::HandleRemoveFriend(Packet* packet) { Database::Get()->RemoveFriend(playerID, friendID); //Now, we need to send an update to notify the sender (and possibly, receiver) that their friendship has been ended: - auto goonA = Game::playerContainer.GetPlayerData(playerID); + auto& goonA = Game::playerContainer.GetPlayerDataMutable(playerID); if (goonA) { // Remove the friend from our list of friends - for (auto friendData = goonA->friends.begin(); friendData != goonA->friends.end(); friendData++) { - if ((*friendData).friendID == friendID) { - if ((*friendData).isBestFriend) --goonA->countOfBestFriends; - goonA->friends.erase(friendData); + for (auto friendData = goonA.friends.cbegin(); friendData != goonA.friends.cend(); friendData++) { + if (friendData->friendID == friendID) { + if (friendData->isBestFriend) --goonA.countOfBestFriends; + goonA.friends.erase(friendData); break; } } SendRemoveFriend(goonA, friendName, true); } - auto goonB = Game::playerContainer.GetPlayerData(friendID); + auto& goonB = Game::playerContainer.GetPlayerDataMutable(friendID); if (!goonB) return; + // Do it again for other person - for (auto friendData = goonB->friends.begin(); friendData != goonB->friends.end(); friendData++) { - if ((*friendData).friendID == playerID) { - if ((*friendData).isBestFriend) --goonB->countOfBestFriends; - goonB->friends.erase(friendData); + for (auto friendData = goonB.friends.cbegin(); friendData != goonB.friends.cend(); friendData++) { + if (friendData->friendID == playerID) { + if (friendData->isBestFriend) --goonB.countOfBestFriends; + goonB.friends.erase(friendData); break; } } @@ -346,13 +340,11 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) { LWOOBJID playerID = LWOOBJID_EMPTY; inStream.Read(playerID); - auto* sender = Game::playerContainer.GetPlayerData(playerID); + const auto& sender = Game::playerContainer.GetPlayerData(playerID); - if (sender == nullptr) return; + if (!sender) return; - if (Game::playerContainer.GetIsMuted(sender)) return; - - const auto senderName = std::string(sender->playerName.c_str()); + if (sender.GetIsMuted()) return; inStream.SetReadOffset(0x14 * 8); @@ -361,7 +353,7 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) { std::string message = PacketUtils::ReadString(0x66, packet, true, 512); - LOG("Got a message from (%s) [%d]: %s", senderName.c_str(), channel, message.c_str()); + LOG("Got a message from (%s) [%d]: %s", sender.playerName.c_str(), channel, message.c_str()); if (channel != 8) return; @@ -370,30 +362,28 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) { if (team == nullptr) return; for (const auto memberId : team->memberIDs) { - auto* otherMember = Game::playerContainer.GetPlayerData(memberId); + const auto& otherMember = Game::playerContainer.GetPlayerData(memberId); - if (otherMember == nullptr) return; - - const auto otherName = std::string(otherMember->playerName.c_str()); + if (!otherMember) return; CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(otherMember->playerID); + bitStream.Write(otherMember.playerID); BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); - bitStream.Write(otherMember->playerID); + bitStream.Write(otherMember.playerID); bitStream.Write<uint8_t>(8); bitStream.Write<unsigned int>(69); - bitStream.Write(LUWString(senderName)); - bitStream.Write(sender->playerID); + bitStream.Write(LUWString(sender.playerName)); + bitStream.Write(sender.playerID); bitStream.Write<uint16_t>(0); bitStream.Write<uint8_t>(0); //not mythran nametag - bitStream.Write(LUWString(otherName)); + bitStream.Write(LUWString(otherMember.playerName)); bitStream.Write<uint8_t>(0); //not mythran for receiver bitStream.Write<uint8_t>(0); //teams? bitStream.Write(LUWString(message, 512)); - SystemAddress sysAddr = otherMember->sysAddr; + SystemAddress sysAddr = otherMember.sysAddr; SEND_PACKET; } } @@ -404,35 +394,32 @@ void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) { std::string message = PacketUtils::ReadString(0xAA, packet, true, 512); //Get the bois: - auto goonA = Game::playerContainer.GetPlayerData(senderID); - auto goonB = Game::playerContainer.GetPlayerData(receiverName); + const auto& goonA = Game::playerContainer.GetPlayerData(senderID); + const auto& goonB = Game::playerContainer.GetPlayerData(receiverName); if (!goonA || !goonB) return; - if (Game::playerContainer.GetIsMuted(goonA)) return; - - std::string goonAName = goonA->playerName.c_str(); - std::string goonBName = goonB->playerName.c_str(); + if (goonA.GetIsMuted()) return; //To the sender: { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(goonA->playerID); + bitStream.Write(goonA.playerID); BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); - bitStream.Write(goonA->playerID); + bitStream.Write(goonA.playerID); bitStream.Write<uint8_t>(7); bitStream.Write<unsigned int>(69); - bitStream.Write(LUWString(goonAName)); - bitStream.Write(goonA->playerID); + bitStream.Write(LUWString(goonA.playerName)); + bitStream.Write(goonA.playerID); bitStream.Write<uint16_t>(0); bitStream.Write<uint8_t>(0); //not mythran nametag - bitStream.Write(LUWString(goonBName)); + bitStream.Write(LUWString(goonB.playerName)); bitStream.Write<uint8_t>(0); //not mythran for receiver bitStream.Write<uint8_t>(0); //success bitStream.Write(LUWString(message, 512)); - SystemAddress sysAddr = goonA->sysAddr; + SystemAddress sysAddr = goonA.sysAddr; SEND_PACKET; } @@ -440,22 +427,22 @@ void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) { { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(goonB->playerID); + bitStream.Write(goonB.playerID); BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); - bitStream.Write(goonA->playerID); + bitStream.Write(goonA.playerID); bitStream.Write<uint8_t>(7); bitStream.Write<unsigned int>(69); - bitStream.Write(LUWString(goonAName)); - bitStream.Write(goonA->playerID); + bitStream.Write(LUWString(goonA.playerName)); + bitStream.Write(goonA.playerID); bitStream.Write<uint16_t>(0); bitStream.Write<uint8_t>(0); //not mythran nametag - bitStream.Write(LUWString(goonBName)); + bitStream.Write(LUWString(goonB.playerName)); bitStream.Write<uint8_t>(0); //not mythran for receiver bitStream.Write<uint8_t>(3); //new whisper bitStream.Write(LUWString(message, 512)); - SystemAddress sysAddr = goonB->sysAddr; + SystemAddress sysAddr = goonB.sysAddr; SEND_PACKET; } } @@ -466,11 +453,9 @@ void ChatPacketHandler::HandleTeamInvite(Packet* packet) { inStream.Read(playerID); std::string invitedPlayer = PacketUtils::ReadString(0x14, packet, true); - auto* player = Game::playerContainer.GetPlayerData(playerID); + const auto& player = Game::playerContainer.GetPlayerData(playerID); - if (player == nullptr) { - return; - } + if (!player) return; auto* team = Game::playerContainer.GetTeam(playerID); @@ -478,13 +463,11 @@ void ChatPacketHandler::HandleTeamInvite(Packet* packet) { team = Game::playerContainer.CreateTeam(playerID); } - auto* other = Game::playerContainer.GetPlayerData(invitedPlayer); + const auto& other = Game::playerContainer.GetPlayerData(invitedPlayer); - if (other == nullptr) { - return; - } + if (!other) return; - if (Game::playerContainer.GetTeam(other->playerID) != nullptr) { + if (Game::playerContainer.GetTeam(other.playerID) != nullptr) { return; } @@ -558,12 +541,12 @@ void ChatPacketHandler::HandleTeamKick(Packet* packet) { LOG("(%llu) kicking (%s) from team", playerID, kickedPlayer.c_str()); - auto* kicked = Game::playerContainer.GetPlayerData(kickedPlayer); + const auto& kicked = Game::playerContainer.GetPlayerData(kickedPlayer); LWOOBJID kickedId = LWOOBJID_EMPTY; - if (kicked != nullptr) { - kickedId = kicked->playerID; + if (kicked) { + kickedId = kicked.playerID; } else { kickedId = Game::playerContainer.GetId(GeneralUtils::UTF8ToUTF16(kickedPlayer)); } @@ -588,16 +571,16 @@ void ChatPacketHandler::HandleTeamPromote(Packet* packet) { LOG("(%llu) promoting (%s) to team leader", playerID, promotedPlayer.c_str()); - auto* promoted = Game::playerContainer.GetPlayerData(promotedPlayer); + const auto& promoted = Game::playerContainer.GetPlayerData(promotedPlayer); - if (promoted == nullptr) return; + if (!promoted) return; auto* team = Game::playerContainer.GetTeam(playerID); if (team != nullptr) { if (team->leaderID != playerID) return; - Game::playerContainer.PromoteMember(team, promoted->playerID); + Game::playerContainer.PromoteMember(team, promoted.playerID); } } @@ -630,10 +613,10 @@ void ChatPacketHandler::HandleTeamStatusRequest(Packet* packet) { inStream.Read(playerID); auto* team = Game::playerContainer.GetTeam(playerID); - auto* data = Game::playerContainer.GetPlayerData(playerID); + const auto& data = Game::playerContainer.GetPlayerData(playerID); - if (team != nullptr && data != nullptr) { - if (team->local && data->zoneID.GetMapID() != team->zoneId.GetMapID() && data->zoneID.GetCloneID() != team->zoneId.GetCloneID()) { + if (team != nullptr && data) { + if (team->local && data.zoneID.GetMapID() != team->zoneId.GetMapID() && data.zoneID.GetCloneID() != team->zoneId.GetCloneID()) { Game::playerContainer.RemoveMember(team, playerID, false, false, true, true); return; @@ -653,49 +636,49 @@ void ChatPacketHandler::HandleTeamStatusRequest(Packet* packet) { Game::playerContainer.TeamStatusUpdate(team); - const auto leaderName = GeneralUtils::UTF8ToUTF16(data->playerName); + const auto leaderName = GeneralUtils::UTF8ToUTF16(data.playerName); for (const auto memberId : team->memberIDs) { - auto* otherMember = Game::playerContainer.GetPlayerData(memberId); + const auto& otherMember = Game::playerContainer.GetPlayerData(memberId); if (memberId == playerID) continue; const auto memberName = Game::playerContainer.GetName(memberId); - if (otherMember != nullptr) { - ChatPacketHandler::SendTeamSetOffWorldFlag(otherMember, data->playerID, data->zoneID); + if (otherMember) { + ChatPacketHandler::SendTeamSetOffWorldFlag(otherMember, data.playerID, data.zoneID); } - ChatPacketHandler::SendTeamAddPlayer(data, false, team->local, false, memberId, memberName, otherMember != nullptr ? otherMember->zoneID : LWOZONEID(0, 0, 0)); + ChatPacketHandler::SendTeamAddPlayer(data, false, team->local, false, memberId, memberName, otherMember ? otherMember.zoneID : LWOZONEID(0, 0, 0)); } Game::playerContainer.UpdateTeamsOnWorld(team, false); } } -void ChatPacketHandler::SendTeamInvite(PlayerData* receiver, PlayerData* sender) { +void ChatPacketHandler::SendTeamInvite(const PlayerData& receiver, const PlayerData& sender) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::TEAM_INVITE); - bitStream.Write(LUWString(sender->playerName.c_str())); - bitStream.Write(sender->playerID); + bitStream.Write(LUWString(sender.playerName.c_str())); + bitStream.Write(sender.playerID); - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendTeamInviteConfirm(PlayerData* receiver, bool bLeaderIsFreeTrial, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, uint8_t ucResponseCode, std::u16string wsLeaderName) { +void ChatPacketHandler::SendTeamInviteConfirm(const PlayerData& receiver, bool bLeaderIsFreeTrial, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, uint8_t ucResponseCode, std::u16string wsLeaderName) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: CMSGHEADER; - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); bitStream.Write(eGameMessageType::TEAM_INVITE_CONFIRM); bitStream.Write(bLeaderIsFreeTrial); @@ -710,19 +693,19 @@ void ChatPacketHandler::SendTeamInviteConfirm(PlayerData* receiver, bool bLeader bitStream.Write(character); } - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendTeamStatus(PlayerData* receiver, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, std::u16string wsLeaderName) { +void ChatPacketHandler::SendTeamStatus(const PlayerData& receiver, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, std::u16string wsLeaderName) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: CMSGHEADER; - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); bitStream.Write(eGameMessageType::TEAM_GET_STATUS_RESPONSE); bitStream.Write(i64LeaderID); @@ -735,36 +718,36 @@ void ChatPacketHandler::SendTeamStatus(PlayerData* receiver, LWOOBJID i64LeaderI bitStream.Write(character); } - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendTeamSetLeader(PlayerData* receiver, LWOOBJID i64PlayerID) { +void ChatPacketHandler::SendTeamSetLeader(const PlayerData& receiver, LWOOBJID i64PlayerID) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: CMSGHEADER; - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); bitStream.Write(eGameMessageType::TEAM_SET_LEADER); bitStream.Write(i64PlayerID); - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendTeamAddPlayer(PlayerData* receiver, bool bIsFreeTrial, bool bLocal, bool bNoLootOnDeath, LWOOBJID i64PlayerID, std::u16string wsPlayerName, LWOZONEID zoneID) { +void ChatPacketHandler::SendTeamAddPlayer(const PlayerData& receiver, bool bIsFreeTrial, bool bLocal, bool bNoLootOnDeath, LWOOBJID i64PlayerID, std::u16string wsPlayerName, LWOZONEID zoneID) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: CMSGHEADER; - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); bitStream.Write(eGameMessageType::TEAM_ADD_PLAYER); bitStream.Write(bIsFreeTrial); @@ -776,24 +759,24 @@ void ChatPacketHandler::SendTeamAddPlayer(PlayerData* receiver, bool bIsFreeTria bitStream.Write(character); } bitStream.Write1(); - if (receiver->zoneID.GetCloneID() == zoneID.GetCloneID()) { + if (receiver.zoneID.GetCloneID() == zoneID.GetCloneID()) { zoneID = LWOZONEID(zoneID.GetMapID(), zoneID.GetInstanceID(), 0); } bitStream.Write(zoneID); - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendTeamRemovePlayer(PlayerData* receiver, bool bDisband, bool bIsKicked, bool bIsLeaving, bool bLocal, LWOOBJID i64LeaderID, LWOOBJID i64PlayerID, std::u16string wsPlayerName) { +void ChatPacketHandler::SendTeamRemovePlayer(const PlayerData& receiver, bool bDisband, bool bIsKicked, bool bIsLeaving, bool bLocal, LWOOBJID i64LeaderID, LWOOBJID i64PlayerID, std::u16string wsPlayerName) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: CMSGHEADER; - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); bitStream.Write(eGameMessageType::TEAM_REMOVE_PLAYER); bitStream.Write(bDisband); @@ -807,32 +790,32 @@ void ChatPacketHandler::SendTeamRemovePlayer(PlayerData* receiver, bool bDisband bitStream.Write(character); } - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendTeamSetOffWorldFlag(PlayerData* receiver, LWOOBJID i64PlayerID, LWOZONEID zoneID) { +void ChatPacketHandler::SendTeamSetOffWorldFlag(const PlayerData& receiver, LWOOBJID i64PlayerID, LWOZONEID zoneID) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: CMSGHEADER; - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); bitStream.Write(eGameMessageType::TEAM_SET_OFF_WORLD_FLAG); bitStream.Write(i64PlayerID); - if (receiver->zoneID.GetCloneID() == zoneID.GetCloneID()) { + if (receiver.zoneID.GetCloneID() == zoneID.GetCloneID()) { zoneID = LWOZONEID(zoneID.GetMapID(), zoneID.GetInstanceID(), 0); } bitStream.Write(zoneID); - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendFriendUpdate(PlayerData* friendData, PlayerData* playerData, uint8_t notifyType, uint8_t isBestFriend) { +void ChatPacketHandler::SendFriendUpdate(const PlayerData& friendData, const PlayerData& playerData, uint8_t notifyType, uint8_t isBestFriend) { /*chat notification is displayed if log in / out and friend is updated in friends list [u8] - update type Update types @@ -848,38 +831,36 @@ void ChatPacketHandler::SendFriendUpdate(PlayerData* friendData, PlayerData* pla CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(friendData->playerID); + bitStream.Write(friendData.playerID); //portion that will get routed: BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::UPDATE_FRIEND_NOTIFY); bitStream.Write<uint8_t>(notifyType); - std::string playerName = playerData->playerName.c_str(); + std::string playerName = playerData.playerName.c_str(); bitStream.Write(LUWString(playerName)); - bitStream.Write(playerData->zoneID.GetMapID()); - bitStream.Write(playerData->zoneID.GetInstanceID()); + bitStream.Write(playerData.zoneID.GetMapID()); + bitStream.Write(playerData.zoneID.GetInstanceID()); - if (playerData->zoneID.GetCloneID() == friendData->zoneID.GetCloneID()) { + if (playerData.zoneID.GetCloneID() == friendData.zoneID.GetCloneID()) { bitStream.Write(0); } else { - bitStream.Write(playerData->zoneID.GetCloneID()); + bitStream.Write(playerData.zoneID.GetCloneID()); } bitStream.Write<uint8_t>(isBestFriend); //isBFF bitStream.Write<uint8_t>(0); //isFTP - SystemAddress sysAddr = friendData->sysAddr; + SystemAddress sysAddr = friendData.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendFriendRequest(PlayerData* receiver, PlayerData* sender) { - if (!receiver || !sender) return; - +void ChatPacketHandler::SendFriendRequest(const PlayerData& receiver, const PlayerData& sender) { //Make sure people aren't requesting people that they're already friends with: - for (auto fr : receiver->friends) { - if (fr.friendID == sender->playerID) { + for (const auto& fr : receiver.friends) { + if (fr.friendID == sender.playerID) { SendFriendResponse(sender, receiver, eAddFriendResponseType::ALREADYFRIEND, fr.isBestFriend); return; //we have this player as a friend, yeet this function so it doesn't send another request. } @@ -887,54 +868,50 @@ void ChatPacketHandler::SendFriendRequest(PlayerData* receiver, PlayerData* send CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::ADD_FRIEND_REQUEST); - bitStream.Write(LUWString(sender->playerName.c_str())); + bitStream.Write(LUWString(sender.playerName)); bitStream.Write<uint8_t>(0); // This is a BFF flag however this is unused in live and does not have an implementation client side. - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendFriendResponse(PlayerData* receiver, PlayerData* sender, eAddFriendResponseType responseCode, uint8_t isBestFriendsAlready, uint8_t isBestFriendRequest) { - if (!receiver || !sender) return; - +void ChatPacketHandler::SendFriendResponse(const PlayerData& receiver, const PlayerData& sender, eAddFriendResponseType responseCode, uint8_t isBestFriendsAlready, uint8_t isBestFriendRequest) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); // Portion that will get routed: BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::ADD_FRIEND_RESPONSE); bitStream.Write(responseCode); // For all requests besides accepted, write a flag that says whether or not we are already best friends with the receiver. - bitStream.Write<uint8_t>(responseCode != eAddFriendResponseType::ACCEPTED ? isBestFriendsAlready : sender->sysAddr != UNASSIGNED_SYSTEM_ADDRESS); + bitStream.Write<uint8_t>(responseCode != eAddFriendResponseType::ACCEPTED ? isBestFriendsAlready : sender.sysAddr != UNASSIGNED_SYSTEM_ADDRESS); // Then write the player name - bitStream.Write(LUWString(sender->playerName.c_str())); + bitStream.Write(LUWString(sender.playerName)); // Then if this is an acceptance code, write the following extra info. if (responseCode == eAddFriendResponseType::ACCEPTED) { - bitStream.Write(sender->playerID); - bitStream.Write(sender->zoneID); + bitStream.Write(sender.playerID); + bitStream.Write(sender.zoneID); bitStream.Write(isBestFriendRequest); //isBFF bitStream.Write<uint8_t>(0); //isFTP } - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } -void ChatPacketHandler::SendRemoveFriend(PlayerData* receiver, std::string& personToRemove, bool isSuccessful) { - if (!receiver) return; - +void ChatPacketHandler::SendRemoveFriend(const PlayerData& receiver, std::string& personToRemove, bool isSuccessful) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(receiver->playerID); + bitStream.Write(receiver.playerID); //portion that will get routed: BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::REMOVE_FRIEND_RESPONSE); bitStream.Write<uint8_t>(isSuccessful); //isOnline bitStream.Write(LUWString(personToRemove)); - SystemAddress sysAddr = receiver->sysAddr; + SystemAddress sysAddr = receiver.sysAddr; SEND_PACKET; } diff --git a/dChatServer/ChatPacketHandler.h b/dChatServer/ChatPacketHandler.h index f2d83502..6c9c2de6 100644 --- a/dChatServer/ChatPacketHandler.h +++ b/dChatServer/ChatPacketHandler.h @@ -4,6 +4,7 @@ #include "BitStream.h" struct PlayerData; + enum class eAddFriendResponseType : uint8_t; namespace ChatPacketHandler { @@ -23,18 +24,18 @@ namespace ChatPacketHandler { void HandleTeamLootOption(Packet* packet); void HandleTeamStatusRequest(Packet* packet); - void SendTeamInvite(PlayerData* receiver, PlayerData* sender); - void SendTeamInviteConfirm(PlayerData* receiver, bool bLeaderIsFreeTrial, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, uint8_t ucResponseCode, std::u16string wsLeaderName); - void SendTeamStatus(PlayerData* receiver, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, std::u16string wsLeaderName); - void SendTeamSetLeader(PlayerData* receiver, LWOOBJID i64PlayerID); - void SendTeamAddPlayer(PlayerData* receiver, bool bIsFreeTrial, bool bLocal, bool bNoLootOnDeath, LWOOBJID i64PlayerID, std::u16string wsPlayerName, LWOZONEID zoneID); - void SendTeamRemovePlayer(PlayerData* receiver, bool bDisband, bool bIsKicked, bool bIsLeaving, bool bLocal, LWOOBJID i64LeaderID, LWOOBJID i64PlayerID, std::u16string wsPlayerName); - void SendTeamSetOffWorldFlag(PlayerData* receiver, LWOOBJID i64PlayerID, LWOZONEID zoneID); + void SendTeamInvite(const PlayerData& receiver, const PlayerData& sender); + void SendTeamInviteConfirm(const PlayerData& receiver, bool bLeaderIsFreeTrial, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, uint8_t ucResponseCode, std::u16string wsLeaderName); + void SendTeamStatus(const PlayerData& receiver, LWOOBJID i64LeaderID, LWOZONEID i64LeaderZoneID, uint8_t ucLootFlag, uint8_t ucNumOfOtherPlayers, std::u16string wsLeaderName); + void SendTeamSetLeader(const PlayerData& receiver, LWOOBJID i64PlayerID); + void SendTeamAddPlayer(const PlayerData& receiver, bool bIsFreeTrial, bool bLocal, bool bNoLootOnDeath, LWOOBJID i64PlayerID, std::u16string wsPlayerName, LWOZONEID zoneID); + void SendTeamRemovePlayer(const PlayerData& receiver, bool bDisband, bool bIsKicked, bool bIsLeaving, bool bLocal, LWOOBJID i64LeaderID, LWOOBJID i64PlayerID, std::u16string wsPlayerName); + void SendTeamSetOffWorldFlag(const PlayerData& receiver, LWOOBJID i64PlayerID, LWOZONEID zoneID); //FriendData is the player we're SENDING this stuff to. Player is the friend that changed state. - void SendFriendUpdate(PlayerData* friendData, PlayerData* playerData, uint8_t notifyType, uint8_t isBestFriend); + void SendFriendUpdate(const PlayerData& friendData, const PlayerData& playerData, uint8_t notifyType, uint8_t isBestFriend); - void SendFriendRequest(PlayerData* receiver, PlayerData* sender); - void SendFriendResponse(PlayerData* receiver, PlayerData* sender, eAddFriendResponseType responseCode, uint8_t isBestFriendsAlready = 0U, uint8_t isBestFriendRequest = 0U); - void SendRemoveFriend(PlayerData* receiver, std::string& personToRemove, bool isSuccessful); + void SendFriendRequest(const PlayerData& receiver, const PlayerData& sender); + void SendFriendResponse(const PlayerData& receiver, const PlayerData& sender, eAddFriendResponseType responseCode, uint8_t isBestFriendsAlready = 0U, uint8_t isBestFriendRequest = 0U); + void SendRemoveFriend(const PlayerData& receiver, std::string& personToRemove, bool isSuccessful); }; diff --git a/dChatServer/PlayerContainer.cpp b/dChatServer/PlayerContainer.cpp index f309ea0a..242ccad1 100644 --- a/dChatServer/PlayerContainer.cpp +++ b/dChatServer/PlayerContainer.cpp @@ -28,27 +28,32 @@ TeamData::TeamData() { void PlayerContainer::InsertPlayer(Packet* packet) { CINSTREAM_SKIP_HEADER; - PlayerData* data = new PlayerData(); - inStream.Read(data->playerID); + LWOOBJID playerId; + if (!inStream.Read(playerId)) { + LOG("Failed to read player ID"); + return; + } + + auto& data = m_Players[playerId]; + data.playerID = playerId; uint32_t len; inStream.Read<uint32_t>(len); for (int i = 0; i < len; i++) { char character; inStream.Read<char>(character); - data->playerName += character; + data.playerName += character; } - inStream.Read(data->zoneID); - inStream.Read(data->muteExpire); - data->sysAddr = packet->systemAddress; + inStream.Read(data.zoneID); + inStream.Read(data.muteExpire); + data.sysAddr = packet->systemAddress; - m_Names[data->playerID] = GeneralUtils::UTF8ToUTF16(data->playerName); + m_Names[data.playerID] = GeneralUtils::UTF8ToUTF16(data.playerName); - m_Players.insert(std::make_pair(data->playerID, data)); - LOG("Added user: %s (%llu), zone: %i", data->playerName.c_str(), data->playerID, data->zoneID.GetMapID()); + LOG("Added user: %s (%llu), zone: %i", data.playerName.c_str(), data.playerID, data.zoneID.GetMapID()); - Database::Get()->UpdateActivityLog(data->playerID, eActivityType::PlayerLoggedIn, data->zoneID.GetMapID()); + Database::Get()->UpdateActivityLog(data.playerID, eActivityType::PlayerLoggedIn, data.zoneID.GetMapID()); } void PlayerContainer::RemovePlayer(Packet* packet) { @@ -57,26 +62,27 @@ void PlayerContainer::RemovePlayer(Packet* packet) { inStream.Read(playerID); //Before they get kicked, we need to also send a message to their friends saying that they disconnected. - std::unique_ptr<PlayerData> player(this->GetPlayerData(playerID)); + const auto& player = GetPlayerData(playerID); - if (player == nullptr) { + if (!player) { + LOG("Failed to find user: %llu", playerID); return; } - for (auto& fr : player->friends) { - auto fd = this->GetPlayerData(fr.friendID); - if (fd) ChatPacketHandler::SendFriendUpdate(fd, player.get(), 0, fr.isBestFriend); + for (const auto& fr : player.friends) { + const auto& fd = this->GetPlayerData(fr.friendID); + if (fd) ChatPacketHandler::SendFriendUpdate(fd, player, 0, fr.isBestFriend); } auto* team = GetTeam(playerID); if (team != nullptr) { - const auto memberName = GeneralUtils::UTF8ToUTF16(std::string(player->playerName.c_str())); + const auto memberName = GeneralUtils::UTF8ToUTF16(player.playerName); for (const auto memberId : team->memberIDs) { - auto* otherMember = GetPlayerData(memberId); + const auto& otherMember = GetPlayerData(memberId); - if (otherMember == nullptr) continue; + if (!otherMember) continue; ChatPacketHandler::SendTeamSetOffWorldFlag(otherMember, playerID, { 0, 0, 0 }); } @@ -85,7 +91,7 @@ void PlayerContainer::RemovePlayer(Packet* packet) { LOG("Removed user: %llu", playerID); m_Players.erase(playerID); - Database::Get()->UpdateActivityLog(playerID, eActivityType::PlayerLoggedOut, player->zoneID.GetMapID()); + Database::Get()->UpdateActivityLog(playerID, eActivityType::PlayerLoggedOut, player.zoneID.GetMapID()); } void PlayerContainer::MuteUpdate(Packet* packet) { @@ -95,15 +101,15 @@ void PlayerContainer::MuteUpdate(Packet* packet) { time_t expire = 0; inStream.Read(expire); - auto* player = this->GetPlayerData(playerID); + auto& player = this->GetPlayerDataMutable(playerID); - if (player == nullptr) { + if (!player) { LOG("Failed to find user: %llu", playerID); return; } - player->muteExpire = expire; + player.muteExpire = expire; BroadcastMuteUpdate(playerID, expire); } @@ -201,11 +207,11 @@ TeamData* PlayerContainer::GetTeam(LWOOBJID playerID) { } void PlayerContainer::AddMember(TeamData* team, LWOOBJID playerID) { - if (team->memberIDs.size() >= 4){ + if (team->memberIDs.size() >= 4) { LOG("Tried to add player to team that already had 4 players"); - auto* player = GetPlayerData(playerID); + const auto& player = GetPlayerData(playerID); if (!player) return; - ChatPackets::SendSystemMessage(player->sysAddr, u"The teams is full! You have not been added to a team!"); + ChatPackets::SendSystemMessage(player.sysAddr, u"The teams is full! You have not been added to a team!"); return; } @@ -215,18 +221,18 @@ void PlayerContainer::AddMember(TeamData* team, LWOOBJID playerID) { team->memberIDs.push_back(playerID); - auto* leader = GetPlayerData(team->leaderID); - auto* member = GetPlayerData(playerID); + const auto& leader = GetPlayerData(team->leaderID); + const auto& member = GetPlayerData(playerID); - if (leader == nullptr || member == nullptr) return; + if (!leader || !member) return; - const auto leaderName = GeneralUtils::UTF8ToUTF16(leader->playerName); - const auto memberName = GeneralUtils::UTF8ToUTF16(member->playerName); + const auto leaderName = GeneralUtils::UTF8ToUTF16(leader.playerName); + const auto memberName = GeneralUtils::UTF8ToUTF16(member.playerName); - ChatPacketHandler::SendTeamInviteConfirm(member, false, leader->playerID, leader->zoneID, team->lootFlag, 0, 0, leaderName); + ChatPacketHandler::SendTeamInviteConfirm(member, false, leader.playerID, leader.zoneID, team->lootFlag, 0, 0, leaderName); if (!team->local) { - ChatPacketHandler::SendTeamSetLeader(member, leader->playerID); + ChatPacketHandler::SendTeamSetLeader(member, leader.playerID); } else { ChatPacketHandler::SendTeamSetLeader(member, LWOOBJID_EMPTY); } @@ -234,16 +240,16 @@ void PlayerContainer::AddMember(TeamData* team, LWOOBJID playerID) { UpdateTeamsOnWorld(team, false); for (const auto memberId : team->memberIDs) { - auto* otherMember = GetPlayerData(memberId); + const auto& otherMember = GetPlayerData(memberId); if (otherMember == member) continue; const auto otherMemberName = GetName(memberId); - ChatPacketHandler::SendTeamAddPlayer(member, false, team->local, false, memberId, otherMemberName, otherMember != nullptr ? otherMember->zoneID : LWOZONEID(0, 0, 0)); + ChatPacketHandler::SendTeamAddPlayer(member, false, team->local, false, memberId, otherMemberName, otherMember ? otherMember.zoneID : LWOZONEID(0, 0, 0)); - if (otherMember != nullptr) { - ChatPacketHandler::SendTeamAddPlayer(otherMember, false, team->local, false, member->playerID, memberName, member->zoneID); + if (otherMember) { + ChatPacketHandler::SendTeamAddPlayer(otherMember, false, team->local, false, member.playerID, memberName, member.zoneID); } } } @@ -253,9 +259,9 @@ void PlayerContainer::RemoveMember(TeamData* team, LWOOBJID playerID, bool disba if (index == team->memberIDs.end()) return; - auto* member = GetPlayerData(playerID); + const auto& member = GetPlayerData(playerID); - if (member != nullptr && !silent) { + if (member && !silent) { ChatPacketHandler::SendTeamSetLeader(member, LWOOBJID_EMPTY); } @@ -266,9 +272,9 @@ void PlayerContainer::RemoveMember(TeamData* team, LWOOBJID playerID, bool disba continue; } - auto* otherMember = GetPlayerData(memberId); + const auto& otherMember = GetPlayerData(memberId); - if (otherMember == nullptr) continue; + if (!otherMember) continue; ChatPacketHandler::SendTeamRemovePlayer(otherMember, disband, kicked, leaving, false, team->leaderID, playerID, memberName); } @@ -290,9 +296,9 @@ void PlayerContainer::PromoteMember(TeamData* team, LWOOBJID newLeader) { team->leaderID = newLeader; for (const auto memberId : team->memberIDs) { - auto* otherMember = GetPlayerData(memberId); + const auto& otherMember = GetPlayerData(memberId); - if (otherMember == nullptr) continue; + if (!otherMember) continue; ChatPacketHandler::SendTeamSetLeader(otherMember, newLeader); } @@ -304,14 +310,14 @@ void PlayerContainer::DisbandTeam(TeamData* team) { if (index == mTeams.end()) return; for (const auto memberId : team->memberIDs) { - auto* otherMember = GetPlayerData(memberId); + const auto& otherMember = GetPlayerData(memberId); - if (otherMember == nullptr) continue; + if (!otherMember) continue; - const auto memberName = GeneralUtils::UTF8ToUTF16(otherMember->playerName); + const auto memberName = GeneralUtils::UTF8ToUTF16(otherMember.playerName); ChatPacketHandler::SendTeamSetLeader(otherMember, LWOOBJID_EMPTY); - ChatPacketHandler::SendTeamRemovePlayer(otherMember, true, false, false, team->local, team->leaderID, otherMember->playerID, memberName); + ChatPacketHandler::SendTeamRemovePlayer(otherMember, true, false, false, team->local, team->leaderID, otherMember.playerID, memberName); } UpdateTeamsOnWorld(team, true); @@ -326,19 +332,19 @@ void PlayerContainer::TeamStatusUpdate(TeamData* team) { if (index == mTeams.end()) return; - auto* leader = GetPlayerData(team->leaderID); + const auto& leader = GetPlayerData(team->leaderID); - if (leader == nullptr) return; + if (!leader) return; - const auto leaderName = GeneralUtils::UTF8ToUTF16(leader->playerName); + const auto leaderName = GeneralUtils::UTF8ToUTF16(leader.playerName); for (const auto memberId : team->memberIDs) { - auto* otherMember = GetPlayerData(memberId); + const auto& otherMember = GetPlayerData(memberId); - if (otherMember == nullptr) continue; + if (!otherMember) continue; if (!team->local) { - ChatPacketHandler::SendTeamStatus(otherMember, team->leaderID, leader->zoneID, team->lootFlag, 0, leaderName); + ChatPacketHandler::SendTeamStatus(otherMember, team->leaderID, leader.zoneID, team->lootFlag, 0, leaderName); } } @@ -364,23 +370,42 @@ void PlayerContainer::UpdateTeamsOnWorld(TeamData* team, bool deleteTeam) { } std::u16string PlayerContainer::GetName(LWOOBJID playerID) { - const auto& pair = m_Names.find(playerID); + const auto iter = m_Names.find(playerID); - if (pair == m_Names.end()) return u""; + if (iter == m_Names.end()) return u""; - return pair->second; + return iter->second; } LWOOBJID PlayerContainer::GetId(const std::u16string& playerName) { - for (const auto& pair : m_Names) { - if (pair.second == playerName) { - return pair.first; + LWOOBJID toReturn = LWOOBJID_EMPTY; + + for (const auto& [id, name] : m_Names) { + if (name == playerName) { + toReturn = id; + break; } } - return LWOOBJID_EMPTY; + return toReturn; } -bool PlayerContainer::GetIsMuted(PlayerData* data) { - return data->muteExpire == 1 || data->muteExpire > time(NULL); +PlayerData& PlayerContainer::GetPlayerDataMutable(const LWOOBJID& playerID) { + return m_Players[playerID]; +} + +PlayerData& PlayerContainer::GetPlayerDataMutable(const std::string& playerName) { + for (auto& [id, player] : m_Players) { + if (!player) continue; + if (player.playerName == playerName) return player; + } + return m_Players[LWOOBJID_EMPTY]; +} + +const PlayerData& PlayerContainer::GetPlayerData(const LWOOBJID& playerID) { + return GetPlayerDataMutable(playerID); +} + +const PlayerData& PlayerContainer::GetPlayerData(const std::string& playerName) { + return GetPlayerDataMutable(playerName); } diff --git a/dChatServer/PlayerContainer.h b/dChatServer/PlayerContainer.h index 51bff6c1..3cacc62d 100644 --- a/dChatServer/PlayerContainer.h +++ b/dChatServer/PlayerContainer.h @@ -8,6 +8,7 @@ #include <unordered_map> struct IgnoreData { + IgnoreData(const std::string& name, const LWOOBJID& id) : playerName(name), playerId(id) {} inline bool operator==(const std::string& other) const noexcept { return playerName == other; } @@ -16,19 +17,31 @@ struct IgnoreData { return playerId == other; } - LWOOBJID playerId; + LWOOBJID playerId = LWOOBJID_EMPTY; std::string playerName; }; struct PlayerData { - LWOOBJID playerID; + operator bool() const noexcept { + return playerID != LWOOBJID_EMPTY; + } + + bool operator==(const PlayerData& other) const noexcept { + return playerID == other.playerID; + } + + bool GetIsMuted() const { + return muteExpire == 1 || muteExpire > time(NULL); + } + + SystemAddress sysAddr{}; + LWOZONEID zoneID{}; + LWOOBJID playerID = LWOOBJID_EMPTY; + time_t muteExpire = 0; + uint8_t countOfBestFriends = 0; std::string playerName; - SystemAddress sysAddr; - LWOZONEID zoneID; std::vector<FriendData> friends; std::vector<IgnoreData> ignoredPlayers; - time_t muteExpire; - uint8_t countOfBestFriends = 0; }; struct TeamData { @@ -52,22 +65,10 @@ public: void CreateTeamServer(Packet* packet); void BroadcastMuteUpdate(LWOOBJID player, time_t time); - PlayerData* GetPlayerData(const LWOOBJID& playerID) { - auto it = m_Players.find(playerID); - if (it != m_Players.end()) return it->second; - return nullptr; - } - - PlayerData* GetPlayerData(const std::string& playerName) { - for (auto player : m_Players) { - if (player.second) { - std::string pn = player.second->playerName.c_str(); - if (pn == playerName) return player.second; - } - } - - return nullptr; - } + const PlayerData& GetPlayerData(const LWOOBJID& playerID); + const PlayerData& GetPlayerData(const std::string& playerName); + PlayerData& GetPlayerDataMutable(const LWOOBJID& playerID); + PlayerData& GetPlayerDataMutable(const std::string& playerName); TeamData* CreateLocalTeam(std::vector<LWOOBJID> members); TeamData* CreateTeam(LWOOBJID leader, bool local = false); @@ -80,15 +81,12 @@ public: void UpdateTeamsOnWorld(TeamData* team, bool deleteTeam); std::u16string GetName(LWOOBJID playerID); LWOOBJID GetId(const std::u16string& playerName); - bool GetIsMuted(PlayerData* data); uint32_t GetMaxNumberOfBestFriends() { return m_MaxNumberOfBestFriends; } uint32_t GetMaxNumberOfFriends() { return m_MaxNumberOfFriends; } - std::map<LWOOBJID, PlayerData*>& GetAllPlayerData() { return m_Players; } - private: LWOOBJID m_TeamIDCounter = 0; - std::map<LWOOBJID, PlayerData*> m_Players; + std::map<LWOOBJID, PlayerData> m_Players; std::vector<TeamData*> mTeams; std::unordered_map<LWOOBJID, std::u16string> m_Names; uint32_t m_MaxNumberOfBestFriends = 5; diff --git a/dCommon/dEnums/dCommonVars.h b/dCommon/dEnums/dCommonVars.h index 513e9c8f..f4f8fdfb 100644 --- a/dCommon/dEnums/dCommonVars.h +++ b/dCommon/dEnums/dCommonVars.h @@ -130,7 +130,7 @@ public: LWOOBJID friendID; std::string friendName; - void Serialize(RakNet::BitStream& bitStream) { + void Serialize(RakNet::BitStream& bitStream) const { bitStream.Write<uint8_t>(isOnline); bitStream.Write<uint8_t>(isBestFriend); bitStream.Write<uint8_t>(isFTP); From 0c104e819deca2d4627aa356b47a321066a72a66 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 5 Jan 2024 21:32:09 -0800 Subject: [PATCH 089/106] chore: Consolidate logger setup and add better handling of packets (#1389) * Logger to Server class Dont handle master packets from our clients * move to namespace Revert "remove extra headers" This reverts commit ac7b901ece22165cdb0f38fca4be7d8fdf004de8. remove extra headers no changes otherwise. * Merge branch 'main' into server_consolidation_of_work * Update WorldServer.cpp * fix submodule version --------- Co-authored-by: Aaron Kimbre <aronwk.aaron@gmail.com> --- CMakeLists.txt | 1 + dAuthServer/AuthServer.cpp | 27 +-- dAuthServer/CMakeLists.txt | 6 +- dChatServer/CMakeLists.txt | 4 +- dChatServer/ChatServer.cpp | 21 +-- dMasterServer/CMakeLists.txt | 3 +- dMasterServer/MasterServer.cpp | 22 +-- dServer/CMakeLists.txt | 6 + dServer/Server.cpp | 29 ++++ dServer/Server.h | 10 ++ dWorldServer/CMakeLists.txt | 3 +- dWorldServer/WorldServer.cpp | 299 +++++++++++++++------------------ 12 files changed, 212 insertions(+), 219 deletions(-) create mode 100644 dServer/CMakeLists.txt create mode 100644 dServer/Server.cpp create mode 100644 dServer/Server.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 00c12e28..cd657772 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -314,6 +314,7 @@ add_subdirectory(dGame) add_subdirectory(dZoneManager) add_subdirectory(dNavigation) add_subdirectory(dPhysics) +add_subdirectory(dServer) # Create a list of common libraries shared between all binaries set(COMMON_LIBRARIES "dCommon" "dDatabase" "dNet" "raknet" "mariadbConnCpp" "magic_enum") diff --git a/dAuthServer/AuthServer.cpp b/dAuthServer/AuthServer.cpp index c2cfbfcc..5593f0e1 100644 --- a/dAuthServer/AuthServer.cpp +++ b/dAuthServer/AuthServer.cpp @@ -25,6 +25,9 @@ #include "eAuthMessageType.h" #include "Game.h" +#include "Server.h" + + namespace Game { Logger* logger = nullptr; dServer* server = nullptr; @@ -33,7 +36,6 @@ namespace Game { std::mt19937 randomEngine; } -Logger* SetupLogger(); void HandlePacket(Packet* packet); int main(int argc, char** argv) { @@ -46,14 +48,11 @@ int main(int argc, char** argv) { std::signal(SIGINT, Game::OnSignal); std::signal(SIGTERM, Game::OnSignal); - //Create all the objects we need to run our service: - Game::logger = SetupLogger(); - if (!Game::logger) return EXIT_FAILURE; - - //Read our config: Game::config = new dConfig("authconfig.ini"); - Game::logger->SetLogToConsole(Game::config->GetValue("log_to_console") != "0"); - Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1"); + + //Create all the objects we need to run our service: + Server::SetupLogger("AuthServer"); + if (!Game::logger) return EXIT_FAILURE; LOG("Starting Auth server..."); LOG("Version: %s", PROJECT_VERSION); @@ -162,18 +161,6 @@ int main(int argc, char** argv) { return EXIT_SUCCESS; } -Logger* SetupLogger() { - std::string logPath = (BinaryPathFinder::GetBinaryDir() / ("logs/AuthServer_" + std::to_string(time(nullptr)) + ".log")).string(); - bool logToConsole = false; - bool logDebugStatements = false; -#ifdef _DEBUG - logToConsole = true; - logDebugStatements = true; -#endif - - return new Logger(logPath, logToConsole, logDebugStatements); -} - void HandlePacket(Packet* packet) { if (packet->length < 4) return; diff --git a/dAuthServer/CMakeLists.txt b/dAuthServer/CMakeLists.txt index ebcbccad..7dcbf041 100644 --- a/dAuthServer/CMakeLists.txt +++ b/dAuthServer/CMakeLists.txt @@ -1,3 +1,7 @@ add_executable(AuthServer "AuthServer.cpp") -target_link_libraries(AuthServer ${COMMON_LIBRARIES}) + +target_link_libraries(AuthServer ${COMMON_LIBRARIES} dServer) + +target_include_directories(AuthServer PRIVATE ${PROJECT_SOURCE_DIR}/dServer) + add_compile_definitions(AuthServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"") diff --git a/dChatServer/CMakeLists.txt b/dChatServer/CMakeLists.txt index b6a3efb8..cc4cee1f 100644 --- a/dChatServer/CMakeLists.txt +++ b/dChatServer/CMakeLists.txt @@ -6,7 +6,9 @@ set(DCHATSERVER_SOURCES add_executable(ChatServer "ChatServer.cpp") add_library(dChatServer ${DCHATSERVER_SOURCES}) +target_include_directories(dChatServer PRIVATE ${PROJECT_SOURCE_DIR}/dServer) add_compile_definitions(ChatServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"") target_link_libraries(dChatServer ${COMMON_LIBRARIES} dChatFilter) -target_link_libraries(ChatServer ${COMMON_LIBRARIES} dChatFilter dChatServer) +target_link_libraries(ChatServer ${COMMON_LIBRARIES} dChatFilter dChatServer dServer) + diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 8e1d3adf..8ab66d73 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -22,6 +22,7 @@ #include "ChatIgnoreList.h" #include "Game.h" +#include "Server.h" //RakNet includes: #include "RakNetDefines.h" @@ -38,7 +39,6 @@ namespace Game { PlayerContainer playerContainer; } -Logger* SetupLogger(); void HandlePacket(Packet* packet); int main(int argc, char** argv) { @@ -51,14 +51,13 @@ int main(int argc, char** argv) { std::signal(SIGINT, Game::OnSignal); std::signal(SIGTERM, Game::OnSignal); + Game::config = new dConfig("chatconfig.ini"); + //Create all the objects we need to run our service: - Game::logger = SetupLogger(); + Server::SetupLogger("ChatServer"); if (!Game::logger) return EXIT_FAILURE; //Read our config: - Game::config = new dConfig("chatconfig.ini"); - Game::logger->SetLogToConsole(Game::config->GetValue("log_to_console") != "0"); - Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1"); LOG("Starting Chat server..."); LOG("Version: %s", PROJECT_VERSION); @@ -182,18 +181,6 @@ int main(int argc, char** argv) { return EXIT_SUCCESS; } -Logger* SetupLogger() { - std::string logPath = (BinaryPathFinder::GetBinaryDir() / ("logs/ChatServer_" + std::to_string(time(nullptr)) + ".log")).string(); - bool logToConsole = false; - bool logDebugStatements = false; -#ifdef _DEBUG - logToConsole = true; - logDebugStatements = true; -#endif - - return new Logger(logPath, logToConsole, logDebugStatements); -} - void HandlePacket(Packet* packet) { if (packet->data[0] == ID_DISCONNECTION_NOTIFICATION || packet->data[0] == ID_CONNECTION_LOST) { LOG("A server has disconnected, erasing their connected players from the list."); diff --git a/dMasterServer/CMakeLists.txt b/dMasterServer/CMakeLists.txt index 108cddc2..32a7b1ec 100644 --- a/dMasterServer/CMakeLists.txt +++ b/dMasterServer/CMakeLists.txt @@ -9,7 +9,8 @@ add_executable(MasterServer "MasterServer.cpp") add_compile_definitions(MasterServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"") target_link_libraries(dMasterServer ${COMMON_LIBRARIES}) -target_link_libraries(MasterServer ${COMMON_LIBRARIES} dMasterServer) +target_link_libraries(MasterServer ${COMMON_LIBRARIES} dMasterServer dServer) +target_include_directories(dMasterServer PRIVATE ${PROJECT_SOURCE_DIR}/dServer) if(WIN32) add_dependencies(MasterServer WorldServer AuthServer ChatServer) diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index e5997b51..a5691e49 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -40,6 +40,7 @@ #include "FdbToSqlite.h" #include "BitStreamUtils.h" #include "Start.h" +#include "Server.h" namespace Game { Logger* logger = nullptr; @@ -55,7 +56,6 @@ namespace Game { bool shutdownSequenceStarted = false; int ShutdownSequence(int32_t signal = -1); int32_t FinalizeShutdown(int32_t signal = -1); -Logger* SetupLogger(); void HandlePacket(Packet* packet); std::map<uint32_t, std::string> activeSessions; SystemAddress authServerMasterPeerSysAddr; @@ -77,8 +77,10 @@ int main(int argc, char** argv) { std::signal(SIGINT, Game::OnSignal); std::signal(SIGTERM, Game::OnSignal); + Game::config = new dConfig("masterconfig.ini"); + //Create all the objects we need to run our service: - Game::logger = SetupLogger(); + Server::SetupLogger("MasterServer"); if (!Game::logger) return EXIT_FAILURE; if (!dConfig::Exists("authconfig.ini")) LOG("Could not find authconfig.ini, using default settings"); @@ -87,9 +89,6 @@ int main(int argc, char** argv) { if (!dConfig::Exists("sharedconfig.ini")) LOG("Could not find sharedconfig.ini, using default settings"); if (!dConfig::Exists("worldconfig.ini")) LOG("Could not find worldconfig.ini, using default settings"); - Game::config = new dConfig("masterconfig.ini"); - Game::logger->SetLogToConsole(Game::config->GetValue("log_to_console") != "0"); - Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1"); uint32_t clientNetVersion = 171022; const auto clientNetVersionString = Game::config->GetValue("client_net_version"); @@ -395,19 +394,6 @@ int main(int argc, char** argv) { return ShutdownSequence(EXIT_SUCCESS); } -Logger* SetupLogger() { - std::string logPath = - (BinaryPathFinder::GetBinaryDir() / ("logs/MasterServer_" + std::to_string(time(nullptr)) + ".log")).string(); - bool logToConsole = false; - bool logDebugStatements = false; -#ifdef _DEBUG - logToConsole = true; - logDebugStatements = true; -#endif - - return new Logger(logPath, logToConsole, logDebugStatements); -} - void HandlePacket(Packet* packet) { if (packet->data[0] == ID_DISCONNECTION_NOTIFICATION) { LOG("A server has disconnected"); diff --git a/dServer/CMakeLists.txt b/dServer/CMakeLists.txt new file mode 100644 index 00000000..356e55b7 --- /dev/null +++ b/dServer/CMakeLists.txt @@ -0,0 +1,6 @@ +set(DSERVER_SOURCES + "Server.cpp") + +add_library(dServer STATIC ${DSERVER_SOURCES}) + +target_include_directories(dServer PUBLIC ".") diff --git a/dServer/Server.cpp b/dServer/Server.cpp new file mode 100644 index 00000000..cd801a3b --- /dev/null +++ b/dServer/Server.cpp @@ -0,0 +1,29 @@ +#include "Server.h" + +#include "BinaryPathFinder.h" +#include "Game.h" +#include "Logger.h" +#include "dConfig.h" + +void Server::SetupLogger(const std::string_view serviceName) { + if (Game::logger) { + LOG("A logger has already been setup, skipping."); + return; + } + + const auto logsDir = BinaryPathFinder::GetBinaryDir() / "logs"; + + if (!std::filesystem::exists(logsDir)) std::filesystem::create_directory(logsDir); + + std::string logPath = (logsDir / serviceName).string() + "_" + std::to_string(time(nullptr)) + ".log"; + bool logToConsole = false; + bool logDebugStatements = false; +#ifdef _DEBUG + logToConsole = true; + logDebugStatements = true; +#endif + Game::logger = new Logger(logPath, logToConsole, logDebugStatements); + + Game::logger->SetLogToConsole(Game::config->GetValue("log_to_console") != "0"); + Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1"); +} diff --git a/dServer/Server.h b/dServer/Server.h new file mode 100644 index 00000000..4e9f2543 --- /dev/null +++ b/dServer/Server.h @@ -0,0 +1,10 @@ +#ifndef __SERVER__H__ +#define __SERVER__H__ + +#include <string_view> + +namespace Server { + void SetupLogger(const std::string_view serviceName); +}; + +#endif //!__SERVER__H__ diff --git a/dWorldServer/CMakeLists.txt b/dWorldServer/CMakeLists.txt index 336a60f9..41cba0e2 100644 --- a/dWorldServer/CMakeLists.txt +++ b/dWorldServer/CMakeLists.txt @@ -7,5 +7,6 @@ add_executable(WorldServer "WorldServer.cpp") add_compile_definitions(WorldServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"") target_link_libraries(dWorldServer ${COMMON_LIBRARIES}) -target_link_libraries(WorldServer ${COMMON_LIBRARIES} dChatFilter dGame dZoneManager dPhysics Detour Recast tinyxml2 dWorldServer dNavigation) +target_link_libraries(WorldServer ${COMMON_LIBRARIES} dChatFilter dGame dZoneManager dPhysics Detour Recast tinyxml2 dWorldServer dNavigation dServer) +target_include_directories(WorldServer PRIVATE ${PROJECT_SOURCE_DIR}/dServer) diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index f911f804..d65596b6 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -77,6 +77,7 @@ #include "CheatDetection.h" #include "eGameMasterLevel.h" #include "StringifiedEnum.h" +#include "Server.h" namespace Game { Logger* logger = nullptr; @@ -102,8 +103,8 @@ void WorldShutdownProcess(uint32_t zoneId); void FinalizeShutdown(); void SendShutdownMessageToMaster(); -Logger* SetupLogger(uint32_t zoneID, uint32_t instanceID); void HandlePacketChat(Packet* packet); +void HandleMasterPacket(Packet* packet); void HandlePacket(Packet* packet); struct tempSessionInfo { @@ -143,14 +144,11 @@ int main(int argc, char** argv) { if (argument == "-port") ourPort = atoi(argv[i + 1]); } - //Create all the objects we need to run our service: - Game::logger = SetupLogger(zoneID, instanceID); - if (!Game::logger) return EXIT_FAILURE; - - //Read our config: Game::config = new dConfig("worldconfig.ini"); - Game::logger->SetLogToConsole(Game::config->GetValue("log_to_console") != "0"); - Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1"); + + //Create all the objects we need to run our service: + Server::SetupLogger("WorldServer_" + std::to_string(zoneID) + "_" + std::to_string(instanceID)); + if (!Game::logger) return EXIT_FAILURE; LOG("Starting World server..."); LOG("Version: %s", Game::projectVersion.c_str()); @@ -412,7 +410,7 @@ int main(int argc, char** argv) { //Check for packets here: packet = Game::server->ReceiveFromMaster(); if (packet) { //We can get messages not handle-able by the dServer class, so handle them if we returned anything. - HandlePacket(packet); + HandleMasterPacket(packet); Game::server->DeallocateMasterPacket(packet); } @@ -529,18 +527,6 @@ int main(int argc, char** argv) { return EXIT_SUCCESS; } -Logger* SetupLogger(uint32_t zoneID, uint32_t instanceID) { - std::string logPath = (BinaryPathFinder::GetBinaryDir() / ("logs/WorldServer_" + std::to_string(zoneID) + "_" + std::to_string(instanceID) + "_" + std::to_string(time(nullptr)) + ".log")).string(); - bool logToConsole = false; - bool logDebugStatements = false; -#ifdef _DEBUG - logToConsole = true; - logDebugStatements = true; -#endif - - return new Logger(logPath, logToConsole, logDebugStatements); -} - void HandlePacketChat(Packet* packet) { if (packet->data[0] == ID_DISCONNECTION_NOTIFICATION || packet->data[0] == ID_CONNECTION_LOST) { LOG("Lost our connection to chat, zone(%i), instance(%i)", Game::server->GetZoneID(), Game::server->GetInstanceID()); @@ -672,6 +658,138 @@ void HandlePacketChat(Packet* packet) { } } +void HandleMasterPacket(Packet* packet) { + + if (static_cast<eConnectionType>(packet->data[1]) != eConnectionType::MASTER || packet->length < 4) return; + switch (static_cast<eMasterMessageType>(packet->data[3])) { + case eMasterMessageType::REQUEST_PERSISTENT_ID_RESPONSE: { + uint64_t requestID = PacketUtils::ReadU64(8, packet); + uint32_t objectID = PacketUtils::ReadU32(16, packet); + ObjectIDManager::HandleRequestPersistentIDResponse(requestID, objectID); + break; + } + + case eMasterMessageType::SESSION_KEY_RESPONSE: { + //Read our session key and to which user it belongs: + RakNet::BitStream inStream(packet->data, packet->length, false); + uint64_t header = inStream.Read(header); + uint32_t sessionKey = 0; + std::string username; + + inStream.Read(sessionKey); + username = PacketUtils::ReadString(12, packet, false); + + //Find them: + auto it = m_PendingUsers.find(username); + if (it == m_PendingUsers.end()) return; + + //Convert our key: + std::string userHash = std::to_string(sessionKey); + userHash = md5(userHash); + + //Verify it: + if (userHash != it->second.hash) { + LOG("SOMEONE IS TRYING TO HACK? SESSION KEY MISMATCH: ours: %s != master: %s", userHash.c_str(), it->second.hash.c_str()); + Game::server->Disconnect(it->second.sysAddr, eServerDisconnectIdentifiers::INVALID_SESSION_KEY); + return; + } else { + LOG("User %s authenticated with correct key.", username.c_str()); + + UserManager::Instance()->DeleteUser(packet->systemAddress); + + //Create our user and send them in: + UserManager::Instance()->CreateUser(it->second.sysAddr, username, userHash); + + auto zone = Game::zoneManager->GetZone(); + if (zone) { + float x = 0.0f; + float y = 0.0f; + float z = 0.0f; + + if (zone->GetZoneID().GetMapID() == 1100) { + auto pos = zone->GetSpawnPos(); + x = pos.x; + y = pos.y; + z = pos.z; + } + + WorldPackets::SendLoadStaticZone(it->second.sysAddr, x, y, z, zone->GetChecksum()); + } + + if (Game::server->GetZoneID() == 0) { + //Since doing this reroute breaks the client's request, we have to call this manually. + UserManager::Instance()->RequestCharacterList(it->second.sysAddr); + } + + m_PendingUsers.erase(username); + + //Notify master: + { + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::PLAYER_ADDED); + bitStream.Write((LWOMAPID)Game::server->GetZoneID()); + bitStream.Write((LWOINSTANCEID)instanceID); + Game::server->SendToMaster(&bitStream); + } + } + + break; + } + case eMasterMessageType::AFFIRM_TRANSFER_REQUEST: { + const uint64_t requestID = PacketUtils::ReadU64(8, packet); + + LOG("Got affirmation request of transfer %llu", requestID); + + CBITSTREAM; + + BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::AFFIRM_TRANSFER_RESPONSE); + bitStream.Write(requestID); + Game::server->SendToMaster(&bitStream); + + break; + } + + case eMasterMessageType::SHUTDOWN: { + Game::lastSignal = -1; + LOG("Got shutdown request from master, zone (%i), instance (%i)", Game::server->GetZoneID(), Game::server->GetInstanceID()); + break; + } + + case eMasterMessageType::NEW_SESSION_ALERT: { + RakNet::BitStream inStream(packet->data, packet->length, false); + uint64_t header = inStream.Read(header); + uint32_t sessionKey = inStream.Read(sessionKey); + + std::string username; + + uint32_t len; + inStream.Read(len); + + for (uint32_t i = 0; i < len; i++) { + char character; inStream.Read<char>(character); + username += character; + } + + //Find them: + User* user = UserManager::Instance()->GetUser(username.c_str()); + if (!user) { + LOG("Got new session alert for user %s, but they're not logged in.", username.c_str()); + return; + } + + //Check the key: + if (sessionKey != std::atoi(user->GetSessionKey().c_str())) { + LOG("Got new session alert for user %s, but the session key is invalid.", username.c_str()); + Game::server->Disconnect(user->GetSystemAddress(), eServerDisconnectIdentifiers::INVALID_SESSION_KEY); + return; + } + break; + } + default: + LOG("Unknown packet ID from master %i", int(packet->data[3])); + } +} + void HandlePacket(Packet* packet) { if (packet->data[0] == ID_DISCONNECTION_NOTIFICATION || packet->data[0] == ID_CONNECTION_LOST) { auto user = UserManager::Instance()->GetUser(packet->systemAddress); @@ -730,145 +848,6 @@ void HandlePacket(Packet* packet) { } } - if (static_cast<eConnectionType>(packet->data[1]) == eConnectionType::MASTER) { - switch (static_cast<eMasterMessageType>(packet->data[3])) { - case eMasterMessageType::REQUEST_PERSISTENT_ID_RESPONSE: { - uint64_t requestID = PacketUtils::ReadU64(8, packet); - uint32_t objectID = PacketUtils::ReadU32(16, packet); - ObjectIDManager::HandleRequestPersistentIDResponse(requestID, objectID); - break; - } - - case eMasterMessageType::REQUEST_ZONE_TRANSFER_RESPONSE: { - uint64_t requestID = PacketUtils::ReadU64(8, packet); - ZoneInstanceManager::Instance()->HandleRequestZoneTransferResponse(requestID, packet); - break; - } - - case eMasterMessageType::SESSION_KEY_RESPONSE: { - //Read our session key and to which user it belongs: - RakNet::BitStream inStream(packet->data, packet->length, false); - uint64_t header = inStream.Read(header); - uint32_t sessionKey = 0; - std::string username; - - inStream.Read(sessionKey); - username = PacketUtils::ReadString(12, packet, false); - - //Find them: - auto it = m_PendingUsers.find(username); - if (it == m_PendingUsers.end()) return; - - //Convert our key: - std::string userHash = std::to_string(sessionKey); - userHash = md5(userHash); - - //Verify it: - if (userHash != it->second.hash) { - LOG("SOMEONE IS TRYING TO HACK? SESSION KEY MISMATCH: ours: %s != master: %s", userHash.c_str(), it->second.hash.c_str()); - Game::server->Disconnect(it->second.sysAddr, eServerDisconnectIdentifiers::INVALID_SESSION_KEY); - return; - } else { - LOG("User %s authenticated with correct key.", username.c_str()); - - UserManager::Instance()->DeleteUser(packet->systemAddress); - - //Create our user and send them in: - UserManager::Instance()->CreateUser(it->second.sysAddr, username, userHash); - - auto zone = Game::zoneManager->GetZone(); - if (zone) { - float x = 0.0f; - float y = 0.0f; - float z = 0.0f; - - if (zone->GetZoneID().GetMapID() == 1100) { - auto pos = zone->GetSpawnPos(); - x = pos.x; - y = pos.y; - z = pos.z; - } - - WorldPackets::SendLoadStaticZone(it->second.sysAddr, x, y, z, zone->GetChecksum()); - } - - if (Game::server->GetZoneID() == 0) { - //Since doing this reroute breaks the client's request, we have to call this manually. - UserManager::Instance()->RequestCharacterList(it->second.sysAddr); - } - - m_PendingUsers.erase(username); - - //Notify master: - { - CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::PLAYER_ADDED); - bitStream.Write((LWOMAPID)Game::server->GetZoneID()); - bitStream.Write((LWOINSTANCEID)instanceID); - Game::server->SendToMaster(&bitStream); - } - } - - break; - } - case eMasterMessageType::AFFIRM_TRANSFER_REQUEST: { - const uint64_t requestID = PacketUtils::ReadU64(8, packet); - - LOG("Got affirmation request of transfer %llu", requestID); - - CBITSTREAM; - - BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::AFFIRM_TRANSFER_RESPONSE); - bitStream.Write(requestID); - Game::server->SendToMaster(&bitStream); - - break; - } - - case eMasterMessageType::SHUTDOWN: { - Game::lastSignal = -1; - LOG("Got shutdown request from master, zone (%i), instance (%i)", Game::server->GetZoneID(), Game::server->GetInstanceID()); - break; - } - - case eMasterMessageType::NEW_SESSION_ALERT: { - RakNet::BitStream inStream(packet->data, packet->length, false); - uint64_t header = inStream.Read(header); - uint32_t sessionKey = inStream.Read(sessionKey); - - std::string username; - - uint32_t len; - inStream.Read(len); - - for (uint32_t i = 0; i < len; i++) { - char character; inStream.Read<char>(character); - username += character; - } - - //Find them: - User* user = UserManager::Instance()->GetUser(username.c_str()); - if (!user) { - LOG("Got new session alert for user %s, but they're not logged in.", username.c_str()); - return; - } - - //Check the key: - if (sessionKey != std::atoi(user->GetSessionKey().c_str())) { - LOG("Got new session alert for user %s, but the session key is invalid.", username.c_str()); - Game::server->Disconnect(user->GetSystemAddress(), eServerDisconnectIdentifiers::INVALID_SESSION_KEY); - return; - } - break; - } - - default: - LOG("Unknown packet ID from master %i", int(packet->data[3])); - } - - return; - } - if (static_cast<eConnectionType>(packet->data[1]) != eConnectionType::WORLD) return; switch (static_cast<eWorldMessageType>(packet->data[3])) { From 325598cd99b14fc3f0d82d27a4a94c6ccba9d8a7 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell <aronwk.aaron@gmail.com> Date: Sat, 6 Jan 2024 02:16:10 -0600 Subject: [PATCH 090/106] feat: fully reading auth packets and use stamps (#1398) * feat: fully reading auth packets and use stamps * fix the stupid define * Address feedback * no more Stamp(...) --- dNet/AuthPackets.cpp | 213 +++++++++++++++++++++++++++++-------------- dNet/AuthPackets.h | 84 ++++++++++++++++- dNet/dServer.h | 8 ++ 3 files changed, 238 insertions(+), 67 deletions(-) diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index 7feb0cc3..de8f5704 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -24,11 +24,17 @@ #include "eServerMessageType.h" #include "eMasterMessageType.h" #include "eGameMasterLevel.h" - +#include "StringifiedEnum.h" namespace { std::vector<uint32_t> claimCodes; } +void Stamp::Serialize(RakNet::BitStream* outBitStream){ + outBitStream->Write(type); + outBitStream->Write(value); + outBitStream->Write(timestamp); +}; + void AuthPackets::LoadClaimCodes() { if(!claimCodes.empty()) return; auto rcstring = Game::config->GetValue("rewardcodes"); @@ -42,12 +48,26 @@ void AuthPackets::LoadClaimCodes() { } void AuthPackets::HandleHandshake(dServer* server, Packet* packet) { - RakNet::BitStream inStream(packet->data, packet->length, false); - uint64_t header = inStream.Read(header); + CINSTREAM_SKIP_HEADER uint32_t clientVersion = 0; inStream.Read(clientVersion); + inStream.IgnoreBytes(4); + + ServiceId serviceId; + inStream.Read(serviceId); + if (serviceId != ServiceId::Client) LOG("WARNING: Service ID is not a Client!"); + + uint32_t processID; + inStream.Read(processID); + + uint16_t port; + inStream.Read(port); + if (port != packet->systemAddress.port) LOG("WARNING: Port written in packet does not match the port the client is connecting over!"); + + inStream.IgnoreBytes(33); + + LOG_DEBUG("Client Data [Version: %i, Service: %s, Process: %u, Port: %u, Sysaddr Port: %u]", clientVersion, StringifiedEnum::ToString(serviceId).data(), processID, port, packet->systemAddress.port); - LOG("Received client version: %i", clientVersion); SendHandshake(server, packet->systemAddress, server->GetIP(), server->GetPort(), server->GetServerType()); } @@ -60,42 +80,93 @@ void AuthPackets::SendHandshake(dServer* server, const SystemAddress& sysAddr, c if (!clientNetVersionString.empty()) GeneralUtils::TryParse(clientNetVersionString, clientNetVersion); bitStream.Write<uint32_t>(clientNetVersion); - bitStream.Write<uint32_t>(0x93); + bitStream.Write<uint32_t>(861228100); - if (serverType == ServerType::Auth) bitStream.Write(uint32_t(1)); //Conn: auth - else bitStream.Write<uint32_t>(4); //Conn: world - - bitStream.Write<uint32_t>(0); //Server process ID - bitStream.Write(nextServerPort); + if (serverType == ServerType::Auth) bitStream.Write(ServiceId::Auth); + else if (serverType == ServerType::World) bitStream.Write(ServiceId::World); + else bitStream.Write(ServiceId::General); + bitStream.Write<uint32_t>(774909490); server->Send(&bitStream, sysAddr, false); } void AuthPackets::HandleLoginRequest(dServer* server, Packet* packet) { - std::string username = PacketUtils::ReadString(8, packet, true); - std::string password = PacketUtils::ReadString(0x4A, packet, true); - const char* szUsername = username.c_str(); + CINSTREAM_SKIP_HEADER; + + std::vector<Stamp> stamps; + stamps.emplace_back(eStamps::PASSPORT_AUTH_START, 0); + + LUWString usernameLUString(33); + inStream.Read(usernameLUString); + const auto username = usernameLUString.GetAsString(); + + LUWString password(41); + inStream.Read(password); + + LanguageCodeID locale_id; + inStream.Read(locale_id); + LOG_DEBUG("Locale ID: %s", StringifiedEnum::ToString(locale_id).data()); + + ClientOS clientOS; + inStream.Read(clientOS); + LOG_DEBUG("Operating System: %s", StringifiedEnum::ToString(clientOS).data()); + stamps.emplace_back(eStamps::PASSPORT_AUTH_CLIENT_OS, 0); + + LUWString memoryStats(256); + inStream.Read(memoryStats); + LOG_DEBUG("Memory Stats [%s]", memoryStats.GetAsString().c_str()); + + LUWString videoCard(128); + inStream.Read(videoCard); + LOG_DEBUG("VideoCard Info: [%s]", videoCard.GetAsString().c_str()); + + // Processor/CPU info + uint32_t numOfProcessors; + inStream.Read(numOfProcessors); + uint32_t processorType; + inStream.Read(processorType); + uint16_t processorLevel; + inStream.Read(processorLevel); + uint16_t processorRevision; + inStream.Read(processorRevision); + LOG_DEBUG("CPU Info: [#Processors: %i, Processor Type: %i, Processor Level: %i, Processor Revision: %i]", numOfProcessors, processorType, processorLevel, processorRevision); + + // OS Info + uint32_t osVersionInfoSize; + inStream.Read(osVersionInfoSize); + uint32_t majorVersion; + inStream.Read(majorVersion); + uint32_t minorVersion; + inStream.Read(minorVersion); + uint32_t buildNumber; + inStream.Read(buildNumber); + uint32_t platformID; + inStream.Read(platformID); + LOG_DEBUG("OS Info: [Size: %i, Major: %i, Minor %i, Buid#: %i, platformID: %i]", osVersionInfoSize, majorVersion, minorVersion, buildNumber, platformID); // Fetch account details auto accountInfo = Database::Get()->GetAccountInfo(username); if (!accountInfo) { LOG("No user by name %s found!", username.c_str()); - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::INVALID_USER, "", "", 2001, username); + stamps.emplace_back(eStamps::PASSPORT_AUTH_ERROR, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::INVALID_USER, "", "", 2001, username, stamps); return; } //If we aren't running in live mode, then only GMs are allowed to enter: const auto& closedToNonDevs = Game::config->GetValue("closed_to_non_devs"); if (closedToNonDevs.size() > 0 && bool(std::stoi(closedToNonDevs)) && accountInfo->maxGmLevel == eGameMasterLevel::CIVILIAN) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "The server is currently only open to developers.", "", 2001, username); + stamps.emplace_back(eStamps::GM_REQUIRED, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "The server is currently only open to developers.", "", 2001, username, stamps); return; } if (Game::config->GetValue("dont_use_keys") != "1" && accountInfo->maxGmLevel == eGameMasterLevel::CIVILIAN) { //Check to see if we have a play key: if (accountInfo->playKeyId == 0) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a play key associated with it!", "", 2001, username); + stamps.emplace_back(eStamps::PASSPORT_AUTH_ERROR, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a play key associated with it!", "", 2001, username, stamps); LOG("User %s tried to log in, but they don't have a play key.", username.c_str()); return; } @@ -104,40 +175,50 @@ void AuthPackets::HandleLoginRequest(dServer* server, Packet* packet) { auto playKeyStatus = Database::Get()->IsPlaykeyActive(accountInfo->playKeyId); if (!playKeyStatus) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a valid play key associated with it!", "", 2001, username); + stamps.emplace_back(eStamps::PASSPORT_AUTH_ERROR, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your account doesn't have a valid play key associated with it!", "", 2001, username, stamps); return; } if (!playKeyStatus.value()) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your play key has been disabled.", "", 2001, username); + stamps.emplace_back(eStamps::PASSPORT_AUTH_ERROR, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::PERMISSIONS_NOT_HIGH_ENOUGH, "Your play key has been disabled.", "", 2001, username, stamps); LOG("User %s tried to log in, but their play key was disabled", username.c_str()); return; } + } else if (Game::config->GetValue("dont_use_keys") == "1" || accountInfo->maxGmLevel > eGameMasterLevel::CIVILIAN){ + stamps.emplace_back(eStamps::PASSPORT_AUTH_BYPASS, 1); } if (accountInfo->banned) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::BANNED, "", "", 2001, username); return; + stamps.emplace_back(eStamps::PASSPORT_AUTH_ERROR, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::BANNED, "", "", 2001, username, stamps); + return; } if (accountInfo->locked) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::ACCOUNT_LOCKED, "", "", 2001, username); return; + stamps.emplace_back(eStamps::PASSPORT_AUTH_ERROR, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::ACCOUNT_LOCKED, "", "", 2001, username, stamps); + return; } - bool loginSuccess = ::bcrypt_checkpw(password.c_str(), accountInfo->bcryptPassword.c_str()) == 0; + bool loginSuccess = ::bcrypt_checkpw(password.GetAsString().c_str(), accountInfo->bcryptPassword.c_str()) == 0; if (!loginSuccess) { - AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::WRONG_PASS, "", "", 2001, username); + stamps.emplace_back(eStamps::PASSPORT_AUTH_ERROR, 1); + AuthPackets::SendLoginResponse(server, packet->systemAddress, eLoginResponse::WRONG_PASS, "", "", 2001, username, stamps); LOG("Wrong password used"); } else { SystemAddress system = packet->systemAddress; //Copy the sysAddr before the Packet gets destroyed from main if (!server->GetIsConnectedToMaster()) { - AuthPackets::SendLoginResponse(server, system, eLoginResponse::GENERAL_FAILED, "", "", 0, username); + stamps.emplace_back(eStamps::PASSPORT_AUTH_WORLD_DISCONNECT, 1); + AuthPackets::SendLoginResponse(server, system, eLoginResponse::GENERAL_FAILED, "", "", 0, username, stamps); return; } - - ZoneInstanceManager::Instance()->RequestZoneTransfer(server, 0, 0, false, [system, server, username](bool mythranShift, uint32_t zoneID, uint32_t zoneInstance, uint32_t zoneClone, std::string zoneIP, uint16_t zonePort) { - AuthPackets::SendLoginResponse(server, system, eLoginResponse::SUCCESS, "", zoneIP, zonePort, username); + stamps.emplace_back(eStamps::PASSPORT_AUTH_WORLD_SESSION_CONFIRM_TO_AUTH, 1); + ZoneInstanceManager::Instance()->RequestZoneTransfer(server, 0, 0, false, [system, server, username, stamps](bool mythranShift, uint32_t zoneID, uint32_t zoneInstance, uint32_t zoneClone, std::string zoneIP, uint16_t zonePort) mutable { + AuthPackets::SendLoginResponse(server, system, eLoginResponse::SUCCESS, "", zoneIP, zonePort, username, stamps); }); } @@ -146,21 +227,22 @@ void AuthPackets::HandleLoginRequest(dServer* server, Packet* packet) { } } -void AuthPackets::SendLoginResponse(dServer* server, const SystemAddress& sysAddr, eLoginResponse responseCode, const std::string& errorMsg, const std::string& wServerIP, uint16_t wServerPort, std::string username) { - RakNet::BitStream packet; - BitStreamUtils::WriteHeader(packet, eConnectionType::CLIENT, eClientMessageType::LOGIN_RESPONSE); +void AuthPackets::SendLoginResponse(dServer* server, const SystemAddress& sysAddr, eLoginResponse responseCode, const std::string& errorMsg, const std::string& wServerIP, uint16_t wServerPort, std::string username, std::vector<Stamp>& stamps) { + stamps.emplace_back(eStamps::PASSPORT_AUTH_IM_LOGIN_START, 1); + RakNet::BitStream loginResponse; + BitStreamUtils::WriteHeader(loginResponse, eConnectionType::CLIENT, eClientMessageType::LOGIN_RESPONSE); - packet.Write<uint8_t>(GeneralUtils::CastUnderlyingType(responseCode)); + loginResponse.Write<uint8_t>(GeneralUtils::CastUnderlyingType(responseCode)); // Event Gating - packet.Write(LUString(Game::config->GetValue("event_1"))); - packet.Write(LUString(Game::config->GetValue("event_2"))); - packet.Write(LUString(Game::config->GetValue("event_3"))); - packet.Write(LUString(Game::config->GetValue("event_4"))); - packet.Write(LUString(Game::config->GetValue("event_5"))); - packet.Write(LUString(Game::config->GetValue("event_6"))); - packet.Write(LUString(Game::config->GetValue("event_7"))); - packet.Write(LUString(Game::config->GetValue("event_8"))); + loginResponse.Write(LUString(Game::config->GetValue("event_1"))); + loginResponse.Write(LUString(Game::config->GetValue("event_2"))); + loginResponse.Write(LUString(Game::config->GetValue("event_3"))); + loginResponse.Write(LUString(Game::config->GetValue("event_4"))); + loginResponse.Write(LUString(Game::config->GetValue("event_5"))); + loginResponse.Write(LUString(Game::config->GetValue("event_6"))); + loginResponse.Write(LUString(Game::config->GetValue("event_7"))); + loginResponse.Write(LUString(Game::config->GetValue("event_8"))); uint16_t version_major = 1; uint16_t version_current = 10; @@ -169,53 +251,52 @@ void AuthPackets::SendLoginResponse(dServer* server, const SystemAddress& sysAdd GeneralUtils::TryParse<uint16_t>(Game::config->GetValue("version_current"), version_current); GeneralUtils::TryParse<uint16_t>(Game::config->GetValue("version_minor"), version_minor); - packet.Write(version_major); - packet.Write(version_current); - packet.Write(version_minor); + loginResponse.Write(version_major); + loginResponse.Write(version_current); + loginResponse.Write(version_minor); // Writes the user key uint32_t sessionKey = GeneralUtils::GenerateRandomNumber<uint32_t>(); std::string userHash = std::to_string(sessionKey); userHash = md5(userHash); - packet.Write(LUWString(userHash)); + loginResponse.Write(LUWString(userHash)); - // Write the Character and Chat IPs - packet.Write(LUString(wServerIP)); - packet.Write(LUString("")); + // World Server IP + loginResponse.Write(LUString(wServerIP)); + // Chat Server IP (unused) + loginResponse.Write(LUString("")); - // Write the Character and Chat Ports - packet.Write<uint16_t>(wServerPort); - packet.Write<uint16_t>(0); + // World Server Redirect port + loginResponse.Write(wServerPort); + // Char Server Redirect port (unused) + loginResponse.Write(static_cast<uint16_t>(0)); // CDN Key - packet.Write(LUString("")); + loginResponse.Write(LUString("")); // CDN Ticket - packet.Write(LUString("00000000-0000-0000-0000-000000000000", 37)); + loginResponse.Write(LUString("00000000-0000-0000-0000-000000000000", 37)); - packet.Write<uint32_t>(0); // Language + // Language + loginResponse.Write(Language::en_US); // Write the localization - packet.Write(LUString("US", 3)); + loginResponse.Write(LUString("US", 3)); - packet.Write<uint8_t>(false); // Just upgraded from F2P - packet.Write<uint8_t>(false); // User is F2P - packet.Write<uint64_t>(0); // Time Remaining in F2P + loginResponse.Write<uint8_t>(false); // Just upgraded from F2P + loginResponse.Write<uint8_t>(false); // User is F2P + loginResponse.Write<uint64_t>(0); // Time Remaining in F2P // Write custom error message - packet.Write<uint16_t>(errorMsg.length()); - packet.Write(LUWString(errorMsg, static_cast<uint32_t>(errorMsg.length()))); + loginResponse.Write<uint16_t>(errorMsg.length()); + loginResponse.Write(LUWString(errorMsg, static_cast<uint32_t>(errorMsg.length()))); - // Here write auth logs - packet.Write<uint32_t>(20); - for (uint32_t i = 0; i < 20; ++i) { - packet.Write<uint32_t>(8); - packet.Write<uint32_t>(44); - packet.Write<uint32_t>(14000); - packet.Write<uint32_t>(0); - } + stamps.emplace_back(eStamps::PASSPORT_AUTH_WORLD_COMMUNICATION_FINISH, 1); - server->Send(&packet, sysAddr, false); + loginResponse.Write<uint32_t>((sizeof(Stamp) * stamps.size()) + sizeof(uint32_t)); + for (auto& stamp : stamps) stamp.Serialize(&loginResponse); + + server->Send(&loginResponse, sysAddr, false); //Inform the master server that we've created a session for this user: if (responseCode == eLoginResponse::SUCCESS) { diff --git a/dNet/AuthPackets.h b/dNet/AuthPackets.h index eb275a46..539bae75 100644 --- a/dNet/AuthPackets.h +++ b/dNet/AuthPackets.h @@ -4,17 +4,99 @@ #define _VARIADIC_MAX 10 #include "dCommonVars.h" #include "dNetCommon.h" +#include "magic_enum.hpp" enum class ServerType : uint32_t; enum class eLoginResponse : uint8_t; class dServer; +enum class eStamps : uint32_t { + PASSPORT_AUTH_START, + PASSPORT_AUTH_BYPASS, + PASSPORT_AUTH_ERROR, + PASSPORT_AUTH_DB_SELECT_START, + PASSPORT_AUTH_DB_SELECT_FINISH, + PASSPORT_AUTH_DB_INSERT_START, + PASSPORT_AUTH_DB_INSERT_FINISH, + PASSPORT_AUTH_LEGOINT_COMMUNICATION_START, + PASSPORT_AUTH_LEGOINT_RECEIVED, + PASSPORT_AUTH_LEGOINT_THREAD_SPAWN, + PASSPORT_AUTH_LEGOINT_WEBSERVICE_START, + PASSPORT_AUTH_LEGOINT_WEBSERVICE_FINISH, + PASSPORT_AUTH_LEGOINT_LEGOCLUB_START, + PASSPORT_AUTH_LEGOINT_LEGOCLUB_FINISH, + PASSPORT_AUTH_LEGOINT_THREAD_FINISH, + PASSPORT_AUTH_LEGOINT_REPLY, + PASSPORT_AUTH_LEGOINT_ERROR, + PASSPORT_AUTH_LEGOINT_COMMUNICATION_END, + PASSPORT_AUTH_LEGOINT_DISCONNECT, + PASSPORT_AUTH_WORLD_COMMUNICATION_START, + PASSPORT_AUTH_CLIENT_OS, + PASSPORT_AUTH_WORLD_PACKET_RECEIVED, + PASSPORT_AUTH_IM_COMMUNICATION_START, + PASSPORT_AUTH_IM_LOGIN_START, + PASSPORT_AUTH_IM_LOGIN_ALREADY_LOGGED_IN, + PASSPORT_AUTH_IM_OTHER_LOGIN_REMOVED, + PASSPORT_AUTH_IM_LOGIN_QUEUED, + PASSPORT_AUTH_IM_LOGIN_RESPONSE, + PASSPORT_AUTH_IM_COMMUNICATION_END, + PASSPORT_AUTH_WORLD_SESSION_CONFIRM_TO_AUTH, + PASSPORT_AUTH_WORLD_COMMUNICATION_FINISH, + PASSPORT_AUTH_WORLD_DISCONNECT, + NO_LEGO_INTERFACE, + DB_ERROR, + GM_REQUIRED, + NO_LEGO_WEBSERVICE_XML, + LEGO_WEBSERVICE_TIMEOUT, + LEGO_WEBSERVICE_ERROR, + NO_WORLD_SERVER +}; + +struct Stamp { + eStamps type; + uint32_t value; + uint64_t timestamp; + + Stamp(eStamps type, uint32_t value, uint64_t timestamp = time(nullptr)){ + this->type = type; + this->value = value; + this->timestamp = timestamp; + } + + void Serialize(RakNet::BitStream* outBitStream); +}; + +enum class ClientOS : uint8_t { + UNKNOWN, + WINDOWS, + MACOS +}; + +enum class LanguageCodeID : uint16_t { + de_DE = 0x0407, + en_US = 0x0409, + en_GB = 0x0809 +}; + +template <> +struct magic_enum::customize::enum_range<LanguageCodeID> { + static constexpr int min = 1031; + static constexpr int max = 2057; +}; + +enum class Language : uint32_t { + en_US, + pl_US, + de_DE, + en_GB, +}; + namespace AuthPackets { void HandleHandshake(dServer* server, Packet* packet); void SendHandshake(dServer* server, const SystemAddress& sysAddr, const std::string& nextServerIP, uint16_t nextServerPort, const ServerType serverType); void HandleLoginRequest(dServer* server, Packet* packet); - void SendLoginResponse(dServer* server, const SystemAddress& sysAddr, eLoginResponse responseCode, const std::string& errorMsg, const std::string& wServerIP, uint16_t wServerPort, std::string username); + void SendLoginResponse(dServer* server, const SystemAddress& sysAddr, eLoginResponse responseCode, const std::string& errorMsg, const std::string& wServerIP, uint16_t wServerPort, std::string username, std::vector<Stamp>& stamps); void LoadClaimCodes(); } diff --git a/dNet/dServer.h b/dNet/dServer.h index b0a3e11d..ef47eea4 100644 --- a/dNet/dServer.h +++ b/dNet/dServer.h @@ -16,6 +16,14 @@ enum class ServerType : uint32_t { World }; +enum class ServiceId : uint32_t{ + General = 0, + Auth = 1, + Chat = 2, + World = 4, + Client = 5, +}; + namespace Game { using signal_t = volatile std::sig_atomic_t; } From 14c20fbd6280b8f6e21f651d2855c3067e8e6fce Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 6 Jan 2024 01:45:23 -0800 Subject: [PATCH 091/106] change timers to not use ptrs (#1399) add comments as to why logic may seem confusing. --- dGame/Entity.cpp | 97 +++++++++++++-------------- dGame/Entity.h | 9 ++- dGame/dEntity/EntityCallbackTimer.cpp | 14 +--- dGame/dEntity/EntityCallbackTimer.h | 8 +-- dGame/dEntity/EntityTimer.cpp | 6 +- dGame/dEntity/EntityTimer.h | 11 ++- 6 files changed, 67 insertions(+), 78 deletions(-) diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index aaa01e97..347b4caa 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -1222,39 +1222,56 @@ void Entity::UpdateXMLDoc(tinyxml2::XMLDocument* doc) { void Entity::Update(const float deltaTime) { uint32_t timerPosition; - timerPosition = 0; - while (timerPosition < m_Timers.size()) { - m_Timers[timerPosition]->Update(deltaTime); - if (m_Timers[timerPosition]->GetTime() <= 0) { - const auto timerName = m_Timers[timerPosition]->GetName(); - - delete m_Timers[timerPosition]; + for (timerPosition = 0; timerPosition < m_Timers.size();) { + auto& timer = m_Timers[timerPosition]; + timer.Update(deltaTime); + // If the timer is expired, erase it and dont increment the position because the next timer will be at the same position. + // Before: [0, 1, 2, 3, ..., n] + // timerPosition ^ + // After: [0, 1, 3, ..., n] + // timerPosition ^ + if (timer.GetTime() <= 0) { + // Remove the timer from the list of timers first so that scripts and events can remove timers without causing iterator invalidation + auto timerName = timer.GetName(); m_Timers.erase(m_Timers.begin() + timerPosition); - for (CppScripts::Script* script : CppScripts::GetEntityScripts(this)) { script->OnTimerDone(this, timerName); } + TriggerEvent(eTriggerEventType::TIMER_DONE, this); + } else { + // If the timer isnt expired, go to the next timer. + timerPosition++; + } + } + + for (timerPosition = 0; timerPosition < m_CallbackTimers.size(); ) { + // If the timer is expired, erase it and dont increment the position because the next timer will be at the same position. + // Before: [0, 1, 2, 3, ..., n] + // timerPosition ^ + // After: [0, 1, 3, ..., n] + // timerPosition ^ + auto& callbackTimer = m_CallbackTimers[timerPosition]; + callbackTimer.Update(deltaTime); + if (callbackTimer.GetTime() <= 0) { + // Remove the timer from the list of timers first so that callbacks can remove timers without causing iterator invalidation + auto callback = callbackTimer.GetCallback(); + m_CallbackTimers.erase(m_CallbackTimers.begin() + timerPosition); + callback(); } else { timerPosition++; } } - for (int i = 0; i < m_CallbackTimers.size(); i++) { - m_CallbackTimers[i]->Update(deltaTime); - if (m_CallbackTimers[i]->GetTime() <= 0) { - m_CallbackTimers[i]->GetCallback()(); - delete m_CallbackTimers[i]; - m_CallbackTimers.erase(m_CallbackTimers.begin() + i); - } + // Add pending timers to the list of timers so they start next tick. + if (!m_PendingTimers.empty()) { + m_Timers.insert(m_Timers.end(), m_PendingTimers.begin(), m_PendingTimers.end()); + m_PendingTimers.clear(); } - // Add pending timers to the list of timers so they start next tick. - if (m_PendingTimers.size() > 0) { - for (auto namedTimer : m_PendingTimers) { - m_Timers.push_back(namedTimer); - } - m_PendingTimers.clear(); + if (!m_PendingCallbackTimers.empty()) { + m_CallbackTimers.insert(m_CallbackTimers.end(), m_PendingCallbackTimers.begin(), m_PendingCallbackTimers.end()); + m_PendingCallbackTimers.clear(); } if (IsSleeping()) { @@ -1692,31 +1709,20 @@ void Entity::RemoveParent() { } void Entity::AddTimer(std::string name, float time) { - EntityTimer* timer = new EntityTimer(name, time); - m_PendingTimers.push_back(timer); + m_PendingTimers.emplace_back(name, time); } void Entity::AddCallbackTimer(float time, std::function<void()> callback) { - EntityCallbackTimer* timer = new EntityCallbackTimer(time, callback); - m_CallbackTimers.push_back(timer); + m_PendingCallbackTimers.emplace_back(time, callback); } bool Entity::HasTimer(const std::string& name) { - for (auto* timer : m_Timers) { - if (timer->GetName() == name) { - return true; - } - } - - return false; + return std::find(m_Timers.begin(), m_Timers.end(), name) != m_Timers.end(); } void Entity::CancelCallbackTimers() { - for (auto* callback : m_CallbackTimers) { - delete callback; - } - m_CallbackTimers.clear(); + m_PendingCallbackTimers.clear(); } void Entity::ScheduleKillAfterUpdate(Entity* murderer) { @@ -1728,8 +1734,8 @@ void Entity::ScheduleKillAfterUpdate(Entity* murderer) { void Entity::CancelTimer(const std::string& name) { for (int i = 0; i < m_Timers.size(); i++) { - if (m_Timers[i]->GetName() == name) { - delete m_Timers[i]; + auto& timer = m_Timers[i]; + if (timer == name) { m_Timers.erase(m_Timers.begin() + i); return; } @@ -1737,21 +1743,10 @@ void Entity::CancelTimer(const std::string& name) { } void Entity::CancelAllTimers() { - /*for (auto timer : m_Timers) { - if (timer) delete timer; - }*/ - - for (auto* timer : m_Timers) { - delete timer; - } - m_Timers.clear(); - - for (auto* callBackTimer : m_CallbackTimers) { - delete callBackTimer; - } - + m_PendingTimers.clear(); m_CallbackTimers.clear(); + m_PendingCallbackTimers.clear(); } bool Entity::IsPlayer() const { diff --git a/dGame/Entity.h b/dGame/Entity.h index 77d77b16..83e8dc3f 100644 --- a/dGame/Entity.h +++ b/dGame/Entity.h @@ -160,6 +160,8 @@ public: void AddChild(Entity* child); void RemoveChild(Entity* child); void RemoveParent(); + + // Adds a timer to start next frame with the given name and time. void AddTimer(std::string name, float time); void AddCallbackTimer(float time, std::function<void()> callback); bool HasTimer(const std::string& name); @@ -324,9 +326,10 @@ protected: std::vector<std::function<void(Entity* target)>> m_PhantomCollisionCallbacks; std::unordered_map<eReplicaComponentType, Component*> m_Components; - std::vector<EntityTimer*> m_Timers; - std::vector<EntityTimer*> m_PendingTimers; - std::vector<EntityCallbackTimer*> m_CallbackTimers; + std::vector<EntityTimer> m_Timers; + std::vector<EntityTimer> m_PendingTimers; + std::vector<EntityCallbackTimer> m_CallbackTimers; + std::vector<EntityCallbackTimer> m_PendingCallbackTimers; bool m_ShouldDestroyAfterUpdate = false; diff --git a/dGame/dEntity/EntityCallbackTimer.cpp b/dGame/dEntity/EntityCallbackTimer.cpp index e07c1189..95222c4e 100644 --- a/dGame/dEntity/EntityCallbackTimer.cpp +++ b/dGame/dEntity/EntityCallbackTimer.cpp @@ -1,22 +1,10 @@ #include "EntityCallbackTimer.h" -EntityCallbackTimer::EntityCallbackTimer(float time, std::function<void()> callback) { +EntityCallbackTimer::EntityCallbackTimer(const float time, const std::function<void()> callback) { m_Time = time; m_Callback = callback; } -EntityCallbackTimer::~EntityCallbackTimer() { - -} - -std::function<void()> EntityCallbackTimer::GetCallback() { - return m_Callback; -} - -float EntityCallbackTimer::GetTime() { - return m_Time; -} - void EntityCallbackTimer::Update(float deltaTime) { m_Time -= deltaTime; } diff --git a/dGame/dEntity/EntityCallbackTimer.h b/dGame/dEntity/EntityCallbackTimer.h index 2a7e58f0..9b37476b 100644 --- a/dGame/dEntity/EntityCallbackTimer.h +++ b/dGame/dEntity/EntityCallbackTimer.h @@ -5,11 +5,11 @@ class EntityCallbackTimer { public: - EntityCallbackTimer(float time, std::function<void()> callback); - ~EntityCallbackTimer(); + EntityCallbackTimer(const float time, const std::function<void()> callback); + + std::function<void()> GetCallback() const { return m_Callback; }; - std::function<void()> GetCallback(); - float GetTime(); + float GetTime() const { return m_Time; }; void Update(float deltaTime); diff --git a/dGame/dEntity/EntityTimer.cpp b/dGame/dEntity/EntityTimer.cpp index 0363fc5b..8ec666b6 100644 --- a/dGame/dEntity/EntityTimer.cpp +++ b/dGame/dEntity/EntityTimer.cpp @@ -1,14 +1,10 @@ #include "EntityTimer.h" -EntityTimer::EntityTimer(std::string name, float time) { +EntityTimer::EntityTimer(const std::string& name, const float time) { m_Name = name; m_Time = time; } -EntityTimer::~EntityTimer() { - -} - std::string EntityTimer::GetName() { return m_Name; } diff --git a/dGame/dEntity/EntityTimer.h b/dGame/dEntity/EntityTimer.h index 9de0345d..d5c4a19e 100644 --- a/dGame/dEntity/EntityTimer.h +++ b/dGame/dEntity/EntityTimer.h @@ -4,8 +4,15 @@ class EntityTimer { public: - EntityTimer(std::string name, float time); - ~EntityTimer(); + EntityTimer(const std::string& name, const float time); + + bool operator==(const EntityTimer& other) const { + return m_Name == other.m_Name; + } + + bool operator==(const std::string& other) const { + return m_Name == other; + } std::string GetName(); float GetTime(); From b683413a60704576e3b2533407b811b082e17311 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 6 Jan 2024 23:05:57 -0800 Subject: [PATCH 092/106] Remove deps from dNet (#1401) --- dCommon/PositionUpdate.h | 50 +++ dGame/Entity.cpp | 73 +++ dGame/Entity.h | 3 + dGame/UserManager.cpp | 49 ++- .../HavokVehiclePhysicsComponent.h | 26 +- dNet/CMakeLists.txt | 9 +- dNet/ClientPackets.cpp | 414 +++--------------- dNet/ClientPackets.h | 28 +- dNet/WorldPackets.cpp | 101 +---- dNet/WorldPackets.h | 8 +- dWorldServer/WorldServer.cpp | 146 +++++- 11 files changed, 411 insertions(+), 496 deletions(-) create mode 100644 dCommon/PositionUpdate.h diff --git a/dCommon/PositionUpdate.h b/dCommon/PositionUpdate.h new file mode 100644 index 00000000..1b84e371 --- /dev/null +++ b/dCommon/PositionUpdate.h @@ -0,0 +1,50 @@ +#ifndef __POSITIONUPDATE__H__ +#define __POSITIONUPDATE__H__ + +#include "NiPoint3.h" +#include "NiQuaternion.h" + + +struct RemoteInputInfo { + RemoteInputInfo() { + m_RemoteInputX = 0; + m_RemoteInputY = 0; + m_IsPowersliding = false; + m_IsModified = false; + } + + void operator=(const RemoteInputInfo& other) { + m_RemoteInputX = other.m_RemoteInputX; + m_RemoteInputY = other.m_RemoteInputY; + m_IsPowersliding = other.m_IsPowersliding; + m_IsModified = other.m_IsModified; + } + + bool operator==(const RemoteInputInfo& other) { + return m_RemoteInputX == other.m_RemoteInputX && m_RemoteInputY == other.m_RemoteInputY && m_IsPowersliding == other.m_IsPowersliding && m_IsModified == other.m_IsModified; + } + + float m_RemoteInputX; + float m_RemoteInputY; + bool m_IsPowersliding; + bool m_IsModified; +}; + +struct LocalSpaceInfo { + LWOOBJID objectId = LWOOBJID_EMPTY; + NiPoint3 position = NiPoint3::ZERO; + NiPoint3 linearVelocity = NiPoint3::ZERO; +}; + +struct PositionUpdate { + NiPoint3 position = NiPoint3::ZERO; + NiQuaternion rotation = NiQuaternion::IDENTITY; + bool onGround = false; + bool onRail = false; + NiPoint3 velocity = NiPoint3::ZERO; + NiPoint3 angularVelocity = NiPoint3::ZERO; + LocalSpaceInfo localSpaceInfo; + RemoteInputInfo remoteInputInfo; +}; + +#endif //!__POSITIONUPDATE__H__ diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 347b4caa..8300de41 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -25,6 +25,7 @@ #include "eMissionTaskType.h" #include "eTriggerEventType.h" #include "eObjectBits.h" +#include "PositionUpdate.h" //Component includes: #include "Component.h" @@ -2056,3 +2057,75 @@ uint8_t Entity::GetCollectibleID() const { auto* collectible = GetComponent<CollectibleComponent>(); return collectible ? collectible->GetCollectibleId() : 0; } + +void Entity::ProcessPositionUpdate(PositionUpdate& update) { + if (!IsPlayer()) return; + auto* controllablePhysicsComponent = GetComponent<ControllablePhysicsComponent>(); + if (!controllablePhysicsComponent) return; + + auto* possessorComponent = GetComponent<PossessorComponent>(); + bool updateChar = true; + + if (possessorComponent) { + auto* possassableEntity = Game::entityManager->GetEntity(possessorComponent->GetPossessable()); + + if (possassableEntity) { + auto* possessableComponent = possassableEntity->GetComponent<PossessableComponent>(); + + // While possessing something, only update char if we are attached to the thing we are possessing + updateChar = possessableComponent && possessableComponent->GetPossessionType() == ePossessionType::ATTACHED_VISIBLE; + + auto* havokVehiclePhysicsComponent = possassableEntity->GetComponent<HavokVehiclePhysicsComponent>(); + if (havokVehiclePhysicsComponent) { + havokVehiclePhysicsComponent->SetPosition(update.position); + havokVehiclePhysicsComponent->SetRotation(update.rotation); + havokVehiclePhysicsComponent->SetIsOnGround(update.onGround); + havokVehiclePhysicsComponent->SetIsOnRail(update.onRail); + havokVehiclePhysicsComponent->SetVelocity(update.velocity); + havokVehiclePhysicsComponent->SetDirtyVelocity(update.velocity != NiPoint3::ZERO); + havokVehiclePhysicsComponent->SetAngularVelocity(update.angularVelocity); + havokVehiclePhysicsComponent->SetDirtyAngularVelocity(update.angularVelocity != NiPoint3::ZERO); + havokVehiclePhysicsComponent->SetRemoteInputInfo(update.remoteInputInfo); + } else { + // Need to get the mount's controllable physics + auto* possessedControllablePhysicsComponent = possassableEntity->GetComponent<ControllablePhysicsComponent>(); + if (!possessedControllablePhysicsComponent) return; + possessedControllablePhysicsComponent->SetPosition(update.position); + possessedControllablePhysicsComponent->SetRotation(update.rotation); + possessedControllablePhysicsComponent->SetIsOnGround(update.onGround); + possessedControllablePhysicsComponent->SetIsOnRail(update.onRail); + possessedControllablePhysicsComponent->SetVelocity(update.velocity); + possessedControllablePhysicsComponent->SetDirtyVelocity(update.velocity != NiPoint3::ZERO); + possessedControllablePhysicsComponent->SetAngularVelocity(update.angularVelocity); + possessedControllablePhysicsComponent->SetDirtyAngularVelocity(update.angularVelocity != NiPoint3::ZERO); + } + Game::entityManager->SerializeEntity(possassableEntity); + } + } + + if (!updateChar) { + update.velocity = NiPoint3::ZERO; + update.angularVelocity = NiPoint3::ZERO; + } + + // Handle statistics + auto* characterComponent = GetComponent<CharacterComponent>(); + if (characterComponent) { + characterComponent->TrackPositionUpdate(update.position); + } + + controllablePhysicsComponent->SetPosition(update.position); + controllablePhysicsComponent->SetRotation(update.rotation); + controllablePhysicsComponent->SetIsOnGround(update.onGround); + controllablePhysicsComponent->SetIsOnRail(update.onRail); + controllablePhysicsComponent->SetVelocity(update.velocity); + controllablePhysicsComponent->SetDirtyVelocity(update.velocity != NiPoint3::ZERO); + controllablePhysicsComponent->SetAngularVelocity(update.angularVelocity); + controllablePhysicsComponent->SetDirtyAngularVelocity(update.angularVelocity != NiPoint3::ZERO); + + auto* player = static_cast<Player*>(this); + player->SetGhostReferencePoint(update.position); + Game::entityManager->QueueGhostUpdate(player->GetObjectID()); + + if (updateChar) Game::entityManager->SerializeEntity(this); +} diff --git a/dGame/Entity.h b/dGame/Entity.h index 83e8dc3f..02fc14d3 100644 --- a/dGame/Entity.h +++ b/dGame/Entity.h @@ -31,6 +31,7 @@ class Component; class Item; class Character; class EntityCallbackTimer; +class PositionUpdate; enum class eTriggerEventType; enum class eGameMasterLevel : uint8_t; enum class eReplicaComponentType : uint32_t; @@ -296,6 +297,8 @@ public: Entity* GetScheduledKiller() { return m_ScheduleKiller; } + void ProcessPositionUpdate(PositionUpdate& update); + protected: LWOOBJID m_ObjectID; diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 736339a4..2060de89 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -216,7 +216,52 @@ void UserManager::RequestCharacterList(const SystemAddress& sysAddr) { chars.push_back(character); } - WorldPackets::SendCharacterList(sysAddr, u); + RakNet::BitStream bitStream; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::CHARACTER_LIST_RESPONSE); + + std::vector<Character*> characters = u->GetCharacters(); + bitStream.Write<uint8_t>(characters.size()); + bitStream.Write<uint8_t>(0); //TODO: Pick the most recent played index. character index in front, just picking 0 + + for (uint32_t i = 0; i < characters.size(); ++i) { + bitStream.Write(characters[i]->GetObjectID()); + bitStream.Write<uint32_t>(0); + + bitStream.Write(LUWString(characters[i]->GetName())); + bitStream.Write(LUWString(characters[i]->GetUnapprovedName())); + + bitStream.Write<uint8_t>(characters[i]->GetNameRejected()); + bitStream.Write<uint8_t>(false); + + bitStream.Write(LUString("", 10)); + + bitStream.Write(characters[i]->GetShirtColor()); + bitStream.Write(characters[i]->GetShirtStyle()); + bitStream.Write(characters[i]->GetPantsColor()); + bitStream.Write(characters[i]->GetHairStyle()); + bitStream.Write(characters[i]->GetHairColor()); + bitStream.Write(characters[i]->GetLeftHand()); + bitStream.Write(characters[i]->GetRightHand()); + bitStream.Write(characters[i]->GetEyebrows()); + bitStream.Write(characters[i]->GetEyes()); + bitStream.Write(characters[i]->GetMouth()); + bitStream.Write<uint32_t>(0); + + bitStream.Write<uint16_t>(characters[i]->GetZoneID()); + bitStream.Write<uint16_t>(characters[i]->GetZoneInstance()); + bitStream.Write(characters[i]->GetZoneClone()); + + bitStream.Write(characters[i]->GetLastLogin()); + + const auto& equippedItems = characters[i]->GetEquippedItems(); + bitStream.Write<uint16_t>(equippedItems.size()); + + for (uint32_t j = 0; j < equippedItems.size(); ++j) { + bitStream.Write(equippedItems[j]); + } + } + + SEND_PACKET; } void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) { @@ -322,7 +367,7 @@ void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) WorldPackets::SendCharacterCreationResponse(sysAddr, eCharacterCreationResponse::SUCCESS); UserManager::RequestCharacterList(sysAddr); - }); + }); } void UserManager::DeleteCharacter(const SystemAddress& sysAddr, Packet* packet) { diff --git a/dGame/dComponents/HavokVehiclePhysicsComponent.h b/dGame/dComponents/HavokVehiclePhysicsComponent.h index 2d04e0ac..ba46f093 100644 --- a/dGame/dComponents/HavokVehiclePhysicsComponent.h +++ b/dGame/dComponents/HavokVehiclePhysicsComponent.h @@ -4,31 +4,7 @@ #include "Entity.h" #include "PhysicsComponent.h" #include "eReplicaComponentType.h" - -struct RemoteInputInfo { - RemoteInputInfo() { - m_RemoteInputX = 0; - m_RemoteInputY = 0; - m_IsPowersliding = false; - m_IsModified = false; - } - - void operator=(const RemoteInputInfo& other) { - m_RemoteInputX = other.m_RemoteInputX; - m_RemoteInputY = other.m_RemoteInputY; - m_IsPowersliding = other.m_IsPowersliding; - m_IsModified = other.m_IsModified; - } - - bool operator==(const RemoteInputInfo& other) { - return m_RemoteInputX == other.m_RemoteInputX && m_RemoteInputY == other.m_RemoteInputY && m_IsPowersliding == other.m_IsPowersliding && m_IsModified == other.m_IsModified; - } - - float m_RemoteInputX; - float m_RemoteInputY; - bool m_IsPowersliding; - bool m_IsModified; -}; +#include "PositionUpdate.h" /** * Physics component for vehicles. diff --git a/dNet/CMakeLists.txt b/dNet/CMakeLists.txt index b4b77c82..68de8eb1 100644 --- a/dNet/CMakeLists.txt +++ b/dNet/CMakeLists.txt @@ -8,10 +8,5 @@ set(DNET_SOURCES "AuthPackets.cpp" "ZoneInstanceManager.cpp") add_library(dNet STATIC ${DNET_SOURCES}) -target_include_directories(dNet PRIVATE - ${PROJECT_SOURCE_DIR}/dGame/dComponents - ${PROJECT_SOURCE_DIR}/dScripts # transitive through components -) -target_link_libraries(dNet - PUBLIC dCommon dDatabase - INTERFACE dZoneManager) + +target_link_libraries(dNet PUBLIC dCommon) diff --git a/dNet/ClientPackets.cpp b/dNet/ClientPackets.cpp index 47513a66..a6b9f8c6 100644 --- a/dNet/ClientPackets.cpp +++ b/dNet/ClientPackets.cpp @@ -4,422 +4,120 @@ */ #include "ClientPackets.h" -#include "UserManager.h" -#include "User.h" -#include "Character.h" -#include "EntityManager.h" -#include "Entity.h" -#include "ControllablePhysicsComponent.h" -#include "Game.h" -#include "Logger.h" -#include "WorldPackets.h" -#include "NiPoint3.h" -#include "NiQuaternion.h" #include "dCommonVars.h" -#include "BitStream.h" -#include "dChatFilter.h" -#include "WorldPackets.h" -#include "ChatPackets.h" -#include "dServer.h" -#include "GameMessages.h" -#include "dZoneManager.h" -#include "Player.h" -#include "Zone.h" -#include "PossessorComponent.h" -#include "PossessableComponent.h" -#include "HavokVehiclePhysicsComponent.h" -#include "dConfig.h" -#include "CharacterComponent.h" -#include "Database.h" -#include "eGameMasterLevel.h" -#include "eReplicaComponentType.h" -#include "CheatDetection.h" -#include "Amf3.h" - -void ClientPackets::HandleChatMessage(const SystemAddress& sysAddr, Packet* packet) { - User* user = UserManager::Instance()->GetUser(sysAddr); - if (!user) { - LOG("Unable to get user to parse chat message"); - return; - } - - if (user->GetIsMuted()) { - user->GetLastUsedChar()->SendMuteNotice(); - return; - } +#include "PositionUpdate.h" +ChatMessage ClientPackets::HandleChatMessage(Packet* packet) { CINSTREAM_SKIP_HEADER; - char chatChannel; - uint16_t unknown; + ChatMessage message; uint32_t messageLength; - std::u16string message; - inStream.Read(chatChannel); - inStream.Read(unknown); + inStream.Read(message.chatChannel); + inStream.Read(message.unknown); inStream.Read(messageLength); for (uint32_t i = 0; i < (messageLength - 1); ++i) { uint16_t character; inStream.Read(character); - message.push_back(character); + message.message.push_back(character); } - std::string playerName = user->GetLastUsedChar()->GetName(); - bool isMythran = user->GetLastUsedChar()->GetGMLevel() > eGameMasterLevel::CIVILIAN; - bool isOk = Game::chatFilter->IsSentenceOkay(GeneralUtils::UTF16ToWTF8(message), user->GetLastUsedChar()->GetGMLevel()).empty(); - LOG_DEBUG("Msg: %s was approved previously? %i", GeneralUtils::UTF16ToWTF8(message).c_str(), user->GetLastChatMessageApproved()); - if (!isOk) { - // Add a limit to the string converted by general utils because it is a user received string and may be a bad actor. - CheatDetection::ReportCheat( - user, - sysAddr, - "Player %s attempted to bypass chat filter with message: %s", - playerName.c_str(), - GeneralUtils::UTF16ToWTF8(message, 512).c_str()); - } - if (!isOk && !isMythran) return; - - std::string sMessage = GeneralUtils::UTF16ToWTF8(message); - LOG("%s: %s", playerName.c_str(), sMessage.c_str()); - ChatPackets::SendChatMessage(sysAddr, chatChannel, playerName, user->GetLoggedInChar(), isMythran, message); + return message; } -void ClientPackets::HandleClientPositionUpdate(const SystemAddress& sysAddr, Packet* packet) { - User* user = UserManager::Instance()->GetUser(sysAddr); - if (!user) { - LOG("Unable to get user to parse position update"); - return; - } - +PositionUpdate ClientPackets::HandleClientPositionUpdate(Packet* packet) { + PositionUpdate update; CINSTREAM_SKIP_HEADER; - Entity* entity = Game::entityManager->GetEntity(user->GetLastUsedChar()->GetObjectID()); - if (!entity) return; + inStream.Read(update.position.x); + inStream.Read(update.position.y); + inStream.Read(update.position.z); - ControllablePhysicsComponent* comp = static_cast<ControllablePhysicsComponent*>(entity->GetComponent(eReplicaComponentType::CONTROLLABLE_PHYSICS)); - if (!comp) return; + inStream.Read(update.rotation.x); + inStream.Read(update.rotation.y); + inStream.Read(update.rotation.z); + inStream.Read(update.rotation.w); - /* - //If we didn't move, this will match and stop our velocity - if (packet->length == 37) { - NiPoint3 zeroVel(0.0f, 0.0f, 0.0f); - comp->SetVelocity(zeroVel); - comp->SetAngularVelocity(zeroVel); - comp->SetIsOnGround(true); //probably8 - Game::entityManager->SerializeEntity(entity); - return; - } - */ - - auto* possessorComponent = entity->GetComponent<PossessorComponent>(); - - NiPoint3 position; - inStream.Read(position.x); - inStream.Read(position.y); - inStream.Read(position.z); - - NiQuaternion rotation; - inStream.Read(rotation.x); - inStream.Read(rotation.y); - inStream.Read(rotation.z); - inStream.Read(rotation.w); - - bool onGround = false; - bool onRail = false; - inStream.Read(onGround); - inStream.Read(onRail); + inStream.Read(update.onGround); + inStream.Read(update.onRail); bool velocityFlag = false; inStream.Read(velocityFlag); - NiPoint3 velocity{}; if (velocityFlag) { - inStream.Read(velocity.x); - inStream.Read(velocity.y); - inStream.Read(velocity.z); + inStream.Read(update.velocity.x); + inStream.Read(update.velocity.y); + inStream.Read(update.velocity.z); } bool angVelocityFlag = false; inStream.Read(angVelocityFlag); - NiPoint3 angVelocity{}; if (angVelocityFlag) { - inStream.Read(angVelocity.x); - inStream.Read(angVelocity.y); - inStream.Read(angVelocity.z); + inStream.Read(update.angularVelocity.x); + inStream.Read(update.angularVelocity.y); + inStream.Read(update.angularVelocity.z); } // TODO figure out how to use these. Ignoring for now, but reading in if they exist. bool hasLocalSpaceInfo{}; - LWOOBJID objectId{}; - NiPoint3 localSpacePosition{}; - bool hasLinearVelocity{}; - NiPoint3 linearVelocity{}; if (inStream.Read(hasLocalSpaceInfo) && hasLocalSpaceInfo) { - inStream.Read(objectId); - inStream.Read(localSpacePosition.x); - inStream.Read(localSpacePosition.y); - inStream.Read(localSpacePosition.z); + inStream.Read(update.localSpaceInfo.objectId); + inStream.Read(update.localSpaceInfo.position.x); + inStream.Read(update.localSpaceInfo.position.y); + inStream.Read(update.localSpaceInfo.position.z); + bool hasLinearVelocity = false; if (inStream.Read(hasLinearVelocity) && hasLinearVelocity) { - inStream.Read(linearVelocity.x); - inStream.Read(linearVelocity.y); - inStream.Read(linearVelocity.z); + inStream.Read(update.localSpaceInfo.linearVelocity.x); + inStream.Read(update.localSpaceInfo.linearVelocity.y); + inStream.Read(update.localSpaceInfo.linearVelocity.z); } } + bool hasRemoteInputInfo{}; - RemoteInputInfo remoteInput{}; - if (inStream.Read(hasRemoteInputInfo) && hasRemoteInputInfo) { - inStream.Read(remoteInput.m_RemoteInputX); - inStream.Read(remoteInput.m_RemoteInputY); - inStream.Read(remoteInput.m_IsPowersliding); - inStream.Read(remoteInput.m_IsModified); + inStream.Read(update.remoteInputInfo.m_RemoteInputX); + inStream.Read(update.remoteInputInfo.m_RemoteInputY); + inStream.Read(update.remoteInputInfo.m_IsPowersliding); + inStream.Read(update.remoteInputInfo.m_IsModified); } - bool updateChar = true; - - if (possessorComponent != nullptr) { - auto* possassableEntity = Game::entityManager->GetEntity(possessorComponent->GetPossessable()); - - if (possassableEntity != nullptr) { - auto* possessableComponent = possassableEntity->GetComponent<PossessableComponent>(); - if (possessableComponent) { - // While possessing something, only update char if we are attached to the thing we are possessing - if (possessableComponent->GetPossessionType() != ePossessionType::ATTACHED_VISIBLE) updateChar = false; - } - - auto* havokVehiclePhysicsComponent = possassableEntity->GetComponent<HavokVehiclePhysicsComponent>(); - if (havokVehiclePhysicsComponent != nullptr) { - havokVehiclePhysicsComponent->SetPosition(position); - havokVehiclePhysicsComponent->SetRotation(rotation); - havokVehiclePhysicsComponent->SetIsOnGround(onGround); - havokVehiclePhysicsComponent->SetIsOnRail(onRail); - havokVehiclePhysicsComponent->SetVelocity(velocity); - havokVehiclePhysicsComponent->SetDirtyVelocity(velocityFlag); - havokVehiclePhysicsComponent->SetAngularVelocity(angVelocity); - havokVehiclePhysicsComponent->SetDirtyAngularVelocity(angVelocityFlag); - havokVehiclePhysicsComponent->SetRemoteInputInfo(remoteInput); - } else { - // Need to get the mount's controllable physics - auto* controllablePhysicsComponent = possassableEntity->GetComponent<ControllablePhysicsComponent>(); - if (!controllablePhysicsComponent) return; - controllablePhysicsComponent->SetPosition(position); - controllablePhysicsComponent->SetRotation(rotation); - controllablePhysicsComponent->SetIsOnGround(onGround); - controllablePhysicsComponent->SetIsOnRail(onRail); - controllablePhysicsComponent->SetVelocity(velocity); - controllablePhysicsComponent->SetDirtyVelocity(velocityFlag); - controllablePhysicsComponent->SetAngularVelocity(angVelocity); - controllablePhysicsComponent->SetDirtyAngularVelocity(angVelocityFlag); - } - Game::entityManager->SerializeEntity(possassableEntity); - } - } - - if (!updateChar) { - velocity = NiPoint3::ZERO; - angVelocity = NiPoint3::ZERO; - } - - - - // Handle statistics - auto* characterComponent = entity->GetComponent<CharacterComponent>(); - if (characterComponent != nullptr) { - characterComponent->TrackPositionUpdate(position); - } - - comp->SetPosition(position); - comp->SetRotation(rotation); - comp->SetIsOnGround(onGround); - comp->SetIsOnRail(onRail); - comp->SetVelocity(velocity); - comp->SetDirtyVelocity(velocityFlag); - comp->SetAngularVelocity(angVelocity); - comp->SetDirtyAngularVelocity(angVelocityFlag); - - auto* player = static_cast<Player*>(entity); - player->SetGhostReferencePoint(position); - Game::entityManager->QueueGhostUpdate(player->GetObjectID()); - - if (updateChar) Game::entityManager->SerializeEntity(entity); - - //TODO: add moving platform stuffs - /*bool movingPlatformFlag; - inStream.Read(movingPlatformFlag); - if (movingPlatformFlag) { - LWOOBJID objectID; - NiPoint3 niData2; - - inStream.Read(objectID); - inStream.Read(niData2.x); - inStream.Read(niData2.y); - inStream.Read(niData2.z); - - - - bool niData3Flag; - inStream.Read(niData3Flag); - if (niData3Flag) { - NiPoint3 niData3; - inStream.Read(niData3.x); - inStream.Read(niData3.y); - inStream.Read(niData3.z); - - controllablePhysics->GetLocationData()->GetMovingPlatformData()->SetData3(niData3); - } - }*/ - - /* - for (int i = 0; i < Game::server->GetReplicaManager()->GetParticipantCount(); ++i) - { - const auto& player = Game::server->GetReplicaManager()->GetParticipantAtIndex(i); - - if (entity->GetSystemAddress() == player) - { - continue; - } - - Game::entityManager->SerializeEntity(entity, player); - } - */ + return update; } -void ClientPackets::HandleChatModerationRequest(const SystemAddress& sysAddr, Packet* packet) { - User* user = UserManager::Instance()->GetUser(sysAddr); - if (!user) { - LOG("Unable to get user to parse chat moderation request"); - return; - } +ChatModerationRequest ClientPackets::HandleChatModerationRequest(Packet* packet) { + CINSTREAM_SKIP_HEADER; + + ChatModerationRequest request; - auto* entity = Player::GetPlayer(sysAddr); - - if (entity == nullptr) { - LOG("Unable to get player to parse chat moderation request"); - return; - } - - // Check if the player has restricted chat access - auto* character = entity->GetCharacter(); - - if (character->HasPermission(ePermissionMap::RestrictedChatAccess)) { - // Send a message to the player - ChatPackets::SendSystemMessage( - sysAddr, - u"This character has restricted chat access." - ); - - return; - } - - RakNet::BitStream stream(packet->data, packet->length, false); - - uint64_t header; - stream.Read(header); - - // Data - uint8_t chatLevel; - uint8_t requestID; - uint16_t messageLength; - - std::string receiver = ""; - std::string message = ""; - - stream.Read(chatLevel); - stream.Read(requestID); + inStream.Read(request.chatLevel); + inStream.Read(request.requestID); for (uint32_t i = 0; i < 42; ++i) { uint16_t character; - stream.Read(character); - receiver.push_back(static_cast<uint8_t>(character)); + inStream.Read(character); + request.receiver.push_back(static_cast<uint8_t>(character)); } - if (!receiver.empty()) { - if (std::string(receiver.c_str(), 4) == "[GM]") { // Shift the string forward if we are speaking to a GM as the client appends "[GM]" if they are - receiver = std::string(receiver.c_str() + 4, receiver.size() - 4); + if (!request.receiver.empty()) { + if (std::string(request.receiver.c_str(), 4) == "[GM]") { // Shift the string forward if we are speaking to a GM as the client appends "[GM]" if they are + request.receiver = std::string(request.receiver.c_str() + 4, request.receiver.size() - 4); } } - stream.Read(messageLength); + uint16_t messageLength; + inStream.Read(messageLength); for (uint32_t i = 0; i < messageLength; ++i) { uint16_t character; - stream.Read(character); - message.push_back(static_cast<uint8_t>(character)); + inStream.Read(character); + request.message.push_back(static_cast<uint8_t>(character)); } - bool isBestFriend = false; - - if (chatLevel == 1) { - // Private chat - LWOOBJID idOfReceiver = LWOOBJID_EMPTY; - - { - auto characterIdFetch = Database::Get()->GetCharacterInfo(receiver); - - if (characterIdFetch) { - idOfReceiver = characterIdFetch->id; - } - } - const auto& bffMap = user->GetIsBestFriendMap(); - if (bffMap.find(receiver) == bffMap.end() && idOfReceiver != LWOOBJID_EMPTY) { - auto bffInfo = Database::Get()->GetBestFriendStatus(entity->GetObjectID(), idOfReceiver); - - if (bffInfo) { - isBestFriend = bffInfo->bestFriendStatus == 3; - } - - if (isBestFriend) { - user->UpdateBestFriendValue(receiver, true); - } - } else if (bffMap.find(receiver) != bffMap.end()) { - isBestFriend = true; - } - } - - std::vector<std::pair<uint8_t, uint8_t>> segments = Game::chatFilter->IsSentenceOkay(message, entity->GetGMLevel(), !(isBestFriend && chatLevel == 1)); - - bool bAllClean = segments.empty(); - - if (user->GetIsMuted()) { - bAllClean = false; - } - - user->SetLastChatMessageApproved(bAllClean); - WorldPackets::SendChatModerationResponse(sysAddr, bAllClean, requestID, receiver, segments); + return request; } -void ClientPackets::SendTop5HelpIssues(Packet* packet) { - auto* user = UserManager::Instance()->GetUser(packet->systemAddress); - if (!user) return; - auto* character = user->GetLastUsedChar(); - if (!character) return; - auto * entity = character->GetEntity(); - if (!entity) return; - +int32_t ClientPackets::SendTop5HelpIssues(Packet* packet) { CINSTREAM_SKIP_HEADER; int32_t language = 0; inStream.Read(language); - - // TODO: Handle different languages in a nice way - // 0: en_US - // 1: pl_US - // 2: de_DE - // 3: en_GB - - AMFArrayValue data; - // Summaries - data.Insert("Summary0", Game::config->GetValue("help_0_summary")); - data.Insert("Summary1", Game::config->GetValue("help_1_summary")); - data.Insert("Summary2", Game::config->GetValue("help_2_summary")); - data.Insert("Summary3", Game::config->GetValue("help_3_summary")); - data.Insert("Summary4", Game::config->GetValue("help_4_summary")); - - // Descriptions - data.Insert("Description0", Game::config->GetValue("help_0_description")); - data.Insert("Description1", Game::config->GetValue("help_1_description")); - data.Insert("Description2", Game::config->GetValue("help_2_description")); - data.Insert("Description3", Game::config->GetValue("help_3_description")); - data.Insert("Description4", Game::config->GetValue("help_4_description")); - - GameMessages::SendUIMessageServerToSingleClient(entity, packet->systemAddress, "UIHelpTop5", data); - + return language; } diff --git a/dNet/ClientPackets.h b/dNet/ClientPackets.h index 5b9fd76d..a7d2941b 100644 --- a/dNet/ClientPackets.h +++ b/dNet/ClientPackets.h @@ -6,13 +6,31 @@ #ifndef CLIENTPACKETS_H #define CLIENTPACKETS_H -#include "RakNetTypes.h" +#include <cstdint> +#include <string> + +class PositionUpdate; + +struct Packet; + +struct ChatMessage { + uint8_t chatChannel = 0; + uint16_t unknown = 0; + std::u16string message; +}; + +struct ChatModerationRequest { + uint8_t chatLevel = 0; + uint8_t requestID = 0; + std::string receiver; + std::string message; +}; namespace ClientPackets { - void HandleChatMessage(const SystemAddress& sysAddr, Packet* packet); - void HandleClientPositionUpdate(const SystemAddress& sysAddr, Packet* packet); - void HandleChatModerationRequest(const SystemAddress& sysAddr, Packet* packet); - void SendTop5HelpIssues(Packet* packet); + ChatMessage HandleChatMessage(Packet* packet); + PositionUpdate HandleClientPositionUpdate(Packet* packet); + ChatModerationRequest HandleChatModerationRequest(Packet* packet); + int32_t SendTop5HelpIssues(Packet* packet); }; #endif // CLIENTPACKETS_H diff --git a/dNet/WorldPackets.cpp b/dNet/WorldPackets.cpp index 1ee98c83..6ea0b350 100644 --- a/dNet/WorldPackets.cpp +++ b/dNet/WorldPackets.cpp @@ -1,26 +1,22 @@ -#include "dCommonVars.h" #include "WorldPackets.h" +#include "dCommonVars.h" #include "BitStream.h" #include "PacketUtils.h" #include "GeneralUtils.h" -#include "User.h" -#include "Character.h" #include "Logger.h" -#include <iostream> #include "Game.h" #include "LDFFormat.h" #include "dServer.h" -#include "dZoneManager.h" -#include "CharacterComponent.h" #include "ZCompression.h" #include "eConnectionType.h" #include "BitStreamUtils.h" -void WorldPackets::SendLoadStaticZone(const SystemAddress& sysAddr, float x, float y, float z, uint32_t checksum) { +#include <iostream> + +void WorldPackets::SendLoadStaticZone(const SystemAddress& sysAddr, float x, float y, float z, uint32_t checksum, LWOZONEID zone) { RakNet::BitStream bitStream; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::LOAD_STATIC_ZONE); - auto zone = Game::zoneManager->GetZone()->GetZoneID(); bitStream.Write<uint16_t>(zone.GetMapID()); bitStream.Write<uint16_t>(zone.GetInstanceID()); //bitStream.Write<uint32_t>(zone.GetCloneID()); @@ -38,57 +34,6 @@ void WorldPackets::SendLoadStaticZone(const SystemAddress& sysAddr, float x, flo SEND_PACKET; } -void WorldPackets::SendCharacterList(const SystemAddress& sysAddr, User* user) { - if (!user) return; - - RakNet::BitStream bitStream; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::CHARACTER_LIST_RESPONSE); - - std::vector<Character*> characters = user->GetCharacters(); - bitStream.Write<uint8_t>(characters.size()); - bitStream.Write<uint8_t>(0); //character index in front, just picking 0 - - for (uint32_t i = 0; i < characters.size(); ++i) { - bitStream.Write(characters[i]->GetObjectID()); - bitStream.Write<uint32_t>(0); - - bitStream.Write(LUWString(characters[i]->GetName())); - bitStream.Write(LUWString(characters[i]->GetUnapprovedName())); - - bitStream.Write<uint8_t>(characters[i]->GetNameRejected()); - bitStream.Write<uint8_t>(false); - - bitStream.Write(LUString("", 10)); - - bitStream.Write(characters[i]->GetShirtColor()); - bitStream.Write(characters[i]->GetShirtStyle()); - bitStream.Write(characters[i]->GetPantsColor()); - bitStream.Write(characters[i]->GetHairStyle()); - bitStream.Write(characters[i]->GetHairColor()); - bitStream.Write(characters[i]->GetLeftHand()); - bitStream.Write(characters[i]->GetRightHand()); - bitStream.Write(characters[i]->GetEyebrows()); - bitStream.Write(characters[i]->GetEyes()); - bitStream.Write(characters[i]->GetMouth()); - bitStream.Write<uint32_t>(0); - - bitStream.Write<uint16_t>(characters[i]->GetZoneID()); - bitStream.Write<uint16_t>(characters[i]->GetZoneInstance()); - bitStream.Write(characters[i]->GetZoneClone()); - - bitStream.Write(characters[i]->GetLastLogin()); - - const auto& equippedItems = characters[i]->GetEquippedItems(); - bitStream.Write<uint16_t>(equippedItems.size()); - - for (uint32_t j = 0; j < equippedItems.size(); ++j) { - bitStream.Write(equippedItems[j]); - } - } - - SEND_PACKET; -} - void WorldPackets::SendCharacterCreationResponse(const SystemAddress& sysAddr, eCharacterCreationResponse response) { RakNet::BitStream bitStream; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::CHARACTER_CREATE_RESPONSE); @@ -128,26 +73,20 @@ void WorldPackets::SendServerState(const SystemAddress& sysAddr) { SEND_PACKET; } -void WorldPackets::SendCreateCharacter(const SystemAddress& sysAddr, Entity* entity, const std::string& xmlData, const std::u16string& username, eGameMasterLevel gm) { +void WorldPackets::SendCreateCharacter(const SystemAddress& sysAddr, int64_t reputation, LWOOBJID player, const std::string& xmlData, const std::u16string& username, eGameMasterLevel gm) { RakNet::BitStream bitStream; BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::CREATE_CHARACTER); RakNet::BitStream data; data.Write<uint32_t>(7); //LDF key count - auto character = entity->GetComponent<CharacterComponent>(); - if (!character) { - LOG("Entity is not a character?? what??"); - return; - } - - LDFData<LWOOBJID>* objid = new LDFData<LWOOBJID>(u"objid", entity->GetObjectID()); - LDFData<LOT>* lot = new LDFData<LOT>(u"template", 1); - LDFData<std::string>* xmlConfigData = new LDFData<std::string>(u"xmlData", xmlData); - LDFData<std::u16string>* name = new LDFData<std::u16string>(u"name", username); - LDFData<int32_t>* gmlevel = new LDFData<int32_t>(u"gmlevel", static_cast<int32_t>(gm)); - LDFData<int32_t>* chatmode = new LDFData<int32_t>(u"chatmode", static_cast<int32_t>(gm)); - LDFData<int64_t>* reputation = new LDFData<int64_t>(u"reputation", character->GetReputation()); + std::unique_ptr<LDFData<LWOOBJID>> objid(new LDFData<LWOOBJID>(u"objid", player)); + std::unique_ptr<LDFData<LOT>> lot(new LDFData<LOT>(u"template", 1)); + std::unique_ptr<LDFData<std::string>> xmlConfigData(new LDFData<std::string>(u"xmlData", xmlData)); + std::unique_ptr<LDFData<std::u16string>> name(new LDFData<std::u16string>(u"name", username)); + std::unique_ptr<LDFData<int32_t>> gmlevel(new LDFData<int32_t>(u"gmlevel", static_cast<int32_t>(gm))); + std::unique_ptr<LDFData<int32_t>> chatmode(new LDFData<int32_t>(u"chatmode", static_cast<int32_t>(gm))); + std::unique_ptr<LDFData<int64_t>> reputationLdf(new LDFData<int64_t>(u"reputation", reputation)); objid->WriteToPacket(&data); lot->WriteToPacket(&data); @@ -155,15 +94,7 @@ void WorldPackets::SendCreateCharacter(const SystemAddress& sysAddr, Entity* ent gmlevel->WriteToPacket(&data); chatmode->WriteToPacket(&data); xmlConfigData->WriteToPacket(&data); - reputation->WriteToPacket(&data); - - delete objid; - delete lot; - delete xmlConfigData; - delete gmlevel; - delete chatmode; - delete name; - delete reputation; + reputationLdf->WriteToPacket(&data); //Compress the data before sending: const uint32_t reservedSize = ZCompression::GetMaxCompressedLength(data.GetNumberOfBytesUsed()); @@ -187,14 +118,12 @@ void WorldPackets::SendCreateCharacter(const SystemAddress& sysAddr, Entity* ent * an assertion is done to prevent bad data from being saved or sent. */ #pragma warning(disable:6385) // C6385 Reading invalid data from 'compressedData'. - for (size_t i = 0; i < size; i++) - bitStream.Write(compressedData[i]); + bitStream.WriteAlignedBytes(compressedData, size); #pragma warning(default:6385) - // PacketUtils::SavePacket("chardata.bin", (const char*)bitStream.GetData(), static_cast<uint32_t>(bitStream.GetNumberOfBytesUsed())); SEND_PACKET; delete[] compressedData; - LOG("Sent CreateCharacter for ID: %llu", entity->GetObjectID()); + LOG("Sent CreateCharacter for ID: %llu", player); } void WorldPackets::SendChatModerationResponse(const SystemAddress& sysAddr, bool requestAccepted, uint32_t requestID, const std::string& receiver, std::vector<std::pair<uint8_t, uint8_t>> unacceptedItems) { diff --git a/dNet/WorldPackets.h b/dNet/WorldPackets.h index ea8186c7..0d5de079 100644 --- a/dNet/WorldPackets.h +++ b/dNet/WorldPackets.h @@ -2,9 +2,8 @@ #define WORLDPACKETS_H #include "dCommonVars.h" +#include <vector> #include <string> -#include <unordered_map> -#include "Entity.h" class User; struct SystemAddress; @@ -13,14 +12,13 @@ enum class eCharacterCreationResponse : uint8_t; enum class eRenameResponse : uint8_t; namespace WorldPackets { - void SendLoadStaticZone(const SystemAddress& sysAddr, float x, float y, float z, uint32_t checksum); - void SendCharacterList(const SystemAddress& sysAddr, User* user); + void SendLoadStaticZone(const SystemAddress& sysAddr, float x, float y, float z, uint32_t checksum, LWOZONEID zone); void SendCharacterCreationResponse(const SystemAddress& sysAddr, eCharacterCreationResponse response); void SendCharacterRenameResponse(const SystemAddress& sysAddr, eRenameResponse response); void SendCharacterDeleteResponse(const SystemAddress& sysAddr, bool response); void SendTransferToWorld(const SystemAddress& sysAddr, const std::string& serverIP, uint32_t serverPort, bool mythranShift); void SendServerState(const SystemAddress& sysAddr); - void SendCreateCharacter(const SystemAddress& sysAddr, Entity* entity, const std::string& xmlData, const std::u16string& username, eGameMasterLevel gm); + void SendCreateCharacter(const SystemAddress& sysAddr, int64_t reputation, LWOOBJID player, const std::string& xmlData, const std::u16string& username, eGameMasterLevel gm); void SendChatModerationResponse(const SystemAddress& sysAddr, bool requestAccepted, uint32_t requestID, const std::string& receiver, std::vector<std::pair<uint8_t, uint8_t>> unacceptedItems); void SendGMLevelChange(const SystemAddress& sysAddr, bool success, eGameMasterLevel highestLevel, eGameMasterLevel prevLevel, eGameMasterLevel newLevel); } diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index d65596b6..e6a0973f 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -78,6 +78,7 @@ #include "eGameMasterLevel.h" #include "StringifiedEnum.h" #include "Server.h" +#include "PositionUpdate.h" namespace Game { Logger* logger = nullptr; @@ -713,7 +714,7 @@ void HandleMasterPacket(Packet* packet) { z = pos.z; } - WorldPackets::SendLoadStaticZone(it->second.sysAddr, x, y, z, zone->GetChecksum()); + WorldPackets::SendLoadStaticZone(it->second.sysAddr, x, y, z, zone->GetChecksum(), Game::zoneManager->GetZoneID()); } if (Game::server->GetZoneID() == 0) { @@ -1005,7 +1006,10 @@ void HandlePacket(Packet* packet) { info.lot = 1; Entity* player = Game::entityManager->CreateEntity(info, UserManager::Instance()->GetUser(packet->systemAddress)); - WorldPackets::SendCreateCharacter(packet->systemAddress, player, c->GetXMLData(), username, c->GetGMLevel()); + auto* characterComponent = player->GetComponent<CharacterComponent>(); + if (!characterComponent) return; + + WorldPackets::SendCreateCharacter(packet->systemAddress, player->GetComponent<CharacterComponent>()->GetReputation(), player->GetObjectID(), c->GetXMLData(), username, c->GetGMLevel()); WorldPackets::SendServerState(packet->systemAddress); const auto respawnPoint = player->GetCharacter()->GetRespawnPoint(Game::zoneManager->GetZone()->GetWorldID()); @@ -1018,8 +1022,6 @@ void HandlePacket(Packet* packet) { Game::entityManager->ConstructAllEntities(packet->systemAddress); - auto* characterComponent = player->GetComponent<CharacterComponent>(); - if (!characterComponent) return; characterComponent->RocketUnEquip(player); // Do charxml fixes here @@ -1142,7 +1144,16 @@ void HandlePacket(Packet* packet) { } case eWorldMessageType::POSITION_UPDATE: { - ClientPackets::HandleClientPositionUpdate(packet->systemAddress, packet); + auto positionUpdate = ClientPackets::HandleClientPositionUpdate(packet); + + User* user = UserManager::Instance()->GetUser(packet->systemAddress); + if (!user) { + LOG("Unable to get user to parse position update"); + return; + } + + Entity* entity = Game::entityManager->GetEntity(user->GetLastUsedChar()->GetObjectID()); + if (entity) entity->ProcessPositionUpdate(positionUpdate); break; } @@ -1190,7 +1201,74 @@ void HandlePacket(Packet* packet) { } case eWorldMessageType::STRING_CHECK: { - ClientPackets::HandleChatModerationRequest(packet->systemAddress, packet); + auto request = ClientPackets::HandleChatModerationRequest(packet); + + // TODO: Find a good home for the logic in this case. + User* user = UserManager::Instance()->GetUser(packet->systemAddress); + if (!user) { + LOG("Unable to get user to parse chat moderation request"); + return; + } + + auto* entity = Player::GetPlayer(packet->systemAddress); + + if (entity == nullptr) { + LOG("Unable to get player to parse chat moderation request"); + return; + } + + // Check if the player has restricted chat access + auto* character = entity->GetCharacter(); + + if (character->HasPermission(ePermissionMap::RestrictedChatAccess)) { + // Send a message to the player + ChatPackets::SendSystemMessage( + packet->systemAddress, + u"This character has restricted chat access." + ); + + return; + } + + bool isBestFriend = false; + + if (request.chatLevel == 1) { + // Private chat + LWOOBJID idOfReceiver = LWOOBJID_EMPTY; + + { + auto characterIdFetch = Database::Get()->GetCharacterInfo(request.receiver); + + if (characterIdFetch) { + idOfReceiver = characterIdFetch->id; + } + } + const auto& bffMap = user->GetIsBestFriendMap(); + if (bffMap.find(request.receiver) == bffMap.end() && idOfReceiver != LWOOBJID_EMPTY) { + auto bffInfo = Database::Get()->GetBestFriendStatus(entity->GetObjectID(), idOfReceiver); + + if (bffInfo) { + isBestFriend = bffInfo->bestFriendStatus == 3; + } + + if (isBestFriend) { + user->UpdateBestFriendValue(request.receiver, true); + } + } else if (bffMap.find(request.receiver) != bffMap.end()) { + isBestFriend = true; + } + } + + std::vector<std::pair<uint8_t, uint8_t>> segments = Game::chatFilter->IsSentenceOkay(request.message, entity->GetGMLevel(), !(isBestFriend && request.chatLevel == 1)); + + bool bAllClean = segments.empty(); + + if (user->GetIsMuted()) { + bAllClean = false; + } + + user->SetLastChatMessageApproved(bAllClean); + WorldPackets::SendChatModerationResponse(packet->systemAddress, bAllClean, request.requestID, request.receiver, segments); break; } @@ -1198,7 +1276,29 @@ void HandlePacket(Packet* packet) { if (chatDisabled) { ChatPackets::SendMessageFail(packet->systemAddress); } else { - ClientPackets::HandleChatMessage(packet->systemAddress, packet); + auto chatMessage = ClientPackets::HandleChatMessage(packet); + + // TODO: Find a good home for the logic in this case. + User* user = UserManager::Instance()->GetUser(packet->systemAddress); + if (!user) { + LOG("Unable to get user to parse chat message"); + return; + } + + if (user->GetIsMuted()) { + user->GetLastUsedChar()->SendMuteNotice(); + return; + } + std::string playerName = user->GetLastUsedChar()->GetName(); + bool isMythran = user->GetLastUsedChar()->GetGMLevel() > eGameMasterLevel::CIVILIAN; + bool isOk = Game::chatFilter->IsSentenceOkay(GeneralUtils::UTF16ToWTF8(chatMessage.message), user->GetLastUsedChar()->GetGMLevel()).empty(); + LOG_DEBUG("Msg: %s was approved previously? %i", GeneralUtils::UTF16ToWTF8(chatMessage.message).c_str(), user->GetLastChatMessageApproved()); + if (!isOk) return; + if (!isOk && !isMythran) return; + + std::string sMessage = GeneralUtils::UTF16ToWTF8(chatMessage.message); + LOG("%s: %s", playerName.c_str(), sMessage.c_str()); + ChatPackets::SendChatMessage(packet->systemAddress, chatMessage.chatChannel, playerName, user->GetLoggedInChar(), isMythran, chatMessage.message); } break; @@ -1224,7 +1324,37 @@ void HandlePacket(Packet* packet) { case eWorldMessageType::UI_HELP_TOP_5: { - ClientPackets::SendTop5HelpIssues(packet); + auto language = ClientPackets::SendTop5HelpIssues(packet); + // TODO: Handle different languages in a nice way + // 0: en_US + // 1: pl_US + // 2: de_DE + // 3: en_GB + + // TODO: Find a good home for the logic in this case. + auto* user = UserManager::Instance()->GetUser(packet->systemAddress); + if (!user) return; + auto* character = user->GetLastUsedChar(); + if (!character) return; + auto* entity = character->GetEntity(); + if (!entity) return; + + AMFArrayValue data; + // Summaries + data.Insert("Summary0", Game::config->GetValue("help_0_summary")); + data.Insert("Summary1", Game::config->GetValue("help_1_summary")); + data.Insert("Summary2", Game::config->GetValue("help_2_summary")); + data.Insert("Summary3", Game::config->GetValue("help_3_summary")); + data.Insert("Summary4", Game::config->GetValue("help_4_summary")); + + // Descriptions + data.Insert("Description0", Game::config->GetValue("help_0_description")); + data.Insert("Description1", Game::config->GetValue("help_1_description")); + data.Insert("Description2", Game::config->GetValue("help_2_description")); + data.Insert("Description3", Game::config->GetValue("help_3_description")); + data.Insert("Description4", Game::config->GetValue("help_4_description")); + + GameMessages::SendUIMessageServerToSingleClient(entity, packet->systemAddress, "UIHelpTop5", data); break; } From dbe4a0ced3132eda6472d8086d5c894577e8f452 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell <aronwk.aaron@gmail.com> Date: Sun, 7 Jan 2024 02:02:27 -0600 Subject: [PATCH 093/106] chore: continue work on removing raw packet reading (#1404) * chore: continue work on removing raw packet reading tested that logging in, deleted a char, renaming a char, and transfeering to a zone all work still * Address Feedback --- dChatServer/ChatIgnoreList.cpp | 1 - dGame/Entity.cpp | 1 - dGame/EntityManager.cpp | 5 -- dGame/UserManager.cpp | 61 ++++++++++++------- dGame/dComponents/QuickBuildComponent.cpp | 1 - dGame/dComponents/RenderComponent.cpp | 1 - dGame/dGameMessages/GameMessages.cpp | 4 -- dGame/dUtilities/Mail.cpp | 2 - dMasterServer/MasterServer.cpp | 40 ++++++------- dNet/AuthPackets.cpp | 4 +- dNet/ChatPackets.cpp | 1 - dNet/MasterPackets.cpp | 9 ++- dNet/WorldPackets.cpp | 1 - dNet/ZoneInstanceManager.cpp | 29 +++++---- dNet/ZoneInstanceManager.h | 4 +- dNet/dServer.cpp | 4 +- dWorldServer/WorldServer.cpp | 73 +++++++++++------------ 17 files changed, 118 insertions(+), 123 deletions(-) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index 3b5103f0..f6e91ba0 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -2,7 +2,6 @@ #include "PlayerContainer.h" #include "eChatInternalMessageType.h" #include "BitStreamUtils.h" -#include "PacketUtils.h" #include "Game.h" #include "Logger.h" #include "eObjectBits.h" diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 8300de41..c693358d 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -3,7 +3,6 @@ #include "CDClientManager.h" #include "Game.h" #include "Logger.h" -#include "PacketUtils.h" #include <functional> #include "CDDestructibleComponentTable.h" #include "CDClientDatabase.h" diff --git a/dGame/EntityManager.cpp b/dGame/EntityManager.cpp index a098dbcf..7361574b 100644 --- a/dGame/EntityManager.cpp +++ b/dGame/EntityManager.cpp @@ -11,7 +11,6 @@ #include "SkillComponent.h" #include "SwitchComponent.h" #include "UserManager.h" -#include "PacketUtils.h" #include "Metrics.hpp" #include "dZoneManager.h" #include "MissionComponent.h" @@ -389,8 +388,6 @@ void EntityManager::ConstructEntity(Entity* entity, const SystemAddress& sysAddr Game::server->Send(&stream, sysAddr, false); } - // PacketUtils::SavePacket("[24]_"+std::to_string(entity->GetObjectID()) + "_" + std::to_string(m_SerializationCounter) + ".bin", (char*)stream.GetData(), stream.GetNumberOfBytesUsed()); - if (entity->IsPlayer()) { if (entity->GetGMLevel() > eGameMasterLevel::CIVILIAN) { GameMessages::SendToggleGMInvis(entity->GetObjectID(), true, sysAddr); @@ -434,8 +431,6 @@ void EntityManager::SerializeEntity(Entity* entity) { if (std::find(m_EntitiesToSerialize.begin(), m_EntitiesToSerialize.end(), entity->GetObjectID()) == m_EntitiesToSerialize.end()) { m_EntitiesToSerialize.push_back(entity->GetObjectID()); } - - //PacketUtils::SavePacket(std::to_string(m_SerializationCounter) + "_[27]_"+std::to_string(entity->GetObjectID()) + ".bin", (char*)stream.GetData(), stream.GetNumberOfBytesUsed()); } void EntityManager::DestructAllEntities(const SystemAddress& sysAddr) { diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 2060de89..958369fc 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -11,7 +11,6 @@ #include "WorldPackets.h" #include "Character.h" #include "BitStream.h" -#include "PacketUtils.h" #include "ObjectIDManager.h" #include "Logger.h" #include "GeneralUtils.h" @@ -267,25 +266,41 @@ void UserManager::RequestCharacterList(const SystemAddress& sysAddr) { void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) { User* u = GetUser(sysAddr); if (!u) return; + + LUWString LUWStringName(33); + uint32_t firstNameIndex; + uint32_t middleNameIndex; + uint32_t lastNameIndex; + uint32_t shirtColor; + uint32_t shirtStyle; + uint32_t pantsColor; + uint32_t hairStyle; + uint32_t hairColor; + uint32_t lh; + uint32_t rh; + uint32_t eyebrows; + uint32_t eyes; + uint32_t mouth; - std::string name = PacketUtils::ReadString(8, packet, true); + CINSTREAM_SKIP_HEADER; + inStream.Read(LUWStringName); + inStream.Read(firstNameIndex); + inStream.Read(middleNameIndex); + inStream.Read(lastNameIndex); + inStream.IgnoreBytes(9); + inStream.Read(shirtColor); + inStream.Read(shirtStyle); + inStream.Read(pantsColor); + inStream.Read(hairStyle); + inStream.Read(hairColor); + inStream.Read(lh); + inStream.Read(rh); + inStream.Read(eyebrows); + inStream.Read(eyes); + inStream.Read(mouth); - uint32_t firstNameIndex = PacketUtils::ReadU32(74, packet); - uint32_t middleNameIndex = PacketUtils::ReadU32(78, packet); - uint32_t lastNameIndex = PacketUtils::ReadU32(82, packet); + const auto name = LUWStringName.GetAsString(); std::string predefinedName = GetPredefinedName(firstNameIndex, middleNameIndex, lastNameIndex); - - uint32_t shirtColor = PacketUtils::ReadU32(95, packet); - uint32_t shirtStyle = PacketUtils::ReadU32(99, packet); - uint32_t pantsColor = PacketUtils::ReadU32(103, packet); - uint32_t hairStyle = PacketUtils::ReadU32(107, packet); - uint32_t hairColor = PacketUtils::ReadU32(111, packet); - uint32_t lh = PacketUtils::ReadU32(115, packet); - uint32_t rh = PacketUtils::ReadU32(119, packet); - uint32_t eyebrows = PacketUtils::ReadU32(123, packet); - uint32_t eyes = PacketUtils::ReadU32(127, packet); - uint32_t mouth = PacketUtils::ReadU32(131, packet); - LOT shirtLOT = FindCharShirtID(shirtColor, shirtStyle); LOT pantsLOT = FindCharPantsID(pantsColor); @@ -377,7 +392,9 @@ void UserManager::DeleteCharacter(const SystemAddress& sysAddr, Packet* packet) return; } - LWOOBJID objectID = PacketUtils::ReadS64(8, packet); + CINSTREAM_SKIP_HEADER; + LWOOBJID objectID; + inStream.Read(objectID); uint32_t charID = static_cast<uint32_t>(objectID); LOG("Received char delete req for ID: %llu (%u)", objectID, charID); @@ -411,14 +428,18 @@ void UserManager::RenameCharacter(const SystemAddress& sysAddr, Packet* packet) return; } - LWOOBJID objectID = PacketUtils::ReadS64(8, packet); + CINSTREAM_SKIP_HEADER; + LWOOBJID objectID; + inStream.Read(objectID); GeneralUtils::ClearBit(objectID, eObjectBits::CHARACTER); GeneralUtils::ClearBit(objectID, eObjectBits::PERSISTENT); uint32_t charID = static_cast<uint32_t>(objectID); LOG("Received char rename request for ID: %llu (%u)", objectID, charID); - std::string newName = PacketUtils::ReadString(16, packet, true); + LUWString LUWStringName(33); + inStream.Read(LUWStringName); + const auto newName = LUWStringName.GetAsString(); Character* character = nullptr; diff --git a/dGame/dComponents/QuickBuildComponent.cpp b/dGame/dComponents/QuickBuildComponent.cpp index 16263d81..b8aec2bd 100644 --- a/dGame/dComponents/QuickBuildComponent.cpp +++ b/dGame/dComponents/QuickBuildComponent.cpp @@ -14,7 +14,6 @@ #include "eGameActivity.h" #include "dServer.h" -#include "PacketUtils.h" #include "Spawner.h" #include "MovingPlatformComponent.h" #include "Preconditions.h" diff --git a/dGame/dComponents/RenderComponent.cpp b/dGame/dComponents/RenderComponent.cpp index f1b8ea0c..4d8ff667 100644 --- a/dGame/dComponents/RenderComponent.cpp +++ b/dGame/dComponents/RenderComponent.cpp @@ -5,7 +5,6 @@ #include <iomanip> #include "Entity.h" -#include "PacketUtils.h" #include "CDClientManager.h" #include "GameMessages.h" diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index eb6f11bb..4041fded 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -1,7 +1,6 @@ #include "GameMessages.h" #include "User.h" #include "Entity.h" -#include "PacketUtils.h" #include "BitStreamUtils.h" #include "BitStream.h" #include "Game.h" @@ -1726,8 +1725,6 @@ void GameMessages::SendStartCelebrationEffect(Entity* entity, const SystemAddres bitStream.Write<uint32_t>(0); //subtext SEND_PACKET; - - //PacketUtils::SavePacket("StartCelebrationEffect.bin", (char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); } @@ -1950,7 +1947,6 @@ void GameMessages::SendBBBSaveResponse(const LWOOBJID& objectId, const LWOOBJID& bitStream.Write(buffer[i]); SEND_PACKET; - //PacketUtils::SavePacket("eGameMessageType::BBB_SAVE_RESPONSE.bin", reinterpret_cast<char*>(bitStream.GetData()), bitStream.GetNumberOfBytesUsed()); } // Property diff --git a/dGame/dUtilities/Mail.cpp b/dGame/dUtilities/Mail.cpp index 2677c9cc..fc0c833e 100644 --- a/dGame/dUtilities/Mail.cpp +++ b/dGame/dUtilities/Mail.cpp @@ -12,7 +12,6 @@ #include "dServer.h" #include "Entity.h" #include "Character.h" -#include "PacketUtils.h" #include "BitStreamUtils.h" #include "Logger.h" #include "EntityManager.h" @@ -305,7 +304,6 @@ void Mail::HandleDataRequest(RakNet::BitStream* packet, const SystemAddress& sys } Game::server->Send(&bitStream, sysAddr, false); - // PacketUtils::SavePacket("Max_Mail_Data.bin", (const char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); } void Mail::HandleAttachmentCollect(RakNet::BitStream* packet, const SystemAddress& sysAddr, Entity* player) { diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index a5691e49..cdfbdf0a 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -36,7 +36,6 @@ #include "InstanceManager.h" #include "MasterPackets.h" #include "PersistentIDManager.h" -#include "PacketUtils.h" #include "FdbToSqlite.h" #include "BitStreamUtils.h" #include "Start.h" @@ -504,17 +503,17 @@ void HandlePacket(Packet* packet) { uint32_t theirZoneID = 0; uint32_t theirInstanceID = 0; ServerType theirServerType; - std::string theirIP = ""; + LUString theirIP(33); inStream.Read(theirPort); inStream.Read(theirZoneID); inStream.Read(theirInstanceID); inStream.Read(theirServerType); - theirIP = PacketUtils::ReadString(24, packet, false); //24 is the current offset + inStream.Read(theirIP); if (theirServerType == ServerType::World) { if (!Game::im->IsPortInUse(theirPort)) { - Instance* in = new Instance(theirIP, theirPort, theirZoneID, theirInstanceID, 0, 12, 12); + Instance* in = new Instance(theirIP.string, theirPort, theirZoneID, theirInstanceID, 0, 12, 12); SystemAddress copy; copy.binaryAddress = packet->systemAddress.binaryAddress; @@ -553,47 +552,42 @@ void HandlePacket(Packet* packet) { } case eMasterMessageType::SET_SESSION_KEY: { - RakNet::BitStream inStream(packet->data, packet->length, false); - uint64_t header = inStream.Read(header); + CINSTREAM_SKIP_HEADER; uint32_t sessionKey = 0; - std::string username; - inStream.Read(sessionKey); - username = PacketUtils::ReadString(12, packet, false); - + LUString username(33); + inStream.Read(username); + for (auto it : activeSessions) { - if (it.second == username) { + if (it.second == username.string) { activeSessions.erase(it.first); CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::NEW_SESSION_ALERT); bitStream.Write(sessionKey); - bitStream.Write<uint32_t>(username.size()); - for (auto character : username) { - bitStream.Write(character); - } + bitStream.Write(username); SEND_PACKET_BROADCAST; break; } } - activeSessions.insert(std::make_pair(sessionKey, username)); - LOG("Got sessionKey %i for user %s", sessionKey, username.c_str()); + activeSessions.insert(std::make_pair(sessionKey, username.string)); + LOG("Got sessionKey %i for user %s", sessionKey, username.string.c_str()); break; } case eMasterMessageType::REQUEST_SESSION_KEY: { - RakNet::BitStream inStream(packet->data, packet->length, false); - uint64_t header = inStream.Read(header); - std::string username = PacketUtils::ReadString(8, packet, false); - + CINSTREAM_SKIP_HEADER; + LUWString username(33); + inStream.Read(username); + LOG("Requesting session key for %s", username.GetAsString().c_str()); for (auto key : activeSessions) { - if (key.second == username) { + if (key.second == username.GetAsString()) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::SESSION_KEY_RESPONSE); bitStream.Write(key.first); - bitStream.Write(LUString(key.second, 64)); + bitStream.Write(username); Game::server->Send(&bitStream, packet->systemAddress, false); break; } diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index de8f5704..a878644c 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -1,5 +1,4 @@ #include "AuthPackets.h" -#include "PacketUtils.h" #include "BitStreamUtils.h" #include "dNetCommon.h" @@ -297,13 +296,12 @@ void AuthPackets::SendLoginResponse(dServer* server, const SystemAddress& sysAdd for (auto& stamp : stamps) stamp.Serialize(&loginResponse); server->Send(&loginResponse, sysAddr, false); - //Inform the master server that we've created a session for this user: if (responseCode == eLoginResponse::SUCCESS) { CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::SET_SESSION_KEY); bitStream.Write(sessionKey); - bitStream.Write(LUString(username, 66)); + bitStream.Write(LUString(username)); server->SendToMaster(&bitStream); LOG("Set sessionKey: %i for user %s", sessionKey, username.c_str()); diff --git a/dNet/ChatPackets.cpp b/dNet/ChatPackets.cpp index 63eff5ef..d0354659 100644 --- a/dNet/ChatPackets.cpp +++ b/dNet/ChatPackets.cpp @@ -7,7 +7,6 @@ #include "RakNetTypes.h" #include "BitStream.h" #include "Game.h" -#include "PacketUtils.h" #include "BitStreamUtils.h" #include "dServer.h" #include "eConnectionType.h" diff --git a/dNet/MasterPackets.cpp b/dNet/MasterPackets.cpp index 624b92ad..6953026e 100644 --- a/dNet/MasterPackets.cpp +++ b/dNet/MasterPackets.cpp @@ -1,6 +1,5 @@ #include "MasterPackets.h" #include "BitStream.h" -#include "PacketUtils.h" #include "dCommonVars.h" #include "dServer.h" #include "eConnectionType.h" @@ -88,7 +87,7 @@ void MasterPackets::SendZoneTransferResponse(dServer* server, const SystemAddres bitStream.Write(zoneInstance); bitStream.Write(zoneClone); bitStream.Write<uint16_t>(serverPort); - bitStream.Write(LUString(serverIP, static_cast<uint32_t>(serverIP.size() + 1))); + bitStream.Write(LUString(serverIP, 255)); server->Send(&bitStream, sysAddr, false); } @@ -100,12 +99,12 @@ void MasterPackets::HandleServerInfo(Packet* packet) { uint32_t theirPort = 0; uint32_t theirZoneID = 0; uint32_t theirInstanceID = 0; - std::string theirIP = ""; + LUString theirIP(33); inStream.Read(theirPort); inStream.Read(theirZoneID); inStream.Read(theirInstanceID); - theirIP = PacketUtils::ReadString(inStream.GetReadOffset(), packet, false); //20 is the current offset + inStream.Read(theirIP); //TODO: Actually mark this server as an available server in the manager } @@ -118,7 +117,7 @@ void MasterPackets::SendServerInfo(dServer* server, Packet* packet) { bitStream.Write(server->GetZoneID()); bitStream.Write(server->GetInstanceID()); bitStream.Write(server->GetServerType()); - bitStream.Write(LUString(server->GetIP(), server->GetIP().size())); + bitStream.Write(LUString(server->GetIP())); server->SendToMaster(&bitStream); } diff --git a/dNet/WorldPackets.cpp b/dNet/WorldPackets.cpp index 6ea0b350..f92a971f 100644 --- a/dNet/WorldPackets.cpp +++ b/dNet/WorldPackets.cpp @@ -1,7 +1,6 @@ #include "WorldPackets.h" #include "dCommonVars.h" #include "BitStream.h" -#include "PacketUtils.h" #include "GeneralUtils.h" #include "Logger.h" #include "Game.h" diff --git a/dNet/ZoneInstanceManager.cpp b/dNet/ZoneInstanceManager.cpp index f9285579..354d3634 100644 --- a/dNet/ZoneInstanceManager.cpp +++ b/dNet/ZoneInstanceManager.cpp @@ -3,7 +3,6 @@ // Custom Classes #include "MasterPackets.h" -#include "PacketUtils.h" #include "dServer.h" // C++ @@ -25,20 +24,30 @@ void ZoneInstanceManager::RequestZoneTransfer(dServer* server, uint32_t zoneID, } //! Handles a zone transfer response -void ZoneInstanceManager::HandleRequestZoneTransferResponse(uint64_t requestID, Packet* packet) { - - bool mythranShift = static_cast<bool>(packet->data[16]); - uint32_t zoneID = PacketUtils::ReadU32(17, packet); - uint32_t zoneInstance = PacketUtils::ReadU32(21, packet); - uint32_t zoneClone = PacketUtils::ReadU32(25, packet); - uint16_t serverPort = PacketUtils::ReadU16(29, packet); - std::string serverIP = PacketUtils::ReadString(31, packet, false); +void ZoneInstanceManager::HandleRequestZoneTransferResponse(Packet* packet) { + CINSTREAM_SKIP_HEADER; + uint64_t requestID; + inStream.Read(requestID); + bool mythranShift; + uint8_t tmp; + inStream.Read(tmp); + mythranShift = tmp > 0; + uint32_t zoneID; + inStream.Read(zoneID); + uint32_t zoneInstance; + inStream.Read(zoneInstance); + uint32_t zoneClone; + inStream.Read(zoneClone); + uint16_t serverPort; + inStream.Read(serverPort); + LUString serverIP(255); + inStream.Read(serverIP); for (uint32_t i = 0; i < this->requests.size(); ++i) { if (this->requests[i]->requestID == requestID) { // Call the request callback - this->requests[i]->callback(mythranShift, zoneID, zoneInstance, zoneClone, serverIP, serverPort); + this->requests[i]->callback(mythranShift, zoneID, zoneInstance, zoneClone, serverIP.string, serverPort); delete this->requests[i]; this->requests.erase(this->requests.begin() + i); diff --git a/dNet/ZoneInstanceManager.h b/dNet/ZoneInstanceManager.h index 3f8da1ae..47080cde 100644 --- a/dNet/ZoneInstanceManager.h +++ b/dNet/ZoneInstanceManager.h @@ -1,7 +1,5 @@ #pragma once -// C++ -#define _VARIADIC_MAX 10 #include <functional> #include <vector> #include <string> @@ -56,7 +54,7 @@ public: \param requestID The request ID \param packet The packet */ - void HandleRequestZoneTransferResponse(uint64_t requestID, Packet* packet); + void HandleRequestZoneTransferResponse(Packet* packet); void CreatePrivateZone(dServer* server, uint32_t zoneID, uint32_t zoneClone, const std::string& password); diff --git a/dNet/dServer.cpp b/dNet/dServer.cpp index e60e04f9..ed66b42c 100644 --- a/dNet/dServer.cpp +++ b/dNet/dServer.cpp @@ -10,7 +10,6 @@ #include "eServerMessageType.h" #include "eMasterMessageType.h" -#include "PacketUtils.h" #include "BitStreamUtils.h" #include "MasterPackets.h" #include "ZoneInstanceManager.h" @@ -127,8 +126,7 @@ Packet* dServer::ReceiveFromMaster() { if (static_cast<eConnectionType>(packet->data[1]) == eConnectionType::MASTER) { switch (static_cast<eMasterMessageType>(packet->data[3])) { case eMasterMessageType::REQUEST_ZONE_TRANSFER_RESPONSE: { - uint64_t requestID = PacketUtils::ReadU64(8, packet); - ZoneInstanceManager::Instance()->HandleRequestZoneTransferResponse(requestID, packet); + ZoneInstanceManager::Instance()->HandleRequestZoneTransferResponse(packet); break; } case eMasterMessageType::SHUTDOWN: diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index e6a0973f..046908ff 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -29,7 +29,6 @@ #include <csignal> #include "AuthPackets.h" -#include "PacketUtils.h" #include "BitStreamUtils.h" #include "WorldPackets.h" #include "UserManager.h" @@ -664,24 +663,25 @@ void HandleMasterPacket(Packet* packet) { if (static_cast<eConnectionType>(packet->data[1]) != eConnectionType::MASTER || packet->length < 4) return; switch (static_cast<eMasterMessageType>(packet->data[3])) { case eMasterMessageType::REQUEST_PERSISTENT_ID_RESPONSE: { - uint64_t requestID = PacketUtils::ReadU64(8, packet); - uint32_t objectID = PacketUtils::ReadU32(16, packet); + CINSTREAM_SKIP_HEADER; + uint64_t requestID; + inStream.Read(requestID); + uint32_t objectID; + inStream.Read(objectID); ObjectIDManager::HandleRequestPersistentIDResponse(requestID, objectID); break; } case eMasterMessageType::SESSION_KEY_RESPONSE: { //Read our session key and to which user it belongs: - RakNet::BitStream inStream(packet->data, packet->length, false); - uint64_t header = inStream.Read(header); + CINSTREAM_SKIP_HEADER; uint32_t sessionKey = 0; - std::string username; - inStream.Read(sessionKey); - username = PacketUtils::ReadString(12, packet, false); + LUWString username(33); + inStream.Read(username); //Find them: - auto it = m_PendingUsers.find(username); + auto it = m_PendingUsers.find(username.GetAsString()); if (it == m_PendingUsers.end()) return; //Convert our key: @@ -694,12 +694,12 @@ void HandleMasterPacket(Packet* packet) { Game::server->Disconnect(it->second.sysAddr, eServerDisconnectIdentifiers::INVALID_SESSION_KEY); return; } else { - LOG("User %s authenticated with correct key.", username.c_str()); + LOG("User %s authenticated with correct key.", username.GetAsString().c_str()); UserManager::Instance()->DeleteUser(packet->systemAddress); //Create our user and send them in: - UserManager::Instance()->CreateUser(it->second.sysAddr, username, userHash); + UserManager::Instance()->CreateUser(it->second.sysAddr, username.GetAsString(), userHash); auto zone = Game::zoneManager->GetZone(); if (zone) { @@ -722,7 +722,7 @@ void HandleMasterPacket(Packet* packet) { UserManager::Instance()->RequestCharacterList(it->second.sysAddr); } - m_PendingUsers.erase(username); + m_PendingUsers.erase(username.GetAsString()); //Notify master: { @@ -737,8 +737,9 @@ void HandleMasterPacket(Packet* packet) { break; } case eMasterMessageType::AFFIRM_TRANSFER_REQUEST: { - const uint64_t requestID = PacketUtils::ReadU64(8, packet); - + CINSTREAM_SKIP_HEADER; + uint64_t requestID; + inStream.Read(requestID); LOG("Got affirmation request of transfer %llu", requestID); CBITSTREAM; @@ -757,30 +758,22 @@ void HandleMasterPacket(Packet* packet) { } case eMasterMessageType::NEW_SESSION_ALERT: { - RakNet::BitStream inStream(packet->data, packet->length, false); - uint64_t header = inStream.Read(header); + CINSTREAM_SKIP_HEADER; uint32_t sessionKey = inStream.Read(sessionKey); - std::string username; - - uint32_t len; - inStream.Read(len); - - for (uint32_t i = 0; i < len; i++) { - char character; inStream.Read<char>(character); - username += character; - } - + LUString username(33); + inStream.Read(username); + LOG("Got new session alert for user %s", username.string.c_str()); //Find them: - User* user = UserManager::Instance()->GetUser(username.c_str()); + User* user = UserManager::Instance()->GetUser(username.string.c_str()); if (!user) { - LOG("Got new session alert for user %s, but they're not logged in.", username.c_str()); + LOG("But they're not logged in?"); return; } //Check the key: if (sessionKey != std::atoi(user->GetSessionKey().c_str())) { - LOG("Got new session alert for user %s, but the session key is invalid.", username.c_str()); + LOG("But the session key is invalid!", username.string.c_str()); Game::server->Disconnect(user->GetSystemAddress(), eServerDisconnectIdentifiers::INVALID_SESSION_KEY); return; } @@ -853,16 +846,19 @@ void HandlePacket(Packet* packet) { switch (static_cast<eWorldMessageType>(packet->data[3])) { case eWorldMessageType::VALIDATION: { - std::string username = PacketUtils::ReadString(0x08, packet, true); - std::string sessionKey = PacketUtils::ReadString(74, packet, true); - std::string clientDatabaseChecksum = PacketUtils::ReadString(packet->length - 33, packet, false); + CINSTREAM_SKIP_HEADER; + LUWString username(33); + inStream.Read(username); + LUWString sessionKey(33); // sometimes client puts a null terminator at the end of the checksum and sometimes doesn't, weird - clientDatabaseChecksum = clientDatabaseChecksum.substr(0, 32); + inStream.Read(sessionKey); + LUString clientDatabaseChecksum(32); + inStream.Read(clientDatabaseChecksum); // If the check is turned on, validate the client's database checksum. if (Game::config->GetValue("check_fdb") == "1" && !databaseChecksum.empty()) { - auto accountInfo = Database::Get()->GetAccountInfo(username); + auto accountInfo = Database::Get()->GetAccountInfo(username.GetAsString()); if (!accountInfo) { LOG("Client's account does not exist in the database, aborting connection."); Game::server->Disconnect(packet->systemAddress, eServerDisconnectIdentifiers::CHARACTER_NOT_FOUND); @@ -870,7 +866,7 @@ void HandlePacket(Packet* packet) { } // Developers may skip this check - if (accountInfo->maxGmLevel < eGameMasterLevel::DEVELOPER && clientDatabaseChecksum != databaseChecksum) { + if (accountInfo->maxGmLevel < eGameMasterLevel::DEVELOPER && clientDatabaseChecksum.string != databaseChecksum) { LOG("Client's database checksum does not match the server's, aborting connection."); Game::server->Disconnect(packet->systemAddress, eServerDisconnectIdentifiers::WRONG_GAME_VERSION); return; @@ -880,14 +876,14 @@ void HandlePacket(Packet* packet) { //Request the session info from Master: CBITSTREAM; BitStreamUtils::WriteHeader(bitStream, eConnectionType::MASTER, eMasterMessageType::REQUEST_SESSION_KEY); - bitStream.Write(LUString(username, 64)); + bitStream.Write(username); Game::server->SendToMaster(&bitStream); //Insert info into our pending list tempSessionInfo info; info.sysAddr = SystemAddress(packet->systemAddress); - info.hash = sessionKey; - m_PendingUsers.insert(std::make_pair(username, info)); + info.hash = sessionKey.GetAsString(); + m_PendingUsers.insert(std::make_pair(username.GetAsString(), info)); break; } @@ -1098,7 +1094,6 @@ void HandlePacket(Packet* packet) { SystemAddress sysAddr = packet->systemAddress; SEND_PACKET; - // PacketUtils::SavePacket("lxfml packet " + std::to_string(bbbModel.id) + ".bin", (char*)bitStream.GetData(), bitStream.GetNumberOfBytesUsed()); } } From e4469f997ec10c63e9e1c3972542ae6b0cfdfe94 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sun, 7 Jan 2024 05:43:53 -0800 Subject: [PATCH 094/106] fix: activity id not using overridden id (#1400) * patch activity id not using overridden id Update ActivityComponent.h * Update ActivityComponent.cpp * Update ActivityComponent.cpp --- dGame/dComponents/ActivityComponent.cpp | 45 ++++++++++++++++--------- dGame/dComponents/ActivityComponent.h | 2 ++ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/dGame/dComponents/ActivityComponent.cpp b/dGame/dComponents/ActivityComponent.cpp index 7ea7500b..7d9e37da 100644 --- a/dGame/dComponents/ActivityComponent.cpp +++ b/dGame/dComponents/ActivityComponent.cpp @@ -30,23 +30,17 @@ #include "LeaderboardManager.h" ActivityComponent::ActivityComponent(Entity* parent, int32_t activityID) : Component(parent) { - if (activityID > 0) m_ActivityID = activityID; - else m_ActivityID = parent->GetVar<int32_t>(u"activityID"); - CDActivitiesTable* activitiesTable = CDClientManager::Instance().GetTable<CDActivitiesTable>(); - std::vector<CDActivities> activities = activitiesTable->Query([this](CDActivities entry) {return (entry.ActivityID == m_ActivityID); }); + /* + * This is precisely what the client does functionally + * Use the component id as the default activity id and load its data from the database + * if activityID is specified and if that column exists in the activities table, update the activity info with that data. + */ - for (CDActivities activity : activities) { - m_ActivityInfo = activity; - if (static_cast<Leaderboard::Type>(activity.leaderboardType) == Leaderboard::Type::Racing && Game::config->GetValue("solo_racing") == "1") { - m_ActivityInfo.minTeamSize = 1; - m_ActivityInfo.minTeams = 1; - } - if (m_ActivityInfo.instanceMapID == -1) { - const auto& transferOverride = parent->GetVarAsString(u"transferZoneID"); - if (!transferOverride.empty()) { - GeneralUtils::TryParse(transferOverride, m_ActivityInfo.instanceMapID); - } - } + m_ActivityID = activityID; + LoadActivityData(activityID); + if (m_Parent->HasVar(u"activityID")) { + m_ActivityID = parent->GetVar<int32_t>(u"activityID"); + LoadActivityData(m_ActivityID); } auto* destroyableComponent = m_Parent->GetComponent<DestroyableComponent>(); @@ -74,6 +68,25 @@ ActivityComponent::ActivityComponent(Entity* parent, int32_t activityID) : Compo } } } +void ActivityComponent::LoadActivityData(const int32_t activityId) { + CDActivitiesTable* activitiesTable = CDClientManager::Instance().GetTable<CDActivitiesTable>(); + std::vector<CDActivities> activities = activitiesTable->Query([activityId](CDActivities entry) {return (entry.ActivityID == activityId); }); + + bool soloRacing = Game::config->GetValue("solo_racing") == "1"; + for (CDActivities activity : activities) { + m_ActivityInfo = activity; + if (static_cast<Leaderboard::Type>(activity.leaderboardType) == Leaderboard::Type::Racing && soloRacing) { + m_ActivityInfo.minTeamSize = 1; + m_ActivityInfo.minTeams = 1; + } + if (m_ActivityInfo.instanceMapID == -1) { + const auto& transferOverride = m_Parent->GetVarAsString(u"transferZoneID"); + if (!transferOverride.empty()) { + GeneralUtils::TryParse(transferOverride, m_ActivityInfo.instanceMapID); + } + } + } +} void ActivityComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { outBitStream->Write(m_DirtyActivityInfo); diff --git a/dGame/dComponents/ActivityComponent.h b/dGame/dComponents/ActivityComponent.h index 96dbd5fb..de63b343 100644 --- a/dGame/dComponents/ActivityComponent.h +++ b/dGame/dComponents/ActivityComponent.h @@ -152,6 +152,8 @@ class ActivityComponent : public Component { public: ActivityComponent(Entity* parent, int32_t activityID); + void LoadActivityData(const int32_t activityId); + void Update(float deltaTime) override; void Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) override; From fbdcc17bb568f5f110cfb414b90405d79e0aa2a6 Mon Sep 17 00:00:00 2001 From: Daniel Seiler <me@xiphoseer.de> Date: Mon, 8 Jan 2024 16:13:28 +0100 Subject: [PATCH 095/106] fix: Docker Compose README (#1403) * fix: Docker Compose README * fix: add password requiremnts hint * fix: note on sudo / docker compose * fix: add note on UGCUSE3DSERVICES * fix: reorder * fix: duplicate word * fix: move broken line * fix(compose): enable USER_ENABLE_REGISTER by default --- .env.example | 9 +++---- README.md | 42 ++++++++++++++++++++++++--------- docker-compose.yml | 59 +++++++++++++++++++++++++++++----------------- 3 files changed, 71 insertions(+), 39 deletions(-) diff --git a/.env.example b/.env.example index 462fb17f..5e84184c 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,7 @@ # Full path to the LEGO Universe client -CLIENT_PATH=/Users/someuser/LEGO Universe -# Can improve build time -BUILD_THREADS=1 +CLIENT_PATH=./client # Updates NET_VERSION in CMakeVariables.txt -BUILD_VERSION=171022 +NET_VERSION=171022 # make sure this is a long random string # grab a "SHA 256-bit Key" from here: https://keygen.io/ ACCOUNT_MANAGER_SECRET= @@ -12,6 +10,5 @@ EXTERNAL_IP=localhost # Database values # Be careful with special characters here. It is more safe to use normal characters and/or numbers. MARIADB_USER=darkflame -MARIADB_PASSWORD=SECRET_VALUE_CHANGE_ME -MARIADB_ROOT_PASSWORD=SECRET_VALUE_CHANGE_ME +MARIADB_PASSWORD= MARIADB_DATABASE=darkflame diff --git a/README.md b/README.md index 72bacc95..1d998511 100644 --- a/README.md +++ b/README.md @@ -348,12 +348,40 @@ certutil -hashfile <file> SHA1 Known good *SHA1* checksum of the Darkflame Universe client: - `91498e09b83ce69f46baf9e521d48f23fe502985` (packed client, zip compressed) + # Docker -## Standalone +The Darkflame Server is automatically built and published as a Docker Container / [OCI](https://opencontainers.org/) Image to the GitHub Container Registry at: +[`ghcr.io/darkflameuniverse/darkflameserver`](https://github.com/DarkflameUniverse/DarkflameServer/pkgs/container/darkflameserver). -For standalone deployment, you can use the image provided via Github's Container Repository: -`ghcr.io/darkflameuniverse/darkflameserver` +## Compose + +You can use the `docker-compose` tool to [setup a MariaDB database](#database-setup), run the Darkflame Server and manage it with [Nexus Dashboard](https://github.com/DarkflameUniverse/NexusDashboard) all +at once. For that: + +- [Install Docker Desktop](https://docs.docker.com/get-docker/) +- Open the directory that contains your LU Client + - If the `legouniverse.exe` is in a subfolder called `client`, you're good to go. There may also be a folder `versions`. + - Otherwise, create a new `client` folder and move the exe and everything else (e.g. `res` and `locale`) in there. This is necessary to work around a bug in the client that will prevent that you to log back in after getting disconnected. +- Download the [docker-compose.yml](docker-compose.yml) file and place it next to `client`. +- Download the [.env.example](.env.example) file and place it next to `client` with the file name `.env` + - You may get warnings that this name starts with a dot, acknowledge those, this is intentional. Depending on your operating system, you may need to activate showing hidden files (e.g. Ctrl-H in Gnome on Linux) and/or file extensions ("File name extensions" in the "View" tab on Windows). + - Update the `ACCOUNT_MANAGER_SECRET` and `MARIADB_PASSWORD` with strong random passwords. + - Use a password generator like <https://keygen.io> + - Avoid `:` and `@` characters + - Once the database user is created, changing the password will not update it, so the server will just fail to connect. + - Set `EXTERNAL_IP` to your LAN IP or public IP if you want to host the game for friends & family +- Open a terminal in the folder with the `docker-compose.yml` and `client` +- Run `docker compose up -d` + - This might require `sudo` on Linux, and a recent version of [docker compose](https://docs.docker.com/compose/install/) +- Run `docker exec -it dlu-darkflameserver-1 /app/MasterServer -a` and follow the instructions to create the initial admin account +- Open <http://localhost:8000> to access Nexus Dashboard with the admin account to create normal users +- Set `AUTHSERVERIP=0:localhost` in `client/boot.cfg` + - Replace `localhost` with the value of `EXTERNAL_IP` if you changed that earlier. + - Also make sure `UGCUSE3DSERVICES=7:` is set to `0` +- Launch `legouniverse.exe` + +## Standalone This assumes that you have a database deployed to your host or in another docker container. @@ -376,14 +404,6 @@ You will need to replace the `/path/to/`'s to reflect the paths on your host. Any config option in the `.ini`'s can be overridden with environmental variables: Ex: `log_to_console=1` from `shared_config.ini` would be overidden like `-e LOG_TO_CONSOLE=0` -## Compose - -See the [compose](docker-compose.yml) file in the root of the repo. - -This compose file is for a full deployment: MariaDB, DarkflameServer, and Nexus Dashboard. - -All of the environmental options are listed in the compose file so the can be pass through, or you can edit the compose file to suit your specific needs - # Development Documentation This is a Work in Progress, but below are some quick links to documentaion for systems and structs in the server [Networked message structs](https://lcdruniverse.org/lu_packets/lu_packets/index.html) diff --git a/docker-compose.yml b/docker-compose.yml index 1d83f010..a7954718 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,58 +1,73 @@ version: "3" +name: dlu services: darkflamedb: - image: mariadb:latest - environment: - - MARIADB_USER=${MARIADB_USER:-darkflame} - - MARIADB_PASSWORD=${MARIADB_PASSWORD:-darkflame} - - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-darkflame} - - MARIADB_DATABASE=${MARIADB_DATABASE:-darkflame} networks: - darkflame + image: mariadb:latest + volumes: + - ${DB_DATA_DIR:-./db/data}:/var/lib/mysql + environment: + - MARIADB_RANDOM_ROOT_PASSWORD=1 + - MARIADB_USER=${MARIADB_USER:-darkflame} + - MARIADB_PASSWORD=${MARIADB_PASSWORD:?error} + - MARIADB_DATABASE=${MARIADB_DATABASE:-darkflame} + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + start_period: 10s + interval: 10s + timeout: 5s + retries: 3 darkflameserver: networks: - darkflame image: ghcr.io/darkflameuniverse/darkflameserver:latest volumes: - - $HOST_CONFIG_DIR:/app/configs/ - - $HOST_CLIENT_LOCATION:$CLIENT_LOCATION:ro - - $HOST_RESSERVER_LOCATION:/app/resServer/ - - $HOST_DUMP_FOLDER:$DUMP_FOLDER - - $HOST_LOGS_DIR:/app/logs/ + - ${HOST_CONFIG_DIR:-./server/config}:/app/configs/ + - ${CLIENT_PATH:-./client}:/app/luclient:ro + - ${HOST_RESSERVER_LOCATION:-./server/res}:/app/resServer/ + - ${HOST_DUMP_FOLDER:-./server/dump}:/app/dump/ + - ${HOST_LOGS_DIR:-./server/logs}:/app/logs/ environment: + - CLIENT_LOCATION=/app/luclient - DLU_CONFIG_DIR=/app/configs + - DUMP_FOLDER=/app/dump - MYSQL_HOST=darkflamedb - MYSQL_DATABASE=${MARIADB_DATABASE:-darkflame} - MYSQL_USERNAME=${MARIADB_USER:-darkflame} - - MYSQL_PASSWORD=${MARIADB_PASSWORD:-darkflame} + - MYSQL_PASSWORD=${MARIADB_PASSWORD:?error} - EXTERNAL_IP=${EXTERNAL_IP:-localhost} - - DUMP_FOLDER=$DUMP_FOLDER - - CLIENT_LOCATION=$CLIENT_LOCATION + - CLIENT_NET_VERSION=${CLIENT_NET_VERSION:-171022} depends_on: - darkflamedb ports: - "1001:1001/udp" - "2005:2005/udp" - "3000-3300:3000-3300/udp" + healthcheck: + test: ["CMD", "ls", "/app/resServer/CDServer.sqlite"] darkflameweb: networks: - darkflame image: ghcr.io/darkflameuniverse/nexusdashboard:latest volumes: - - $HOST_CLIENT_LOCATION:/app/luclient:ro - - $HOST_CACHE_LOCATION:/app/cache - - $HOST_CD_SQLITE_LOCATION:/app/cdclient:ro + - ${CLIENT_PATH:-./client}:/app/luclient:ro + - ${HOST_CACHE_LOCATION:-./web/cache}:/app/cache + - ${HOST_RESSERVER_LOCATION:-./server/res}:/app/cdclient:ro + - ${HOST_ND_LOGS_LOCATION:-./web/logs}:/logs environment: - - APP_SECRET_KEY=$APP_SECRET_KEY - - APP_DATABASE_URI=mysql+pymysql://${MARIADB_USER:-darkflame}:${MARIADB_PASSWORD:-darkflame}@darkflamedb:3306/${MARIADB_DATABASE:-darkflame} - - CLIENT_LOCATION=/app/luclient - - CACHE_LOCATION=/app/cache - - CD_SQLITE_LOCATION=/app/cdclient + - APP_SECRET_KEY=${ACCOUNT_MANAGER_SECRET:?error} + - APP_DATABASE_URI=mysql+pymysql://${MARIADB_USER:-darkflame}:${MARIADB_PASSWORD:?error}@darkflamedb:3306/${MARIADB_DATABASE:-darkflame} + - CLIENT_LOCATION=/app/luclient/ + - CACHE_LOCATION=/app/cache/ + - CD_SQLITE_LOCATION=/app/cdclient/ + - USER_ENABLE_REGISTER=1 # "0" is _not_ false, to disable, remove this line depends_on: - darkflamedb + - darkflameserver ports: - 8000:8000 healthcheck: From 4a50c60559133b2bd168e00974e919dc59115543 Mon Sep 17 00:00:00 2001 From: jadebenn <jadebenn@users.noreply.github.com> Date: Mon, 8 Jan 2024 17:32:09 -0600 Subject: [PATCH 096/106] chore: Assorted pet improvements (#1402) * Assorted pet improvements * remove unecessary include * updates to address some feedback * fixed database code for testing * Removed reference member (for now) * Removed cmake flag --- CMakeLists.txt | 2 +- dCommon/dEnums/ePetAbilityType.h | 13 ++++ .../CDClientDatabase/CDClientDatabase.cpp | 4 ++ dDatabase/CDClientDatabase/CDClientDatabase.h | 4 ++ .../CDClientDatabase/CDClientManager.cpp | 21 ++++++- dDatabase/CDClientDatabase/CDClientManager.h | 5 +- .../CDClientTables/CDPetComponentTable.cpp | 61 ++++++++++++++++++ .../CDClientTables/CDPetComponentTable.h | 45 ++++++++++++++ .../CDClientDatabase/CDClientTables/CDTable.h | 3 + .../CDClientTables/CMakeLists.txt | 1 + dGame/dComponents/BaseCombatAIComponent.cpp | 1 - dGame/dComponents/PetComponent.cpp | 62 +++++++------------ dGame/dComponents/PetComponent.h | 28 ++++----- dGame/dGameMessages/GameMessages.cpp | 5 +- dGame/dGameMessages/GameMessages.h | 3 +- dWorldServer/WorldServer.cpp | 2 +- tests/dGameTests/GameDependencies.h | 4 ++ .../dComponentsTests/CMakeLists.txt | 1 + .../dComponentsTests/PetComponentTests.cpp | 43 +++++++++++++ 19 files changed, 245 insertions(+), 63 deletions(-) create mode 100644 dCommon/dEnums/ePetAbilityType.h create mode 100644 dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.cpp create mode 100644 dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.h create mode 100644 tests/dGameTests/dComponentsTests/PetComponentTests.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index cd657772..74408df8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ set(RECASTNAVIGATION_EXAMPLES OFF CACHE BOOL "" FORCE) # Disabled no-register # Disabled unknown pragmas because Linux doesn't understand Windows pragmas. if(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17 -O2 -Wuninitialized -fPIC") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wuninitialized -fPIC") add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0 _GLIBCXX_USE_CXX17_ABI=0) if(NOT APPLE) diff --git a/dCommon/dEnums/ePetAbilityType.h b/dCommon/dEnums/ePetAbilityType.h new file mode 100644 index 00000000..0cc6d6bd --- /dev/null +++ b/dCommon/dEnums/ePetAbilityType.h @@ -0,0 +1,13 @@ +#ifndef __EPETABILITYTYPE__H__ +#define __EPETABILITYTYPE__H__ + +#include <cstdint> + +enum class ePetAbilityType : uint32_t { + Invalid, + GoToObject, + JumpOnObject, + DigAtPosition +}; + +#endif //!__EPETABILITYTYPE__H__ diff --git a/dDatabase/CDClientDatabase/CDClientDatabase.cpp b/dDatabase/CDClientDatabase/CDClientDatabase.cpp index 4c2df1d2..886030a1 100644 --- a/dDatabase/CDClientDatabase/CDClientDatabase.cpp +++ b/dDatabase/CDClientDatabase/CDClientDatabase.cpp @@ -4,9 +4,13 @@ // Static Variables static CppSQLite3DB* conn = new CppSQLite3DB(); +// Status Variables +bool CDClientDatabase::isConnected = false; + //! Opens a connection with the CDClient void CDClientDatabase::Connect(const std::string& filename) { conn->open(filename.c_str()); + isConnected = true; } //! Queries the CDClient diff --git a/dDatabase/CDClientDatabase/CDClientDatabase.h b/dDatabase/CDClientDatabase/CDClientDatabase.h index 7f42918d..fa58906c 100644 --- a/dDatabase/CDClientDatabase/CDClientDatabase.h +++ b/dDatabase/CDClientDatabase/CDClientDatabase.h @@ -15,6 +15,10 @@ //! The CDClient Database namespace namespace CDClientDatabase { + /** + * Boolean defining the connection status of CDClient + */ + extern bool isConnected; //! Opens a connection with the CDClient /*! diff --git a/dDatabase/CDClientDatabase/CDClientManager.cpp b/dDatabase/CDClientDatabase/CDClientManager.cpp index 74c5c975..f270d849 100644 --- a/dDatabase/CDClientDatabase/CDClientManager.cpp +++ b/dDatabase/CDClientDatabase/CDClientManager.cpp @@ -3,6 +3,7 @@ #include "CDAnimationsTable.h" #include "CDBehaviorParameterTable.h" #include "CDBehaviorTemplateTable.h" +#include "CDClientDatabase.h" #include "CDComponentsRegistryTable.h" #include "CDCurrencyTableTable.h" #include "CDDestructibleComponentTable.h" @@ -39,6 +40,8 @@ #include "CDRailActivatorComponent.h" #include "CDRewardCodesTable.h" +#include <exception> + #ifndef CDCLIENT_CACHE_ALL // Uncomment this to cache the full cdclient database into memory. This will make the server load faster, but will use more memory. // A vanilla CDClient takes about 46MB of memory + the regular world data. @@ -51,7 +54,16 @@ #define CDCLIENT_DONT_CACHE_TABLE(x) #endif -CDClientManager::CDClientManager() { +class CDClientConnectionException : public std::exception { +public: + virtual const char* what() const throw() { + return "CDClientDatabase is not connected!"; + } +}; + +void CDClientManager::LoadValuesFromDatabase() { + if (!CDClientDatabase::isConnected) throw CDClientConnectionException(); + CDActivityRewardsTable::Instance().LoadValuesFromDatabase(); CDActivitiesTable::Instance().LoadValuesFromDatabase(); CDCLIENT_DONT_CACHE_TABLE(CDAnimationsTable::Instance().LoadValuesFromDatabase()); @@ -79,6 +91,7 @@ CDClientManager::CDClientManager() { CDCLIENT_DONT_CACHE_TABLE(CDObjectsTable::Instance().LoadValuesFromDatabase()); CDPhysicsComponentTable::Instance().LoadValuesFromDatabase(); CDPackageComponentTable::Instance().LoadValuesFromDatabase(); + CDPetComponentTable::Instance().LoadValuesFromDatabase(); CDProximityMonitorComponentTable::Instance().LoadValuesFromDatabase(); CDPropertyEntranceComponentTable::Instance().LoadValuesFromDatabase(); CDPropertyTemplateTable::Instance().LoadValuesFromDatabase(); @@ -92,3 +105,9 @@ CDClientManager::CDClientManager() { CDVendorComponentTable::Instance().LoadValuesFromDatabase(); CDZoneTableTable::Instance().LoadValuesFromDatabase(); } + +void CDClientManager::LoadValuesFromDefaults() { + LOG("Loading default CDClient tables!"); + + CDPetComponentTable::Instance().LoadValuesFromDefaults(); +} diff --git a/dDatabase/CDClientDatabase/CDClientManager.h b/dDatabase/CDClientDatabase/CDClientManager.h index 74069ff4..ae628a36 100644 --- a/dDatabase/CDClientDatabase/CDClientManager.h +++ b/dDatabase/CDClientDatabase/CDClientManager.h @@ -11,7 +11,10 @@ */ class CDClientManager : public Singleton<CDClientManager> { public: - CDClientManager(); + CDClientManager() = default; + + void LoadValuesFromDatabase(); + void LoadValuesFromDefaults(); /** * Fetch a table from CDClient diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.cpp new file mode 100644 index 00000000..c3dd5d50 --- /dev/null +++ b/dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.cpp @@ -0,0 +1,61 @@ +#include "CDPetComponentTable.h" + +namespace { + // Default entries for fallback + CDPetComponent defaultEntry{ + .id = 0, + UNUSED_ENTRY(.minTameUpdateTime = 60.0f,) + UNUSED_ENTRY(.maxTameUpdateTime = 300.0f,) + UNUSED_ENTRY(.percentTameChance = 101.0f,) + UNUSED_ENTRY(.tameability = 100.0f,) + UNUSED_ENTRY(.elementType = 1,) + .walkSpeed = 2.5f, + .runSpeed = 5.0f, + .sprintSpeed = 10.0f, + UNUSED_ENTRY(.idleTimeMin = 60.0f,) + UNUSED_ENTRY(.idleTimeMax = 300.0f,) + UNUSED_ENTRY(.petForm = 0,) + .imaginationDrainRate = 60.0f, + UNUSED_ENTRY(.AudioMetaEventSet = "",) + UNUSED_ENTRY(.buffIDs = "",) + }; +} + +void CDPetComponentTable::LoadValuesFromDatabase() { + auto tableData = CDClientDatabase::ExecuteQuery("SELECT * FROM PetComponent"); + while (!tableData.eof()) { + const uint32_t componentID = tableData.getIntField("id", defaultEntry.id); + + auto& entry = m_Entries[componentID]; + entry.id = componentID; + UNUSED_COLUMN(entry.minTameUpdateTime = tableData.getFloatField("minTameUpdateTime", defaultEntry.minTameUpdateTime)); + UNUSED_COLUMN(entry.maxTameUpdateTime = tableData.getFloatField("maxTameUpdateTime", defaultEntry.maxTameUpdateTime)); + UNUSED_COLUMN(entry.percentTameChance = tableData.getFloatField("percentTameChance", defaultEntry.percentTameChance)); + UNUSED_COLUMN(entry.tameability = tableData.getFloatField("tamability", defaultEntry.tameability)); // Mispelled as "tamability" in CDClient + UNUSED_COLUMN(entry.elementType = tableData.getIntField("elementType", defaultEntry.elementType)); + entry.walkSpeed = static_cast<float>(tableData.getFloatField("walkSpeed", defaultEntry.walkSpeed)); + entry.runSpeed = static_cast<float>(tableData.getFloatField("runSpeed", defaultEntry.runSpeed)); + entry.sprintSpeed = static_cast<float>(tableData.getFloatField("sprintSpeed", defaultEntry.sprintSpeed)); + UNUSED_COLUMN(entry.idleTimeMin = tableData.getFloatField("idleTimeMin", defaultEntry.idleTimeMin)); + UNUSED_COLUMN(entry.idleTimeMax = tableData.getFloatField("idleTimeMax", defaultEntry.idleTimeMax)); + UNUSED_COLUMN(entry.petForm = tableData.getIntField("petForm", defaultEntry.petForm)); + entry.imaginationDrainRate = static_cast<float>(tableData.getFloatField("imaginationDrainRate", defaultEntry.imaginationDrainRate)); + UNUSED_COLUMN(entry.AudioMetaEventSet = tableData.getStringField("AudioMetaEventSet", defaultEntry.AudioMetaEventSet)); + UNUSED_COLUMN(entry.buffIDs = tableData.getStringField("buffIDs", defaultEntry.buffIDs)); + + tableData.nextRow(); + } +} + +void CDPetComponentTable::LoadValuesFromDefaults() { + m_Entries.insert(std::make_pair(defaultEntry.id, defaultEntry)); +} + +CDPetComponent& CDPetComponentTable::GetByID(const uint32_t componentID) { + auto itr = m_Entries.find(componentID); + if (itr == m_Entries.end()) { + LOG("Unable to load pet component (ID %i) values from database! Using default values instead.", componentID); + return defaultEntry; + } + return itr->second; +} diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.h new file mode 100644 index 00000000..fa54e457 --- /dev/null +++ b/dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.h @@ -0,0 +1,45 @@ +#pragma once +#include "CDTable.h" +#include <cstdint> +#include <string> + +struct CDPetComponent { + uint32_t id; + UNUSED_COLUMN(float minTameUpdateTime;) + UNUSED_COLUMN(float maxTameUpdateTime;) + UNUSED_COLUMN(float percentTameChance;) + UNUSED_COLUMN(float tameability;) // Mispelled as "tamability" in CDClient + UNUSED_COLUMN(uint32_t elementType;) + float walkSpeed; + float runSpeed; + float sprintSpeed; + UNUSED_COLUMN(float idleTimeMin;) + UNUSED_COLUMN(float idleTimeMax;) + UNUSED_COLUMN(uint32_t petForm;) + float imaginationDrainRate; + UNUSED_COLUMN(std::string AudioMetaEventSet;) + UNUSED_COLUMN(std::string buffIDs;) +}; + +class CDPetComponentTable : public CDTable<CDPetComponentTable> { +public: + + /** + * Load values from the CD client database + */ + void LoadValuesFromDatabase(); + + /** + * Load the default values into memory instead of attempting to connect to the CD client database + */ + void LoadValuesFromDefaults(); + + /** + * Gets the pet component table corresponding to the pet component ID + * @returns A reference to the corresponding table, or the default if one could not be found + */ + CDPetComponent& GetByID(const uint32_t componentID); + +private: + std::map<uint32_t, CDPetComponent> m_Entries; +}; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDTable.h index 0a8f29ad..ab965127 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDTable.h @@ -23,6 +23,9 @@ // Enable this to skip some unused columns in some tables #define UNUSED_COLUMN(v) +// Use this to skip unused defaults for unused entries in some tables +#define UNUSED_ENTRY(v, x) + #pragma warning (disable : 4244) //Disable double to float conversion warnings #pragma warning (disable : 4715) //Disable "not all control paths return a value" diff --git a/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt b/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt index b2551efa..af401db2 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt +++ b/dDatabase/CDClientDatabase/CDClientTables/CMakeLists.txt @@ -23,6 +23,7 @@ set(DDATABASE_CDCLIENTDATABASE_CDCLIENTTABLES_SOURCES "CDActivitiesTable.cpp" "CDMovementAIComponentTable.cpp" "CDObjectSkillsTable.cpp" "CDObjectsTable.cpp" + "CDPetComponentTable.cpp" "CDPackageComponentTable.cpp" "CDPhysicsComponentTable.cpp" "CDPropertyEntranceComponentTable.cpp" diff --git a/dGame/dComponents/BaseCombatAIComponent.cpp b/dGame/dComponents/BaseCombatAIComponent.cpp index 4e969ced..9cc92c26 100644 --- a/dGame/dComponents/BaseCombatAIComponent.cpp +++ b/dGame/dComponents/BaseCombatAIComponent.cpp @@ -34,7 +34,6 @@ BaseCombatAIComponent::BaseCombatAIComponent(Entity* parent, const uint32_t id): m_MovementAI = nullptr; m_Disabled = false; m_SkillEntries = {}; - m_MovementAI = nullptr; m_SoftTimer = 5.0f; //Grab the aggro information from BaseCombatAI: diff --git a/dGame/dComponents/PetComponent.cpp b/dGame/dComponents/PetComponent.cpp index 902edffe..bddfd009 100644 --- a/dGame/dComponents/PetComponent.cpp +++ b/dGame/dComponents/PetComponent.cpp @@ -69,7 +69,8 @@ std::map<LOT, int32_t> PetComponent::petFlags = { { 13067, 838 }, // Skeleton dragon }; -PetComponent::PetComponent(Entity* parent, uint32_t componentId): Component(parent) { +PetComponent::PetComponent(Entity* parentEntity, uint32_t componentId) : Component{ parentEntity } { + m_PetInfo = CDClientManager::Instance().GetTable<CDPetComponentTable>()->GetByID(componentId); // TODO: Make reference when safe m_ComponentId = componentId; m_Interaction = LWOOBJID_EMPTY; @@ -81,31 +82,17 @@ PetComponent::PetComponent(Entity* parent, uint32_t componentId): Component(pare m_TimerAway = 0; m_DatabaseId = LWOOBJID_EMPTY; m_Status = 67108866; // Tamable - m_Ability = PetAbilityType::Invalid; + m_Ability = ePetAbilityType::Invalid; m_StartPosition = NiPoint3::ZERO; m_MovementAI = nullptr; m_TresureTime = 0; m_Preconditions = nullptr; - std::string checkPreconditions = GeneralUtils::UTF16ToWTF8(parent->GetVar<std::u16string>(u"CheckPrecondition")); + std::string checkPreconditions = GeneralUtils::UTF16ToWTF8(parentEntity->GetVar<std::u16string>(u"CheckPrecondition")); if (!checkPreconditions.empty()) { SetPreconditions(checkPreconditions); } - // Get the imagination drain rate from the CDClient - auto query = CDClientDatabase::CreatePreppedStmt("SELECT imaginationDrainRate FROM PetComponent WHERE id = ?;"); - - query.bind(1, static_cast<int>(componentId)); - - auto result = query.execQuery(); - - // Should a result not exist for this pet default to 60 seconds. - if (!result.eof() && !result.fieldIsNull(0)) { - imaginationDrainRate = result.getFloatField(0, 60.0f); - } else { - imaginationDrainRate = 60.0f; - } - result.finalize(); } void PetComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { @@ -114,7 +101,7 @@ void PetComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpd outBitStream->Write1(); // Always serialize as dirty for now outBitStream->Write<uint32_t>(m_Status); - outBitStream->Write(tamed ? m_Ability : PetAbilityType::Invalid); // Something with the overhead icon? + outBitStream->Write(tamed ? m_Ability : ePetAbilityType::Invalid); // Something with the overhead icon? const bool interacting = m_Interaction != LWOOBJID_EMPTY; @@ -835,11 +822,11 @@ void PetComponent::Wander() { return; } - m_MovementAI->SetMaxSpeed(info.wanderSpeed); + m_MovementAI->SetMaxSpeed(m_PetInfo.sprintSpeed); m_MovementAI->SetDestination(destination); - m_Timer += (m_MovementAI->GetParent()->GetPosition().x - destination.x) / info.wanderSpeed; + m_Timer += (m_MovementAI->GetParent()->GetPosition().x - destination.x) / m_PetInfo.sprintSpeed; } void PetComponent::Activate(Item* item, bool registerPet, bool fromTaming) { @@ -905,8 +892,6 @@ void PetComponent::Activate(Item* item, bool registerPet, bool fromTaming) { GameMessages::SendRegisterPetDBID(m_Owner, m_DatabaseId, owner->GetSystemAddress()); } - - GameMessages::SendShowPetActionButton(m_Owner, 3, true, owner->GetSystemAddress()); } void PetComponent::AddDrainImaginationTimer(Item* item, bool fromTaming) { @@ -928,22 +913,22 @@ void PetComponent::AddDrainImaginationTimer(Item* item, bool fromTaming) { if (!fromTaming) playerDestroyableComponent->Imagine(-1); // Set this to a variable so when this is called back from the player the timer doesn't fire off. - m_Parent->AddCallbackTimer(imaginationDrainRate, [playerDestroyableComponent, this, item]() { + m_Parent->AddCallbackTimer(m_PetInfo.imaginationDrainRate, [playerDestroyableComponent, this, item]() { if (!playerDestroyableComponent) { LOG("No petComponent and/or no playerDestroyableComponent"); return; } - // If we are out of imagination despawn the pet. - if (playerDestroyableComponent->GetImagination() == 0) { - this->Deactivate(); - auto playerEntity = playerDestroyableComponent->GetParent(); - if (!playerEntity) return; + // If we are out of imagination despawn the pet. + if (playerDestroyableComponent->GetImagination() == 0) { + this->Deactivate(); + auto playerEntity = playerDestroyableComponent->GetParent(); + if (!playerEntity) return; - GameMessages::SendUseItemRequirementsResponse(playerEntity->GetObjectID(), playerEntity->GetSystemAddress(), eUseItemResponse::NoImaginationForPet); - } + GameMessages::SendUseItemRequirementsResponse(playerEntity->GetObjectID(), playerEntity->GetSystemAddress(), eUseItemResponse::NoImaginationForPet); + } - this->AddDrainImaginationTimer(item); + this->AddDrainImaginationTimer(item); }); } @@ -966,7 +951,7 @@ void PetComponent::Deactivate() { GameMessages::SendRegisterPetDBID(m_Owner, LWOOBJID_EMPTY, owner->GetSystemAddress()); - GameMessages::SendShowPetActionButton(m_Owner, 0, false, owner->GetSystemAddress()); + GameMessages::SendShowPetActionButton(m_Owner, ePetAbilityType::Invalid, false, owner->GetSystemAddress()); } void PetComponent::Release() { @@ -985,12 +970,9 @@ void PetComponent::Release() { item->SetCount(0, false, false); } -void PetComponent::Command(NiPoint3 position, LWOOBJID source, int32_t commandType, int32_t typeId, bool overrideObey) { +void PetComponent::Command(const NiPoint3& position, const LWOOBJID source, const int32_t commandType, const int32_t typeId, const bool overrideObey) { auto* owner = GetOwner(); - - if (owner == nullptr) { - return; - } + if (!owner) return; if (commandType == 1) { // Emotes @@ -1030,7 +1012,7 @@ uint32_t PetComponent::GetStatus() const { return m_Status; } -PetAbilityType PetComponent::GetAbility() const { +ePetAbilityType PetComponent::GetAbility() const { return m_Ability; } @@ -1042,7 +1024,7 @@ void PetComponent::SetStatus(uint32_t value) { m_Status = value; } -void PetComponent::SetAbility(PetAbilityType value) { +void PetComponent::SetAbility(ePetAbilityType value) { m_Ability = value; } @@ -1098,7 +1080,7 @@ void PetComponent::SetPetNameForModeration(const std::string& petName) { } //Save to db: - Database::Get()->SetPetNameModerationStatus(m_DatabaseId, IPetNames::Info{petName, approved}); + Database::Get()->SetPetNameModerationStatus(m_DatabaseId, IPetNames::Info{ petName, approved }); } void PetComponent::LoadPetNameFromModeration() { diff --git a/dGame/dComponents/PetComponent.h b/dGame/dComponents/PetComponent.h index ca4b5a74..24ee157b 100644 --- a/dGame/dComponents/PetComponent.h +++ b/dGame/dComponents/PetComponent.h @@ -1,18 +1,13 @@ -#pragma once +#ifndef PETCOMPONENT_H +#define PETCOMPONENT_H #include "Entity.h" #include "MovementAIComponent.h" #include "Component.h" #include "Preconditions.h" +#include "ePetAbilityType.h" #include "eReplicaComponentType.h" - -enum class PetAbilityType : uint32_t -{ - Invalid, - GoToObject, - JumpOnObject, - DigAtPosition -}; +#include "CDPetComponentTable.h" /** * Represents an entity that is a pet. This pet can be tamed and consequently follows the tamer around, allowing it @@ -103,7 +98,7 @@ public: * @param typeId extra information about the command, e.g. the emote to play * @param overrideObey unused */ - void Command(NiPoint3 position, LWOOBJID source, int32_t commandType, int32_t typeId, bool overrideObey); + void Command(const NiPoint3& position, const LWOOBJID source, const int32_t commandType, const int32_t typeId, const bool overrideObey); /** * Returns the ID of the owner of this pet (if any) @@ -158,13 +153,13 @@ public: * Returns an ability the pet may perform, currently unused * @return an ability the pet may perform */ - PetAbilityType GetAbility() const; + ePetAbilityType GetAbility() const; /** * Sets the ability of the pet, currently unused * @param value the ability to set */ - void SetAbility(PetAbilityType value); + void SetAbility(ePetAbilityType value); /** * Sets preconditions for the pet that need to be met before it can be tamed @@ -323,7 +318,7 @@ private: /** * A currently active ability, mostly unused */ - PetAbilityType m_Ability; + ePetAbilityType m_Ability; /** * The time an entity has left to complete the minigame @@ -357,7 +352,10 @@ private: PreconditionExpression* m_Preconditions; /** - * The rate at which imagination is drained from the user for having the pet out. + * Pet information loaded from the CDClientDatabase + * TODO: Switch to a reference when safe to do so */ - float imaginationDrainRate; + CDPetComponent m_PetInfo; }; + +#endif // !PETCOMPONENT_H diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 4041fded..03468884 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -94,6 +94,7 @@ #include "eReplicaComponentType.h" #include "eClientMessageType.h" #include "eGameMessageType.h" +#include "ePetAbilityType.h" #include "ActivityManager.h" #include "CDComponentsRegistryTable.h" @@ -3516,14 +3517,14 @@ void GameMessages::SendClientExitTamingMinigame(LWOOBJID objectId, bool bVolunta SEND_PACKET; } -void GameMessages::SendShowPetActionButton(LWOOBJID objectId, int32_t buttonLabel, bool bShow, const SystemAddress& sysAddr) { +void GameMessages::SendShowPetActionButton(const LWOOBJID objectId, const ePetAbilityType petAbility, const bool bShow, const SystemAddress& sysAddr) { CBITSTREAM; CMSGHEADER; bitStream.Write(objectId); bitStream.Write(eGameMessageType::SHOW_PET_ACTION_BUTTON); - bitStream.Write(buttonLabel); + bitStream.Write(petAbility); bitStream.Write(bShow); if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) SEND_PACKET_BROADCAST; diff --git a/dGame/dGameMessages/GameMessages.h b/dGame/dGameMessages/GameMessages.h index 6d29a394..9c8d183e 100644 --- a/dGame/dGameMessages/GameMessages.h +++ b/dGame/dGameMessages/GameMessages.h @@ -32,6 +32,7 @@ enum class eObjectWorldState : uint32_t; enum class eTerminateType : uint32_t; enum class eControlScheme : uint32_t; enum class eStateChangeType : uint32_t; +enum class ePetAbilityType : uint32_t; enum class ePetTamingNotifyType : uint32_t; enum class eUseItemResponse : uint32_t; enum class eQuickBuildFailReason : uint32_t; @@ -386,7 +387,7 @@ namespace GameMessages { void SendClientExitTamingMinigame(LWOOBJID objectId, bool bVoluntaryExit, const SystemAddress& sysAddr); - void SendShowPetActionButton(LWOOBJID objectId, int32_t buttonLabel, bool bShow, const SystemAddress& sysAddr); + void SendShowPetActionButton(const LWOOBJID objectId, const ePetAbilityType petAbility, const bool bShow, const SystemAddress& sysAddr); void SendPlayEmote(LWOOBJID objectId, int32_t emoteID, LWOOBJID target, const SystemAddress& sysAddr); diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index 046908ff..fc5baf85 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -180,7 +180,7 @@ int main(int argc, char** argv) { return EXIT_FAILURE; } - CDClientManager::Instance(); + CDClientManager::Instance().LoadValuesFromDatabase(); Diagnostics::SetProduceMemoryDump(Game::config->GetValue("generate_dump") == "1"); diff --git a/tests/dGameTests/GameDependencies.h b/tests/dGameTests/GameDependencies.h index 096dcb13..8aefaa3d 100644 --- a/tests/dGameTests/GameDependencies.h +++ b/tests/dGameTests/GameDependencies.h @@ -4,6 +4,7 @@ #include "Game.h" #include "Logger.h" #include "dServer.h" +#include "CDClientManager.h" #include "EntityInfo.h" #include "EntityManager.h" #include "dConfig.h" @@ -33,6 +34,9 @@ protected: Game::server = new dServerMock(); Game::config = new dConfig("worldconfig.ini"); Game::entityManager = new EntityManager(); + + // Create a CDClientManager instance and load from defaults + CDClientManager::Instance().LoadValuesFromDefaults(); } void TearDownDependencies() { diff --git a/tests/dGameTests/dComponentsTests/CMakeLists.txt b/tests/dGameTests/dComponentsTests/CMakeLists.txt index e38f7a53..374095af 100644 --- a/tests/dGameTests/dComponentsTests/CMakeLists.txt +++ b/tests/dGameTests/dComponentsTests/CMakeLists.txt @@ -1,5 +1,6 @@ set(DCOMPONENTS_TESTS "DestroyableComponentTests.cpp" + "PetComponentTests.cpp" "SimplePhysicsComponentTests.cpp" ) diff --git a/tests/dGameTests/dComponentsTests/PetComponentTests.cpp b/tests/dGameTests/dComponentsTests/PetComponentTests.cpp new file mode 100644 index 00000000..75ce4ec8 --- /dev/null +++ b/tests/dGameTests/dComponentsTests/PetComponentTests.cpp @@ -0,0 +1,43 @@ +#include "GameDependencies.h" +#include <gtest/gtest.h> + +#include "BitStream.h" +#include "PetComponent.h" +#include "Entity.h" +#include "eReplicaComponentType.h" +#include "ePetAbilityType.h" +#include "eStateChangeType.h" + +class PetTest : public GameDependenciesTest { +protected: + Entity* baseEntity; + PetComponent* petComponent; + CBITSTREAM + + void SetUp() override { + SetUpDependencies(); + + // Set up entity and pet component + baseEntity = new Entity(15, GameDependenciesTest::info); + petComponent = baseEntity->AddComponent<PetComponent>(1); + + // Initialize some values to be not default + + } + + void TearDown() override { + delete baseEntity; + TearDownDependencies(); + } +}; + +TEST_F(PetTest, PlacementNewAddComponentTest) { + // Test adding component + ASSERT_NE(petComponent, nullptr); + baseEntity->AddComponent<PetComponent>(1); + ASSERT_NE(baseEntity->GetComponent<PetComponent>(), nullptr); + + // Test getting initial status + ASSERT_EQ(petComponent->GetParent()->GetObjectID(), 15); + ASSERT_EQ(petComponent->GetAbility(), ePetAbilityType::Invalid); +} From e0ddbce8e77d86da1e846509cc4bbc37f8f11af4 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Mon, 8 Jan 2024 23:54:14 -0800 Subject: [PATCH 097/106] chore: remove non cstdint integer types in client ORM (#1405) --- .../CDClientTables/CDActivitiesTable.cpp | 2 +- .../CDClientTables/CDActivitiesTable.h | 26 +++---- .../CDClientTables/CDActivityRewardsTable.cpp | 2 +- .../CDClientTables/CDActivityRewardsTable.h | 12 ++-- .../CDClientTables/CDAnimationsTable.h | 6 +- .../CDBehaviorTemplateTable.cpp | 2 +- .../CDClientTables/CDBehaviorTemplateTable.h | 6 +- .../CDClientTables/CDBrickIDTableTable.cpp | 2 +- .../CDClientTables/CDBrickIDTableTable.h | 4 +- .../CDComponentsRegistryTable.h | 4 +- .../CDClientTables/CDCurrencyTableTable.cpp | 2 +- .../CDClientTables/CDCurrencyTableTable.h | 10 +-- .../CDDestructibleComponentTable.cpp | 2 +- .../CDDestructibleComponentTable.h | 20 +++--- .../CDClientTables/CDEmoteTable.cpp | 2 +- .../CDClientTables/CDEmoteTable.h | 8 +-- .../CDClientTables/CDFeatureGatingTable.cpp | 2 +- .../CDInventoryComponentTable.cpp | 2 +- .../CDInventoryComponentTable.h | 6 +- .../CDClientTables/CDItemComponentTable.cpp | 4 +- .../CDClientTables/CDItemComponentTable.h | 52 +++++++------- .../CDClientTables/CDItemSetSkillsTable.cpp | 4 +- .../CDClientTables/CDItemSetSkillsTable.h | 8 +-- .../CDClientTables/CDItemSetsTable.cpp | 2 +- .../CDClientTables/CDItemSetsTable.h | 22 +++--- .../CDLevelProgressionLookupTable.cpp | 2 +- .../CDLevelProgressionLookupTable.h | 4 +- .../CDClientTables/CDLootMatrixTable.cpp | 2 +- .../CDClientTables/CDLootMatrixTable.h | 10 +-- .../CDClientTables/CDLootTableTable.cpp | 2 +- .../CDClientTables/CDLootTableTable.h | 6 +- .../CDClientTables/CDMissionEmailTable.cpp | 2 +- .../CDClientTables/CDMissionEmailTable.h | 12 ++-- .../CDMissionNPCComponentTable.cpp | 2 +- .../CDMissionNPCComponentTable.h | 4 +- .../CDClientTables/CDMissionTasksTable.cpp | 2 +- .../CDClientTables/CDMissionTasksTable.h | 16 ++--- .../CDClientTables/CDMissionsTable.cpp | 2 +- .../CDClientTables/CDMissionsTable.h | 72 +++++++++---------- .../CDMovementAIComponentTable.cpp | 2 +- .../CDMovementAIComponentTable.h | 2 +- .../CDClientTables/CDObjectSkillsTable.cpp | 2 +- .../CDClientTables/CDObjectSkillsTable.h | 8 +-- .../CDClientTables/CDObjectsTable.cpp | 4 +- .../CDClientTables/CDObjectsTable.h | 18 ++--- .../CDPackageComponentTable.cpp | 2 +- .../CDClientTables/CDPackageComponentTable.h | 6 +- .../CDPhysicsComponentTable.cpp | 2 +- .../CDClientTables/CDPhysicsComponentTable.h | 10 +-- .../CDProximityMonitorComponentTable.cpp | 2 +- .../CDProximityMonitorComponentTable.h | 2 +- .../CDClientTables/CDRarityTableTable.cpp | 2 +- .../CDClientTables/CDRarityTableTable.h | 2 +- .../CDRebuildComponentTable.cpp | 2 +- .../CDClientTables/CDRebuildComponentTable.h | 8 +-- .../CDClientTables/CDRewardCodesTable.cpp | 2 +- .../CDClientTables/CDScriptComponentTable.cpp | 6 +- .../CDClientTables/CDScriptComponentTable.h | 6 +- .../CDClientTables/CDSkillBehaviorTable.cpp | 6 +- .../CDClientTables/CDSkillBehaviorTable.h | 30 ++++---- .../CDClientTables/CDVendorComponentTable.cpp | 2 +- .../CDClientTables/CDVendorComponentTable.h | 4 +- .../CDClientTables/CDZoneTableTable.cpp | 4 +- .../CDClientTables/CDZoneTableTable.h | 20 +++--- 64 files changed, 252 insertions(+), 252 deletions(-) diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.cpp index c967f724..998c4095 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.cpp @@ -2,7 +2,7 @@ void CDActivitiesTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM Activities"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.h index 2e39d595..75fc602e 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDActivitiesTable.h @@ -4,22 +4,22 @@ #include "CDTable.h" struct CDActivities { - unsigned int ActivityID; - unsigned int locStatus; - unsigned int instanceMapID; - unsigned int minTeams; - unsigned int maxTeams; - unsigned int minTeamSize; - unsigned int maxTeamSize; - unsigned int waitTime; - unsigned int startDelay; + uint32_t ActivityID; + uint32_t locStatus; + uint32_t instanceMapID; + uint32_t minTeams; + uint32_t maxTeams; + uint32_t minTeamSize; + uint32_t maxTeamSize; + uint32_t waitTime; + uint32_t startDelay; bool requiresUniqueData; - unsigned int leaderboardType; + uint32_t leaderboardType; bool localize; - int optionalCostLOT; - int optionalCostCount; + int32_t optionalCostLOT; + int32_t optionalCostCount; bool showUIRewards; - unsigned int CommunityActivityFlagID; + uint32_t CommunityActivityFlagID; std::string gate_version; bool noTeamLootOnDeath; float optionalPercentage; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.cpp index a2434d19..7795a177 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.cpp @@ -3,7 +3,7 @@ void CDActivityRewardsTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ActivityRewards"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.h index a177a3c0..40ab17e7 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDActivityRewardsTable.h @@ -4,12 +4,12 @@ #include "CDTable.h" struct CDActivityRewards { - unsigned int objectTemplate; //!< The object template (?) - unsigned int ActivityRewardIndex; //!< The activity reward index - int activityRating; //!< The activity rating - unsigned int LootMatrixIndex; //!< The loot matrix index - unsigned int CurrencyIndex; //!< The currency index - unsigned int ChallengeRating; //!< The challenge rating + uint32_t objectTemplate; //!< The object template (?) + uint32_t ActivityRewardIndex; //!< The activity reward index + int32_t activityRating; //!< The activity rating + uint32_t LootMatrixIndex; //!< The loot matrix index + uint32_t CurrencyIndex; //!< The currency index + uint32_t ChallengeRating; //!< The challenge rating std::string description; //!< The description }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.h index 494d5cde..1b6280ca 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDAnimationsTable.h @@ -4,13 +4,13 @@ #include <list> struct CDAnimation { - // unsigned int animationGroupID; + // uint32_t animationGroupID; // std::string animation_type; // The above two are a pair to represent a primary key in the map. std::string animation_name; //!< The animation name float chance_to_play; //!< The chance to play the animation - UNUSED_COLUMN(unsigned int min_loops;) //!< The minimum number of loops - UNUSED_COLUMN(unsigned int max_loops;) //!< The maximum number of loops + UNUSED_COLUMN(uint32_t min_loops;) //!< The minimum number of loops + UNUSED_COLUMN(uint32_t max_loops;) //!< The maximum number of loops float animation_length; //!< The animation length UNUSED_COLUMN(bool hideEquip;) //!< Whether or not to hide the equip UNUSED_COLUMN(bool ignoreUpperBody;) //!< Whether or not to ignore the upper body diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.cpp index c343ef85..a67398a9 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.cpp @@ -3,7 +3,7 @@ void CDBehaviorTemplateTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM BehaviorTemplate"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.h index 49ce11f2..cbc494a2 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDBehaviorTemplateTable.h @@ -6,9 +6,9 @@ #include <unordered_set> struct CDBehaviorTemplate { - unsigned int behaviorID; //!< The Behavior ID - unsigned int templateID; //!< The Template ID (LOT) - unsigned int effectID; //!< The Effect ID attached + uint32_t behaviorID; //!< The Behavior ID + uint32_t templateID; //!< The Template ID (LOT) + uint32_t effectID; //!< The Effect ID attached std::unordered_set<std::string>::iterator effectHandle; //!< The effect handle }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.cpp index 9be75f0b..abc917b5 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.cpp @@ -3,7 +3,7 @@ void CDBrickIDTableTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM BrickIDTable"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.h index 68c0b1b6..1a9f9a94 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDBrickIDTableTable.h @@ -10,8 +10,8 @@ //! BrickIDTable Entry Struct struct CDBrickIDTable { - unsigned int NDObjectID; - unsigned int LEGOBrickID; + uint32_t NDObjectID; + uint32_t LEGOBrickID; }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.h index fce4f6aa..45da7614 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDComponentsRegistryTable.h @@ -7,9 +7,9 @@ enum class eReplicaComponentType : uint32_t; struct CDComponentsRegistry { - unsigned int id; //!< The LOT is used as the ID + uint32_t id; //!< The LOT is used as the ID eReplicaComponentType component_type; //!< See ComponentTypes enum for values - unsigned int component_id; //!< The ID used within the component's table (0 may either mean it's non-networked, or that the ID is actually 0 + uint32_t component_id; //!< The ID used within the component's table (0 may either mean it's non-networked, or that the ID is actually 0 }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.cpp index 58c517f2..deb2b168 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.cpp @@ -4,7 +4,7 @@ void CDCurrencyTableTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM CurrencyTable"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.h index fd70a968..9c68c277 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDCurrencyTableTable.h @@ -10,11 +10,11 @@ //! CurrencyTable Struct struct CDCurrencyTable { - unsigned int currencyIndex; //!< The Currency Index - unsigned int npcminlevel; //!< The minimum level of the npc - unsigned int minvalue; //!< The minimum currency - unsigned int maxvalue; //!< The maximum currency - unsigned int id; //!< The ID of the currency index + uint32_t currencyIndex; //!< The Currency Index + uint32_t npcminlevel; //!< The minimum level of the npc + uint32_t minvalue; //!< The minimum currency + uint32_t maxvalue; //!< The maximum currency + uint32_t id; //!< The ID of the currency index }; //! CurrencyTable table diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.cpp index f92aec94..4939a50e 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.cpp @@ -2,7 +2,7 @@ void CDDestructibleComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM DestructibleComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.h index fb6ee4cd..0871d9ea 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDDestructibleComponentTable.h @@ -4,20 +4,20 @@ #include "CDTable.h" struct CDDestructibleComponent { - unsigned int id; //!< The component ID from the ComponentsRegistry Table - int faction; //!< The Faction ID of the object + uint32_t id; //!< The component ID from the ComponentsRegistry Table + int32_t faction; //!< The Faction ID of the object std::string factionList; //!< A list of the faction IDs - int life; //!< The amount of life of the object - unsigned int imagination; //!< The amount of imagination of the object - int LootMatrixIndex; //!< The Loot Matrix Index - int CurrencyIndex; //!< The Currency Index - unsigned int level; //!< ??? + int32_t life; //!< The amount of life of the object + uint32_t imagination; //!< The amount of imagination of the object + int32_t LootMatrixIndex; //!< The Loot Matrix Index + int32_t CurrencyIndex; //!< The Currency Index + uint32_t level; //!< ??? float armor; //!< The amount of armor of the object - unsigned int death_behavior; //!< The behavior ID of the death behavior + uint32_t death_behavior; //!< The behavior ID of the death behavior bool isnpc; //!< Whether or not the object is an NPC - unsigned int attack_priority; //!< ??? + uint32_t attack_priority; //!< ??? bool isSmashable; //!< Whether or not the object is smashable - int difficultyLevel; //!< ??? + int32_t difficultyLevel; //!< ??? }; class CDDestructibleComponentTable : public CDTable<CDDestructibleComponentTable> { diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.cpp index 77aa226c..a7f39705 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.cpp @@ -20,7 +20,7 @@ void CDEmoteTableTable::LoadValuesFromDatabase() { tableData.finalize(); } -CDEmoteTable* CDEmoteTableTable::GetEmote(int id) { +CDEmoteTable* CDEmoteTableTable::GetEmote(int32_t id) { auto itr = entries.find(id); return itr != entries.end() ? &itr->second : nullptr; } diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.h index a49d1c45..360cfc38 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDEmoteTable.h @@ -16,11 +16,11 @@ struct CDEmoteTable { gateVersion = ""; } - int ID; + int32_t ID; std::string animationName; std::string iconFilename; - int locState; - int channel; + int32_t locState; + int32_t channel; bool locked; bool localize; std::string gateVersion; @@ -33,5 +33,5 @@ private: public: void LoadValuesFromDatabase(); // Returns an emote by ID - CDEmoteTable* GetEmote(int id); + CDEmoteTable* GetEmote(int32_t id); }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp index 9b133155..1a146bf1 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDFeatureGatingTable.cpp @@ -3,7 +3,7 @@ void CDFeatureGatingTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM FeatureGating"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.cpp index ffc8fee6..1a21a899 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.cpp @@ -3,7 +3,7 @@ void CDInventoryComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM InventoryComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.h index 26d47ffe..1f5a525d 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDInventoryComponentTable.h @@ -4,9 +4,9 @@ #include "CDTable.h" struct CDInventoryComponent { - unsigned int id; //!< The component ID for this object - unsigned int itemid; //!< The LOT of the object - unsigned int count; //!< The count of the items the object has + uint32_t id; //!< The component ID for this object + uint32_t itemid; //!< The LOT of the object + uint32_t count; //!< The count of the items the object has bool equip; //!< Whether or not to equip the item }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.cpp index 5d6722f9..9f7609e9 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.cpp @@ -5,7 +5,7 @@ CDItemComponent CDItemComponentTable::Default = {}; void CDItemComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ItemComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); @@ -69,7 +69,7 @@ void CDItemComponentTable::LoadValuesFromDatabase() { tableData.finalize(); } -const CDItemComponent& CDItemComponentTable::GetItemComponentByID(unsigned int skillID) { +const CDItemComponent& CDItemComponentTable::GetItemComponentByID(uint32_t skillID) { const auto& it = this->entries.find(skillID); if (it != this->entries.end()) { return it->second; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.h index 685e5acd..014c9801 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDItemComponentTable.h @@ -5,60 +5,60 @@ #include "dCommonVars.h" struct CDItemComponent { - unsigned int id; //!< The Component ID + uint32_t id; //!< The Component ID std::string equipLocation; //!< The equip location - unsigned int baseValue; //!< The monetary base value of the item + uint32_t baseValue; //!< The monetary base value of the item bool isKitPiece; //!< Whether or not the item belongs to a kit - unsigned int rarity; //!< The rarity of the item - unsigned int itemType; //!< The item type + uint32_t rarity; //!< The rarity of the item + uint32_t itemType; //!< The item type int64_t itemInfo; //!< The item info bool inLootTable; //!< Whether or not the item is in a loot table bool inVendor; //!< Whether or not the item is in a vendor inventory bool isUnique; //!< ??? bool isBOP; //!< ??? bool isBOE; //!< ??? - unsigned int reqFlagID; //!< User must have completed this flag to get the item - unsigned int reqSpecialtyID; //!< ??? - unsigned int reqSpecRank; //!< ??? - unsigned int reqAchievementID; //!< The required achievement must be completed - unsigned int stackSize; //!< The stack size of the item - unsigned int color1; //!< Something to do with item color... - unsigned int decal; //!< The decal of the item - unsigned int offsetGroupID; //!< Something to do with group IDs - unsigned int buildTypes; //!< Something to do with building + uint32_t reqFlagID; //!< User must have completed this flag to get the item + uint32_t reqSpecialtyID; //!< ??? + uint32_t reqSpecRank; //!< ??? + uint32_t reqAchievementID; //!< The required achievement must be completed + uint32_t stackSize; //!< The stack size of the item + uint32_t color1; //!< Something to do with item color... + uint32_t decal; //!< The decal of the item + uint32_t offsetGroupID; //!< Something to do with group IDs + uint32_t buildTypes; //!< Something to do with building std::string reqPrecondition; //!< The required precondition - unsigned int animationFlag; //!< The Animation Flag - unsigned int equipEffects; //!< The effect played when the item is equipped + uint32_t animationFlag; //!< The Animation Flag + uint32_t equipEffects; //!< The effect played when the item is equipped bool readyForQA; //!< ??? - unsigned int itemRating; //!< ??? + uint32_t itemRating; //!< ??? bool isTwoHanded; //!< Whether or not the item is double handed - unsigned int minNumRequired; //!< Maybe the minimum number required for a mission, or to own this object? - unsigned int delResIndex; //!< ??? - unsigned int currencyLOT; //!< ??? - unsigned int altCurrencyCost; //!< ??? + uint32_t minNumRequired; //!< Maybe the minimum number required for a mission, or to own this object? + uint32_t delResIndex; //!< ??? + uint32_t currencyLOT; //!< ??? + uint32_t altCurrencyCost; //!< ??? std::string subItems; //!< A comma seperate string of sub items (maybe for multi-itemed things like faction test gear set) UNUSED(std::string audioEventUse); //!< ??? bool noEquipAnimation; //!< Whether or not there is an equip animation - unsigned int commendationLOT; //!< The commendation LOT - unsigned int commendationCost; //!< The commendation cost + uint32_t commendationLOT; //!< The commendation LOT + uint32_t commendationCost; //!< The commendation cost UNUSED(std::string audioEquipMetaEventSet); //!< ??? std::string currencyCosts; //!< Used for crafting UNUSED(std::string ingredientInfo); //!< Unused - unsigned int locStatus; //!< ??? - unsigned int forgeType; //!< Forge Type + uint32_t locStatus; //!< ??? + uint32_t forgeType; //!< Forge Type float SellMultiplier; //!< Something to do with early vendors perhaps (but replaced) }; class CDItemComponentTable : public CDTable<CDItemComponentTable> { private: - std::map<unsigned int, CDItemComponent> entries; + std::map<uint32_t, CDItemComponent> entries; public: void LoadValuesFromDatabase(); static std::map<LOT, uint32_t> ParseCraftingCurrencies(const CDItemComponent& itemComponent); // Gets an entry by ID - const CDItemComponent& GetItemComponentByID(unsigned int skillID); + const CDItemComponent& GetItemComponentByID(uint32_t skillID); static CDItemComponent Default; }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.cpp index 6fb1689e..0376bad4 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.cpp @@ -3,7 +3,7 @@ void CDItemSetSkillsTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ItemSetSkills"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); @@ -44,7 +44,7 @@ const std::vector<CDItemSetSkills>& CDItemSetSkillsTable::GetEntries() const { return this->entries; } -std::vector<CDItemSetSkills> CDItemSetSkillsTable::GetBySkillID(unsigned int SkillSetID) { +std::vector<CDItemSetSkills> CDItemSetSkillsTable::GetBySkillID(uint32_t SkillSetID) { std::vector<CDItemSetSkills> toReturn; for (CDItemSetSkills entry : this->entries) { diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.h index 07321a7f..ee5fda05 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetSkillsTable.h @@ -4,9 +4,9 @@ #include "CDTable.h" struct CDItemSetSkills { - unsigned int SkillSetID; //!< The skill set ID - unsigned int SkillID; //!< The skill ID - unsigned int SkillCastType; //!< The skill cast type + uint32_t SkillSetID; //!< The skill set ID + uint32_t SkillID; //!< The skill ID + uint32_t SkillCastType; //!< The skill cast type }; class CDItemSetSkillsTable : public CDTable<CDItemSetSkillsTable> { @@ -20,5 +20,5 @@ public: const std::vector<CDItemSetSkills>& GetEntries() const; - std::vector<CDItemSetSkills> GetBySkillID(unsigned int SkillSetID); + std::vector<CDItemSetSkills> GetBySkillID(uint32_t SkillSetID); }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.cpp index de70e180..f3859ae2 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.cpp @@ -3,7 +3,7 @@ void CDItemSetsTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ItemSets"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.h index a3a738b1..77cc0c35 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDItemSetsTable.h @@ -4,20 +4,20 @@ #include "CDTable.h" struct CDItemSets { - unsigned int setID; //!< The item set ID - unsigned int locStatus; //!< The loc status + uint32_t setID; //!< The item set ID + uint32_t locStatus; //!< The loc status std::string itemIDs; //!< THe item IDs - unsigned int kitType; //!< The item kit type - unsigned int kitRank; //!< The item kit rank - unsigned int kitImage; //!< The item kit image - unsigned int skillSetWith2; //!< The skill set with 2 - unsigned int skillSetWith3; //!< The skill set with 3 - unsigned int skillSetWith4; //!< The skill set with 4 - unsigned int skillSetWith5; //!< The skill set with 5 - unsigned int skillSetWith6; //!< The skill set with 6 + uint32_t kitType; //!< The item kit type + uint32_t kitRank; //!< The item kit rank + uint32_t kitImage; //!< The item kit image + uint32_t skillSetWith2; //!< The skill set with 2 + uint32_t skillSetWith3; //!< The skill set with 3 + uint32_t skillSetWith4; //!< The skill set with 4 + uint32_t skillSetWith5; //!< The skill set with 5 + uint32_t skillSetWith6; //!< The skill set with 6 bool localize; //!< Whether or localize std::string gate_version; //!< The gate version - unsigned int kitID; //!< The kit ID + uint32_t kitID; //!< The kit ID float priority; //!< The priority }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.cpp index d0a6ca93..930f3a85 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.cpp @@ -3,7 +3,7 @@ void CDLevelProgressionLookupTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM LevelProgressionLookup"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.h index 6b68bd0d..fa1bb4cc 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDLevelProgressionLookupTable.h @@ -4,8 +4,8 @@ #include "CDTable.h" struct CDLevelProgressionLookup { - unsigned int id; //!< The Level ID - unsigned int requiredUScore; //!< The required LEGO Score + uint32_t id; //!< The Level ID + uint32_t requiredUScore; //!< The required LEGO Score std::string BehaviorEffect; //!< The behavior effect attached to this }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.cpp index 4755c116..36bebb69 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.cpp @@ -16,7 +16,7 @@ CDLootMatrix CDLootMatrixTable::ReadRow(CppSQLite3Query& tableData) const { void CDLootMatrixTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM LootMatrix"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.h index 551583f6..c7157e07 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDLootMatrixTable.h @@ -4,12 +4,12 @@ #include "CDTable.h" struct CDLootMatrix { - unsigned int LootTableIndex; //!< The Loot Table Index - unsigned int RarityTableIndex; //!< The Rarity Table Index + uint32_t LootTableIndex; //!< The Loot Table Index + uint32_t RarityTableIndex; //!< The Rarity Table Index float percent; //!< The percent that this matrix is used? - unsigned int minToDrop; //!< The minimum amount of loot from this matrix to drop - unsigned int maxToDrop; //!< The maximum amount of loot from this matrix to drop - unsigned int flagID; //!< ??? + uint32_t minToDrop; //!< The minimum amount of loot from this matrix to drop + uint32_t maxToDrop; //!< The maximum amount of loot from this matrix to drop + uint32_t flagID; //!< ??? UNUSED(std::string gate_version); //!< The Gate Version }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.cpp index 9ee875df..a90f8108 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.cpp @@ -40,7 +40,7 @@ CDLootTable CDLootTableTable::ReadRow(CppSQLite3Query& tableData) const { void CDLootTableTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM LootTable"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.h index b8ac2066..e432d621 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDLootTableTable.h @@ -4,10 +4,10 @@ #include "CDTable.h" struct CDLootTable { - unsigned int itemid; //!< The LOT of the item - unsigned int LootTableIndex; //!< The Loot Table Index + uint32_t itemid; //!< The LOT of the item + uint32_t LootTableIndex; //!< The Loot Table Index bool MissionDrop; //!< Whether or not this loot table is a mission drop - unsigned int sortPriority; //!< The sorting priority + uint32_t sortPriority; //!< The sorting priority }; typedef uint32_t LootTableIndex; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.cpp index 0babef13..c7e884c2 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.cpp @@ -3,7 +3,7 @@ void CDMissionEmailTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM MissionEmail"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.h index 954da78e..06c15e71 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionEmailTable.h @@ -4,13 +4,13 @@ #include "CDTable.h" struct CDMissionEmail { - unsigned int ID; - unsigned int messageType; - unsigned int notificationGroup; - unsigned int missionID; - unsigned int attachmentLOT; + uint32_t ID; + uint32_t messageType; + uint32_t notificationGroup; + uint32_t missionID; + uint32_t attachmentLOT; bool localize; - unsigned int locStatus; + uint32_t locStatus; std::string gate_version; }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.cpp index 59ea40b7..87d2bd61 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.cpp @@ -3,7 +3,7 @@ void CDMissionNPCComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM MissionNPCComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.h index 2b2b3303..8c4b790d 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionNPCComponentTable.h @@ -4,8 +4,8 @@ #include "CDTable.h" struct CDMissionNPCComponent { - unsigned int id; //!< The ID - unsigned int missionID; //!< The Mission ID + uint32_t id; //!< The ID + uint32_t missionID; //!< The Mission ID bool offersMission; //!< Whether or not this NPC offers a mission bool acceptsMission; //!< Whether or not this NPC accepts a mission std::string gate_version; //!< The gate version diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.cpp index 9795ea8f..b2cb9e21 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.cpp @@ -3,7 +3,7 @@ void CDMissionTasksTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM MissionTasks"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.h index 0b169db8..420dbfbe 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionTasksTable.h @@ -4,17 +4,17 @@ #include "CDTable.h" struct CDMissionTasks { - unsigned int id; //!< The Mission ID that the task belongs to - UNUSED(unsigned int locStatus); //!< ??? - unsigned int taskType; //!< The task type - unsigned int target; //!< The mission target + uint32_t id; //!< The Mission ID that the task belongs to + UNUSED(uint32_t locStatus); //!< ??? + uint32_t taskType; //!< The task type + uint32_t target; //!< The mission target std::string targetGroup; //!< The mission target group - int targetValue; //!< The target value + int32_t targetValue; //!< The target value std::string taskParam1; //!< The task param 1 UNUSED(std::string largeTaskIcon); //!< ??? - UNUSED(unsigned int IconID); //!< ??? - unsigned int uid; //!< ??? - UNUSED(unsigned int largeTaskIconID); //!< ??? + UNUSED(uint32_t IconID); //!< ??? + uint32_t uid; //!< ??? + UNUSED(uint32_t largeTaskIconID); //!< ??? UNUSED(bool localize); //!< Whether or not the task should be localized UNUSED(std::string gate_version); //!< ??? }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.cpp index 37f0c81c..bc9eb76c 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.cpp @@ -5,7 +5,7 @@ CDMissions CDMissionsTable::Default = {}; void CDMissionsTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM Missions"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.h index c8ddc2a3..de4b21c3 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMissionsTable.h @@ -6,58 +6,58 @@ #include <cstdint> struct CDMissions { - int id; //!< The Mission ID + int32_t id; //!< The Mission ID std::string defined_type; //!< The type of mission std::string defined_subtype; //!< The subtype of the mission - int UISortOrder; //!< The UI Sort Order for the mission - int offer_objectID; //!< The LOT of the mission giver - int target_objectID; //!< The LOT of the mission's target + int32_t UISortOrder; //!< The UI Sort Order for the mission + int32_t offer_objectID; //!< The LOT of the mission giver + int32_t target_objectID; //!< The LOT of the mission's target int64_t reward_currency; //!< The amount of currency to reward the player - int LegoScore; //!< The amount of LEGO Score to reward the player + int32_t LegoScore; //!< The amount of LEGO Score to reward the player int64_t reward_reputation; //!< The reputation to award the player bool isChoiceReward; //!< Whether or not the user has the option to choose their loot - int reward_item1; //!< The first rewarded item - int reward_item1_count; //!< The count of the first item to be rewarded - int reward_item2; //!< The second rewarded item - int reward_item2_count; //!< The count of the second item to be rewarded - int reward_item3; //!< The third rewarded item - int reward_item3_count; //!< The count of the third item to be rewarded - int reward_item4; //!< The fourth rewarded item - int reward_item4_count; //!< The count of the fourth item to be rewarded - int reward_emote; //!< The first emote to be rewarded - int reward_emote2; //!< The second emote to be rewarded - int reward_emote3; //!< The third emote to be rewarded - int reward_emote4; //!< The fourth emote to be rewarded - int reward_maximagination; //!< The amount of max imagination to reward - int reward_maxhealth; //!< The amount of max health to reward - int reward_maxinventory; //!< The amount of max inventory to reward - int reward_maxmodel; //!< ??? - int reward_maxwidget; //!< ??? - int reward_maxwallet; //!< ??? + int32_t reward_item1; //!< The first rewarded item + int32_t reward_item1_count; //!< The count of the first item to be rewarded + int32_t reward_item2; //!< The second rewarded item + int32_t reward_item2_count; //!< The count of the second item to be rewarded + int32_t reward_item3; //!< The third rewarded item + int32_t reward_item3_count; //!< The count of the third item to be rewarded + int32_t reward_item4; //!< The fourth rewarded item + int32_t reward_item4_count; //!< The count of the fourth item to be rewarded + int32_t reward_emote; //!< The first emote to be rewarded + int32_t reward_emote2; //!< The second emote to be rewarded + int32_t reward_emote3; //!< The third emote to be rewarded + int32_t reward_emote4; //!< The fourth emote to be rewarded + int32_t reward_maximagination; //!< The amount of max imagination to reward + int32_t reward_maxhealth; //!< The amount of max health to reward + int32_t reward_maxinventory; //!< The amount of max inventory to reward + int32_t reward_maxmodel; //!< ??? + int32_t reward_maxwidget; //!< ??? + int32_t reward_maxwallet; //!< ??? bool repeatable; //!< Whether or not this mission can be repeated (for instance, is it a daily mission) int64_t reward_currency_repeatable; //!< The repeatable reward - int reward_item1_repeatable; //!< The first rewarded item - int reward_item1_repeat_count; //!< The count of the first item to be rewarded - int reward_item2_repeatable; //!< The second rewarded item - int reward_item2_repeat_count; //!< The count of the second item to be rewarded - int reward_item3_repeatable; //!< The third rewarded item - int reward_item3_repeat_count; //!< The count of the third item to be rewarded - int reward_item4_repeatable; //!< The fourth rewarded item - int reward_item4_repeat_count; //!< The count of the fourth item to be rewarded - int time_limit; //!< The time limit of the mission + int32_t reward_item1_repeatable; //!< The first rewarded item + int32_t reward_item1_repeat_count; //!< The count of the first item to be rewarded + int32_t reward_item2_repeatable; //!< The second rewarded item + int32_t reward_item2_repeat_count; //!< The count of the second item to be rewarded + int32_t reward_item3_repeatable; //!< The third rewarded item + int32_t reward_item3_repeat_count; //!< The count of the third item to be rewarded + int32_t reward_item4_repeatable; //!< The fourth rewarded item + int32_t reward_item4_repeat_count; //!< The count of the fourth item to be rewarded + int32_t time_limit; //!< The time limit of the mission bool isMission; //!< Maybe to differentiate between missions and achievements? - int missionIconID; //!< The mission icon ID + int32_t missionIconID; //!< The mission icon ID std::string prereqMissionID; //!< A '|' seperated list of prerequisite missions bool localize; //!< Whether or not to localize the mission bool inMOTD; //!< In Match of the Day(?) int64_t cooldownTime; //!< The mission cooldown time bool isRandom; //!< ??? std::string randomPool; //!< ??? - int UIPrereqID; //!< ??? + int32_t UIPrereqID; //!< ??? UNUSED(std::string gate_version); //!< The gate version UNUSED(std::string HUDStates); //!< ??? - UNUSED(int locStatus); //!< ??? - int reward_bankinventory; //!< The amount of bank space this mission rewards + UNUSED(int32_t locStatus); //!< ??? + int32_t reward_bankinventory; //!< The amount of bank space this mission rewards }; class CDMissionsTable : public CDTable<CDMissionsTable> { diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.cpp index 35b46416..be1c3d96 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.cpp @@ -3,7 +3,7 @@ void CDMovementAIComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM MovementAIComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.h index b40694bd..8b415f3a 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDMovementAIComponentTable.h @@ -4,7 +4,7 @@ #include "CDTable.h" struct CDMovementAIComponent { - unsigned int id; + uint32_t id; std::string MovementType; float WanderChance; float WanderDelayMin; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.cpp index 2439622c..958c6cc8 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.cpp @@ -3,7 +3,7 @@ void CDObjectSkillsTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ObjectSkills"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.h index bd9929e2..0b88fb6f 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDObjectSkillsTable.h @@ -4,10 +4,10 @@ #include "CDTable.h" struct CDObjectSkills { - unsigned int objectTemplate; //!< The LOT of the item - unsigned int skillID; //!< The Skill ID of the object - unsigned int castOnType; //!< ??? - unsigned int AICombatWeight; //!< ??? + uint32_t objectTemplate; //!< The LOT of the item + uint32_t skillID; //!< The Skill ID of the object + uint32_t castOnType; //!< ??? + uint32_t AICombatWeight; //!< ??? }; class CDObjectSkillsTable : public CDTable<CDObjectSkillsTable> { diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.cpp index d3094b68..3282e14c 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.cpp @@ -2,7 +2,7 @@ void CDObjectsTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM Objects"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); @@ -40,7 +40,7 @@ void CDObjectsTable::LoadValuesFromDatabase() { m_default.id = 0; } -const CDObjects& CDObjectsTable::GetByID(unsigned int LOT) { +const CDObjects& CDObjectsTable::GetByID(uint32_t LOT) { const auto& it = this->entries.find(LOT); if (it != this->entries.end()) { return it->second; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.h index 3a776684..2ef47727 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDObjectsTable.h @@ -4,30 +4,30 @@ #include "CDTable.h" struct CDObjects { - unsigned int id; //!< The LOT of the object + uint32_t id; //!< The LOT of the object std::string name; //!< The internal name of the object - UNUSED(unsigned int placeable); //!< Whether or not the object is placable + UNUSED(uint32_t placeable); //!< Whether or not the object is placable std::string type; //!< The object type UNUSED(std::string description); //!< An internal description of the object - UNUSED(unsigned int localize); //!< Whether or not the object should localize - UNUSED(unsigned int npcTemplateID); //!< Something related to NPCs... + UNUSED(uint32_t localize); //!< Whether or not the object should localize + UNUSED(uint32_t npcTemplateID); //!< Something related to NPCs... UNUSED(std::string displayName); //!< The display name of the object float interactionDistance; //!< The interaction distance of the object - UNUSED(unsigned int nametag); //!< ??? + UNUSED(uint32_t nametag); //!< ??? UNUSED(std::string _internalNotes); //!< Some internal notes (rarely used) - UNUSED(unsigned int locStatus); //!< ??? + UNUSED(uint32_t locStatus); //!< ??? UNUSED(std::string gate_version); //!< The gate version for the object - UNUSED(unsigned int HQ_valid); //!< Probably used for the Nexus HQ database on LEGOUniverse.com + UNUSED(uint32_t HQ_valid); //!< Probably used for the Nexus HQ database on LEGOUniverse.com }; class CDObjectsTable : public CDTable<CDObjectsTable> { private: - std::map<unsigned int, CDObjects> entries; + std::map<uint32_t, CDObjects> entries; CDObjects m_default; public: void LoadValuesFromDatabase(); // Gets an entry by ID - const CDObjects& GetByID(unsigned int LOT); + const CDObjects& GetByID(uint32_t LOT); }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.cpp index 8b955162..8038c779 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.cpp @@ -3,7 +3,7 @@ void CDPackageComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM PackageComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.h index 7ee58761..cc8b0636 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDPackageComponentTable.h @@ -4,9 +4,9 @@ #include "CDTable.h" struct CDPackageComponent { - unsigned int id; - unsigned int LootMatrixIndex; - unsigned int packageType; + uint32_t id; + uint32_t LootMatrixIndex; + uint32_t packageType; }; class CDPackageComponentTable : public CDTable<CDPackageComponentTable> { diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.cpp index e17be4df..ebc5327b 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.cpp @@ -28,7 +28,7 @@ void CDPhysicsComponentTable::LoadValuesFromDatabase() { tableData.finalize(); } -CDPhysicsComponent* CDPhysicsComponentTable::GetByID(unsigned int componentID) { +CDPhysicsComponent* CDPhysicsComponentTable::GetByID(uint32_t componentID) { auto itr = m_entries.find(componentID); return itr != m_entries.end() ? &itr->second : nullptr; } diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.h index 49f3b4c3..5ed33cc9 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDPhysicsComponentTable.h @@ -3,7 +3,7 @@ #include <string> struct CDPhysicsComponent { - int id; + int32_t id; bool bStatic; std::string physicsAsset; UNUSED(bool jump); @@ -12,8 +12,8 @@ struct CDPhysicsComponent { UNUSED(float rotSpeed); float playerHeight; float playerRadius; - int pcShapeType; - int collisionGroup; + int32_t pcShapeType; + int32_t collisionGroup; UNUSED(float airSpeed); UNUSED(std::string boundaryAsset); UNUSED(float jumpAirSpeed); @@ -26,8 +26,8 @@ public: void LoadValuesFromDatabase(); static const std::string GetTableName() { return "PhysicsComponent"; }; - CDPhysicsComponent* GetByID(unsigned int componentID); + CDPhysicsComponent* GetByID(uint32_t componentID); private: - std::map<unsigned int, CDPhysicsComponent> m_entries; + std::map<uint32_t, CDPhysicsComponent> m_entries; }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.cpp index ae0abac8..6edd00b2 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.cpp @@ -3,7 +3,7 @@ void CDProximityMonitorComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ProximityMonitorComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.h index a50dd37e..861c900e 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDProximityMonitorComponentTable.h @@ -4,7 +4,7 @@ #include "CDTable.h" struct CDProximityMonitorComponent { - unsigned int id; + uint32_t id; std::string Proximities; bool LoadOnClient; bool LoadOnServer; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.cpp index aa451ae3..6f086e34 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.cpp @@ -3,7 +3,7 @@ void CDRarityTableTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM RarityTable"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.h index e2053da7..1248350b 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDRarityTableTable.h @@ -5,7 +5,7 @@ struct CDRarityTable { float randmax; - unsigned int rarity; + uint32_t rarity; }; typedef std::vector<CDRarityTable> RarityTable; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.cpp index f5706a28..30534936 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.cpp @@ -3,7 +3,7 @@ void CDRebuildComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM RebuildComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.h index fc78e904..aed71905 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDRebuildComponentTable.h @@ -4,15 +4,15 @@ #include "CDTable.h" struct CDRebuildComponent { - unsigned int id; //!< The component Id + uint32_t id; //!< The component Id float reset_time; //!< The reset time float complete_time; //!< The complete time - unsigned int take_imagination; //!< The amount of imagination it costs + uint32_t take_imagination; //!< The amount of imagination it costs bool interruptible; //!< Whether or not the rebuild is interruptible bool self_activator; //!< Whether or not the rebuild is a rebuild activator itself std::string custom_modules; //!< The custom modules - unsigned int activityID; //!< The activity ID - unsigned int post_imagination_cost; //!< The post imagination cost + uint32_t activityID; //!< The activity ID + uint32_t post_imagination_cost; //!< The post imagination cost float time_before_smash; //!< The time before smash }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp index 2bda73f4..4dab9ee9 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp @@ -3,7 +3,7 @@ void CDRewardCodesTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM RewardCodes"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.cpp index 1a922199..a2fe0514 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.cpp @@ -3,7 +3,7 @@ void CDScriptComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ScriptComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); @@ -28,8 +28,8 @@ void CDScriptComponentTable::LoadValuesFromDatabase() { tableData.finalize(); } -const CDScriptComponent& CDScriptComponentTable::GetByID(unsigned int id) { - std::map<unsigned int, CDScriptComponent>::iterator it = this->entries.find(id); +const CDScriptComponent& CDScriptComponentTable::GetByID(uint32_t id) { + std::map<uint32_t, CDScriptComponent>::iterator it = this->entries.find(id); if (it != this->entries.end()) { return it->second; } diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.h index d2b7e7ae..56296776 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDScriptComponentTable.h @@ -4,19 +4,19 @@ #include "CDTable.h" struct CDScriptComponent { - unsigned int id; //!< The component ID + uint32_t id; //!< The component ID std::string script_name; //!< The script name std::string client_script_name; //!< The client script name }; class CDScriptComponentTable : public CDTable<CDScriptComponentTable> { private: - std::map<unsigned int, CDScriptComponent> entries; + std::map<uint32_t, CDScriptComponent> entries; CDScriptComponent m_ToReturnWhenNoneFound; public: void LoadValuesFromDatabase(); // Gets an entry by scriptID - const CDScriptComponent& GetByID(unsigned int id); + const CDScriptComponent& GetByID(uint32_t id); }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.cpp index 8ffbb5ce..51ed7de3 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.cpp @@ -4,7 +4,7 @@ void CDSkillBehaviorTable::LoadValuesFromDatabase() { m_empty = CDSkillBehavior(); // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM SkillBehavior"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); @@ -49,8 +49,8 @@ void CDSkillBehaviorTable::LoadValuesFromDatabase() { tableData.finalize(); } -const CDSkillBehavior& CDSkillBehaviorTable::GetSkillByID(unsigned int skillID) { - std::map<unsigned int, CDSkillBehavior>::iterator it = this->entries.find(skillID); +const CDSkillBehavior& CDSkillBehaviorTable::GetSkillByID(uint32_t skillID) { + std::map<uint32_t, CDSkillBehavior>::iterator it = this->entries.find(skillID); if (it != this->entries.end()) { return it->second; } diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.h index 5b1081cd..0c970be6 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDSkillBehaviorTable.h @@ -4,36 +4,36 @@ #include "CDTable.h" struct CDSkillBehavior { - unsigned int skillID; //!< The Skill ID of the skill - UNUSED(unsigned int locStatus); //!< ?? - unsigned int behaviorID; //!< The Behavior ID of the skill - unsigned int imaginationcost; //!< The imagination cost of the skill - unsigned int cooldowngroup; //!< The cooldown group ID of the skill + uint32_t skillID; //!< The Skill ID of the skill + UNUSED(uint32_t locStatus); //!< ?? + uint32_t behaviorID; //!< The Behavior ID of the skill + uint32_t imaginationcost; //!< The imagination cost of the skill + uint32_t cooldowngroup; //!< The cooldown group ID of the skill float cooldown; //!< The cooldown time of the skill UNUSED(bool isNpcEditor); //!< ??? - UNUSED(unsigned int skillIcon); //!< The Skill Icon ID + UNUSED(uint32_t skillIcon); //!< The Skill Icon ID UNUSED(std::string oomSkillID); //!< ??? - UNUSED(unsigned int oomBehaviorEffectID); //!< ??? - UNUSED(unsigned int castTypeDesc); //!< The cast type description(?) - UNUSED(unsigned int imBonusUI); //!< The imagination bonus of the skill - UNUSED(nsigned int lifeBonusUI); //!< The life bonus of the skill - UNUSED(unsigned int armorBonusUI); //!< The armor bonus of the skill - UNUSED(unsigned int damageUI); //!< ??? + UNUSED(uint32_t oomBehaviorEffectID); //!< ??? + UNUSED(uint32_t castTypeDesc); //!< The cast type description(?) + UNUSED(uint32_t imBonusUI); //!< The imagination bonus of the skill + UNUSED(nint32_t lifeBonusUI); //!< The life bonus of the skill + UNUSED(uint32_t armorBonusUI); //!< The armor bonus of the skill + UNUSED(uint32_t damageUI); //!< ??? UNUSED(bool hideIcon); //!< Whether or not to show the icon UNUSED(bool localize); //!< ??? UNUSED(std::string gate_version); //!< ??? - UNUSED(unsigned int cancelType); //!< The cancel type (?) + UNUSED(uint32_t cancelType); //!< The cancel type (?) }; class CDSkillBehaviorTable : public CDTable<CDSkillBehaviorTable> { private: - std::map<unsigned int, CDSkillBehavior> entries; + std::map<uint32_t, CDSkillBehavior> entries; CDSkillBehavior m_empty; public: void LoadValuesFromDatabase(); // Gets an entry by skillID - const CDSkillBehavior& GetSkillByID(unsigned int skillID); + const CDSkillBehavior& GetSkillByID(uint32_t skillID); }; diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.cpp index 0f963b04..990d0b32 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.cpp @@ -3,7 +3,7 @@ void CDVendorComponentTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM VendorComponent"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.h index 29854d49..133ce78f 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDVendorComponentTable.h @@ -4,11 +4,11 @@ #include "CDTable.h" struct CDVendorComponent { - unsigned int id; //!< The Component ID + uint32_t id; //!< The Component ID float buyScalar; //!< Buy Scalar (what does that mean?) float sellScalar; //!< Sell Scalar (what does that mean?) float refreshTimeSeconds; //!< The refresh time - unsigned int LootMatrixIndex; //!< LootMatrixIndex of the vendor's items + uint32_t LootMatrixIndex; //!< LootMatrixIndex of the vendor's items }; class CDVendorComponentTable : public CDTable<CDVendorComponentTable> { diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.cpp b/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.cpp index 2793ccb9..b599c37f 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.cpp +++ b/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.cpp @@ -3,7 +3,7 @@ void CDZoneTableTable::LoadValuesFromDatabase() { // First, get the size of the table - unsigned int size = 0; + uint32_t size = 0; auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM ZoneTable"); while (!tableSize.eof()) { size = tableSize.getIntField(0, 0); @@ -53,7 +53,7 @@ void CDZoneTableTable::LoadValuesFromDatabase() { } //! Queries the table with a zoneID to find. -const CDZoneTable* CDZoneTableTable::Query(unsigned int zoneID) { +const CDZoneTable* CDZoneTableTable::Query(uint32_t zoneID) { const auto& iter = m_Entries.find(zoneID); if (iter != m_Entries.end()) { diff --git a/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.h b/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.h index c3f51aa6..5f5970ae 100644 --- a/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.h +++ b/dDatabase/CDClientDatabase/CDClientTables/CDZoneTableTable.h @@ -4,14 +4,14 @@ #include "CDTable.h" struct CDZoneTable { - unsigned int zoneID; //!< The Zone ID of the object - unsigned int locStatus; //!< The Locale Status(?) + uint32_t zoneID; //!< The Zone ID of the object + uint32_t locStatus; //!< The Locale Status(?) std::string zoneName; //!< The name of the zone - unsigned int scriptID; //!< The Script ID of the zone (ScriptsTable) + uint32_t scriptID; //!< The Script ID of the zone (ScriptsTable) float ghostdistance_min; //!< The minimum ghosting distance float ghostdistance; //!< The ghosting distance - unsigned int population_soft_cap; //!< The "soft cap" on the world population - unsigned int population_hard_cap; //!< The "hard cap" on the world population + uint32_t population_soft_cap; //!< The "soft cap" on the world population + uint32_t population_hard_cap; //!< The "hard cap" on the world population UNUSED(std::string DisplayDescription); //!< The display description of the world UNUSED(std::string mapFolder); //!< ??? float smashableMinDistance; //!< The minimum smashable distance? @@ -19,9 +19,9 @@ struct CDZoneTable { UNUSED(std::string mixerProgram); //!< ??? UNUSED(std::string clientPhysicsFramerate); //!< The client physics framerate std::string serverPhysicsFramerate; //!< The server physics framerate - unsigned int zoneControlTemplate; //!< The Zone Control template - unsigned int widthInChunks; //!< The width of the world in chunks - unsigned int heightInChunks; //!< The height of the world in chunks + uint32_t zoneControlTemplate; //!< The Zone Control template + uint32_t widthInChunks; //!< The width of the world in chunks + uint32_t heightInChunks; //!< The height of the world in chunks bool petsAllowed; //!< Whether or not pets are allowed in the world bool localize; //!< Whether or not the world should be localized float fZoneWeight; //!< ??? @@ -35,11 +35,11 @@ struct CDZoneTable { class CDZoneTableTable : public CDTable<CDZoneTableTable> { private: - std::map<unsigned int, CDZoneTable> m_Entries; + std::map<uint32_t, CDZoneTable> m_Entries; public: void LoadValuesFromDatabase(); // Queries the table with a zoneID to find. - const CDZoneTable* Query(unsigned int zoneID); + const CDZoneTable* Query(uint32_t zoneID); }; From 66cc582a9a7c28a0438de3515f648d7562c6fae4 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 10 Jan 2024 20:57:41 -0800 Subject: [PATCH 098/106] chore: update noninformative comments to be informative (#1407) * better comments * more comments --- dCommon/dEnums/eGameMessageType.h | 2 +- dGame/dComponents/ActivityComponent.cpp | 6 ++++-- dGame/dComponents/PropertyManagementComponent.cpp | 2 +- dGame/dGameMessages/GameMessageHandler.cpp | 4 ++-- dGame/dGameMessages/GameMessages.cpp | 2 +- dNavigation/dTerrain/RawFile.cpp | 2 +- dScripts/ScriptComponent.cpp | 8 ++------ 7 files changed, 12 insertions(+), 14 deletions(-) diff --git a/dCommon/dEnums/eGameMessageType.h b/dCommon/dEnums/eGameMessageType.h index 14673fac..e3fc22b6 100644 --- a/dCommon/dEnums/eGameMessageType.h +++ b/dCommon/dEnums/eGameMessageType.h @@ -629,7 +629,7 @@ enum class eGameMessageType : uint16_t { GET_INSTRUCTION_COUNT = 676, GET_IS_NPC = 677, ACTIVATE_BUBBLE_BUFF = 678, - DECTIVATE_BUBBLE_BUFF = 679, // thanks netdevil + DECTIVATE_BUBBLE_BUFF = 679, // This is spelled wrong in the client, so we misspell it here. EXHIBIT_VOTE = 680, ADD_PET_TO_PLAYER = 681, REMOVE_PET_FROM_PLAYER = 682, diff --git a/dGame/dComponents/ActivityComponent.cpp b/dGame/dComponents/ActivityComponent.cpp index 7d9e37da..aa6a4604 100644 --- a/dGame/dComponents/ActivityComponent.cpp +++ b/dGame/dComponents/ActivityComponent.cpp @@ -46,18 +46,20 @@ ActivityComponent::ActivityComponent(Entity* parent, int32_t activityID) : Compo auto* destroyableComponent = m_Parent->GetComponent<DestroyableComponent>(); if (destroyableComponent) { - // check for LMIs and set the loot LMIs + // First lookup the loot matrix id for this component id. CDActivityRewardsTable* activityRewardsTable = CDClientManager::Instance().GetTable<CDActivityRewardsTable>(); std::vector<CDActivityRewards> activityRewards = activityRewardsTable->Query([=](CDActivityRewards entry) {return (entry.LootMatrixIndex == destroyableComponent->GetLootMatrixID()); }); uint32_t startingLMI = 0; + // If we have one, set the starting loot matrix id to that. if (activityRewards.size() > 0) { startingLMI = activityRewards[0].LootMatrixIndex; } if (startingLMI > 0) { - // now time for bodge :) + // We may have more than 1 loot matrix index to use depending ont the size of the team that is looting the activity. + // So this logic will get the rest of the loot matrix indices for this activity. std::vector<CDActivityRewards> objectTemplateActivities = activityRewardsTable->Query([=](CDActivityRewards entry) {return (activityRewards[0].objectTemplate == entry.objectTemplate); }); for (const auto& item : objectTemplateActivities) { diff --git a/dGame/dComponents/PropertyManagementComponent.cpp b/dGame/dComponents/PropertyManagementComponent.cpp index 833b7d73..75466043 100644 --- a/dGame/dComponents/PropertyManagementComponent.cpp +++ b/dGame/dComponents/PropertyManagementComponent.cpp @@ -519,7 +519,7 @@ void PropertyManagementComponent::DeleteModel(const LWOOBJID id, const int delet { item->SetCount(item->GetCount() - 1); - LOG("BODGE TIME, YES IT GOES HERE"); + LOG("DLU currently does not support breaking apart brick by brick models."); break; } diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index 6e313ab1..c997bdd1 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -196,8 +196,8 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System } case eGameMessageType::MISSION_DIALOGUE_CANCELLED: { - //This message is pointless for our implementation, as the client just carries on after - //rejecting a mission offer. We dont need to do anything. This is just here to remove a warning in our logs :) + // This message is pointless for our implementation, as the client just carries on after + // rejecting a mission offer. We dont need to do anything. This is just here to remove a warning in our logs :) break; } diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 03468884..4e410504 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -4627,7 +4627,7 @@ void GameMessages::HandleSetGhostReferencePosition(RakNet::BitStream* inStream, void GameMessages::HandleBuyFromVendor(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) { - bool bConfirmed{}; // this doesnt even do anything, thanks ND! + bool bConfirmed{}; // This doesn't appear to do anything. Further research is needed. bool countIsDefault{}; int count = 1; LOT item; diff --git a/dNavigation/dTerrain/RawFile.cpp b/dNavigation/dTerrain/RawFile.cpp index dfad9ca4..efc2b39d 100644 --- a/dNavigation/dTerrain/RawFile.cpp +++ b/dNavigation/dTerrain/RawFile.cpp @@ -20,7 +20,7 @@ RawFile::RawFile(std::string fileName) { if (m_Version < 0x20) { - return; // Version too crusty to handle + return; // Version is too old to be supported } // Read in chunks diff --git a/dScripts/ScriptComponent.cpp b/dScripts/ScriptComponent.cpp index 2079d67a..7c44ded3 100644 --- a/dScripts/ScriptComponent.cpp +++ b/dScripts/ScriptComponent.cpp @@ -46,11 +46,7 @@ CppScripts::Script* ScriptComponent::GetScript() { } void ScriptComponent::SetScript(const std::string& scriptName) { - //we don't need to delete the script because others may be using it :) - /*if (m_Client) { - m_Script = new InvalidScript(); - return; - }*/ - + // Scripts are managed by the CppScripts class and are effecitvely singletons + // and they may also be used by other script components so DON'T delete them. m_Script = CppScripts::GetScript(m_Parent, scriptName); } From 929d029f1241817e6ca0d87a076c9e21769480ab Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 12 Jan 2024 09:39:51 -0800 Subject: [PATCH 099/106] chore: Simplify and move Player functionality to relevant component (#1408) * Moving and organizing Player code - Move code to CharacterComponent - Remove extraneous interfaces - Simplify some code greatly - Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.) - Update code to use CharacterComponent for sending to zone instead of Player*. * Moving and organizing Player code - Move code to CharacterComponent - Remove extraneous interfaces - Simplify some code greatly - Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.) - Update code to use CharacterComponent for sending to zone instead of Player*. - Remove static storage container (static containers can be destroyed before exit/terminate handler executes) * remove player cast * Remove extra includes --- dGame/Entity.cpp | 4 +- dGame/Entity.h | 14 +- dGame/Player.cpp | 289 ++++++------------ dGame/Player.h | 64 ++-- dGame/dComponents/CharacterComponent.cpp | 35 ++- dGame/dComponents/CharacterComponent.h | 8 + dGame/dComponents/InventoryComponent.cpp | 9 +- .../PropertyManagementComponent.cpp | 4 +- dGame/dComponents/RacingControlComponent.cpp | 25 +- dScripts/BaseConsoleTeleportServer.cpp | 6 +- dScripts/BaseSurvivalServer.cpp | 9 +- dScripts/BaseWavesServer.cpp | 6 +- ...nceExitTransferPlayerToLastNonInstance.cpp | 11 +- .../ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp | 14 +- dScripts/zone/LUPs/WblGenericZone.cpp | 7 +- 15 files changed, 200 insertions(+), 305 deletions(-) diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index c693358d..1a99136e 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -1879,7 +1879,7 @@ const NiQuaternion& Entity::GetRotation() const { return NiQuaternion::IDENTITY; } -void Entity::SetPosition(NiPoint3 position) { +void Entity::SetPosition(const NiPoint3& position) { auto* controllable = GetComponent<ControllablePhysicsComponent>(); if (controllable != nullptr) { @@ -1907,7 +1907,7 @@ void Entity::SetPosition(NiPoint3 position) { Game::entityManager->SerializeEntity(this); } -void Entity::SetRotation(NiQuaternion rotation) { +void Entity::SetRotation(const NiQuaternion& rotation) { auto* controllable = GetComponent<ControllablePhysicsComponent>(); if (controllable != nullptr) { diff --git a/dGame/Entity.h b/dGame/Entity.h index 02fc14d3..36621d5c 100644 --- a/dGame/Entity.h +++ b/dGame/Entity.h @@ -106,7 +106,7 @@ public: virtual User* GetParentUser() const; - virtual SystemAddress GetSystemAddress() const { return UNASSIGNED_SYSTEM_ADDRESS; }; + virtual const SystemAddress& GetSystemAddress() const { return UNASSIGNED_SYSTEM_ADDRESS; }; /** * Setters @@ -124,13 +124,13 @@ public: void SetNetworkId(uint16_t id); - void SetPosition(NiPoint3 position); + void SetPosition(const NiPoint3& position); - void SetRotation(NiQuaternion rotation); + void SetRotation(const NiQuaternion& rotation); - virtual void SetRespawnPos(NiPoint3 position) {} + virtual void SetRespawnPos(const NiPoint3& position) {} - virtual void SetRespawnRot(NiQuaternion rotation) {} + virtual void SetRespawnRot(const NiQuaternion& rotation) {} virtual void SetSystemAddress(const SystemAddress& value) {}; @@ -229,8 +229,8 @@ public: void TriggerEvent(eTriggerEventType event, Entity* optionalTarget = nullptr); void ScheduleDestructionAfterUpdate() { m_ShouldDestroyAfterUpdate = true; } - virtual NiPoint3 GetRespawnPosition() const { return NiPoint3::ZERO; } - virtual NiQuaternion GetRespawnRotation() const { return NiQuaternion::IDENTITY; } + virtual const NiPoint3& GetRespawnPosition() const { return NiPoint3::ZERO; } + virtual const NiQuaternion& GetRespawnRotation() const { return NiQuaternion::IDENTITY; } void Sleep(); void Wake(); diff --git a/dGame/Player.cpp b/dGame/Player.cpp index abbbf059..d1009086 100644 --- a/dGame/Player.cpp +++ b/dGame/Player.cpp @@ -3,162 +3,22 @@ #include <ctime> #include "Character.h" -#include "Database.h" -#include "MissionComponent.h" #include "UserManager.h" #include "EntityManager.h" +#include "Game.h" #include "Logger.h" -#include "ZoneInstanceManager.h" -#include "WorldPackets.h" #include "dZoneManager.h" -#include "CharacterComponent.h" -#include "Mail.h" #include "User.h" #include "CppScripts.h" #include "Loot.h" #include "eReplicaComponentType.h" -std::vector<Player*> Player::m_Players = {}; +namespace { + std::vector<Player*> m_Players; +}; -Player::Player(const LWOOBJID& objectID, const EntityInfo info, User* user, Entity* parentEntity) : Entity(objectID, info, parentEntity) { - m_ParentUser = user; - m_Character = m_ParentUser->GetLastUsedChar(); - m_ParentUser->SetLoggedInChar(objectID); - m_GMLevel = m_Character->GetGMLevel(); - m_SystemAddress = m_ParentUser->GetSystemAddress(); - m_DroppedLoot = {}; - m_DroppedCoins = 0; - - m_GhostReferencePoint = NiPoint3::ZERO; - m_GhostOverridePoint = NiPoint3::ZERO; - m_GhostOverride = false; - m_ObservedEntitiesLength = 256; - m_ObservedEntitiesUsed = 0; - m_ObservedEntities.resize(m_ObservedEntitiesLength); - - m_Character->SetEntity(this); - - const auto& iter = std::find(m_Players.begin(), m_Players.end(), this); - - if (iter != m_Players.end()) { - return; - } - - m_Players.push_back(this); -} - -User* Player::GetParentUser() const { - return m_ParentUser; -} - -SystemAddress Player::GetSystemAddress() const { - return m_SystemAddress; -} - -void Player::SetSystemAddress(const SystemAddress& value) { - m_SystemAddress = value; -} - -void Player::SetRespawnPos(const NiPoint3 position) { - if (!m_Character) return; - - m_respawnPos = position; - - m_Character->SetRespawnPoint(Game::zoneManager->GetZone()->GetWorldID(), position); -} - -void Player::SetRespawnRot(const NiQuaternion rotation) { - m_respawnRot = rotation; -} - -NiPoint3 Player::GetRespawnPosition() const { - return m_respawnPos; -} - -NiQuaternion Player::GetRespawnRotation() const { - return m_respawnRot; -} - -void Player::SendMail(const LWOOBJID sender, const std::string& senderName, const std::string& subject, const std::string& body, LOT attachment, uint16_t attachmentCount) const { - Mail::SendMail(sender, senderName, this, subject, body, attachment, attachmentCount); -} - -void Player::SendToZone(LWOMAPID zoneId, LWOCLONEID cloneId) { - const auto objid = GetObjectID(); - - ZoneInstanceManager::Instance()->RequestZoneTransfer(Game::server, zoneId, cloneId, false, [objid](bool mythranShift, uint32_t zoneID, uint32_t zoneInstance, uint32_t zoneClone, std::string serverIP, uint16_t serverPort) { - auto* entity = Game::entityManager->GetEntity(objid); - - if (entity == nullptr) { - return; - } - - const auto sysAddr = entity->GetSystemAddress(); - - auto* character = entity->GetCharacter(); - auto* characterComponent = entity->GetComponent<CharacterComponent>(); - - if (character != nullptr && characterComponent != nullptr) { - character->SetZoneID(zoneID); - character->SetZoneInstance(zoneInstance); - character->SetZoneClone(zoneClone); - - characterComponent->SetLastRocketConfig(u""); - - character->SaveXMLToDatabase(); - } - - WorldPackets::SendTransferToWorld(sysAddr, serverIP, serverPort, mythranShift); - - Game::entityManager->DestructEntity(entity); - return; - }); -} - -void Player::AddLimboConstruction(LWOOBJID objectId) { - const auto& iter = std::find(m_LimboConstructions.begin(), m_LimboConstructions.end(), objectId); - - if (iter != m_LimboConstructions.end()) { - return; - } - - m_LimboConstructions.push_back(objectId); -} - -void Player::RemoveLimboConstruction(LWOOBJID objectId) { - const auto& iter = std::find(m_LimboConstructions.begin(), m_LimboConstructions.end(), objectId); - - if (iter == m_LimboConstructions.end()) { - return; - } - - m_LimboConstructions.erase(iter); -} - -void Player::ConstructLimboEntities() { - for (const auto objectId : m_LimboConstructions) { - auto* entity = Game::entityManager->GetEntity(objectId); - - if (entity == nullptr) { - continue; - } - - Game::entityManager->ConstructEntity(entity, m_SystemAddress); - } - - m_LimboConstructions.clear(); -} - -std::map<LWOOBJID, Loot::Info>& Player::GetDroppedLoot() { - return m_DroppedLoot; -} - -const NiPoint3& Player::GetGhostReferencePoint() const { - return m_GhostOverride ? m_GhostOverridePoint : m_GhostReferencePoint; -} - -const NiPoint3& Player::GetOriginGhostReferencePoint() const { - return m_GhostReferencePoint; +const std::vector<Player*>& Player::GetAllPlayers() { + return m_Players; } void Player::SetGhostReferencePoint(const NiPoint3& value) { @@ -169,52 +29,94 @@ void Player::SetGhostOverridePoint(const NiPoint3& value) { m_GhostOverridePoint = value; } -const NiPoint3& Player::GetGhostOverridePoint() const { - return m_GhostOverridePoint; +void Player::SetRespawnPos(const NiPoint3& position) { + if (!m_Character) return; + + m_respawnPos = position; + + m_Character->SetRespawnPoint(Game::zoneManager->GetZone()->GetWorldID(), position); + } -void Player::SetGhostOverride(bool value) { - m_GhostOverride = value; +void Player::SetRespawnRot(const NiQuaternion& rotation) { + m_respawnRot = rotation; } -bool Player::GetGhostOverride() const { - return m_GhostOverride; +void Player::SetSystemAddress(const SystemAddress& value) { + m_SystemAddress = value; +} + +Player::Player(const LWOOBJID& objectID, const EntityInfo info, User* user, Entity* parentEntity) : Entity(objectID, info, parentEntity) { + m_ParentUser = user; + m_Character = m_ParentUser->GetLastUsedChar(); + m_ParentUser->SetLoggedInChar(objectID); + m_GMLevel = m_Character->GetGMLevel(); + m_SystemAddress = m_ParentUser->GetSystemAddress(); + m_DroppedCoins = 0; + + m_GhostReferencePoint = NiPoint3::ZERO; + m_GhostOverridePoint = NiPoint3::ZERO; + m_GhostOverride = false; + + int32_t initialObservedEntitiesCapacity = 256; + m_ObservedEntities.resize(initialObservedEntitiesCapacity); + + m_Character->SetEntity(this); + + const auto& iter = std::find(m_Players.begin(), m_Players.end(), this); + + if (iter == m_Players.end()) { + m_Players.push_back(this); + } +} + +void Player::AddLimboConstruction(LWOOBJID objectId) { + const auto iter = std::find(m_LimboConstructions.begin(), m_LimboConstructions.end(), objectId); + if (iter == m_LimboConstructions.end()) { + m_LimboConstructions.push_back(objectId); + } +} + +void Player::RemoveLimboConstruction(LWOOBJID objectId) { + const auto iter = std::find(m_LimboConstructions.begin(), m_LimboConstructions.end(), objectId); + if (iter != m_LimboConstructions.end()) { + m_LimboConstructions.erase(iter); + } +} + +void Player::ConstructLimboEntities() { + for (const auto& objectId : m_LimboConstructions) { + auto* entity = Game::entityManager->GetEntity(objectId); + if (!entity) continue; + + Game::entityManager->ConstructEntity(entity, m_SystemAddress); + } + + m_LimboConstructions.clear(); } void Player::ObserveEntity(int32_t id) { - for (int32_t i = 0; i < m_ObservedEntitiesUsed; i++) { - if (m_ObservedEntities[i] == 0 || m_ObservedEntities[i] == id) { - m_ObservedEntities[i] = id; + for (auto& observedEntity : m_ObservedEntities) { + if (observedEntity == 0 || observedEntity == id) { + observedEntity = id; return; } } - const auto index = m_ObservedEntitiesUsed++; + m_ObservedEntities.reserve(m_ObservedEntities.size() + 1); - if (m_ObservedEntitiesUsed > m_ObservedEntitiesLength) { - m_ObservedEntities.resize(m_ObservedEntitiesLength + m_ObservedEntitiesLength); - - m_ObservedEntitiesLength = m_ObservedEntitiesLength + m_ObservedEntitiesLength; - } - - m_ObservedEntities[index] = id; + m_ObservedEntities.push_back(id); } bool Player::IsObserved(int32_t id) { - for (int32_t i = 0; i < m_ObservedEntitiesUsed; i++) { - if (m_ObservedEntities[i] == id) { - return true; - } - } - - return false; + return std::find(m_ObservedEntities.begin(), m_ObservedEntities.end(), id) != m_ObservedEntities.end(); } void Player::GhostEntity(int32_t id) { - for (int32_t i = 0; i < m_ObservedEntitiesUsed; i++) { - if (m_ObservedEntities[i] == id) { - m_ObservedEntities[i] = 0; + for (auto& observedEntity : m_ObservedEntities) { + if (observedEntity == id) { + observedEntity = 0; } } } @@ -228,59 +130,44 @@ Player* Player::GetPlayer(const SystemAddress& sysAddr) { Player* Player::GetPlayer(const std::string& name) { const auto characters = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::CHARACTER); + Player* player = nullptr; for (auto* character : characters) { if (!character->IsPlayer()) continue; if (GeneralUtils::CaseInsensitiveStringCompare(name, character->GetCharacter()->GetName())) { - return dynamic_cast<Player*>(character); + player = dynamic_cast<Player*>(character); } } - return nullptr; + return player; } Player* Player::GetPlayer(LWOOBJID playerID) { + Player* playerToReturn = nullptr; for (auto* player : m_Players) { if (player->GetObjectID() == playerID) { - return player; + playerToReturn = player; } } - return nullptr; -} - -const std::vector<Player*>& Player::GetAllPlayers() { - return m_Players; -} - -uint64_t Player::GetDroppedCoins() { - return m_DroppedCoins; -} - -void Player::SetDroppedCoins(uint64_t value) { - m_DroppedCoins = value; + return playerToReturn; } Player::~Player() { LOG("Deleted player"); - for (int32_t i = 0; i < m_ObservedEntitiesUsed; i++) { - const auto id = m_ObservedEntities[i]; + for (auto& observedEntity : m_ObservedEntities) { + if (observedEntity == 0) continue; - if (id == 0) { - continue; - } - - auto* entity = Game::entityManager->GetGhostCandidate(id); - - if (entity != nullptr) { - entity->SetObservers(entity->GetObservers() - 1); - } + auto* entity = Game::entityManager->GetGhostCandidate(observedEntity); + if (!entity) continue; + + entity->SetObservers(entity->GetObservers() - 1); } m_LimboConstructions.clear(); - const auto& iter = std::find(m_Players.begin(), m_Players.end(), this); + const auto iter = std::find(m_Players.begin(), m_Players.end(), this); if (iter == m_Players.end()) { return; diff --git a/dGame/Player.h b/dGame/Player.h index 287ee613..1b3e6299 100644 --- a/dGame/Player.h +++ b/dGame/Player.h @@ -18,64 +18,44 @@ public: * Getters */ - User* GetParentUser() const override; + User* GetParentUser() const override { return m_ParentUser; }; - SystemAddress GetSystemAddress() const override; + const SystemAddress& GetSystemAddress() const override { return m_SystemAddress; }; - NiPoint3 GetRespawnPosition() const override; + const NiPoint3& GetRespawnPosition() const override { return m_respawnPos; }; - NiQuaternion GetRespawnRotation() const override; + const NiQuaternion& GetRespawnRotation() const override { return m_respawnRot; }; - const NiPoint3& GetGhostReferencePoint() const; + const NiPoint3& GetGhostReferencePoint() const { return m_GhostOverride ? m_GhostOverridePoint : m_GhostReferencePoint; }; - const NiPoint3& GetOriginGhostReferencePoint() const; + const NiPoint3& GetOriginGhostReferencePoint() const { return m_GhostReferencePoint; }; - const NiPoint3& GetGhostOverridePoint() const; + const NiPoint3& GetGhostOverridePoint() const { return m_GhostOverridePoint; }; - bool GetGhostOverride() const; + bool GetGhostOverride() const { return m_GhostOverride; }; - std::map<LWOOBJID, Loot::Info>& GetDroppedLoot(); + std::map<LWOOBJID, Loot::Info>& GetDroppedLoot() { return m_DroppedLoot; }; - uint64_t GetDroppedCoins(); + uint64_t GetDroppedCoins() const { return m_DroppedCoins; }; /** * Setters */ + void SetGhostOverride(bool value) { m_GhostOverride = value; }; + + void SetDroppedCoins(const uint64_t value) { m_DroppedCoins = value; }; + void SetSystemAddress(const SystemAddress& value) override; - void SetRespawnPos(NiPoint3 position) override; + void SetRespawnPos(const NiPoint3& position) override; - void SetRespawnRot(NiQuaternion rotation) override; + void SetRespawnRot(const NiQuaternion& rotation) override; void SetGhostReferencePoint(const NiPoint3& value); void SetGhostOverridePoint(const NiPoint3& value); - void SetGhostOverride(bool value); - - void SetDroppedCoins(uint64_t value); - - /** - * Wrapper for sending an in-game mail. - * - * @param sender id of the sender. LWOOBJID_EMPTY for system mail - * @param senderName name of the sender. Max 32 characters. - * @param subject mail subject. Max 50 characters. - * @param body mail body. Max 400 characters. - * @param attachment LOT of the attached item. LOT_NULL if no attachment. - * @param attachmentCount stack size for attachment. - */ - void SendMail(LWOOBJID sender, const std::string& senderName, const std::string& subject, const std::string& body, LOT attachment, uint16_t attachmentCount) const; - - /** - * Wrapper for transfering the player to another instance. - * - * @param zoneId zoneID for the new instance. - * @param cloneId cloneID for the new instance. - */ - void SendToZone(LWOMAPID zoneId, LWOCLONEID cloneId = 0); - /** * Ghosting */ @@ -86,11 +66,11 @@ public: void ConstructLimboEntities(); - void ObserveEntity(int32_t id); + void ObserveEntity(const int32_t id); - bool IsObserved(int32_t id); + bool IsObserved(const int32_t id); - void GhostEntity(int32_t id); + void GhostEntity(const int32_t id); /** * Static methods @@ -122,15 +102,9 @@ private: std::vector<int32_t> m_ObservedEntities; - int32_t m_ObservedEntitiesLength; - - int32_t m_ObservedEntitiesUsed; - std::vector<LWOOBJID> m_LimboConstructions; std::map<LWOOBJID, Loot::Info> m_DroppedLoot; uint64_t m_DroppedCoins; - - static std::vector<Player*> m_Players; }; diff --git a/dGame/dComponents/CharacterComponent.cpp b/dGame/dComponents/CharacterComponent.cpp index 702ab70f..70eec0cf 100644 --- a/dGame/dComponents/CharacterComponent.cpp +++ b/dGame/dComponents/CharacterComponent.cpp @@ -20,6 +20,8 @@ #include "Database.h" #include "CDRewardCodesTable.h" #include "Mail.h" +#include "ZoneInstanceManager.h" +#include "WorldPackets.h" #include <ctime> CharacterComponent::CharacterComponent(Entity* parent, Character* character) : Component(parent) { @@ -763,12 +765,12 @@ void CharacterComponent::AwardClaimCodes() { if (!m_Parent) return; auto* user = m_Parent->GetParentUser(); if (!user) return; - + auto rewardCodes = Database::Get()->GetRewardCodesByAccountID(user->GetAccountID()); if (rewardCodes.empty()) return; auto* cdrewardCodes = CDClientManager::Instance().GetTable<CDRewardCodesTable>(); - for (auto const rewardCode: rewardCodes){ + for (auto const rewardCode : rewardCodes) { LOG_DEBUG("Processing RewardCode %i", rewardCode); const uint32_t rewardCodeIndex = rewardCode >> 6; const uint32_t bitIndex = rewardCode % 64; @@ -786,3 +788,32 @@ void CharacterComponent::AwardClaimCodes() { Mail::SendMail(LWOOBJID_EMPTY, "%[MAIL_SYSTEM_NOTIFICATION]", m_Parent, subject.str(), body.str(), attachmentLOT, 1); } } + +void CharacterComponent::SendToZone(LWOMAPID zoneId, LWOCLONEID cloneId) const { + const auto objid = m_Parent->GetObjectID(); + + ZoneInstanceManager::Instance()->RequestZoneTransfer(Game::server, zoneId, cloneId, false, [objid](bool mythranShift, uint32_t zoneID, uint32_t zoneInstance, uint32_t zoneClone, std::string serverIP, uint16_t serverPort) { + auto* entity = Game::entityManager->GetEntity(objid); + + if (!entity) return; + + const auto sysAddr = entity->GetSystemAddress(); + + auto* character = entity->GetCharacter(); + auto* characterComponent = entity->GetComponent<CharacterComponent>(); + + if (character && characterComponent) { + character->SetZoneID(zoneID); + character->SetZoneInstance(zoneInstance); + character->SetZoneClone(zoneClone); + + characterComponent->SetLastRocketConfig(u""); + + character->SaveXMLToDatabase(); + } + + WorldPackets::SendTransferToWorld(sysAddr, serverIP, serverPort, mythranShift); + + Game::entityManager->DestructEntity(entity); + }); +} diff --git a/dGame/dComponents/CharacterComponent.h b/dGame/dComponents/CharacterComponent.h index 158e011e..fae99dcb 100644 --- a/dGame/dComponents/CharacterComponent.h +++ b/dGame/dComponents/CharacterComponent.h @@ -281,6 +281,14 @@ public: LWOOBJID GetCurrentInteracting() {return m_CurrentInteracting;}; + /** + * Sends a player to another zone with an optional clone ID + * + * @param zoneId zoneID for the new instance. + * @param cloneId cloneID for the new instance. + */ + void SendToZone(LWOMAPID zoneId, LWOCLONEID cloneId = 0) const; + /** * Character info regarding this character, including clothing styles, etc. */ diff --git a/dGame/dComponents/InventoryComponent.cpp b/dGame/dComponents/InventoryComponent.cpp index 92b5171a..23d5c163 100644 --- a/dGame/dComponents/InventoryComponent.cpp +++ b/dGame/dComponents/InventoryComponent.cpp @@ -31,6 +31,7 @@ #include "eMissionTaskType.h" #include "eStateChangeType.h" #include "eUseItemResponse.h" +#include "Mail.h" #include "CDComponentsRegistryTable.h" #include "CDInventoryComponentTable.h" @@ -264,17 +265,11 @@ void InventoryComponent::AddItem( } if (slot == -1) { - auto* player = dynamic_cast<Player*>(GetParent()); - - if (player == nullptr) { - return; - } - outOfSpace += size; switch (sourceType) { case 0: - player->SendMail(LWOOBJID_EMPTY, "Darkflame Universe", "Lost Reward", "You received an item and didn&apos;t have room for it.", lot, size); + Mail::SendMail(LWOOBJID_EMPTY, "Darkflame Universe", m_Parent, "Lost Reward", "You received an item and didn&apos;t have room for it.", lot, size); break; case 1: diff --git a/dGame/dComponents/PropertyManagementComponent.cpp b/dGame/dComponents/PropertyManagementComponent.cpp index 75466043..f0115676 100644 --- a/dGame/dComponents/PropertyManagementComponent.cpp +++ b/dGame/dComponents/PropertyManagementComponent.cpp @@ -20,6 +20,7 @@ #include "InventoryComponent.h" #include "eMissionTaskType.h" #include "eObjectBits.h" +#include "CharacterComponent.h" #include <vector> #include "CppScripts.h" @@ -247,7 +248,8 @@ void PropertyManagementComponent::OnStartBuilding() { for (auto* player : players) { if (player == ownerEntity) continue; - player->SendToZone(zoneId); + auto* characterComponent = player->GetComponent<CharacterComponent>(); + if (characterComponent) characterComponent->SendToZone(zoneId); } auto inventoryComponent = ownerEntity->GetComponent<InventoryComponent>(); diff --git a/dGame/dComponents/RacingControlComponent.cpp b/dGame/dComponents/RacingControlComponent.cpp index 5b93dbb7..5e3d81f4 100644 --- a/dGame/dComponents/RacingControlComponent.cpp +++ b/dGame/dComponents/RacingControlComponent.cpp @@ -71,10 +71,8 @@ void RacingControlComponent::OnPlayerLoaded(Entity* player) { // If the race has already started, send the player back to the main world. if (m_Loaded || !vehicle) { - auto* playerInstance = dynamic_cast<Player*>(player); - if (playerInstance) { - playerInstance->SendToZone(m_MainWorld); - } + auto* characterComponent = player->GetComponent<CharacterComponent>(); + if (characterComponent) characterComponent->SendToZone(m_MainWorld); return; } @@ -105,10 +103,11 @@ void RacingControlComponent::LoadPlayerVehicle(Entity* player, if (item == nullptr) { LOG("Failed to find item"); - auto* playerInstance = dynamic_cast<Player*>(player); - if (playerInstance) { + auto* characterComponent = player->GetComponent<CharacterComponent>(); + + if (characterComponent) { m_LoadedPlayers--; - playerInstance->SendToZone(m_MainWorld); + characterComponent->SendToZone(m_MainWorld); } return; @@ -427,9 +426,9 @@ void RacingControlComponent::HandleMessageBoxResponse(Entity* player, int32_t bu m_Parent->GetObjectID(), 3, 0, LWOOBJID_EMPTY, u"", player->GetObjectID(), UNASSIGNED_SYSTEM_ADDRESS); - auto* playerInstance = dynamic_cast<Player*>(player); + auto* characterComponent = player->GetComponent<CharacterComponent>(); - playerInstance->SendToZone(m_MainWorld); + if (characterComponent) characterComponent->SendToZone(m_MainWorld); vehicle->Kill(); } @@ -561,9 +560,9 @@ void RacingControlComponent::Update(float deltaTime) { continue; } - auto* playerInstance = dynamic_cast<Player*>(playerEntity); + auto* characterComponent = playerEntity->GetComponent<CharacterComponent>(); - playerInstance->SendToZone(m_MainWorld); + if (characterComponent) characterComponent->SendToZone(m_MainWorld); } m_LobbyPlayers.clear(); @@ -623,9 +622,9 @@ void RacingControlComponent::Update(float deltaTime) { continue; } - auto* playerInstance = dynamic_cast<Player*>(playerEntity); + auto* characterComponent = playerEntity->GetComponent<CharacterComponent>(); - playerInstance->SendToZone(m_MainWorld); + if (characterComponent) characterComponent->SendToZone(m_MainWorld); } return; diff --git a/dScripts/BaseConsoleTeleportServer.cpp b/dScripts/BaseConsoleTeleportServer.cpp index 27d2bcfc..d4a49299 100644 --- a/dScripts/BaseConsoleTeleportServer.cpp +++ b/dScripts/BaseConsoleTeleportServer.cpp @@ -1,6 +1,6 @@ #include "BaseConsoleTeleportServer.h" #include "GameMessages.h" -#include "Player.h" +#include "CharacterComponent.h" #include "RenderComponent.h" #include "EntityManager.h" #include "eTerminateType.h" @@ -94,7 +94,9 @@ void BaseConsoleTeleportServer::TransferPlayer(Entity* self, Entity* player, int const auto& teleportZone = self->GetVar<std::u16string>(u"transferZoneID"); - static_cast<Player*>(player)->SendToZone(std::stoi(GeneralUtils::UTF16ToWTF8(teleportZone))); + auto* characterComponent = player->GetComponent<CharacterComponent>(); + + if (characterComponent) characterComponent->SendToZone(std::stoi(GeneralUtils::UTF16ToWTF8(teleportZone))); UpdatePlayerTable(self, player, false); } diff --git a/dScripts/BaseSurvivalServer.cpp b/dScripts/BaseSurvivalServer.cpp index 93476d78..ecdcad64 100644 --- a/dScripts/BaseSurvivalServer.cpp +++ b/dScripts/BaseSurvivalServer.cpp @@ -3,7 +3,7 @@ #include "DestroyableComponent.h" #include "EntityManager.h" #include "dZoneManager.h" -#include "Player.h" +#include "CharacterComponent.h" #include "eMissionTaskType.h" #include "eMissionState.h" #include "MissionComponent.h" @@ -23,7 +23,8 @@ void BaseSurvivalServer::BasePlayerLoaded(Entity* self, Entity* player) { const auto& playersIter = std::find(state.players.begin(), state.players.end(), player->GetObjectID()); if (waitingIter != state.waitingPlayers.end() || playersIter != state.players.end()) { - static_cast<Player*>(player)->SendToZone(player->GetCharacter()->GetLastNonInstanceZoneID()); + auto* characterComponent = player->GetComponent<CharacterComponent>(); + if (characterComponent) characterComponent->SendToZone(player->GetCharacter()->GetLastNonInstanceZoneID()); return; } @@ -161,8 +162,8 @@ void BaseSurvivalServer::BaseMessageBoxResponse(Entity* self, Entity* sender, in if (sender->IsPlayer()) { auto* character = sender->GetCharacter(); if (character != nullptr) { - auto* player = dynamic_cast<Player*>(sender); - player->SendToZone(character->GetLastNonInstanceZoneID()); + auto* characterComponent = sender->GetComponent<CharacterComponent>(); + if (characterComponent) characterComponent->SendToZone(character->GetLastNonInstanceZoneID()); } } } diff --git a/dScripts/BaseWavesServer.cpp b/dScripts/BaseWavesServer.cpp index 9be19806..e2f646f9 100644 --- a/dScripts/BaseWavesServer.cpp +++ b/dScripts/BaseWavesServer.cpp @@ -3,7 +3,7 @@ #include "DestroyableComponent.h" #include "EntityManager.h" #include "dZoneManager.h" -#include "Player.h" +#include "CharacterComponent.h" #include "eMissionTaskType.h" #include "eMissionState.h" #include "MissionComponent.h" @@ -162,8 +162,8 @@ void BaseWavesServer::BaseMessageBoxResponse(Entity* self, Entity* sender, int32 if (sender->IsPlayer()) { auto* character = sender->GetCharacter(); if (character != nullptr) { - auto* player = dynamic_cast<Player*>(sender); - player->SendToZone(character->GetLastNonInstanceZoneID()); + auto* characterComponent = sender->GetComponent<CharacterComponent>(); + if (characterComponent) characterComponent->SendToZone(character->GetLastNonInstanceZoneID()); } } } diff --git a/dScripts/ai/GENERAL/InstanceExitTransferPlayerToLastNonInstance.cpp b/dScripts/ai/GENERAL/InstanceExitTransferPlayerToLastNonInstance.cpp index de1c62e0..667f41bd 100644 --- a/dScripts/ai/GENERAL/InstanceExitTransferPlayerToLastNonInstance.cpp +++ b/dScripts/ai/GENERAL/InstanceExitTransferPlayerToLastNonInstance.cpp @@ -1,6 +1,6 @@ #include "InstanceExitTransferPlayerToLastNonInstance.h" #include "GameMessages.h" -#include "Player.h" +#include "CharacterComponent.h" #include "Character.h" #include "dServer.h" #include "eTerminateType.h" @@ -23,10 +23,8 @@ void InstanceExitTransferPlayerToLastNonInstance::OnUse(Entity* self, Entity* us } void InstanceExitTransferPlayerToLastNonInstance::OnMessageBoxResponse(Entity* self, Entity* sender, int32_t button, const std::u16string& identifier, const std::u16string& userData) { - auto* player = dynamic_cast<Player*>(sender); - if (player == nullptr) - return; - + if (!sender->IsPlayer()) return; + auto* character = sender->GetCharacter(); if (character != nullptr) { if (identifier == u"Instance_Exit" && button == 1) { @@ -47,7 +45,8 @@ void InstanceExitTransferPlayerToLastNonInstance::OnMessageBoxResponse(Entity* s } } - player->SendToZone(lastInstance); + auto* characterComponent = sender->GetComponent<CharacterComponent>(); + if (characterComponent) characterComponent->SendToZone(lastInstance); } } diff --git a/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp b/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp index 1a298843..c8563b53 100644 --- a/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp +++ b/dScripts/ai/MINIGAME/SG_GF/SERVER/SGCannon.cpp @@ -453,16 +453,12 @@ void SGCannon::SpawnNewModel(Entity* self) { void SGCannon::RemovePlayer(LWOOBJID playerID) { auto* player = Game::entityManager->GetEntity(playerID); - if (player == nullptr) - return; + if (!player) return; - auto* playerObject = dynamic_cast<Player*>(player); - if (playerObject == nullptr) - return; - - auto* character = playerObject->GetCharacter(); - if (character != nullptr) { - playerObject->SendToZone(character->GetLastNonInstanceZoneID()); + auto* character = player->GetCharacter(); + auto* characterComponent = player->GetComponent<CharacterComponent>(); + if (characterComponent && character) { + characterComponent->SendToZone(character->GetLastNonInstanceZoneID()); } } diff --git a/dScripts/zone/LUPs/WblGenericZone.cpp b/dScripts/zone/LUPs/WblGenericZone.cpp index 5a670d8e..600628fa 100644 --- a/dScripts/zone/LUPs/WblGenericZone.cpp +++ b/dScripts/zone/LUPs/WblGenericZone.cpp @@ -1,10 +1,11 @@ #include "WblGenericZone.h" -#include "Player.h" +#include "CharacterComponent.h" void WblGenericZone::OnFireEventServerSide(Entity* self, Entity* sender, std::string args, int32_t param1, int32_t param2, int32_t param3) { if (args == m_WblAbortMsg) { if (!sender) return; - auto player = dynamic_cast<Player*>(sender); - if (player) player->SendToZone(m_WblMainZone); + + auto* characterComponent = sender->GetComponent<CharacterComponent>(); + if (characterComponent) characterComponent->SendToZone(m_WblMainZone); } } From 8b6fb8fb442527d35f45afa981e8eb9d15f4204c Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Fri, 12 Jan 2024 11:18:28 -0800 Subject: [PATCH 100/106] Add ghost component (#1409) will be used to migrate other Player functionality in a future PR. Tested that I can login still. --- dGame/Entity.cpp | 3 +++ dGame/dComponents/CMakeLists.txt | 1 + dGame/dComponents/GhostComponent.cpp | 4 ++++ dGame/dComponents/GhostComponent.h | 13 +++++++++++++ 4 files changed, 21 insertions(+) create mode 100644 dGame/dComponents/GhostComponent.cpp create mode 100644 dGame/dComponents/GhostComponent.h diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 1a99136e..cdd94671 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -80,6 +80,7 @@ #include "RacingStatsComponent.h" #include "CollectibleComponent.h" #include "ItemComponent.h" +#include "GhostComponent.h" // Table includes #include "CDComponentsRegistryTable.h" @@ -436,6 +437,8 @@ void Entity::Initialize() { AddComponent<PlayerForcedMovementComponent>(); AddComponent<CharacterComponent>(m_Character)->LoadFromXml(m_Character->GetXMLDoc()); + + AddComponent<GhostComponent>(); } if (compRegistryTable->GetByIDAndType(m_TemplateID, eReplicaComponentType::INVENTORY) > 0 || m_Character) { diff --git a/dGame/dComponents/CMakeLists.txt b/dGame/dComponents/CMakeLists.txt index b14d0eb8..59c49ce9 100644 --- a/dGame/dComponents/CMakeLists.txt +++ b/dGame/dComponents/CMakeLists.txt @@ -10,6 +10,7 @@ set(DGAME_DCOMPONENTS_SOURCES "ControllablePhysicsComponent.cpp" "DestroyableComponent.cpp" "DonationVendorComponent.cpp" + "GhostComponent.cpp" "InventoryComponent.cpp" "ItemComponent.cpp" "LevelProgressionComponent.cpp" diff --git a/dGame/dComponents/GhostComponent.cpp b/dGame/dComponents/GhostComponent.cpp new file mode 100644 index 00000000..56bb1670 --- /dev/null +++ b/dGame/dComponents/GhostComponent.cpp @@ -0,0 +1,4 @@ +#include "GhostComponent.h" + +// TODO Move ghosting related code from Player to here +GhostComponent::GhostComponent(Entity* parent) : Component(parent) {} diff --git a/dGame/dComponents/GhostComponent.h b/dGame/dComponents/GhostComponent.h new file mode 100644 index 00000000..d99ffcd9 --- /dev/null +++ b/dGame/dComponents/GhostComponent.h @@ -0,0 +1,13 @@ +#ifndef __GHOSTCOMPONENT__H__ +#define __GHOSTCOMPONENT__H__ + +#include "Component.h" +#include "eReplicaComponentType.h" + +class GhostComponent : public Component { +public: + static inline const eReplicaComponentType ComponentType = eReplicaComponentType::GHOST; + GhostComponent(Entity* parent); +}; + +#endif //!__GHOSTCOMPONENT__H__ From 0bc12141c3e2ef678a8c40481942a26ef9d24358 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell <aronwk.aaron@gmail.com> Date: Fri, 12 Jan 2024 14:23:44 -0600 Subject: [PATCH 101/106] chore: default size to 33 on LU(W)Strings since that's the most common lenght (#1410) Was doing this on other places, but not the main one --- dChatServer/ChatIgnoreList.cpp | 4 ++-- dGame/UserManager.cpp | 4 ++-- dMasterServer/MasterServer.cpp | 6 +++--- dNet/AuthPackets.cpp | 2 +- dNet/BitStreamUtils.h | 4 ++-- dNet/MasterPackets.cpp | 2 +- dWorldServer/WorldServer.cpp | 8 ++++---- tests/dCommonTests/TestLUString.cpp | 4 ++-- tests/dCommonTests/TestLUWString.cpp | 4 ++-- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/dChatServer/ChatIgnoreList.cpp b/dChatServer/ChatIgnoreList.cpp index f6e91ba0..d77eeeed 100644 --- a/dChatServer/ChatIgnoreList.cpp +++ b/dChatServer/ChatIgnoreList.cpp @@ -81,7 +81,7 @@ void ChatIgnoreList::AddIgnore(Packet* packet) { inStream.IgnoreBytes(4); // ignore some garbage zeros idk - LUWString toIgnoreName(33); + LUWString toIgnoreName; inStream.Read(toIgnoreName); std::string toIgnoreStr = toIgnoreName.GetAsString(); @@ -147,7 +147,7 @@ void ChatIgnoreList::RemoveIgnore(Packet* packet) { inStream.IgnoreBytes(4); // ignore some garbage zeros idk - LUWString removedIgnoreName(33); + LUWString removedIgnoreName; inStream.Read(removedIgnoreName); std::string removedIgnoreStr = removedIgnoreName.GetAsString(); diff --git a/dGame/UserManager.cpp b/dGame/UserManager.cpp index 958369fc..fc582108 100644 --- a/dGame/UserManager.cpp +++ b/dGame/UserManager.cpp @@ -267,7 +267,7 @@ void UserManager::CreateCharacter(const SystemAddress& sysAddr, Packet* packet) User* u = GetUser(sysAddr); if (!u) return; - LUWString LUWStringName(33); + LUWString LUWStringName; uint32_t firstNameIndex; uint32_t middleNameIndex; uint32_t lastNameIndex; @@ -437,7 +437,7 @@ void UserManager::RenameCharacter(const SystemAddress& sysAddr, Packet* packet) uint32_t charID = static_cast<uint32_t>(objectID); LOG("Received char rename request for ID: %llu (%u)", objectID, charID); - LUWString LUWStringName(33); + LUWString LUWStringName; inStream.Read(LUWStringName); const auto newName = LUWStringName.GetAsString(); diff --git a/dMasterServer/MasterServer.cpp b/dMasterServer/MasterServer.cpp index cdfbdf0a..f15bb9a9 100644 --- a/dMasterServer/MasterServer.cpp +++ b/dMasterServer/MasterServer.cpp @@ -503,7 +503,7 @@ void HandlePacket(Packet* packet) { uint32_t theirZoneID = 0; uint32_t theirInstanceID = 0; ServerType theirServerType; - LUString theirIP(33); + LUString theirIP; inStream.Read(theirPort); inStream.Read(theirZoneID); @@ -555,7 +555,7 @@ void HandlePacket(Packet* packet) { CINSTREAM_SKIP_HEADER; uint32_t sessionKey = 0; inStream.Read(sessionKey); - LUString username(33); + LUString username; inStream.Read(username); for (auto it : activeSessions) { @@ -579,7 +579,7 @@ void HandlePacket(Packet* packet) { case eMasterMessageType::REQUEST_SESSION_KEY: { CINSTREAM_SKIP_HEADER; - LUWString username(33); + LUWString username; inStream.Read(username); LOG("Requesting session key for %s", username.GetAsString().c_str()); for (auto key : activeSessions) { diff --git a/dNet/AuthPackets.cpp b/dNet/AuthPackets.cpp index a878644c..2597c576 100644 --- a/dNet/AuthPackets.cpp +++ b/dNet/AuthPackets.cpp @@ -95,7 +95,7 @@ void AuthPackets::HandleLoginRequest(dServer* server, Packet* packet) { std::vector<Stamp> stamps; stamps.emplace_back(eStamps::PASSPORT_AUTH_START, 0); - LUWString usernameLUString(33); + LUWString usernameLUString; inStream.Read(usernameLUString); const auto username = usernameLUString.GetAsString(); diff --git a/dNet/BitStreamUtils.h b/dNet/BitStreamUtils.h index 7403d0e1..1322ec95 100644 --- a/dNet/BitStreamUtils.h +++ b/dNet/BitStreamUtils.h @@ -12,7 +12,7 @@ struct LUString { std::string string; uint32_t size; - LUString(uint32_t size) { + LUString(uint32_t size = 33) { this->size = size; }; LUString(std::string string, uint32_t size = 33) { @@ -28,7 +28,7 @@ struct LUWString { std::u16string string; uint32_t size; - LUWString(uint32_t size) { + LUWString(uint32_t size = 33) { this->size = size; }; LUWString(std::u16string string, uint32_t size = 33) { diff --git a/dNet/MasterPackets.cpp b/dNet/MasterPackets.cpp index 6953026e..6d70fedb 100644 --- a/dNet/MasterPackets.cpp +++ b/dNet/MasterPackets.cpp @@ -99,7 +99,7 @@ void MasterPackets::HandleServerInfo(Packet* packet) { uint32_t theirPort = 0; uint32_t theirZoneID = 0; uint32_t theirInstanceID = 0; - LUString theirIP(33); + LUString theirIP; inStream.Read(theirPort); inStream.Read(theirZoneID); diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index fc5baf85..82c66db2 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -677,7 +677,7 @@ void HandleMasterPacket(Packet* packet) { CINSTREAM_SKIP_HEADER; uint32_t sessionKey = 0; inStream.Read(sessionKey); - LUWString username(33); + LUWString username; inStream.Read(username); //Find them: @@ -761,7 +761,7 @@ void HandleMasterPacket(Packet* packet) { CINSTREAM_SKIP_HEADER; uint32_t sessionKey = inStream.Read(sessionKey); - LUString username(33); + LUString username; inStream.Read(username); LOG("Got new session alert for user %s", username.string.c_str()); //Find them: @@ -847,10 +847,10 @@ void HandlePacket(Packet* packet) { switch (static_cast<eWorldMessageType>(packet->data[3])) { case eWorldMessageType::VALIDATION: { CINSTREAM_SKIP_HEADER; - LUWString username(33); + LUWString username; inStream.Read(username); - LUWString sessionKey(33); + LUWString sessionKey; // sometimes client puts a null terminator at the end of the checksum and sometimes doesn't, weird inStream.Read(sessionKey); LUString clientDatabaseChecksum(32); diff --git a/tests/dCommonTests/TestLUString.cpp b/tests/dCommonTests/TestLUString.cpp index 3abec985..30cc0f73 100644 --- a/tests/dCommonTests/TestLUString.cpp +++ b/tests/dCommonTests/TestLUString.cpp @@ -101,7 +101,7 @@ TEST(LUString33Test, SerializeReadTestNew) { std::string testString; for (int i = 0; i < 33; i++) testString += "a"; bitStream.Write(LUString(testString, 33)); - LUString result(33); + LUString result; ASSERT_EQ(result.size, 33); ASSERT_TRUE(bitStream.Read(result)); ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0); @@ -113,7 +113,7 @@ TEST(LUString33Test, SerializeReadTestNewPartial) { std::string testString; for (int i = 0; i < 15; i++) testString += "a"; bitStream.Write(LUString(testString, 33)); - LUString result(33); + LUString result; ASSERT_EQ(result.size, 33); ASSERT_TRUE(bitStream.Read(result)); ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0); diff --git a/tests/dCommonTests/TestLUWString.cpp b/tests/dCommonTests/TestLUWString.cpp index a16dd911..e812ae0c 100644 --- a/tests/dCommonTests/TestLUWString.cpp +++ b/tests/dCommonTests/TestLUWString.cpp @@ -101,7 +101,7 @@ TEST(LUWString33Test, SerializeReadTestNew) { std::u16string testString; for (int i = 0; i < 33; i++) testString += u'ü'; bitStream.Write(LUWString(testString, 33)); - LUWString result(33); + LUWString result; ASSERT_EQ(result.size, 33); ASSERT_TRUE(bitStream.Read(result)); ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0); @@ -113,7 +113,7 @@ TEST(LUWString33Test, SerializeReadTestNewPartial) { std::u16string testString; for (int i = 0; i < 15; i++) testString += u'ü'; bitStream.Write(LUWString(testString, 33)); - LUWString result(33); + LUWString result; ASSERT_EQ(result.size, 33); ASSERT_TRUE(bitStream.Read(result)); ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0); From a62f6d63c6d8c285efe4c411a10f3870d6c444b6 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sat, 13 Jan 2024 01:40:56 -0800 Subject: [PATCH 102/106] chore: Move static Player functions and internal linkage to manager class (#1412) * Moving and organizing Player code - Move code to CharacterComponent - Remove extraneous interfaces - Simplify some code greatly - Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.) - Update code to use CharacterComponent for sending to zone instead of Player*. * Moving and organizing Player code - Move code to CharacterComponent - Remove extraneous interfaces - Simplify some code greatly - Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.) - Update code to use CharacterComponent for sending to zone instead of Player*. - Remove static storage container (static containers can be destroyed before exit/terminate handler executes) * remove player cast * Remove extra includes * Add a player manager Used for the static Player functions. Further removes stuff from the Player class/file. --- dGame/CMakeLists.txt | 1 + dGame/EntityManager.cpp | 13 ++-- dGame/Player.cpp | 57 ++-------------- dGame/Player.h | 12 ---- dGame/PlayerManager.cpp | 65 +++++++++++++++++++ dGame/PlayerManager.h | 25 +++++++ .../PropertyManagementComponent.cpp | 3 +- dGame/dComponents/TriggerComponent.cpp | 3 +- dGame/dGameMessages/GameMessages.cpp | 11 ++-- dGame/dUtilities/CheatDetection.cpp | 3 +- dGame/dUtilities/SlashCommandHandler.cpp | 15 +++-- dWorldServer/WorldServer.cpp | 7 +- 12 files changed, 129 insertions(+), 86 deletions(-) create mode 100644 dGame/PlayerManager.cpp create mode 100644 dGame/PlayerManager.h diff --git a/dGame/CMakeLists.txt b/dGame/CMakeLists.txt index ac7f38cc..4d9a3e50 100644 --- a/dGame/CMakeLists.txt +++ b/dGame/CMakeLists.txt @@ -3,6 +3,7 @@ set(DGAME_SOURCES "Character.cpp" "EntityManager.cpp" "LeaderboardManager.cpp" "Player.cpp" + "PlayerManager.cpp" "TeamManager.cpp" "TradingManager.cpp" "User.cpp" diff --git a/dGame/EntityManager.cpp b/dGame/EntityManager.cpp index 7361574b..29aa54bb 100644 --- a/dGame/EntityManager.cpp +++ b/dGame/EntityManager.cpp @@ -23,6 +23,7 @@ #include "eGameMasterLevel.h" #include "eReplicaComponentType.h" #include "eReplicaPacketType.h" +#include "PlayerManager.h" // Configure which zones have ghosting disabled, mostly small worlds. std::vector<LWOMAPID> EntityManager::m_GhostingExcludedZones = { @@ -187,7 +188,7 @@ void EntityManager::SerializeEntities() { entity->WriteComponents(&stream, eReplicaPacketType::SERIALIZATION); if (entity->GetIsGhostingCandidate()) { - for (auto* player : Player::GetAllPlayers()) { + for (auto* player : PlayerManager::GetAllPlayers()) { if (player->IsObserved(toSerialize)) { Game::server->Send(&stream, player->GetSystemAddress(), false); } @@ -376,7 +377,7 @@ void EntityManager::ConstructEntity(Entity* entity, const SystemAddress& sysAddr if (skipChecks) { Game::server->Send(&stream, UNASSIGNED_SYSTEM_ADDRESS, true); } else { - for (auto* player : Player::GetAllPlayers()) { + for (auto* player : PlayerManager::GetAllPlayers()) { if (player->GetPlayerReadyForUpdates()) { Game::server->Send(&stream, player->GetSystemAddress(), false); } else { @@ -405,7 +406,7 @@ void EntityManager::ConstructAllEntities(const SystemAddress& sysAddr) { } } - UpdateGhosting(Player::GetPlayer(sysAddr)); + UpdateGhosting(PlayerManager::GetPlayer(sysAddr)); } void EntityManager::DestructEntity(Entity* entity, const SystemAddress& sysAddr) { @@ -418,7 +419,7 @@ void EntityManager::DestructEntity(Entity* entity, const SystemAddress& sysAddr) Game::server->Send(&stream, sysAddr, sysAddr == UNASSIGNED_SYSTEM_ADDRESS); - for (auto* player : Player::GetAllPlayers()) { + for (auto* player : PlayerManager::GetAllPlayers()) { if (!player->GetPlayerReadyForUpdates()) { player->RemoveLimboConstruction(entity->GetObjectID()); } @@ -465,7 +466,7 @@ void EntityManager::QueueGhostUpdate(LWOOBJID playerID) { void EntityManager::UpdateGhosting() { for (const auto playerID : m_PlayersToUpdateGhosting) { - auto* player = Player::GetPlayer(playerID); + auto* player = PlayerManager::GetPlayer(playerID); if (player == nullptr) { continue; @@ -548,7 +549,7 @@ void EntityManager::CheckGhosting(Entity* entity) { const auto isAudioEmitter = entity->GetLOT() == 6368; - for (auto* player : Player::GetAllPlayers()) { + for (auto* player : PlayerManager::GetAllPlayers()) { const auto& entityPoint = player->GetGhostReferencePoint(); const int32_t id = entity->GetObjectID(); diff --git a/dGame/Player.cpp b/dGame/Player.cpp index d1009086..96ba1ecd 100644 --- a/dGame/Player.cpp +++ b/dGame/Player.cpp @@ -12,14 +12,7 @@ #include "CppScripts.h" #include "Loot.h" #include "eReplicaComponentType.h" - -namespace { - std::vector<Player*> m_Players; -}; - -const std::vector<Player*>& Player::GetAllPlayers() { - return m_Players; -} +#include "PlayerManager.h" void Player::SetGhostReferencePoint(const NiPoint3& value) { m_GhostReferencePoint = value; @@ -63,11 +56,7 @@ Player::Player(const LWOOBJID& objectID, const EntityInfo info, User* user, Enti m_Character->SetEntity(this); - const auto& iter = std::find(m_Players.begin(), m_Players.end(), this); - - if (iter == m_Players.end()) { - m_Players.push_back(this); - } + PlayerManager::AddPlayer(this); } void Player::AddLimboConstruction(LWOOBJID objectId) { @@ -121,38 +110,6 @@ void Player::GhostEntity(int32_t id) { } } -Player* Player::GetPlayer(const SystemAddress& sysAddr) { - auto* entity = UserManager::Instance()->GetUser(sysAddr)->GetLastUsedChar()->GetEntity(); - - return static_cast<Player*>(entity); -} - -Player* Player::GetPlayer(const std::string& name) { - const auto characters = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::CHARACTER); - - Player* player = nullptr; - for (auto* character : characters) { - if (!character->IsPlayer()) continue; - - if (GeneralUtils::CaseInsensitiveStringCompare(name, character->GetCharacter()->GetName())) { - player = dynamic_cast<Player*>(character); - } - } - - return player; -} - -Player* Player::GetPlayer(LWOOBJID playerID) { - Player* playerToReturn = nullptr; - for (auto* player : m_Players) { - if (player->GetObjectID() == playerID) { - playerToReturn = player; - } - } - - return playerToReturn; -} - Player::~Player() { LOG("Deleted player"); @@ -166,10 +123,10 @@ Player::~Player() { } m_LimboConstructions.clear(); - - const auto iter = std::find(m_Players.begin(), m_Players.end(), this); - - if (iter == m_Players.end()) { + + // Make sure the player exists first. Remove afterwards to prevent the OnPlayerExist functions from not being able to find the player. + if (!PlayerManager::GetPlayer(GetObjectID())) { + LOG("Unable to find player to remove from manager."); return; } @@ -189,5 +146,5 @@ Player::~Player() { } } - m_Players.erase(iter); + PlayerManager::RemovePlayer(this); } diff --git a/dGame/Player.h b/dGame/Player.h index 1b3e6299..a168c70b 100644 --- a/dGame/Player.h +++ b/dGame/Player.h @@ -72,18 +72,6 @@ public: void GhostEntity(const int32_t id); - /** - * Static methods - */ - - static Player* GetPlayer(const SystemAddress& sysAddr); - - static Player* GetPlayer(const std::string& name); - - static Player* GetPlayer(LWOOBJID playerID); - - static const std::vector<Player*>& GetAllPlayers(); - ~Player() override; private: SystemAddress m_SystemAddress; diff --git a/dGame/PlayerManager.cpp b/dGame/PlayerManager.cpp new file mode 100644 index 00000000..7094abf7 --- /dev/null +++ b/dGame/PlayerManager.cpp @@ -0,0 +1,65 @@ +#include "PlayerManager.h" + +#include "Character.h" +#include "Player.h" +#include "User.h" +#include "UserManager.h" +#include "eReplicaComponentType.h" + +namespace { + std::vector<Player*> m_Players; +}; + +const std::vector<Player*>& PlayerManager::GetAllPlayers() { + return m_Players; +} + +void PlayerManager::AddPlayer(Player* player) { + const auto& iter = std::find(m_Players.begin(), m_Players.end(), player); + + if (iter == m_Players.end()) { + m_Players.push_back(player); + } +} + +void PlayerManager::RemovePlayer(Player* player) { + const auto iter = std::find(m_Players.begin(), m_Players.end(), player); + + if (iter != m_Players.end()) { + m_Players.erase(iter); + } +} + +Player* PlayerManager::GetPlayer(const SystemAddress& sysAddr) { + auto* entity = UserManager::Instance()->GetUser(sysAddr)->GetLastUsedChar()->GetEntity(); + + return static_cast<Player*>(entity); +} + +Player* PlayerManager::GetPlayer(const std::string& name) { + const auto characters = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::CHARACTER); + + Player* player = nullptr; + for (auto* character : characters) { + if (!character->IsPlayer()) continue; + + if (GeneralUtils::CaseInsensitiveStringCompare(name, character->GetCharacter()->GetName())) { + player = dynamic_cast<Player*>(character); + break; + } + } + + return player; +} + +Player* PlayerManager::GetPlayer(LWOOBJID playerID) { + Player* playerToReturn = nullptr; + for (auto* player : m_Players) { + if (player->GetObjectID() == playerID) { + playerToReturn = player; + break; + } + } + + return playerToReturn; +} diff --git a/dGame/PlayerManager.h b/dGame/PlayerManager.h new file mode 100644 index 00000000..7b88ebfd --- /dev/null +++ b/dGame/PlayerManager.h @@ -0,0 +1,25 @@ +#ifndef __PLAYERMANAGER__H__ +#define __PLAYERMANAGER__H__ + +#include "dCommonVars.h" + +#include <string> + +class Player; +struct SystemAddress; + +namespace PlayerManager { + void AddPlayer(Player* player); + + void RemovePlayer(Player* player); + + Player* GetPlayer(const SystemAddress& sysAddr); + + Player* GetPlayer(const std::string& name); + + Player* GetPlayer(LWOOBJID playerID); + + const std::vector<Player*>& GetAllPlayers(); +}; + +#endif //!__PLAYERMANAGER__H__ diff --git a/dGame/dComponents/PropertyManagementComponent.cpp b/dGame/dComponents/PropertyManagementComponent.cpp index f0115676..dff1e5da 100644 --- a/dGame/dComponents/PropertyManagementComponent.cpp +++ b/dGame/dComponents/PropertyManagementComponent.cpp @@ -21,6 +21,7 @@ #include "eMissionTaskType.h" #include "eObjectBits.h" #include "CharacterComponent.h" +#include "PlayerManager.h" #include <vector> #include "CppScripts.h" @@ -227,7 +228,7 @@ void PropertyManagementComponent::OnStartBuilding() { if (ownerEntity == nullptr) return; - const auto players = Player::GetAllPlayers(); + const auto players = PlayerManager::GetAllPlayers(); LWOMAPID zoneId = 1100; diff --git a/dGame/dComponents/TriggerComponent.cpp b/dGame/dComponents/TriggerComponent.cpp index d30353ab..6d7ce3dd 100644 --- a/dGame/dComponents/TriggerComponent.cpp +++ b/dGame/dComponents/TriggerComponent.cpp @@ -13,6 +13,7 @@ #include "QuickBuildComponent.h" #include "SkillComponent.h" #include "eEndBehavior.h" +#include "PlayerManager.h" TriggerComponent::TriggerComponent(Entity* parent, const std::string triggerInfo): Component(parent) { @@ -175,7 +176,7 @@ std::vector<Entity*> TriggerComponent::GatherTargets(LUTriggers::Command* comman } } else if (command->target == "objGroup") entities = Game::entityManager->GetEntitiesInGroup(command->targetName); else if (command->target == "allPlayers") { - for (auto* player : Player::GetAllPlayers()) { + for (auto* player : PlayerManager::GetAllPlayers()) { entities.push_back(player); } } else if (command->target == "allNPCs") { /*UNUSED*/ } diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 4e410504..c1c92116 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -96,6 +96,7 @@ #include "eGameMessageType.h" #include "ePetAbilityType.h" #include "ActivityManager.h" +#include "PlayerManager.h" #include "CDComponentsRegistryTable.h" #include "CDObjectsTable.h" @@ -2693,7 +2694,7 @@ void GameMessages::HandlePropertyEntranceSync(RakNet::BitStream* inStream, Entit filterText.push_back(c); } - auto* player = Player::GetPlayer(sysAddr); + auto* player = PlayerManager::GetPlayer(sysAddr); auto* entranceComponent = entity->GetComponent<PropertyEntranceComponent>(); @@ -2720,7 +2721,7 @@ void GameMessages::HandleEnterProperty(RakNet::BitStream* inStream, Entity* enti inStream->Read(index); inStream->Read(returnToZone); - auto* player = Player::GetPlayer(sysAddr); + auto* player = PlayerManager::GetPlayer(sysAddr); auto* entranceComponent = entity->GetComponent<PropertyEntranceComponent>(); if (entranceComponent != nullptr) { @@ -4601,7 +4602,7 @@ void GameMessages::HandleToggleGhostReferenceOverride(RakNet::BitStream* inStrea inStream->Read(bOverride); - auto* player = Player::GetPlayer(sysAddr); + auto* player = PlayerManager::GetPlayer(sysAddr); if (player != nullptr) { player->SetGhostOverride(bOverride); @@ -4616,7 +4617,7 @@ void GameMessages::HandleSetGhostReferencePosition(RakNet::BitStream* inStream, inStream->Read(position); - auto* player = Player::GetPlayer(sysAddr); + auto* player = PlayerManager::GetPlayer(sysAddr); if (player != nullptr) { player->SetGhostOverridePoint(position); @@ -4880,7 +4881,7 @@ void GameMessages::HandleFireEventServerSide(RakNet::BitStream* inStream, Entity inStream->Read(senderID); auto* sender = Game::entityManager->GetEntity(senderID); - auto* player = Player::GetPlayer(sysAddr); + auto* player = PlayerManager::GetPlayer(sysAddr); if (!player) { return; diff --git a/dGame/dUtilities/CheatDetection.cpp b/dGame/dUtilities/CheatDetection.cpp index a43cdaeb..bc50b2cc 100644 --- a/dGame/dUtilities/CheatDetection.cpp +++ b/dGame/dUtilities/CheatDetection.cpp @@ -10,6 +10,7 @@ #include "UserManager.h" #include "dConfig.h" #include <optional> +#include "PlayerManager.h" Entity* GetPossessedEntity(const LWOOBJID& objId) { auto* entity = Game::entityManager->GetEntity(objId); @@ -49,7 +50,7 @@ void LogAndSaveFailedAntiCheatCheck(const LWOOBJID& id, const SystemAddress& sys User* toReport = nullptr; switch (checkType) { case CheckType::Entity: { - auto* player = Player::GetPlayer(sysAddr); + auto* player = PlayerManager::GetPlayer(sysAddr); auto* entity = GetPossessedEntity(id); // If player exists and entity exists in world, use both for logging info. diff --git a/dGame/dUtilities/SlashCommandHandler.cpp b/dGame/dUtilities/SlashCommandHandler.cpp index 1cff553d..e459c8be 100644 --- a/dGame/dUtilities/SlashCommandHandler.cpp +++ b/dGame/dUtilities/SlashCommandHandler.cpp @@ -82,6 +82,7 @@ #include "eConnectionType.h" #include "eChatInternalMessageType.h" #include "eMasterMessageType.h" +#include "PlayerManager.h" #include "CDRewardCodesTable.h" #include "CDObjectsTable.h" @@ -214,10 +215,10 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (chatCommand == "who") { ChatPackets::SendSystemMessage( sysAddr, - u"Players in this instance: (" + GeneralUtils::to_u16string(Player::GetAllPlayers().size()) + u")" + u"Players in this instance: (" + GeneralUtils::to_u16string(PlayerManager::GetAllPlayers().size()) + u")" ); - for (auto* player : Player::GetAllPlayers()) { + for (auto* player : PlayerManager::GetAllPlayers()) { const auto& name = player->GetCharacter()->GetName(); ChatPackets::SendSystemMessage( @@ -473,7 +474,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (chatCommand == "kill" && args.size() == 1 && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER) { ChatPackets::SendSystemMessage(sysAddr, u"Brutally murdering that player, if online on this server."); - auto* player = Player::GetPlayer(args[0]); + auto* player = PlayerManager::GetPlayer(args[0]); if (player) { player->Smash(entity->GetObjectID()); ChatPackets::SendSystemMessage(sysAddr, u"It has been done, do you feel good about yourself now?"); @@ -993,7 +994,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (chatCommand == "mute" && entity->GetGMLevel() >= eGameMasterLevel::JUNIOR_DEVELOPER) { if (args.size() >= 1) { - auto* player = Player::GetPlayer(args[0]); + auto* player = PlayerManager::GetPlayer(args[0]); uint32_t accountId = 0; LWOOBJID characterId = 0; @@ -1072,7 +1073,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (chatCommand == "kick" && entity->GetGMLevel() >= eGameMasterLevel::JUNIOR_MODERATOR) { if (args.size() == 1) { - auto* player = Player::GetPlayer(args[0]); + auto* player = PlayerManager::GetPlayer(args[0]); std::u16string username = GeneralUtils::UTF8ToUTF16(args[0]); if (player == nullptr) { @@ -1090,7 +1091,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (chatCommand == "ban" && entity->GetGMLevel() >= eGameMasterLevel::SENIOR_MODERATOR) { if (args.size() == 1) { - auto* player = Player::GetPlayer(args[0]); + auto* player = PlayerManager::GetPlayer(args[0]); uint32_t accountId = 0; @@ -1303,7 +1304,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit if (args.size() > 1) { requestedPlayerToSetLevelOf = args[1]; - auto requestedPlayer = Player::GetPlayer(requestedPlayerToSetLevelOf); + auto requestedPlayer = PlayerManager::GetPlayer(requestedPlayerToSetLevelOf); if (!requestedPlayer) { ChatPackets::SendSystemMessage(sysAddr, u"No player found with username: (" + GeneralUtils::UTF8ToUTF16(requestedPlayerToSetLevelOf) + u")."); diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index 82c66db2..2b53190a 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -78,6 +78,7 @@ #include "StringifiedEnum.h" #include "Server.h" #include "PositionUpdate.h" +#include "PlayerManager.h" namespace Game { Logger* logger = nullptr; @@ -798,7 +799,7 @@ void HandlePacket(Packet* packet) { auto* entity = Game::entityManager->GetEntity(c->GetObjectID()); if (!entity) { - entity = Player::GetPlayer(packet->systemAddress); + entity = PlayerManager::GetPlayer(packet->systemAddress); } if (entity) { @@ -1205,7 +1206,7 @@ void HandlePacket(Packet* packet) { return; } - auto* entity = Player::GetPlayer(packet->systemAddress); + auto* entity = PlayerManager::GetPlayer(packet->systemAddress); if (entity == nullptr) { LOG("Unable to get player to parse chat moderation request"); @@ -1365,7 +1366,7 @@ void WorldShutdownProcess(uint32_t zoneId) { for (auto i = 0; i < Game::server->GetReplicaManager()->GetParticipantCount(); ++i) { const auto& player = Game::server->GetReplicaManager()->GetParticipantAtIndex(i); - auto* entity = Player::GetPlayer(player); + auto* entity = PlayerManager::GetPlayer(player); LOG("Saving data!"); if (entity != nullptr && entity->GetCharacter() != nullptr) { auto* skillComponent = entity->GetComponent<SkillComponent>(); From 6592bbea469e7c3d5750299ac0b003329e0a00b3 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell <aronwk.aaron@gmail.com> Date: Sun, 14 Jan 2024 01:03:01 -0600 Subject: [PATCH 103/106] chore: remove all raw packet reading from chat packet handler (#1415) * chore: default size to 33 on LU(W)Strings since that's the most common lenght Was doing this on other places, but not the main one * chore: remove all raw packet reading from chat packet handler and general chat packet cleanup * fix team invite/promote/kick * Address feedback * fix friends check * update comments * Address feedback Add GM level handeling * Address feedback --- dChatServer/ChatPacketHandler.cpp | 329 +++++++++++++++++------------- dChatServer/ChatPacketHandler.h | 39 ++++ dChatServer/ChatServer.cpp | 60 +++++- dChatServer/PlayerContainer.cpp | 6 + dChatServer/PlayerContainer.h | 5 + dGame/Entity.cpp | 14 +- dNet/PacketUtils.cpp | 56 ----- dNet/PacketUtils.h | 5 - dWorldServer/WorldServer.cpp | 1 + 9 files changed, 305 insertions(+), 210 deletions(-) diff --git a/dChatServer/ChatPacketHandler.cpp b/dChatServer/ChatPacketHandler.cpp index 4bdddd68..5e2e58d7 100644 --- a/dChatServer/ChatPacketHandler.cpp +++ b/dChatServer/ChatPacketHandler.cpp @@ -2,7 +2,6 @@ #include "PlayerContainer.h" #include "Database.h" #include <vector> -#include "PacketUtils.h" #include "BitStreamUtils.h" #include "Game.h" #include "dServer.h" @@ -18,6 +17,8 @@ #include "eChatInternalMessageType.h" #include "eClientMessageType.h" #include "eGameMessageType.h" +#include "StringifiedEnum.h" +#include "eGameMasterLevel.h" void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { //Get from the packet which player we want to do something with: @@ -78,31 +79,27 @@ void ChatPacketHandler::HandleFriendlistRequest(Packet* packet) { void ChatPacketHandler::HandleFriendRequest(Packet* packet) { CINSTREAM_SKIP_HEADER; + LWOOBJID requestorPlayerID; - inStream.Read(requestorPlayerID); - uint32_t spacing{}; - inStream.Read(spacing); - std::string playerName = ""; - uint16_t character; - bool noMoreLettersInName = false; - - for (uint32_t j = 0; j < 33; j++) { - inStream.Read(character); - if (character == '\0') noMoreLettersInName = true; - if (!noMoreLettersInName) playerName.push_back(static_cast<char>(character)); - } - + LUWString LUplayerName; char isBestFriendRequest{}; + + inStream.Read(requestorPlayerID); + inStream.IgnoreBytes(4); + inStream.Read(LUplayerName); inStream.Read(isBestFriendRequest); + auto playerName = LUplayerName.GetAsString(); + auto& requestor = Game::playerContainer.GetPlayerDataMutable(requestorPlayerID); if (!requestor) { LOG("No requestor player %llu sent to %s found.", requestorPlayerID, playerName.c_str()); return; } + // you cannot friend yourself if (requestor.playerName == playerName) { - SendFriendResponse(requestor, requestor, eAddFriendResponseType::MYTHRAN); + SendFriendResponse(requestor, requestor, eAddFriendResponseType::GENERALERROR); return; }; @@ -141,6 +138,13 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { return; } + // Prevent GM friend spam + // If the player we are trying to be friends with is not a civilian and we are a civilian, abort the process + if (requestee.gmLevel > eGameMasterLevel::CIVILIAN && requestor.gmLevel == eGameMasterLevel::CIVILIAN ) { + SendFriendResponse(requestor, requestee, eAddFriendResponseType::MYTHRAN); + return; + } + if (isBestFriendRequest) { uint8_t oldBestFriendStatus{}; @@ -218,15 +222,19 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) { void ChatPacketHandler::HandleFriendResponse(Packet* packet) { CINSTREAM_SKIP_HEADER; - LWOOBJID playerID; - inStream.Read(playerID); - eAddFriendResponseCode clientResponseCode = static_cast<eAddFriendResponseCode>(packet->data[0x14]); - std::string friendName = PacketUtils::ReadString(0x15, packet, true); + LWOOBJID playerID; + eAddFriendResponseCode clientResponseCode; + LUWString friendName; + + inStream.Read(playerID); + inStream.IgnoreBytes(4); + inStream.Read(clientResponseCode); + inStream.Read(friendName); //Now to try and find both of these: auto& requestor = Game::playerContainer.GetPlayerDataMutable(playerID); - auto& requestee = Game::playerContainer.GetPlayerDataMutable(friendName); + auto& requestee = Game::playerContainer.GetPlayerDataMutable(friendName.GetAsString()); if (!requestor || !requestee) return; eAddFriendResponseType serverResponseCode{}; @@ -288,8 +296,11 @@ void ChatPacketHandler::HandleFriendResponse(Packet* packet) { void ChatPacketHandler::HandleRemoveFriend(Packet* packet) { CINSTREAM_SKIP_HEADER; LWOOBJID playerID; + LUWString LUFriendName; inStream.Read(playerID); - std::string friendName = PacketUtils::ReadString(0x14, packet, true); + inStream.IgnoreBytes(4); + inStream.Read(LUFriendName); + auto friendName = LUFriendName.GetAsString(); //we'll have to query the db here to find the user, since you can delete them while they're offline. //First, we need to find their ID: @@ -335,123 +346,144 @@ void ChatPacketHandler::HandleRemoveFriend(Packet* packet) { SendRemoveFriend(goonB, goonAName, true); } -void ChatPacketHandler::HandleChatMessage(Packet* packet) { - CINSTREAM_SKIP_HEADER; - LWOOBJID playerID = LWOOBJID_EMPTY; - inStream.Read(playerID); - - const auto& sender = Game::playerContainer.GetPlayerData(playerID); - - if (!sender) return; - - if (sender.GetIsMuted()) return; - - inStream.SetReadOffset(0x14 * 8); - - uint8_t channel = 0; - inStream.Read(channel); - - std::string message = PacketUtils::ReadString(0x66, packet, true, 512); - - LOG("Got a message from (%s) [%d]: %s", sender.playerName.c_str(), channel, message.c_str()); - - if (channel != 8) return; - - auto* team = Game::playerContainer.GetTeam(playerID); - - if (team == nullptr) return; - - for (const auto memberId : team->memberIDs) { - const auto& otherMember = Game::playerContainer.GetPlayerData(memberId); - - if (!otherMember) return; - - CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(otherMember.playerID); - - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); - bitStream.Write(otherMember.playerID); - bitStream.Write<uint8_t>(8); - bitStream.Write<unsigned int>(69); - bitStream.Write(LUWString(sender.playerName)); - bitStream.Write(sender.playerID); - bitStream.Write<uint16_t>(0); - bitStream.Write<uint8_t>(0); //not mythran nametag - bitStream.Write(LUWString(otherMember.playerName)); - bitStream.Write<uint8_t>(0); //not mythran for receiver - bitStream.Write<uint8_t>(0); //teams? - bitStream.Write(LUWString(message, 512)); - - SystemAddress sysAddr = otherMember.sysAddr; - SEND_PACKET; - } -} - -void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) { - LWOOBJID senderID = PacketUtils::ReadS64(0x08, packet); - std::string receiverName = PacketUtils::ReadString(0x66, packet, true); - std::string message = PacketUtils::ReadString(0xAA, packet, true, 512); - - //Get the bois: - const auto& goonA = Game::playerContainer.GetPlayerData(senderID); - const auto& goonB = Game::playerContainer.GetPlayerData(receiverName); - if (!goonA || !goonB) return; - - if (goonA.GetIsMuted()) return; - - //To the sender: - { - CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(goonA.playerID); - - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); - bitStream.Write(goonA.playerID); - bitStream.Write<uint8_t>(7); - bitStream.Write<unsigned int>(69); - bitStream.Write(LUWString(goonA.playerName)); - bitStream.Write(goonA.playerID); - bitStream.Write<uint16_t>(0); - bitStream.Write<uint8_t>(0); //not mythran nametag - bitStream.Write(LUWString(goonB.playerName)); - bitStream.Write<uint8_t>(0); //not mythran for receiver - bitStream.Write<uint8_t>(0); //success - bitStream.Write(LUWString(message, 512)); - - SystemAddress sysAddr = goonA.sysAddr; - SEND_PACKET; - } - - //To the receiver: - { - CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(goonB.playerID); - - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); - bitStream.Write(goonA.playerID); - bitStream.Write<uint8_t>(7); - bitStream.Write<unsigned int>(69); - bitStream.Write(LUWString(goonA.playerName)); - bitStream.Write(goonA.playerID); - bitStream.Write<uint16_t>(0); - bitStream.Write<uint8_t>(0); //not mythran nametag - bitStream.Write(LUWString(goonB.playerName)); - bitStream.Write<uint8_t>(0); //not mythran for receiver - bitStream.Write<uint8_t>(3); //new whisper - bitStream.Write(LUWString(message, 512)); - - SystemAddress sysAddr = goonB.sysAddr; - SEND_PACKET; - } -} - -void ChatPacketHandler::HandleTeamInvite(Packet* packet) { +void ChatPacketHandler::HandleGMLevelUpdate(Packet* packet) { CINSTREAM_SKIP_HEADER; LWOOBJID playerID; inStream.Read(playerID); - std::string invitedPlayer = PacketUtils::ReadString(0x14, packet, true); + auto& player = Game::playerContainer.GetPlayerData(playerID); + if (!player) return; + inStream.Read(player.gmLevel); +} + +// the structure the client uses to send this packet is shared in many chat messages +// that are sent to the server. Because of this, there are large gaps of unused data in chat messages +void ChatPacketHandler::HandleChatMessage(Packet* packet) { + CINSTREAM_SKIP_HEADER; + LWOOBJID playerID; + inStream.Read(playerID); + + const auto& sender = Game::playerContainer.GetPlayerData(playerID); + if (!sender || sender.GetIsMuted()) return; + + eChatChannel channel; + uint32_t size; + + inStream.IgnoreBytes(4); + inStream.Read(channel); + inStream.Read(size); + inStream.IgnoreBytes(77); + + LUWString message(size); + inStream.Read(message); + + LOG("Got a message from (%s) via [%s]: %s", sender.playerName.c_str(), StringifiedEnum::ToString(channel).data(), message.GetAsString().c_str()); + + switch (channel) { + case eChatChannel::TEAM: { + auto* team = Game::playerContainer.GetTeam(playerID); + if (team == nullptr) return; + + for (const auto memberId : team->memberIDs) { + const auto& otherMember = Game::playerContainer.GetPlayerData(memberId); + if (!otherMember) return; + SendPrivateChatMessage(sender, otherMember, otherMember, message, eChatChannel::TEAM, eChatMessageResponseCode::SENT); + } + break; + } + default: + LOG("Unhandled Chat channel [%s]", StringifiedEnum::ToString(channel).data()); + break; + } +} + +// the structure the client uses to send this packet is shared in many chat messages +// that are sent to the server. Because of this, there are large gaps of unused data in chat messages +void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) { + CINSTREAM_SKIP_HEADER; + LWOOBJID playerID; + inStream.Read(playerID); + + const auto& sender = Game::playerContainer.GetPlayerData(playerID); + if (!sender || sender.GetIsMuted()) return; + + eChatChannel channel; + uint32_t size; + LUWString LUReceiverName; + + inStream.IgnoreBytes(4); + inStream.Read(channel); + if (channel != eChatChannel::PRIVATE_CHAT) LOG("WARNING: Received Private chat with the wrong channel!"); + + inStream.Read(size); + inStream.IgnoreBytes(77); + + inStream.Read(LUReceiverName); + auto receiverName = LUReceiverName.GetAsString(); + inStream.IgnoreBytes(2); + + LUWString message(size); + inStream.Read(message); + + LOG("Got a message from (%s) via [%s]: %s to %s", sender.playerName.c_str(), StringifiedEnum::ToString(channel).data(), message.GetAsString().c_str(), receiverName.c_str()); + + const auto& receiver = Game::playerContainer.GetPlayerData(receiverName); + if (!receiver) { + PlayerData otherPlayer; + otherPlayer.playerName = receiverName; + auto responseType = Database::Get()->GetCharacterInfo(receiverName) + ? eChatMessageResponseCode::NOTONLINE + : eChatMessageResponseCode::GENERALERROR; + + SendPrivateChatMessage(sender, otherPlayer, sender, message, eChatChannel::GENERAL, responseType); + return; + } + + // Check to see if they are friends + // only freinds can whispr each other + for (const auto& fr : receiver.friends) { + if (fr.friendID == sender.playerID) { + //To the sender: + SendPrivateChatMessage(sender, receiver, sender, message, eChatChannel::PRIVATE_CHAT, eChatMessageResponseCode::SENT); + //To the receiver: + SendPrivateChatMessage(sender, receiver, receiver, message, eChatChannel::PRIVATE_CHAT, eChatMessageResponseCode::RECEIVEDNEWWHISPER); + return; + } + } + SendPrivateChatMessage(sender, receiver, sender, message, eChatChannel::GENERAL, eChatMessageResponseCode::NOTFRIENDS); +} + +void ChatPacketHandler::SendPrivateChatMessage(const PlayerData& sender, const PlayerData& receiver, const PlayerData& routeTo, const LUWString& message, const eChatChannel channel, const eChatMessageResponseCode responseCode) { + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); + bitStream.Write(routeTo.playerID); + + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); + bitStream.Write(sender.playerID); + bitStream.Write(channel); + bitStream.Write<uint32_t>(0); // not used + bitStream.Write(LUWString(sender.playerName)); + bitStream.Write(sender.playerID); + bitStream.Write<uint16_t>(0); // sourceID + bitStream.Write(sender.gmLevel); + bitStream.Write(LUWString(receiver.playerName)); + bitStream.Write(receiver.gmLevel); + bitStream.Write(responseCode); + bitStream.Write(message); + + SystemAddress sysAddr = routeTo.sysAddr; + SEND_PACKET; +} + + +void ChatPacketHandler::HandleTeamInvite(Packet* packet) { + CINSTREAM_SKIP_HEADER; + + LWOOBJID playerID; + LUWString invitedPlayer; + + inStream.Read(playerID); + inStream.IgnoreBytes(4); + inStream.Read(invitedPlayer); const auto& player = Game::playerContainer.GetPlayerData(playerID); @@ -463,7 +495,7 @@ void ChatPacketHandler::HandleTeamInvite(Packet* packet) { team = Game::playerContainer.CreateTeam(playerID); } - const auto& other = Game::playerContainer.GetPlayerData(invitedPlayer); + const auto& other = Game::playerContainer.GetPlayerData(invitedPlayer.GetAsString()); if (!other) return; @@ -480,7 +512,7 @@ void ChatPacketHandler::HandleTeamInvite(Packet* packet) { SendTeamInvite(other, player); - LOG("Got team invite: %llu -> %s", playerID, invitedPlayer.c_str()); + LOG("Got team invite: %llu -> %s", playerID, invitedPlayer.GetAsString().c_str()); } void ChatPacketHandler::HandleTeamInviteResponse(Packet* packet) { @@ -534,21 +566,25 @@ void ChatPacketHandler::HandleTeamLeave(Packet* packet) { void ChatPacketHandler::HandleTeamKick(Packet* packet) { CINSTREAM_SKIP_HEADER; + LWOOBJID playerID = LWOOBJID_EMPTY; + LUWString kickedPlayer; + inStream.Read(playerID); + inStream.IgnoreBytes(4); + inStream.Read(kickedPlayer); - std::string kickedPlayer = PacketUtils::ReadString(0x14, packet, true); - LOG("(%llu) kicking (%s) from team", playerID, kickedPlayer.c_str()); + LOG("(%llu) kicking (%s) from team", playerID, kickedPlayer.GetAsString().c_str()); - const auto& kicked = Game::playerContainer.GetPlayerData(kickedPlayer); + const auto& kicked = Game::playerContainer.GetPlayerData(kickedPlayer.GetAsString()); LWOOBJID kickedId = LWOOBJID_EMPTY; if (kicked) { kickedId = kicked.playerID; } else { - kickedId = Game::playerContainer.GetId(GeneralUtils::UTF8ToUTF16(kickedPlayer)); + kickedId = Game::playerContainer.GetId(kickedPlayer.string); } if (kickedId == LWOOBJID_EMPTY) return; @@ -564,14 +600,17 @@ void ChatPacketHandler::HandleTeamKick(Packet* packet) { void ChatPacketHandler::HandleTeamPromote(Packet* packet) { CINSTREAM_SKIP_HEADER; + LWOOBJID playerID = LWOOBJID_EMPTY; + LUWString promotedPlayer; + inStream.Read(playerID); + inStream.IgnoreBytes(4); + inStream.Read(promotedPlayer); - std::string promotedPlayer = PacketUtils::ReadString(0x14, packet, true); + LOG("(%llu) promoting (%s) to team leader", playerID, promotedPlayer.GetAsString().c_str()); - LOG("(%llu) promoting (%s) to team leader", playerID, promotedPlayer.c_str()); - - const auto& promoted = Game::playerContainer.GetPlayerData(promotedPlayer); + const auto& promoted = Game::playerContainer.GetPlayerData(promotedPlayer.GetAsString()); if (!promoted) return; diff --git a/dChatServer/ChatPacketHandler.h b/dChatServer/ChatPacketHandler.h index 6c9c2de6..847fc899 100644 --- a/dChatServer/ChatPacketHandler.h +++ b/dChatServer/ChatPacketHandler.h @@ -7,14 +7,53 @@ struct PlayerData; enum class eAddFriendResponseType : uint8_t; +enum class eChatChannel : uint8_t { + SYSTEMNOTIFY = 0, + SYSTEMWARNING, + SYSTEMERROR, + BROADCAST, + LOCAL, + LOCALNOANIM, + EMOTE, + PRIVATE_CHAT, + TEAM, + TEAMLOCAL, + GUILD, + GUILDNOTIFY, + PROPERTY, + ADMIN, + COMBATDAMAGE, + COMBATHEALING, + COMBATLOOT, + COMBATEXP, + COMBATDEATH, + GENERAL, + TRADE, + LFG, + USER +}; + + +enum class eChatMessageResponseCode : uint8_t { + SENT = 0, + NOTONLINE, + GENERALERROR, + RECEIVEDNEWWHISPER, + NOTFRIENDS, + SENDERFREETRIAL, + RECEIVERFREETRIAL, +}; + namespace ChatPacketHandler { void HandleFriendlistRequest(Packet* packet); void HandleFriendRequest(Packet* packet); void HandleFriendResponse(Packet* packet); void HandleRemoveFriend(Packet* packet); + void HandleGMLevelUpdate(Packet* packet); void HandleChatMessage(Packet* packet); void HandlePrivateChatMessage(Packet* packet); + void SendPrivateChatMessage(const PlayerData& sender, const PlayerData& receiver, const PlayerData& routeTo, const LUWString& message, const eChatChannel channel, const eChatMessageResponseCode responseCode); void HandleTeamInvite(Packet* packet); void HandleTeamInviteResponse(Packet* packet); diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 8ab66d73..d04cbd01 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -20,6 +20,7 @@ #include "eChatInternalMessageType.h" #include "eWorldMessageType.h" #include "ChatIgnoreList.h" +#include "StringifiedEnum.h" #include "Game.h" #include "Server.h" @@ -223,7 +224,8 @@ void HandlePacket(Packet* packet) { } if (static_cast<eConnectionType>(packet->data[1]) == eConnectionType::CHAT) { - switch (static_cast<eChatMessageType>(packet->data[3])) { + eChatMessageType chat_message_type = static_cast<eChatMessageType>(packet->data[3]); + switch (chat_message_type) { case eChatMessageType::GET_FRIENDS_LIST: ChatPacketHandler::HandleFriendlistRequest(packet); break; @@ -293,9 +295,61 @@ void HandlePacket(Packet* packet) { case eChatMessageType::TEAM_SET_LOOT: ChatPacketHandler::HandleTeamLootOption(packet); break; - + case eChatMessageType::GMLEVEL_UPDATE: + ChatPacketHandler::HandleGMLevelUpdate(packet); + break; + case eChatMessageType::LOGIN_SESSION_NOTIFY: + case eChatMessageType::USER_CHANNEL_CHAT_MESSAGE: + case eChatMessageType::WORLD_DISCONNECT_REQUEST: + case eChatMessageType::WORLD_PROXIMITY_RESPONSE: + case eChatMessageType::WORLD_PARCEL_RESPONSE: + case eChatMessageType::TEAM_MISSED_INVITE_CHECK: + case eChatMessageType::GUILD_CREATE: + case eChatMessageType::GUILD_INVITE: + case eChatMessageType::GUILD_INVITE_RESPONSE: + case eChatMessageType::GUILD_LEAVE: + case eChatMessageType::GUILD_KICK: + case eChatMessageType::GUILD_GET_STATUS: + case eChatMessageType::GUILD_GET_ALL: + case eChatMessageType::SHOW_ALL: + case eChatMessageType::BLUEPRINT_MODERATED: + case eChatMessageType::BLUEPRINT_MODEL_READY: + case eChatMessageType::PROPERTY_READY_FOR_APPROVAL: + case eChatMessageType::PROPERTY_MODERATION_CHANGED: + case eChatMessageType::PROPERTY_BUILDMODE_CHANGED: + case eChatMessageType::PROPERTY_BUILDMODE_CHANGED_REPORT: + case eChatMessageType::MAIL: + case eChatMessageType::WORLD_INSTANCE_LOCATION_REQUEST: + case eChatMessageType::REPUTATION_UPDATE: + case eChatMessageType::SEND_CANNED_TEXT: + case eChatMessageType::CHARACTER_NAME_CHANGE_REQUEST: + case eChatMessageType::CSR_REQUEST: + case eChatMessageType::CSR_REPLY: + case eChatMessageType::GM_KICK: + case eChatMessageType::GM_ANNOUNCE: + case eChatMessageType::WORLD_ROUTE_PACKET: + case eChatMessageType::GET_ZONE_POPULATIONS: + case eChatMessageType::REQUEST_MINIMUM_CHAT_MODE: + case eChatMessageType::MATCH_REQUEST: + case eChatMessageType::UGCMANIFEST_REPORT_MISSING_FILE: + case eChatMessageType::UGCMANIFEST_REPORT_DONE_FILE: + case eChatMessageType::UGCMANIFEST_REPORT_DONE_BLUEPRINT: + case eChatMessageType::UGCC_REQUEST: + case eChatMessageType::WHO: + case eChatMessageType::WORLD_PLAYERS_PET_MODERATED_ACKNOWLEDGE: + case eChatMessageType::ACHIEVEMENT_NOTIFY: + case eChatMessageType::GM_CLOSE_PRIVATE_CHAT_WINDOW: + case eChatMessageType::UNEXPECTED_DISCONNECT: + case eChatMessageType::PLAYER_READY: + case eChatMessageType::GET_DONATION_TOTAL: + case eChatMessageType::UPDATE_DONATION: + case eChatMessageType::PRG_CSR_COMMAND: + case eChatMessageType::HEARTBEAT_REQUEST_FROM_WORLD: + case eChatMessageType::UPDATE_FREE_TRIAL_STATUS: + LOG("Unhandled CHAT Message id: %s (%i)", StringifiedEnum::ToString(chat_message_type).data(), chat_message_type); + break; default: - LOG("Unknown CHAT id: %i", int(packet->data[3])); + LOG("Unknown CHAT Message id: %i", chat_message_type); } } diff --git a/dChatServer/PlayerContainer.cpp b/dChatServer/PlayerContainer.cpp index 242ccad1..969f5c2e 100644 --- a/dChatServer/PlayerContainer.cpp +++ b/dChatServer/PlayerContainer.cpp @@ -10,6 +10,7 @@ #include "Database.h" #include "eConnectionType.h" #include "eChatInternalMessageType.h" +#include "eGameMasterLevel.h" #include "ChatPackets.h" #include "dConfig.h" @@ -22,6 +23,10 @@ PlayerContainer::~PlayerContainer() { m_Players.clear(); } +PlayerData::PlayerData() { + gmLevel == eGameMasterLevel::CIVILIAN; +} + TeamData::TeamData() { lootFlag = Game::config->GetValue("default_team_loot") == "0" ? 0 : 1; } @@ -47,6 +52,7 @@ void PlayerContainer::InsertPlayer(Packet* packet) { inStream.Read(data.zoneID); inStream.Read(data.muteExpire); + inStream.Read(data.gmLevel); data.sysAddr = packet->systemAddress; m_Names[data.playerID] = GeneralUtils::UTF8ToUTF16(data.playerName); diff --git a/dChatServer/PlayerContainer.h b/dChatServer/PlayerContainer.h index 3cacc62d..f34b1e54 100644 --- a/dChatServer/PlayerContainer.h +++ b/dChatServer/PlayerContainer.h @@ -7,6 +7,8 @@ #include "dServer.h" #include <unordered_map> +enum class eGameMasterLevel : uint8_t; + struct IgnoreData { IgnoreData(const std::string& name, const LWOOBJID& id) : playerName(name), playerId(id) {} inline bool operator==(const std::string& other) const noexcept { @@ -22,6 +24,7 @@ struct IgnoreData { }; struct PlayerData { + PlayerData(); operator bool() const noexcept { return playerID != LWOOBJID_EMPTY; } @@ -42,6 +45,8 @@ struct PlayerData { std::string playerName; std::vector<FriendData> friends; std::vector<IgnoreData> ignoredPlayers; + eGameMasterLevel gmLevel; + bool isFTP = false; }; struct TeamData { diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index cdd94671..ddfaa2fc 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -25,6 +25,7 @@ #include "eTriggerEventType.h" #include "eObjectBits.h" #include "PositionUpdate.h" +#include "eChatMessageType.h" //Component includes: #include "Component.h" @@ -858,9 +859,20 @@ void Entity::SetGMLevel(eGameMasterLevel value) { } CharacterComponent* character = GetComponent<CharacterComponent>(); - if (character) character->SetGMLevel(value); + if (!character) return; + character->SetGMLevel(value); GameMessages::SendGMLevelBroadcast(m_ObjectID, value); + + // Update the chat server of our GM Level + { + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::GMLEVEL_UPDATE); + bitStream.Write(m_ObjectID); + bitStream.Write(m_GMLevel); + + Game::chatServer->Send(&bitStream, SYSTEM_PRIORITY, RELIABLE, 0, Game::chatSysAddr, false); + } } void Entity::WriteBaseReplicaData(RakNet::BitStream* outBitStream, eReplicaPacketType packetType) { diff --git a/dNet/PacketUtils.cpp b/dNet/PacketUtils.cpp index 95c3b2b1..5394cff0 100644 --- a/dNet/PacketUtils.cpp +++ b/dNet/PacketUtils.cpp @@ -1,64 +1,8 @@ #include "PacketUtils.h" -#include <vector> #include <fstream> #include "Logger.h" #include "Game.h" -uint16_t PacketUtils::ReadU16(uint32_t startLoc, Packet* packet) { - if (startLoc + 2 > packet->length) return 0; - - std::vector<unsigned char> t; - for (uint32_t i = startLoc; i < startLoc + 2; i++) t.push_back(packet->data[i]); - return *(uint16_t*)t.data(); -} - -uint32_t PacketUtils::ReadU32(uint32_t startLoc, Packet* packet) { - if (startLoc + 4 > packet->length) return 0; - - std::vector<unsigned char> t; - for (uint32_t i = startLoc; i < startLoc + 4; i++) { - t.push_back(packet->data[i]); - } - return *(uint32_t*)t.data(); -} - -uint64_t PacketUtils::ReadU64(uint32_t startLoc, Packet* packet) { - if (startLoc + 8 > packet->length) return 0; - - std::vector<unsigned char> t; - for (uint32_t i = startLoc; i < startLoc + 8; i++) t.push_back(packet->data[i]); - return *(uint64_t*)t.data(); -} - -int64_t PacketUtils::ReadS64(uint32_t startLoc, Packet* packet) { - if (startLoc + 8 > packet->length) return 0; - - std::vector<unsigned char> t; - for (size_t i = startLoc; i < startLoc + 8; i++) t.push_back(packet->data[i]); - return *(int64_t*)t.data(); -} - -std::string PacketUtils::ReadString(uint32_t startLoc, Packet* packet, bool wide, uint32_t maxLen) { - std::string readString = ""; - - if (wide) maxLen *= 2; - - if (packet->length > startLoc) { - uint32_t i = 0; - while (packet->data[startLoc + i] != '\0' && packet->length > static_cast<uint32_t>(startLoc + i) && maxLen > i) { - readString.push_back(packet->data[startLoc + i]); - - if (wide) { - i += 2; // Wide-char string - } else { - i++; // Regular string - } - } - } - - return readString; -} - //! Saves a packet to the filesystem void PacketUtils::SavePacket(const std::string& filename, const char* data, size_t length) { //If we don't log to the console, don't save the bin files either. This takes up a lot of time. diff --git a/dNet/PacketUtils.h b/dNet/PacketUtils.h index f8558dfd..3cd44b5f 100644 --- a/dNet/PacketUtils.h +++ b/dNet/PacketUtils.h @@ -8,11 +8,6 @@ enum class eConnectionType : uint16_t; namespace PacketUtils { - uint16_t ReadU16(uint32_t startLoc, Packet* packet); - uint32_t ReadU32(uint32_t startLoc, Packet* packet); - uint64_t ReadU64(uint32_t startLoc, Packet* packet); - int64_t ReadS64(uint32_t startLoc, Packet* packet); - std::string ReadString(uint32_t startLoc, Packet* packet, bool wide, uint32_t maxLen = 33); void SavePacket(const std::string& filename, const char* data, size_t length); }; diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index 2b53190a..ccc300bc 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -1126,6 +1126,7 @@ void HandlePacket(Packet* packet) { bitStream.Write(zone.GetInstanceID()); bitStream.Write(zone.GetCloneID()); bitStream.Write(player->GetParentUser()->GetMuteExpire()); + bitStream.Write(player->GetGMLevel()); Game::chatServer->Send(&bitStream, SYSTEM_PRIORITY, RELIABLE, 0, Game::chatSysAddr, false); } From 0a30430c4f1a5dc95cc826645300f201d1466ef0 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sun, 14 Jan 2024 01:46:56 -0800 Subject: [PATCH 104/106] fix: Remove pending timer logic (#1416) * remove pending timers they serve no purpose anymore since iterator invalidation is a non-issue. I added this initially to make it so if you added a timer this frame, there would be at least 1 frame before you would start it, but this in practice doesnt serve a purpose * timers still work --- dGame/Entity.cpp | 38 ++++++++++++++++++-------------------- dGame/Entity.h | 2 -- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index ddfaa2fc..46350803 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -1243,12 +1243,18 @@ void Entity::Update(const float deltaTime) { // If the timer is expired, erase it and dont increment the position because the next timer will be at the same position. // Before: [0, 1, 2, 3, ..., n] // timerPosition ^ - // After: [0, 1, 3, ..., n] + // After: [0, 1, n, ..., n - 1] 2 is expired and removed now // timerPosition ^ if (timer.GetTime() <= 0) { // Remove the timer from the list of timers first so that scripts and events can remove timers without causing iterator invalidation auto timerName = timer.GetName(); - m_Timers.erase(m_Timers.begin() + timerPosition); + // We don't need to copy the element if there is only 1 element nor do we need to copy if we are on the last element. + // This is a clever removal trick that avoids having to copy the entire vector and instead replaces this now expired + // element with the last element in the vector and then removes the last element. + if (m_Timers.size() > 1 && timerPosition < m_Timers.size() - 1) { + m_Timers[timerPosition] = m_Timers[m_Timers.size() - 1]; + } + m_Timers.erase(m_Timers.end() - 1); for (CppScripts::Script* script : CppScripts::GetEntityScripts(this)) { script->OnTimerDone(this, timerName); } @@ -1264,31 +1270,26 @@ void Entity::Update(const float deltaTime) { // If the timer is expired, erase it and dont increment the position because the next timer will be at the same position. // Before: [0, 1, 2, 3, ..., n] // timerPosition ^ - // After: [0, 1, 3, ..., n] + // After: [0, 1, n, ..., n - 1] 2 is expired and removed now // timerPosition ^ auto& callbackTimer = m_CallbackTimers[timerPosition]; callbackTimer.Update(deltaTime); if (callbackTimer.GetTime() <= 0) { // Remove the timer from the list of timers first so that callbacks can remove timers without causing iterator invalidation auto callback = callbackTimer.GetCallback(); - m_CallbackTimers.erase(m_CallbackTimers.begin() + timerPosition); + // We don't need to copy the element if there is only 1 element nor do we need to copy if we are on the last element. + // This is a clever removal trick that avoids having to copy the entire vector and instead replaces this now expired + // element with the last element in the vector and then removes the last element. + if (m_CallbackTimers.size() > 1 && timerPosition < m_CallbackTimers.size() - 1) { + m_CallbackTimers[timerPosition] = m_CallbackTimers[m_CallbackTimers.size() - 1]; + } + m_CallbackTimers.erase(m_CallbackTimers.end() - 1); callback(); } else { timerPosition++; } } - // Add pending timers to the list of timers so they start next tick. - if (!m_PendingTimers.empty()) { - m_Timers.insert(m_Timers.end(), m_PendingTimers.begin(), m_PendingTimers.end()); - m_PendingTimers.clear(); - } - - if (!m_PendingCallbackTimers.empty()) { - m_CallbackTimers.insert(m_CallbackTimers.end(), m_PendingCallbackTimers.begin(), m_PendingCallbackTimers.end()); - m_PendingCallbackTimers.clear(); - } - if (IsSleeping()) { Sleep(); @@ -1724,11 +1725,11 @@ void Entity::RemoveParent() { } void Entity::AddTimer(std::string name, float time) { - m_PendingTimers.emplace_back(name, time); + m_Timers.emplace_back(name, time); } void Entity::AddCallbackTimer(float time, std::function<void()> callback) { - m_PendingCallbackTimers.emplace_back(time, callback); + m_CallbackTimers.emplace_back(time, callback); } bool Entity::HasTimer(const std::string& name) { @@ -1737,7 +1738,6 @@ bool Entity::HasTimer(const std::string& name) { void Entity::CancelCallbackTimers() { m_CallbackTimers.clear(); - m_PendingCallbackTimers.clear(); } void Entity::ScheduleKillAfterUpdate(Entity* murderer) { @@ -1759,9 +1759,7 @@ void Entity::CancelTimer(const std::string& name) { void Entity::CancelAllTimers() { m_Timers.clear(); - m_PendingTimers.clear(); m_CallbackTimers.clear(); - m_PendingCallbackTimers.clear(); } bool Entity::IsPlayer() const { diff --git a/dGame/Entity.h b/dGame/Entity.h index 36621d5c..e4ec71ab 100644 --- a/dGame/Entity.h +++ b/dGame/Entity.h @@ -330,9 +330,7 @@ protected: std::unordered_map<eReplicaComponentType, Component*> m_Components; std::vector<EntityTimer> m_Timers; - std::vector<EntityTimer> m_PendingTimers; std::vector<EntityCallbackTimer> m_CallbackTimers; - std::vector<EntityCallbackTimer> m_PendingCallbackTimers; bool m_ShouldDestroyAfterUpdate = false; From c83ec8228c4d67323b5bac87725bcbcefe576874 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sun, 14 Jan 2024 11:10:13 -0800 Subject: [PATCH 105/106] chore: Move Player ghosting functionality to GhostComponent (#1413) * Moving and organizing Player code - Move code to CharacterComponent - Remove extraneous interfaces - Simplify some code greatly - Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.) - Update code to use CharacterComponent for sending to zone instead of Player*. * Moving and organizing Player code - Move code to CharacterComponent - Remove extraneous interfaces - Simplify some code greatly - Change some types to return and take in const ref (only structs larger than 8 bytes benefit from this change.) - Update code to use CharacterComponent for sending to zone instead of Player*. - Remove static storage container (static containers can be destroyed before exit/terminate handler executes) * remove player cast * Remove extra includes * Add a player manager Used for the static Player functions. Further removes stuff from the Player class/file. * chore: Move ghosting functionality to component Tested that ghosting still works and players are still firing off the OnPlayerLeave and relevant handlers. * move to unordered_set --- dGame/Entity.cpp | 6 +- dGame/EntityManager.cpp | 34 +++++---- dGame/Player.cpp | 81 +--------------------- dGame/Player.h | 36 ---------- dGame/PlayerManager.cpp | 7 +- dGame/PlayerManager.h | 2 +- dGame/dComponents/GhostComponent.cpp | 57 ++++++++++++++- dGame/dComponents/GhostComponent.h | 41 +++++++++++ dGame/dGameMessages/GameMessageHandler.cpp | 11 +-- dGame/dGameMessages/GameMessages.cpp | 7 +- 10 files changed, 138 insertions(+), 144 deletions(-) diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 46350803..23f0b6b6 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -2135,9 +2135,9 @@ void Entity::ProcessPositionUpdate(PositionUpdate& update) { controllablePhysicsComponent->SetAngularVelocity(update.angularVelocity); controllablePhysicsComponent->SetDirtyAngularVelocity(update.angularVelocity != NiPoint3::ZERO); - auto* player = static_cast<Player*>(this); - player->SetGhostReferencePoint(update.position); - Game::entityManager->QueueGhostUpdate(player->GetObjectID()); + auto* ghostComponent = GetComponent<GhostComponent>(); + if (ghostComponent) ghostComponent->SetGhostReferencePoint(update.position); + Game::entityManager->QueueGhostUpdate(GetObjectID()); if (updateChar) Game::entityManager->SerializeEntity(this); } diff --git a/dGame/EntityManager.cpp b/dGame/EntityManager.cpp index 29aa54bb..10655d25 100644 --- a/dGame/EntityManager.cpp +++ b/dGame/EntityManager.cpp @@ -24,6 +24,7 @@ #include "eReplicaComponentType.h" #include "eReplicaPacketType.h" #include "PlayerManager.h" +#include "GhostComponent.h" // Configure which zones have ghosting disabled, mostly small worlds. std::vector<LWOMAPID> EntityManager::m_GhostingExcludedZones = { @@ -189,7 +190,8 @@ void EntityManager::SerializeEntities() { if (entity->GetIsGhostingCandidate()) { for (auto* player : PlayerManager::GetAllPlayers()) { - if (player->IsObserved(toSerialize)) { + auto* ghostComponent = player->GetComponent<GhostComponent>(); + if (ghostComponent && ghostComponent->IsObserved(toSerialize)) { Game::server->Send(&stream, player->GetSystemAddress(), false); } } @@ -381,7 +383,8 @@ void EntityManager::ConstructEntity(Entity* entity, const SystemAddress& sysAddr if (player->GetPlayerReadyForUpdates()) { Game::server->Send(&stream, player->GetSystemAddress(), false); } else { - player->AddLimboConstruction(entity->GetObjectID()); + auto* ghostComponent = player->GetComponent<GhostComponent>(); + if (ghostComponent) ghostComponent->AddLimboConstruction(entity->GetObjectID()); } } } @@ -421,7 +424,8 @@ void EntityManager::DestructEntity(Entity* entity, const SystemAddress& sysAddr) for (auto* player : PlayerManager::GetAllPlayers()) { if (!player->GetPlayerReadyForUpdates()) { - player->RemoveLimboConstruction(entity->GetObjectID()); + auto* ghostComponent = player->GetComponent<GhostComponent>(); + if (ghostComponent) ghostComponent->RemoveLimboConstruction(entity->GetObjectID()); } } } @@ -484,13 +488,14 @@ void EntityManager::UpdateGhosting(Player* player) { } auto* missionComponent = player->GetComponent<MissionComponent>(); + auto* ghostComponent = player->GetComponent<GhostComponent>(); - if (missionComponent == nullptr) { + if (missionComponent == nullptr || !ghostComponent) { return; } - const auto& referencePoint = player->GetGhostReferencePoint(); - const auto isOverride = player->GetGhostOverride(); + const auto& referencePoint = ghostComponent->GetGhostReferencePoint(); + const auto isOverride = ghostComponent->GetGhostOverride(); for (auto* entity : m_EntitiesToGhost) { const auto isAudioEmitter = entity->GetLOT() == 6368; @@ -499,7 +504,7 @@ void EntityManager::UpdateGhosting(Player* player) { const int32_t id = entity->GetObjectID(); - const auto observed = player->IsObserved(id); + const auto observed = ghostComponent->IsObserved(id); const auto distance = NiPoint3::DistanceSquared(referencePoint, entityPoint); @@ -511,7 +516,7 @@ void EntityManager::UpdateGhosting(Player* player) { } if (observed && distance > ghostingDistanceMax && !isOverride) { - player->GhostEntity(id); + ghostComponent->GhostEntity(id); DestructEntity(entity, player->GetSystemAddress()); @@ -528,7 +533,7 @@ void EntityManager::UpdateGhosting(Player* player) { } } - player->ObserveEntity(id); + ghostComponent->ObserveEntity(id); ConstructEntity(entity, player->GetSystemAddress()); @@ -550,22 +555,25 @@ void EntityManager::CheckGhosting(Entity* entity) { const auto isAudioEmitter = entity->GetLOT() == 6368; for (auto* player : PlayerManager::GetAllPlayers()) { - const auto& entityPoint = player->GetGhostReferencePoint(); + auto* ghostComponent = player->GetComponent<GhostComponent>(); + if (!ghostComponent) continue; + + const auto& entityPoint = ghostComponent->GetGhostReferencePoint(); const int32_t id = entity->GetObjectID(); - const auto observed = player->IsObserved(id); + const auto observed = ghostComponent->IsObserved(id); const auto distance = NiPoint3::DistanceSquared(referencePoint, entityPoint); if (observed && distance > ghostingDistanceMax) { - player->GhostEntity(id); + ghostComponent->GhostEntity(id); DestructEntity(entity, player->GetSystemAddress()); entity->SetObservers(entity->GetObservers() - 1); } else if (!observed && ghostingDistanceMin > distance) { - player->ObserveEntity(id); + ghostComponent->ObserveEntity(id); ConstructEntity(entity, player->GetSystemAddress()); diff --git a/dGame/Player.cpp b/dGame/Player.cpp index 96ba1ecd..8f414b43 100644 --- a/dGame/Player.cpp +++ b/dGame/Player.cpp @@ -14,14 +14,6 @@ #include "eReplicaComponentType.h" #include "PlayerManager.h" -void Player::SetGhostReferencePoint(const NiPoint3& value) { - m_GhostReferencePoint = value; -} - -void Player::SetGhostOverridePoint(const NiPoint3& value) { - m_GhostOverridePoint = value; -} - void Player::SetRespawnPos(const NiPoint3& position) { if (!m_Character) return; @@ -47,85 +39,16 @@ Player::Player(const LWOOBJID& objectID, const EntityInfo info, User* user, Enti m_SystemAddress = m_ParentUser->GetSystemAddress(); m_DroppedCoins = 0; - m_GhostReferencePoint = NiPoint3::ZERO; - m_GhostOverridePoint = NiPoint3::ZERO; - m_GhostOverride = false; - - int32_t initialObservedEntitiesCapacity = 256; - m_ObservedEntities.resize(initialObservedEntitiesCapacity); - m_Character->SetEntity(this); PlayerManager::AddPlayer(this); } -void Player::AddLimboConstruction(LWOOBJID objectId) { - const auto iter = std::find(m_LimboConstructions.begin(), m_LimboConstructions.end(), objectId); - if (iter == m_LimboConstructions.end()) { - m_LimboConstructions.push_back(objectId); - } -} - -void Player::RemoveLimboConstruction(LWOOBJID objectId) { - const auto iter = std::find(m_LimboConstructions.begin(), m_LimboConstructions.end(), objectId); - if (iter != m_LimboConstructions.end()) { - m_LimboConstructions.erase(iter); - } -} - -void Player::ConstructLimboEntities() { - for (const auto& objectId : m_LimboConstructions) { - auto* entity = Game::entityManager->GetEntity(objectId); - if (!entity) continue; - - Game::entityManager->ConstructEntity(entity, m_SystemAddress); - } - - m_LimboConstructions.clear(); -} - -void Player::ObserveEntity(int32_t id) { - for (auto& observedEntity : m_ObservedEntities) { - if (observedEntity == 0 || observedEntity == id) { - observedEntity = id; - - return; - } - } - - m_ObservedEntities.reserve(m_ObservedEntities.size() + 1); - - m_ObservedEntities.push_back(id); -} - -bool Player::IsObserved(int32_t id) { - return std::find(m_ObservedEntities.begin(), m_ObservedEntities.end(), id) != m_ObservedEntities.end(); -} - -void Player::GhostEntity(int32_t id) { - for (auto& observedEntity : m_ObservedEntities) { - if (observedEntity == id) { - observedEntity = 0; - } - } -} - Player::~Player() { LOG("Deleted player"); - - for (auto& observedEntity : m_ObservedEntities) { - if (observedEntity == 0) continue; - - auto* entity = Game::entityManager->GetGhostCandidate(observedEntity); - if (!entity) continue; - - entity->SetObservers(entity->GetObservers() - 1); - } - - m_LimboConstructions.clear(); // Make sure the player exists first. Remove afterwards to prevent the OnPlayerExist functions from not being able to find the player. - if (!PlayerManager::GetPlayer(GetObjectID())) { + if (!PlayerManager::RemovePlayer(this)) { LOG("Unable to find player to remove from manager."); return; } @@ -145,6 +68,4 @@ Player::~Player() { } } } - - PlayerManager::RemovePlayer(this); } diff --git a/dGame/Player.h b/dGame/Player.h index a168c70b..dd8efd9c 100644 --- a/dGame/Player.h +++ b/dGame/Player.h @@ -26,14 +26,6 @@ public: const NiQuaternion& GetRespawnRotation() const override { return m_respawnRot; }; - const NiPoint3& GetGhostReferencePoint() const { return m_GhostOverride ? m_GhostOverridePoint : m_GhostReferencePoint; }; - - const NiPoint3& GetOriginGhostReferencePoint() const { return m_GhostReferencePoint; }; - - const NiPoint3& GetGhostOverridePoint() const { return m_GhostOverridePoint; }; - - bool GetGhostOverride() const { return m_GhostOverride; }; - std::map<LWOOBJID, Loot::Info>& GetDroppedLoot() { return m_DroppedLoot; }; uint64_t GetDroppedCoins() const { return m_DroppedCoins; }; @@ -42,8 +34,6 @@ public: * Setters */ - void SetGhostOverride(bool value) { m_GhostOverride = value; }; - void SetDroppedCoins(const uint64_t value) { m_DroppedCoins = value; }; void SetSystemAddress(const SystemAddress& value) override; @@ -52,26 +42,10 @@ public: void SetRespawnRot(const NiQuaternion& rotation) override; - void SetGhostReferencePoint(const NiPoint3& value); - - void SetGhostOverridePoint(const NiPoint3& value); - /** * Ghosting */ - void AddLimboConstruction(LWOOBJID objectId); - - void RemoveLimboConstruction(LWOOBJID objectId); - - void ConstructLimboEntities(); - - void ObserveEntity(const int32_t id); - - bool IsObserved(const int32_t id); - - void GhostEntity(const int32_t id); - ~Player() override; private: SystemAddress m_SystemAddress; @@ -82,16 +56,6 @@ private: User* m_ParentUser; - NiPoint3 m_GhostReferencePoint; - - NiPoint3 m_GhostOverridePoint; - - bool m_GhostOverride; - - std::vector<int32_t> m_ObservedEntities; - - std::vector<LWOOBJID> m_LimboConstructions; - std::map<LWOOBJID, Loot::Info> m_DroppedLoot; uint64_t m_DroppedCoins; diff --git a/dGame/PlayerManager.cpp b/dGame/PlayerManager.cpp index 7094abf7..e3017f05 100644 --- a/dGame/PlayerManager.cpp +++ b/dGame/PlayerManager.cpp @@ -22,12 +22,15 @@ void PlayerManager::AddPlayer(Player* player) { } } -void PlayerManager::RemovePlayer(Player* player) { +bool PlayerManager::RemovePlayer(Player* player) { const auto iter = std::find(m_Players.begin(), m_Players.end(), player); - if (iter != m_Players.end()) { + const bool toReturn = iter != m_Players.end(); + if (toReturn) { m_Players.erase(iter); } + + return toReturn; } Player* PlayerManager::GetPlayer(const SystemAddress& sysAddr) { diff --git a/dGame/PlayerManager.h b/dGame/PlayerManager.h index 7b88ebfd..bb54f83b 100644 --- a/dGame/PlayerManager.h +++ b/dGame/PlayerManager.h @@ -11,7 +11,7 @@ struct SystemAddress; namespace PlayerManager { void AddPlayer(Player* player); - void RemovePlayer(Player* player); + bool RemovePlayer(Player* player); Player* GetPlayer(const SystemAddress& sysAddr); diff --git a/dGame/dComponents/GhostComponent.cpp b/dGame/dComponents/GhostComponent.cpp index 56bb1670..2978c912 100644 --- a/dGame/dComponents/GhostComponent.cpp +++ b/dGame/dComponents/GhostComponent.cpp @@ -1,4 +1,57 @@ #include "GhostComponent.h" -// TODO Move ghosting related code from Player to here -GhostComponent::GhostComponent(Entity* parent) : Component(parent) {} +GhostComponent::GhostComponent(Entity* parent) : Component(parent) { + m_GhostReferencePoint = NiPoint3::ZERO; + m_GhostOverridePoint = NiPoint3::ZERO; + m_GhostOverride = false; +} + +GhostComponent::~GhostComponent() { + for (auto& observedEntity : m_ObservedEntities) { + if (observedEntity == 0) continue; + + auto* entity = Game::entityManager->GetGhostCandidate(observedEntity); + if (!entity) continue; + + entity->SetObservers(entity->GetObservers() - 1); + } +} + +void GhostComponent::SetGhostReferencePoint(const NiPoint3& value) { + m_GhostReferencePoint = value; +} + +void GhostComponent::SetGhostOverridePoint(const NiPoint3& value) { + m_GhostOverridePoint = value; +} + +void GhostComponent::AddLimboConstruction(LWOOBJID objectId) { + m_LimboConstructions.insert(objectId); +} + +void GhostComponent::RemoveLimboConstruction(LWOOBJID objectId) { + m_LimboConstructions.erase(objectId); +} + +void GhostComponent::ConstructLimboEntities() { + for (const auto& objectId : m_LimboConstructions) { + auto* entity = Game::entityManager->GetEntity(objectId); + if (!entity) continue; + + Game::entityManager->ConstructEntity(entity, m_Parent->GetSystemAddress()); + } + + m_LimboConstructions.clear(); +} + +void GhostComponent::ObserveEntity(int32_t id) { + m_ObservedEntities.insert(id); +} + +bool GhostComponent::IsObserved(int32_t id) { + return m_ObservedEntities.contains(id); +} + +void GhostComponent::GhostEntity(int32_t id) { + m_ObservedEntities.erase(id); +} diff --git a/dGame/dComponents/GhostComponent.h b/dGame/dComponents/GhostComponent.h index d99ffcd9..5ae308a4 100644 --- a/dGame/dComponents/GhostComponent.h +++ b/dGame/dComponents/GhostComponent.h @@ -3,11 +3,52 @@ #include "Component.h" #include "eReplicaComponentType.h" +#include <unordered_set> + +class NiPoint3; class GhostComponent : public Component { public: static inline const eReplicaComponentType ComponentType = eReplicaComponentType::GHOST; GhostComponent(Entity* parent); + ~GhostComponent() override; + + void SetGhostOverride(bool value) { m_GhostOverride = value; }; + + const NiPoint3& GetGhostReferencePoint() const { return m_GhostOverride ? m_GhostOverridePoint : m_GhostReferencePoint; }; + + const NiPoint3& GetOriginGhostReferencePoint() const { return m_GhostReferencePoint; }; + + const NiPoint3& GetGhostOverridePoint() const { return m_GhostOverridePoint; }; + + bool GetGhostOverride() const { return m_GhostOverride; }; + + void SetGhostReferencePoint(const NiPoint3& value); + + void SetGhostOverridePoint(const NiPoint3& value); + + void AddLimboConstruction(const LWOOBJID objectId); + + void RemoveLimboConstruction(const LWOOBJID objectId); + + void ConstructLimboEntities(); + + void ObserveEntity(const int32_t id); + + bool IsObserved(const int32_t id); + + void GhostEntity(const int32_t id); + +private: + NiPoint3 m_GhostReferencePoint; + + NiPoint3 m_GhostOverridePoint; + + std::unordered_set<int32_t> m_ObservedEntities; + + std::unordered_set<LWOOBJID> m_LimboConstructions; + + bool m_GhostOverride; }; #endif //!__GHOSTCOMPONENT__H__ diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index c997bdd1..fa11c086 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -37,6 +37,7 @@ #include "eGameMessageType.h" #include "ePlayerFlag.h" #include "dConfig.h" +#include "GhostComponent.h" #include "StringifiedEnum.h" void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const SystemAddress& sysAddr, LWOOBJID objectID, eGameMessageType messageID) { @@ -108,9 +109,9 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System GameMessages::SendRestoreToPostLoadStats(entity, sysAddr); entity->SetPlayerReadyForUpdates(); - auto* player = dynamic_cast<Player*>(entity); - if (player != nullptr) { - player->ConstructLimboEntities(); + auto* ghostComponent = entity->GetComponent<GhostComponent>(); + if (ghostComponent != nullptr) { + ghostComponent->ConstructLimboEntities(); } InventoryComponent* inv = entity->GetComponent<InventoryComponent>(); @@ -137,14 +138,14 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System Entity* zoneControl = Game::entityManager->GetZoneControlEntity(); for (CppScripts::Script* script : CppScripts::GetEntityScripts(zoneControl)) { - script->OnPlayerLoaded(zoneControl, player); + script->OnPlayerLoaded(zoneControl, entity); } std::vector<Entity*> scriptedActs = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SCRIPT); for (Entity* scriptEntity : scriptedActs) { if (scriptEntity->GetObjectID() != zoneControl->GetObjectID()) { // Don't want to trigger twice on instance worlds for (CppScripts::Script* script : CppScripts::GetEntityScripts(scriptEntity)) { - script->OnPlayerLoaded(scriptEntity, player); + script->OnPlayerLoaded(scriptEntity, entity); } } } diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index c1c92116..595444e9 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -78,6 +78,7 @@ #include "RailActivatorComponent.h" #include "LevelProgressionComponent.h" #include "DonationVendorComponent.h" +#include "GhostComponent.h" // Message includes: #include "dZoneManager.h" @@ -4605,7 +4606,8 @@ void GameMessages::HandleToggleGhostReferenceOverride(RakNet::BitStream* inStrea auto* player = PlayerManager::GetPlayer(sysAddr); if (player != nullptr) { - player->SetGhostOverride(bOverride); + auto* ghostComponent = entity->GetComponent<GhostComponent>(); + if (ghostComponent) ghostComponent->SetGhostOverride(bOverride); Game::entityManager->UpdateGhosting(player); } @@ -4620,7 +4622,8 @@ void GameMessages::HandleSetGhostReferencePosition(RakNet::BitStream* inStream, auto* player = PlayerManager::GetPlayer(sysAddr); if (player != nullptr) { - player->SetGhostOverridePoint(position); + auto* ghostComponent = entity->GetComponent<GhostComponent>(); + if (ghostComponent) ghostComponent->SetGhostOverridePoint(position); Game::entityManager->UpdateGhosting(player); } From 99b3705a76f7bd605bccc14dcd1f7f72ce7f40bc Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell <aronwk.aaron@gmail.com> Date: Sun, 14 Jan 2024 15:05:50 -0600 Subject: [PATCH 106/106] Revert "fix: Remove pending timer logic" (#1417) --- dGame/Entity.cpp | 38 ++++++++++++++++++++------------------ dGame/Entity.h | 2 ++ 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/dGame/Entity.cpp b/dGame/Entity.cpp index 23f0b6b6..8b72a80c 100644 --- a/dGame/Entity.cpp +++ b/dGame/Entity.cpp @@ -1243,18 +1243,12 @@ void Entity::Update(const float deltaTime) { // If the timer is expired, erase it and dont increment the position because the next timer will be at the same position. // Before: [0, 1, 2, 3, ..., n] // timerPosition ^ - // After: [0, 1, n, ..., n - 1] 2 is expired and removed now + // After: [0, 1, 3, ..., n] // timerPosition ^ if (timer.GetTime() <= 0) { // Remove the timer from the list of timers first so that scripts and events can remove timers without causing iterator invalidation auto timerName = timer.GetName(); - // We don't need to copy the element if there is only 1 element nor do we need to copy if we are on the last element. - // This is a clever removal trick that avoids having to copy the entire vector and instead replaces this now expired - // element with the last element in the vector and then removes the last element. - if (m_Timers.size() > 1 && timerPosition < m_Timers.size() - 1) { - m_Timers[timerPosition] = m_Timers[m_Timers.size() - 1]; - } - m_Timers.erase(m_Timers.end() - 1); + m_Timers.erase(m_Timers.begin() + timerPosition); for (CppScripts::Script* script : CppScripts::GetEntityScripts(this)) { script->OnTimerDone(this, timerName); } @@ -1270,26 +1264,31 @@ void Entity::Update(const float deltaTime) { // If the timer is expired, erase it and dont increment the position because the next timer will be at the same position. // Before: [0, 1, 2, 3, ..., n] // timerPosition ^ - // After: [0, 1, n, ..., n - 1] 2 is expired and removed now + // After: [0, 1, 3, ..., n] // timerPosition ^ auto& callbackTimer = m_CallbackTimers[timerPosition]; callbackTimer.Update(deltaTime); if (callbackTimer.GetTime() <= 0) { // Remove the timer from the list of timers first so that callbacks can remove timers without causing iterator invalidation auto callback = callbackTimer.GetCallback(); - // We don't need to copy the element if there is only 1 element nor do we need to copy if we are on the last element. - // This is a clever removal trick that avoids having to copy the entire vector and instead replaces this now expired - // element with the last element in the vector and then removes the last element. - if (m_CallbackTimers.size() > 1 && timerPosition < m_CallbackTimers.size() - 1) { - m_CallbackTimers[timerPosition] = m_CallbackTimers[m_CallbackTimers.size() - 1]; - } - m_CallbackTimers.erase(m_CallbackTimers.end() - 1); + m_CallbackTimers.erase(m_CallbackTimers.begin() + timerPosition); callback(); } else { timerPosition++; } } + // Add pending timers to the list of timers so they start next tick. + if (!m_PendingTimers.empty()) { + m_Timers.insert(m_Timers.end(), m_PendingTimers.begin(), m_PendingTimers.end()); + m_PendingTimers.clear(); + } + + if (!m_PendingCallbackTimers.empty()) { + m_CallbackTimers.insert(m_CallbackTimers.end(), m_PendingCallbackTimers.begin(), m_PendingCallbackTimers.end()); + m_PendingCallbackTimers.clear(); + } + if (IsSleeping()) { Sleep(); @@ -1725,11 +1724,11 @@ void Entity::RemoveParent() { } void Entity::AddTimer(std::string name, float time) { - m_Timers.emplace_back(name, time); + m_PendingTimers.emplace_back(name, time); } void Entity::AddCallbackTimer(float time, std::function<void()> callback) { - m_CallbackTimers.emplace_back(time, callback); + m_PendingCallbackTimers.emplace_back(time, callback); } bool Entity::HasTimer(const std::string& name) { @@ -1738,6 +1737,7 @@ bool Entity::HasTimer(const std::string& name) { void Entity::CancelCallbackTimers() { m_CallbackTimers.clear(); + m_PendingCallbackTimers.clear(); } void Entity::ScheduleKillAfterUpdate(Entity* murderer) { @@ -1759,7 +1759,9 @@ void Entity::CancelTimer(const std::string& name) { void Entity::CancelAllTimers() { m_Timers.clear(); + m_PendingTimers.clear(); m_CallbackTimers.clear(); + m_PendingCallbackTimers.clear(); } bool Entity::IsPlayer() const { diff --git a/dGame/Entity.h b/dGame/Entity.h index e4ec71ab..36621d5c 100644 --- a/dGame/Entity.h +++ b/dGame/Entity.h @@ -330,7 +330,9 @@ protected: std::unordered_map<eReplicaComponentType, Component*> m_Components; std::vector<EntityTimer> m_Timers; + std::vector<EntityTimer> m_PendingTimers; std::vector<EntityCallbackTimer> m_CallbackTimers; + std::vector<EntityCallbackTimer> m_PendingCallbackTimers; bool m_ShouldDestroyAfterUpdate = false;

    R+y3IP2SIHqk0v=5aJxcuPp1;G< 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

  • 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

    WL0@2KgUPE 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