From 9c4489fa17a969fd1cf5db35ec6910edc582985e Mon Sep 17 00:00:00 2001 From: xeon Date: Mon, 26 Aug 2024 15:29:56 +0300 Subject: [PATCH] Hi --- .gitignore | 12 + Cargo.lock | 3097 + Cargo.toml | 74 + README.md | 76 +- data/json/avatar/ConfigAvatar_Albedo.json | 114 + data/json/avatar/ConfigAvatar_Alhatham.json | 154 + data/json/avatar/ConfigAvatar_Aloy.json | 214 + data/json/avatar/ConfigAvatar_Ambor.json | 314 + data/json/avatar/ConfigAvatar_Arlecchino.json | 59 + data/json/avatar/ConfigAvatar_Ayaka.json | 254 + data/json/avatar/ConfigAvatar_Ayato.json | 249 + data/json/avatar/ConfigAvatar_Baizhuer.json | 204 + data/json/avatar/ConfigAvatar_Barbara.json | 144 + data/json/avatar/ConfigAvatar_Beidou.json | 109 + data/json/avatar/ConfigAvatar_Bennett.json | 134 + data/json/avatar/ConfigAvatar_Candace.json | 174 + data/json/avatar/ConfigAvatar_Charlotte.json | 429 + data/json/avatar/ConfigAvatar_Chevreuse.json | 174 + data/json/avatar/ConfigAvatar_Chiori.json | 114 + data/json/avatar/ConfigAvatar_Chongyun.json | 124 + data/json/avatar/ConfigAvatar_Clorinde.json | 59 + data/json/avatar/ConfigAvatar_Collei.json | 144 + data/json/avatar/ConfigAvatar_Cyno.json | 319 + data/json/avatar/ConfigAvatar_Dehya.json | 489 + data/json/avatar/ConfigAvatar_Diluc.json | 174 + data/json/avatar/ConfigAvatar_Diona.json | 224 + data/json/avatar/ConfigAvatar_Dori.json | 119 + data/json/avatar/ConfigAvatar_Emilie.json | 49 + data/json/avatar/ConfigAvatar_Eula.json | 174 + data/json/avatar/ConfigAvatar_Faruzan.json | 264 + data/json/avatar/ConfigAvatar_Feiyan.json | 154 + data/json/avatar/ConfigAvatar_Fischl.json | 259 + data/json/avatar/ConfigAvatar_Freminet.json | 154 + data/json/avatar/ConfigAvatar_Furina.json | 144 + data/json/avatar/ConfigAvatar_Gaming.json | 109 + data/json/avatar/ConfigAvatar_Ganyu.json | 189 + data/json/avatar/ConfigAvatar_Gorou.json | 234 + data/json/avatar/ConfigAvatar_Heizo.json | 119 + data/json/avatar/ConfigAvatar_Hutao.json | 179 + data/json/avatar/ConfigAvatar_Itto.json | 364 + data/json/avatar/ConfigAvatar_Kachina.json | 54 + data/json/avatar/ConfigAvatar_Kaeya.json | 94 + data/json/avatar/ConfigAvatar_Kate.json | 3 + data/json/avatar/ConfigAvatar_Kaveh.json | 224 + data/json/avatar/ConfigAvatar_Kazuha.json | 634 + data/json/avatar/ConfigAvatar_Keqing.json | 314 + data/json/avatar/ConfigAvatar_Kinich.json | 99 + data/json/avatar/ConfigAvatar_Klee.json | 209 + data/json/avatar/ConfigAvatar_Kokomi.json | 374 + data/json/avatar/ConfigAvatar_Layla.json | 109 + data/json/avatar/ConfigAvatar_Linette.json | 169 + data/json/avatar/ConfigAvatar_Liney.json | 129 + data/json/avatar/ConfigAvatar_Lisa.json | 189 + data/json/avatar/ConfigAvatar_Liuyun.json | 129 + data/json/avatar/ConfigAvatar_Mika.json | 254 + data/json/avatar/ConfigAvatar_Momoka.json | 134 + data/json/avatar/ConfigAvatar_Mona.json | 169 + data/json/avatar/ConfigAvatar_Mualani.json | 94 + data/json/avatar/ConfigAvatar_Nahida.json | 454 + data/json/avatar/ConfigAvatar_Navia.json | 94 + .../json/avatar/ConfigAvatar_Neuvillette.json | 504 + data/json/avatar/ConfigAvatar_Nilou.json | 264 + data/json/avatar/ConfigAvatar_Ningguang.json | 289 + data/json/avatar/ConfigAvatar_Noel.json | 119 + data/json/avatar/ConfigAvatar_PlayerBoy.json | 5 + data/json/avatar/ConfigAvatar_PlayerGirl.json | 3 + data/json/avatar/ConfigAvatar_Qin.json | 304 + data/json/avatar/ConfigAvatar_Qiqi.json | 139 + data/json/avatar/ConfigAvatar_Razor.json | 139 + data/json/avatar/ConfigAvatar_Rosaria.json | 114 + data/json/avatar/ConfigAvatar_Sara.json | 179 + data/json/avatar/ConfigAvatar_Sayu.json | 239 + data/json/avatar/ConfigAvatar_Sethos.json | 69 + data/json/avatar/ConfigAvatar_Shenhe.json | 134 + data/json/avatar/ConfigAvatar_Shinobu.json | 139 + data/json/avatar/ConfigAvatar_Shougun.json | 124 + data/json/avatar/ConfigAvatar_Sigewinne.json | 109 + data/json/avatar/ConfigAvatar_Sucrose.json | 244 + data/json/avatar/ConfigAvatar_Tartaglia.json | 239 + data/json/avatar/ConfigAvatar_Tighnari.json | 194 + data/json/avatar/ConfigAvatar_Tohma.json | 114 + data/json/avatar/ConfigAvatar_Venti.json | 194 + data/json/avatar/ConfigAvatar_Wanderer.json | 569 + .../json/avatar/ConfigAvatar_Wriothesley.json | 264 + data/json/avatar/ConfigAvatar_Xiangling.json | 169 + data/json/avatar/ConfigAvatar_Xiao.json | 134 + data/json/avatar/ConfigAvatar_Xingqiu.json | 189 + data/json/avatar/ConfigAvatar_Xinyan.json | 99 + data/json/avatar/ConfigAvatar_Yae.json | 224 + data/json/avatar/ConfigAvatar_Yaoyao.json | 209 + data/json/avatar/ConfigAvatar_Yelan.json | 474 + data/json/avatar/ConfigAvatar_Yoimiya.json | 239 + data/json/avatar/ConfigAvatar_Yunjin.json | 119 + data/json/avatar/ConfigAvatar_Zhongli.json | 94 + data/txt/AvatarData.txt | 119 + data/txt/OpenStateData.txt | 388 + data/txt/SceneData.txt | 1412 + data/txt/WorldData.txt | 3 + dbgate/Cargo.toml | 29 + dbgate/dbgate.toml | 25 + dbgate/src/config.rs | 28 + dbgate/src/main.rs | 25 + dbgate/src/network/mod.rs | 2 + dbgate/src/network/network_mgr.rs | 103 + dbgate/src/service/dbgate_service.rs | 39 + dbgate/src/service/login_handler.rs | 153 + dbgate/src/service/mod.rs | 5 + dispatch/Cargo.toml | 33 + dispatch/dispatch.toml | 29 + dispatch/src/config.rs | 39 + dispatch/src/dispatch_service.rs | 48 + dispatch/src/gateserver_mgr.rs | 81 + dispatch/src/main.rs | 26 + dispatch/src/network/gateserver_session.rs | 72 + dispatch/src/network/http_handlers.rs | 248 + dispatch/src/network/mod.rs | 5 + dispatch/src/network/network_mgr.rs | 64 + framework/common/Cargo.toml | 32 + framework/common/migrations/001_tables.sql | 110 + framework/common/src/base/mod.rs | 3 + framework/common/src/base/service_base.rs | 92 + framework/common/src/config/mod.rs | 40 + framework/common/src/crypto/aes.rs | 173 + framework/common/src/crypto/magic.rs | 534 + framework/common/src/crypto/mod.rs | 87 + framework/common/src/crypto/rsa_utils.rs | 44 + framework/common/src/db/data.rs | 96 + framework/common/src/db/deploy_config_mgr.rs | 88 + framework/common/src/db/error.rs | 9 + framework/common/src/db/mod.rs | 24 + framework/common/src/db/redis_mgr.rs | 58 + framework/common/src/db/sql_op_player_data.rs | 105 + framework/common/src/lib.rs | 10 + framework/common/src/log/mod.rs | 6 + framework/common/src/net/aclient/mod.rs | 80 + .../common/src/net/aserver/aserver_session.rs | 42 + framework/common/src/net/aserver/mod.rs | 50 + framework/common/src/net/error.rs | 20 + framework/common/src/net/kcp_server/error.rs | 7 + .../common/src/net/kcp_server/kcp_conn_mgr.rs | 176 + .../src/net/kcp_server/kcp_server_mgr.rs | 74 + .../common/src/net/kcp_server/kcp_session.rs | 23 + framework/common/src/net/kcp_server/mod.rs | 9 + framework/common/src/net/mod.rs | 35 + .../common/src/net/tools/connect_packet.rs | 63 + framework/common/src/net/tools/mod.rs | 3 + framework/common/src/net/tools/packet.rs | 118 + framework/common/src/service_box.rs | 76 + framework/common/src/tools/mod.rs | 2 + framework/common/src/tools/string_utils.rs | 5 + framework/common/src/tools/time_utils.rs | 15 + gameserver/Cargo.toml | 33 + gameserver/gameserver.toml | 25 + gameserver/src/ability/ability_comp.rs | 104 + gameserver/src/ability/mod.rs | 2 + gameserver/src/config.rs | 28 + gameserver/src/creature/creature.rs | 27 + gameserver/src/creature/fight_prop_comp.rs | 83 + gameserver/src/creature/mod.rs | 6 + gameserver/src/creature/property.rs | 16 + gameserver/src/entity/entity.rs | 53 + gameserver/src/entity/entity_mgr.rs | 12 + gameserver/src/entity/entity_utils.rs | 5 + gameserver/src/entity/mod.rs | 8 + gameserver/src/entity/vision_context.rs | 17 + gameserver/src/gadget/mod.rs | 3 + gameserver/src/gadget/weapon_gadget.rs | 122 + gameserver/src/gameserver_service.rs | 71 + gameserver/src/handler/avatar_handler.rs | 117 + gameserver/src/handler/login_handler.rs | 225 + gameserver/src/handler/mod.rs | 53 + gameserver/src/handler/player_handler.rs | 40 + gameserver/src/handler/player_misc_handler.rs | 22 + gameserver/src/handler/scene_handler.rs | 70 + gameserver/src/item/equip_comp.rs | 57 + gameserver/src/item/mod.rs | 3 + gameserver/src/main.rs | 35 + gameserver/src/network/gateserver_session.rs | 45 + gameserver/src/network/mod.rs | 8 + gameserver/src/network/network_mgr.rs | 73 + .../src/network/player_session_proxy.rs | 115 + gameserver/src/player/avatar/avatar.rs | 439 + gameserver/src/player/avatar/avatar_team.rs | 19 + .../src/player/avatar/avatar_team_entity.rs | 64 + gameserver/src/player/avatar/formal_avatar.rs | 54 + gameserver/src/player/avatar/mirror_avatar.rs | 36 + gameserver/src/player/avatar/mod.rs | 15 + .../src/player/avatar/player_avatar_comp.rs | 764 + gameserver/src/player/avatar/trial_avatar.rs | 40 + gameserver/src/player/basic/mod.rs | 2 + .../src/player/basic/player_basic_comp.rs | 251 + gameserver/src/player/item/equip.rs | 37 + gameserver/src/player/item/item.rs | 119 + gameserver/src/player/item/item_store.rs | 63 + gameserver/src/player/item/mod.rs | 10 + .../src/player/item/player_item_comp.rs | 108 + gameserver/src/player/item/weapon.rs | 55 + gameserver/src/player/mod.rs | 13 + gameserver/src/player/player.rs | 908 + gameserver/src/player/player_coro_exec.rs | 25 + gameserver/src/player/player_login_comp.rs | 56 + gameserver/src/player/player_mgr.rs | 25 + gameserver/src/scene/dungeon_scene.rs | 29 + gameserver/src/scene/grid.rs | 36 + gameserver/src/scene/grid_mgr.rs | 57 + gameserver/src/scene/mod.rs | 20 + gameserver/src/scene/mp_level_entity.rs | 64 + gameserver/src/scene/player_scene_comp.rs | 146 + gameserver/src/scene/player_world.rs | 258 + gameserver/src/scene/player_world_scene.rs | 29 + gameserver/src/scene/region.rs | 119 + gameserver/src/scene/scene.rs | 851 + gameserver/src/scene/scene_mgr.rs | 12 + gameserver/src/scene/scene_sight_comp.rs | 226 + gameserver/src/scene/scene_team.rs | 376 + gateserver/Cargo.toml | 34 + gateserver/gateserver.toml | 33 + gateserver/src/config.rs | 44 + gateserver/src/main.rs | 25 + gateserver/src/network/dispatch_connect.rs | 58 + gateserver/src/network/mod.rs | 6 + gateserver/src/network/network_mgr.rs | 122 + gateserver/src/network/player_session.rs | 445 + gateserver/src/service/gateserver_service.rs | 70 + gateserver/src/service/login_handler.rs | 312 + gateserver/src/service/mod.rs | 3 + hk4e_data/Cargo.toml | 11 + hk4e_data/src/fight_prop_type.rs | 100 + hk4e_data/src/json_data_manual/mod.rs | 50 + hk4e_data/src/lib.rs | 9 + hk4e_data/src/math_def.rs | 88 + hk4e_data/src/prop_type.rs | 43 + .../txt_data_manual/avatar_excel_config.rs | 46 + hk4e_data/src/txt_data_manual/mod.rs | 48 + .../open_state_excel_config.rs | 11 + .../src/txt_data_manual/scene_excel_config.rs | 49 + hk4e_data/src/txt_data_manual/tsv_util.rs | 40 + .../src/txt_data_manual/world_excel_config.rs | 12 + hk4e_proto/Cargo.toml | 12 + hk4e_proto/build.rs | 57 + hk4e_proto/out/.gitkeep | 0 hk4e_proto/out/bin.rs | 9463 +++ hk4e_proto/out/cmd.rs | 69182 ++++++++++++++++ hk4e_proto/out/packet_head.rs | 48 + hk4e_proto/out/redis_data.rs | 41 + hk4e_proto/out/server_only.rs | 132 + hk4e_proto/proto_gen/Cargo.toml | 12 + hk4e_proto/proto_gen/src/lib.rs | 27 + hk4e_proto/src/lib.rs | 16 + kcp/Cargo.toml | 21 + kcp/src/error.rs | 56 + kcp/src/kcp.rs | 1528 + kcp/src/lib.rs | 17 + screenshot.png | Bin 0 -> 1750574 bytes sdkserver/Cargo.toml | 34 + sdkserver/html/register.html | 191 + sdkserver/html/result.html | 171 + sdkserver/sdkserver.toml | 5 + sdkserver/security/sdk_private_key.der | Bin 0 -> 633 bytes sdkserver/src/config.rs | 20 + sdkserver/src/database/data.rs | 98 + sdkserver/src/database/mod.rs | 84 + sdkserver/src/main.rs | 42 + sdkserver/src/services/granter.rs | 76 + sdkserver/src/services/mdk_shield.rs | 104 + sdkserver/src/services/mod.rs | 26 + sdkserver/src/services/registration_page.rs | 100 + sdkserver/src/services/takumi_api.rs | 16 + sdkserver/src/util.rs | 51 + 269 files changed, 116090 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 data/json/avatar/ConfigAvatar_Albedo.json create mode 100644 data/json/avatar/ConfigAvatar_Alhatham.json create mode 100644 data/json/avatar/ConfigAvatar_Aloy.json create mode 100644 data/json/avatar/ConfigAvatar_Ambor.json create mode 100644 data/json/avatar/ConfigAvatar_Arlecchino.json create mode 100644 data/json/avatar/ConfigAvatar_Ayaka.json create mode 100644 data/json/avatar/ConfigAvatar_Ayato.json create mode 100644 data/json/avatar/ConfigAvatar_Baizhuer.json create mode 100644 data/json/avatar/ConfigAvatar_Barbara.json create mode 100644 data/json/avatar/ConfigAvatar_Beidou.json create mode 100644 data/json/avatar/ConfigAvatar_Bennett.json create mode 100644 data/json/avatar/ConfigAvatar_Candace.json create mode 100644 data/json/avatar/ConfigAvatar_Charlotte.json create mode 100644 data/json/avatar/ConfigAvatar_Chevreuse.json create mode 100644 data/json/avatar/ConfigAvatar_Chiori.json create mode 100644 data/json/avatar/ConfigAvatar_Chongyun.json create mode 100644 data/json/avatar/ConfigAvatar_Clorinde.json create mode 100644 data/json/avatar/ConfigAvatar_Collei.json create mode 100644 data/json/avatar/ConfigAvatar_Cyno.json create mode 100644 data/json/avatar/ConfigAvatar_Dehya.json create mode 100644 data/json/avatar/ConfigAvatar_Diluc.json create mode 100644 data/json/avatar/ConfigAvatar_Diona.json create mode 100644 data/json/avatar/ConfigAvatar_Dori.json create mode 100644 data/json/avatar/ConfigAvatar_Emilie.json create mode 100644 data/json/avatar/ConfigAvatar_Eula.json create mode 100644 data/json/avatar/ConfigAvatar_Faruzan.json create mode 100644 data/json/avatar/ConfigAvatar_Feiyan.json create mode 100644 data/json/avatar/ConfigAvatar_Fischl.json create mode 100644 data/json/avatar/ConfigAvatar_Freminet.json create mode 100644 data/json/avatar/ConfigAvatar_Furina.json create mode 100644 data/json/avatar/ConfigAvatar_Gaming.json create mode 100644 data/json/avatar/ConfigAvatar_Ganyu.json create mode 100644 data/json/avatar/ConfigAvatar_Gorou.json create mode 100644 data/json/avatar/ConfigAvatar_Heizo.json create mode 100644 data/json/avatar/ConfigAvatar_Hutao.json create mode 100644 data/json/avatar/ConfigAvatar_Itto.json create mode 100644 data/json/avatar/ConfigAvatar_Kachina.json create mode 100644 data/json/avatar/ConfigAvatar_Kaeya.json create mode 100644 data/json/avatar/ConfigAvatar_Kate.json create mode 100644 data/json/avatar/ConfigAvatar_Kaveh.json create mode 100644 data/json/avatar/ConfigAvatar_Kazuha.json create mode 100644 data/json/avatar/ConfigAvatar_Keqing.json create mode 100644 data/json/avatar/ConfigAvatar_Kinich.json create mode 100644 data/json/avatar/ConfigAvatar_Klee.json create mode 100644 data/json/avatar/ConfigAvatar_Kokomi.json create mode 100644 data/json/avatar/ConfigAvatar_Layla.json create mode 100644 data/json/avatar/ConfigAvatar_Linette.json create mode 100644 data/json/avatar/ConfigAvatar_Liney.json create mode 100644 data/json/avatar/ConfigAvatar_Lisa.json create mode 100644 data/json/avatar/ConfigAvatar_Liuyun.json create mode 100644 data/json/avatar/ConfigAvatar_Mika.json create mode 100644 data/json/avatar/ConfigAvatar_Momoka.json create mode 100644 data/json/avatar/ConfigAvatar_Mona.json create mode 100644 data/json/avatar/ConfigAvatar_Mualani.json create mode 100644 data/json/avatar/ConfigAvatar_Nahida.json create mode 100644 data/json/avatar/ConfigAvatar_Navia.json create mode 100644 data/json/avatar/ConfigAvatar_Neuvillette.json create mode 100644 data/json/avatar/ConfigAvatar_Nilou.json create mode 100644 data/json/avatar/ConfigAvatar_Ningguang.json create mode 100644 data/json/avatar/ConfigAvatar_Noel.json create mode 100644 data/json/avatar/ConfigAvatar_PlayerBoy.json create mode 100644 data/json/avatar/ConfigAvatar_PlayerGirl.json create mode 100644 data/json/avatar/ConfigAvatar_Qin.json create mode 100644 data/json/avatar/ConfigAvatar_Qiqi.json create mode 100644 data/json/avatar/ConfigAvatar_Razor.json create mode 100644 data/json/avatar/ConfigAvatar_Rosaria.json create mode 100644 data/json/avatar/ConfigAvatar_Sara.json create mode 100644 data/json/avatar/ConfigAvatar_Sayu.json create mode 100644 data/json/avatar/ConfigAvatar_Sethos.json create mode 100644 data/json/avatar/ConfigAvatar_Shenhe.json create mode 100644 data/json/avatar/ConfigAvatar_Shinobu.json create mode 100644 data/json/avatar/ConfigAvatar_Shougun.json create mode 100644 data/json/avatar/ConfigAvatar_Sigewinne.json create mode 100644 data/json/avatar/ConfigAvatar_Sucrose.json create mode 100644 data/json/avatar/ConfigAvatar_Tartaglia.json create mode 100644 data/json/avatar/ConfigAvatar_Tighnari.json create mode 100644 data/json/avatar/ConfigAvatar_Tohma.json create mode 100644 data/json/avatar/ConfigAvatar_Venti.json create mode 100644 data/json/avatar/ConfigAvatar_Wanderer.json create mode 100644 data/json/avatar/ConfigAvatar_Wriothesley.json create mode 100644 data/json/avatar/ConfigAvatar_Xiangling.json create mode 100644 data/json/avatar/ConfigAvatar_Xiao.json create mode 100644 data/json/avatar/ConfigAvatar_Xingqiu.json create mode 100644 data/json/avatar/ConfigAvatar_Xinyan.json create mode 100644 data/json/avatar/ConfigAvatar_Yae.json create mode 100644 data/json/avatar/ConfigAvatar_Yaoyao.json create mode 100644 data/json/avatar/ConfigAvatar_Yelan.json create mode 100644 data/json/avatar/ConfigAvatar_Yoimiya.json create mode 100644 data/json/avatar/ConfigAvatar_Yunjin.json create mode 100644 data/json/avatar/ConfigAvatar_Zhongli.json create mode 100644 data/txt/AvatarData.txt create mode 100644 data/txt/OpenStateData.txt create mode 100644 data/txt/SceneData.txt create mode 100644 data/txt/WorldData.txt create mode 100644 dbgate/Cargo.toml create mode 100644 dbgate/dbgate.toml create mode 100644 dbgate/src/config.rs create mode 100644 dbgate/src/main.rs create mode 100644 dbgate/src/network/mod.rs create mode 100644 dbgate/src/network/network_mgr.rs create mode 100644 dbgate/src/service/dbgate_service.rs create mode 100644 dbgate/src/service/login_handler.rs create mode 100644 dbgate/src/service/mod.rs create mode 100644 dispatch/Cargo.toml create mode 100644 dispatch/dispatch.toml create mode 100644 dispatch/src/config.rs create mode 100644 dispatch/src/dispatch_service.rs create mode 100644 dispatch/src/gateserver_mgr.rs create mode 100644 dispatch/src/main.rs create mode 100644 dispatch/src/network/gateserver_session.rs create mode 100644 dispatch/src/network/http_handlers.rs create mode 100644 dispatch/src/network/mod.rs create mode 100644 dispatch/src/network/network_mgr.rs create mode 100644 framework/common/Cargo.toml create mode 100644 framework/common/migrations/001_tables.sql create mode 100644 framework/common/src/base/mod.rs create mode 100644 framework/common/src/base/service_base.rs create mode 100644 framework/common/src/config/mod.rs create mode 100644 framework/common/src/crypto/aes.rs create mode 100644 framework/common/src/crypto/magic.rs create mode 100644 framework/common/src/crypto/mod.rs create mode 100644 framework/common/src/crypto/rsa_utils.rs create mode 100644 framework/common/src/db/data.rs create mode 100644 framework/common/src/db/deploy_config_mgr.rs create mode 100644 framework/common/src/db/error.rs create mode 100644 framework/common/src/db/mod.rs create mode 100644 framework/common/src/db/redis_mgr.rs create mode 100644 framework/common/src/db/sql_op_player_data.rs create mode 100644 framework/common/src/lib.rs create mode 100644 framework/common/src/log/mod.rs create mode 100644 framework/common/src/net/aclient/mod.rs create mode 100644 framework/common/src/net/aserver/aserver_session.rs create mode 100644 framework/common/src/net/aserver/mod.rs create mode 100644 framework/common/src/net/error.rs create mode 100644 framework/common/src/net/kcp_server/error.rs create mode 100644 framework/common/src/net/kcp_server/kcp_conn_mgr.rs create mode 100644 framework/common/src/net/kcp_server/kcp_server_mgr.rs create mode 100644 framework/common/src/net/kcp_server/kcp_session.rs create mode 100644 framework/common/src/net/kcp_server/mod.rs create mode 100644 framework/common/src/net/mod.rs create mode 100644 framework/common/src/net/tools/connect_packet.rs create mode 100644 framework/common/src/net/tools/mod.rs create mode 100644 framework/common/src/net/tools/packet.rs create mode 100644 framework/common/src/service_box.rs create mode 100644 framework/common/src/tools/mod.rs create mode 100644 framework/common/src/tools/string_utils.rs create mode 100644 framework/common/src/tools/time_utils.rs create mode 100644 gameserver/Cargo.toml create mode 100644 gameserver/gameserver.toml create mode 100644 gameserver/src/ability/ability_comp.rs create mode 100644 gameserver/src/ability/mod.rs create mode 100644 gameserver/src/config.rs create mode 100644 gameserver/src/creature/creature.rs create mode 100644 gameserver/src/creature/fight_prop_comp.rs create mode 100644 gameserver/src/creature/mod.rs create mode 100644 gameserver/src/creature/property.rs create mode 100644 gameserver/src/entity/entity.rs create mode 100644 gameserver/src/entity/entity_mgr.rs create mode 100644 gameserver/src/entity/entity_utils.rs create mode 100644 gameserver/src/entity/mod.rs create mode 100644 gameserver/src/entity/vision_context.rs create mode 100644 gameserver/src/gadget/mod.rs create mode 100644 gameserver/src/gadget/weapon_gadget.rs create mode 100644 gameserver/src/gameserver_service.rs create mode 100644 gameserver/src/handler/avatar_handler.rs create mode 100644 gameserver/src/handler/login_handler.rs create mode 100644 gameserver/src/handler/mod.rs create mode 100644 gameserver/src/handler/player_handler.rs create mode 100644 gameserver/src/handler/player_misc_handler.rs create mode 100644 gameserver/src/handler/scene_handler.rs create mode 100644 gameserver/src/item/equip_comp.rs create mode 100644 gameserver/src/item/mod.rs create mode 100644 gameserver/src/main.rs create mode 100644 gameserver/src/network/gateserver_session.rs create mode 100644 gameserver/src/network/mod.rs create mode 100644 gameserver/src/network/network_mgr.rs create mode 100644 gameserver/src/network/player_session_proxy.rs create mode 100644 gameserver/src/player/avatar/avatar.rs create mode 100644 gameserver/src/player/avatar/avatar_team.rs create mode 100644 gameserver/src/player/avatar/avatar_team_entity.rs create mode 100644 gameserver/src/player/avatar/formal_avatar.rs create mode 100644 gameserver/src/player/avatar/mirror_avatar.rs create mode 100644 gameserver/src/player/avatar/mod.rs create mode 100644 gameserver/src/player/avatar/player_avatar_comp.rs create mode 100644 gameserver/src/player/avatar/trial_avatar.rs create mode 100644 gameserver/src/player/basic/mod.rs create mode 100644 gameserver/src/player/basic/player_basic_comp.rs create mode 100644 gameserver/src/player/item/equip.rs create mode 100644 gameserver/src/player/item/item.rs create mode 100644 gameserver/src/player/item/item_store.rs create mode 100644 gameserver/src/player/item/mod.rs create mode 100644 gameserver/src/player/item/player_item_comp.rs create mode 100644 gameserver/src/player/item/weapon.rs create mode 100644 gameserver/src/player/mod.rs create mode 100644 gameserver/src/player/player.rs create mode 100644 gameserver/src/player/player_coro_exec.rs create mode 100644 gameserver/src/player/player_login_comp.rs create mode 100644 gameserver/src/player/player_mgr.rs create mode 100644 gameserver/src/scene/dungeon_scene.rs create mode 100644 gameserver/src/scene/grid.rs create mode 100644 gameserver/src/scene/grid_mgr.rs create mode 100644 gameserver/src/scene/mod.rs create mode 100644 gameserver/src/scene/mp_level_entity.rs create mode 100644 gameserver/src/scene/player_scene_comp.rs create mode 100644 gameserver/src/scene/player_world.rs create mode 100644 gameserver/src/scene/player_world_scene.rs create mode 100644 gameserver/src/scene/region.rs create mode 100644 gameserver/src/scene/scene.rs create mode 100644 gameserver/src/scene/scene_mgr.rs create mode 100644 gameserver/src/scene/scene_sight_comp.rs create mode 100644 gameserver/src/scene/scene_team.rs create mode 100644 gateserver/Cargo.toml create mode 100644 gateserver/gateserver.toml create mode 100644 gateserver/src/config.rs create mode 100644 gateserver/src/main.rs create mode 100644 gateserver/src/network/dispatch_connect.rs create mode 100644 gateserver/src/network/mod.rs create mode 100644 gateserver/src/network/network_mgr.rs create mode 100644 gateserver/src/network/player_session.rs create mode 100644 gateserver/src/service/gateserver_service.rs create mode 100644 gateserver/src/service/login_handler.rs create mode 100644 gateserver/src/service/mod.rs create mode 100644 hk4e_data/Cargo.toml create mode 100644 hk4e_data/src/fight_prop_type.rs create mode 100644 hk4e_data/src/json_data_manual/mod.rs create mode 100644 hk4e_data/src/lib.rs create mode 100644 hk4e_data/src/math_def.rs create mode 100644 hk4e_data/src/prop_type.rs create mode 100644 hk4e_data/src/txt_data_manual/avatar_excel_config.rs create mode 100644 hk4e_data/src/txt_data_manual/mod.rs create mode 100644 hk4e_data/src/txt_data_manual/open_state_excel_config.rs create mode 100644 hk4e_data/src/txt_data_manual/scene_excel_config.rs create mode 100644 hk4e_data/src/txt_data_manual/tsv_util.rs create mode 100644 hk4e_data/src/txt_data_manual/world_excel_config.rs create mode 100644 hk4e_proto/Cargo.toml create mode 100644 hk4e_proto/build.rs create mode 100644 hk4e_proto/out/.gitkeep create mode 100644 hk4e_proto/out/bin.rs create mode 100644 hk4e_proto/out/cmd.rs create mode 100644 hk4e_proto/out/packet_head.rs create mode 100644 hk4e_proto/out/redis_data.rs create mode 100644 hk4e_proto/out/server_only.rs create mode 100644 hk4e_proto/proto_gen/Cargo.toml create mode 100644 hk4e_proto/proto_gen/src/lib.rs create mode 100644 hk4e_proto/src/lib.rs create mode 100644 kcp/Cargo.toml create mode 100644 kcp/src/error.rs create mode 100644 kcp/src/kcp.rs create mode 100644 kcp/src/lib.rs create mode 100644 screenshot.png create mode 100644 sdkserver/Cargo.toml create mode 100644 sdkserver/html/register.html create mode 100644 sdkserver/html/result.html create mode 100644 sdkserver/sdkserver.toml create mode 100644 sdkserver/security/sdk_private_key.der create mode 100644 sdkserver/src/config.rs create mode 100644 sdkserver/src/database/data.rs create mode 100644 sdkserver/src/database/mod.rs create mode 100644 sdkserver/src/main.rs create mode 100644 sdkserver/src/services/granter.rs create mode 100644 sdkserver/src/services/mdk_shield.rs create mode 100644 sdkserver/src/services/mod.rs create mode 100644 sdkserver/src/services/registration_page.rs create mode 100644 sdkserver/src/services/takumi_api.rs create mode 100644 sdkserver/src/util.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..764f3b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +/target +/sdkserver.toml +/dispatch.toml +/gateserver.toml +/dbgate.toml +/gameserver.toml + +/hk4e_proto/bin.server.proto +/hk4e_proto/redis_data.proto +/hk4e_proto/packet_head.proto +/hk4e_proto/server_only.proto +/hk4e_proto/cmd.proto diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..aa6973d --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,3097 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "asynchronous-codec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233" +dependencies = [ + "bytes", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "axum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-server" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ad46c3ec4e12f4a4b6835e173ba21c25e484c9d02b49770bf006ce5367c036" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +dependencies = [ + "serde", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "common" +version = "0.1.0" +dependencies = [ + "ansi_term", + "bytes", + "dashmap 6.0.1", + "env_logger", + "mhy-kcp", + "prost", + "proto", + "rand", + "rand_mt", + "rbase64", + "redis", + "rsa", + "serde", + "serde_json", + "sqlx", + "thiserror", + "tokio", + "toml", + "tracing", + "zeromq", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "dashmap" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804c8821570c3f8b70230c2ba75ffa5c0f9a4189b9a432b6656c536712acae28" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data" +version = "0.1.0" +dependencies = [ + "csv", + "paste", + "proto", + "serde", + "serde_json", +] + +[[package]] +name = "dbgate" +version = "0.1.0" +dependencies = [ + "common", + "env_logger", + "hex", + "paste", + "prost", + "proto", + "rbase64", + "serde", + "serde_json", + "sqlx", + "tokio", + "tokio-util", + "toml", + "tracing", + "tracing-bunyan-formatter", + "tracing-futures", + "tracing-log 0.2.0", + "tracing-subscriber", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dispatch" +version = "0.1.0" +dependencies = [ + "axum", + "axum-server", + "common", + "dashmap 6.0.1", + "env_logger", + "hex", + "paste", + "prost", + "proto", + "rbase64", + "serde", + "serde_json", + "sqlx", + "tokio", + "tokio-util", + "toml", + "tracing", + "tracing-bunyan-formatter", + "tracing-futures", + "tracing-log 0.2.0", + "tracing-subscriber", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +dependencies = [ + "serde", +] + +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "gameserver" +version = "0.1.0" +dependencies = [ + "common", + "dashmap 6.0.1", + "data", + "env_logger", + "hex", + "num_enum", + "parking_lot", + "paste", + "prost", + "proto", + "rand", + "rbase64", + "serde", + "serde_json", + "tokio", + "tokio-util", + "toml", + "tracing", + "tracing-bunyan-formatter", + "tracing-futures", + "tracing-log 0.2.0", + "tracing-subscriber", +] + +[[package]] +name = "gateserver" +version = "0.1.0" +dependencies = [ + "common", + "env_logger", + "hex", + "mhy-kcp", + "paste", + "prost", + "proto", + "rand", + "rbase64", + "redis", + "serde", + "serde_json", + "sqlx", + "thiserror", + "tokio", + "tokio-util", + "toml", + "tracing", + "tracing-bunyan-formatter", + "tracing-futures", + "tracing-log 0.2.0", + "tracing-subscriber", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", +] + +[[package]] +name = "hyper-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libmimalloc-sys" +version = "0.1.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7bb23d733dfcc8af652a78b7bf232f0e967710d044732185e561e47c0336b6" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "mhy-kcp" +version = "0.1.0" +dependencies = [ + "bytes", + "env_logger", + "log", + "rand", + "thiserror", + "time", + "tokio", + "xxhash-rust", +] + +[[package]] +name = "mimalloc" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9186d86b79b52f4a77af65604b51225e8db1d6ee7e3f41aec1e40829c71a176" +dependencies = [ + "libmimalloc-sys", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "serde", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "object" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "password-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest", + "hmac", + "password-hash", + "sha2", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs5" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6" +dependencies = [ + "aes", + "cbc", + "der", + "pbkdf2", + "scrypt", + "sha2", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "pkcs5", + "rand_core", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.66", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro2" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.66", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost", +] + +[[package]] +name = "proto" +version = "0.1.0" +dependencies = [ + "prost", + "prost-build", + "prost-types", + "proto_gen", +] + +[[package]] +name = "proto_gen" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_mt" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49e018c6ded60e5252609887c12eb3ca2592e9248c5894a7db3975c8a7a1e2df" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rbase64" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b133fdd52a7cbb7619c86d93c8a34ea6e056462f901e08f6cbb6c9baf138b13" +dependencies = [ + "mimalloc", + "rayon", +] + +[[package]] +name = "redis" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d7a6955c7511f60f3ba9e86c6d02b3c3f144f8c24b288d1f4e18074ab8bbec" +dependencies = [ + "async-trait", + "bytes", + "combine", + "futures-util", + "itoa", + "percent-encoding", + "pin-project-lite", + "ryu", + "sha1_smol", + "socket2", + "tokio", + "tokio-util", + "url", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core", + "serde", + "sha1", + "sha2", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "pbkdf2", + "salsa20", + "sha2", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sdkserver" +version = "0.1.0" +dependencies = [ + "axum", + "axum-server", + "common", + "env_logger", + "password-hash", + "pbkdf2", + "rand", + "rbase64", + "regex", + "rsa", + "serde", + "serde_json", + "sqlx", + "thiserror", + "tokio", + "tokio-util", + "toml", + "tracing", + "tracing-bunyan-formatter", + "tracing-futures", + "tracing-log 0.2.0", + "tracing-subscriber", +] + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlformat" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" +dependencies = [ + "itertools", + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" +dependencies = [ + "ahash", + "atoi", + "byteorder", + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashlink", + "hex", + "indexmap", + "log", + "memchr", + "once_cell", + "paste", + "percent-encoding", + "rustls", + "rustls-pemfile", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlformat", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "url", + "webpki-roots", +] + +[[package]] +name = "sqlx-macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" +dependencies = [ + "dotenvy", + "either", + "heck", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn 1.0.109", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" +dependencies = [ + "atoi", + "base64", + "bitflags 2.5.0", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" +dependencies = [ + "atoi", + "base64", + "bitflags 2.5.0", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.13", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "tracing-bunyan-formatter" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5c266b9ac83dedf0e0385ad78514949e6d89491269e7065bee51d2bb8ec7373" +dependencies = [ + "ahash", + "gethostname", + "log", + "serde", + "serde_json", + "time", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "uuid" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +dependencies = [ + "getrandom", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "whoami" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall 0.4.1", + "wasite", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +dependencies = [ + "memchr", +] + +[[package]] +name = "xxhash-rust" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03" + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zeromq" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb0560d00172817b7f7c2265060783519c475702ae290b154115ca75e976d4d0" +dependencies = [ + "async-trait", + "asynchronous-codec", + "bytes", + "crossbeam-queue", + "dashmap 5.5.3", + "futures-channel", + "futures-io", + "futures-task", + "futures-util", + "log", + "num-traits", + "once_cell", + "parking_lot", + "rand", + "regex", + "thiserror", + "tokio", + "tokio-util", + "uuid", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..36119ed --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,74 @@ +[workspace] +members = ["framework/common", "dispatch", "gateserver", "kcp", "hk4e_proto", "sdkserver", "dbgate", "gameserver", "hk4e_data"] +resolver = "2" + +[workspace.package] +version = "0.1.0" + +[workspace.dependencies] +thiserror = "1.0.61" +bytes = "1.6.0" + +axum = "0.7.4" +axum-server = "0.6.0" + +sqlx = { version = "0.7.4", features = ["postgres", "runtime-tokio-rustls"] } +redis = { version = "0.25.4", features = ["aio", "tokio-comp"] } +zeromq = "0.4.0" + +env_logger = "0.11.3" + +rbase64 = "2.0.3" +rand = "0.8.5" +rand_mt = "4.2.2" +rsa = { version = "0.9.6", features = [ + "sha1", + "nightly", + "pkcs5", + "serde", + "sha2", +] } + +prost = "0.12.3" +prost-types = "0.12.3" +prost-build = "0.12.3" + +dashmap = "6.0.1" +paste = "1.0.14" +sysinfo = "0.30.7" + +hex = "0.4.3" + +csv = "1.3.0" +num_enum = "0.7.3" +serde = { version = "1.0.197", features = ["derive"] } +serde_json = "1.0.114" + +parking_lot = "0.12.3" +tokio = { version = "1.36.0", features = ["full"] } +tokio-util = { version = "0.7.10", features = ["io"] } + +tracing = "0.1.40" +tracing-futures = "0.2.5" +tracing-log = { version = "0.2.0", features = ["std", "log-tracer"] } +tracing-subscriber = { version = "0.3.18", features = [ + "env-filter", + "registry", + "std", + "tracing", + "tracing-log", +] } +tracing-bunyan-formatter = "0.3.9" +toml = "0.8.14" + +proto = { path = "hk4e_proto/" } +proto_gen = { path = "hk4e_proto/proto_gen/" } +data = { path = "hk4e_data/" } +common = { path = "framework/common/" } +mhy-kcp = { path = "kcp/", features = ["tokio"] } + +[profile.release] +strip = true # Automatically strip symbols from the binary. +lto = true # Link-time optimization. +opt-level = 3 # Optimize for speed. +codegen-units = 1 # Maximum size reduction optimizations. diff --git a/README.md b/README.md index 9579d71..c11a6bc 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,77 @@ # MualaniImpact +### Current game version: 4.8.50 -Genshin Impact server reverse engineering project \ No newline at end of file +![screenshot](https://git.xeondev.com/ReversedRooms/MualaniImpact/raw/branch/master/screenshot.png) + +## What +**MualaniImpact** is an **open-source project reverse-engineering Genshin Impact server binaries**. This means that all logic and architecture code is being reimplemented according to decompiled pseudocode of official servers. + +## How +The original server binaries are written in C++. This project aims to rewrite them in rust. Because of that, some implementation details may be different (due to rust ownership model and so on).
We also use PostgreSQL instead of MySQL that is used by miHoYo. + +## Implemented services +- Dispatch +- Gateserver +- Dbgate +- Gameserver (work-in-progress) +- SDKServer (not part of game-specific services, but required for authentification, emulates miHoYo account API) + +## Getting started +#### Requirements: +- [Rust](https://www.rust-lang.org/tools/install) +- [PostgreSQL](https://www.postgresql.org/download/) +- [Redis](https://redis.io/downloads/) +##### NOTE: if you are using MS Windows, use [this version of Redis](https://github.com/tporadowski/redis/releases) + +### Setup +#### Server +##### a) building from sources +``` +git clone https://git.xeondev.com/ReversedRooms/MualaniImpact.git +cd MualaniImpact +cargo run --bin sdkserver +cargo run --bin dispatch +cargo run --bin dbgate +cargo run --bin gateserver +cargo run --bin gameserver +``` + +##### b) using pre-built binaries +Navigate to the [Releases](https://git.xeondev.com/ReversedRooms/MualaniImpact/releases) +page and download the latest release for your platform.
+Launch all services: `sdkserver`, `dispatch`, `dbgate`, `gateserver`, `gameserver` +##### NOTE: you don't have to install Rust if you're going to use pre-built binaries, although the preferred way is building from sources.
We don't provide support for pre-built binaries. + +#### Configuration +You should configure each service using their own config files. They're being created in current working directory upon first startup. + +##### Database section +You have to specify connection strings for **PostgreSQL** (`connection_string`) and **Redis** (`redis_url`) +``` +[database] +connection_string = "postgres://postgres:@localhost:5432/hk4e" +redis_url = "redis://127.0.0.1/" +``` + +##### Application entries +If you're going to host all services locally, you don't have to modify anything here.
If you're deploying services on different machines, you have to configure their `inner_ip`.
Every service should have its own unique `app_id`
Example of application entry for `Gateserver`: +``` +[[applications.Gateserver]] +app_id = 2 +inner_ip = "127.0.0.1:22002" +``` + +##### NOTE: the top most `app_id` line (before application entries) specifies `app_id` of current service. + +#### Data +The data files: TSV tables (`data/txt`) and JSON configs (`data/json`) are included in this repository. Keep in mind that you need to have the `data` subdirectory in current working directory. + +#### Connecting +You have to download client of **current supported game version** (at this moment it's 4.8.50, you can [get it here](https://git.xeondev.com/xeon/3/raw/branch/3/hk4e_oscbwin4.8.50_reversedrooms.torrent)), and apply the [encryption patch](https://git.xeondev.com/reversedrooms/hk4e-patch/releases). +##### NOTE: once you got all services up and running, you have to create game account.
By default, you can do so at http://127.0.0.1:21000/account/register + +### Troubleshooting +[Visit our discord](https://discord.gg/reversedrooms) if you have any questions/issues + +### Support +If you want to support this project, feel free to [send a tip via boosty](https://boosty.to/xeondev/donate) \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Albedo.json b/data/json/avatar/ConfigAvatar_Albedo.json new file mode 100644 index 0000000..fc54bec --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Albedo.json @@ -0,0 +1,114 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Albedo_ExtraAttack", + "abilityName": "Avatar_Albedo_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_SkillHoldCharge", + "abilityName": "Avatar_Albedo_SkillHoldCharge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_FullRockAlchemist", + "abilityName": "Avatar_Albedo_FullRockAlchemist", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_FullRockAlchemist_Custom", + "abilityName": "Avatar_Albedo_FullRockAlchemist_Custom", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_AlchemicalBreakOut", + "abilityName": "Avatar_Albedo_AlchemicalBreakOut", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_DamageHandler", + "abilityName": "Avatar_Albedo_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_FallingAnthem", + "abilityName": "Avatar_Albedo_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo", + "abilityName": "Avatar_Albedo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_Skill_ElementalArt", + "abilityName": "Avatar_Albedo_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_Skill_ElementalArt_AS", + "abilityName": "Avatar_Albedo_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_Skill_ElementalArt_BS", + "abilityName": "Avatar_Albedo_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_TeamConfig_01BS", + "abilityName": "Avatar_Albedo_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_TeamConfig_01Loop", + "abilityName": "Avatar_Albedo_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_TeamConfig_01AS", + "abilityName": "Avatar_Albedo_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_Skill_ElementalArt_Charge", + "abilityName": "Avatar_Albedo_Skill_ElementalArt_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_ElementalBurst_Spine", + "abilityName": "Avatar_Albedo_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_ElementalBurst_Spine_Hand", + "abilityName": "Avatar_Albedo_ElementalBurst_Spine_Hand", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_Spine", + "abilityName": "Avatar_Albedo_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_ElementalBurst_BS", + "abilityName": "Avatar_Albedo_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_ElementalBurst_Hit", + "abilityName": "Avatar_Albedo_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_Spine_Loop", + "abilityName": "Avatar_Albedo_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Albedo_Spine_Loop_Hand", + "abilityName": "Avatar_Albedo_Spine_Loop_Hand", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Alhatham.json b/data/json/avatar/ConfigAvatar_Alhatham.json new file mode 100644 index 0000000..3247942 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Alhatham.json @@ -0,0 +1,154 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Alhatham_ExtraAttack", + "abilityName": "Avatar_Alhatham_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_SkillHoldCharge", + "abilityName": "Avatar_Alhatham_SkillHoldCharge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ElementalArt", + "abilityName": "Avatar_Alhatham_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ElementalArt_SkillStart", + "abilityName": "Avatar_Alhatham_ElementalArt_SkillStart", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_Constellation_6", + "abilityName": "Avatar_Alhatham_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ElementalArt_Custom", + "abilityName": "Avatar_Alhatham_ElementalArt_Custom", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotus", + "abilityName": "Avatar_Alhatham_ForlornLotus", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_NormalAttack_Mark", + "abilityName": "Avatar_Alhatham_NormalAttack_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_IN_ForlornLotus", + "abilityName": "Avatar_Alhatham_IN_ForlornLotus", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_NormalMode", + "abilityName": "Avatar_Alhatham_NormalMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotusMode", + "abilityName": "Avatar_Alhatham_ForlornLotusMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotus_Attack", + "abilityName": "Avatar_Alhatham_ForlornLotus_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotus_Attack_LV1", + "abilityName": "Avatar_Alhatham_ForlornLotus_Attack_LV1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotus_Attack_LV2", + "abilityName": "Avatar_Alhatham_ForlornLotus_Attack_LV2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotus_Attack_LV2_Helper", + "abilityName": "Avatar_Alhatham_ForlornLotus_Attack_LV2_Helper", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotus_Attack_LV3", + "abilityName": "Avatar_Alhatham_ForlornLotus_Attack_LV3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ForlornLotus_Attack_LV3_Helper", + "abilityName": "Avatar_Alhatham_ForlornLotus_Attack_LV3_Helper", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ElementalBurst", + "abilityName": "Avatar_Alhatham_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_Constellation_6J", + "abilityName": "Avatar_Alhatham_Constellation_6J", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_ElementalBurst_Aftermath", + "abilityName": "Avatar_Alhatham_ElementalBurst_Aftermath", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_DamageHandler", + "abilityName": "Avatar_Alhatham_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_PermanentSkill_2", + "abilityName": "Avatar_Alhatham_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_PermanentSkill_1", + "abilityName": "Avatar_Alhatham_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_PermanentSkill_1_CD", + "abilityName": "Avatar_Alhatham_PermanentSkill_1_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_Constellation_6_FX", + "abilityName": "Avatar_Alhatham_Constellation_6_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_FallingAnthem", + "abilityName": "Avatar_Alhatham_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham", + "abilityName": "Avatar_Alhatham", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_TeamConfig_01BS", + "abilityName": "Avatar_Alhatham_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_TeamConfig_01Loop", + "abilityName": "Avatar_Alhatham_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Alhatham_TeamConfig_01AS", + "abilityName": "Avatar_Alhatham_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Aloy.json b/data/json/avatar/ConfigAvatar_Aloy.json new file mode 100644 index 0000000..a39c16a --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Aloy.json @@ -0,0 +1,214 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Aloy_PressShoot", + "abilityName": "Avatar_Aloy_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_AimPressShoot", + "abilityName": "Avatar_Aloy_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_PressShoot_Charge", + "abilityName": "Avatar_Aloy_PressShoot_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_PressShoot_Shooting", + "abilityName": "Avatar_Aloy_PressShoot_Shooting", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ShootArrow_01_01", + "abilityName": "Avatar_Aloy_ShootArrow_01_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ShootArrow_01_02", + "abilityName": "Avatar_Aloy_ShootArrow_01_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ShootArrow_02", + "abilityName": "Avatar_Aloy_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ShootArrow_03", + "abilityName": "Avatar_Aloy_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ShootArrow_04", + "abilityName": "Avatar_Aloy_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_LightEffect", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_LightEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_HeavyFX", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_HeavyFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_LightEffect_UltraMode", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_LightEffect_UltraMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_HeavyFX_UltraMode", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_HeavyFX_UltraMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ExtraAttack_WithoutIce", + "abilityName": "Avatar_AloyGadgetSkill_ExtraAttack_WithoutIce", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ExtraAttack_Ice", + "abilityName": "Avatar_AloyGadgetSkill_ExtraAttack_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_Coil_Handler", + "abilityName": "Avatar_Aloy_Coil_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ElementalArt", + "abilityName": "Avatar_Aloy_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ElementalArt_Bullet", + "abilityName": "Avatar_AloyGadgetSkill_ElementalArt_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet", + "abilityName": "Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ElementalArt_Mine", + "abilityName": "Avatar_AloyGadgetSkill_ElementalArt_Mine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ElementalBurst_Camera", + "abilityName": "Avatar_Aloy_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_ElementalBurst", + "abilityName": "Avatar_Aloy_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ElementalBurst", + "abilityName": "Avatar_AloyGadgetSkill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_02_Damage", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_02_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_03_Damage", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_03_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_04_Damage", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_04_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_FallingAnthem", + "abilityName": "Avatar_Aloy_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy", + "abilityName": "Avatar_Aloy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_HeavyFX9Avatar_AloyGadgetSkill_NormalAttack_LightEffect_UltraMode5Avatar_AloyGadgetSkill_NormalAttack_HeavyFX_UltraMode", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_HeavyFX9Avatar_AloyGadgetSkill_NormalAttack_LightEffect_UltraMode5Avatar_AloyGadgetSkill_NormalAttack_HeavyFX_UltraMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ElementalArt_Bullet1Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet", + "abilityName": "Avatar_AloyGadgetSkill_ElementalArt_Bullet1Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ElementalBurst0Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage0Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage", + "abilityName": "Avatar_AloyGadgetSkill_ElementalBurst0Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage0Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_Skill_ElementalArt_BS", + "abilityName": "Avatar_Aloy_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_Skill_ElementalArt", + "abilityName": "Avatar_Aloy_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_TeamConfig_01BS", + "abilityName": "Avatar_Aloy_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_TeamConfig_01Loop", + "abilityName": "Avatar_Aloy_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_TeamConfig_01AS", + "abilityName": "Avatar_Aloy_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Aloy_Skill_ElementalArt_AS", + "abilityName": "Avatar_Aloy_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage0Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage0Avatar_AloyGadgetSkill_NormalAttack_01_01_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage0Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage", + "abilityName": "Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage0Avatar_AloyGadgetSkill_NormalAttack_01_02_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet1Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet", + "abilityName": "Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet1Avatar_AloyGadgetSkill_ElementalArt_TriggerBullet", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Ambor.json b/data/json/avatar/ConfigAvatar_Ambor.json new file mode 100644 index 0000000..3b8dc3d --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Ambor.json @@ -0,0 +1,314 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Ambor_Arrow_FX", + "abilityName": "Avatar_Ambor_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_PressShoot", + "abilityName": "Avatar_Ambor_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_AimPressShoot", + "abilityName": "Avatar_Ambor_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ShootAimingArrow_Charge", + "abilityName": "Avatar_Ambor_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ShootArrow_01", + "abilityName": "Avatar_Ambor_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ShootArrow_02", + "abilityName": "Avatar_Ambor_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ShootArrow_03", + "abilityName": "Avatar_Ambor_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ShootArrow_04", + "abilityName": "Avatar_Ambor_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ShootArrow_05", + "abilityName": "Avatar_Ambor_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ShootArrow_Aiming", + "abilityName": "Avatar_Ambor_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_BlowUpDummy", + "abilityName": "Avatar_Ambor_BlowUpDummy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_DoubleArrow_01", + "abilityName": "Avatar_Ambor_DoubleArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_DoubleArrow_02", + "abilityName": "Avatar_Ambor_DoubleArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_DummyTrigger", + "abilityName": "Avatar_Ambor_DummyTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ThrowDummy_UseSkill", + "abilityName": "Avatar_Ambor_ThrowDummy_UseSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ThrowDummy_Short", + "abilityName": "Avatar_Ambor_ThrowDummy_Short", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ThrowDummy_4M", + "abilityName": "Avatar_Ambor_ThrowDummy_4M", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ThrowDummy_7M", + "abilityName": "Avatar_Ambor_ThrowDummy_7M", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ThrowDummy", + "abilityName": "Avatar_Ambor_ThrowDummy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Dummy_Speed_Fix", + "abilityName": "Avatar_Ambor_Dummy_Speed_Fix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_CreateDummy", + "abilityName": "Avatar_Ambor_CreateDummy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_BlowUpByTrigger", + "abilityName": "Avatar_Ambor_BlowUpByTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_CreateBlowUpTrigger", + "abilityName": "Avatar_Ambor_CreateBlowUpTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_BlowUpByTriggerh", + "abilityName": "Avatar_Ambor_BlowUpByTriggerh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_DummyDropBall", + "abilityName": "Avatar_Ambor_DummyDropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ArrowRain_Alert", + "abilityName": "Avatar_Ambor_ArrowRain_Alert", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ArrowRain", + "abilityName": "Avatar_Ambor_ArrowRain", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ArrowRainField", + "abilityName": "Avatar_Ambor_ArrowRainField", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_AirShoot", + "abilityName": "Avatar_Ambor_AirShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ChangeMainSkill", + "abilityName": "Avatar_Ambor_ChangeMainSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_FlyStamina_Reduction", + "abilityName": "Avatar_Ambor_FlyStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ProudSkill_21", + "abilityName": "Avatar_Ambor_ProudSkill_21", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_FallingAnthem", + "abilityName": "Avatar_Ambor_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor", + "abilityName": "Avatar_Ambor", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_Holdup", + "abilityName": "Avatar_Ambor_Skill_Holdup", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_HoldupStandby", + "abilityName": "Avatar_Ambor_Skill_HoldupStandby", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_Long_01", + "abilityName": "Avatar_Ambor_Skill_Long_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_Long_02", + "abilityName": "Avatar_Ambor_Skill_Long_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_Middle_01", + "abilityName": "Avatar_Ambor_Skill_Middle_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_Middle_02", + "abilityName": "Avatar_Ambor_Skill_Middle_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_PreForRun", + "abilityName": "Avatar_Ambor_Skill_PreForRun", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_PreForWalk", + "abilityName": "Avatar_Ambor_Skill_PreForWalk", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_Short", + "abilityName": "Avatar_Ambor_Skill_Short", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_TeamConfig_01BS", + "abilityName": "Avatar_Ambor_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_TeamConfig_01Loop", + "abilityName": "Avatar_Ambor_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_TeamConfig_01AS", + "abilityName": "Avatar_Ambor_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Skill_ArrowRain", + "abilityName": "Avatar_Ambor_Skill_ArrowRain", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ElementalBurst_Spine", + "abilityName": "Avatar_Ambor_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ElementalBurst_Hit", + "abilityName": "Avatar_Ambor_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ElementalBurst_BS", + "abilityName": "Avatar_Ambor_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_ElementalBurst_Hit_02", + "abilityName": "Avatar_Ambor_ElementalBurst_Hit_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Spine_Loop", + "abilityName": "Avatar_Ambor_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_MDAQ020_Ambor_01", + "abilityName": "Avatar_Ambor_VO_MDAQ020_Ambor_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_Emotion_Ambor_Speculate_01", + "abilityName": "Avatar_Ambor_VO_Emotion_Ambor_Speculate_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_Emotion_Ambor_Hesitate_01", + "abilityName": "Avatar_Ambor_VO_Emotion_Ambor_Hesitate_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_Emotion_Ambor_Pity_01", + "abilityName": "Avatar_Ambor_VO_Emotion_Ambor_Pity_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_MDAQ020_Ambor_02", + "abilityName": "Avatar_Ambor_VO_MDAQ020_Ambor_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_Emotion_Ambor_Satisfaction_02", + "abilityName": "Avatar_Ambor_VO_Emotion_Ambor_Satisfaction_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_Normal", + "abilityName": "Avatar_Ambor_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_MDAQ021_Ambor_01", + "abilityName": "Avatar_Ambor_VO_MDAQ021_Ambor_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_Emotion_Ambor_Vigilant_02", + "abilityName": "Avatar_Ambor_VO_Emotion_Ambor_Vigilant_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ambor_VO_Emotion_Ambor_Excited_02", + "abilityName": "Avatar_Ambor_VO_Emotion_Ambor_Excited_02", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Arlecchino.json b/data/json/avatar/ConfigAvatar_Arlecchino.json new file mode 100644 index 0000000..1d49872 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Arlecchino.json @@ -0,0 +1,59 @@ +{ + "abilities": [ + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_NormalAttack_Wing", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_ElementalBurst_Attack", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_HPDebtsMark", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_HealToHpDebts", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Arlecchino_Show_01", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Ayaka.json b/data/json/avatar/ConfigAvatar_Ayaka.json new file mode 100644 index 0000000..85d79ed --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Ayaka.json @@ -0,0 +1,254 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Ayaka_ExtraAttack", + "abilityName": "Avatar_Ayaka_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ExtraAttack_Damage", + "abilityName": "Avatar_Ayaka_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ExtraAttack_Damage_Gadget", + "abilityName": "Avatar_Ayaka_ExtraAttack_Damage_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ExtraAttack_Damage_Handler", + "abilityName": "Avatar_Ayaka_ExtraAttack_Damage_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ExtraAttack_Damage_Gadget_1", + "abilityName": "Avatar_Ayaka_ExtraAttack_Damage_Gadget_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ExtraAttack_Damage_Gadget_2", + "abilityName": "Avatar_Ayaka_ExtraAttack_Damage_Gadget_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_NormalAttack05_CreateBullet", + "abilityName": "Avatar_Ayaka_NormalAttack05_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_NormalAttack05_Bullet", + "abilityName": "Avatar_Ayaka_NormalAttack05_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_IceSlash", + "abilityName": "Avatar_Ayaka_IceSlash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Liquid_TriggerAbility", + "abilityName": "Avatar_Ayaka_Liquid_TriggerAbility", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_LiquidStrike", + "abilityName": "Avatar_Ayaka_LiquidStrike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_LiquidStrike_YayoiKaeshi", + "abilityName": "Avatar_Ayaka_LiquidStrike_YayoiKaeshi", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_EndLiquidStrike", + "abilityName": "Avatar_Ayaka_EndLiquidStrike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Icespine", + "abilityName": "Avatar_Ayaka_Icespine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Icespine_Sensu_Remover", + "abilityName": "Avatar_Ayaka_Icespine_Sensu_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Icespine_Strike_New", + "abilityName": "Avatar_Ayaka_Icespine_Strike_New", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrozenWindmill_SkillStart", + "abilityName": "Avatar_Ayaka_FrozenWindmill_SkillStart", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrozenWindmill", + "abilityName": "Avatar_Ayaka_FrozenWindmill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Oboro", + "abilityName": "Avatar_Ayaka_Oboro", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Windmill_CameraController", + "abilityName": "Avatar_Ayaka_Windmill_CameraController", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Windmill_Sensu_Remover", + "abilityName": "Avatar_Ayaka_Windmill_Sensu_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrozenWindmillDamage", + "abilityName": "Avatar_Ayaka_FrozenWindmillDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrozenWindmillDissipate", + "abilityName": "Avatar_Ayaka_FrozenWindmillDissipate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrozenWindmill_Sub_Damage", + "abilityName": "Avatar_Ayaka_FrozenWindmill_Sub_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrozenWindmill_Sub_Dissipate", + "abilityName": "Avatar_Ayaka_FrozenWindmill_Sub_Dissipate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrozenButterfly_Area", + "abilityName": "Avatar_Ayaka_FrozenButterfly_Area", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FrostFall", + "abilityName": "Avatar_Ayaka_FrostFall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_MagicSheathe_Add", + "abilityName": "Avatar_Ayaka_MagicSheathe_Add", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_MagicSheathe_Remove", + "abilityName": "Avatar_Ayaka_MagicSheathe_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_MagicSheathe_Attack05_Add", + "abilityName": "Avatar_Ayaka_MagicSheathe_Attack05_Add", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_MagicSheathe_NormalAttack_Remove", + "abilityName": "Avatar_Ayaka_MagicSheathe_NormalAttack_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ChangeMainSkill", + "abilityName": "Avatar_Ayaka_ChangeMainSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_CloseCollider", + "abilityName": "Avatar_Ayaka_CloseCollider", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_PermanentSkill_2", + "abilityName": "Avatar_Ayaka_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Constellation_6", + "abilityName": "Avatar_Ayaka_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_NormalAttack_DamageHandler", + "abilityName": "Avatar_Ayaka_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_FallingAnthem", + "abilityName": "Avatar_Ayaka_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka", + "abilityName": "Avatar_Ayaka", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_TeamConfig_01BS", + "abilityName": "Avatar_Ayaka_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_TeamConfig_01Loop", + "abilityName": "Avatar_Ayaka_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_TeamConfig_01AS", + "abilityName": "Avatar_Ayaka_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Ayaka_Kitsune_Mask", + "abilityName": "AvatarItem_Ayaka_Kitsune_Mask", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ElementalBurst_Spine", + "abilityName": "Avatar_Ayaka_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ElementalBurst_BS", + "abilityName": "Avatar_Ayaka_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ElementalBurst", + "abilityName": "Avatar_Ayaka_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ElementBurst", + "abilityName": "Avatar_Ayaka_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_ElementalBurst_Hit", + "abilityName": "Avatar_Ayaka_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Spine_Loop", + "abilityName": "Avatar_Ayaka_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Spine", + "abilityName": "Avatar_Ayaka_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayaka_Normal", + "abilityName": "Avatar_Ayaka_Normal", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Ayato.json b/data/json/avatar/ConfigAvatar_Ayato.json new file mode 100644 index 0000000..f67969c --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Ayato.json @@ -0,0 +1,249 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Ayato_ExtraAttack", + "abilityName": "Avatar_Ayato_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Ayato_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ExtraAttack_Bullet", + "abilityName": "Avatar_Ayato_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalArt", + "abilityName": "Avatar_Ayato_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff_Level", + "abilityName": "Avatar_Ayato_KendoPose_Buff_Level", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose", + "abilityName": "Avatar_Ayato_KendoPose", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_State", + "abilityName": "Avatar_Ayato_KendoPose_State", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff_Level_Remove", + "abilityName": "Avatar_Ayato_KendoPose_Buff_Level_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_BuffAdd", + "abilityName": "Avatar_Ayato_KendoPose_BuffAdd", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff", + "abilityName": "Avatar_Ayato_KendoPose_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Click", + "abilityName": "Avatar_Ayato_KendoPose_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Hold_SpecialAttack", + "abilityName": "Avatar_Ayato_Hold_SpecialAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff0", + "abilityName": "Avatar_Ayato_KendoPose_Buff0", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff1", + "abilityName": "Avatar_Ayato_KendoPose_Buff1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff2", + "abilityName": "Avatar_Ayato_KendoPose_Buff2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff3", + "abilityName": "Avatar_Ayato_KendoPose_Buff3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff4", + "abilityName": "Avatar_Ayato_KendoPose_Buff4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_Buff5", + "abilityName": "Avatar_Ayato_KendoPose_Buff5", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_BuffTimer", + "abilityName": "Avatar_Ayato_KendoPose_BuffTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_HPBuff", + "abilityName": "Avatar_Ayato_KendoPose_HPBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_BuffEffect", + "abilityName": "Avatar_Ayato_KendoPose_BuffEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_BuffEffect_Delay", + "abilityName": "Avatar_Ayato_KendoPose_BuffEffect_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_KendoPose_BuffTimerM", + "abilityName": "Avatar_Ayato_KendoPose_BuffTimerM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalArt_Gadget", + "abilityName": "Avatar_Ayato_ElementalArt_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalBurst", + "abilityName": "Avatar_Ayato_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalBurst_Gadget", + "abilityName": "Avatar_Ayato_ElementalBurst_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalBurst_Gadget_Select", + "abilityName": "Avatar_Ayato_ElementalBurst_Gadget_Select", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalBurst_NormalAttackUp", + "abilityName": "Avatar_Ayato_ElementalBurst_NormalAttackUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_PermanentSkill_2_ReviveEnergy", + "abilityName": "Avatar_Ayato_PermanentSkill_2_ReviveEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_IsOffStage", + "abilityName": "Avatar_Ayato_IsOffStage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_OffStage", + "abilityName": "Avatar_Ayato_OffStage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ReviveEnergy_OffStage", + "abilityName": "Avatar_Ayato_ReviveEnergy_OffStage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_NormalAttack_DamageHandler", + "abilityName": "Avatar_Ayato_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_FallingAnthem", + "abilityName": "Avatar_Ayato_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato", + "abilityName": "Avatar_Ayato", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Skill_ElementalArt", + "abilityName": "Avatar_Ayato_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Skill_ElementalArt_AS", + "abilityName": "Avatar_Ayato_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Skill_ElementalArt_Retreat", + "abilityName": "Avatar_Ayato_Skill_ElementalArt_Retreat", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Skill_ElementalArt_Retreat_AS", + "abilityName": "Avatar_Ayato_Skill_ElementalArt_Retreat_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Skill_SpecialAttack_01", + "abilityName": "Avatar_Ayato_Skill_SpecialAttack_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Skill_SpecialAttack_02", + "abilityName": "Avatar_Ayato_Skill_SpecialAttack_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_TeamConfig_01BS", + "abilityName": "Avatar_Ayato_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_TeamConfig_01Loop", + "abilityName": "Avatar_Ayato_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_TeamConfig_01AS", + "abilityName": "Avatar_Ayato_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Skill_SpecialAttack_03", + "abilityName": "Avatar_Ayato_Skill_SpecialAttack_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalBurst_Spine", + "abilityName": "Avatar_Ayato_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalBurst_BS", + "abilityName": "Avatar_Ayato_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_ElementalBurst_Hit", + "abilityName": "Avatar_Ayato_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ayato_Spine_Loop", + "abilityName": "Avatar_Ayato_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Baizhuer.json b/data/json/avatar/ConfigAvatar_Baizhuer.json new file mode 100644 index 0000000..276d1b5 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Baizhuer.json @@ -0,0 +1,204 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Baizhuer_ExtraAttack", + "abilityName": "Avatar_Baizhuer_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ExtraAttack_Gadget", + "abilityName": "Avatar_Baizhuer_ExtraAttack_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ExtraAttack_Gadget_Fx", + "abilityName": "Avatar_Baizhuer_ExtraAttack_Gadget_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ExtraAttack_Delay_Damage", + "abilityName": "Avatar_Baizhuer_ExtraAttack_Delay_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Attack01", + "abilityName": "Avatar_Baizhuer_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Attack02", + "abilityName": "Avatar_Baizhuer_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Attack03", + "abilityName": "Avatar_Baizhuer_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Attack04", + "abilityName": "Avatar_Baizhuer_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalArt", + "abilityName": "Avatar_Baizhuer_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalArt_AngularVelocity", + "abilityName": "Avatar_Baizhuer_ElementalArt_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst", + "abilityName": "Avatar_Baizhuer_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalArt_AngularVelocity_Timer", + "abilityName": "Avatar_Baizhuer_ElementalArt_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalArt_AvatarCheck", + "abilityName": "Avatar_Baizhuer_ElementalArt_AvatarCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Heal_ControlAbiilty", + "abilityName": "Avatar_Baizhuer_Heal_ControlAbiilty", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_Funnel_Handler", + "abilityName": "Avatar_Baizhuer_ElementalBurst_Funnel_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_Funnel_Trigger", + "abilityName": "Avatar_Baizhuer_ElementalBurst_Funnel_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_GetLocalAvatarTarget", + "abilityName": "Avatar_Baizhuer_ElementalBurst_GetLocalAvatarTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_Funnel_Shoot", + "abilityName": "Avatar_Baizhuer_ElementalBurst_Funnel_Shoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Burst_HasTarget", + "abilityName": "Avatar_Baizhuer_Burst_HasTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Funnel_ShootPos", + "abilityName": "Avatar_Baizhuer_Funnel_ShootPos", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_AngularVelocity_Timer", + "abilityName": "Avatar_Baizhuer_ElementalBurst_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_AngularVelocity", + "abilityName": "Avatar_Baizhuer_ElementalBurst_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_PermanentSkill_1", + "abilityName": "Avatar_Baizhuer_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_HPRatio_Check", + "abilityName": "Avatar_Baizhuer_HPRatio_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Constellation_ShootPos", + "abilityName": "Avatar_Baizhuer_Constellation_ShootPos", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_HealWhenGather", + "abilityName": "Avatar_Baizhuer_HealWhenGather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_FallingAnthem", + "abilityName": "Avatar_Baizhuer_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer", + "abilityName": "Avatar_Baizhuer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_TeamConfig_01BS", + "abilityName": "Avatar_Baizhuer_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_TeamConfig_01Loop", + "abilityName": "Avatar_Baizhuer_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_TeamConfig_01AS", + "abilityName": "Avatar_Baizhuer_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_Spine", + "abilityName": "Avatar_Baizhuer_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_Spine_Hand", + "abilityName": "Avatar_Baizhuer_ElementalBurst_Spine_Hand", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Spine", + "abilityName": "Avatar_Baizhuer_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_BS", + "abilityName": "Avatar_Baizhuer_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_BuffBS", + "abilityName": "Avatar_Baizhuer_ElementalBurst_BuffBS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_Buff", + "abilityName": "Avatar_Baizhuer_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementBurst", + "abilityName": "Avatar_Baizhuer_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_ElementalBurst_BuffHit", + "abilityName": "Avatar_Baizhuer_ElementalBurst_BuffHit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Baizhuer_Spine_Loop", + "abilityName": "Avatar_Baizhuer_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Barbara.json b/data/json/avatar/ConfigAvatar_Barbara.json new file mode 100644 index 0000000..26ea021 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Barbara.json @@ -0,0 +1,144 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Barbara_ExtraAttack", + "abilityName": "Avatar_Barbara_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ExtraAttack_FX", + "abilityName": "Avatar_Barbara_ExtraAttack_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ExtraAttack_Damage", + "abilityName": "Avatar_Barbara_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_Attack01", + "abilityName": "Avatar_Barbara_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_Attack02", + "abilityName": "Avatar_Barbara_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_Attack03", + "abilityName": "Avatar_Barbara_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_Attack04", + "abilityName": "Avatar_Barbara_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_Attack04Damage", + "abilityName": "Avatar_Barbara_Attack04Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_WetShiled_Clear", + "abilityName": "Avatar_Barbara_WetShiled_Clear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_WetShiled", + "abilityName": "Avatar_Barbara_WetShiled", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_WetShiled_Heal", + "abilityName": "Avatar_Barbara_WetShiled_Heal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_WetShiled_Impact", + "abilityName": "Avatar_Barbara_WetShiled_Impact", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_IdolHeal", + "abilityName": "Avatar_Barbara_IdolHeal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_Trigger_Weather", + "abilityName": "Avatar_Barbara_Trigger_Weather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ReviveElemEnergy", + "abilityName": "Avatar_Barbara_ReviveElemEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ReBorn_Pre", + "abilityName": "Avatar_Barbara_ReBorn_Pre", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ReBorn", + "abilityName": "Avatar_Barbara_ReBorn", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ReBornEffect_01", + "abilityName": "Avatar_Barbara_ReBornEffect_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ReBornEffect_02", + "abilityName": "Avatar_Barbara_ReBornEffect_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_FallingAnthem", + "abilityName": "Avatar_Barbara_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara", + "abilityName": "Avatar_Barbara", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_TeamConfig_01BS", + "abilityName": "Avatar_Barbara_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_TeamConfig_01Loop", + "abilityName": "Avatar_Barbara_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_TeamConfig_01AS", + "abilityName": "Avatar_Barbara_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ElementalBurst_Spine", + "abilityName": "Avatar_Barbara_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_ElementalBurst", + "abilityName": "Avatar_Barbara_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_Spine_Loop", + "abilityName": "Avatar_Barbara_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Barbara_VO_MDAQ054_Barbara_01", + "abilityName": "Avatar_Barbara_VO_MDAQ054_Barbara_01", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Beidou.json b/data/json/avatar/ConfigAvatar_Beidou.json new file mode 100644 index 0000000..4f0c3bd --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Beidou.json @@ -0,0 +1,109 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Beidou_ExtraAttack", + "abilityName": "Avatar_Beidou_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ThunderCounter_Handler", + "abilityName": "Avatar_Beidou_ThunderCounter_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ThunderCounter_Strike", + "abilityName": "Avatar_Beidou_ThunderCounter_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ThunderShield_CameraHandler", + "abilityName": "Avatar_Beidou_ThunderShield_CameraHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ThunderShield_Gadget", + "abilityName": "Avatar_Beidou_ThunderShield_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ThunderShield", + "abilityName": "Avatar_Beidou_ThunderShield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_NormalAttackDamage", + "abilityName": "Avatar_Beidou_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_FallingAnthem", + "abilityName": "Avatar_Beidou_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ProudSkill_FlashSlash", + "abilityName": "Avatar_Beidou_ProudSkill_FlashSlash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_SwimStamina_Reduction", + "abilityName": "Avatar_Beidou_SwimStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ExtraAttack_Chongyun", + "abilityName": "Avatar_Beidou_ExtraAttack_Chongyun", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou", + "abilityName": "Avatar_Beidou", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_TeamConfig_01BS", + "abilityName": "Avatar_Beidou_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_TeamConfig_01Loop", + "abilityName": "Avatar_Beidou_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_TeamConfig_01AS", + "abilityName": "Avatar_Beidou_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ElementalBurst_Spine", + "abilityName": "Avatar_Beidou_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_Spine", + "abilityName": "Avatar_Beidou_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ElementalBurst_Hit", + "abilityName": "Avatar_Beidou_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_ElementalBurst_Buff", + "abilityName": "Avatar_Beidou_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_Spine_Loop", + "abilityName": "Avatar_Beidou_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Beidou_Spine_Loop_Water", + "abilityName": "Avatar_Beidou_Spine_Loop_Water", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Bennett.json b/data/json/avatar/ConfigAvatar_Bennett.json new file mode 100644 index 0000000..63d9d78 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Bennett.json @@ -0,0 +1,134 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Bennett_ExtraAttack", + "abilityName": "Avatar_Bennett_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_Shake", + "abilityName": "Avatar_Bennett_Shake", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Handler", + "abilityName": "Avatar_Bennett_ElementalArt_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Strike01_01", + "abilityName": "Avatar_Bennett_ElementalArt_Strike01_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Strike02_01", + "abilityName": "Avatar_Bennett_ElementalArt_Strike02_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Strike02_02", + "abilityName": "Avatar_Bennett_ElementalArt_Strike02_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Strike02_03", + "abilityName": "Avatar_Bennett_ElementalArt_Strike02_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Strike03_01", + "abilityName": "Avatar_Bennett_ElementalArt_Strike03_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Strike03_02", + "abilityName": "Avatar_Bennett_ElementalArt_Strike03_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalArt_Explode", + "abilityName": "Avatar_Bennett_ElementalArt_Explode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalBurst_Strike", + "abilityName": "Avatar_Bennett_ElementalBurst_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalBurst", + "abilityName": "Avatar_Bennett_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalBurst_Gadget", + "abilityName": "Avatar_Bennett_ElementalBurst_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_NormalAttackDamage", + "abilityName": "Avatar_Bennett_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_FallingAnthem", + "abilityName": "Avatar_Bennett_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett", + "abilityName": "Avatar_Bennett", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_TeamConfig_01BS", + "abilityName": "Avatar_Bennett_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_TeamConfig_01Loop", + "abilityName": "Avatar_Bennett_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_TeamConfig_01AS", + "abilityName": "Avatar_Bennett_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalBurst_Spine", + "abilityName": "Avatar_Bennett_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalBurst_BS", + "abilityName": "Avatar_Bennett_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_ElementalBurst_Hit", + "abilityName": "Avatar_Bennett_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_elementalBurst_BS_Normal", + "abilityName": "Avatar_Bennett_elementalBurst_BS_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_Spine_Loop", + "abilityName": "Avatar_Bennett_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_Spine_Loop_Star", + "abilityName": "Avatar_Bennett_Spine_Loop_Star", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Bennett_Spine", + "abilityName": "Avatar_Bennett_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Candace.json b/data/json/avatar/ConfigAvatar_Candace.json new file mode 100644 index 0000000..e5c8c3a --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Candace.json @@ -0,0 +1,174 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Candace_ExtraAttack", + "abilityName": "Avatar_Candace_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Candace_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalArt_HoldCharge", + "abilityName": "Avatar_Candace_ElementalArt_HoldCharge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalArt_ChargeShield", + "abilityName": "Avatar_Candace_ElementalArt_ChargeShield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalArt_H", + "abilityName": "Avatar_Candace_ElementalArt_H", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalArt_ElemBall_Handler", + "abilityName": "Avatar_Candace_ElementalArt_ElemBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalArt_L", + "abilityName": "Avatar_Candace_ElementalArt_L", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalBurst", + "abilityName": "Avatar_Candace_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "AvatarIn_Attack_Constellation_61Candace_ElementalBurst_WaterField_AvatarIn_Attack", + "abilityName": "AvatarIn_Attack_Constellation_61Candace_ElementalBurst_WaterField_AvatarIn_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_NormalAttack_DamageHandler", + "abilityName": "Avatar_Candace_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_FallingAnthem", + "abilityName": "Avatar_Candace_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ClimbStamina_Reduction", + "abilityName": "Avatar_Candace_ClimbStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace", + "abilityName": "Avatar_Candace", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_BS", + "abilityName": "Avatar_Candace_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_Charge01", + "abilityName": "Avatar_Candace_Skill_ElementalArt_Charge01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_Charge02", + "abilityName": "Avatar_Candace_Skill_ElementalArt_Charge02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_Charge03", + "abilityName": "Avatar_Candace_Skill_ElementalArt_Charge03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_L", + "abilityName": "Avatar_Candace_Skill_ElementalArt_L", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_H", + "abilityName": "Avatar_Candace_Skill_ElementalArt_H", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_L_AS", + "abilityName": "Avatar_Candace_Skill_ElementalArt_L_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalArt_H_AS", + "abilityName": "Avatar_Candace_Skill_ElementalArt_H_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalBurst", + "abilityName": "Avatar_Candace_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_TeamConfig_01BS", + "abilityName": "Avatar_Candace_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_TeamConfig_01Loop", + "abilityName": "Avatar_Candace_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_TeamConfig_01AS", + "abilityName": "Avatar_Candace_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Skill_ElementalBurst_AS", + "abilityName": "Avatar_Candace_Skill_ElementalBurst_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalBurst_Spine", + "abilityName": "Avatar_Candace_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Spine", + "abilityName": "Avatar_Candace_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalBurst_BS", + "abilityName": "Avatar_Candace_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalBurst_Hit", + "abilityName": "Avatar_Candace_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_ElementalBurst_Buff", + "abilityName": "Avatar_Candace_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Spine_Loop", + "abilityName": "Avatar_Candace_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Spine_Loop_BG", + "abilityName": "Avatar_Candace_Spine_Loop_BG", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Candace_Sub_Spine", + "abilityName": "Avatar_Candace_Sub_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Charlotte.json b/data/json/avatar/ConfigAvatar_Charlotte.json new file mode 100644 index 0000000..98bb070 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Charlotte.json @@ -0,0 +1,429 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Charlotte_ExtraAttack", + "abilityName": "Avatar_Charlotte_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_BS_Check", + "abilityName": "Avatar_Charlotte_ExtraAttack_BS_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Attack01", + "abilityName": "Avatar_Charlotte_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Attack01_onMonster", + "abilityName": "Avatar_Charlotte_Attack01_onMonster", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Attack01_None", + "abilityName": "Avatar_Charlotte_Attack01_None", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Attack02", + "abilityName": "Avatar_Charlotte_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Attack02_onMonster", + "abilityName": "Avatar_Charlotte_Attack02_onMonster", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Attack02_None", + "abilityName": "Avatar_Charlotte_Attack02_None", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Attack03", + "abilityName": "Avatar_Charlotte_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_DoAttack", + "abilityName": "Avatar_Charlotte_ExtraAttack_DoAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_Gadget", + "abilityName": "Avatar_Charlotte_ExtraAttack_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_GadgetEffect", + "abilityName": "Avatar_Charlotte_ExtraAttack_GadgetEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_Damage", + "abilityName": "Avatar_Charlotte_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_Arkhe_Strike", + "abilityName": "Avatar_Charlotte_ExtraAttack_Arkhe_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_Arkhe_CDTimer_", + "abilityName": "Avatar_Charlotte_ExtraAttack_Arkhe_CDTimer_", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ExtraAttack_Arkhe_CDTimer", + "abilityName": "Avatar_Charlotte_ExtraAttack_Arkhe_CDTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt", + "abilityName": "Avatar_Charlotte_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_DropBall_Handler", + "abilityName": "Avatar_Charlotte_ElementalArt_DropBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_Click", + "abilityName": "Avatar_Charlotte_ElementalArt_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_Click_Strike", + "abilityName": "Avatar_Charlotte_ElementalArt_Click_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_Click_CameraReborn", + "abilityName": "Avatar_Charlotte_ElementalArt_Click_CameraReborn", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArtHold_RayCast", + "abilityName": "Avatar_Charlotte_ElementalArtHold_RayCast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_InAim_SetGV", + "abilityName": "Avatar_Charlotte_RayCast_InAim_SetGV", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Trigger", + "abilityName": "Avatar_Charlotte_RayCast_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_CloseFx", + "abilityName": "Avatar_Charlotte_RayCast_CloseFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Handler", + "abilityName": "Avatar_Charlotte_RayCast_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Camera_Fx", + "abilityName": "Avatar_Charlotte_RayCast_Camera_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_HoldTimeChangeRayCast", + "abilityName": "Avatar_Charlotte_HoldTimeChangeRayCast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_InHoldTime", + "abilityName": "Avatar_Charlotte_InHoldTime", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_MaxHoldTime_TriggerDot", + "abilityName": "Avatar_Charlotte_MaxHoldTime_TriggerDot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_CloseFx_Detect", + "abilityName": "Avatar_Charlotte_RayCast_CloseFx_Detect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_InterruptFx", + "abilityName": "Avatar_Charlotte_RayCast_InterruptFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_CountLayerHandler", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_CountLayerHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_CountLayerHandler02", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_CountLayerHandler02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Damage", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_ScreenEffect", + "abilityName": "Avatar_Charlotte_ElementalArt_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Dot_Handler", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Dot_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Effect_Weak", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Effect_Weak", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Effect_Strong", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Effect_Strong", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Weak", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Weak", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Strong", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_Strong", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Bomb_OnMonster_ToFullLayer", + "abilityName": "Avatar_Charlotte_RayCast_Bomb_OnMonster_ToFullLayer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_RayCast_Camera_Fx_OnTeam", + "abilityName": "Avatar_Charlotte_RayCast_Camera_Fx_OnTeam", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_HoldTimeChangeRayCast_Trigger", + "abilityName": "Avatar_Charlotte_HoldTimeChangeRayCast_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_TagNum_Clear", + "abilityName": "Avatar_Charlotte_ElementalArt_TagNum_Clear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_Click_AddDotHandler", + "abilityName": "Avatar_Charlotte_ElementalArt_Click_AddDotHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_TagNum_Clear0Avatar_Charlotte_ElementalArt_Hold_AddDotHandler", + "abilityName": "Avatar_Charlotte_ElementalArt_TagNum_Clear0Avatar_Charlotte_ElementalArt_Hold_AddDotHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_Hold_AddDotHandler", + "abilityName": "Avatar_Charlotte_ElementalArt_Hold_AddDotHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_WidgetMode", + "abilityName": "Avatar_Charlotte_ElementalArt_WidgetMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_WidgetMode_Check", + "abilityName": "Avatar_Charlotte_ElementalArt_WidgetMode_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalArt_Loop_WidgetMode", + "abilityName": "Avatar_Charlotte_ElementalArt_Loop_WidgetMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalBurst_Init", + "abilityName": "Avatar_Charlotte_ElementalBurst_Init", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_ElementalBurst", + "abilityName": "Avatar_Charlotte_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_FallingAnthem", + "abilityName": "Avatar_Charlotte_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_WaistCamera_DisAppear", + "abilityName": "Avatar_Charlotte_WaistCamera_DisAppear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_WaistCamera_Appear", + "abilityName": "Avatar_Charlotte_WaistCamera_Appear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_PermanentSkill_1", + "abilityName": "Avatar_Charlotte_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_PermanentSkill_1_Handler", + "abilityName": "Avatar_Charlotte_PermanentSkill_1_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_PermanentSkill_2", + "abilityName": "Avatar_Charlotte_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_PermanentSkill_2_IsNotFengdan", + "abilityName": "Avatar_Charlotte_PermanentSkill_2_IsNotFengdan", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_PermanentSkill_2_NotFengdanCount", + "abilityName": "Avatar_Charlotte_PermanentSkill_2_NotFengdanCount", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_Extra_Hot", + "abilityName": "Avatar_Charlotte_Constellation_Extra_Hot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_Extra_Hot_Handler", + "abilityName": "Avatar_Charlotte_Constellation_Extra_Hot_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_Extra_Hot_EffectHandler", + "abilityName": "Avatar_Charlotte_Constellation_Extra_Hot_EffectHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_Extra_Hot_Tick", + "abilityName": "Avatar_Charlotte_Constellation_Extra_Hot_Tick", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ElementalArt_AddAtkUp", + "abilityName": "Avatar_Charlotte_Constellation_ElementalArt_AddAtkUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ElementalArt_AddAtk_ClearCount", + "abilityName": "Avatar_Charlotte_Constellation_ElementalArt_AddAtk_ClearCount", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ReviveElemEnergy", + "abilityName": "Avatar_Charlotte_Constellation_ReviveElemEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ExtraCameraAttack", + "abilityName": "Avatar_Charlotte_Constellation_ExtraCameraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ExtraCameraAttack_Handler", + "abilityName": "Avatar_Charlotte_Constellation_ExtraCameraAttack_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ExtraCameraAttack_TeamHandler", + "abilityName": "Avatar_Charlotte_Constellation_ExtraCameraAttack_TeamHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ExtraCameraAttack_TeamHandlerCUNIQUE_Avatar_Charlotte_Constellation_ExtraCameraAttack_TeamHandler", + "abilityName": "Avatar_Charlotte_Constellation_ExtraCameraAttack_TeamHandlerCUNIQUE_Avatar_Charlotte_Constellation_ExtraCameraAttack_TeamHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ExtraCamera_Gadget", + "abilityName": "Avatar_Charlotte_Constellation_ExtraCamera_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ExtraCamera_Effect", + "abilityName": "Avatar_Charlotte_Constellation_ExtraCamera_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte", + "abilityName": "Avatar_Charlotte", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_Extra_Hot4Avatar_Charlotte_Constellation_ElementalArt_AddAtkUp", + "abilityName": "Avatar_Charlotte_Constellation_Extra_Hot4Avatar_Charlotte_Constellation_ElementalArt_AddAtkUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Skill_ElementalArt_BS", + "abilityName": "Avatar_Charlotte_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Skill_ElementalArt_Click0Emo_Avatar_Charlotte_Skill_ElementalArt_Click_AS0Emo_Avatar_Charlotte_Skill_ElementalArt_AimFocus1Emo_Avatar_Charlotte_Skill_ElementalArt_QuitFocus4Emo_Avatar_Charlotte_Skill_ElementalArt_QuitFocus_AS", + "abilityName": "Avatar_Charlotte_Skill_ElementalArt_Click0Emo_Avatar_Charlotte_Skill_ElementalArt_Click_AS0Emo_Avatar_Charlotte_Skill_ElementalArt_AimFocus1Emo_Avatar_Charlotte_Skill_ElementalArt_QuitFocus4Emo_Avatar_Charlotte_Skill_ElementalArt_QuitFocus_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Skill_ElementalBurst", + "abilityName": "Avatar_Charlotte_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Skill_ElementalBurst_AS", + "abilityName": "Avatar_Charlotte_Skill_ElementalBurst_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_TeamConfig_01BS", + "abilityName": "Avatar_Charlotte_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_TeamConfig_01Loop", + "abilityName": "Avatar_Charlotte_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_TeamConfig_01AS", + "abilityName": "Avatar_Charlotte_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Charlotte_Constellation_ExtraCamera_Gadget1Avatar_Charlotte_Constellation_ExtraCamera_Gadget", + "abilityName": "Avatar_Charlotte_Constellation_ExtraCamera_Gadget1Avatar_Charlotte_Constellation_ExtraCamera_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "AvatarIcon_Charlotte", + "abilityName": "AvatarIcon_Charlotte", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Chevreuse.json b/data/json/avatar/ConfigAvatar_Chevreuse.json new file mode 100644 index 0000000..f7858c8 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Chevreuse.json @@ -0,0 +1,174 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Chevreuse_ExtraAttack", + "abilityName": "Avatar_Chevreuse_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ExtraAttack_Cast", + "abilityName": "Avatar_Chevreuse_ExtraAttack_Cast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ExtraAttack_Bullet", + "abilityName": "Avatar_Chevreuse_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt", + "abilityName": "Avatar_Chevreuse_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_Has_Target_Mark", + "abilityName": "Avatar_Chevreuse_Has_Target_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt_Click", + "abilityName": "Avatar_Chevreuse_ElementalArt_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt_Shoot", + "abilityName": "Avatar_Chevreuse_ElementalArt_Shoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_Damage_Up", + "abilityName": "Avatar_Chevreuse_Damage_Up", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ExtraArt_Chance", + "abilityName": "Avatar_Chevreuse_ExtraArt_Chance", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ExtraBomb", + "abilityName": "Avatar_Chevreuse_ExtraBomb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_DropBall", + "abilityName": "Avatar_Chevreuse_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ArkheGrade", + "abilityName": "Avatar_Chevreuse_ArkheGrade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ArkheGrade_CD", + "abilityName": "Avatar_Chevreuse_ArkheGrade_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalBurst", + "abilityName": "Avatar_Chevreuse_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt_UpgradeBullet", + "abilityName": "Avatar_Chevreuse_ElementalArt_UpgradeBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt_UpgradeBullet_Driver", + "abilityName": "Avatar_Chevreuse_ElementalArt_UpgradeBullet_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_SuperBullet_Buff", + "abilityName": "Avatar_Chevreuse_SuperBullet_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt_UpgradeBullet_Handler", + "abilityName": "Avatar_Chevreuse_ElementalArt_UpgradeBullet_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt_UpgradeBullet_Driver2Avatar_Chevreuse_ElementalArt_UpgradeBullet_Driver", + "abilityName": "Avatar_Chevreuse_ElementalArt_UpgradeBullet_Driver2Avatar_Chevreuse_ElementalArt_UpgradeBullet_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_ElementalArt_Feedback", + "abilityName": "Avatar_Chevreuse_ElementalArt_Feedback", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_SuperBullet_Eff", + "abilityName": "Avatar_Chevreuse_SuperBullet_Eff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_Buff", + "abilityName": "Avatar_Chevreuse_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_ElementalArt_Buff_Chevreuse", + "abilityName": "Avatar_ElementalArt_Buff_Chevreuse", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_ElementalArt_Buff_Chevreuse_Driver", + "abilityName": "Avatar_ElementalArt_Buff_Chevreuse_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_ElementalArt_Buff_Chevreuse_Driver0UNIQUE_Avatar_ElementalArt_Buff_Chevreuse_Driver", + "abilityName": "Avatar_ElementalArt_Buff_Chevreuse_Driver0UNIQUE_Avatar_ElementalArt_Buff_Chevreuse_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_ElementalArt_Buff_Chevreuse_Feedback", + "abilityName": "Avatar_ElementalArt_Buff_Chevreuse_Feedback", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_CreateBomb", + "abilityName": "Avatar_Chevreuse_CreateBomb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_DashStamina_Reduction", + "abilityName": "Avatar_Chevreuse_DashStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_NormalAttack_DamageHandler", + "abilityName": "Avatar_Chevreuse_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_FallingAnthem", + "abilityName": "Avatar_Chevreuse_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse", + "abilityName": "Avatar_Chevreuse", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_TeamConfig_01BS", + "abilityName": "Avatar_Chevreuse_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_TeamConfig_01Loop", + "abilityName": "Avatar_Chevreuse_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chevreuse_TeamConfig_01AS", + "abilityName": "Avatar_Chevreuse_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Chiori.json b/data/json/avatar/ConfigAvatar_Chiori.json new file mode 100644 index 0000000..f55bb4a --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Chiori.json @@ -0,0 +1,114 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Chiori_ExtraAttack", + "abilityName": "Avatar_Chiori_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_ElementalArt_PutTurret", + "abilityName": "Avatar_Chiori_ElementalArt_PutTurret", + "abilityOverride": "" + }, + { + "abilityID": "SkillObj_Chiori_ElementalArt_RockGadget_Turret", + "abilityName": "SkillObj_Chiori_ElementalArt_RockGadget_Turret", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_ElementalArt_Blink_HoldCharge", + "abilityName": "Avatar_Chiori_ElementalArt_Blink_HoldCharge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_ElementalArt_Blink_OnStart", + "abilityName": "Avatar_Chiori_ElementalArt_Blink_OnStart", + "abilityOverride": "" + }, + { + "abilityID": "ElementalArt_Blink_Trail", + "abilityName": "ElementalArt_Blink_Trail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_ElementalArt_Blink", + "abilityName": "Avatar_Chiori_ElementalArt_Blink", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_ElementalArt_Blink_SelectPos", + "abilityName": "Avatar_Chiori_ElementalArt_Blink_SelectPos", + "abilityOverride": "" + }, + { + "abilityID": "Chiori_ElementalArt_AfterRushMove_CameraRevise", + "abilityName": "Chiori_ElementalArt_AfterRushMove_CameraRevise", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_ElementalArt_JumpSwitch", + "abilityName": "Avatar_Chiori_ElementalArt_JumpSwitch", + "abilityOverride": "" + }, + { + "abilityID": "Bullet_Chiori_ElementalArt_Rush_Detect", + "abilityName": "Bullet_Chiori_ElementalArt_Rush_Detect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_ElementalBurst", + "abilityName": "Avatar_Chiori_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Bullet_Chiori_ElementalBurst_RockBomb", + "abilityName": "Bullet_Chiori_ElementalBurst_RockBomb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_FallingAnthem", + "abilityName": "Avatar_Chiori_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_NormalAttack_DamageHandler", + "abilityName": "Avatar_Chiori_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_Turret_Onkill_Handler", + "abilityName": "Avatar_Chiori_Turret_Onkill_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_PermanentSkill_2_OnCreateRockGadget", + "abilityName": "Avatar_Chiori_PermanentSkill_2_OnCreateRockGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_Constellation_2_AttackLanded_CreateDoll", + "abilityName": "Avatar_Chiori_Constellation_2_AttackLanded_CreateDoll", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_Constellation_4_ElementalBurst_AddDoll", + "abilityName": "Avatar_Chiori_Constellation_4_ElementalBurst_AddDoll", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_Constellation_6_Strengthen", + "abilityName": "Avatar_Chiori_Constellation_6_Strengthen", + "abilityOverride": "" + }, + { + "abilityID": "SkillObj_Chiori_Turret_Constellation", + "abilityName": "SkillObj_Chiori_Turret_Constellation", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chiori_PermanentSkill_3", + "abilityName": "Avatar_Chiori_PermanentSkill_3", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Chongyun.json b/data/json/avatar/ConfigAvatar_Chongyun.json new file mode 100644 index 0000000..190666c --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Chongyun.json @@ -0,0 +1,124 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Beidou_ExtraAttack_Chongyun", + "abilityName": "Avatar_Beidou_ExtraAttack_Chongyun", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_ElementalArt_Initiate", + "abilityName": "Avatar_Chongyun_ElementalArt_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_ElementalArt_Damage", + "abilityName": "Avatar_Chongyun_ElementalArt_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_IceCrystal", + "abilityName": "Avatar_Chongyun_IceCrystal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_IceCrystal_Dummy", + "abilityName": "Avatar_Chongyun_IceCrystal_Dummy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_SoulUnleash_Single_Initiate", + "abilityName": "Avatar_Chongyun_SoulUnleash_Single_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_SoulUnleash_Initiate", + "abilityName": "Avatar_Chongyun_SoulUnleash_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_SoulUnleash_SoulBlades_Quadra", + "abilityName": "Avatar_Chongyun_SoulUnleash_SoulBlades_Quadra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_SoulUnleash_SoulBlades", + "abilityName": "Avatar_Chongyun_SoulUnleash_SoulBlades", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_SoulUnleash_Damage", + "abilityName": "Avatar_Chongyun_SoulUnleash_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_SoulUnleash_Quadra_Damage", + "abilityName": "Avatar_Chongyun_SoulUnleash_Quadra_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_HitReviveElemEnergy", + "abilityName": "Avatar_Chongyun_HitReviveElemEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_NormalAttack_DamageHandler", + "abilityName": "Avatar_Chongyun_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_IceBlade", + "abilityName": "Avatar_Chongyun_IceBlade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_FallingAnthem", + "abilityName": "Avatar_Chongyun_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun", + "abilityName": "Avatar_Chongyun", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_TeamConfig_01BS", + "abilityName": "Avatar_Chongyun_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_TeamConfig_01Loop", + "abilityName": "Avatar_Chongyun_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_TeamConfig_01AS", + "abilityName": "Avatar_Chongyun_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_ElementalBurst_Spine", + "abilityName": "Avatar_Chongyun_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_ElementalBurst_Hit", + "abilityName": "Avatar_Chongyun_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_ElementalBurst_BS", + "abilityName": "Avatar_Chongyun_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_ElementalBurst_Hit_NoSpine", + "abilityName": "Avatar_Chongyun_ElementalBurst_Hit_NoSpine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Chongyun_Spine_Loop", + "abilityName": "Avatar_Chongyun_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Clorinde.json b/data/json/avatar/ConfigAvatar_Clorinde.json new file mode 100644 index 0000000..5545bf8 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Clorinde.json @@ -0,0 +1,59 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Clorinde_ExtraAttack", + "abilityName": "Avatar_Clorinde_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_ElementalArt_Activate", + "abilityName": "Avatar_Clorinde_ElementalArt_Activate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_ElementalArt_GunShot", + "abilityName": "Avatar_Clorinde_ElementalArt_GunShot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_ElementalArt_Dodge_Input", + "abilityName": "Avatar_Clorinde_ElementalArt_Dodge_Input", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_ElementalArt_Dodge", + "abilityName": "Avatar_Clorinde_ElementalArt_Dodge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_ElementalBurst_Camera", + "abilityName": "Avatar_Clorinde_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_ElementalBurst_Activate", + "abilityName": "Avatar_Clorinde_ElementalBurst_Activate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_FallingAnthem", + "abilityName": "Avatar_Clorinde_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_Damage_Handler", + "abilityName": "Avatar_Clorinde_Damage_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_Talent_PassiveSkill", + "abilityName": "Avatar_Clorinde_Talent_PassiveSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Clorinde_Constellation_PassiveSkill", + "abilityName": "Avatar_Clorinde_Constellation_PassiveSkill", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Collei.json b/data/json/avatar/ConfigAvatar_Collei.json new file mode 100644 index 0000000..b3184bd --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Collei.json @@ -0,0 +1,144 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Collei_PressShoot", + "abilityName": "Avatar_Collei_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_AimPressShoot", + "abilityName": "Avatar_Collei_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_Arrow_FX", + "abilityName": "Avatar_Collei_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ShootAimingArrow_Charge", + "abilityName": "Avatar_Collei_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ShootArrow_01", + "abilityName": "Avatar_Collei_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ShootArrow_02", + "abilityName": "Avatar_Collei_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ShootArrow_03", + "abilityName": "Avatar_Collei_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ShootArrow_04", + "abilityName": "Avatar_Collei_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ShootArrow_Aiming", + "abilityName": "Avatar_Collei_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ElementalArt", + "abilityName": "Avatar_Collei_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ElementalBurst", + "abilityName": "Avatar_Collei_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_FallingAnthem", + "abilityName": "Avatar_Collei_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_FlyStamina_Reduction", + "abilityName": "Avatar_Collei_FlyStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei", + "abilityName": "Avatar_Collei", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_PermanentSkill_2", + "abilityName": "Avatar_Collei_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_Skill_ElementalArt", + "abilityName": "Avatar_Collei_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_Skill_ElementalArt_AS", + "abilityName": "Avatar_Collei_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_Skill_ElementalBurst", + "abilityName": "Avatar_Collei_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_Skill_ElementalBurst_AS", + "abilityName": "Avatar_Collei_Skill_ElementalBurst_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_TeamConfig_01BS", + "abilityName": "Avatar_Collei_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_TeamConfig_01Loop", + "abilityName": "Avatar_Collei_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_TeamConfig_01AS", + "abilityName": "Avatar_Collei_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ElementalBurst_Spine", + "abilityName": "Avatar_Collei_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ElementalBurst_BS", + "abilityName": "Avatar_Collei_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ElementBurst", + "abilityName": "Avatar_Collei_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_ElementalBurst_Hit", + "abilityName": "Avatar_Collei_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_elementalBurst_BS_Normal", + "abilityName": "Avatar_Collei_elementalBurst_BS_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Collei_Spine_Loop", + "abilityName": "Avatar_Collei_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Cyno.json b/data/json/avatar/ConfigAvatar_Cyno.json new file mode 100644 index 0000000..7b63c72 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Cyno.json @@ -0,0 +1,319 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Cyno_ExtraAttack", + "abilityName": "Avatar_Cyno_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack05_TurndDirection", + "abilityName": "Avatar_Cyno_Attack05_TurndDirection", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack03_FireHitEffect_Handler", + "abilityName": "Avatar_Cyno_Attack03_FireHitEffect_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack03_Hit", + "abilityName": "Avatar_Cyno_Attack03_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack03_Hit_0", + "abilityName": "Avatar_Cyno_Attack03_Hit_0", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack03_Hit_1", + "abilityName": "Avatar_Cyno_Attack03_Hit_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack03_Hit_2", + "abilityName": "Avatar_Cyno_Attack03_Hit_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Cyno_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ExtraAttack_Bullet", + "abilityName": "Avatar_Cyno_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalArt_DropBallCheck", + "abilityName": "Avatar_Cyno_ElementalArt_DropBallCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalArt_DropBall", + "abilityName": "Avatar_Cyno_ElementalArt_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalArt_Bullet", + "abilityName": "Avatar_Cyno_ElementalArt_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_BurstMode_ElementalArt_Onstart", + "abilityName": "Avatar_Cyno_BurstMode_ElementalArt_Onstart", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Constellation_6", + "abilityName": "Avatar_Cyno_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalArt_Muya_Success_Handler", + "abilityName": "Avatar_Cyno_ElementalArt_Muya_Success_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst", + "abilityName": "Avatar_Cyno_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Invincible", + "abilityName": "Avatar_Cyno_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_CameraBlur_Handler", + "abilityName": "Avatar_Cyno_ElementalBurst_CameraBlur_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_CameraBlur_Effect", + "abilityName": "Avatar_Cyno_ElementalBurst_CameraBlur_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_ChangeVisible", + "abilityName": "Avatar_Cyno_ElementalBurst_ChangeVisible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_ResetInit", + "abilityName": "Avatar_Cyno_ElementalBurst_ResetInit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Fog_Handler", + "abilityName": "Avatar_Cyno_ElementalBurst_Fog_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Weather_DisPlayHandler", + "abilityName": "Avatar_Cyno_ElementalBurst_Weather_DisPlayHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Weather_LoopHandler", + "abilityName": "Avatar_Cyno_ElementalBurst_Weather_LoopHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_ChangeWeather", + "abilityName": "Avatar_Cyno_ElementalBurst_ChangeWeather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_BigArmAppear", + "abilityName": "Avatar_Cyno_BigArmAppear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ArmBreak", + "abilityName": "Avatar_Cyno_ArmBreak", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_BurstMode_State_Badao", + "abilityName": "Avatar_Cyno_BurstMode_State_Badao", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_BigArmDisAppear", + "abilityName": "Avatar_Cyno_BigArmDisAppear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_WarningCameraEffect", + "abilityName": "Avatar_Cyno_ElementalBurst_WarningCameraEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_JackalMode", + "abilityName": "Avatar_Cyno_ElementalBurst_JackalMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_WarningCameraEffectM", + "abilityName": "Avatar_Cyno_ElementalBurst_WarningCameraEffectM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_MuyaHandlerT", + "abilityName": "Avatar_Cyno_ElementalBurst_MuyaHandlerT", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_MuyaHandler", + "abilityName": "Avatar_Cyno_ElementalBurst_MuyaHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Renderer_HandlerR", + "abilityName": "Avatar_Cyno_ElementalBurst_Renderer_HandlerR", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Constellation_6_BulletHandlerR", + "abilityName": "Avatar_Cyno_Constellation_6_BulletHandlerR", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_EndMode", + "abilityName": "Avatar_Cyno_ElementalBurst_EndMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Renderer_Handler", + "abilityName": "Avatar_Cyno_ElementalBurst_Renderer_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Renderer_AttackHandler", + "abilityName": "Avatar_Cyno_ElementalBurst_Renderer_AttackHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_MuyaAddTime", + "abilityName": "Avatar_Cyno_ElementalBurst_MuyaAddTime", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Constellation_6_BulletHandler", + "abilityName": "Avatar_Cyno_Constellation_6_BulletHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_EndHanlder", + "abilityName": "Avatar_Cyno_ElementalBurst_EndHanlder", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Buff_AddDurability", + "abilityName": "Avatar_Cyno_ElementalBurst_Buff_AddDurability", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_FallingAnthem", + "abilityName": "Avatar_Cyno_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_onReconnectHandler", + "abilityName": "Avatar_Cyno_ElementalBurst_onReconnectHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_BigArm_DisAppear", + "abilityName": "Avatar_Cyno_BigArm_DisAppear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ExtraAttack_BurstMode_Damage", + "abilityName": "Avatar_Cyno_ExtraAttack_BurstMode_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_BurstMode_ExtraAttack_Bullet", + "abilityName": "Avatar_Cyno_BurstMode_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack_DamageHandler", + "abilityName": "Avatar_Cyno_Attack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Constellation_6_BulletCdHandler", + "abilityName": "Avatar_Cyno_Constellation_6_BulletCdHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno", + "abilityName": "Avatar_Cyno", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_TeamConfig_01BS", + "abilityName": "Avatar_Cyno_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_TeamConfig_01Loop", + "abilityName": "Avatar_Cyno_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_TeamConfig_01AS", + "abilityName": "Avatar_Cyno_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_BurstMode_ExtraAttack_Bulletr", + "abilityName": "Avatar_Cyno_BurstMode_ExtraAttack_Bulletr", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Spine", + "abilityName": "Avatar_Cyno_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_BS", + "abilityName": "Avatar_Cyno_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_ElementalBurst_Hit", + "abilityName": "Avatar_Cyno_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Spine_Loop_01", + "abilityName": "Avatar_Cyno_Spine_Loop_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Spine", + "abilityName": "Avatar_Cyno_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Spine_Loop_02", + "abilityName": "Avatar_Cyno_Spine_Loop_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_02_Spine", + "abilityName": "Avatar_Cyno_02_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Cyno_Attack_DamageHandler1Cyno_PermanentSkill_2_Ratio_BurstModeNormalAttack", + "abilityName": "Avatar_Cyno_Attack_DamageHandler1Cyno_PermanentSkill_2_Ratio_BurstModeNormalAttack", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Dehya.json b/data/json/avatar/ConfigAvatar_Dehya.json new file mode 100644 index 0000000..2858bc8 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Dehya.json @@ -0,0 +1,489 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Dehya_ExtraAttack", + "abilityName": "Avatar_Dehya_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Insert", + "abilityName": "Avatar_Dehya_ElementalArt_Insert", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Insert_Initialize", + "abilityName": "Avatar_Dehya_ElementalArt_Insert_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_1_B", + "abilityName": "Avatar_Dehya_PermanentSkill_1_B", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_DropBall_Handler", + "abilityName": "Avatar_Dehya_ElementalArt_DropBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_DropBall", + "abilityName": "Avatar_Dehya_ElementalArt_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Recycle", + "abilityName": "Avatar_Dehya_ElementalArt_Recycle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_TriggerRecycle", + "abilityName": "Avatar_Dehya_ElementalArt_TriggerRecycle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_RecycleDamage", + "abilityName": "Avatar_Dehya_ElementalArt_RecycleDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_RecycleDamage_Remover", + "abilityName": "Avatar_Dehya_ElementalArt_RecycleDamage_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_1_A", + "abilityName": "Avatar_Dehya_PermanentSkill_1_A", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_TriggerRecycle_Fx", + "abilityName": "Avatar_Dehya_ElementalArt_TriggerRecycle_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_RecycleDamageV", + "abilityName": "Avatar_Dehya_ElementalArt_RecycleDamageV", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_LoanHandler", + "abilityName": "Avatar_Dehya_ElementalArt_LoanHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_LoanFx", + "abilityName": "Avatar_Dehya_ElementalArt_LoanFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_LoanFx_Handler", + "abilityName": "Avatar_Dehya_ElementalArt_LoanFx_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_LoanFx_Lv1", + "abilityName": "Avatar_Dehya_ElementalArt_LoanFx_Lv1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_LoanFx_Lv2", + "abilityName": "Avatar_Dehya_ElementalArt_LoanFx_Lv2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_LoanFx_Lv1M", + "abilityName": "Avatar_Dehya_ElementalArt_LoanFx_Lv1M", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_Initialize", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_LifeTimer", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_LifeTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_CDInherit", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_CDInherit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_Fx", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_Fx_01", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_Fx_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_Fx_02", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_Fx_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_Fx_LevelHandler", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_Fx_LevelHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_CheckInField", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_CheckInField", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_PermanentSkill_EndureUp", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_PermanentSkill_EndureUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_OnDehya", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_OnDehya", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_OnDehya_SwitchSkill", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_OnDehya_SwitchSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_AttackHandler", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_AttackHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_OnMonster", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_OnMonster", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_AttackByGrave", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_AttackByGrave", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_CheckInFieldM", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_CheckInFieldM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_Bullet_Trail", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_Bullet_Trail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Grave_Bullet_Timer", + "abilityName": "Avatar_Dehya_ElementalArt_Grave_Bullet_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Recycleh", + "abilityName": "Avatar_Dehya_ElementalArt_Recycleh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst", + "abilityName": "Avatar_Dehya_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Initialize", + "abilityName": "Avatar_Dehya_ElementalBurst_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Starter", + "abilityName": "Avatar_Dehya_ElementalBurst_Starter", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Timer", + "abilityName": "Avatar_Dehya_ElementalBurst_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Fx", + "abilityName": "Avatar_Dehya_ElementalBurst_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Dehya_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Dehya_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Camera_PushTarget", + "abilityName": "Avatar_Dehya_ElementalBurst_Camera_PushTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Invincible", + "abilityName": "Avatar_Dehya_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_WeatherChange", + "abilityName": "Avatar_Dehya_ElementalBurst_WeatherChange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_SwitchSkill", + "abilityName": "Avatar_Dehya_BladeStorm_SwitchSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_BladeStorm", + "abilityName": "Avatar_Dehya_ElementalBurst_BladeStorm", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_BladeStorm_Remover", + "abilityName": "Avatar_Dehya_ElementalBurst_BladeStorm_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Camera_DungeonEffect", + "abilityName": "Avatar_Dehya_ElementalBurst_Camera_DungeonEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_1_AR", + "abilityName": "Avatar_Dehya_PermanentSkill_1_AR", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_SprintCancle", + "abilityName": "Avatar_Dehya_ElementalBurst_SprintCancle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_StandbyCancle", + "abilityName": "Avatar_Dehya_ElementalBurst_StandbyCancle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Controller", + "abilityName": "Avatar_Dehya_ElementalBurst_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_ClearTrigger", + "abilityName": "Avatar_Dehya_BladeStorm_ClearTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_QTE_Success", + "abilityName": "Avatar_Dehya_BladeStorm_QTE_Success", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_Strike_A", + "abilityName": "Avatar_Dehya_BladeStorm_Strike_A", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_Strike_B", + "abilityName": "Avatar_Dehya_BladeStorm_Strike_B", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_BladeStorm_TurnDir", + "abilityName": "Avatar_Dehya_ElementalBurst_BladeStorm_TurnDir", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_BladeStorm_TurnDir_Last", + "abilityName": "Avatar_Dehya_ElementalBurst_BladeStorm_TurnDir_Last", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_Fx_Remover", + "abilityName": "Avatar_Dehya_BladeStorm_Fx_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_Speed_Handler", + "abilityName": "Avatar_Dehya_BladeStorm_Speed_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_BladeStorm_SpeedUp", + "abilityName": "Avatar_Dehya_BladeStorm_SpeedUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_1_Buff", + "abilityName": "Avatar_Dehya_PermanentSkill_1_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_A_Timer", + "abilityName": "Avatar_Dehya_PermanentSkill_A_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_B_Timer", + "abilityName": "Avatar_Dehya_PermanentSkill_B_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_B_Buff", + "abilityName": "Avatar_Dehya_PermanentSkill_B_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_2", + "abilityName": "Avatar_Dehya_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_2_Handler", + "abilityName": "Avatar_Dehya_PermanentSkill_2_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_2_HotBuff", + "abilityName": "Avatar_Dehya_PermanentSkill_2_HotBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_PermanentSkill_2_CDTimer", + "abilityName": "Avatar_Dehya_PermanentSkill_2_CDTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Constellation_6", + "abilityName": "Avatar_Dehya_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Constellation_6_CritUp", + "abilityName": "Avatar_Dehya_Constellation_6_CritUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Constellation_6_CritHurtUp", + "abilityName": "Avatar_Dehya_Constellation_6_CritHurtUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Constellation_6_Handler", + "abilityName": "Avatar_Dehya_Constellation_6_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Constellation_6_Initialize", + "abilityName": "Avatar_Dehya_Constellation_6_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Constellation_6_Remover", + "abilityName": "Avatar_Dehya_Constellation_6_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Constellation_6_Crit_CountUp", + "abilityName": "Avatar_Dehya_Constellation_6_Crit_CountUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Attack_DamageHandler", + "abilityName": "Avatar_Dehya_Attack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_FallingAnthem", + "abilityName": "Avatar_Dehya_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya", + "abilityName": "Avatar_Dehya", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Insert_AS", + "abilityName": "Avatar_Dehya_ElementalArt_Insert_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalArt_Recycle_AS", + "abilityName": "Avatar_Dehya_ElementalArt_Recycle_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Loop_A", + "abilityName": "Avatar_Dehya_ElementalBurst_Loop_A", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Loop_B", + "abilityName": "Avatar_Dehya_ElementalBurst_Loop_B", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_End", + "abilityName": "Avatar_Dehya_ElementalBurst_End", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_AS", + "abilityName": "Avatar_Dehya_ElementalBurst_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_TeamConfig_01BS", + "abilityName": "Avatar_Dehya_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_TeamConfig_01Loop", + "abilityName": "Avatar_Dehya_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_TeamConfig_01AS", + "abilityName": "Avatar_Dehya_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Dehya_SumeruHairpin", + "abilityName": "AvatarItem_Dehya_SumeruHairpin", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Spine", + "abilityName": "Avatar_Dehya_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_BS", + "abilityName": "Avatar_Dehya_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Hit", + "abilityName": "Avatar_Dehya_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_ElementalBurst_Hit_02", + "abilityName": "Avatar_Dehya_ElementalBurst_Hit_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dehya_Spine_Loop", + "abilityName": "Avatar_Dehya_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Diluc.json b/data/json/avatar/ConfigAvatar_Diluc.json new file mode 100644 index 0000000..ef37b64 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Diluc.json @@ -0,0 +1,174 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Diluc_ExtraAttack", + "abilityName": "Avatar_Diluc_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Fire_Blade", + "abilityName": "Avatar_Diluc_Fire_Blade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Fire_BladeSet1", + "abilityName": "Avatar_Diluc_Fire_BladeSet1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_AfterFireBlade", + "abilityName": "Avatar_Diluc_AfterFireBlade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Fire_BladeSet2", + "abilityName": "Avatar_Diluc_Fire_BladeSet2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Fire_BladeSet3", + "abilityName": "Avatar_Diluc_Fire_BladeSet3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Fire_Enhancement", + "abilityName": "Avatar_Diluc_Fire_Enhancement", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_FireCrossCamera", + "abilityName": "Avatar_Diluc_FireCrossCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_FireCross_Push1", + "abilityName": "Avatar_Diluc_FireCross_Push1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_FireCross_Strike", + "abilityName": "Avatar_Diluc_FireCross_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_FireCross", + "abilityName": "Avatar_Diluc_FireCross", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_FireCross_Explode", + "abilityName": "Avatar_Diluc_FireCross_Explode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_NormalAttackDamage", + "abilityName": "Avatar_Diluc_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_ElementArt", + "abilityName": "Avatar_Diluc_ElementArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_GiantKiller", + "abilityName": "Avatar_Diluc_GiantKiller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_FireHowl", + "abilityName": "Avatar_Diluc_FireHowl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_AfterFireBladeCountDown", + "abilityName": "Avatar_Diluc_AfterFireBladeCountDown", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_NextFireBlade1", + "abilityName": "Avatar_Diluc_NextFireBlade1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_NextFireBlade2", + "abilityName": "Avatar_Diluc_NextFireBlade2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_FallingAnthem", + "abilityName": "Avatar_Diluc_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc", + "abilityName": "Avatar_Diluc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_TeamConfig_01BS", + "abilityName": "Avatar_Diluc_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_TeamConfig_01Loop", + "abilityName": "Avatar_Diluc_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_TeamConfig_01AS", + "abilityName": "Avatar_Diluc_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Diluc_Mask", + "abilityName": "AvatarItem_Diluc_Mask", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Fire_Enchantment", + "abilityName": "Avatar_Diluc_Fire_Enchantment", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_ElementalBurst_Spine", + "abilityName": "Avatar_Diluc_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_ElementalBurst_Spine_MotionBlur", + "abilityName": "Avatar_Diluc_ElementalBurst_Spine_MotionBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Spine", + "abilityName": "Avatar_Diluc_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_ElementalBurst", + "abilityName": "Avatar_Diluc_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_ElementBurst", + "abilityName": "Avatar_Diluc_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_ElementalBurst_Hit", + "abilityName": "Avatar_Diluc_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Spine_Loop", + "abilityName": "Avatar_Diluc_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diluc_Spine_BG", + "abilityName": "Avatar_Diluc_Spine_BG", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Diona.json b/data/json/avatar/ConfigAvatar_Diona.json new file mode 100644 index 0000000..0b16ef0 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Diona.json @@ -0,0 +1,224 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Diona_Arrow_FX", + "abilityName": "Avatar_Diona_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootAimingArrow_Charge", + "abilityName": "Avatar_Diona_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_PressShoot", + "abilityName": "Avatar_Diona_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_Aiming", + "abilityName": "Avatar_Diona_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_ResetGlobalValue", + "abilityName": "Avatar_Diona_ShootArrow_ResetGlobalValue", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_AimPressShoot", + "abilityName": "Avatar_Diona_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_Enchanted_WithoutIce", + "abilityName": "Avatar_Diona_ShootArrow_Enchanted_WithoutIce", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_01", + "abilityName": "Avatar_Diona_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_02", + "abilityName": "Avatar_Diona_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_03", + "abilityName": "Avatar_Diona_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_04", + "abilityName": "Avatar_Diona_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_05", + "abilityName": "Avatar_Diona_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_NekoShoot_Press", + "abilityName": "Avatar_Diona_NekoShoot_Press", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_NekoShoot_Holdup", + "abilityName": "Avatar_Diona_NekoShoot_Holdup", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalArt_Shield", + "abilityName": "Avatar_Diona_ElementalArt_Shield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalArt_Bullet_Trail_01", + "abilityName": "Avatar_Diona_ElementalArt_Bullet_Trail_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalArt_Bullet_Trail_02", + "abilityName": "Avatar_Diona_ElementalArt_Bullet_Trail_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Elemental_Burst_Attack", + "abilityName": "Avatar_Diona_Elemental_Burst_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Elemental_Art_Flask", + "abilityName": "Avatar_Diona_Elemental_Art_Flask", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Elemental_Burst_Creata_IceWine_Fog", + "abilityName": "Avatar_Diona_Elemental_Burst_Creata_IceWine_Fog", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_IceWine_Fog", + "abilityName": "Avatar_Diona_IceWine_Fog", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ShootArrow_Damage", + "abilityName": "Avatar_Diona_ShootArrow_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_FallingAnthem", + "abilityName": "Avatar_Diona_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona", + "abilityName": "Avatar_Diona", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalArt_Short", + "abilityName": "Avatar_Diona_Skill_ElementalArt_Short", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalArt_Short_AS", + "abilityName": "Avatar_Diona_Skill_ElementalArt_Short_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalArt_Short_BS", + "abilityName": "Avatar_Diona_Skill_ElementalArt_Short_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalArt_Throw", + "abilityName": "Avatar_Diona_Skill_ElementalArt_Throw", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalArt_Throw_AS", + "abilityName": "Avatar_Diona_Skill_ElementalArt_Throw_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalArt_Throw_BS", + "abilityName": "Avatar_Diona_Skill_ElementalArt_Throw_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalBurst", + "abilityName": "Avatar_Diona_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Skill_ElementalBurst_AS", + "abilityName": "Avatar_Diona_Skill_ElementalBurst_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_TeamConfig_01BS", + "abilityName": "Avatar_Diona_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_TeamConfig_01Loop", + "abilityName": "Avatar_Diona_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_TeamConfig_01AS", + "abilityName": "Avatar_Diona_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalBurst_Spine_Trail", + "abilityName": "Avatar_Diona_ElementalBurst_Spine_Trail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalBurst_Spine", + "abilityName": "Avatar_Diona_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Spine", + "abilityName": "Avatar_Diona_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalBurst_BS", + "abilityName": "Avatar_Diona_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalBurst", + "abilityName": "Avatar_Diona_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementBurst", + "abilityName": "Avatar_Diona_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalBurst_Hit", + "abilityName": "Avatar_Diona_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_ElementalBurst_BS_Normal", + "abilityName": "Avatar_Diona_ElementalBurst_BS_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Diona_Spine_Loop", + "abilityName": "Avatar_Diona_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Dori.json b/data/json/avatar/ConfigAvatar_Dori.json new file mode 100644 index 0000000..1708c25 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Dori.json @@ -0,0 +1,119 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Dori_ExtraAttack", + "abilityName": "Avatar_Dori_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_NormalAttack_Sprite_Controller", + "abilityName": "Avatar_Dori_NormalAttack_Sprite_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ExtraAttack_Sprite_Remover", + "abilityName": "Avatar_Dori_ExtraAttack_Sprite_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalArt_Sprite_Remover", + "abilityName": "Avatar_Dori_ElementalArt_Sprite_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalArt_Sprite", + "abilityName": "Avatar_Dori_ElementalArt_Sprite", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalArt", + "abilityName": "Avatar_Dori_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalBurst", + "abilityName": "Avatar_Dori_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ChargingStation_Bullet_Bullet", + "abilityName": "Avatar_Dori_ChargingStation_Bullet_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalBurst_CreateGadgeth", + "abilityName": "Avatar_Dori_ElementalBurst_CreateGadgeth", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalBurst_CreateGadget", + "abilityName": "Avatar_Dori_ElementalBurst_CreateGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ChargingStation", + "abilityName": "Avatar_Dori_ChargingStation", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_NormalAttack_DamageHandler", + "abilityName": "Avatar_Dori_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_FallingAnthem", + "abilityName": "Avatar_Dori_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_Constellation_6", + "abilityName": "Avatar_Dori_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori", + "abilityName": "Avatar_Dori", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_TeamConfig_01BS", + "abilityName": "Avatar_Dori_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_TeamConfig_01Loop", + "abilityName": "Avatar_Dori_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_TeamConfig_01AS", + "abilityName": "Avatar_Dori_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalBurst_Spine", + "abilityName": "Avatar_Dori_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalBurst_BS", + "abilityName": "Avatar_Dori_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementBurst", + "abilityName": "Avatar_Dori_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_ElementalBurst_Hit", + "abilityName": "Avatar_Dori_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Dori_Spine_Loop", + "abilityName": "Avatar_Dori_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Emilie.json b/data/json/avatar/ConfigAvatar_Emilie.json new file mode 100644 index 0000000..9a6d5f0 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Emilie.json @@ -0,0 +1,49 @@ +{ + "abilities": [ + { + "abilityID": "", + "abilityName": "Avatar_Emilie_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_ArkheGrade", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_HideWeapon", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Emilie_FallingAnthem", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Eula.json b/data/json/avatar/ConfigAvatar_Eula.json new file mode 100644 index 0000000..1cbd3e9 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Eula.json @@ -0,0 +1,174 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Eula_ExtraAttack", + "abilityName": "Avatar_Eula_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_ExtraAttack_1", + "abilityName": "Avatar_Eula_ElementalArt_ExtraAttack_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_ExtraAttack_2", + "abilityName": "Avatar_Eula_ElementalArt_ExtraAttack_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt", + "abilityName": "Avatar_Eula_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_SetMark", + "abilityName": "Avatar_Eula_ElementalArt_SetMark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_Click", + "abilityName": "Avatar_Eula_ElementalArt_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_Burst", + "abilityName": "Avatar_Eula_ElementalArt_Burst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst", + "abilityName": "Avatar_Eula_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst_PostEffect", + "abilityName": "Avatar_Eula_ElementalBurst_PostEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Eula_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst_Attack", + "abilityName": "Avatar_Eula_ElementalBurst_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst_Judgment", + "abilityName": "Avatar_Eula_ElementalBurst_Judgment", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_NormalAttackDamage_Handler", + "abilityName": "Avatar_Eula_NormalAttackDamage_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_FallingAnthem", + "abilityName": "Avatar_Eula_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Plot1", + "abilityName": "Avatar_Eula_Plot1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Plot_NoHarm", + "abilityName": "Avatar_Eula_Plot_NoHarm", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Plot_Fail", + "abilityName": "Avatar_Eula_Plot_Fail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Plot2", + "abilityName": "Avatar_Eula_Plot2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Plot_Throw", + "abilityName": "Avatar_Eula_Plot_Throw", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Plot3", + "abilityName": "Avatar_Eula_Plot3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Plot_Nofrozen", + "abilityName": "Avatar_Eula_Plot_Nofrozen", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula", + "abilityName": "Avatar_Eula", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_plot", + "abilityName": "Avatar_Eula_plot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_BS", + "abilityName": "Avatar_Eula_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_Click_AS", + "abilityName": "Avatar_Eula_ElementalArt_Click_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_Charge", + "abilityName": "Avatar_Eula_ElementalArt_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_TeamConfig_01BS", + "abilityName": "Avatar_Eula_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_TeamConfig_01Loop", + "abilityName": "Avatar_Eula_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_TeamConfig_01AS", + "abilityName": "Avatar_Eula_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalArt_Charge_AS", + "abilityName": "Avatar_Eula_ElementalArt_Charge_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst_Spine", + "abilityName": "Avatar_Eula_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst_BS", + "abilityName": "Avatar_Eula_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_ElementalBurst_Hit", + "abilityName": "Avatar_Eula_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Eula_Spine_Loop", + "abilityName": "Avatar_Eula_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Faruzan.json b/data/json/avatar/ConfigAvatar_Faruzan.json new file mode 100644 index 0000000..5d9128c --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Faruzan.json @@ -0,0 +1,264 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Faruzan_PressShoot", + "abilityName": "Avatar_Faruzan_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_AimPressShoot", + "abilityName": "Avatar_Faruzan_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootAimingArrow_Charge", + "abilityName": "Avatar_Faruzan_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_ResetGlobalValue", + "abilityName": "Avatar_Faruzan_ShootArrow_ResetGlobalValue", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Arrow_FX", + "abilityName": "Avatar_Faruzan_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_Aiming", + "abilityName": "Avatar_Faruzan_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_01", + "abilityName": "Avatar_Faruzan_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_02", + "abilityName": "Avatar_Faruzan_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_03", + "abilityName": "Avatar_Faruzan_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_04", + "abilityName": "Avatar_Faruzan_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_05", + "abilityName": "Avatar_Faruzan_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_06", + "abilityName": "Avatar_Faruzan_ShootArrow_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_Enchanted_Wind", + "abilityName": "Avatar_Faruzan_ShootArrow_Enchanted_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ShootArrow_Enchanted_WithoutWind", + "abilityName": "Avatar_Faruzan_ShootArrow_Enchanted_WithoutWind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_FallingAnthem", + "abilityName": "Avatar_Faruzan_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Elemental_Art", + "abilityName": "Avatar_Faruzan_Elemental_Art", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Wind_Arashi", + "abilityName": "Avatar_Faruzan_Wind_Arashi", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Wind_Arashi_Bullet", + "abilityName": "Avatar_Faruzan_Wind_Arashi_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Bullet_Landed_WindBlackHole", + "abilityName": "Avatar_Faruzan_Bullet_Landed_WindBlackHole", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_WindZone_Avatar", + "abilityName": "Avatar_Faruzan_WindZone_Avatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_WindZone_Monster", + "abilityName": "Avatar_Faruzan_WindZone_Monster", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_WindZone_Monster_Constellation6", + "abilityName": "Avatar_Faruzan_WindZone_Monster_Constellation6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_WindBlackHole_Gadget", + "abilityName": "Avatar_Faruzan_WindBlackHole_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Elemental_Burst_BS", + "abilityName": "Avatar_Faruzan_Elemental_Burst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_GadgetLifeController", + "abilityName": "Avatar_Faruzan_ElementalBurst_GadgetLifeController", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Elemental_Burst", + "abilityName": "Avatar_Faruzan_Elemental_Burst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_PermanentSkill2_WindDamageExtraUp", + "abilityName": "Avatar_Faruzan_PermanentSkill2_WindDamageExtraUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_ApplyRange", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_ApplyRange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_EffOnAdd_Handler9UNIQUE_Avatar_Faruzan_ElementalBurst_GadgetLifeController", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_EffOnAdd_Handler9UNIQUE_Avatar_Faruzan_ElementalBurst_GadgetLifeController", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_LoopEff", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_LoopEff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_Handler", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindCriticalHurtUp", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindCriticalHurtUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_AutoHurricaneArrow", + "abilityName": "Avatar_Faruzan_ElementalBurst_AutoHurricaneArrow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_CD9UNIQUE_Avatar_Faruzan_ElementalBurst_WindDamageValueUp_CD", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_CD9UNIQUE_Avatar_Faruzan_ElementalBurst_WindDamageValueUp_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_AutoHurricaneArrow_CD", + "abilityName": "Avatar_Faruzan_ElementalBurst_AutoHurricaneArrow_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_EffOnAdd_Handler", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_EffOnAdd_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_EffOnAdd", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindAddHurtUp_EffOnAdd", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Constellation4_ReviveEnergy", + "abilityName": "Avatar_Faruzan_Constellation4_ReviveEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Constellation6_AutoHurricaneArrow_BulletTrigger", + "abilityName": "Avatar_Faruzan_Constellation6_AutoHurricaneArrow_BulletTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan", + "abilityName": "Avatar_Faruzan", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Skill_ElementalArt", + "abilityName": "Avatar_Faruzan_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Skill_ElementalArt_AS", + "abilityName": "Avatar_Faruzan_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Skill_ElementalBurst", + "abilityName": "Avatar_Faruzan_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_TeamConfig_01BS", + "abilityName": "Avatar_Faruzan_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_TeamConfig_01Loop", + "abilityName": "Avatar_Faruzan_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_TeamConfig_01AS", + "abilityName": "Avatar_Faruzan_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_PermanentSkill2_WindDamageExtraUp0Avatar_Faruzan_PermanentSkill2_WindDamageExtraUp", + "abilityName": "Avatar_Faruzan_PermanentSkill2_WindDamageExtraUp0Avatar_Faruzan_PermanentSkill2_WindDamageExtraUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_Skill_ElementalBurst_AS", + "abilityName": "Avatar_Faruzan_Skill_ElementalBurst_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_Remove", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_CD", + "abilityName": "Avatar_Faruzan_ElementalBurst_WindDamageValueUp_CD", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Feiyan.json b/data/json/avatar/ConfigAvatar_Feiyan.json new file mode 100644 index 0000000..cd31d17 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Feiyan.json @@ -0,0 +1,154 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Feiyan_Attack01", + "abilityName": "Avatar_Feiyan_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_Attack02", + "abilityName": "Avatar_Feiyan_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_Attack03", + "abilityName": "Avatar_Feiyan_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_FeiyanGadgetSkill_NormalAttackDamage01", + "abilityName": "Avatar_FeiyanGadgetSkill_NormalAttackDamage01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_FeiyanGadgetSkill_NormalAttackDamage02", + "abilityName": "Avatar_FeiyanGadgetSkill_NormalAttackDamage02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_FeiyanGadgetSkill_NormalAttackDamage03", + "abilityName": "Avatar_FeiyanGadgetSkill_NormalAttackDamage03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_FeiyanGadgetSkill_Effect_Normal", + "abilityName": "Avatar_FeiyanGadgetSkill_Effect_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_FeiyanGadgetSkill_Effect_Last", + "abilityName": "Avatar_FeiyanGadgetSkill_Effect_Last", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ExtraAttack", + "abilityName": "Avatar_Feiyan_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ExtraAttack_Charge", + "abilityName": "Avatar_Feiyan_ExtraAttack_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ExtraAttack_DoAttack", + "abilityName": "Avatar_Feiyan_ExtraAttack_DoAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_FeiyanGadgetSkill_ExtraAttack_Damage", + "abilityName": "Avatar_FeiyanGadgetSkill_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ExtraAttack_Weight_Clear", + "abilityName": "Avatar_Feiyan_ExtraAttack_Weight_Clear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ExtraAttack_Weight_Handler", + "abilityName": "Avatar_Feiyan_ExtraAttack_Weight_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ExtraAttack_Weight_Timer", + "abilityName": "Avatar_Feiyan_ExtraAttack_Weight_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_FeiyanGadgetSkill_Weight_Count", + "abilityName": "Avatar_FeiyanGadgetSkill_Weight_Count", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ElementalArt_BS", + "abilityName": "Avatar_Feiyan_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ElementalArt", + "abilityName": "Avatar_Feiyan_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ElementalBurst_BS", + "abilityName": "Avatar_Feiyan_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ElementalBurst", + "abilityName": "Avatar_Feiyan_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_FallingAnthem", + "abilityName": "Avatar_Feiyan_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_Attack04", + "abilityName": "Avatar_Feiyan_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_Radar_Collectables_Liyue", + "abilityName": "Avatar_Feiyan_Radar_Collectables_Liyue", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan", + "abilityName": "Avatar_Feiyan", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_TeamConfig_01BS", + "abilityName": "Avatar_Feiyan_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_TeamConfig_01Loop", + "abilityName": "Avatar_Feiyan_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_TeamConfig_01AS", + "abilityName": "Avatar_Feiyan_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ElementalBurst_Spine", + "abilityName": "Avatar_Feiyan_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_ElementalBurst_Hit", + "abilityName": "Avatar_Feiyan_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Feiyan_Spine_Loop", + "abilityName": "Avatar_Feiyan_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Fischl.json b/data/json/avatar/ConfigAvatar_Fischl.json new file mode 100644 index 0000000..d506bad --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Fischl.json @@ -0,0 +1,259 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Fischl_PressShoot", + "abilityName": "Avatar_Fischl_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_AimPressShoot", + "abilityName": "Avatar_Fischl_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootAimingArrow_FX", + "abilityName": "Avatar_Fischl_ShootAimingArrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootAimingArrow_Charge", + "abilityName": "Avatar_Fischl_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootArrow_Aiming", + "abilityName": "Avatar_Fischl_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_Element_Hit", + "abilityName": "Avatar_Fischl_ExtraAttack_Element_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_21_ExteaAttackThunder", + "abilityName": "Avatar_Fischl_ProudSkill_21_ExteaAttackThunder", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_Element_FindCrow", + "abilityName": "Avatar_Fischl_ExtraAttack_Element_FindCrow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_Element_BulletFx", + "abilityName": "Avatar_Fischl_ExtraAttack_Element_BulletFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_WithoutElement_Hit", + "abilityName": "Avatar_Fischl_ExtraAttack_WithoutElement_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx", + "abilityName": "Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootArrow_01", + "abilityName": "Avatar_Fischl_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootArrow_02", + "abilityName": "Avatar_Fischl_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootArrow_03", + "abilityName": "Avatar_Fischl_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootArrow_04", + "abilityName": "Avatar_Fischl_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ShootArrow_05", + "abilityName": "Avatar_Fischl_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_NormalAttack_Smoke", + "abilityName": "Avatar_Fischl_NormalAttack_Smoke", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_CrowSummon_Init", + "abilityName": "Avatar_Fischl_CrowSummon_Init", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_CrowSummon_InitJ", + "abilityName": "Avatar_Fischl_CrowSummon_InitJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_Crow_BeAttackedTrigger_Init", + "abilityName": "Avatar_Fischl_Crow_BeAttackedTrigger_Init", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElectricalCrow_Crow_Attack", + "abilityName": "Avatar_Fischl_ElectricalCrow_Crow_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_22", + "abilityName": "Avatar_Fischl_ProudSkill_22", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_ExteaAttackThunderh", + "abilityName": "Avatar_Fischl_ProudSkill_ExteaAttackThunderh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_ExteaAttackThunder", + "abilityName": "Avatar_Fischl_ProudSkill_ExteaAttackThunder", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_Skill_S_Crow_Handle", + "abilityName": "Avatar_Fischl_Skill_S_Crow_Handle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_ElementReactionAttackThunder", + "abilityName": "Avatar_Fischl_ProudSkill_ElementReactionAttackThunder", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_ElementReaction", + "abilityName": "Avatar_Fischl_ProudSkill_ElementReaction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_21_ExteaAttackThunder7", + "abilityName": "Avatar_Fischl_ProudSkill_21_ExteaAttackThunder7", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_Skill_S_Crow_AutoAttack_Hit_01", + "abilityName": "Avatar_Fischl_Skill_S_Crow_AutoAttack_Hit_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_Skill_E_CrowQueen_ScreenEffect333", + "abilityName": "Avatar_Fischl_Skill_E_CrowQueen_ScreenEffect333", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_FallingAnthem", + "abilityName": "Avatar_Fischl_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl", + "abilityName": "Avatar_Fischl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_WithoutElement_Hit1Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx", + "abilityName": "Avatar_Fischl_ExtraAttack_WithoutElement_Hit1Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_TeamConfig_01BS", + "abilityName": "Avatar_Fischl_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_TeamConfig_01Loop", + "abilityName": "Avatar_Fischl_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_TeamConfig_01AS", + "abilityName": "Avatar_Fischl_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx1Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx", + "abilityName": "Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx1Avatar_Fischl_ExtraAttack_WithoutElement_BulletFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_ElementReactionAttackThunder5Avatar_Fischl_ProudSkill_ElementReactionAttackThunder", + "abilityName": "Avatar_Fischl_ProudSkill_ElementReactionAttackThunder5Avatar_Fischl_ProudSkill_ElementReactionAttackThunder", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElementalBurst_Spine", + "abilityName": "Avatar_Fischl_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElementalBurst", + "abilityName": "Avatar_Fischl_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElementBurst", + "abilityName": "Avatar_Fischl_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElementalBurst_BS", + "abilityName": "Avatar_Fischl_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElementalBurst_Hit", + "abilityName": "Avatar_Fischl_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElementalBurst_Buff_Hit", + "abilityName": "Avatar_Fischl_ElementalBurst_Buff_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_elementalBurst_BS_Normal", + "abilityName": "Avatar_Fischl_elementalBurst_BS_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ElementalBurst_Buff", + "abilityName": "Avatar_Fischl_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_Spine_Loop", + "abilityName": "Avatar_Fischl_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_Skill_E_CrowQueen_ScreenEffect", + "abilityName": "Avatar_Fischl_Skill_E_CrowQueen_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ProudSkill_ElementReactionAttackThunder9AS_Fischl_ProudSkill_22_ElementReactionAttack_AttackRatio", + "abilityName": "Avatar_Fischl_ProudSkill_ElementReactionAttackThunder9AS_Fischl_ProudSkill_22_ElementReactionAttack_AttackRatio", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_WithoutElement_HitDFischl_ProudSkill_31_P6_ExtraAttack_WithoutElement_Damage_Percentage", + "abilityName": "Avatar_Fischl_ExtraAttack_WithoutElement_HitDFischl_ProudSkill_31_P6_ExtraAttack_WithoutElement_Damage_Percentage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Fischl_ExtraAttack_Element_Hit6Fischl_ProudSkill_31_P7_ChargeElementDamage_Percentage", + "abilityName": "Avatar_Fischl_ExtraAttack_Element_Hit6Fischl_ProudSkill_31_P7_ChargeElementDamage_Percentage", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Freminet.json b/data/json/avatar/ConfigAvatar_Freminet.json new file mode 100644 index 0000000..614fef9 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Freminet.json @@ -0,0 +1,154 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Freminet_ExtraAttack", + "abilityName": "Avatar_Freminet_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_DropBall", + "abilityName": "Avatar_Freminet_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack04_Hide", + "abilityName": "Avatar_Freminet_Attack04_Hide", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack04_HideEff", + "abilityName": "Avatar_Freminet_Attack04_HideEff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ElementalArt", + "abilityName": "Avatar_Freminet_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_SkillBuff", + "abilityName": "Avatar_Freminet_SkillBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack01_Ice", + "abilityName": "Avatar_Freminet_Attack01_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack02_IceB", + "abilityName": "Avatar_Freminet_Attack02_IceB", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack03_IceJ", + "abilityName": "Avatar_Freminet_Attack03_IceJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack04_Ice", + "abilityName": "Avatar_Freminet_Attack04_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_SkillBuff_EffEnd", + "abilityName": "Avatar_Freminet_SkillBuff_EffEnd", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack02_Ice", + "abilityName": "Avatar_Freminet_Attack02_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Attack03_Ice", + "abilityName": "Avatar_Freminet_Attack03_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ElementalArt_Strike", + "abilityName": "Avatar_Freminet_ElementalArt_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ArkheGrade", + "abilityName": "Avatar_Freminet_ArkheGrade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ArkheGrade_CD", + "abilityName": "Avatar_Freminet_ArkheGrade_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ElementalArt_2", + "abilityName": "Avatar_Freminet_ElementalArt_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ElementalArt_3", + "abilityName": "Avatar_Freminet_ElementalArt_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ElementalBurst_Strike", + "abilityName": "Avatar_Freminet_ElementalBurst_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_ElementalBurst", + "abilityName": "Avatar_Freminet_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Utral_Buff", + "abilityName": "Avatar_Freminet_Utral_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_FallingAnthem", + "abilityName": "Avatar_Freminet_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_DamageHandler", + "abilityName": "Avatar_Freminet_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_PermanentSkill_2", + "abilityName": "Avatar_Freminet_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_Constellation_6", + "abilityName": "Avatar_Freminet_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_DivingStamina_Reduction", + "abilityName": "Avatar_Freminet_DivingStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet", + "abilityName": "Avatar_Freminet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_TeamConfig_01BS", + "abilityName": "Avatar_Freminet_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_TeamConfig_01Loop", + "abilityName": "Avatar_Freminet_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Freminet_TeamConfig_01AS", + "abilityName": "Avatar_Freminet_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Furina.json b/data/json/avatar/ConfigAvatar_Furina.json new file mode 100644 index 0000000..b26f15b --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Furina.json @@ -0,0 +1,144 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Furina_ExtraAttack", + "abilityName": "Avatar_Furina_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_Attack04_CreateBullet", + "abilityName": "Avatar_Furina_Attack04_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_Attack04_WaterEnhanced_CreateBullet", + "abilityName": "Avatar_Furina_Attack04_WaterEnhanced_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ArkheGrade_Handler", + "abilityName": "Avatar_Furina_ArkheGrade_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_DamageHandler", + "abilityName": "Avatar_Furina_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalArt", + "abilityName": "Avatar_Furina_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst", + "abilityName": "Avatar_Furina_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_Invincible", + "abilityName": "Avatar_Furina_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_BuffStart", + "abilityName": "Avatar_Furina_ElementalBurst_BuffStart", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_Camera", + "abilityName": "Avatar_Furina_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Furina_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_FogM", + "abilityName": "Avatar_Furina_ElementalBurst_FogM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_FairyStage_ShadeM", + "abilityName": "Avatar_Furina_ElementalBurst_FairyStage_ShadeM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_FairyStageM", + "abilityName": "Avatar_Furina_ElementalBurst_FairyStageM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_FairyStage_3rdView", + "abilityName": "Avatar_Furina_ElementalBurst_FairyStage_3rdView", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_FairyStage", + "abilityName": "Avatar_Furina_ElementalBurst_FairyStage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_FairyStage_Shade", + "abilityName": "Avatar_Furina_ElementalBurst_FairyStage_Shade", + "abilityOverride": "" + }, + { + "abilityID": "AvatarChangeHP_MinCount3_ABILITY_Furina_ElementalBurst_AvatarChangeHP_Count", + "abilityName": "AvatarChangeHP_MinCount3_ABILITY_Furina_ElementalBurst_AvatarChangeHP_Count", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_ElementalBurst_Fog", + "abilityName": "Avatar_Furina_ElementalBurst_Fog", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_PermanentSkill_1", + "abilityName": "Avatar_Furina_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_PermanentSkill_2", + "abilityName": "Avatar_Furina_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_FallingAnthem", + "abilityName": "Avatar_Furina_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_MoveOnWater_FootRipple_Left", + "abilityName": "Avatar_Furina_MoveOnWater_FootRipple_Left", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_MoveOnWater_FootRipple_Right", + "abilityName": "Avatar_Furina_MoveOnWater_FootRipple_Right", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_PermanentSkill_3", + "abilityName": "Avatar_Furina_PermanentSkill_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina", + "abilityName": "Avatar_Furina", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_Attack04_CreateBullet1Avatar_Furina_Attack04_WaterEnhanced_CreateBullet", + "abilityName": "Avatar_Furina_Attack04_CreateBullet1Avatar_Furina_Attack04_WaterEnhanced_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Furina_Attack04_WaterEnhanced_CreateBullet1Avatar_Furina_Attack04_WaterEnhanced_CreateBullet", + "abilityName": "Avatar_Furina_Attack04_WaterEnhanced_CreateBullet1Avatar_Furina_Attack04_WaterEnhanced_CreateBullet", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Gaming.json b/data/json/avatar/ConfigAvatar_Gaming.json new file mode 100644 index 0000000..b04a442 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Gaming.json @@ -0,0 +1,109 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Gaming_ExtraAttack", + "abilityName": "Avatar_Gaming_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_LionHead", + "abilityName": "Avatar_Gaming_LionHead", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_LionPet", + "abilityName": "Avatar_Gaming_LionPet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_OutFit", + "abilityName": "Avatar_Gaming_OutFit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalArt", + "abilityName": "Avatar_Gaming_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalArt_Jump", + "abilityName": "Avatar_Gaming_ElementalArt_Jump", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_Cast", + "abilityName": "Avatar_Gaming_ElementalBurst_Cast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_HasTarget", + "abilityName": "Avatar_Gaming_ElementalBurst_HasTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_NoTarget", + "abilityName": "Avatar_Gaming_ElementalBurst_NoTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_Handler", + "abilityName": "Avatar_Gaming_ElementalBurst_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_HandlerD", + "abilityName": "Avatar_Gaming_ElementalBurst_HandlerD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_Bullet_01", + "abilityName": "Avatar_Gaming_ElementalBurst_Bullet_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalArti", + "abilityName": "Avatar_Gaming_ElementalArti", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_Bullet_02", + "abilityName": "Avatar_Gaming_ElementalBurst_Bullet_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalArtM", + "abilityName": "Avatar_Gaming_ElementalArtM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_ElementalBurst_Bullet_03", + "abilityName": "Avatar_Gaming_ElementalBurst_Bullet_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_PermanentSkill_2", + "abilityName": "Avatar_Gaming_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_PermanentSkill_3", + "abilityName": "Avatar_Gaming_PermanentSkill_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_NormalAttack_Damage_Handler", + "abilityName": "Avatar_Gaming_NormalAttack_Damage_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming_FallingAnthem", + "abilityName": "Avatar_Gaming_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gaming", + "abilityName": "Avatar_Gaming", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Ganyu.json b/data/json/avatar/ConfigAvatar_Ganyu.json new file mode 100644 index 0000000..e2a283e --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Ganyu.json @@ -0,0 +1,189 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Ganyu_PressShoot", + "abilityName": "Avatar_Ganyu_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_AimPressShoot", + "abilityName": "Avatar_Ganyu_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_Arrow_FX", + "abilityName": "Avatar_Ganyu_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootAimingArrow_Charge", + "abilityName": "Avatar_Ganyu_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_01", + "abilityName": "Avatar_Ganyu_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_02", + "abilityName": "Avatar_Ganyu_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_03", + "abilityName": "Avatar_Ganyu_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_04", + "abilityName": "Avatar_Ganyu_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_05", + "abilityName": "Avatar_Ganyu_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_06", + "abilityName": "Avatar_Ganyu_ShootArrow_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_Aiming", + "abilityName": "Avatar_Ganyu_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ShootArrow_Enchanted_WithoutIce", + "abilityName": "Avatar_Ganyu_ShootArrow_Enchanted_WithoutIce", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_Fission_GainEnergy", + "abilityName": "Avatar_Ganyu_Fission_GainEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_EnchantedFission", + "abilityName": "Avatar_Ganyu_EnchantedFission", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_IceBreaker_PrePosCheck", + "abilityName": "Avatar_Ganyu_IceBreaker_PrePosCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_IceBreaker_PosCheck", + "abilityName": "Avatar_Ganyu_IceBreaker_PosCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_IceBreaker", + "abilityName": "Avatar_Ganyu_IceBreaker", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_UnbreakableIce", + "abilityName": "Avatar_Ganyu_UnbreakableIce", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_FallingAnthem", + "abilityName": "Avatar_Ganyu_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu", + "abilityName": "Avatar_Ganyu", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_TeamConfig_01BS", + "abilityName": "Avatar_Ganyu_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_TeamConfig_01Loop", + "abilityName": "Avatar_Ganyu_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_TeamConfig_01AS", + "abilityName": "Avatar_Ganyu_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalBurst_Spine", + "abilityName": "Avatar_Ganyu_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalBurst", + "abilityName": "Avatar_Ganyu_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalBurst_Areahit", + "abilityName": "Avatar_Ganyu_ElementalBurst_Areahit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_elementalBurst_Areahit_Golden", + "abilityName": "Avatar_Ganyu_elementalBurst_Areahit_Golden", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalBurst_Hit", + "abilityName": "Avatar_Ganyu_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalArt_Special_BS", + "abilityName": "Avatar_Ganyu_ElementalArt_Special_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalArt_Special_Bullet", + "abilityName": "Avatar_Ganyu_ElementalArt_Special_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalArt_Special_Hit", + "abilityName": "Avatar_Ganyu_ElementalArt_Special_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalArt_Special_Bullet_Fission", + "abilityName": "Avatar_Ganyu_ElementalArt_Special_Bullet_Fission", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalArt_Special_Hit_Fission", + "abilityName": "Avatar_Ganyu_ElementalArt_Special_Hit_Fission", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_ElementalBurst_NoSpine", + "abilityName": "Avatar_Ganyu_ElementalBurst_NoSpine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_elementalBurst_Areahit", + "abilityName": "Avatar_Ganyu_elementalBurst_Areahit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_Spine_Loop", + "abilityName": "Avatar_Ganyu_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ganyu_Spine", + "abilityName": "Avatar_Ganyu_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Gorou.json b/data/json/avatar/ConfigAvatar_Gorou.json new file mode 100644 index 0000000..507414e --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Gorou.json @@ -0,0 +1,234 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Gorou_Arrow_FX", + "abilityName": "Avatar_Gorou_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_PressShoot", + "abilityName": "Avatar_Gorou_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_AimPressShoot", + "abilityName": "Avatar_Gorou_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootAimingArrow_Charge", + "abilityName": "Avatar_Gorou_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootArrow_Aiming", + "abilityName": "Avatar_Gorou_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootArrow_01", + "abilityName": "Avatar_Gorou_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootArrow_02", + "abilityName": "Avatar_Gorou_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootArrow_03", + "abilityName": "Avatar_Gorou_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootArrow_04", + "abilityName": "Avatar_Gorou_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootArrow_05", + "abilityName": "Avatar_Gorou_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ShootArrow_Damage", + "abilityName": "Avatar_Gorou_ShootArrow_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_SkillHoldCharge", + "abilityName": "Avatar_Gorou_ElementalArt_SkillHoldCharge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer", + "abilityName": "Avatar_Gorou_ElementalArt_Layer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layer3_Avatars4UNIQUE_Gorou_Constellation_RockAvatar_Layer1_Avatars", + "abilityName": "Avatar_Layer3_Avatars4UNIQUE_Gorou_Constellation_RockAvatar_Layer1_Avatars", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt", + "abilityName": "Avatar_Gorou_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer1_Modifier", + "abilityName": "Avatar_Gorou_ElementalArt_Layer1_Modifier", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer2_Modifier", + "abilityName": "Avatar_Gorou_ElementalArt_Layer2_Modifier", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer3_Modifier", + "abilityName": "Avatar_Gorou_ElementalArt_Layer3_Modifier", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer_Controller", + "abilityName": "Avatar_Gorou_ElementalArt_Layer_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar1UNIQUE_Avatar_Gorou_ElementalArt_Layer_Controller", + "abilityName": "Avatar1UNIQUE_Avatar_Gorou_ElementalArt_Layer_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer1", + "abilityName": "Avatar_Gorou_ElementalArt_Layer1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer2", + "abilityName": "Avatar_Gorou_ElementalArt_Layer2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalArt_Layer3", + "abilityName": "Avatar_Gorou_ElementalArt_Layer3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_PutAwayGadget", + "abilityName": "Avatar_Gorou_ElementalBurst_PutAwayGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_KillGadget", + "abilityName": "Avatar_Gorou_ElementalBurst_KillGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_KillSelf", + "abilityName": "Avatar_Gorou_ElementalBurst_KillSelf", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst", + "abilityName": "Avatar_Gorou_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Gorou_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_Duration", + "abilityName": "Avatar_Gorou_ElementalBurst_Duration", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_SelfHanler", + "abilityName": "Avatar_Gorou_ElementalBurst_SelfHanler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_End_PutAwayGadget", + "abilityName": "Avatar_Gorou_ElementalBurst_End_PutAwayGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_WindZone", + "abilityName": "Avatar_Gorou_ElementalBurst_WindZone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_ElementalBurst_Heal_Handler", + "abilityName": "Avatar_Gorou_ElementalBurst_Heal_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Radar_Collectables_Daoqi", + "abilityName": "Avatar_Gorou_Radar_Collectables_Daoqi", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_FallingAnthem", + "abilityName": "Avatar_Gorou_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou", + "abilityName": "Avatar_Gorou", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Skill_ElementalArt_BS", + "abilityName": "Avatar_Gorou_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Skill_ElementalArt", + "abilityName": "Avatar_Gorou_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Skill_ElementalArt_AS", + "abilityName": "Avatar_Gorou_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Skill_ElementalArt_Hold_Charge", + "abilityName": "Avatar_Gorou_Skill_ElementalArt_Hold_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Skill_ElementalBurst", + "abilityName": "Avatar_Gorou_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Skill_ElementalBurst_AS01", + "abilityName": "Avatar_Gorou_Skill_ElementalBurst_AS01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_Skill_ElementalBurst_AS02", + "abilityName": "Avatar_Gorou_Skill_ElementalBurst_AS02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_TeamConfig_01BS", + "abilityName": "Avatar_Gorou_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_TeamConfig_01Loop", + "abilityName": "Avatar_Gorou_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Gorou_TeamConfig_01AS", + "abilityName": "Avatar_Gorou_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Heizo.json b/data/json/avatar/ConfigAvatar_Heizo.json new file mode 100644 index 0000000..f6a6ca7 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Heizo.json @@ -0,0 +1,119 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Heizo_ExtraAttack", + "abilityName": "Avatar_Heizo_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_NormalAttack_Handler", + "abilityName": "Avatar_Heizo_NormalAttack_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalArt_Handler", + "abilityName": "Avatar_Heizo_ElementalArt_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalArt_Reset", + "abilityName": "Avatar_Heizo_ElementalArt_Reset", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalArt_Strike", + "abilityName": "Avatar_Heizo_ElementalArt_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalArt_Strike_Max", + "abilityName": "Avatar_Heizo_ElementalArt_Strike_Max", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_Strike", + "abilityName": "Avatar_Heizo_ElementalBurst_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Heizo_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_WindHole", + "abilityName": "Avatar_Heizo_ElementalBurst_WindHole", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_HitCheck", + "abilityName": "Avatar_Heizo_ElementalBurst_HitCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_SetElementBomb", + "abilityName": "Avatar_Heizo_ElementalBurst_SetElementBomb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_WindZone_Default_Handler", + "abilityName": "Avatar_Heizo_ElementalBurst_WindZone_Default_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_WindZone_Handler", + "abilityName": "Avatar_Heizo_ElementalBurst_WindZone_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_WindZone_Monster_Small", + "abilityName": "Avatar_Heizo_ElementalBurst_WindZone_Monster_Small", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_WindZone_Monster_Big", + "abilityName": "Avatar_Heizo_ElementalBurst_WindZone_Monster_Big", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_WindZone_Other2Avatar_Heizo_ElementalBurst_WindZone_Monster_Small", + "abilityName": "Avatar_Heizo_ElementalBurst_WindZone_Other2Avatar_Heizo_ElementalBurst_WindZone_Monster_Small", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_ElementalBurst_WindZone_Other", + "abilityName": "Avatar_Heizo_ElementalBurst_WindZone_Other", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_FallingAnthem", + "abilityName": "Avatar_Heizo_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_DashStamina_Reduction", + "abilityName": "Avatar_Heizo_DashStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo", + "abilityName": "Avatar_Heizo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_TeamConfig_01BS", + "abilityName": "Avatar_Heizo_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_TeamConfig_01Loop", + "abilityName": "Avatar_Heizo_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Heizo_TeamConfig_01AS", + "abilityName": "Avatar_Heizo_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Hutao.json b/data/json/avatar/ConfigAvatar_Hutao.json new file mode 100644 index 0000000..efe035f --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Hutao.json @@ -0,0 +1,179 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Hutao_ExtraAttack", + "abilityName": "Avatar_Hutao_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Hutao_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ExtraAttack_Bullet", + "abilityName": "Avatar_Hutao_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ExtraAttack_CrimsonPlum_CreateBullet", + "abilityName": "Avatar_Hutao_ExtraAttack_CrimsonPlum_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ExtraAttack_CrimsonPlum_Bullet", + "abilityName": "Avatar_Hutao_ExtraAttack_CrimsonPlum_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ExtraAttack_KillBullet", + "abilityName": "Avatar_Hutao_ExtraAttack_KillBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_CrimsonPlum", + "abilityName": "Avatar_Hutao_CrimsonPlum", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_PermanentSkill_1", + "abilityName": "Avatar_Hutao_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_Constellation_Kill", + "abilityName": "Avatar_Hutao_Constellation_Kill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_Constellation_LifeBonus", + "abilityName": "Avatar_Hutao_Constellation_LifeBonus", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_VermilionBite_CameraController", + "abilityName": "Avatar_Hutao_VermilionBite_CameraController", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_VermilionBite_PostEffect", + "abilityName": "Avatar_Hutao_VermilionBite_PostEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Hutao_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_VermilionBite", + "abilityName": "Avatar_Hutao_VermilionBite", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_VermilionBite_BakeMesh", + "abilityName": "Avatar_Hutao_VermilionBite_BakeMesh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_Sprint_CloseCollider", + "abilityName": "Avatar_Hutao_Sprint_CloseCollider", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_Constellation_Limbo", + "abilityName": "Avatar_Hutao_Constellation_Limbo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_Constellation_Limbo_Trigger", + "abilityName": "Avatar_Hutao_Constellation_Limbo_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_Constellation_Limbo_Trigger2UNIQUE_Hutao_Constellation_Limbo_Untriggered_Limbo", + "abilityName": "Avatar_Hutao_Constellation_Limbo_Trigger2UNIQUE_Hutao_Constellation_Limbo_Untriggered_Limbo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_PermanentSkill_2", + "abilityName": "Avatar_Hutao_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_NormalAttack_DamageHandler", + "abilityName": "Avatar_Hutao_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_FallingAnthem", + "abilityName": "Avatar_Hutao_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_DropBall", + "abilityName": "Avatar_Hutao_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao", + "abilityName": "Avatar_Hutao", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ExtraAttack_Bullet1Avatar_Hutao_ExtraAttack_CrimsonPlum_CreateBullet", + "abilityName": "Avatar_Hutao_ExtraAttack_Bullet1Avatar_Hutao_ExtraAttack_CrimsonPlum_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_TeamConfig_01BS", + "abilityName": "Avatar_Hutao_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_TeamConfig_01Loop", + "abilityName": "Avatar_Hutao_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_TeamConfig_01AS", + "abilityName": "Avatar_Hutao_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ElementalBurst_Spine", + "abilityName": "Avatar_Hutao_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ElementalBurst_Hit", + "abilityName": "Avatar_Hutao_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_ElementArt_Buff", + "abilityName": "Avatar_Hutao_ElementArt_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_Spine_Loop", + "abilityName": "Avatar_Hutao_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_CrimsonPlum1CrimsonPlum_Debuff_Constellation_LifeBonus_Factor", + "abilityName": "Avatar_Hutao_CrimsonPlum1CrimsonPlum_Debuff_Constellation_LifeBonus_Factor", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_CrimsonPlum4CrimsonPlum_Debuff_Constellation_Kill_Critical_Delta", + "abilityName": "Avatar_Hutao_CrimsonPlum4CrimsonPlum_Debuff_Constellation_Kill_Critical_Delta", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Hutao_CrimsonPlum3CrimsonPlum_PermanentSkill_CriticalUp_CriticalDelta", + "abilityName": "Avatar_Hutao_CrimsonPlum3CrimsonPlum_PermanentSkill_CriticalUp_CriticalDelta", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Itto.json b/data/json/avatar/ConfigAvatar_Itto.json new file mode 100644 index 0000000..d19ffe0 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Itto.json @@ -0,0 +1,364 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Itto_ExtraAttack", + "abilityName": "Avatar_Itto_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraHoldChargingM", + "abilityName": "Avatar_Itto_ExtraHoldChargingM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttackTrigger_HighTickFrequencyU", + "abilityName": "Avatar_Itto_ExtraAttackTrigger_HighTickFrequencyU", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraHoldCharging", + "abilityName": "Avatar_Itto_ExtraHoldCharging", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttackTrigger_HighTickFrequency", + "abilityName": "Avatar_Itto_ExtraAttackTrigger_HighTickFrequency", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttackTrigger_HighTickFrequencyM", + "abilityName": "Avatar_Itto_ExtraAttackTrigger_HighTickFrequencyM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_SpecialExtra_Damage", + "abilityName": "Avatar_Itto_SpecialExtra_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_SpecialExtra_Damage_Ghost", + "abilityName": "Avatar_Itto_SpecialExtra_Damage_Ghost", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Symbol_Handler", + "abilityName": "Avatar_Itto_Symbol_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Calculate_ExtraCombo", + "abilityName": "Avatar_Itto_Calculate_ExtraCombo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Calculate_ClearExtraCombo", + "abilityName": "Avatar_Itto_Calculate_ClearExtraCombo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_SpecialExtra_TipEffect", + "abilityName": "Avatar_Itto_SpecialExtra_TipEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ComboAddSymbol_Handler", + "abilityName": "Avatar_Itto_ComboAddSymbol_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_2ndNormalAttack_AddSymbol", + "abilityName": "Avatar_Itto_2ndNormalAttack_AddSymbol", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_LastNormalAttack_AddSymbol", + "abilityName": "Avatar_Itto_LastNormalAttack_AddSymbol", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ForeNormalAttack_AddSymbol", + "abilityName": "Avatar_Itto_ForeNormalAttack_AddSymbol", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Mask_Timer", + "abilityName": "Avatar_Itto_Mask_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArtAddSymbol_Handler", + "abilityName": "Avatar_Itto_ElementalArtAddSymbol_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_SymbolEffect_Handler", + "abilityName": "Avatar_Itto_SymbolEffect_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Mask_Handler", + "abilityName": "Avatar_Itto_Mask_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Symbol_Cost", + "abilityName": "Avatar_Itto_Symbol_Cost", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttack_Mask", + "abilityName": "Avatar_Itto_ExtraAttack_Mask", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt", + "abilityName": "Avatar_Itto_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_ChargeRune", + "abilityName": "Avatar_Itto_ElementalArt_ChargeRune", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_SaveNormalCombo", + "abilityName": "Avatar_Itto_ElementalArt_SaveNormalCombo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_Strike", + "abilityName": "Avatar_Itto_ElementalArt_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_HitCheck", + "abilityName": "Avatar_Itto_ElementalArt_HitCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_DropBall", + "abilityName": "Avatar_Itto_ElementalArt_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_CreateBull", + "abilityName": "Avatar_Itto_ElementalArt_CreateBull", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_CreateBullM", + "abilityName": "Avatar_Itto_ElementalArt_CreateBullM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_CreateGadget", + "abilityName": "Avatar_Itto_ElementalArt_CreateGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Gadget_OniBull_Bullet", + "abilityName": "Avatar_Itto_Gadget_OniBull_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalArt_CreateGadgeth", + "abilityName": "Avatar_Itto_ElementalArt_CreateGadgeth", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Gadget_OniBull", + "abilityName": "Avatar_Itto_Gadget_OniBull", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Mask_TimerU", + "abilityName": "Avatar_Itto_Mask_TimerU", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst", + "abilityName": "Avatar_Itto_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Initialize", + "abilityName": "Avatar_Itto_ElementalBurst_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Itto_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Camera_PushTarget", + "abilityName": "Avatar_Itto_ElementalBurst_Camera_PushTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_CameraBlur", + "abilityName": "Avatar_Itto_ElementalBurst_CameraBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Itto_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_WeatherChange_Pre", + "abilityName": "Avatar_Itto_ElementalBurst_WeatherChange_Pre", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Invincible", + "abilityName": "Avatar_Itto_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Buff_AddDurability", + "abilityName": "Avatar_Itto_ElementalBurst_Buff_AddDurability", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Buff", + "abilityName": "Avatar_Itto_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_CameraEffectS", + "abilityName": "Avatar_Itto_ElementalBurst_CameraEffectS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_CameraEffect", + "abilityName": "Avatar_Itto_ElementalBurst_CameraEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_WeatherChange", + "abilityName": "Avatar_Itto_ElementalBurst_WeatherChange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_WeatherChangeJ", + "abilityName": "Avatar_Itto_ElementalBurst_WeatherChangeJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_FallingAnthem", + "abilityName": "Avatar_Itto_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Attack_DamageHandler", + "abilityName": "Avatar_Itto_Attack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_PermanentSkill_1", + "abilityName": "Avatar_Itto_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttack_AddEndure", + "abilityName": "Avatar_Itto_ExtraAttack_AddEndure", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttack_ComboSpeed_Handler", + "abilityName": "Avatar_Itto_ExtraAttack_ComboSpeed_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttack_ComboSpeed", + "abilityName": "Avatar_Itto_ExtraAttack_ComboSpeed", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_PermanentSkill_2", + "abilityName": "Avatar_Itto_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ExtraAttack_DamageUp", + "abilityName": "Avatar_Itto_ExtraAttack_DamageUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Constellation_SymbolBurst", + "abilityName": "Avatar_Itto_Constellation_SymbolBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Constellation_HotReviveSymbol_Delay", + "abilityName": "Avatar_Itto_Constellation_HotReviveSymbol_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Constellation_HotReviveSymbol", + "abilityName": "Avatar_Itto_Constellation_HotReviveSymbol", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Constellation_CalculateRockAvatar", + "abilityName": "Avatar_Itto_Constellation_CalculateRockAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Constellation_ReduceCD", + "abilityName": "Avatar_Itto_Constellation_ReduceCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Constellation_6", + "abilityName": "Avatar_Itto_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Constellation_CritDamageUp", + "abilityName": "Avatar_Itto_Constellation_CritDamageUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto", + "abilityName": "Avatar_Itto", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_TeamConfig_01BS", + "abilityName": "Avatar_Itto_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_TeamConfig_01Loop", + "abilityName": "Avatar_Itto_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_TeamConfig_01AS", + "abilityName": "Avatar_Itto_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Spine", + "abilityName": "Avatar_Itto_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_BS", + "abilityName": "Avatar_Itto_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_ElementalBurst_Hit", + "abilityName": "Avatar_Itto_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Itto_Spine_Loop", + "abilityName": "Avatar_Itto_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Kachina.json b/data/json/avatar/ConfigAvatar_Kachina.json new file mode 100644 index 0000000..d2bb0ee --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Kachina.json @@ -0,0 +1,54 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Kachina_ExtraAttack", + "abilityName": "Avatar_Kachina_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_NormalAttack_DamageHandler", + "abilityName": "Avatar_Kachina_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_FallingAnthem", + "abilityName": "Avatar_Kachina_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_ElementalArt", + "abilityName": "Avatar_Kachina_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_NyxCycle", + "abilityName": "Avatar_Kachina_NyxCycle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_SpecialJump", + "abilityName": "Avatar_Kachina_SpecialJump", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_Level_Interaction", + "abilityName": "Avatar_Kachina_Level_Interaction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_Top_ShowHandler", + "abilityName": "Avatar_Kachina_Top_ShowHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_ElementalBurst", + "abilityName": "Avatar_Kachina_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kachina_NyxSwitch", + "abilityName": "Avatar_Kachina_NyxSwitch", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Kaeya.json b/data/json/avatar/ConfigAvatar_Kaeya.json new file mode 100644 index 0000000..07ff731 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Kaeya.json @@ -0,0 +1,94 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Kaeya_ExtraAttack", + "abilityName": "Avatar_Kaeya_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_DamageHandler", + "abilityName": "Avatar_Kaeya_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_DashStamina_Reduction", + "abilityName": "Avatar_Kaeya_DashStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_FallingAnthem", + "abilityName": "Avatar_Kaeya_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya", + "abilityName": "Avatar_Kaeya", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_TeamConfig_01BS", + "abilityName": "Avatar_Kaeya_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_TeamConfig_01Loop", + "abilityName": "Avatar_Kaeya_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_TeamConfig_01AS", + "abilityName": "Avatar_Kaeya_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_ElementalBurst_Spine", + "abilityName": "Avatar_Kaeya_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_ElementalBurst_Spine_Coin", + "abilityName": "Avatar_Kaeya_ElementalBurst_Spine_Coin", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_Spine", + "abilityName": "Avatar_Kaeya_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_ElementalBurst_BS", + "abilityName": "Avatar_Kaeya_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_ElementalBurst", + "abilityName": "Avatar_Kaeya_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_ElementBurst", + "abilityName": "Avatar_Kaeya_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_ElementalBurst_Hit", + "abilityName": "Avatar_Kaeya_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_Spine_Loop", + "abilityName": "Avatar_Kaeya_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_VO_Emotion_Kaeya_Deny_01", + "abilityName": "Avatar_Kaeya_VO_Emotion_Kaeya_Deny_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaeya_VO_MDAQ036_Kaeya_01", + "abilityName": "Avatar_Kaeya_VO_MDAQ036_Kaeya_01", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Kate.json b/data/json/avatar/ConfigAvatar_Kate.json new file mode 100644 index 0000000..84b0647 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Kate.json @@ -0,0 +1,3 @@ +{ + "abilities": [] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Kaveh.json b/data/json/avatar/ConfigAvatar_Kaveh.json new file mode 100644 index 0000000..07ea704 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Kaveh.json @@ -0,0 +1,224 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Kaveh_ExtraAttack", + "abilityName": "Avatar_Kaveh_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ExtraAttack_Flag", + "abilityName": "Avatar_Kaveh_ExtraAttack_Flag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_Chest_Handler", + "abilityName": "Avatar_Kaveh_Chest_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalArt", + "abilityName": "Avatar_Kaveh_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalArt_Strike", + "abilityName": "Avatar_Kaveh_ElementalArt_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalArt_ElementalBall_Handler", + "abilityName": "Avatar_Kaveh_ElementalArt_ElementalBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalArt_ElementalBall", + "abilityName": "Avatar_Kaveh_ElementalArt_ElementalBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalArt_HealBuff", + "abilityName": "Avatar_Kaveh_ElementalArt_HealBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_OvergrowSeed_Trigger", + "abilityName": "Avatar_Kaveh_OvergrowSeed_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst", + "abilityName": "Avatar_Kaveh_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_Pre_Weather", + "abilityName": "Avatar_Kaveh_ElementalBurst_Pre_Weather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ExitCamera", + "abilityName": "Avatar_Kaveh_ElementalBurst_ExitCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_VFX", + "abilityName": "Avatar_Kaveh_ElementalBurst_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_Invincible", + "abilityName": "Avatar_Kaveh_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_Handler", + "abilityName": "Avatar_Kaveh_ElementalBurst_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_AtkSpeedBuff", + "abilityName": "Avatar_Kaveh_ElementalBurst_AtkSpeedBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ReactionDamageUp_TeamBuff", + "abilityName": "Avatar_Kaveh_ElementalBurst_ReactionDamageUp_TeamBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ElementMastery_Handler", + "abilityName": "Avatar_Kaveh_ElementalBurst_ElementMastery_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ExtraStrike_Handler", + "abilityName": "Avatar_Kaveh_ElementalBurst_ExtraStrike_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_FallingAttack_Flag", + "abilityName": "Avatar_Kaveh_FallingAttack_Flag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_FallingAttackVFX_Flag", + "abilityName": "Avatar_Kaveh_FallingAttackVFX_Flag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_Handler5Avatar_Kaveh_ElementalBurst_ReactionDamageUp_TeamBuff", + "abilityName": "Avatar_Kaveh_ElementalBurst_Handler5Avatar_Kaveh_ElementalBurst_ReactionDamageUp_TeamBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ExtraStrike_Attack", + "abilityName": "Avatar_Kaveh_ElementalBurst_ExtraStrike_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ExtraStrike_CD", + "abilityName": "Avatar_Kaveh_ElementalBurst_ExtraStrike_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ExtraStrike_CD2Avatar_Kaveh_ElementalBurst_ElementMastery_Handler", + "abilityName": "Avatar_Kaveh_ElementalBurst_ExtraStrike_CD2Avatar_Kaveh_ElementalBurst_ElementMastery_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ElementMastery_Buff", + "abilityName": "Avatar_Kaveh_ElementalBurst_ElementMastery_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst_ElementMastery_CD", + "abilityName": "Avatar_Kaveh_ElementalBurst_ElementMastery_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_Overgrow_HealHP", + "abilityName": "Avatar_Kaveh_Overgrow_HealHP", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_Overgrow_HealHP_Handler", + "abilityName": "Avatar_Kaveh_Overgrow_HealHP_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_Overgrow_ReactionDamageUp", + "abilityName": "Avatar_Kaveh_Overgrow_ReactionDamageUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_Overgrow_ReactionDamageUp_Buff", + "abilityName": "Avatar_Kaveh_Overgrow_ReactionDamageUp_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_FallingAnthem", + "abilityName": "Avatar_Kaveh_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_FallingAttackVFX_Handler4Avatar_Kaveh_FallingAttackVFX_ElementalBurst_Handler", + "abilityName": "Avatar_Kaveh_FallingAttackVFX_Handler4Avatar_Kaveh_FallingAttackVFX_ElementalBurst_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_FallingAttackVFX_Handler", + "abilityName": "Avatar_Kaveh_FallingAttackVFX_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_FallingAttackVFX_ElementalBurst_Handler", + "abilityName": "Avatar_Kaveh_FallingAttackVFX_ElementalBurst_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_NormalAttack_DamageHandler", + "abilityName": "Avatar_Kaveh_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh", + "abilityName": "Avatar_Kaveh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_TeamConfig_01BS", + "abilityName": "Avatar_Kaveh_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_TeamConfig_01Loop", + "abilityName": "Avatar_Kaveh_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_TeamConfig_01AS", + "abilityName": "Avatar_Kaveh_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Kaveh_Spnotebook", + "abilityName": "AvatarItem_Kaveh_Spnotebook", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst1Kaveh_ElementalBurst_ElementMastery_Buff_StackNum", + "abilityName": "Avatar_Kaveh_ElementalBurst1Kaveh_ElementalBurst_ElementMastery_Buff_StackNum", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurst9Kaveh_ElementalBurst_ElementMastery_Buff_ElemMasteryDelta", + "abilityName": "Avatar_Kaveh_ElementalBurst9Kaveh_ElementalBurst_ElementMastery_Buff_ElemMasteryDelta", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kaveh_ElementalBurstEKaveh_ElementalBurst_ReactionDamageUp_TeamBuff_ElemReactOvergrowDelta", + "abilityName": "Avatar_Kaveh_ElementalBurstEKaveh_ElementalBurst_ReactionDamageUp_TeamBuff_ElemReactOvergrowDelta", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Kazuha.json b/data/json/avatar/ConfigAvatar_Kazuha.json new file mode 100644 index 0000000..837550c --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Kazuha.json @@ -0,0 +1,634 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Kazuha_ExtraAttack", + "abilityName": "Avatar_Kazuha_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_Handler", + "abilityName": "Avatar_Kazuha_NormalAttack_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_05_Damage", + "abilityName": "Avatar_Kazuha_NormalAttack_05_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Hide_Fx", + "abilityName": "Avatar_Kazuha_Hide_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Hide", + "abilityName": "Avatar_Kazuha_Hide", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_MagicSheath", + "abilityName": "Avatar_Kazuha_NormalAttack_MagicSheath", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_05", + "abilityName": "Avatar_Kazuha_NormalAttack_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_05_Handler", + "abilityName": "Avatar_Kazuha_NormalAttack_05_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_05_Damage01", + "abilityName": "Avatar_Kazuha_NormalAttack_05_Damage01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_05_Damage02", + "abilityName": "Avatar_Kazuha_NormalAttack_05_Damage02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_05_Damage03", + "abilityName": "Avatar_Kazuha_NormalAttack_05_Damage03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Check", + "abilityName": "Avatar_Kazuha_ElementalArt_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_ResetMixType", + "abilityName": "Avatar_Kazuha_ElementalArt_ResetMixType", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_HitCheck", + "abilityName": "Avatar_Kazuha_ElementalArt_HitCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_AddHitMark", + "abilityName": "Avatar_Kazuha_ElementalArt_AddHitMark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_DropBall", + "abilityName": "Avatar_Kazuha_ElementalArt_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_MonsterTail", + "abilityName": "Avatar_Kazuha_ElementalArt_MonsterTail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_AirCheck", + "abilityName": "Avatar_Kazuha_ElementalArt_AirCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Air_AddMark", + "abilityName": "Avatar_Kazuha_ElementalArt_Air_AddMark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Air_RemoveMark", + "abilityName": "Avatar_Kazuha_ElementalArt_Air_RemoveMark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_ClearVelocity", + "abilityName": "Avatar_Kazuha_ElementalArt_ClearVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_ChangeSkillButton", + "abilityName": "Avatar_Kazuha_ElementalArt_ChangeSkillButton", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Air_Handler", + "abilityName": "Avatar_Kazuha_ElementalArt_Air_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_WindEffect_Delay", + "abilityName": "Avatar_Kazuha_ElementalArt_WindEffect_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_WindEffect", + "abilityName": "Avatar_Kazuha_ElementalArt_WindEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Charge", + "abilityName": "Avatar_Kazuha_ElementalArt_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Charge_WindZone", + "abilityName": "Avatar_Kazuha_ElementalArt_Charge_WindZone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Charge_Remove", + "abilityName": "Avatar_Kazuha_ElementalArt_Charge_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_EmptyJump", + "abilityName": "Avatar_Kazuha_ElementalArt_EmptyJump", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_Effect", + "abilityName": "Avatar_Kazuha_EmptyJump_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_EnterCD", + "abilityName": "Avatar_Kazuha_ElementalArt_EnterCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Click_Detect", + "abilityName": "Avatar_Kazuha_ElementalArt_Click_Detect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_Strike", + "abilityName": "Avatar_Kazuha_EmptyJump_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_MixDetect", + "abilityName": "Avatar_Kazuha_EmptyJump_MixDetect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_CreateWindZone", + "abilityName": "Avatar_Kazuha_EmptyJump_CreateWindZone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_DragCamera", + "abilityName": "Avatar_Kazuha_EmptyJump_DragCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_MixDetectJ", + "abilityName": "Avatar_Kazuha_EmptyJump_MixDetectJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_1_MixJ", + "abilityName": "Avatar_Kazuha_PermanentSkill_1_MixJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Constellation_6", + "abilityName": "Avatar_Kazuha_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_WindHole", + "abilityName": "Avatar_Kazuha_EmptyJump_WindHole", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_WindZone_Monster_Small", + "abilityName": "Avatar_Kazuha_ElementalArt_WindZone_Monster_Small", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_WindZone_Monster_Big", + "abilityName": "Avatar_Kazuha_ElementalArt_WindZone_Monster_Big", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_WindZone_Other", + "abilityName": "Avatar_Kazuha_ElementalArt_WindZone_Other", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_FlyAway", + "abilityName": "Avatar_Kazuha_ElementalArt_FlyAway", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Hold_EnterCD", + "abilityName": "Avatar_Kazuha_ElementalArt_Hold_EnterCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Hold_Detect", + "abilityName": "Avatar_Kazuha_ElementalArt_Hold_Detect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_FlyAway_Strike", + "abilityName": "Avatar_Kazuha_FlyAway_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_FlyAway_MixDetect", + "abilityName": "Avatar_Kazuha_FlyAway_MixDetect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_FlyAway_WindZone", + "abilityName": "Avatar_Kazuha_FlyAway_WindZone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_FlyAway_CameraBlur", + "abilityName": "Avatar_Kazuha_FlyAway_CameraBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_FlyAway_DragCamera", + "abilityName": "Avatar_Kazuha_FlyAway_DragCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_FlyAway_MixDetectJ", + "abilityName": "Avatar_Kazuha_FlyAway_MixDetectJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_EmptyJump_Hold_WindHole", + "abilityName": "Avatar_Kazuha_EmptyJump_Hold_WindHole", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Hold_WindZone_Monster_Small", + "abilityName": "Avatar_Kazuha_ElementalArt_Hold_WindZone_Monster_Small", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Hold_WindZone_Monster_Big", + "abilityName": "Avatar_Kazuha_ElementalArt_Hold_WindZone_Monster_Big", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_Hold_WindZone_Other", + "abilityName": "Avatar_Kazuha_ElementalArt_Hold_WindZone_Other", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst", + "abilityName": "Avatar_Kazuha_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Initialize", + "abilityName": "Avatar_Kazuha_ElementalBurst_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Kazuha_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Kazuha_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Camera_PushTarget", + "abilityName": "Avatar_Kazuha_ElementalBurst_Camera_PushTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_WeatherChange", + "abilityName": "Avatar_Kazuha_ElementalBurst_WeatherChange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Invincible", + "abilityName": "Avatar_Kazuha_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_CameraEffect", + "abilityName": "Avatar_Kazuha_ElementalBurst_CameraEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_CameraBlur", + "abilityName": "Avatar_Kazuha_ElementalBurst_CameraBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Strike_Damage", + "abilityName": "Avatar_Kazuha_ElementalBurst_Strike_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_CreateMist", + "abilityName": "Avatar_Kazuha_ElementalBurst_CreateMist", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Reconnect", + "abilityName": "Avatar_Kazuha_Reconnect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_CreateMistJ", + "abilityName": "Avatar_Kazuha_ElementalBurst_CreateMistJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Kazuha_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Strike_Mix", + "abilityName": "Avatar_Kazuha_ElementalBurst_Strike_Mix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Mist", + "abilityName": "Avatar_Kazuha_ElementalBurst_Mist", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Mist_Initialize", + "abilityName": "Avatar_Kazuha_ElementalBurst_Mist_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Mist_FieldEffect", + "abilityName": "Avatar_Kazuha_ElementalBurst_Mist_FieldEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Mist_Dissipate", + "abilityName": "Avatar_Kazuha_ElementalBurst_Mist_Dissipate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike_Delay", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike_Effect", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike_Fire", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike_Fire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike_Water", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike_Water", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike_Electric", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike_Electric", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike_Ice", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_MistStrike_Wind", + "abilityName": "Avatar_Kazuha_ElementalBurst_MistStrike_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Mist_Mix", + "abilityName": "Avatar_Kazuha_ElementalBurst_Mist_Mix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_FallingAnthem", + "abilityName": "Avatar_Kazuha_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_FallingAttack_HideCollider", + "abilityName": "Avatar_Kazuha_ElementalArt_FallingAttack_HideCollider", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_FallingAttack_LoopDamage", + "abilityName": "Avatar_Kazuha_ElementalArt_FallingAttack_LoopDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalArt_FallingAttack_DragCamera", + "abilityName": "Avatar_Kazuha_ElementalArt_FallingAttack_DragCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_1", + "abilityName": "Avatar_Kazuha_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_NormalAttack_DamageHandler", + "abilityName": "Avatar_Kazuha_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_1_Effect", + "abilityName": "Avatar_Kazuha_PermanentSkill_1_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_1_ExtraDamage", + "abilityName": "Avatar_Kazuha_PermanentSkill_1_ExtraDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_1_Mix", + "abilityName": "Avatar_Kazuha_PermanentSkill_1_Mix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2", + "abilityName": "Avatar_Kazuha_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Handler", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Fire", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Fire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Firec", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Firec", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Water", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Water", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Waterc", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Waterc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Electric", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Electric", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Electricc", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Electricc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_PermanentSkill_2_Ice", + "abilityName": "Avatar_Kazuha_PermanentSkill_2_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Constellation_6_WindEnchant", + "abilityName": "Avatar_Kazuha_Constellation_6_WindEnchant", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Constellation_6_DamageUp", + "abilityName": "Avatar_Kazuha_Constellation_6_DamageUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_DashStamina_Reduction", + "abilityName": "Avatar_Kazuha_DashStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_RegionAbility_Dreamland_KazuhaMovie", + "abilityName": "Avatar_RegionAbility_Dreamland_KazuhaMovie", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha", + "abilityName": "Avatar_Kazuha", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Mist_Dissipate1Avatar_Kauzha_ElementalArt_FallingAttack_WindZone", + "abilityName": "Avatar_Kazuha_ElementalBurst_Mist_Dissipate1Avatar_Kauzha_ElementalArt_FallingAttack_WindZone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_BS", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_Charge", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_Hold", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_Hold", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_Hold_AS5Emo_Avatar_Kazuha_Skill_ElementalArt_FallingAttack_BS7Emo_Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Loop9Emo_Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Strike", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_Hold_AS5Emo_Avatar_Kazuha_Skill_ElementalArt_FallingAttack_BS7Emo_Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Loop9Emo_Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_TeamConfig_01BS", + "abilityName": "Avatar_Kazuha_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_TeamConfig_01Loop", + "abilityName": "Avatar_Kazuha_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_TeamConfig_01AS", + "abilityName": "Avatar_Kazuha_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_Hold_AS", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_Hold_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_BS", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Loop", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Strike", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Strike_AS", + "abilityName": "Avatar_Kazuha_Skill_ElementalArt_FallingAttack_Strike_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Spine", + "abilityName": "Avatar_Kazuha_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_BS", + "abilityName": "Avatar_Kazuha_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_ElementalBurst_Hit", + "abilityName": "Avatar_Kazuha_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Spine_Loop", + "abilityName": "Avatar_Kazuha_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kazuha_Spine", + "abilityName": "Avatar_Kazuha_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Keqing.json b/data/json/avatar/ConfigAvatar_Keqing.json new file mode 100644 index 0000000..84df2d0 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Keqing.json @@ -0,0 +1,314 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Keqing_ExtraAttack", + "abilityName": "Avatar_Keqing_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ExtraAttack_ExplodeGadget_Eff", + "abilityName": "Avatar_Keqing_ExtraAttack_ExplodeGadget_Eff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ExtraAttack_ExplodeGadget", + "abilityName": "Avatar_Keqing_ExtraAttack_ExplodeGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_NormalAttack_Handler", + "abilityName": "Avatar_Keqing_NormalAttack_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_NormalAttack05_CreateBullet", + "abilityName": "Avatar_Keqing_NormalAttack05_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_NormalAttack05_Bullet", + "abilityName": "Avatar_Keqing_NormalAttack05_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Electrans_Click", + "abilityName": "Avatar_Keqing_Electrans_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Electrans_Charge", + "abilityName": "Avatar_Keqing_Electrans_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Charge_Aim", + "abilityName": "Avatar_Keqing_ElementalArt_Charge_Aim", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Electrans_SetGadget", + "abilityName": "Avatar_Keqing_Electrans_SetGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Electrans_Part2", + "abilityName": "Avatar_Keqing_Electrans_Part2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_HideSpark", + "abilityName": "Avatar_Keqing_ElementalArt_HideSpark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Break1_Buff", + "abilityName": "Avatar_Keqing_Break1_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Electrans_Strike", + "abilityName": "Avatar_Keqing_Electrans_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Strike_Hit", + "abilityName": "Avatar_Keqing_ElementalArt_Strike_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Bullet", + "abilityName": "Avatar_Keqing_ElementalArt_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Hit", + "abilityName": "Avatar_Keqing_ElementalArt_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Trap", + "abilityName": "Avatar_Keqing_ElementalArt_Trap", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Trap_Die", + "abilityName": "Avatar_Keqing_ElementalArt_Trap_Die", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_TrapBurst", + "abilityName": "Avatar_Keqing_ElementalArt_TrapBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Camera", + "abilityName": "Avatar_Keqing_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_ScreenEffect_01", + "abilityName": "Avatar_Keqing_ElementalBurst_ScreenEffect_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_CameraEff", + "abilityName": "Avatar_Keqing_ElementalBurst_CameraEff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Field", + "abilityName": "Avatar_Keqing_ElementalBurst_Field", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst", + "abilityName": "Avatar_Keqing_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Attack00", + "abilityName": "Avatar_Keqing_ElementalBurst_Attack00", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Attack01", + "abilityName": "Avatar_Keqing_ElementalBurst_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Attack02", + "abilityName": "Avatar_Keqing_ElementalBurst_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Attack03", + "abilityName": "Avatar_Keqing_ElementalBurst_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Attack03_NoCamera", + "abilityName": "Avatar_Keqing_ElementalBurst_Attack03_NoCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Attack_Hit", + "abilityName": "Avatar_Keqing_ElementalBurst_Attack_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_ScreenEffect_02", + "abilityName": "Avatar_Keqing_ElementalBurst_ScreenEffect_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_NormalAttack_DamageHandler", + "abilityName": "Avatar_Keqing_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_FallingAnthem", + "abilityName": "Avatar_Keqing_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing", + "abilityName": "Avatar_Keqing", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_TeamConfig_01BS", + "abilityName": "Avatar_Keqing_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_TeamConfig_01Loop", + "abilityName": "Avatar_Keqing_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_TeamConfig_01AS", + "abilityName": "Avatar_Keqing_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Spine", + "abilityName": "Avatar_Keqing_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Spine", + "abilityName": "Avatar_Keqing_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Hit", + "abilityName": "Avatar_Keqing_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_BS", + "abilityName": "Avatar_Keqing_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Hit_01", + "abilityName": "Avatar_Keqing_ElementalBurst_Hit_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Hit_02", + "abilityName": "Avatar_Keqing_ElementalBurst_Hit_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Spine_Loop", + "abilityName": "Avatar_Keqing_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_01", + "abilityName": "Avatar_Keqing_Attack_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_02", + "abilityName": "Avatar_Keqing_Attack_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_03", + "abilityName": "Avatar_Keqing_Attack_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack04_Dust", + "abilityName": "Avatar_Keqing_Attack04_Dust", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_04_01", + "abilityName": "Avatar_Keqing_Attack_04_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_04_02", + "abilityName": "Avatar_Keqing_Attack_04_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_HideSpark_04", + "abilityName": "Avatar_Keqing_Attack_HideSpark_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_HideSpark_05", + "abilityName": "Avatar_Keqing_Attack_HideSpark_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_05", + "abilityName": "Avatar_Keqing_Attack_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack05_Dust", + "abilityName": "Avatar_Keqing_Attack05_Dust", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ExtraAttack_SpeedLine", + "abilityName": "Avatar_Keqing_ExtraAttack_SpeedLine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_Attack_ExtraAttack_00", + "abilityName": "Avatar_Keqing_Attack_ExtraAttack_00", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Cast", + "abilityName": "Avatar_Keqing_ElementalArt_Cast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Charge_Cast", + "abilityName": "Avatar_Keqing_ElementalArt_Charge_Cast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Fly_Attack", + "abilityName": "Avatar_Keqing_ElementalArt_Fly_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalArt_Charge_Lock", + "abilityName": "Avatar_Keqing_ElementalArt_Charge_Lock", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Keqing_ElementalBurst_Attack032Eff_Avatar_Keqing_ElementalBurst_Attack03_NoCamera", + "abilityName": "Avatar_Keqing_ElementalBurst_Attack032Eff_Avatar_Keqing_ElementalBurst_Attack03_NoCamera", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Kinich.json b/data/json/avatar/ConfigAvatar_Kinich.json new file mode 100644 index 0000000..04429da --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Kinich.json @@ -0,0 +1,99 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Kinich_ExtraAttack", + "abilityName": "Avatar_Kinich_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt", + "abilityName": "Avatar_Kinich_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_Start", + "abilityName": "Avatar_Kinich_ElementalArt_Start", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_Combat", + "abilityName": "Avatar_Kinich_ElementalArt_Combat", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_Combat_Over", + "abilityName": "Avatar_Kinich_ElementalArt_Combat_Over", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_HookMove", + "abilityName": "Avatar_Kinich_ElementalArt_HookMove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_HookMoveAir", + "abilityName": "Avatar_Kinich_ElementalArt_HookMoveAir", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_Skill_Controller", + "abilityName": "Avatar_Kinich_ElementalArt_Skill_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_HookGrab", + "abilityName": "Avatar_Kinich_ElementalArt_HookGrab", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_HookFree", + "abilityName": "Avatar_Kinich_ElementalArt_HookFree", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalArt_HookGrabShoot", + "abilityName": "Avatar_Kinich_ElementalArt_HookGrabShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_HookMove_Attack", + "abilityName": "Avatar_Kinich_HookMove_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_ElementalBurst", + "abilityName": "Avatar_Kinich_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_FallingAnthem", + "abilityName": "Avatar_Kinich_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_Platform_ExtraAbility", + "abilityName": "Avatar_Kinich_Platform_ExtraAbility", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_NyxSwitch", + "abilityName": "Avatar_Kinich_NyxSwitch", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_Emotion_Controller", + "abilityName": "Avatar_Kinich_Emotion_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_Elemball", + "abilityName": "Avatar_Kinich_Elemball", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kinich_NormalAttackDamage", + "abilityName": "Avatar_Kinich_NormalAttackDamage", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Klee.json b/data/json/avatar/ConfigAvatar_Klee.json new file mode 100644 index 0000000..3e33f25 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Klee.json @@ -0,0 +1,209 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Klee_ExtraAttack", + "abilityName": "Avatar_Klee_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ExtraAttack_CreateClover", + "abilityName": "Avatar_Klee_ExtraAttack_CreateClover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ExtraAttack_Clover", + "abilityName": "Avatar_Klee_ExtraAttack_Clover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ExtraAttack_Clover_Bullet", + "abilityName": "Avatar_Klee_ExtraAttack_Clover_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_NoarmalAttack_01_Damage", + "abilityName": "Avatar_Klee_NoarmalAttack_01_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_NoarmalAttack_02_Damage", + "abilityName": "Avatar_Klee_NoarmalAttack_02_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_NoarmalAttack_03_Damage", + "abilityName": "Avatar_Klee_NoarmalAttack_03_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementalArt_ClearTrigger", + "abilityName": "Avatar_Klee_ElementalArt_ClearTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Attack01", + "abilityName": "Avatar_Klee_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Attack02", + "abilityName": "Avatar_Klee_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Attack03", + "abilityName": "Avatar_Klee_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_NormalAttack", + "abilityName": "Avatar_Klee_NormalAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_JumpingBomb", + "abilityName": "Avatar_Klee_JumpingBomb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ThrowMine", + "abilityName": "Avatar_Klee_ThrowMine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Mine", + "abilityName": "Avatar_Klee_Mine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Clover_Clear", + "abilityName": "Avatar_Klee_Clover_Clear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_CameraRadialBlur", + "abilityName": "Avatar_Klee_CameraRadialBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Elemental_Burst", + "abilityName": "Avatar_Klee_Elemental_Burst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Elemental_Burst_Trigger", + "abilityName": "Avatar_Klee_Elemental_Burst_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementalBurst_CreateFunnel", + "abilityName": "Avatar_Klee_ElementalBurst_CreateFunnel", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Elemental_Burst_Explode", + "abilityName": "Avatar_Klee_Elemental_Burst_Explode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Constellation_Explode", + "abilityName": "Avatar_Klee_Constellation_Explode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Constellation_6", + "abilityName": "Avatar_Klee_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_PermanentSkill_1", + "abilityName": "Avatar_Klee_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_PermanentSkill_Free_ExtraAttack_CD", + "abilityName": "Avatar_Klee_PermanentSkill_Free_ExtraAttack_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_PermanentSkill_2", + "abilityName": "Avatar_Klee_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_FallingAnthem", + "abilityName": "Avatar_Klee_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Radar_Collectables_Mengde", + "abilityName": "Avatar_Klee_Radar_Collectables_Mengde", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee", + "abilityName": "Avatar_Klee", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Skill_ElementalArt", + "abilityName": "Avatar_Klee_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_Skill_ElementalArt_AS", + "abilityName": "Avatar_Klee_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_TeamConfig_01BS", + "abilityName": "Avatar_Klee_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_TeamConfig_01Loop", + "abilityName": "Avatar_Klee_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_TeamConfig_01AS", + "abilityName": "Avatar_Klee_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementalBurst_Spine", + "abilityName": "Avatar_Klee_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementalBurst", + "abilityName": "Avatar_Klee_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementBurst", + "abilityName": "Avatar_Klee_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementBurst_02", + "abilityName": "Avatar_Klee_ElementBurst_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementalBurst_BS", + "abilityName": "Avatar_Klee_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementalBurst_Hit", + "abilityName": "Avatar_Klee_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Klee_ElementalBurst_Buff", + "abilityName": "Avatar_Klee_ElementalBurst_Buff", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Kokomi.json b/data/json/avatar/ConfigAvatar_Kokomi.json new file mode 100644 index 0000000..7f7dece --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Kokomi.json @@ -0,0 +1,374 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Kokomi_ExtraAttack", + "abilityName": "Avatar_Kokomi_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ExtraAttack_Charge", + "abilityName": "Avatar_Kokomi_ExtraAttack_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ExtraAttack_BurstMark", + "abilityName": "Avatar_Kokomi_ExtraAttack_BurstMark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ExtraAttack_Charge_HasTarget", + "abilityName": "Avatar_Kokomi_ExtraAttack_Charge_HasTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ExtraAttack_Charge_NoTarget", + "abilityName": "Avatar_Kokomi_ExtraAttack_Charge_NoTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ExtraAttack_Initiate", + "abilityName": "Avatar_Kokomi_ExtraAttack_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Attack01", + "abilityName": "Avatar_Kokomi_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Attack02", + "abilityName": "Avatar_Kokomi_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Attack03", + "abilityName": "Avatar_Kokomi_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_BounceBullet", + "abilityName": "Avatar_Kokomi_NormalAttack_BounceBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Bullet_1_Damage", + "abilityName": "Avatar_Kokomi_NormalAttack_Bullet_1_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_AngularVelocity_Timer", + "abilityName": "Avatar_Kokomi_NormalAttack_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_AngularVelocity", + "abilityName": "Avatar_Kokomi_NormalAttack_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Bullet_2_Damage", + "abilityName": "Avatar_Kokomi_NormalAttack_Bullet_2_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Bullet_3_Damage", + "abilityName": "Avatar_Kokomi_NormalAttack_Bullet_3_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Bullet_1_Burst_Damage", + "abilityName": "Avatar_Kokomi_NormalAttack_Bullet_1_Burst_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Heal_Handler", + "abilityName": "Avatar_Kokomi_NormalAttack_Heal_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Heal", + "abilityName": "Avatar_Kokomi_ElementalBurst_Heal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_AtkSpeeddBuff", + "abilityName": "Avatar_Kokomi_ElementalBurst_AtkSpeeddBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_ReviveEnergy", + "abilityName": "Avatar_Kokomi_ElementalBurst_ReviveEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Bullet_2_Burst_Damage", + "abilityName": "Avatar_Kokomi_NormalAttack_Bullet_2_Burst_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Bullet_3_Burst_Damage", + "abilityName": "Avatar_Kokomi_NormalAttack_Bullet_3_Burst_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalArt", + "abilityName": "Avatar_Kokomi_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalArt_KillGadget", + "abilityName": "Avatar_Kokomi_ElementalArt_KillGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalArt_WaterBuff", + "abilityName": "Avatar_Kokomi_ElementalArt_WaterBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalArt_ElemBall", + "abilityName": "Avatar_Kokomi_ElementalArt_ElemBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalArt_Heal", + "abilityName": "Avatar_Kokomi_ElementalArt_Heal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Hagoromo", + "abilityName": "Avatar_Kokomi_ElementalBurst_Hagoromo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Reset", + "abilityName": "Avatar_Kokomi_ElementalBurst_Reset", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_Move", + "abilityName": "Avatar_Kokomi_Hagoromo_Move", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_Attack01", + "abilityName": "Avatar_Kokomi_Hagoromo_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_Attack02", + "abilityName": "Avatar_Kokomi_Hagoromo_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_Attack03", + "abilityName": "Avatar_Kokomi_Hagoromo_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_ExtraAttack", + "abilityName": "Avatar_Kokomi_Hagoromo_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_ElementalArt", + "abilityName": "Avatar_Kokomi_Hagoromo_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_Hide", + "abilityName": "Avatar_Kokomi_Hagoromo_Hide", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Ripple_Hide", + "abilityName": "Avatar_Kokomi_Ripple_Hide", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_ChangeFollowDampTime", + "abilityName": "Avatar_Kokomi_Hagoromo_ChangeFollowDampTime", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo", + "abilityName": "Avatar_Kokomi_Hagoromo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_FootRipple_Left", + "abilityName": "Avatar_Kokomi_ElementalBurst_FootRipple_Left", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_FootRipple_Right", + "abilityName": "Avatar_Kokomi_ElementalBurst_FootRipple_Right", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Initiate", + "abilityName": "Avatar_Kokomi_ElementalBurst_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_States", + "abilityName": "Avatar_Kokomi_ElementalBurst_States", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Camera", + "abilityName": "Avatar_Kokomi_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Pre_Weather", + "abilityName": "Avatar_Kokomi_ElementalBurst_Pre_Weather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Emotion", + "abilityName": "Avatar_Kokomi_ElementalBurst_Emotion", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Weathert", + "abilityName": "Avatar_Kokomi_ElementalBurst_Weathert", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Weather", + "abilityName": "Avatar_Kokomi_ElementalBurst_Weather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_DamageBuff_HealAdd", + "abilityName": "Avatar_Kokomi_ElementalBurst_DamageBuff_HealAdd", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_AtkSpeedBuff", + "abilityName": "Avatar_Kokomi_ElementalBurst_AtkSpeedBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo_Remover", + "abilityName": "Avatar_Kokomi_Hagoromo_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_MoveOnWater_Remover", + "abilityName": "Avatar_Kokomi_MoveOnWater_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Hagoromo6UNIQUE_Avatar_Kokomi_ElementalBurst_DamageBuff_HealAdd", + "abilityName": "Avatar_Kokomi_Hagoromo6UNIQUE_Avatar_Kokomi_ElementalBurst_DamageBuff_HealAdd", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Heal_Predicate_LowHP", + "abilityName": "Avatar_Kokomi_ElementalBurst_Heal_Predicate_LowHP", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Heal_LowHPTarget", + "abilityName": "Avatar_Kokomi_ElementalBurst_Heal_LowHPTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Heal_Predicate_Overheal", + "abilityName": "Avatar_Kokomi_ElementalBurst_Heal_Predicate_Overheal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Heal_Predicate_Overheal4Avatar_Kokomi_ElementalBurst_Heal_Predicate_Overheal", + "abilityName": "Avatar_Kokomi_ElementalBurst_Heal_Predicate_Overheal4Avatar_Kokomi_ElementalBurst_Heal_Predicate_Overheal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ExtraHeal_OverHeal", + "abilityName": "Avatar_Kokomi_ExtraHeal_OverHeal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_OverHeal", + "abilityName": "Avatar_Kokomi_ElementalBurst_OverHeal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_OverHeal_Buff1UNIQUE_Avatar_Kokomi_ElementalBurst_OverHeal_Buff", + "abilityName": "Avatar_Kokomi_ElementalBurst_OverHeal_Buff1UNIQUE_Avatar_Kokomi_ElementalBurst_OverHeal_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_FallingAnthem", + "abilityName": "Avatar_Kokomi_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_SwimStamina_Reduction", + "abilityName": "Avatar_Kokomi_SwimStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_CritRateDown", + "abilityName": "Avatar_Kokomi_CritRateDown", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_CritRate_Delta", + "abilityName": "Avatar_Kokomi_CritRate_Delta", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_HealAdd_Delta", + "abilityName": "Avatar_Kokomi_HealAdd_Delta", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi", + "abilityName": "Avatar_Kokomi", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_NormalAttack_Bullet_3_Damage0Avatar_Kokomi_NormalAttack_Bullet_1_Burst_Damage0Avatar_Kokomi_NormalAttack_Bullet_2_Burst_Damage0Avatar_Kokomi_NormalAttack_Bullet_3_Burst_Damage", + "abilityName": "Avatar_Kokomi_NormalAttack_Bullet_3_Damage0Avatar_Kokomi_NormalAttack_Bullet_1_Burst_Damage0Avatar_Kokomi_NormalAttack_Bullet_2_Burst_Damage0Avatar_Kokomi_NormalAttack_Bullet_3_Burst_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_TeamConfig_01BS", + "abilityName": "Avatar_Kokomi_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_TeamConfig_01Loop", + "abilityName": "Avatar_Kokomi_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_TeamConfig_01AS", + "abilityName": "Avatar_Kokomi_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Spine", + "abilityName": "Avatar_Kokomi_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_BS", + "abilityName": "Avatar_Kokomi_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_ElementalBurst_Hit", + "abilityName": "Avatar_Kokomi_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Kokomi_Spine_Loop", + "abilityName": "Avatar_Kokomi_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Layla.json b/data/json/avatar/ConfigAvatar_Layla.json new file mode 100644 index 0000000..49494a5 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Layla.json @@ -0,0 +1,109 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Layla_ExtraAttack", + "abilityName": "Avatar_Layla_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ElementalArt", + "abilityName": "Avatar_Layla_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_HasTeamShield", + "abilityName": "Avatar_Layla_HasTeamShield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ElementalArt_Handler", + "abilityName": "Avatar_Layla_ElementalArt_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_IceShield_GV_Count", + "abilityName": "Avatar_Layla_IceShield_GV_Count", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_IceShield_Can_Count", + "abilityName": "Avatar_Layla_IceShield_Can_Count", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ToughShield_Level", + "abilityName": "Avatar_Layla_ToughShield_Level", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ElementalArt_Gadget", + "abilityName": "Avatar_Layla_ElementalArt_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_IceShield_GV_Gadget", + "abilityName": "Avatar_Layla_IceShield_GV_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_Shoot_TeamBuff", + "abilityName": "Avatar_Layla_Shoot_TeamBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ArtAndBurst_ReviveEnergy", + "abilityName": "Avatar_Layla_ArtAndBurst_ReviveEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ElementalBurst", + "abilityName": "Avatar_Layla_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ElementalBurst_Gadget", + "abilityName": "Avatar_Layla_ElementalBurst_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_NormalAttack_DamageHandler", + "abilityName": "Avatar_Layla_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ArtAndBurst_DamageExtra", + "abilityName": "Avatar_Layla_ArtAndBurst_DamageExtra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_ArtAndBurst_DamageUp", + "abilityName": "Avatar_Layla_ArtAndBurst_DamageUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_FallingAnthem", + "abilityName": "Avatar_Layla_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla", + "abilityName": "Avatar_Layla", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_TeamConfig_01BS", + "abilityName": "Avatar_Layla_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_TeamConfig_01Loop", + "abilityName": "Avatar_Layla_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Layla_TeamConfig_01AS", + "abilityName": "Avatar_Layla_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Linette.json b/data/json/avatar/ConfigAvatar_Linette.json new file mode 100644 index 0000000..451af12 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Linette.json @@ -0,0 +1,169 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Linette_ExtraAttack", + "abilityName": "Avatar_Linette_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ArkheGrade", + "abilityName": "Avatar_Linette_ArkheGrade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ArkheGrade_CD", + "abilityName": "Avatar_Linette_ArkheGrade_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalArt", + "abilityName": "Avatar_Linette_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalArt_DropBall_Handler", + "abilityName": "Avatar_Linette_ElementalArt_DropBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalArt_Executed", + "abilityName": "Avatar_Linette_ElementalArt_Executed", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalArt_Short_Strike", + "abilityName": "Avatar_Linette_ElementalArt_Short_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalArt_Executed_Strike", + "abilityName": "Avatar_Linette_ElementalArt_Executed_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalArt_RushMove", + "abilityName": "Avatar_Linette_ElementalArt_RushMove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_Constellation_6", + "abilityName": "Avatar_Linette_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_Constellation_6_WindEnchant", + "abilityName": "Avatar_Linette_Constellation_6_WindEnchant", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_Constellation_6_DamageUp", + "abilityName": "Avatar_Linette_Constellation_6_DamageUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalArt_Executed_Bullet", + "abilityName": "Avatar_Linette_ElementalArt_Executed_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst", + "abilityName": "Avatar_Linette_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_PermanentSkill_1", + "abilityName": "Avatar_Linette_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_Strike", + "abilityName": "Avatar_Linette_ElementalBurst_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_MagicBox", + "abilityName": "Avatar_Linette_ElementalBurst_MagicBox", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Ice", + "abilityName": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Fire", + "abilityName": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Fire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Water", + "abilityName": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Water", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Electric", + "abilityName": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Electric", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_HitBox", + "abilityName": "Avatar_Linette_ElementalBurst_HitBox", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_Constellation_WindZone", + "abilityName": "Avatar_Linette_Constellation_WindZone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_PermanentSkill_1_AttackUp", + "abilityName": "Avatar_Linette_PermanentSkill_1_AttackUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_NormalAttack_DamageHandler", + "abilityName": "Avatar_Linette_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_FallingAnthem", + "abilityName": "Avatar_Linette_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Wind", + "abilityName": "Avatar_Linette_ElementalBurst_MagicBox_Bullet_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_PermanentSkill_3", + "abilityName": "Avatar_Linette_PermanentSkill_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette", + "abilityName": "Avatar_Linette", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_ElementalBurst_MagicBox1Avatar_Linette_ElementalBurst_MagicBox_Bullet_Ice2Avatar_Linette_ElementalBurst_MagicBox_Bullet_Fire3Avatar_Linette_ElementalBurst_MagicBox_Bullet_Water6Avatar_Linette_ElementalBurst_MagicBox_Bullet_Electric", + "abilityName": "Avatar_Linette_ElementalBurst_MagicBox1Avatar_Linette_ElementalBurst_MagicBox_Bullet_Ice2Avatar_Linette_ElementalBurst_MagicBox_Bullet_Fire3Avatar_Linette_ElementalBurst_MagicBox_Bullet_Water6Avatar_Linette_ElementalBurst_MagicBox_Bullet_Electric", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_TeamConfig_01BS", + "abilityName": "Avatar_Linette_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_TeamConfig_01Loop", + "abilityName": "Avatar_Linette_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Linette_TeamConfig_01AS", + "abilityName": "Avatar_Linette_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Liney.json b/data/json/avatar/ConfigAvatar_Liney.json new file mode 100644 index 0000000..76a44dd --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Liney.json @@ -0,0 +1,129 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Liney_PressShoot", + "abilityName": "Avatar_Liney_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_AimPressShoot", + "abilityName": "Avatar_Liney_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_Arrow_FX", + "abilityName": "Avatar_Liney_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootAimingArrow_Charge", + "abilityName": "Avatar_Liney_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootArrow_01", + "abilityName": "Avatar_Liney_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootArrow_02", + "abilityName": "Avatar_Liney_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootArrow_03_01", + "abilityName": "Avatar_Liney_ShootArrow_03_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootArrow_03_02", + "abilityName": "Avatar_Liney_ShootArrow_03_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootArrow_04", + "abilityName": "Avatar_Liney_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootArrow_Aiming", + "abilityName": "Avatar_Liney_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ShootArrow_Enchanted_WithoutFire", + "abilityName": "Avatar_Liney_ShootArrow_Enchanted_WithoutFire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ExtraAttack", + "abilityName": "Avatar_Liney_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ElementalArt", + "abilityName": "Avatar_Liney_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ElementalBurst", + "abilityName": "Avatar_Liney_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_ExitSpecialMove", + "abilityName": "Avatar_Liney_ExitSpecialMove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_FallingAnthem", + "abilityName": "Avatar_Liney_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_PermanentSkill_3", + "abilityName": "Avatar_Liney_PermanentSkill_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_PermanentSkill_2", + "abilityName": "Avatar_Liney_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_CriticalHurt_GrandHandler", + "abilityName": "Avatar_Liney_CriticalHurt_GrandHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_CriticalHurt_Handler", + "abilityName": "Avatar_Liney_CriticalHurt_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_CriticalHurt_Buff", + "abilityName": "Avatar_Liney_CriticalHurt_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney", + "abilityName": "Avatar_Liney", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_TeamConfig_01BS", + "abilityName": "Avatar_Liney_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_TeamConfig_01Loop", + "abilityName": "Avatar_Liney_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liney_TeamConfig_01AS", + "abilityName": "Avatar_Liney_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Lisa.json b/data/json/avatar/ConfigAvatar_Lisa.json new file mode 100644 index 0000000..622600b --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Lisa.json @@ -0,0 +1,189 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Lisa_ExtraAttack", + "abilityName": "Avatar_Lisa_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_ExtraAttack_Damage", + "abilityName": "Avatar_Lisa_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_NormalAttack04_Blink", + "abilityName": "Avatar_Lisa_NormalAttack04_Blink", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_TriggerAbility2", + "abilityName": "Avatar_Lisa_TriggerAbility2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Weather_Trigger", + "abilityName": "Avatar_Lisa_Weather_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Weather_Remove", + "abilityName": "Avatar_Lisa_Weather_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Attack01", + "abilityName": "Avatar_Lisa_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Attack02", + "abilityName": "Avatar_Lisa_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Attack03", + "abilityName": "Avatar_Lisa_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Attack04", + "abilityName": "Avatar_Lisa_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_NormalAttack_Burst", + "abilityName": "Avatar_Lisa_NormalAttack_Burst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_NormalAttack_Hit_Fx", + "abilityName": "Avatar_Lisa_NormalAttack_Hit_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_FlickerWave_Hit_Fx", + "abilityName": "Avatar_Lisa_FlickerWave_Hit_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_FlickerWave", + "abilityName": "Avatar_Lisa_FlickerWave", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_FlickerWaveDamage", + "abilityName": "Avatar_Lisa_FlickerWaveDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_StaticElecFieldh", + "abilityName": "Avatar_Lisa_StaticElecFieldh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_StaticElecField", + "abilityName": "Avatar_Lisa_StaticElecField", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Constellation_6", + "abilityName": "Avatar_Lisa_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_ThunderFall", + "abilityName": "Avatar_Lisa_ThunderFall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_PierceLightning", + "abilityName": "Avatar_Lisa_PierceLightning", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_PierceLightning_Ball", + "abilityName": "Avatar_Lisa_PierceLightning_Ball", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_PierceLightning_Ball_Attack", + "abilityName": "Avatar_Lisa_PierceLightning_Ball_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_PierceLightning_Ball_FX", + "abilityName": "Avatar_Lisa_PierceLightning_Ball_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Captain", + "abilityName": "Avatar_Lisa_Captain", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_FallingAnthem", + "abilityName": "Avatar_Lisa_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa", + "abilityName": "Avatar_Lisa", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_PierceLightning_AS", + "abilityName": "Avatar_Lisa_PierceLightning_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_TeamConfig_01BS", + "abilityName": "Avatar_Lisa_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_TeamConfig_01Loop", + "abilityName": "Avatar_Lisa_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_TeamConfig_01AS", + "abilityName": "Avatar_Lisa_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_ElementalBurst_Spine", + "abilityName": "Avatar_Lisa_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_ElementalBurst_Hit", + "abilityName": "Avatar_Lisa_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_ElementalBurst_BS", + "abilityName": "Avatar_Lisa_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_Spine_Loop", + "abilityName": "Avatar_Lisa_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_VO_Emotion_Lisa_Strange_01", + "abilityName": "Avatar_Lisa_VO_Emotion_Lisa_Strange_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_VO_Emotion_Lisa_Wu_03", + "abilityName": "Avatar_Lisa_VO_Emotion_Lisa_Wu_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Lisa_VO_Emotion_Lisa_Deny_01", + "abilityName": "Avatar_Lisa_VO_Emotion_Lisa_Deny_01", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Liuyun.json b/data/json/avatar/ConfigAvatar_Liuyun.json new file mode 100644 index 0000000..aeeff60 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Liuyun.json @@ -0,0 +1,129 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Liuyun_ExtraAttack", + "abilityName": "Avatar_Liuyun_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_ExtraAttack_Bullet", + "abilityName": "Avatar_Liuyun_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_Attack01", + "abilityName": "Avatar_Liuyun_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_NormalAttack_Bullet_01", + "abilityName": "Avatar_Liuyun_NormalAttack_Bullet_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_Attack02", + "abilityName": "Avatar_Liuyun_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_NormalAttack_Bullet_02", + "abilityName": "Avatar_Liuyun_NormalAttack_Bullet_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_Attack03", + "abilityName": "Avatar_Liuyun_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_NormalAttack_Bullet_03", + "abilityName": "Avatar_Liuyun_NormalAttack_Bullet_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_Attack04", + "abilityName": "Avatar_Liuyun_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_NormalAttack_Bullet_04", + "abilityName": "Avatar_Liuyun_NormalAttack_Bullet_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_ElementalArt", + "abilityName": "Avatar_Liuyun_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_ElementalArt_CameraControl", + "abilityName": "Avatar_Liuyun_ElementalArt_CameraControl", + "abilityOverride": "" + }, + { + "abilityID": "Liuyun_ElementalArt_Move_Collider", + "abilityName": "Liuyun_ElementalArt_Move_Collider", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_ElementalArt_ExtraFallingAttack", + "abilityName": "Avatar_Liuyun_ElementalArt_ExtraFallingAttack", + "abilityOverride": "" + }, + { + "abilityID": "Liuyun_ElementalArt_Crane_Collider", + "abilityName": "Liuyun_ElementalArt_Crane_Collider", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_ElementBurst", + "abilityName": "Avatar_Liuyun_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_ElementBurst_Drone", + "abilityName": "Avatar_Liuyun_ElementBurst_Drone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_ElementBurst_HealHandler", + "abilityName": "Avatar_Liuyun_ElementBurst_HealHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_FallingAnthem", + "abilityName": "Avatar_Liuyun_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_PermanentSkill_1", + "abilityName": "Avatar_Liuyun_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Liuyun_ElementalArt_WindHole", + "abilityName": "Liuyun_ElementalArt_WindHole", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_Constellation_2", + "abilityName": "Avatar_Liuyun_Constellation_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_Constellation_4", + "abilityName": "Avatar_Liuyun_Constellation_4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_Constellation_6", + "abilityName": "Avatar_Liuyun_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Liuyun_PermanentSkill_3", + "abilityName": "Avatar_Liuyun_PermanentSkill_3", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Mika.json b/data/json/avatar/ConfigAvatar_Mika.json new file mode 100644 index 0000000..7c2b399 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Mika.json @@ -0,0 +1,254 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Mika_ExtraAttack", + "abilityName": "Avatar_Mika_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Mika_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ExtraAttack_Bullet", + "abilityName": "Avatar_Mika_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt", + "abilityName": "Avatar_Mika_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt_Buff_Controller", + "abilityName": "Avatar_Mika_ElementalArt_Buff_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up", + "abilityName": "Avatar_Mika_Attack_Speed_Up", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt_Buff_Team_Ratio", + "abilityName": "Avatar_Mika_ElementalArt_Buff_Team_Ratio", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_Controller", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt_Buff_Mark", + "abilityName": "Avatar_Mika_ElementalArt_Buff_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_C6_Sub_LocalAvatar", + "abilityName": "Avatar_Mika_C6_Sub_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_1", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_2", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_3", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_4", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_5", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_5", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_P2_Mark", + "abilityName": "Avatar_Mika_P2_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Buff_Eff_Trigger_Mode", + "abilityName": "Avatar_Mika_Buff_Eff_Trigger_Mode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Sub_Buff_GV_AddOne", + "abilityName": "Avatar_Mika_Sub_Buff_GV_AddOne", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_1_LocalAvatar", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_1_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_2_LocalAvatar", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_2_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_3_LocalAvatar", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_3_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_4_LocalAvatar", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_4_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_Speed_Up_Sub_5_LocalAvatar", + "abilityName": "Avatar_Mika_Attack_Speed_Up_Sub_5_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_C6_Sub_1_LocalAvatar", + "abilityName": "Avatar_Mika_C6_Sub_1_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_C6_Sub_2_LocalAvatar", + "abilityName": "Avatar_Mika_C6_Sub_2_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_C6_Sub_3_LocalAvatar", + "abilityName": "Avatar_Mika_C6_Sub_3_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_C6_Sub_4_LocalAvatar", + "abilityName": "Avatar_Mika_C6_Sub_4_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_C6_Sub_5_LocalAvatar", + "abilityName": "Avatar_Mika_C6_Sub_5_LocalAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Sub_Buff_Trigger_Eff_Mode_1", + "abilityName": "Avatar_Mika_Sub_Buff_Trigger_Eff_Mode_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Buff_Eff_Trigger_Mode_In_1", + "abilityName": "Avatar_Mika_Buff_Eff_Trigger_Mode_In_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Buff_Eff_Trigger_Mode_In_2", + "abilityName": "Avatar_Mika_Buff_Eff_Trigger_Mode_In_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Sub_Buff_Trigger_Eff", + "abilityName": "Avatar_Mika_Sub_Buff_Trigger_Eff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Sub_Buff_Trigger_Eff_Mode_2", + "abilityName": "Avatar_Mika_Sub_Buff_Trigger_Eff_Mode_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt_NoChargeShoot", + "abilityName": "Avatar_Mika_ElementalArt_NoChargeShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt_Buff_Controller_", + "abilityName": "Avatar_Mika_ElementalArt_Buff_Controller_", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt_Sub_Bullet_Launch", + "abilityName": "Avatar_Mika_ElementalArt_Sub_Bullet_Launch", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementalArt_ChargeShoot", + "abilityName": "Avatar_Mika_ElementalArt_ChargeShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Aim_Mixin", + "abilityName": "Avatar_Mika_Aim_Mixin", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_RayCast_CloseFx", + "abilityName": "Avatar_Mika_RayCast_CloseFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_EArt_Has_Target_Mark", + "abilityName": "Avatar_Mika_EArt_Has_Target_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_ElementBurst", + "abilityName": "Avatar_Mika_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_C4_Stack", + "abilityName": "Avatar_Mika_C4_Stack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Burst_Energy_Revive", + "abilityName": "Avatar_Mika_Burst_Energy_Revive", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_FallingAnthem", + "abilityName": "Avatar_Mika_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Attack_DamageHandler", + "abilityName": "Avatar_Mika_Attack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_Radar_Collectables_Mengde", + "abilityName": "Avatar_Mika_Radar_Collectables_Mengde", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika", + "abilityName": "Avatar_Mika", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_TeamConfig_01BS", + "abilityName": "Avatar_Mika_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_TeamConfig_01Loop", + "abilityName": "Avatar_Mika_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mika_TeamConfig_01AS", + "abilityName": "Avatar_Mika_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Momoka.json b/data/json/avatar/ConfigAvatar_Momoka.json new file mode 100644 index 0000000..0d80fc3 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Momoka.json @@ -0,0 +1,134 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Momoka_ExtraAttack", + "abilityName": "Avatar_Momoka_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalArt_Check", + "abilityName": "Avatar_Momoka_ElementalArt_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalArt_Click", + "abilityName": "Avatar_Momoka_ElementalArt_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalArt_DropBall_Handler", + "abilityName": "Avatar_Momoka_ElementalArt_DropBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_AddShieldMode", + "abilityName": "Avatar_Momoka_AddShieldMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalArt_Hold", + "abilityName": "Avatar_Momoka_ElementalArt_Hold", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalArt_Inactive_Detect", + "abilityName": "Avatar_Momoka_ElementalArt_Inactive_Detect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalArt_onReconnect", + "abilityName": "Avatar_Momoka_ElementalArt_onReconnect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_HasTeamShield", + "abilityName": "Avatar_Momoka_HasTeamShield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_Constellation_AddAttack", + "abilityName": "Avatar_Momoka_Constellation_AddAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalArt_Charge_Strike", + "abilityName": "Avatar_Momoka_ElementalArt_Charge_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalBurst", + "abilityName": "Avatar_Momoka_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_ElementalBurst_ExpressDamage", + "abilityName": "Avatar_Momoka_ElementalBurst_ExpressDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_NormalAttack_DamageHandler", + "abilityName": "Avatar_Momoka_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_FallingAnthem", + "abilityName": "Avatar_Momoka_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_PermanentSkill_2", + "abilityName": "Avatar_Momoka_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_PermanentSkill_2_Handler", + "abilityName": "Avatar_Momoka_PermanentSkill_2_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_Constellation_6", + "abilityName": "Avatar_Momoka_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_Constellation_6_ElemDamageUp_Effect", + "abilityName": "Avatar_Momoka_Constellation_6_ElemDamageUp_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_Constellation_AddAttack_CDHandler", + "abilityName": "Avatar_Momoka_Constellation_AddAttack_CDHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_Constellation_AddAttack_Effect", + "abilityName": "Avatar_Momoka_Constellation_AddAttack_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_PermanentSkill_3", + "abilityName": "Avatar_Momoka_PermanentSkill_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka", + "abilityName": "Avatar_Momoka", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_TeamConfig_01BS", + "abilityName": "Avatar_Momoka_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_TeamConfig_01Loop", + "abilityName": "Avatar_Momoka_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Momoka_TeamConfig_01AS", + "abilityName": "Avatar_Momoka_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Mona.json b/data/json/avatar/ConfigAvatar_Mona.json new file mode 100644 index 0000000..bc1c3ec --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Mona.json @@ -0,0 +1,169 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Mona_Liquid_TriggerAbility", + "abilityName": "Avatar_Mona_Liquid_TriggerAbility", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_LiquidStrike", + "abilityName": "Avatar_Mona_LiquidStrike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_EndLiquidStrike", + "abilityName": "Avatar_Mona_EndLiquidStrike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_ExtraAttack", + "abilityName": "Avatar_Mona_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_ExtraAttack_FX", + "abilityName": "Avatar_Mona_ExtraAttack_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_ExtraAttack_Damage", + "abilityName": "Avatar_Mona_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_NormalAttack_01", + "abilityName": "Avatar_Mona_NormalAttack_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_NormalAttack_02", + "abilityName": "Avatar_Mona_NormalAttack_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_NormalAttack_03_BS", + "abilityName": "Avatar_Mona_NormalAttack_03_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_NormalAttack_03_Blink", + "abilityName": "Avatar_Mona_NormalAttack_03_Blink", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_NormalAttack_03", + "abilityName": "Avatar_Mona_NormalAttack_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_NormalAttack_04", + "abilityName": "Avatar_Mona_NormalAttack_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_NormalAttack_04_Hit", + "abilityName": "Avatar_Mona_NormalAttack_04_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_Phantom_BS", + "abilityName": "Avatar_Mona_Phantom_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_Phantom_Blink_BS", + "abilityName": "Avatar_Mona_Phantom_Blink_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_Phantom", + "abilityName": "Avatar_Mona_Phantom", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_Phantom_Blink", + "abilityName": "Avatar_Mona_Phantom_Blink", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_Phantom_Blink_SetVisible", + "abilityName": "Avatar_Mona_Phantom_Blink_SetVisible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_MonaGadgetSkill_Phantom", + "abilityName": "Avatar_MonaGadgetSkill_Phantom", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_MonaGadgetSkill_PhantomLastAttack", + "abilityName": "Avatar_MonaGadgetSkill_PhantomLastAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_StarChart_Camera", + "abilityName": "Avatar_Mona_StarChart_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_StarChart", + "abilityName": "Avatar_Mona_StarChart", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_FallingAnthem", + "abilityName": "Avatar_Mona_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona", + "abilityName": "Avatar_Mona", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_TeamConfig_01BS", + "abilityName": "Avatar_Mona_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_TeamConfig_01Loop", + "abilityName": "Avatar_Mona_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_TeamConfig_01AS", + "abilityName": "Avatar_Mona_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_elementalBurst_BS_Normal", + "abilityName": "Avatar_Mona_elementalBurst_BS_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_ElementalBurst_Spine", + "abilityName": "Avatar_Mona_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_ElementalBurst_Hit", + "abilityName": "Avatar_Mona_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_ElementalBurst_BS", + "abilityName": "Avatar_Mona_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_Spine_Loop", + "abilityName": "Avatar_Mona_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Mona_StarChart1AS_Mona_StarChart_RemovedDamage_HurtUp_DamageRate", + "abilityName": "Avatar_Mona_StarChart1AS_Mona_StarChart_RemovedDamage_HurtUp_DamageRate", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Mualani.json b/data/json/avatar/ConfigAvatar_Mualani.json new file mode 100644 index 0000000..c2e0708 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Mualani.json @@ -0,0 +1,94 @@ +{ + "abilities": [ + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ExtraAttack_Launch", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_Gadgets_Misc_Handler", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_NyxSwitch", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ElementalArt_Launch", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ElementalArt_Combat", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ElementalArt_Surfing", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ElementalArt_Surfing_Dash", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ElementalArt_Exit", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ElementalArt_ArcLight", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_Surfing_Attack_SelectTarget", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_Surfing_AddSurfingCount", + "abilityOverride": "" + }, + { + "abilityID": "", + "abilityName": "Avatar_Mualani_Surfing_DropFugu", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Nahida.json b/data/json/avatar/ConfigAvatar_Nahida.json new file mode 100644 index 0000000..152598a --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Nahida.json @@ -0,0 +1,454 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Nahida_ExtraAttack", + "abilityName": "Avatar_Nahida_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_BS_Check", + "abilityName": "Avatar_Nahida_ExtraAttack_BS_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_Damage", + "abilityName": "Avatar_Nahida_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_Hand_FX", + "abilityName": "Avatar_Nahida_ExtraAttack_Hand_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_Block_FXy", + "abilityName": "Avatar_Nahida_ExtraAttack_Block_FXy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_Initialize", + "abilityName": "Avatar_Nahida_ExtraAttack_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_Block_FX", + "abilityName": "Avatar_Nahida_ExtraAttack_Block_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_Gadget", + "abilityName": "Avatar_Nahida_ExtraAttack_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ExtraAttack_Delay_Damage", + "abilityName": "Avatar_Nahida_ExtraAttack_Delay_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Attack01", + "abilityName": "Avatar_Nahida_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Block_Die_01", + "abilityName": "Avatar_Nahida_Block_Die_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Attack02", + "abilityName": "Avatar_Nahida_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Block_Die_02D", + "abilityName": "Avatar_Nahida_Block_Die_02D", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Block_Die_02", + "abilityName": "Avatar_Nahida_Block_Die_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Attack03", + "abilityName": "Avatar_Nahida_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Block_Die_03", + "abilityName": "Avatar_Nahida_Block_Die_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Attack04", + "abilityName": "Avatar_Nahida_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt", + "abilityName": "Avatar_Nahida_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_HairEmission", + "abilityName": "Avatar_Nahida_ElementalArt_HairEmission", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_HairEmission_Remover", + "abilityName": "Avatar_Nahida_ElementalArt_HairEmission_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_Tag_Handler", + "abilityName": "Avatar_Nahida_ElementalArt_Tag_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayTag_OnMonster", + "abilityName": "Avatar_Nahida_RayTag_OnMonster", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_Tag_ClearTimer", + "abilityName": "Avatar_Nahida_ElementalArt_Tag_ClearTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_ChainCD_Handler", + "abilityName": "Avatar_Nahida_ElementalArt_ChainCD_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_DropBall_Handler", + "abilityName": "Avatar_Nahida_ElementalArt_DropBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_DropBall", + "abilityName": "Avatar_Nahida_ElementalArt_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_Click", + "abilityName": "Avatar_Nahida_ElementalArt_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_Click_Strike", + "abilityName": "Avatar_Nahida_ElementalArt_Click_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_Click_Effect", + "abilityName": "Avatar_Nahida_ElementalArt_Click_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_RayCast", + "abilityName": "Avatar_Nahida_ElementalArt_RayCast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_Trigger", + "abilityName": "Avatar_Nahida_RayCast_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_CloseFx", + "abilityName": "Avatar_Nahida_RayCast_CloseFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_Handler", + "abilityName": "Avatar_Nahida_RayCast_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_Camera_Fx", + "abilityName": "Avatar_Nahida_RayCast_Camera_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_HitBoxOffset", + "abilityName": "Avatar_Nahida_RayCast_HitBoxOffset", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_Bomb_OnMonster_Fx", + "abilityName": "Avatar_Nahida_RayCast_Bomb_OnMonster_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_Bomb_OnMonster_Damage", + "abilityName": "Avatar_Nahida_RayCast_Bomb_OnMonster_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalArt_ScreenEffect", + "abilityName": "Avatar_Nahida_ElementalArt_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Reconnect_Handler", + "abilityName": "Avatar_Nahida_Reconnect_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_Camera_Fx_OnTeam", + "abilityName": "Avatar_Nahida_RayCast_Camera_Fx_OnTeam", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst", + "abilityName": "Avatar_Nahida_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Initialize", + "abilityName": "Avatar_Nahida_ElementalBurst_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Nahida_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Camera_Effect", + "abilityName": "Avatar_Nahida_ElementalBurst_Camera_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Nahida_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Camera_PushTarget333", + "abilityName": "Avatar_Nahida_ElementalBurst_Camera_PushTarget333", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Invincible", + "abilityName": "Avatar_Nahida_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_WeatherChange", + "abilityName": "Avatar_Nahida_ElementalBurst_WeatherChange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_CreateHollow", + "abilityName": "Avatar_Nahida_ElementalBurst_CreateHollow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Camera_DungeonEffect", + "abilityName": "Avatar_Nahida_ElementalBurst_Camera_DungeonEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Camera_PushTarget", + "abilityName": "Avatar_Nahida_ElementalBurst_Camera_PushTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_CheckAvatarElement", + "abilityName": "Avatar_Nahida_ElementalBurst_CheckAvatarElement", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_GVinitialize", + "abilityName": "Avatar_Nahida_ElementalBurst_GVinitialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Hollow_Gadget", + "abilityName": "Avatar_Nahida_ElementalBurst_Hollow_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Hollow_TeamFormula", + "abilityName": "Avatar_Nahida_ElementalBurst_Hollow_TeamFormula", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Hollow_Fx", + "abilityName": "Avatar_Nahida_ElementalBurst_Hollow_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Hollow_LifeTimer", + "abilityName": "Avatar_Nahida_ElementalBurst_Hollow_LifeTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_CheckInHollowh", + "abilityName": "Avatar_Nahida_ElementalBurst_CheckInHollowh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_CheckInHollow", + "abilityName": "Avatar_Nahida_ElementalBurst_CheckInHollow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Hollow_InDistance_Keeper5UNIQUE_Nahida_ElementalBurst_Hollow_InDistance_OnTeam", + "abilityName": "Avatar_Nahida_ElementalBurst_Hollow_InDistance_Keeper5UNIQUE_Nahida_ElementalBurst_Hollow_InDistance_OnTeam", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Hollow_InDistance_Keeper", + "abilityName": "Avatar_Nahida_ElementalBurst_Hollow_InDistance_Keeper", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_HairEmission", + "abilityName": "Avatar_Nahida_ElementalBurst_HairEmission", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_FallingAnthem", + "abilityName": "Avatar_Nahida_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_PermanentSkill_1", + "abilityName": "Avatar_Nahida_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_PermanentSkill_2", + "abilityName": "Avatar_Nahida_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_PermanentSkill_EnhanceChainDamage", + "abilityName": "Avatar_Nahida_PermanentSkill_EnhanceChainDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Constellation_6", + "abilityName": "Avatar_Nahida_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Constellation_6_AttackState", + "abilityName": "Avatar_Nahida_Constellation_6_AttackState", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Constellation_6_Trigger", + "abilityName": "Avatar_Nahida_Constellation_6_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Constellation_6_Fx", + "abilityName": "Avatar_Nahida_Constellation_6_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Constellation_6_Timer", + "abilityName": "Avatar_Nahida_Constellation_6_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Constellation_6_ReduceNum", + "abilityName": "Avatar_Nahida_Constellation_6_ReduceNum", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_RayCast_Quest_Gadget_Call", + "abilityName": "Avatar_Nahida_RayCast_Quest_Gadget_Call", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida", + "abilityName": "Avatar_Nahida", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Skill_ElementalArt_BS", + "abilityName": "Avatar_Nahida_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Skill_ElementalArt_Click", + "abilityName": "Avatar_Nahida_Skill_ElementalArt_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Skill_ElementalArt_Click_AS", + "abilityName": "Avatar_Nahida_Skill_ElementalArt_Click_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Skill_ElementalArt_Move", + "abilityName": "Avatar_Nahida_Skill_ElementalArt_Move", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Skill_ElementalArt_Loop", + "abilityName": "Avatar_Nahida_Skill_ElementalArt_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Skill_ElementalArt_Hold", + "abilityName": "Avatar_Nahida_Skill_ElementalArt_Hold", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Skill_ElementalArt_Hold_AS", + "abilityName": "Avatar_Nahida_Skill_ElementalArt_Hold_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_TeamConfig_01BS", + "abilityName": "Avatar_Nahida_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_TeamConfig_01Loop", + "abilityName": "Avatar_Nahida_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_TeamConfig_01AS", + "abilityName": "Avatar_Nahida_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Spine", + "abilityName": "Avatar_Nahida_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_BS", + "abilityName": "Avatar_Nahida_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementalBurst_Hit", + "abilityName": "Avatar_Nahida_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_ElementArt_Buff", + "abilityName": "Avatar_Nahida_ElementArt_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Spine_Loop", + "abilityName": "Avatar_Nahida_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nahida_Spine", + "abilityName": "Avatar_Nahida_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Navia.json b/data/json/avatar/ConfigAvatar_Navia.json new file mode 100644 index 0000000..242001e --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Navia.json @@ -0,0 +1,94 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Navia_ExtraAttack", + "abilityName": "Avatar_Navia_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_Attack_3_Create_Gadget", + "abilityName": "Avatar_Navia_Attack_3_Create_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Navia_NormalAttack_3_Claymore", + "abilityName": "Navia_NormalAttack_3_Claymore", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_WeaponHide_Driver", + "abilityName": "Avatar_Navia_WeaponHide_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_Crystal_Seed_Get_Controller", + "abilityName": "Avatar_Navia_Crystal_Seed_Get_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_ElementalArt", + "abilityName": "Avatar_Navia_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_ElementalArt_Pneuma", + "abilityName": "Avatar_Navia_ElementalArt_Pneuma", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_ElementalArt_ShotGun_Bullet", + "abilityName": "Avatar_Navia_ElementalArt_ShotGun_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_ElementalBurst", + "abilityName": "Avatar_Navia_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Navia_Burst_Bullet_Upon", + "abilityName": "Navia_Burst_Bullet_Upon", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_NormalAttackDamage", + "abilityName": "Avatar_Navia_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Navia_PermanentSkill_2_Driver", + "abilityName": "Navia_PermanentSkill_2_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_PermanentSkill_1", + "abilityName": "Avatar_Navia_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Navia_Talent_1_Driver", + "abilityName": "Navia_Talent_1_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Navia_Talent_2_Driver", + "abilityName": "Navia_Talent_2_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Navia_Talent_4_Driver", + "abilityName": "Navia_Talent_4_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_FallingAnthem", + "abilityName": "Avatar_Navia_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Navia_Show_WindZone", + "abilityName": "Avatar_Navia_Show_WindZone", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Neuvillette.json b/data/json/avatar/ConfigAvatar_Neuvillette.json new file mode 100644 index 0000000..4955378 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Neuvillette.json @@ -0,0 +1,504 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Neuvillette_Attack01", + "abilityName": "Avatar_Neuvillette_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Attack02", + "abilityName": "Avatar_Neuvillette_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Attack03", + "abilityName": "Avatar_Neuvillette_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Stick_Handler", + "abilityName": "Avatar_Neuvillette_Stick_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_StickRemover", + "abilityName": "Avatar_Neuvillette_ExtraAttack_StickRemover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack", + "abilityName": "Avatar_Neuvillette_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Levitate", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Levitate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Levitate_HitBoxOffset", + "abilityName": "Avatar_Neuvillette_Levitate_HitBoxOffset", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_CountFx", + "abilityName": "Avatar_Neuvillette_ExtraAttack_CountFx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Absorb", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Absorb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Attack", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Attack_StateMark", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Attack_StateMark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Attack_UnreadyF", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Attack_UnreadyF", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Charge_Handler", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Charge_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Trans_CameraShake", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Trans_CameraShake", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Wing_FxFadeR", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Wing_FxFadeR", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Wing_FxFade", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Wing_FxFade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_ScreenEffect", + "abilityName": "Avatar_Neuvillette_ExtraAttack_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_WeatherChange", + "abilityName": "Avatar_Neuvillette_ElementalBurst_WeatherChange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Attack_Unready", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Attack_Unready", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Core_Handler", + "abilityName": "Avatar_Neuvillette_Core_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_AddCore", + "abilityName": "Avatar_Neuvillette_AddCore", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_CostCore", + "abilityName": "Avatar_Neuvillette_CostCore", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_AddCore_DelayTimer", + "abilityName": "Avatar_Neuvillette_AddCore_DelayTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_AddCore_DelayTimer7", + "abilityName": "Avatar_Neuvillette_AddCore_DelayTimer7", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_FullAttack_Delay", + "abilityName": "Avatar_Neuvillette_FullAttack_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Absorb_Gadget", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Absorb_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Core_GadgetJ", + "abilityName": "Avatar_Neuvillette_Core_GadgetJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Attack_Gadget", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Attack_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Camera_Shake", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Camera_Shake", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_StateCheck", + "abilityName": "Avatar_Neuvillette_ExtraAttack_StateCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Wing_FxFadeM", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Wing_FxFadeM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_LoseHp", + "abilityName": "Avatar_Neuvillette_ExtraAttack_LoseHp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_Buff_Handler", + "abilityName": "Avatar_Neuvillette_ExtraAttack_Buff_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_StateCheckM", + "abilityName": "Avatar_Neuvillette_ExtraAttack_StateCheckM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Core_Gadget", + "abilityName": "Avatar_Neuvillette_Core_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Core_Gadget_Eff", + "abilityName": "Avatar_Neuvillette_Core_Gadget_Eff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Core_Fx", + "abilityName": "Avatar_Neuvillette_Core_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Core_Bullet", + "abilityName": "Avatar_Neuvillette_Core_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt", + "abilityName": "Avatar_Neuvillette_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt_DropCore_Handler", + "abilityName": "Avatar_Neuvillette_ElementalArt_DropCore_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt_DropCore", + "abilityName": "Avatar_Neuvillette_ElementalArt_DropCore", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt_DropBall", + "abilityName": "Avatar_Neuvillette_ElementalArt_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt_Camera", + "abilityName": "Avatar_Neuvillette_ElementalArt_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt_Arkhe_Handler", + "abilityName": "Avatar_Neuvillette_ElementalArt_Arkhe_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt_Arkhe_CDTimer", + "abilityName": "Avatar_Neuvillette_ElementalArt_Arkhe_CDTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalArt_Arkhe_DelayStrike", + "abilityName": "Avatar_Neuvillette_ElementalArt_Arkhe_DelayStrike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst", + "abilityName": "Avatar_Neuvillette_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Initialize", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Neuvillette_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Camera_Fx", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Camera_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_CameraShakeB", + "abilityName": "Avatar_Neuvillette_ElementalBurst_CameraShakeB", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_ExitCamera", + "abilityName": "Avatar_Neuvillette_ElementalBurst_ExitCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Camera_PushTarget333", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Camera_PushTarget333", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Invincible", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Camera_FogEffect", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Camera_FogEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Neuvillette_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Camera_PushTarget", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Camera_PushTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_CameraShake", + "abilityName": "Avatar_Neuvillette_ElementalBurst_CameraShake", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Strike_Once", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Strike_Once", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Strike_Twice", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Strike_Twice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_Strike_Thrice", + "abilityName": "Avatar_Neuvillette_ElementalBurst_Strike_Thrice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ElementalBurst_WeatherChange6UNIQUE_Avatar_Neuvillette_ElementalBurst_WeatherChange", + "abilityName": "Avatar_Neuvillette_ElementalBurst_WeatherChange6UNIQUE_Avatar_Neuvillette_ElementalBurst_WeatherChange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_FallingAnthem", + "abilityName": "Avatar_Neuvillette_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_1", + "abilityName": "Avatar_Neuvillette_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_1_BuffHandler", + "abilityName": "Avatar_Neuvillette_PermanentSkill_1_BuffHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_1_Handler", + "abilityName": "Avatar_Neuvillette_PermanentSkill_1_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_CheckWaterReaction_OnAvatar", + "abilityName": "Avatar_Neuvillette_CheckWaterReaction_OnAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Streamc", + "abilityName": "Avatar_Neuvillette_ReactionType_Streamc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Overgrowc", + "abilityName": "Avatar_Neuvillette_ReactionType_Overgrowc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Freezec", + "abilityName": "Avatar_Neuvillette_ReactionType_Freezec", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Shockc", + "abilityName": "Avatar_Neuvillette_ReactionType_Shockc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_SwirlWaterc", + "abilityName": "Avatar_Neuvillette_ReactionType_SwirlWaterc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_CrystallizeWater", + "abilityName": "Avatar_Neuvillette_ReactionType_CrystallizeWater", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Stream", + "abilityName": "Avatar_Neuvillette_ReactionType_Stream", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Overgrow", + "abilityName": "Avatar_Neuvillette_ReactionType_Overgrow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Freeze", + "abilityName": "Avatar_Neuvillette_ReactionType_Freeze", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_Shock", + "abilityName": "Avatar_Neuvillette_ReactionType_Shock", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ReactionType_SwirlWater", + "abilityName": "Avatar_Neuvillette_ReactionType_SwirlWater", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_Lv1", + "abilityName": "Avatar_Neuvillette_PermanentSkill_Lv1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_Lv2", + "abilityName": "Avatar_Neuvillette_PermanentSkill_Lv2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_Lv3", + "abilityName": "Avatar_Neuvillette_PermanentSkill_Lv3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_2", + "abilityName": "Avatar_Neuvillette_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_2_Handler", + "abilityName": "Avatar_Neuvillette_PermanentSkill_2_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_2_CalculatorM", + "abilityName": "Avatar_Neuvillette_PermanentSkill_2_CalculatorM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_2_Buff", + "abilityName": "Avatar_Neuvillette_PermanentSkill_2_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_PermanentSkill_2_Calculator", + "abilityName": "Avatar_Neuvillette_PermanentSkill_2_Calculator", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Constellation_6", + "abilityName": "Avatar_Neuvillette_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Constellation_6_Handler", + "abilityName": "Avatar_Neuvillette_Constellation_6_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Constellation_6_Attack", + "abilityName": "Avatar_Neuvillette_Constellation_6_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Constellation_6_Absorb", + "abilityName": "Avatar_Neuvillette_Constellation_6_Absorb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Core_HandlerD", + "abilityName": "Avatar_Neuvillette_Core_HandlerD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Constellation_6_CDTimer", + "abilityName": "Avatar_Neuvillette_Constellation_6_CDTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_Constellation_6_Bullet", + "abilityName": "Avatar_Neuvillette_Constellation_6_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_DiveDashSpeedUp", + "abilityName": "Avatar_Neuvillette_DiveDashSpeedUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette", + "abilityName": "Avatar_Neuvillette", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Neuvillette_Stick", + "abilityName": "AvatarItem_Neuvillette_Stick", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Neuvillette_Stick_Nolight", + "abilityName": "AvatarItem_Neuvillette_Stick_Nolight", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Neuvillette_ExtraAttack_HitOnEnemy", + "abilityName": "Avatar_Neuvillette_ExtraAttack_HitOnEnemy", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Nilou.json b/data/json/avatar/ConfigAvatar_Nilou.json new file mode 100644 index 0000000..ad7e1a1 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Nilou.json @@ -0,0 +1,264 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Nilou_ExtraAttack", + "abilityName": "Avatar_Nilou_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Attack_01_Spec", + "abilityName": "Avatar_Nilou_Attack_01_Spec", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Recombo_Mark", + "abilityName": "Avatar_Nilou_Recombo_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Attack_02_Spec", + "abilityName": "Avatar_Nilou_Attack_02_Spec", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalDance", + "abilityName": "Avatar_Nilou_ElementalDance", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_In_NormalAttack_Mark", + "abilityName": "Avatar_Nilou_In_NormalAttack_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_NilouAllCount_1", + "abilityName": "Avatar_NilouAllCount_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_NilouAllCount_2", + "abilityName": "Avatar_NilouAllCount_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Change_ECount_To_4", + "abilityName": "Avatar_Nilou_Change_ECount_To_4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Combo_Complete_Mark", + "abilityName": "Avatar_Nilou_Combo_Complete_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Keep_Attack_Combo_Handler", + "abilityName": "Avatar_Nilou_Keep_Attack_Combo_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Elemental_Art_ElemBall_Handler", + "abilityName": "Avatar_Nilou_Elemental_Art_ElemBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Keep_Attack_Combo_Handler_", + "abilityName": "Avatar_Nilou_Keep_Attack_Combo_Handler_", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalDanceFake", + "abilityName": "Avatar_Nilou_ElementalDanceFake", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spec_Attack_Count_Add1", + "abilityName": "Avatar_Nilou_Spec_Attack_Count_Add1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spec_E_2", + "abilityName": "Avatar_Nilou_Spec_E_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spec_E_3", + "abilityName": "Avatar_Nilou_Spec_E_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spec_Attack_Over", + "abilityName": "Avatar_Nilou_Spec_Attack_Over", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_AOver_Dance_Buff", + "abilityName": "Avatar_Nilou_AOver_Dance_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_AOver_Dance_Buff_Driver", + "abilityName": "Avatar_Nilou_AOver_Dance_Buff_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalArt_Buff_Controller", + "abilityName": "Avatar_Nilou_ElementalArt_Buff_Controller", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spec_EArt_Over", + "abilityName": "Avatar_Nilou_Spec_EArt_Over", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalArt_Buff_ControllerM", + "abilityName": "Avatar_Nilou_ElementalArt_Buff_ControllerM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_ElementalArt_Buff_Nilou", + "abilityName": "Avatar_ElementalArt_Buff_Nilou", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_ElementalArt_Buff_Nilou_Driver", + "abilityName": "Avatar_ElementalArt_Buff_Nilou_Driver", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Resistance_Reduce_Avatar", + "abilityName": "Avatar_Nilou_Resistance_Reduce_Avatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Overgrow_Damage_Up", + "abilityName": "Avatar_Nilou_Overgrow_Damage_Up", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Max_HP_Refresh", + "abilityName": "Avatar_Nilou_Max_HP_Refresh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_SpecE_Energy_Revive", + "abilityName": "Avatar_Nilou_SpecE_Energy_Revive", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Water_Bubble_Bullet", + "abilityName": "Avatar_Nilou_Water_Bubble_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Recombo_Mark_Bullet", + "abilityName": "Avatar_Nilou_Recombo_Mark_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalBurst_Camera", + "abilityName": "Avatar_Nilou_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Nilou_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Burst_Attacker", + "abilityName": "Avatar_Nilou_Burst_Attacker", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Burst_Delay_Attacker", + "abilityName": "Avatar_Nilou_Burst_Delay_Attacker", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_NormalAttack_DamageHandler", + "abilityName": "Avatar_Nilou_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_MaxHP_Trans_Crit", + "abilityName": "Avatar_Nilou_MaxHP_Trans_Crit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_FallingAnthem", + "abilityName": "Avatar_Nilou_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_QuestAbility_NilouFullMP", + "abilityName": "Avatar_QuestAbility_NilouFullMP", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_NilouFullMP", + "abilityName": "Avatar_NilouFullMP", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou", + "abilityName": "Avatar_Nilou", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_TeamConfig_01BS", + "abilityName": "Avatar_Nilou_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_TeamConfig_01Loop", + "abilityName": "Avatar_Nilou_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_TeamConfig_01AS", + "abilityName": "Avatar_Nilou_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Nilou_HushangWreaths", + "abilityName": "AvatarItem_Nilou_HushangWreaths", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalBurst_Spine", + "abilityName": "Avatar_Nilou_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalBurst_BS", + "abilityName": "Avatar_Nilou_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalBurst_Hit", + "abilityName": "Avatar_Nilou_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_ElementalBurst_Buff", + "abilityName": "Avatar_Nilou_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spine_Loop", + "abilityName": "Avatar_Nilou_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spine_Loop_Floor", + "abilityName": "Avatar_Nilou_Spine_Loop_Floor", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Nilou_Spine", + "abilityName": "Avatar_Nilou_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Ningguang.json b/data/json/avatar/ConfigAvatar_Ningguang.json new file mode 100644 index 0000000..7ce965f --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Ningguang.json @@ -0,0 +1,289 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Ningguang_Roulette", + "abilityName": "Avatar_Ningguang_Roulette", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ExtraAttack", + "abilityName": "Avatar_Ningguang_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ExtraAttack_Fx", + "abilityName": "Avatar_Ningguang_ExtraAttack_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ExtraAttack_BulletTrigger", + "abilityName": "Avatar_Ningguang_ExtraAttack_BulletTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Constellation_Attack_Up_BulletTrigger", + "abilityName": "Avatar_Ningguang_Constellation_Attack_Up_BulletTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ExtraAttack_GemBullet_Handler", + "abilityName": "Avatar_Ningguang_ExtraAttack_GemBullet_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ExtraAttack_Damage", + "abilityName": "Avatar_Ningguang_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_NormalAttack_Dummy", + "abilityName": "Avatar_Ningguang_NormalAttack_Dummy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_NormalAttackDamage", + "abilityName": "Avatar_Ningguang_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_NormalAttack_LifeOver_Fx", + "abilityName": "Avatar_Ningguang_NormalAttack_LifeOver_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Elemental_Burst_LifeOver_Orange", + "abilityName": "Avatar_Ningguang_Elemental_Burst_LifeOver_Orange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Elemental_Burst_LifeOver_Red", + "abilityName": "Avatar_Ningguang_Elemental_Burst_LifeOver_Red", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Elemental_Burst_LifeOver_Yellow", + "abilityName": "Avatar_Ningguang_Elemental_Burst_LifeOver_Yellow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Attack01", + "abilityName": "Avatar_Ningguang_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Attack02", + "abilityName": "Avatar_Ningguang_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Attack03", + "abilityName": "Avatar_Ningguang_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Attack04", + "abilityName": "Avatar_Ningguang_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ServantStone", + "abilityName": "Avatar_Ningguang_ServantStone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Charge_ServantStone", + "abilityName": "Avatar_Ningguang_Charge_ServantStone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Change_Gadget_BornState", + "abilityName": "Avatar_Ningguang_Change_Gadget_BornState", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ServantStone_Switch", + "abilityName": "Avatar_Ningguang_ServantStone_Switch", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Trigger_ElementalArt_CD", + "abilityName": "Avatar_Ningguang_Trigger_ElementalArt_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_GemStone_Impact", + "abilityName": "Avatar_Ningguang_GemStone_Impact", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_BulletTrigger", + "abilityName": "Avatar_Ningguang_ElementalBurst_BulletTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_BulletTrigger_WithOutTarget", + "abilityName": "Avatar_Ningguang_ElementalBurst_BulletTrigger_WithOutTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_ServantStoneTrigger", + "abilityName": "Avatar_Ningguang_ElementalBurst_ServantStoneTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Bullet_Hit_Fx_1", + "abilityName": "Avatar_Ningguang_ElementalBurst_Bullet_Hit_Fx_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Bullet_Hit_Fx_2", + "abilityName": "Avatar_Ningguang_ElementalBurst_Bullet_Hit_Fx_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Bullet_Hit_Fx_3", + "abilityName": "Avatar_Ningguang_ElementalBurst_Bullet_Hit_Fx_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ReviveElemEnergy", + "abilityName": "Avatar_Ningguang_ReviveElemEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Constellation_6", + "abilityName": "Avatar_Ningguang_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_PermanentSkill_2", + "abilityName": "Avatar_Ningguang_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_SkillUpgrade_3", + "abilityName": "Avatar_Ningguang_SkillUpgrade_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_GemBullet_Damage", + "abilityName": "Avatar_Ningguang_GemBullet_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_FallingAnthem", + "abilityName": "Avatar_Ningguang_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Radar_Ore", + "abilityName": "Avatar_Ningguang_Radar_Ore", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang", + "abilityName": "Avatar_Ningguang", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_NormalAttack_LifeOver_Fx0Avatar_Ningguang_Elemental_Burst_LifeOver_Orange", + "abilityName": "Avatar_Ningguang_NormalAttack_LifeOver_Fx0Avatar_Ningguang_Elemental_Burst_LifeOver_Orange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Elemental_Burst_LifeOver_Red0Avatar_Ningguang_Elemental_Burst_LifeOver_Yellow", + "abilityName": "Avatar_Ningguang_Elemental_Burst_LifeOver_Red0Avatar_Ningguang_Elemental_Burst_LifeOver_Yellow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_BulletTrigger_WithOutTarget3Avatar_Ningguang_ElementalBurst_ServantStoneTrigger", + "abilityName": "Avatar_Ningguang_ElementalBurst_BulletTrigger_WithOutTarget3Avatar_Ningguang_ElementalBurst_ServantStoneTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_TeamConfig_01BS", + "abilityName": "Avatar_Ningguang_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_TeamConfig_01Loop", + "abilityName": "Avatar_Ningguang_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_TeamConfig_01AS", + "abilityName": "Avatar_Ningguang_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Spine", + "abilityName": "Avatar_Ningguang_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_BS", + "abilityName": "Avatar_Ningguang_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Yellow", + "abilityName": "Avatar_Ningguang_ElementalBurst_Yellow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementBurst_01", + "abilityName": "Avatar_Ningguang_ElementBurst_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementBurst_04", + "abilityName": "Avatar_Ningguang_ElementBurst_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Orange", + "abilityName": "Avatar_Ningguang_ElementalBurst_Orange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementBurst_02", + "abilityName": "Avatar_Ningguang_ElementBurst_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementBurst_05", + "abilityName": "Avatar_Ningguang_ElementBurst_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Red", + "abilityName": "Avatar_Ningguang_ElementalBurst_Red", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementBurst_03", + "abilityName": "Avatar_Ningguang_ElementBurst_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementBurst_06", + "abilityName": "Avatar_Ningguang_ElementBurst_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_ElementalBurst_Hit", + "abilityName": "Avatar_Ningguang_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_elementalBurst_BS_Normal", + "abilityName": "Avatar_Ningguang_elementalBurst_BS_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Ningguang_Spine_Loop", + "abilityName": "Avatar_Ningguang_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Noel.json b/data/json/avatar/ConfigAvatar_Noel.json new file mode 100644 index 0000000..6931f06 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Noel.json @@ -0,0 +1,119 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Noel_ExtraAttack", + "abilityName": "Avatar_Noel_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_Skill_S", + "abilityName": "Avatar_Noel_Skill_S", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_Skill_E", + "abilityName": "Avatar_Noel_Skill_E", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_Skill_E_ExitCamera", + "abilityName": "Avatar_Noel_Skill_E_ExitCamera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ProudSkill_NormalAttack_DamageHandler", + "abilityName": "Avatar_Noel_ProudSkill_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ProudSkill_21", + "abilityName": "Avatar_Noel_ProudSkill_21", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ProudSkill_21_Shield", + "abilityName": "Avatar_Noel_ProudSkill_21_Shield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ProudSkill_22", + "abilityName": "Avatar_Noel_ProudSkill_22", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_FallingAnthem", + "abilityName": "Avatar_Noel_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel", + "abilityName": "Avatar_Noel", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_Skill_E_ExitCamera1Avatar_Noel_ProudSkill_NormalAttack_DamageHandler", + "abilityName": "Avatar_Noel_Skill_E_ExitCamera1Avatar_Noel_ProudSkill_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_TeamConfig_01BS", + "abilityName": "Avatar_Noel_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_TeamConfig_01Loop", + "abilityName": "Avatar_Noel_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_TeamConfig_01AS", + "abilityName": "Avatar_Noel_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ProudSkill_NormalAttack_DamageHandler1Avatar_Noel_ProudSkill_NormalAttack_DamageHandler", + "abilityName": "Avatar_Noel_ProudSkill_NormalAttack_DamageHandler1Avatar_Noel_ProudSkill_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_Spine", + "abilityName": "Avatar_Noel_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ElementalBurst_Spine", + "abilityName": "Avatar_Noel_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ElementalBurst", + "abilityName": "Avatar_Noel_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ElementalBurst_BS", + "abilityName": "Avatar_Noel_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ElementalBurst_Hit", + "abilityName": "Avatar_Noel_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ElementalBurst_Buff", + "abilityName": "Avatar_Noel_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_ElementalBurst_Buff_Hit", + "abilityName": "Avatar_Noel_ElementalBurst_Buff_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Noel_Spine_Loop", + "abilityName": "Avatar_Noel_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_PlayerBoy.json b/data/json/avatar/ConfigAvatar_PlayerBoy.json new file mode 100644 index 0000000..17cff34 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_PlayerBoy.json @@ -0,0 +1,5 @@ +{ + "abilities": [ + + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_PlayerGirl.json b/data/json/avatar/ConfigAvatar_PlayerGirl.json new file mode 100644 index 0000000..84b0647 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_PlayerGirl.json @@ -0,0 +1,3 @@ +{ + "abilities": [] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Qin.json b/data/json/avatar/ConfigAvatar_Qin.json new file mode 100644 index 0000000..65dc141 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Qin.json @@ -0,0 +1,304 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Qin_ExtraAttack", + "abilityName": "Avatar_Qin_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_VortexSmash", + "abilityName": "Avatar_Qin_VortexSmash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_DandelionWind_Camera", + "abilityName": "Avatar_Qin_DandelionWind_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_DandelionWind", + "abilityName": "Avatar_Qin_DandelionWind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_DandelionWind_Heal", + "abilityName": "Avatar_Qin_DandelionWind_Heal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_DandelionWind_Harm", + "abilityName": "Avatar_Qin_DandelionWind_Harm", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_DandelionWind_Harm_FieldDamage", + "abilityName": "Avatar_Qin_DandelionWind_Harm_FieldDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_DandelionWind_Push", + "abilityName": "Avatar_Qin_DandelionWind_Push", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_HinowaSlash", + "abilityName": "Avatar_Qin_HinowaSlash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_GreaterSelfHeal", + "abilityName": "Avatar_Qin_GreaterSelfHeal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_AttackCritic", + "abilityName": "Avatar_Qin_AttackCritic", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_TeamSpeedWhenGetElementBall", + "abilityName": "Avatar_Qin_TeamSpeedWhenGetElementBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_NormalAttackDamage", + "abilityName": "Avatar_Qin_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_AutoDefend", + "abilityName": "Avatar_Qin_AutoDefend", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_FallingAnthem", + "abilityName": "Avatar_Qin_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin", + "abilityName": "Avatar_Qin", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayQin01BS_0", + "abilityName": "Avatar_PlayQin01BS_0", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayQin01Loop_0", + "abilityName": "Avatar_PlayQin01Loop_0", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayQin01AS_0", + "abilityName": "Avatar_PlayQin01AS_0", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Common_PlayMusic_Qin", + "abilityName": "Avatar_Common_PlayMusic_Qin", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt", + "abilityName": "Avatar_KeQing_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_AS", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_BS", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_Charge", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_Charge_02", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_Charge_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_Charge_AS", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_Charge_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_Fly", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_Fly", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_Fly_AS", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_Fly_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_FlyAir", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_FlyAir", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_TeamConfig_01BS", + "abilityName": "Avatar_Qin_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_TeamConfig_01Loop", + "abilityName": "Avatar_Qin_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_TeamConfig_01AS", + "abilityName": "Avatar_Qin_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayMusic_Qin_AS", + "abilityName": "Avatar_PlayMusic_Qin_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayMusic_Qin", + "abilityName": "Avatar_PlayMusic_Qin", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_KeQing_Skill_ElementalArt_FlyAir_AS", + "abilityName": "Avatar_KeQing_Skill_ElementalArt_FlyAir_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_ElementalBurst_Spine", + "abilityName": "Avatar_Qin_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_ElementalBurst", + "abilityName": "Avatar_Qin_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_Spine_Loop", + "abilityName": "Avatar_Qin_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_VO_MDAQ037_Qin_01", + "abilityName": "Avatar_Qin_VO_MDAQ037_Qin_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_VO_Emotion_Qin_Hesitate_01", + "abilityName": "Avatar_Qin_VO_Emotion_Qin_Hesitate_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_VO_Emotion_Qin_Vigilant_01", + "abilityName": "Avatar_Qin_VO_Emotion_Qin_Vigilant_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_VO_Emotion_Qin_Affirm_01", + "abilityName": "Avatar_Qin_VO_Emotion_Qin_Affirm_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_VO_Emotion_Qin_Satisfaction_01", + "abilityName": "Avatar_Qin_VO_Emotion_Qin_Satisfaction_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_VO_MDAQ053_Qin_01", + "abilityName": "Avatar_Qin_VO_MDAQ053_Qin_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901001", + "abilityName": "Avatar_Qin_4901001", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901004", + "abilityName": "Avatar_Qin_4901004", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901006", + "abilityName": "Avatar_Qin_4901006", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901008", + "abilityName": "Avatar_Qin_4901008", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901010", + "abilityName": "Avatar_Qin_4901010", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901011", + "abilityName": "Avatar_Qin_4901011", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901013", + "abilityName": "Avatar_Qin_4901013", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901014", + "abilityName": "Avatar_Qin_4901014", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901015", + "abilityName": "Avatar_Qin_4901015", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901017", + "abilityName": "Avatar_Qin_4901017", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qin_4901019", + "abilityName": "Avatar_Qin_4901019", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayMusic_Qin_01_AS", + "abilityName": "Avatar_PlayMusic_Qin_01_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayMusic_Qin_01", + "abilityName": "Avatar_PlayMusic_Qin_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayMusic_Qin_01_Loli", + "abilityName": "Avatar_PlayMusic_Qin_01_Loli", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayMusic_Qin_Loli", + "abilityName": "Avatar_PlayMusic_Qin_Loli", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayMusic_Qin_Loli_AS", + "abilityName": "Avatar_PlayMusic_Qin_Loli_AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Qiqi.json b/data/json/avatar/ConfigAvatar_Qiqi.json new file mode 100644 index 0000000..fde3584 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Qiqi.json @@ -0,0 +1,139 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Qiqi_ExtraAttack", + "abilityName": "Avatar_Qiqi_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalArt_Clear", + "abilityName": "Avatar_Qiqi_ElementalArt_Clear", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalArt", + "abilityName": "Avatar_Qiqi_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalArt_CD", + "abilityName": "Avatar_Qiqi_ElementalArt_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalArt_Bullet", + "abilityName": "Avatar_Qiqi_ElementalArt_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst", + "abilityName": "Avatar_Qiqi_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_PostEffect", + "abilityName": "Avatar_Qiqi_ElementalBurst_PostEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Qiqi_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_Revive", + "abilityName": "Avatar_Qiqi_Revive", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_ApplyModifier", + "abilityName": "Avatar_Qiqi_ElementalBurst_ApplyModifier", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_TriggerAttack", + "abilityName": "Avatar_Qiqi_ElementalBurst_TriggerAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_CameraRadialBlur", + "abilityName": "Avatar_Qiqi_ElementalBurst_CameraRadialBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_NormalAttackDamage", + "abilityName": "Avatar_Qiqi_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalArt_Damage", + "abilityName": "Avatar_Qiqi_ElementalArt_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_Frozen_AttackUp", + "abilityName": "Avatar_Qiqi_Frozen_AttackUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_FallingAnthem", + "abilityName": "Avatar_Qiqi_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_Radar_Collectables_Liyue", + "abilityName": "Avatar_Qiqi_Radar_Collectables_Liyue", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi", + "abilityName": "Avatar_Qiqi", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_Skill_ElementalArt", + "abilityName": "Avatar_Qiqi_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_TeamConfig_01BS", + "abilityName": "Avatar_Qiqi_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_TeamConfig_01Loop", + "abilityName": "Avatar_Qiqi_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_TeamConfig_01AS", + "abilityName": "Avatar_Qiqi_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_Skill_ElementalArt_AS", + "abilityName": "Avatar_Qiqi_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_Spine", + "abilityName": "Avatar_Qiqi_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_BS", + "abilityName": "Avatar_Qiqi_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_ElementalBurst_Hit", + "abilityName": "Avatar_Qiqi_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Qiqi_Spine_Loop", + "abilityName": "Avatar_Qiqi_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Razor.json b/data/json/avatar/ConfigAvatar_Razor.json new file mode 100644 index 0000000..dc58358 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Razor.json @@ -0,0 +1,139 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Razor_ExtraAttack", + "abilityName": "Avatar_Razor_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_General_Handler", + "abilityName": "Avatar_Razor_General_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ClawMark_Main", + "abilityName": "Avatar_Razor_ClawMark_Main", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ClawMark_Click", + "abilityName": "Avatar_Razor_ClawMark_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ClawMark_SetMark", + "abilityName": "Avatar_Razor_ClawMark_SetMark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ClawMark_Charging", + "abilityName": "Avatar_Razor_ClawMark_Charging", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ClawMark_Weather_Remove", + "abilityName": "Avatar_Razor_ClawMark_Weather_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ClawMark_Burst", + "abilityName": "Avatar_Razor_ClawMark_Burst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ClawMark_EnergyRegain", + "abilityName": "Avatar_Razor_ClawMark_EnergyRegain", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_LycanMode", + "abilityName": "Avatar_Razor_LycanMode", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_LycanMode_LycanSimulator", + "abilityName": "Avatar_Razor_LycanMode_LycanSimulator", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_LycanMode_FirstAttackGuaranteer", + "abilityName": "Avatar_Razor_LycanMode_FirstAttackGuaranteer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_DashStamina_Reduction", + "abilityName": "Avatar_Razor_DashStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_NormalAttack_DamageHandler", + "abilityName": "Avatar_Razor_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_FallingAnthem", + "abilityName": "Avatar_Razor_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor", + "abilityName": "Avatar_Razor", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_TeamConfig_01BS", + "abilityName": "Avatar_Razor_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_TeamConfig_01Loop", + "abilityName": "Avatar_Razor_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_TeamConfig_01AS", + "abilityName": "Avatar_Razor_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ElementalBurst_Spine", + "abilityName": "Avatar_Razor_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ElementalBurst_01", + "abilityName": "Avatar_Razor_ElementalBurst_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ElementalBurst_Hit_01", + "abilityName": "Avatar_Razor_ElementalBurst_Hit_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ElementalBurst_Hit_02", + "abilityName": "Avatar_Razor_ElementalBurst_Hit_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ElementalBurst_02", + "abilityName": "Avatar_Razor_ElementalBurst_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_ElementalBurst_03", + "abilityName": "Avatar_Razor_ElementalBurst_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_Spine_Loop", + "abilityName": "Avatar_Razor_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Razor_Spine", + "abilityName": "Avatar_Razor_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Rosaria.json b/data/json/avatar/ConfigAvatar_Rosaria.json new file mode 100644 index 0000000..e48f979 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Rosaria.json @@ -0,0 +1,114 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Rosaria_ExtraAttack", + "abilityName": "Avatar_Rosaria_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Rosaria_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ExtraAttack_Bullet", + "abilityName": "Avatar_Rosaria_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ElementalArt", + "abilityName": "Avatar_Rosaria_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ElementalArt_Strike_01", + "abilityName": "Avatar_Rosaria_ElementalArt_Strike_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ElementalArt_Strike_02", + "abilityName": "Avatar_Rosaria_ElementalArt_Strike_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ElementalBurst_Camera", + "abilityName": "Avatar_Rosaria_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ElementalBurst_Strike_01", + "abilityName": "Avatar_Rosaria_ElementalBurst_Strike_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_ElementalBurst_Create_Gadget", + "abilityName": "Avatar_Rosaria_ElementalBurst_Create_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_GadgetEndEffect_Played", + "abilityName": "Avatar_Rosaria_GadgetEndEffect_Played", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_NormalAttack_DamageHandler", + "abilityName": "Avatar_Rosaria_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_FallingAnthem", + "abilityName": "Avatar_Rosaria_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria", + "abilityName": "Avatar_Rosaria", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_Skill_ElementalArt_BS", + "abilityName": "Avatar_Rosaria_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_Skill_ElementalArt", + "abilityName": "Avatar_Rosaria_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_Skill_ElementalArt_AS", + "abilityName": "Avatar_Rosaria_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_Skill_ElementalBurst_BS", + "abilityName": "Avatar_Rosaria_Skill_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_Skill_ElementalBurst", + "abilityName": "Avatar_Rosaria_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_TeamConfig_01BS", + "abilityName": "Avatar_Rosaria_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_TeamConfig_01Loop", + "abilityName": "Avatar_Rosaria_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_TeamConfig_01AS", + "abilityName": "Avatar_Rosaria_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Rosaria_Skill_ElementalBurst_AS", + "abilityName": "Avatar_Rosaria_Skill_ElementalBurst_AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Sara.json b/data/json/avatar/ConfigAvatar_Sara.json new file mode 100644 index 0000000..65006a9 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Sara.json @@ -0,0 +1,179 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Sara_Arrow_FX", + "abilityName": "Avatar_Sara_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_PressShoot", + "abilityName": "Avatar_Sara_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_AimPressShoot", + "abilityName": "Avatar_Sara_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootAimingArrow_Charge", + "abilityName": "Avatar_Sara_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_ResetGlobalValue", + "abilityName": "Avatar_Sara_ShootArrow_ResetGlobalValue", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_Aiming", + "abilityName": "Avatar_Sara_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_01", + "abilityName": "Avatar_Sara_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_02", + "abilityName": "Avatar_Sara_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_03", + "abilityName": "Avatar_Sara_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_04", + "abilityName": "Avatar_Sara_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_Hide_Fxo", + "abilityName": "Avatar_Sara_Hide_Fxo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_Hide_Fx", + "abilityName": "Avatar_Sara_Hide_Fx", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_05", + "abilityName": "Avatar_Sara_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_Elemental_Art", + "abilityName": "Avatar_Sara_Elemental_Art", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_KarasShoot_DelayAttack", + "abilityName": "Avatar_Sara_KarasShoot_DelayAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_Elemental_Burst", + "abilityName": "Avatar_Sara_Elemental_Burst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_Elemental_Burst_AttackWave_Trigger", + "abilityName": "Avatar_Sara_Elemental_Burst_AttackWave_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_Elemental_Burst_AttackWave", + "abilityName": "Avatar_Sara_Elemental_Burst_AttackWave", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ElementalBurst_PostEffect", + "abilityName": "Avatar_Sara_ElementalBurst_PostEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Sara_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_AttackUp", + "abilityName": "Avatar_Sara_AttackUp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_BaseAttack", + "abilityName": "Avatar_Sara_BaseAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_PermanentSkill_1", + "abilityName": "Avatar_Sara_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ShootArrow_Damage", + "abilityName": "Avatar_Sara_ShootArrow_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_PermanentSkill_1_ReduceColdDown", + "abilityName": "Avatar_Sara_PermanentSkill_1_ReduceColdDown", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_PermanentSkill_2", + "abilityName": "Avatar_Sara_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_FallingAnthem", + "abilityName": "Avatar_Sara_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara", + "abilityName": "Avatar_Sara", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_TeamConfig_01BS", + "abilityName": "Avatar_Sara_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_TeamConfig_01Loop", + "abilityName": "Avatar_Sara_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_TeamConfig_01AS", + "abilityName": "Avatar_Sara_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ElementalBurst_Spine", + "abilityName": "Avatar_Sara_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ElementalBurst_BS", + "abilityName": "Avatar_Sara_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_ElementalBurst_Hit", + "abilityName": "Avatar_Sara_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sara_Spine_Loop", + "abilityName": "Avatar_Sara_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Sayu.json b/data/json/avatar/ConfigAvatar_Sayu.json new file mode 100644 index 0000000..53a35ba --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Sayu.json @@ -0,0 +1,239 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Sayu_ExtraAttack", + "abilityName": "Avatar_Sayu_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_NormalAttack_Handler", + "abilityName": "Avatar_Sayu_NormalAttack_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_NormalAttack_Hide", + "abilityName": "Avatar_Sayu_NormalAttack_Hide", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Check", + "abilityName": "Avatar_Sayu_ElementalArt_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_DropBall_Handler", + "abilityName": "Avatar_Sayu_ElementalArt_DropBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Click", + "abilityName": "Avatar_Sayu_ElementalArt_Click", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Click_EnterCD", + "abilityName": "Avatar_Sayu_ElementalArt_Click_EnterCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Click_TriggerBullet", + "abilityName": "Avatar_Sayu_ElementalArt_Click_TriggerBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Click_Effect", + "abilityName": "Avatar_Sayu_ElementalArt_Click_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Bullet", + "abilityName": "Avatar_Sayu_ElementalArt_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Hold", + "abilityName": "Avatar_Sayu_ElementalArt_Hold", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_CDHandler", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_CDHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_Handler", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_CloseCollider", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_CloseCollider", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_Effect", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_TriggerBullet", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_TriggerBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Hold_Strike", + "abilityName": "Avatar_Sayu_ElementalArt_Hold_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_TriggerFire", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_TriggerFire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_TriggerWater", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_TriggerWater", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_TriggerElectric", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_TriggerElectric", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_TriggerIce", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_TriggerIce", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_Bullet", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalArt_Roll_Mix", + "abilityName": "Avatar_Sayu_ElementalArt_Roll_Mix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst", + "abilityName": "Avatar_Sayu_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Initialize", + "abilityName": "Avatar_Sayu_ElementalBurst_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Sayu_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Strike", + "abilityName": "Avatar_Sayu_ElementalBurst_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Heal", + "abilityName": "Avatar_Sayu_ElementalBurst_Heal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Sayu_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Invincible", + "abilityName": "Avatar_Sayu_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_CameraBlur", + "abilityName": "Avatar_Sayu_ElementalBurst_CameraBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_TriggerDaruma", + "abilityName": "Avatar_Sayu_ElementalBurst_TriggerDaruma", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Phantom", + "abilityName": "Avatar_Sayu_ElementalBurst_Phantom", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Phantom_Delay", + "abilityName": "Avatar_Sayu_ElementalBurst_Phantom_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Phantom_Handler", + "abilityName": "Avatar_Sayu_ElementalBurst_Phantom_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Phantom_PlayAnim", + "abilityName": "Avatar_Sayu_ElementalBurst_Phantom_PlayAnim", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Phantom_Heal", + "abilityName": "Avatar_Sayu_ElementalBurst_Phantom_Heal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Phantom_Attack", + "abilityName": "Avatar_Sayu_ElementalBurst_Phantom_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_ElementalBurst_Phantom_AttackAndHeal", + "abilityName": "Avatar_Sayu_ElementalBurst_Phantom_AttackAndHeal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_Constellation_6_Handler", + "abilityName": "Avatar_Sayu_Constellation_6_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_FallingAnthem", + "abilityName": "Avatar_Sayu_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_NormalAttack_DamageHandler", + "abilityName": "Avatar_Sayu_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_PermanentSkill_1", + "abilityName": "Avatar_Sayu_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu", + "abilityName": "Avatar_Sayu", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_TeamConfig_01BS", + "abilityName": "Avatar_Sayu_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_TeamConfig_01Loop", + "abilityName": "Avatar_Sayu_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sayu_TeamConfig_01AS", + "abilityName": "Avatar_Sayu_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Sethos.json b/data/json/avatar/ConfigAvatar_Sethos.json new file mode 100644 index 0000000..650dfee --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Sethos.json @@ -0,0 +1,69 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Sethos_PressShoot", + "abilityName": "Avatar_Sethos_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_AimPressShoot", + "abilityName": "Avatar_Sethos_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_Arrow_FX", + "abilityName": "Avatar_Sethos_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ShootAimingArrow_Charge", + "abilityName": "Avatar_Sethos_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ShootArrow_01", + "abilityName": "Avatar_Sethos_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ShootArrow_02", + "abilityName": "Avatar_Sethos_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ShootArrow_03", + "abilityName": "Avatar_Sethos_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ShootArrow_04", + "abilityName": "Avatar_Sethos_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ShootArrow_Aiming", + "abilityName": "Avatar_Sethos_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ElementalArt", + "abilityName": "Avatar_Sethos_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_ElementalBurst", + "abilityName": "Avatar_Sethos_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_HideWeaponControl", + "abilityName": "Avatar_Sethos_HideWeaponControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sethos_FallingAnthem", + "abilityName": "Avatar_Sethos_FallingAnthem", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Shenhe.json b/data/json/avatar/ConfigAvatar_Shenhe.json new file mode 100644 index 0000000..e134fd0 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Shenhe.json @@ -0,0 +1,134 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Shenhe_ExtraAttack", + "abilityName": "Avatar_Shenhe_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_CreateBullet", + "abilityName": "Avatar_Shenhe_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ExtraAttack_Bullet", + "abilityName": "Avatar_Shenhe_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalArt_Bullet", + "abilityName": "Avatar_Shenhe_ElementalArt_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalArt_FX", + "abilityName": "Avatar_Shenhe_ElementalArt_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalArt_Attack_L", + "abilityName": "Avatar_Shenhe_ElementalArt_Attack_L", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalArt_Attack_H", + "abilityName": "Avatar_Shenhe_ElementalArt_Attack_H", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalBurst", + "abilityName": "Avatar_Shenhe_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Shenhe_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_NormalAttack_DamageHandler", + "abilityName": "Avatar_Shenhe_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_FallingAnthem", + "abilityName": "Avatar_Shenhe_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe", + "abilityName": "Avatar_Shenhe", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Skill_ElementalArt_BS", + "abilityName": "Avatar_Shenhe_Skill_ElementalArt_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Skill_ElementalArt_L", + "abilityName": "Avatar_Shenhe_Skill_ElementalArt_L", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Skill_ElementalArt_H", + "abilityName": "Avatar_Shenhe_Skill_ElementalArt_H", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Skill_ElementalArt_L_AS", + "abilityName": "Avatar_Shenhe_Skill_ElementalArt_L_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Skill_ElementalArt_H_AS", + "abilityName": "Avatar_Shenhe_Skill_ElementalArt_H_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Skill_ElementalBurst_BS", + "abilityName": "Avatar_Shenhe_Skill_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Skill_ElementalBurst", + "abilityName": "Avatar_Shenhe_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_TeamConfig_01BS", + "abilityName": "Avatar_Shenhe_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_TeamConfig_01Loop", + "abilityName": "Avatar_Shenhe_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_TeamConfig_01AS", + "abilityName": "Avatar_Shenhe_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalBurst_Spine", + "abilityName": "Avatar_Shenhe_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalBurst_BS", + "abilityName": "Avatar_Shenhe_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_ElementalBurst_Hit", + "abilityName": "Avatar_Shenhe_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shenhe_Spine_Loop", + "abilityName": "Avatar_Shenhe_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Shinobu.json b/data/json/avatar/ConfigAvatar_Shinobu.json new file mode 100644 index 0000000..6ead00b --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Shinobu.json @@ -0,0 +1,139 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Shinobu_ExtraAttack", + "abilityName": "Avatar_Shinobu_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_NormalAttack_Handler", + "abilityName": "Avatar_Shinobu_NormalAttack_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt_Init", + "abilityName": "Avatar_Shinobu_ElementalArt_Init", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt_ElemBall_Handler", + "abilityName": "Avatar_Shinobu_ElementalArt_ElemBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt", + "abilityName": "Avatar_Shinobu_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt_Constellation_Attack_Handler", + "abilityName": "Avatar_Shinobu_ElementalArt_Constellation_Attack_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt_Bullet_KillGadget", + "abilityName": "Avatar_Shinobu_ElementalArt_Bullet_KillGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt_ElemBall", + "abilityName": "Avatar_Shinobu_ElementalArt_ElemBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_Constellation_Attack_Detect", + "abilityName": "Avatar_Shinobu_Constellation_Attack_Detect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_Constellation_AddAttack", + "abilityName": "Avatar_Shinobu_Constellation_AddAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt_TickLogic", + "abilityName": "Avatar_Shinobu_ElementalArt_TickLogic", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalArt_TickLogic_Effect", + "abilityName": "Avatar_Shinobu_ElementalArt_TickLogic_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_Constellation_AddAttack_IntoCD", + "abilityName": "Avatar_Shinobu_Constellation_AddAttack_IntoCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_Constellation_AddAttack_Effect", + "abilityName": "Avatar_Shinobu_Constellation_AddAttack_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalBurst", + "abilityName": "Avatar_Shinobu_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_ElementalBurst_Init", + "abilityName": "Avatar_Shinobu_ElementalBurst_Init", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_NormalAttack_DamageHandler", + "abilityName": "Avatar_Shinobu_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_FallingAnthem", + "abilityName": "Avatar_Shinobu_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_PermanentSkill_WhenLowHp", + "abilityName": "Avatar_Shinobu_PermanentSkill_WhenLowHp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_PermanentSkill_HealUpWhenLowHp", + "abilityName": "Avatar_Shinobu_PermanentSkill_HealUpWhenLowHp", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_Constellation6_Limbo", + "abilityName": "Avatar_Shinobu_Constellation6_Limbo", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_Constellation6_Limbo_Trigger_Protect", + "abilityName": "Avatar_Shinobu_Constellation6_Limbo_Trigger_Protect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_Constellation6_Limbo_Trigger_ElemMastery", + "abilityName": "Avatar_Shinobu_Constellation6_Limbo_Trigger_ElemMastery", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu", + "abilityName": "Avatar_Shinobu", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_TeamConfig_01BS", + "abilityName": "Avatar_Shinobu_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_TeamConfig_01Loop", + "abilityName": "Avatar_Shinobu_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shinobu_TeamConfig_01AS", + "abilityName": "Avatar_Shinobu_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Shougun.json b/data/json/avatar/ConfigAvatar_Shougun.json new file mode 100644 index 0000000..80d204d --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Shougun.json @@ -0,0 +1,124 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Shougun_ExtraAttack", + "abilityName": "Avatar_Shougun_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_ElementalArt", + "abilityName": "Avatar_Shougun_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Elfh", + "abilityName": "Avatar_Shougun_Elfh", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Elf", + "abilityName": "Avatar_Shougun_Elf", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_ChargeLevel", + "abilityName": "Avatar_Shougun_ChargeLevel", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_ElementalBurst", + "abilityName": "Avatar_Shougun_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_FallingAnthem", + "abilityName": "Avatar_Shougun_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "AvatarOMonster_Shougun_Mitakenarukami_Mitakenarukami_BurstAtk02_AbsorbEnergyFromAvatar", + "abilityName": "AvatarOMonster_Shougun_Mitakenarukami_Mitakenarukami_BurstAtk02_AbsorbEnergyFromAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun", + "abilityName": "Avatar_Shougun", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Skill_ElementalArt", + "abilityName": "Avatar_Shougun_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Skill_ElementalArt_AS", + "abilityName": "Avatar_Shougun_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_FallingAttack_AS_01", + "abilityName": "Avatar_Shougun_FallingAttack_AS_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_FallingAttack_AS_02", + "abilityName": "Avatar_Shougun_FallingAttack_AS_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Katana_FallingAttack_AS_01", + "abilityName": "Avatar_Shougun_Katana_FallingAttack_AS_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_TeamConfig_01BS", + "abilityName": "Avatar_Shougun_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_TeamConfig_01Loop", + "abilityName": "Avatar_Shougun_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_TeamConfig_01AS", + "abilityName": "Avatar_Shougun_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Katana_FallingAttack_AS_02", + "abilityName": "Avatar_Shougun_Katana_FallingAttack_AS_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Spine", + "abilityName": "Avatar_Shougun_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_ElementalBurst_Spine", + "abilityName": "Avatar_Shougun_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_ElementalBurst_BS", + "abilityName": "Avatar_Shougun_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_ElementalBurst_Hit", + "abilityName": "Avatar_Shougun_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_Spine_Loop", + "abilityName": "Avatar_Shougun_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Shougun_ChargeLevel0BurstSkillEnergy_ExtraChargeLevel_OtherElemRatio", + "abilityName": "Avatar_Shougun_ChargeLevel0BurstSkillEnergy_ExtraChargeLevel_OtherElemRatio", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Sigewinne.json b/data/json/avatar/ConfigAvatar_Sigewinne.json new file mode 100644 index 0000000..73dcada --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Sigewinne.json @@ -0,0 +1,109 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Sigewinne_ShootAimingArrow_Charge", + "abilityName": "Avatar_Sigewinne_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_PressShoot", + "abilityName": "Avatar_Sigewinne_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_Arrow_FX", + "abilityName": "Avatar_Sigewinne_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ShootArrow_Aiming", + "abilityName": "Avatar_Sigewinne_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_AimPressShoot", + "abilityName": "Avatar_Sigewinne_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ShootArrow_01", + "abilityName": "Avatar_Sigewinne_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ShootArrow_02", + "abilityName": "Avatar_Sigewinne_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ShootArrow_03", + "abilityName": "Avatar_Sigewinne_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ElementalArt", + "abilityName": "Avatar_Sigewinne_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_EArt_Heal_Other", + "abilityName": "Avatar_Sigewinne_EArt_Heal_Other", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_EArt_Heal_Self", + "abilityName": "Avatar_Sigewinne_EArt_Heal_Self", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ElementalArt_Core_Trigger_OnAvatar", + "abilityName": "Avatar_Sigewinne_ElementalArt_Core_Trigger_OnAvatar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ElementalArt_Shoot_Short", + "abilityName": "Avatar_Sigewinne_ElementalArt_Shoot_Short", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ElementalArt_Shoot_Hold", + "abilityName": "Avatar_Sigewinne_ElementalArt_Shoot_Hold", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ElementalArt_Pneuma", + "abilityName": "Avatar_Sigewinne_ElementalArt_Pneuma", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ElementalBurst", + "abilityName": "Avatar_Sigewinne_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_PermanentSkill_2", + "abilityName": "Avatar_Sigewinne_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ShootArrow_Damage", + "abilityName": "Avatar_Sigewinne_ShootArrow_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_FallingAnthem", + "abilityName": "Avatar_Sigewinne_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_ElementalArt_Core_Add_Debts", + "abilityName": "Avatar_Sigewinne_ElementalArt_Core_Add_Debts", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sigewinne_EArt_Elemball_Driver", + "abilityName": "Avatar_Sigewinne_EArt_Elemball_Driver", + "abilityOverride": "" + } + ] +} diff --git a/data/json/avatar/ConfigAvatar_Sucrose.json b/data/json/avatar/ConfigAvatar_Sucrose.json new file mode 100644 index 0000000..be5bebc --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Sucrose.json @@ -0,0 +1,244 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Sucrose_ExtraAttack", + "abilityName": "Avatar_Sucrose_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Attack01", + "abilityName": "Avatar_Sucrose_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Attack02", + "abilityName": "Avatar_Sucrose_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Attack03", + "abilityName": "Avatar_Sucrose_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Attack04_Pre", + "abilityName": "Avatar_Sucrose_Attack04_Pre", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Attack04_Gadget", + "abilityName": "Avatar_Sucrose_Attack04_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Attack04", + "abilityName": "Avatar_Sucrose_Attack04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_WindBlackHole", + "abilityName": "Avatar_Sucrose_WindBlackHole", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_WindBlackHole_Gadget", + "abilityName": "Avatar_Sucrose_WindBlackHole_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_DemiHurricane", + "abilityName": "Avatar_Sucrose_DemiHurricane", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_DemiHurricane_Flusk", + "abilityName": "Avatar_Sucrose_DemiHurricane_Flusk", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_DemiHurricane_Gadget", + "abilityName": "Avatar_Sucrose_DemiHurricane_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_DemiHurricane_Dissipate", + "abilityName": "Avatar_Sucrose_DemiHurricane_Dissipate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_DemiHurricane_Damage", + "abilityName": "Avatar_Sucrose_DemiHurricane_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_DemiHurricane_Mix", + "abilityName": "Avatar_Sucrose_DemiHurricane_Mix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Contellation_6", + "abilityName": "Avatar_Sucrose_Contellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_FallingAnthem", + "abilityName": "Avatar_Sucrose_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Handler", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Fire", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Fire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Firec", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Firec", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Water", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Water", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Waterc", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Waterc", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Ice", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Ice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Icec", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Icec", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Electric", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Electric", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa_Electric2UNIQUE_Avatar_Sucrose_PermanentSkill_Catalysa_Fire", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa_Electric2UNIQUE_Avatar_Sucrose_PermanentSkill_Catalysa_Fire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_NetherWind", + "abilityName": "Avatar_Sucrose_PermanentSkill_NetherWind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_NetherWind_Handler", + "abilityName": "Avatar_Sucrose_PermanentSkill_NetherWind_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_NetherWind_Buff", + "abilityName": "Avatar_Sucrose_PermanentSkill_NetherWind_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_NetherWind_Buff4UNIQUE_Avatar_Sucrose_PermanentSkill_NetherWind_Buff", + "abilityName": "Avatar_Sucrose_PermanentSkill_NetherWind_Buff4UNIQUE_Avatar_Sucrose_PermanentSkill_NetherWind_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_NormalAttack_DamageHandler", + "abilityName": "Avatar_Sucrose_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_NormalAttack_DamageHandler_Paranoid", + "abilityName": "Avatar_Sucrose_NormalAttack_DamageHandler_Paranoid", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_NormalAttack_DamageHandler_Paranoid_AddCount", + "abilityName": "Avatar_Sucrose_NormalAttack_DamageHandler_Paranoid_AddCount", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_NormalAttack_DamageHandler_Paranoid_ReduceColdDown", + "abilityName": "Avatar_Sucrose_NormalAttack_DamageHandler_Paranoid_ReduceColdDown", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Contellation_4", + "abilityName": "Avatar_Sucrose_Contellation_4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose", + "abilityName": "Avatar_Sucrose", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_TeamConfig_01BS", + "abilityName": "Avatar_Sucrose_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_TeamConfig_01Loop", + "abilityName": "Avatar_Sucrose_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_TeamConfig_01AS", + "abilityName": "Avatar_Sucrose_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_ElementalBurst_Spine", + "abilityName": "Avatar_Sucrose_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_ElementalBurst_BS", + "abilityName": "Avatar_Sucrose_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_ElementalBurst", + "abilityName": "Avatar_Sucrose_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_ElementBurst", + "abilityName": "Avatar_Sucrose_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_ElementalBurst_Hit", + "abilityName": "Avatar_Sucrose_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_elementalBurst_BS_Normal", + "abilityName": "Avatar_Sucrose_elementalBurst_BS_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_Spine_Loop", + "abilityName": "Avatar_Sucrose_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Sucrose_PermanentSkill_Catalysa0Sucrose_PermanentSkill_Catalysa_ElemMasteryDelta", + "abilityName": "Avatar_Sucrose_PermanentSkill_Catalysa0Sucrose_PermanentSkill_Catalysa_ElemMasteryDelta", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Tartaglia.json b/data/json/avatar/ConfigAvatar_Tartaglia.json new file mode 100644 index 0000000..87ca33f --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Tartaglia.json @@ -0,0 +1,239 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Tartaglia_Arrow_FX", + "abilityName": "Avatar_Tartaglia_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_PressShoot", + "abilityName": "Avatar_Tartaglia_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_AimPressShoot", + "abilityName": "Avatar_Tartaglia_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_01", + "abilityName": "Avatar_Tartaglia_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_02", + "abilityName": "Avatar_Tartaglia_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_03", + "abilityName": "Avatar_Tartaglia_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_04", + "abilityName": "Avatar_Tartaglia_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_05", + "abilityName": "Avatar_Tartaglia_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_06", + "abilityName": "Avatar_Tartaglia_ShootArrow_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_Aiming", + "abilityName": "Avatar_Tartaglia_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_Enchanted_Water", + "abilityName": "Avatar_Tartaglia_ShootArrow_Enchanted_Water", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_Enchanted_WithoutWater", + "abilityName": "Avatar_Tartaglia_ShootArrow_Enchanted_WithoutWater", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootAimingArrow_Charge", + "abilityName": "Avatar_Tartaglia_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ChangeMainSkill", + "abilityName": "Avatar_Tartaglia_ChangeMainSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_WaterFlower_Handler", + "abilityName": "Avatar_Tartaglia_WaterFlower_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_EddyBlade", + "abilityName": "Avatar_Tartaglia_EddyBlade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Ripple", + "abilityName": "Avatar_Tartaglia_Ripple", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_EndOfIris", + "abilityName": "Avatar_Tartaglia_EndOfIris", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Gandalfr", + "abilityName": "Avatar_Tartaglia_Gandalfr", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Gandalfr_Remover", + "abilityName": "Avatar_Tartaglia_Gandalfr_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Gandalfr_Attack05", + "abilityName": "Avatar_Tartaglia_Gandalfr_Attack05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Gandalfr_Trigger", + "abilityName": "Avatar_Tartaglia_Gandalfr_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_GandalfrU", + "abilityName": "Avatar_Tartaglia_GandalfrU", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Gandalfr_TriggerOff", + "abilityName": "Avatar_Tartaglia_Gandalfr_TriggerOff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Gandalfr_RemoverU", + "abilityName": "Avatar_Tartaglia_Gandalfr_RemoverU", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_AquariaBlade_Melee", + "abilityName": "Avatar_Tartaglia_AquariaBlade_Melee", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ThousandWithers7", + "abilityName": "Avatar_Tartaglia_ThousandWithers7", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_AquariaBlade_Range", + "abilityName": "Avatar_Tartaglia_AquariaBlade_Range", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_AquariaBlade_Range_Gadget", + "abilityName": "Avatar_Tartaglia_AquariaBlade_Range_Gadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Blade_Manager", + "abilityName": "Avatar_Tartaglia_Blade_Manager", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_AquariaBlade_CameraController", + "abilityName": "Avatar_Tartaglia_AquariaBlade_CameraController", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_FallingAnthem", + "abilityName": "Avatar_Tartaglia_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia", + "abilityName": "Avatar_Tartaglia", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ShootArrow_Enchanted_Water2Avatar_Tartaglia_ShootArrow_Enchanted_WithoutWater", + "abilityName": "Avatar_Tartaglia_ShootArrow_Enchanted_Water2Avatar_Tartaglia_ShootArrow_Enchanted_WithoutWater", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_TeamConfig_01BS", + "abilityName": "Avatar_Tartaglia_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_TeamConfig_01Loop", + "abilityName": "Avatar_Tartaglia_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_TeamConfig_01AS", + "abilityName": "Avatar_Tartaglia_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ElementalBurst_01_Spine", + "abilityName": "Avatar_Tartaglia_ElementalBurst_01_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ElementalBurst_01_Hit", + "abilityName": "Avatar_Tartaglia_ElementalBurst_01_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ElementalBurst_01_BS", + "abilityName": "Avatar_Tartaglia_ElementalBurst_01_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ElementalBurst_02_Spine", + "abilityName": "Avatar_Tartaglia_ElementalBurst_02_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ElementalBurst_02_Hit", + "abilityName": "Avatar_Tartaglia_ElementalBurst_02_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ElementalBurst_02_BS", + "abilityName": "Avatar_Tartaglia_ElementalBurst_02_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Spine_Loop", + "abilityName": "Avatar_Tartaglia_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_Spine", + "abilityName": "Avatar_Tartaglia_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_02_Spine", + "abilityName": "Avatar_Tartaglia_02_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tartaglia_ThousandWithers", + "abilityName": "Avatar_Tartaglia_ThousandWithers", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Tighnari.json b/data/json/avatar/ConfigAvatar_Tighnari.json new file mode 100644 index 0000000..08f8586 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Tighnari.json @@ -0,0 +1,194 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Tighnari_PressShoot", + "abilityName": "Avatar_Tighnari_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_AimPressShoot", + "abilityName": "Avatar_Tighnari_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ShootAimingArrow_Charge", + "abilityName": "Avatar_Tighnari_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ShootArrow_Aiming", + "abilityName": "Avatar_Tighnari_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_PermanentSkill_1P", + "abilityName": "Avatar_Tighnari_PermanentSkill_1P", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_PermanentSkill_1", + "abilityName": "Avatar_Tighnari_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ShootArrow_01", + "abilityName": "Avatar_Tighnari_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ShootArrow_02", + "abilityName": "Avatar_Tighnari_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ShootArrow_03", + "abilityName": "Avatar_Tighnari_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ShootArrow_03_01", + "abilityName": "Avatar_Tighnari_ShootArrow_03_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ShootArrow_04", + "abilityName": "Avatar_Tighnari_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalArt", + "abilityName": "Avatar_Tighnari_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst", + "abilityName": "Avatar_Tighnari_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Tighnari_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst_BulletTrigger", + "abilityName": "Avatar_Tighnari_ElementalBurst_BulletTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst_Bullet_Damage1", + "abilityName": "Avatar_Tighnari_ElementalBurst_Bullet_Damage1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst_Bullet_Damage2", + "abilityName": "Avatar_Tighnari_ElementalBurst_Bullet_Damage2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_PermanentSkill_2", + "abilityName": "Avatar_Tighnari_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_FallingAnthem", + "abilityName": "Avatar_Tighnari_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_Radar_Collectables_Sumeru", + "abilityName": "Avatar_Tighnari_Radar_Collectables_Sumeru", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari", + "abilityName": "Avatar_Tighnari", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_SetGadget", + "abilityName": "Avatar_Tighnari_SetGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_TeamConfig_01BS", + "abilityName": "Avatar_Tighnari_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_TeamConfig_01Loop", + "abilityName": "Avatar_Tighnari_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_TeamConfig_01AS", + "abilityName": "Avatar_Tighnari_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst_Spine", + "abilityName": "Avatar_Tighnari_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_Spine", + "abilityName": "Avatar_Tighnari_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst_BS", + "abilityName": "Avatar_Tighnari_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_01", + "abilityName": "Avatar_Tighnari_ElementBurst_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_05", + "abilityName": "Avatar_Tighnari_ElementBurst_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_02", + "abilityName": "Avatar_Tighnari_ElementBurst_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_06", + "abilityName": "Avatar_Tighnari_ElementBurst_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_03", + "abilityName": "Avatar_Tighnari_ElementBurst_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_07", + "abilityName": "Avatar_Tighnari_ElementBurst_07", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_04", + "abilityName": "Avatar_Tighnari_ElementBurst_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementBurst_08", + "abilityName": "Avatar_Tighnari_ElementBurst_08", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_ElementalBurst_Hit", + "abilityName": "Avatar_Tighnari_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tighnari_Spine_Loop", + "abilityName": "Avatar_Tighnari_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Tohma.json b/data/json/avatar/ConfigAvatar_Tohma.json new file mode 100644 index 0000000..6b3ec97 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Tohma.json @@ -0,0 +1,114 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Tohma_ExtraAttack", + "abilityName": "Avatar_Tohma_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Tohma_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ExtraAttack_Bullet", + "abilityName": "Avatar_Tohma_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ElementalArt_Handler", + "abilityName": "Avatar_Tohma_ElementalArt_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_HasTeamShield", + "abilityName": "Avatar_Tohma_HasTeamShield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_Has_ELementalBurstBuff", + "abilityName": "Avatar_Tohma_Has_ELementalBurstBuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ElementalArt_Strike", + "abilityName": "Avatar_Tohma_ElementalArt_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ElementalBurst_Start", + "abilityName": "Avatar_Tohma_ElementalBurst_Start", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ElementalBurst_Buff_Handler", + "abilityName": "Avatar_Tohma_ElementalBurst_Buff_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ElementalBurstPos", + "abilityName": "Avatar_Tohma_ElementalBurstPos", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ElementalBurstDir", + "abilityName": "Avatar_Tohma_ElementalBurstDir", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_ElementalBurst_TriggerAttack", + "abilityName": "Avatar_Tohma_ElementalBurst_TriggerAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_NormalAttack_DamageHandler", + "abilityName": "Avatar_Tohma_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_FallingAnthem", + "abilityName": "Avatar_Tohma_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma", + "abilityName": "Avatar_Tohma", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_Skill_ElementalArt", + "abilityName": "Avatar_Tohma_Skill_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_Skill_ElementalArt_AS", + "abilityName": "Avatar_Tohma_Skill_ElementalArt_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_Skill_ElementalBurst", + "abilityName": "Avatar_Tohma_Skill_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_TeamConfig_01BS", + "abilityName": "Avatar_Tohma_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_TeamConfig_01Loop", + "abilityName": "Avatar_Tohma_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_TeamConfig_01AS", + "abilityName": "Avatar_Tohma_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Tohma_Skill_ElementalBurst_AS", + "abilityName": "Avatar_Tohma_Skill_ElementalBurst_AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Venti.json b/data/json/avatar/ConfigAvatar_Venti.json new file mode 100644 index 0000000..3a00424 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Venti.json @@ -0,0 +1,194 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Venti_WindBlade_Test", + "abilityName": "Avatar_Venti_WindBlade_Test", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_WindBlade", + "abilityName": "Avatar_Venti_WindBlade", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Arrow_FX", + "abilityName": "Avatar_Venti_Arrow_FX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_PressShoot", + "abilityName": "Avatar_Venti_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_AimPressShoot", + "abilityName": "Avatar_Venti_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_01", + "abilityName": "Avatar_Venti_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_02", + "abilityName": "Avatar_Venti_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_03", + "abilityName": "Avatar_Venti_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_04", + "abilityName": "Avatar_Venti_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_05", + "abilityName": "Avatar_Venti_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_06", + "abilityName": "Avatar_Venti_ShootArrow_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_Aiming", + "abilityName": "Avatar_Venti_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_Enchanted_Wind", + "abilityName": "Avatar_Venti_ShootArrow_Enchanted_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootArrow_Enchanted_WithoutWind", + "abilityName": "Avatar_Venti_ShootArrow_Enchanted_WithoutWind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ShootAimingArrow_Charge", + "abilityName": "Avatar_Venti_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ChangeMainSkill", + "abilityName": "Avatar_Venti_ChangeMainSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Hurricane", + "abilityName": "Avatar_Venti_Hurricane", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Hurricane_Mix", + "abilityName": "Avatar_Venti_Hurricane_Mix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Hurricane_Dissipate", + "abilityName": "Avatar_Venti_Hurricane_Dissipate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Hurricane_DropBall", + "abilityName": "Avatar_Venti_Hurricane_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_FlyChampion", + "abilityName": "Avatar_Venti_FlyChampion", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_FlyStamina_Reduction", + "abilityName": "Avatar_Venti_FlyStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Talnet_ShootArrow_Enchanted_Wind", + "abilityName": "Avatar_Venti_Talnet_ShootArrow_Enchanted_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Talnet_ShootArrow_Enchanted_WithoutWind", + "abilityName": "Avatar_Venti_Talnet_ShootArrow_Enchanted_WithoutWind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_WindField", + "abilityName": "Avatar_Venti_WindField", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_FallingAnthem", + "abilityName": "Avatar_Venti_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti", + "abilityName": "Avatar_Venti", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Talnet_ShootArrow_Enchanted_Wind4Avatar_Venti_Talnet_ShootArrow_Enchanted_WithoutWind", + "abilityName": "Avatar_Venti_Talnet_ShootArrow_Enchanted_Wind4Avatar_Venti_Talnet_ShootArrow_Enchanted_WithoutWind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_TeamConfig_01BS", + "abilityName": "Avatar_Venti_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_TeamConfig_01Loop", + "abilityName": "Avatar_Venti_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_TeamConfig_01AS", + "abilityName": "Avatar_Venti_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ElementalBurst_Spine", + "abilityName": "Avatar_Venti_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ElementalBurst_BS", + "abilityName": "Avatar_Venti_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ElementalBurst", + "abilityName": "Avatar_Venti_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ElementBurst", + "abilityName": "Avatar_Venti_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_ElementalBurst_Hit", + "abilityName": "Avatar_Venti_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_Spine_Loop", + "abilityName": "Avatar_Venti_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Venti_FlyStamina_Reduction_", + "abilityName": "Avatar_Venti_FlyStamina_Reduction_", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Wanderer.json b/data/json/avatar/ConfigAvatar_Wanderer.json new file mode 100644 index 0000000..831c98f --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Wanderer.json @@ -0,0 +1,569 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Handler", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack", + "abilityName": "Avatar_Wanderer_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Charge", + "abilityName": "Avatar_Wanderer_ExtraAttack_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Charge_HasTarget", + "abilityName": "Avatar_Wanderer_ExtraAttack_Charge_HasTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Charge_NoTarget", + "abilityName": "Avatar_Wanderer_ExtraAttack_Charge_NoTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Initiate", + "abilityName": "Avatar_Wanderer_ExtraAttack_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Air_Charge", + "abilityName": "Avatar_Wanderer_ExtraAttack_Air_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Air_Charge_HasTarget", + "abilityName": "Avatar_Wanderer_ExtraAttack_Air_Charge_HasTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Air_Charge_NoTarget", + "abilityName": "Avatar_Wanderer_ExtraAttack_Air_Charge_NoTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ExtraAttack_Air_Initiate", + "abilityName": "Avatar_Wanderer_ExtraAttack_Air_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAir_Flag", + "abilityName": "Avatar_Wanderer_HoverAir_Flag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HatVisible_Flag", + "abilityName": "Avatar_Wanderer_HatVisible_Flag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HatVisible_Hide_Handler", + "abilityName": "Avatar_Wanderer_HatVisible_Hide_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HatVisible_SetGV", + "abilityName": "Avatar_Wanderer_HatVisible_SetGV", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Attack01", + "abilityName": "Avatar_Wanderer_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Attack02", + "abilityName": "Avatar_Wanderer_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Attack03", + "abilityName": "Avatar_Wanderer_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_Bullet_1", + "abilityName": "Avatar_Wanderer_NormalAttack_Bullet_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_01_Bullet_VFX", + "abilityName": "Avatar_Wanderer_NormalAttack_01_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_01_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_NormalAttack_01_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_01_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_01_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_NormalAttack_01_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_01_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_Bullet_2", + "abilityName": "Avatar_Wanderer_NormalAttack_Bullet_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_02_Bullet_VFX", + "abilityName": "Avatar_Wanderer_NormalAttack_02_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_02_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_NormalAttack_02_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_02_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_02_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_NormalAttack_02_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_02_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_Bullet_3", + "abilityName": "Avatar_Wanderer_NormalAttack_Bullet_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_03_Bullet_VFX", + "abilityName": "Avatar_Wanderer_NormalAttack_03_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_03_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_NormalAttack_03_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_03_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_03_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_NormalAttack_03_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_03_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_Bullet_4", + "abilityName": "Avatar_Wanderer_NormalAttack_Bullet_4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_04_Bullet_VFX", + "abilityName": "Avatar_Wanderer_NormalAttack_04_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_04_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_NormalAttack_04_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_NormalAttack_04_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_04_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_NormalAttack_04_Bullet_AngularVelocity6Avatar_Wanderer_NormalAttack_04_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Launch", + "abilityName": "Avatar_Wanderer_ElementalArt_Launch", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Ring_Handler", + "abilityName": "Avatar_Wanderer_ElementalArt_Ring_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Kasa_Ring_Idle", + "abilityName": "Avatar_Wanderer_Kasa_Ring_Idle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Kasa_Ring_Move", + "abilityName": "Avatar_Wanderer_Kasa_Ring_Move", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Kasa_Ring_Dash", + "abilityName": "Avatar_Wanderer_Kasa_Ring_Dash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Kasa_Ring_DashHold", + "abilityName": "Avatar_Wanderer_Kasa_Ring_DashHold", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Kasa_Ring_Recovery", + "abilityName": "Avatar_Wanderer_Kasa_Ring_Recovery", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAir_Mark", + "abilityName": "Avatar_Wanderer_HoverAir_Mark", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Ring", + "abilityName": "Avatar_Wanderer_ElementalArt_Ring", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Remover", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Constellation_6_Handler", + "abilityName": "Avatar_Wanderer_Constellation_6_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Constellation_6_Count", + "abilityName": "Avatar_Wanderer_Constellation_6_Count", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Constellation_6_Buff", + "abilityName": "Avatar_Wanderer_Constellation_6_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Dash", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Dash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Up", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Up", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Recovery", + "abilityName": "Avatar_Wanderer_ElementalArt_Recovery", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HitFallToGround_Visible_Handler", + "abilityName": "Avatar_Wanderer_HitFallToGround_Visible_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Recovery_Handler", + "abilityName": "Avatar_Wanderer_Recovery_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Recovery_AddEndure", + "abilityName": "Avatar_Wanderer_Recovery_AddEndure", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot_1", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot_2", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot_3", + "abilityName": "Avatar_Wanderer_ElementalArt_HoverAir_Shoot_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_1", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_01_Bullet_VFX", + "abilityName": "Avatar_Wanderer_HoverAttack_01_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_01_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_HoverAttack_01_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_01_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_01_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_HoverAttack_01_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_01_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_2", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_02_Bullet_VFX", + "abilityName": "Avatar_Wanderer_HoverAttack_02_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_02_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_HoverAttack_02_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_02_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_02_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_HoverAttack_02_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_02_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_3", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_03_Bullet_VFX", + "abilityName": "Avatar_Wanderer_HoverAttack_03_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_03_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_HoverAttack_03_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_03_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_03_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_HoverAttack_03_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_03_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_4", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_04_Bullet_VFX", + "abilityName": "Avatar_Wanderer_HoverAttack_04_Bullet_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_04_Bullet_AngularVelocity_Timer", + "abilityName": "Avatar_Wanderer_HoverAttack_04_Bullet_AngularVelocity_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_HoverAttack_04_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_04_Bullet_AngularVelocity", + "abilityName": "Avatar_Wanderer_HoverAttack_04_Bullet_AngularVelocity5Avatar_Wanderer_HoverAttack_04_Bullet_AngularVelocity", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_1_Extra", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_1_Extra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_2_Extra", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_2_Extra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_3_Extra", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_3_Extra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_4_Extra", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_4_Extra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst", + "abilityName": "Avatar_Wanderer_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_Emotion", + "abilityName": "Avatar_Wanderer_ElementalBurst_Emotion", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_SkinControl", + "abilityName": "Avatar_Wanderer_ElementalBurst_SkinControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_Invincible", + "abilityName": "Avatar_Wanderer_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_FogFX01", + "abilityName": "Avatar_Wanderer_ElementalBurst_FogFX01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_Bullet", + "abilityName": "Avatar_Wanderer_ElementalBurst_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_PermanentSkill_1", + "abilityName": "Avatar_Wanderer_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_ResetMixTypey", + "abilityName": "Avatar_Wanderer_ElementalArt_ResetMixTypey", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_ResetMixType", + "abilityName": "Avatar_Wanderer_ElementalArt_ResetMixType", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_PermanentSkill_2", + "abilityName": "Avatar_Wanderer_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_PermanentSkill_2_HasTarget", + "abilityName": "Avatar_Wanderer_PermanentSkill_2_HasTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_PermanentSkill_2_NoTarget", + "abilityName": "Avatar_Wanderer_PermanentSkill_2_NoTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_PermanentSkill_2_RandomCheck", + "abilityName": "Avatar_Wanderer_PermanentSkill_2_RandomCheck", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_HoverDash", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_HoverDash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_Extra_Trail", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_Extra_Trail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_Extra_Core", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_Extra_Core", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_Extra_Hit", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_Extra_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_FallingAnthem", + "abilityName": "Avatar_Wanderer_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_FallAnthem_BS_Wind", + "abilityName": "Avatar_Wanderer_FallAnthem_BS_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_FallAnthem_Self_Wind", + "abilityName": "Avatar_Wanderer_FallAnthem_Self_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_FallAnthem_Strike_01_Wind", + "abilityName": "Avatar_Wanderer_FallAnthem_Strike_01_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_FallAnthem_Strike_02_Wind", + "abilityName": "Avatar_Wanderer_FallAnthem_Strike_02_Wind", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer", + "abilityName": "Avatar_Wanderer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_TeamConfig_01BS", + "abilityName": "Avatar_Wanderer_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_TeamConfig_01Loop", + "abilityName": "Avatar_Wanderer_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_TeamConfig_01AS", + "abilityName": "Avatar_Wanderer_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalArt_Bullet_HoverDash_Trigger5Avatar_Wanderer_ElementalArt_Bullet_HoverDash_Trigger", + "abilityName": "Avatar_Wanderer_ElementalArt_Bullet_HoverDash_Trigger5Avatar_Wanderer_ElementalArt_Bullet_HoverDash_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_Spine", + "abilityName": "Avatar_Wanderer_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_Spine_Foot", + "abilityName": "Avatar_Wanderer_ElementalBurst_Spine_Foot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Spine", + "abilityName": "Avatar_Wanderer_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_02_Spine", + "abilityName": "Avatar_Wanderer_02_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_BS", + "abilityName": "Avatar_Wanderer_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_ElementalBurst_Hit", + "abilityName": "Avatar_Wanderer_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Spine_Loop_Hand", + "abilityName": "Avatar_Wanderer_Spine_Loop_Hand", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wanderer_Spine_Loop", + "abilityName": "Avatar_Wanderer_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Wriothesley.json b/data/json/avatar/ConfigAvatar_Wriothesley.json new file mode 100644 index 0000000..1374037 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Wriothesley.json @@ -0,0 +1,264 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Wriothesley_ExtraAttack", + "abilityName": "Avatar_Wriothesley_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Strike", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_NormalAttack_Damage_Handler", + "abilityName": "Avatar_Wriothesley_NormalAttack_Damage_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Handler", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff_Self_Handler0Avatar_Wriothesley_AttackSpeed_Buff_Team_Handler", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff_Self_Handler0Avatar_Wriothesley_AttackSpeed_Buff_Team_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff_Self_Timer", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff_Self_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff_Team_Timer", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff_Team_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff_Self_Handler", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff_Self_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff_Self0Avatar_Wriothesley_AttackSpeed_Buff_Team_Handler", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff_Self0Avatar_Wriothesley_AttackSpeed_Buff_Team_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff_Team", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff_Team", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_AttackSpeed_Buff_Self", + "abilityName": "Avatar_Wriothesley_AttackSpeed_Buff_Self", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalArt_Buff", + "abilityName": "Avatar_Wriothesley_ElementalArt_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalArt_Buff_Handler", + "abilityName": "Avatar_Wriothesley_ElementalArt_Buff_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_NormalAttack_Buff_Handler", + "abilityName": "Avatar_Wriothesley_NormalAttack_Buff_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalArt_LoseHP", + "abilityName": "Avatar_Wriothesley_ElementalArt_LoseHP", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalArt_GenerateEnergy", + "abilityName": "Avatar_Wriothesley_ElementalArt_GenerateEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Buff_CD_Handler", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Buff_CD_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Buff_Predicate", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Buff_Predicate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Buff_CD", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Buff_CD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Buff_Trigger", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Buff_Trigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Buff_Handler", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Buff_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Buff_HealHP", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Buff_HealHP", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalArt_Buff_HandlerM", + "abilityName": "Avatar_Wriothesley_ElementalArt_Buff_HandlerM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalBurst_Cast", + "abilityName": "Avatar_Wriothesley_ElementalBurst_Cast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Wriothesley_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalBurst_Bullet", + "abilityName": "Avatar_Wriothesley_ElementalBurst_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ElementalBurst_Arkhe_CD_Handler2Avatar_Wriothesley_ElementalBurst_Arkhe_CD_Handler", + "abilityName": "Avatar_Wriothesley_ElementalBurst_Arkhe_CD_Handler2Avatar_Wriothesley_ElementalBurst_Arkhe_CD_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_FallingAnthem", + "abilityName": "Avatar_Wriothesley_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_Handler3", + "abilityName": "Avatar_Wriothesley_Gauntlet_Handler3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_L_Handler", + "abilityName": "Avatar_Wriothesley_Gauntlet_L_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_R_Handler", + "abilityName": "Avatar_Wriothesley_Gauntlet_R_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_L_Dissolve", + "abilityName": "Avatar_Wriothesley_Gauntlet_L_Dissolve", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_R_Dissolve", + "abilityName": "Avatar_Wriothesley_Gauntlet_R_Dissolve", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_L_Enable", + "abilityName": "Avatar_Wriothesley_Gauntlet_L_Enable", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_R_Enable", + "abilityName": "Avatar_Wriothesley_Gauntlet_R_Enable", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_ElementalBurst_Dissolveff", + "abilityName": "Avatar_Wriothesley_Gauntlet_ElementalBurst_Dissolveff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_Handler_VFX", + "abilityName": "Avatar_Wriothesley_Gauntlet_Handler_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_Initialize_2", + "abilityName": "Avatar_Wriothesley_Gauntlet_Initialize_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_L_Disable", + "abilityName": "Avatar_Wriothesley_Gauntlet_L_Disable", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_R_Disable", + "abilityName": "Avatar_Wriothesley_Gauntlet_R_Disable", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_L_Disabler", + "abilityName": "Avatar_Wriothesley_Gauntlet_L_Disabler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_R_Disabler", + "abilityName": "Avatar_Wriothesley_Gauntlet_R_Disabler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_ElementalBurst_Dissolve", + "abilityName": "Avatar_Wriothesley_Gauntlet_ElementalBurst_Dissolve", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_Initialize", + "abilityName": "Avatar_Wriothesley_Gauntlet_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley", + "abilityName": "Avatar_Wriothesley", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_TeamConfig_01BS", + "abilityName": "Avatar_Wriothesley_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_TeamConfig_01Loop", + "abilityName": "Avatar_Wriothesley_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_TeamConfig_01AS", + "abilityName": "Avatar_Wriothesley_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_Gauntlet_Handler", + "abilityName": "Avatar_Wriothesley_Gauntlet_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Strike0Wriothesley_ExtraAttack_Constellation_6_CritRate", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Strike0Wriothesley_ExtraAttack_Constellation_6_CritRate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Wriothesley_ExtraAttack_Strike0Wriothesley_ExtraAttack_Constellation_6_CritHurt", + "abilityName": "Avatar_Wriothesley_ExtraAttack_Strike0Wriothesley_ExtraAttack_Constellation_6_CritHurt", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Xiangling.json b/data/json/avatar/ConfigAvatar_Xiangling.json new file mode 100644 index 0000000..b11c016 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Xiangling.json @@ -0,0 +1,169 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Xiangling_ExtraAttack_Damage", + "abilityName": "Avatar_Xiangling_ExtraAttack_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ExtraAttack", + "abilityName": "Avatar_Xiangling_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Xiangling_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ExtraAttack_Bullet", + "abilityName": "Avatar_Xiangling_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_Eff_Attack_04", + "abilityName": "Avatar_Xiangling_Eff_Attack_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaBornEffect", + "abilityName": "Avatar_Xiangling_PandaBornEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaBornEffect_Run", + "abilityName": "Avatar_Xiangling_PandaBornEffect_Run", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaFire", + "abilityName": "Avatar_Xiangling_PandaFire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaFire_Run", + "abilityName": "Avatar_Xiangling_PandaFire_Run", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaFireAim", + "abilityName": "Avatar_Xiangling_PandaFireAim", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaFire_Effect", + "abilityName": "Avatar_Xiangling_PandaFire_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaFire_Attack", + "abilityName": "Avatar_Xiangling_PandaFire_Attack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_PandaPepper", + "abilityName": "Avatar_Xiangling_PandaPepper", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_FireCircleSkillStart", + "abilityName": "Avatar_Xiangling_FireCircleSkillStart", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_FireCircle01", + "abilityName": "Avatar_Xiangling_FireCircle01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_FireCircle02", + "abilityName": "Avatar_Xiangling_FireCircle02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_FireCircle03", + "abilityName": "Avatar_Xiangling_FireCircle03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_FireCircle", + "abilityName": "Avatar_Xiangling_FireCircle", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_NormalAttackDamage", + "abilityName": "Avatar_Xiangling_NormalAttackDamage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_FallingAnthem", + "abilityName": "Avatar_Xiangling_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling", + "abilityName": "Avatar_Xiangling", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_TeamConfig_01BS", + "abilityName": "Avatar_Xiangling_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_TeamConfig_01Loop", + "abilityName": "Avatar_Xiangling_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_TeamConfig_01AS", + "abilityName": "Avatar_Xiangling_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ElementalBurst_Spine", + "abilityName": "Avatar_Xiangling_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ElementalBurst_BS", + "abilityName": "Avatar_Xiangling_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ElementalBurst", + "abilityName": "Avatar_Xiangling_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ElementBurst", + "abilityName": "Avatar_Xiangling_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_ElementalBurst_Hit", + "abilityName": "Avatar_Xiangling_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_elementalBurst_Normal", + "abilityName": "Avatar_Xiangling_elementalBurst_Normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_Spine_Loop", + "abilityName": "Avatar_Xiangling_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_Spine_Loop_BG", + "abilityName": "Avatar_Xiangling_Spine_Loop_BG", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiangling_Spine", + "abilityName": "Avatar_Xiangling_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Xiao.json b/data/json/avatar/ConfigAvatar_Xiao.json new file mode 100644 index 0000000..f90ccc7 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Xiao.json @@ -0,0 +1,134 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Xiao_ExtraAttack", + "abilityName": "Avatar_Xiao_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_DevilDash_Handler", + "abilityName": "Avatar_Xiao_DevilDash_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_DevilDash_Bullet", + "abilityName": "Avatar_Xiao_DevilDash_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_CloseCollider", + "abilityName": "Avatar_Xiao_CloseCollider", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_FallingAnthem", + "abilityName": "Avatar_Xiao_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_HowlingSoul_CameraController", + "abilityName": "Avatar_Xiao_HowlingSoul_CameraController", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_HowlingSoul", + "abilityName": "Avatar_Xiao_HowlingSoul", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_NormalAttack_DamageHandler", + "abilityName": "Avatar_Xiao_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_CoreSkill", + "abilityName": "Avatar_Xiao_CoreSkill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_FallingDamageReduction", + "abilityName": "Avatar_Xiao_FallingDamageReduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_ClimbStamina_Reduction", + "abilityName": "Avatar_Xiao_ClimbStamina_Reduction", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_QuestAbility_XiaoTriggerElementalBurst", + "abilityName": "Avatar_QuestAbility_XiaoTriggerElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao", + "abilityName": "Avatar_Xiao", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_Skill_DevilDash", + "abilityName": "Avatar_Xiao_Skill_DevilDash", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_Skill_DevilDash_AS", + "abilityName": "Avatar_Xiao_Skill_DevilDash_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_Skill_DevilDashAir", + "abilityName": "Avatar_Xiao_Skill_DevilDashAir", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_Skill_DevilDashAir_AS", + "abilityName": "Avatar_Xiao_Skill_DevilDashAir_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_TeamConfig_01BS", + "abilityName": "Avatar_Xiao_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_TeamConfig_01Loop", + "abilityName": "Avatar_Xiao_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_TeamConfig_01AS", + "abilityName": "Avatar_Xiao_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_ElementalBurst_Spine", + "abilityName": "Avatar_Xiao_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_ElementalBurst_BS", + "abilityName": "Avatar_Xiao_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_ElementalBurst_Hit", + "abilityName": "Avatar_Xiao_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_Spine_Loop", + "abilityName": "Avatar_Xiao_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_Spine", + "abilityName": "Avatar_Xiao_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xiao_02_Spine", + "abilityName": "Avatar_Xiao_02_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Xingqiu.json b/data/json/avatar/ConfigAvatar_Xingqiu.json new file mode 100644 index 0000000..812ca6e --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Xingqiu.json @@ -0,0 +1,189 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Xingqiu_ExtraAttack", + "abilityName": "Avatar_Xingqiu_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Spoondrift", + "abilityName": "Avatar_Xingqiu_Spoondrift", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_PhantomShield", + "abilityName": "Avatar_Xingqiu_PhantomShield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Minazuki", + "abilityName": "Avatar_Xingqiu_Minazuki", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Minazuki_Attack01", + "abilityName": "Avatar_Xingqiu_Minazuki_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Minazuki_Attack02", + "abilityName": "Avatar_Xingqiu_Minazuki_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Minazuki_Attack03", + "abilityName": "Avatar_Xingqiu_Minazuki_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_PhantomBurst_GainEnergy", + "abilityName": "Avatar_Xingqiu_PhantomBurst_GainEnergy", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_PhantomBurst_Debuff", + "abilityName": "Avatar_Xingqiu_PhantomBurst_Debuff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_DamageHandler", + "abilityName": "Avatar_Xingqiu_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_FallingAnthem", + "abilityName": "Avatar_Xingqiu_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu", + "abilityName": "Avatar_Xingqiu", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Skill_ElmentalArt_01", + "abilityName": "Avatar_Xingqiu_Skill_ElmentalArt_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Skill_ElmentalArt_01_AS", + "abilityName": "Avatar_Xingqiu_Skill_ElmentalArt_01_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Skill_ElmentalBurst", + "abilityName": "Avatar_Xingqiu_Skill_ElmentalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Skill_ElmentalBurst_AS", + "abilityName": "Avatar_Xingqiu_Skill_ElmentalBurst_AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_TeamConfig_01BS", + "abilityName": "Avatar_Xingqiu_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_TeamConfig_01Loop", + "abilityName": "Avatar_Xingqiu_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_TeamConfig_01AS", + "abilityName": "Avatar_Xingqiu_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementalBurst_Spine", + "abilityName": "Avatar_Xingqiu_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementalBurst_BS", + "abilityName": "Avatar_Xingqiu_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementalBurst", + "abilityName": "Avatar_Xingqiu_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_01", + "abilityName": "Avatar_Xingqiu_ElementBurst_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_06", + "abilityName": "Avatar_Xingqiu_ElementBurst_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_02", + "abilityName": "Avatar_Xingqiu_ElementBurst_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_07", + "abilityName": "Avatar_Xingqiu_ElementBurst_07", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_03", + "abilityName": "Avatar_Xingqiu_ElementBurst_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_08", + "abilityName": "Avatar_Xingqiu_ElementBurst_08", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_04", + "abilityName": "Avatar_Xingqiu_ElementBurst_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_09", + "abilityName": "Avatar_Xingqiu_ElementBurst_09", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_05", + "abilityName": "Avatar_Xingqiu_ElementBurst_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementBurst_10", + "abilityName": "Avatar_Xingqiu_ElementBurst_10", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_ElementalBurst_Hit", + "abilityName": "Avatar_Xingqiu_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_elementalBurst_normal", + "abilityName": "Avatar_Xingqiu_elementalBurst_normal", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_elementalBurst_buff", + "abilityName": "Avatar_Xingqiu_elementalBurst_buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Spine_Loop", + "abilityName": "Avatar_Xingqiu_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xingqiu_Spine", + "abilityName": "Avatar_Xingqiu_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Xinyan.json b/data/json/avatar/ConfigAvatar_Xinyan.json new file mode 100644 index 0000000..3245e11 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Xinyan.json @@ -0,0 +1,99 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Xinyan_ExtraAttack", + "abilityName": "Avatar_Xinyan_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalArt_Hit", + "abilityName": "Avatar_Xinyan_ElementalArt_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalArt_Shield_1", + "abilityName": "Avatar_Xinyan_ElementalArt_Shield_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalArt_Shield_2", + "abilityName": "Avatar_Xinyan_ElementalArt_Shield_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalArt_Shield_3", + "abilityName": "Avatar_Xinyan_ElementalArt_Shield_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalArt", + "abilityName": "Avatar_Xinyan_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalArt_Shield_3_Explosion", + "abilityName": "Avatar_Xinyan_ElementalArt_Shield_3_Explosion", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalBurst_Initiate", + "abilityName": "Avatar_Xinyan_ElementalBurst_Initiate", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalBurst_Hit", + "abilityName": "Avatar_Xinyan_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalBurst_Effect", + "abilityName": "Avatar_Xinyan_ElementalBurst_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalBurst_Fire", + "abilityName": "Avatar_Xinyan_ElementalBurst_Fire", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_ElementalBurst_CameraExit", + "abilityName": "Avatar_Xinyan_ElementalBurst_CameraExit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_FallingAnthem", + "abilityName": "Avatar_Xinyan_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_NormalAttack_DamageHandler", + "abilityName": "Avatar_Xinyan_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan", + "abilityName": "Avatar_Xinyan", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_TeamConfig_01BS", + "abilityName": "Avatar_Xinyan_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_TeamConfig_01Loop", + "abilityName": "Avatar_Xinyan_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Xinyan_TeamConfig_01AS", + "abilityName": "Avatar_Xinyan_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_PlayGuitar01_Xinyan", + "abilityName": "Avatar_PlayGuitar01_Xinyan", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Yae.json b/data/json/avatar/ConfigAvatar_Yae.json new file mode 100644 index 0000000..0589344 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Yae.json @@ -0,0 +1,224 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Yae_ExtraAttack", + "abilityName": "Avatar_Yae_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ExtraAttack_TriggerBullet", + "abilityName": "Avatar_Yae_ExtraAttack_TriggerBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ExtraAttack_Damage_1", + "abilityName": "Avatar_Yae_ExtraAttack_Damage_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ExtraAttack_Damage_2", + "abilityName": "Avatar_Yae_ExtraAttack_Damage_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ExtraAttack_Damage_3", + "abilityName": "Avatar_Yae_ExtraAttack_Damage_3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ExtraAttack_Damage_4", + "abilityName": "Avatar_Yae_ExtraAttack_Damage_4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ExtraAttack_Damage_5", + "abilityName": "Avatar_Yae_ExtraAttack_Damage_5", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Attack_Hit", + "abilityName": "Avatar_Yae_Attack_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Attack01", + "abilityName": "Avatar_Yae_Attack01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Attack02", + "abilityName": "Avatar_Yae_Attack02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Attack03", + "abilityName": "Avatar_Yae_Attack03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Attack01_Damage", + "abilityName": "Avatar_Yae_Attack01_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Attack02_Damage", + "abilityName": "Avatar_Yae_Attack02_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Attack03_Damage", + "abilityName": "Avatar_Yae_Attack03_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalArt_ElderBrain", + "abilityName": "Avatar_Yae_ElementalArt_ElderBrain", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalArt", + "abilityName": "Avatar_Yae_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalArt_Foxtail", + "abilityName": "Avatar_Yae_ElementalArt_Foxtail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalArt_Retreat_Foxtail", + "abilityName": "Avatar_Yae_ElementalArt_Retreat_Foxtail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalArt_Foxtail_Remover", + "abilityName": "Avatar_Yae_ElementalArt_Foxtail_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalArt_Air", + "abilityName": "Avatar_Yae_ElementalArt_Air", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_FoxTower_ThunderFall_Level1", + "abilityName": "Avatar_Yae_FoxTower_ThunderFall_Level1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_FoxTower_ThunderFall_Level2", + "abilityName": "Avatar_Yae_FoxTower_ThunderFall_Level2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_FoxTower_ThunderFall_Level3", + "abilityName": "Avatar_Yae_FoxTower_ThunderFall_Level3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_FoxTower_ThunderFall_Level4", + "abilityName": "Avatar_Yae_FoxTower_ThunderFall_Level4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_CameraController", + "abilityName": "Avatar_Yae_ElementalBurst_CameraController", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_PostEffect", + "abilityName": "Avatar_Yae_ElementalBurst_PostEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Yae_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_Mark_Tower", + "abilityName": "Avatar_Yae_ElementalBurst_Mark_Tower", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_Clear_Tower", + "abilityName": "Avatar_Yae_ElementalBurst_Clear_Tower", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_PermanentSkill_1", + "abilityName": "Avatar_Yae_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_PermanentSkill_2", + "abilityName": "Avatar_Yae_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Constellation_6", + "abilityName": "Avatar_Yae_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_FallingAnthem_Foxtail", + "abilityName": "Avatar_Yae_FallingAnthem_Foxtail", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_FallingAnthem", + "abilityName": "Avatar_Yae_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae", + "abilityName": "Avatar_Yae", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_TeamConfig_01BS", + "abilityName": "Avatar_Yae_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_TeamConfig_01Loop", + "abilityName": "Avatar_Yae_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_TeamConfig_01AS", + "abilityName": "Avatar_Yae_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_Spine", + "abilityName": "Avatar_Yae_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_BS", + "abilityName": "Avatar_Yae_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_Hit", + "abilityName": "Avatar_Yae_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_ElementalBurst_Buff", + "abilityName": "Avatar_Yae_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yae_Spine_Loop", + "abilityName": "Avatar_Yae_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_YaeMiko", + "abilityName": "Avatar_YaeMiko", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Yaoyao.json b/data/json/avatar/ConfigAvatar_Yaoyao.json new file mode 100644 index 0000000..bd6c35f --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Yaoyao.json @@ -0,0 +1,209 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Yaoyao_ExtraAttack", + "abilityName": "Avatar_Yaoyao_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ExtraAttack_CreateBullet", + "abilityName": "Avatar_Yaoyao_ExtraAttack_CreateBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ExtraAttack_Bullet", + "abilityName": "Avatar_Yaoyao_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt", + "abilityName": "Avatar_Yaoyao_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_CreateRabbit", + "abilityName": "Avatar_Yaoyao_ElementalArt_CreateRabbit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_CreateRabbitM", + "abilityName": "Avatar_Yaoyao_ElementalArt_CreateRabbitM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_CreateGadget", + "abilityName": "Avatar_Yaoyao_ElementalArt_CreateGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst", + "abilityName": "Avatar_Yaoyao_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_StrikeL7", + "abilityName": "Avatar_Yaoyao_ElementalBurst_StrikeL7", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Strike", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_CreateGadget", + "abilityName": "Avatar_Yaoyao_ElementalBurst_CreateGadget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_NormalAttack_DamageHandler", + "abilityName": "Avatar_Yaoyao_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_FallingAnthem", + "abilityName": "Avatar_Yaoyao_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_Turnip_Bullet", + "abilityName": "Avatar_Yaoyao_Turnip_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_Turnip", + "abilityName": "Avatar_Yaoyao_Turnip", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_Golden_Turnip_Bullet", + "abilityName": "Avatar_Yaoyao_Golden_Turnip_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_Golden_Turnip", + "abilityName": "Avatar_Yaoyao_Golden_Turnip", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_Turnip_Bullet_Parabola", + "abilityName": "Avatar_Yaoyao_Turnip_Bullet_Parabola", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_Rabbit", + "abilityName": "Avatar_Yaoyao_ElementalArt_Rabbit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_Rabbit_Throw", + "abilityName": "Avatar_Yaoyao_ElementalArt_Rabbit_Throw", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_CreateGadgeth", + "abilityName": "Avatar_Yaoyao_ElementalArt_CreateGadgeth", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_Rabbit_Throw_Speed_Fix", + "abilityName": "Avatar_Yaoyao_ElementalArt_Rabbit_Throw_Speed_Fix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Rabbit", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Rabbit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Rabbit_Throw_Pre", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Rabbit_Throw_Pre", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Rabbit_Throw_Pre_BulletTrigger", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Rabbit_Throw_Pre_BulletTrigger", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_CreateGadgeth", + "abilityName": "Avatar_Yaoyao_ElementalBurst_CreateGadgeth", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Rabbit_Throw", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Rabbit_Throw", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_PermanentSkill_1", + "abilityName": "Avatar_Yaoyao_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_PermanentSkill_2", + "abilityName": "Avatar_Yaoyao_PermanentSkill_2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao", + "abilityName": "Avatar_Yaoyao", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalArt_Rabbit_Throw1Avatar_Yaoyao_ElementalArt_Rabbit_Throw_Speed_Fix", + "abilityName": "Avatar_Yaoyao_ElementalArt_Rabbit_Throw1Avatar_Yaoyao_ElementalArt_Rabbit_Throw_Speed_Fix", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_TeamConfig_01BS", + "abilityName": "Avatar_Yaoyao_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_TeamConfig_01Loop", + "abilityName": "Avatar_Yaoyao_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_TeamConfig_01AS", + "abilityName": "Avatar_Yaoyao_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Spine", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_BS_Rabbit", + "abilityName": "Avatar_Yaoyao_ElementalBurst_BS_Rabbit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_BS", + "abilityName": "Avatar_Yaoyao_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementBurst", + "abilityName": "Avatar_Yaoyao_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Hit", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_ElementalBurst_Buff", + "abilityName": "Avatar_Yaoyao_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yaoyao_Spine_Loop", + "abilityName": "Avatar_Yaoyao_Spine_Loop", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Yelan.json b/data/json/avatar/ConfigAvatar_Yelan.json new file mode 100644 index 0000000..fcc89aa --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Yelan.json @@ -0,0 +1,474 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Activity_CharAmusement_Yelan_ResetCD", + "abilityName": "Avatar_Activity_CharAmusement_Yelan_ResetCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Activity_CharAmusement_Yelan_ResetCD_Delay1Avatar_Activity_CharAmusement_Yelan_ResetCD_Delay", + "abilityName": "Avatar_Activity_CharAmusement_Yelan_ResetCD_Delay1Avatar_Activity_CharAmusement_Yelan_ResetCD_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PressShoot", + "abilityName": "Avatar_Yelan_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_AimPressShoot", + "abilityName": "Avatar_Yelan_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootAimingArrow_Charge", + "abilityName": "Avatar_Yelan_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_01", + "abilityName": "Avatar_Yelan_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_02", + "abilityName": "Avatar_Yelan_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_03", + "abilityName": "Avatar_Yelan_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_04", + "abilityName": "Avatar_Yelan_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_05", + "abilityName": "Avatar_Yelan_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_06", + "abilityName": "Avatar_Yelan_ShootArrow_06", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_Aiming", + "abilityName": "Avatar_Yelan_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_Bullet", + "abilityName": "Avatar_Yelan_ShootArrow_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_Bullet_Last", + "abilityName": "Avatar_Yelan_ShootArrow_Bullet_Last", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_Enchanted_WithOutWater", + "abilityName": "Avatar_Yelan_ShootArrow_Enchanted_WithOutWater", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShootArrow_Enchanted_WithWater", + "abilityName": "Avatar_Yelan_ShootArrow_Enchanted_WithWater", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_SneakArrow", + "abilityName": "Avatar_Yelan_SneakArrow", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_Sneak_Shoot", + "abilityName": "Avatar_Yelan_Sneak_Shoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalArt_Check", + "abilityName": "Avatar_Yelan_ElementalArt_Check", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Initialize", + "abilityName": "Avatar_Yelan_QuietStep_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Effect", + "abilityName": "Avatar_Yelan_QuietStep_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Effect_Line", + "abilityName": "Avatar_Yelan_QuietStep_Effect_Line", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Effect_Line_Remover", + "abilityName": "Avatar_Yelan_QuietStep_Effect_Line_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Weather", + "abilityName": "Avatar_Yelan_QuietStep_Weather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_MaxTimer", + "abilityName": "Avatar_Yelan_QuietStep_MaxTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_TurndDirection_Add", + "abilityName": "Avatar_Yelan_QuietStep_TurndDirection_Add", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_TurndDirection_Remove", + "abilityName": "Avatar_Yelan_QuietStep_TurndDirection_Remove", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_TurndDirection", + "abilityName": "Avatar_Yelan_QuietStep_TurndDirection", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_StrikeEndEffect", + "abilityName": "Avatar_Yelan_QuietStep_StrikeEndEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_StopEndEffect", + "abilityName": "Avatar_Yelan_QuietStep_StopEndEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_LineStrike_Remover", + "abilityName": "Avatar_Yelan_QuietStep_LineStrike_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalArt_DropBall_Handler", + "abilityName": "Avatar_Yelan_ElementalArt_DropBall_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Effect_Line_Handler_DelayM", + "abilityName": "Avatar_Yelan_QuietStep_Effect_Line_Handler_DelayM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Effect_Line_Handler", + "abilityName": "Avatar_Yelan_QuietStep_Effect_Line_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_Effect_Line_Handler_Delay", + "abilityName": "Avatar_Yelan_QuietStep_Effect_Line_Handler_Delay", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_LineStrike", + "abilityName": "Avatar_Yelan_QuietStep_LineStrike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalArt_ScreenEffect", + "abilityName": "Avatar_Yelan_ElementalArt_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_SwitchJumpSprint", + "abilityName": "Avatar_Yelan_QuietStep_SwitchJumpSprint", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalArt_TriggerCollision", + "abilityName": "Avatar_Yelan_ElementalArt_TriggerCollision", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_TriggerConstellation", + "abilityName": "Avatar_Yelan_QuietStep_TriggerConstellation", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_TriggerBullet", + "abilityName": "Avatar_Yelan_QuietStep_TriggerBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_FireBomb", + "abilityName": "Avatar_Yelan_QuietStep_FireBomb", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_TriggerConstellationM", + "abilityName": "Avatar_Yelan_QuietStep_TriggerConstellationM", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_CollisionDetect", + "abilityName": "Avatar_Yelan_QuietStep_CollisionDetect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_ResetSneak", + "abilityName": "Avatar_Yelan_QuietStep_ResetSneak", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_QuietStep_TimeBomb_OnMonster", + "abilityName": "Avatar_Yelan_QuietStep_TimeBomb_OnMonster", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalArt_QuietStep_Bullet", + "abilityName": "Avatar_Yelan_ElementalArt_QuietStep_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst", + "abilityName": "Avatar_Yelan_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Initialize", + "abilityName": "Avatar_Yelan_ElementalBurst_Initialize", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Camera_Effect", + "abilityName": "Avatar_Yelan_ElementalBurst_Camera_Effect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Camera_Handler", + "abilityName": "Avatar_Yelan_ElementalBurst_Camera_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_EmotionControl", + "abilityName": "Avatar_Yelan_ElementalBurst_EmotionControl", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Camera_PushTarget", + "abilityName": "Avatar_Yelan_ElementalBurst_Camera_PushTarget", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Invincible", + "abilityName": "Avatar_Yelan_ElementalBurst_Invincible", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_WeatherChange", + "abilityName": "Avatar_Yelan_ElementalBurst_WeatherChange", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Camera_DungeonEffect", + "abilityName": "Avatar_Yelan_ElementalBurst_Camera_DungeonEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_CameraBlur", + "abilityName": "Avatar_Yelan_ElementalBurst_CameraBlur", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_CreateDice", + "abilityName": "Avatar_Yelan_ElementalBurst_CreateDice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Strike_Damage", + "abilityName": "Avatar_Yelan_ElementalBurst_Strike_Damage", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_PostEffect", + "abilityName": "Avatar_Yelan_ElementalBurst_PostEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_ScreenEffect", + "abilityName": "Avatar_Yelan_ElementalBurst_ScreenEffect", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShareElementalArt_Handler", + "abilityName": "Avatar_Yelan_ShareElementalArt_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ShareElementalArt_TriggerDice", + "abilityName": "Avatar_Yelan_ShareElementalArt_TriggerDice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra", + "abilityName": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_PostEffectJ", + "abilityName": "Avatar_Yelan_ElementalBurst_PostEffectJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_Constellation_6", + "abilityName": "Avatar_Yelan_Constellation_6", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Dice", + "abilityName": "Avatar_Yelan_ElementalBurst_Dice", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_2_Handler", + "abilityName": "Avatar_Yelan_PermanentSkill_2_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_2_Buff_OnTeam", + "abilityName": "Avatar_Yelan_PermanentSkill_2_Buff_OnTeam", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_2_Buff", + "abilityName": "Avatar_Yelan_PermanentSkill_2_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet", + "abilityName": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Dice_Bullet_01", + "abilityName": "Avatar_Yelan_ElementalBurst_Dice_Bullet_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_FallingAnthem", + "abilityName": "Avatar_Yelan_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_1", + "abilityName": "Avatar_Yelan_PermanentSkill_1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_1_Handler", + "abilityName": "Avatar_Yelan_PermanentSkill_1_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_1_Buff", + "abilityName": "Avatar_Yelan_PermanentSkill_1_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_1_Buff_Lv1", + "abilityName": "Avatar_Yelan_PermanentSkill_1_Buff_Lv1", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_1_Buff_Lv2", + "abilityName": "Avatar_Yelan_PermanentSkill_1_Buff_Lv2", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_1_Buff_Lv3", + "abilityName": "Avatar_Yelan_PermanentSkill_1_Buff_Lv3", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_PermanentSkill_1_Buff_Lv4", + "abilityName": "Avatar_Yelan_PermanentSkill_1_Buff_Lv4", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Dice_Bullet_Extra", + "abilityName": "Avatar_Yelan_ElementalBurst_Dice_Bullet_Extra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_Constellatin_4_Handler", + "abilityName": "Avatar_Yelan_Constellatin_4_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_Constellatin_4_Timer", + "abilityName": "Avatar_Yelan_Constellatin_4_Timer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_Constellation_6_BuffTimer", + "abilityName": "Avatar_Yelan_Constellation_6_BuffTimer", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_Constellation_6_StateHandler", + "abilityName": "Avatar_Yelan_Constellation_6_StateHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_Constellation_6_State", + "abilityName": "Avatar_Yelan_Constellation_6_State", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_SneakArrow_Extra_Before", + "abilityName": "Avatar_Yelan_SneakArrow_Extra_Before", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_SneakArrow_Extra_After", + "abilityName": "Avatar_Yelan_SneakArrow_Extra_After", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan", + "abilityName": "Avatar_Yelan", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet4Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra", + "abilityName": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet4Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_TeamConfig_01BS", + "abilityName": "Avatar_Yelan_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_TeamConfig_01Loop", + "abilityName": "Avatar_Yelan_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_TeamConfig_01AS", + "abilityName": "Avatar_Yelan_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra4Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra", + "abilityName": "Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra4Avatar_Yelan_ElementalBurst_Dice_TriggerBullet_Extra", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Yoimiya.json b/data/json/avatar/ConfigAvatar_Yoimiya.json new file mode 100644 index 0000000..c5603ba --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Yoimiya.json @@ -0,0 +1,239 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Yoimiya_PressShoot", + "abilityName": "Avatar_Yoimiya_PressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_AimPressShoot", + "abilityName": "Avatar_Yoimiya_AimPressShoot", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_01", + "abilityName": "Avatar_Yoimiya_ShootArrow_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_FireShoot_State", + "abilityName": "Avatar_Yoimiya_FireShoot_State", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_01_01", + "abilityName": "Avatar_Yoimiya_ShootArrow_01_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_02", + "abilityName": "Avatar_Yoimiya_ShootArrow_02", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_03", + "abilityName": "Avatar_Yoimiya_ShootArrow_03", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_04", + "abilityName": "Avatar_Yoimiya_ShootArrow_04", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_04_01", + "abilityName": "Avatar_Yoimiya_ShootArrow_04_01", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_05", + "abilityName": "Avatar_Yoimiya_ShootArrow_05", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootAimingArrow_Charge", + "abilityName": "Avatar_Yoimiya_ShootAimingArrow_Charge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ShootArrow_Aiming", + "abilityName": "Avatar_Yoimiya_ShootArrow_Aiming", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalArt_DropBall", + "abilityName": "Avatar_Yoimiya_ElementalArt_DropBall", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalArt", + "abilityName": "Avatar_Yoimiya_ElementalArt", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_Stack_Num", + "abilityName": "Avatar_Yoimiya_Stack_Num", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Camera", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Camera", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst", + "abilityName": "Avatar_Yoimiya_ElementalBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_SetTag", + "abilityName": "Avatar_Yoimiya_ElementalBurst_SetTag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_MonsterInTag", + "abilityName": "Avatar_Yoimiya_ElementalBurst_MonsterInTag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Count", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Count", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Tag", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Tag", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_TimeCount", + "abilityName": "Avatar_Yoimiya_ElementalBurst_TimeCount", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_EffectDone", + "abilityName": "Avatar_Yoimiya_ElementalBurst_EffectDone", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_InTriggerCD", + "abilityName": "Avatar_Yoimiya_ElementalBurst_InTriggerCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_BombAttackCD", + "abilityName": "Avatar_Yoimiya_ElementalBurst_BombAttackCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_BombAttackEvent", + "abilityName": "Avatar_Yoimiya_ElementalBurst_BombAttackEvent", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_WhenMonsterOnKill", + "abilityName": "Avatar_Yoimiya_ElementalBurst_WhenMonsterOnKill", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Tag1UNIQUE_Avatar_Yoimiya_ElementalBurst_BombAttackCD", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Tag1UNIQUE_Avatar_Yoimiya_ElementalBurst_BombAttackCD", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_TagJ", + "abilityName": "Avatar_Yoimiya_ElementalBurst_TagJ", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_FallingAnthem", + "abilityName": "Avatar_Yoimiya_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya", + "abilityName": "Avatar_Yoimiya", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_TeamConfig_01BS", + "abilityName": "Avatar_Yoimiya_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_TeamConfig_01Loop", + "abilityName": "Avatar_Yoimiya_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_TeamConfig_01AS", + "abilityName": "Avatar_Yoimiya_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Yoimiya_Turquoise", + "abilityName": "AvatarItem_Yoimiya_Turquoise", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Spine", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementBurst", + "abilityName": "Avatar_Yoimiya_ElementBurst", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_BS", + "abilityName": "Avatar_Yoimiya_ElementalBurst_BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Hit", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Hit_Buff", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Hit_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_Spine_Loop", + "abilityName": "Avatar_Yoimiya_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_Spine", + "abilityName": "Avatar_Yoimiya_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_Spine_Loop_BG", + "abilityName": "Avatar_Yoimiya_Spine_Loop_BG", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yoimiya_ElementalBurst_Spine_Star", + "abilityName": "Avatar_Yoimiya_ElementalBurst_Spine_Star", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Yoimiya_Turquoise_01_TurquoiseShine", + "abilityName": "AvatarItem_Yoimiya_Turquoise_01_TurquoiseShine", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Yoimiya_Turquoise_01_Outside", + "abilityName": "AvatarItem_Yoimiya_Turquoise_01_Outside", + "abilityOverride": "" + }, + { + "abilityID": "AvatarItem_Yoimiya_Turquoise_01_Inside", + "abilityName": "AvatarItem_Yoimiya_Turquoise_01_Inside", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Yunjin.json b/data/json/avatar/ConfigAvatar_Yunjin.json new file mode 100644 index 0000000..e594dc3 --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Yunjin.json @@ -0,0 +1,119 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Yunjin_NormalAttack_DamageHandler", + "abilityName": "Avatar_Yunjin_NormalAttack_DamageHandler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ExtraAttack", + "abilityName": "Avatar_Yunjin_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ExtraAttack_Cast", + "abilityName": "Avatar_Yunjin_ExtraAttack_Cast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ExtraAttack_Bullet", + "abilityName": "Avatar_Yunjin_ExtraAttack_Bullet", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_FallingAnthem", + "abilityName": "Avatar_Yunjin_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalArt_Handler", + "abilityName": "Avatar_Yunjin_ElementalArt_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalArt_Remover", + "abilityName": "Avatar_Yunjin_ElementalArt_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_Kaoqi", + "abilityName": "Avatar_Yunjin_Kaoqi", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_Kaoqi_Reset", + "abilityName": "Avatar_Yunjin_Kaoqi_Reset", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_Kaoqi_Remover", + "abilityName": "Avatar_Yunjin_Kaoqi_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalArt_Strike", + "abilityName": "Avatar_Yunjin_ElementalArt_Strike", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalArt_Strike_VFX", + "abilityName": "Avatar_Yunjin_ElementalArt_Strike_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalArt_Strike_Weather", + "abilityName": "Avatar_Yunjin_ElementalArt_Strike_Weather", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalBurst_Cast", + "abilityName": "Avatar_Yunjin_ElementalBurst_Cast", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalBurst_Buff_Handler", + "abilityName": "Avatar_Yunjin_ElementalBurst_Buff_Handler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalBurst_Buff", + "abilityName": "Avatar_Yunjin_ElementalBurst_Buff", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalBurst_Reset", + "abilityName": "Avatar_Yunjin_ElementalBurst_Reset", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_ElementalBurst_Buff_VFX", + "abilityName": "Avatar_Yunjin_ElementalBurst_Buff_VFX", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_Buff_VFX_Remover", + "abilityName": "Avatar_Yunjin_Buff_VFX_Remover", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin", + "abilityName": "Avatar_Yunjin", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_TeamConfig_01BS", + "abilityName": "Avatar_Yunjin_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_TeamConfig_01Loop", + "abilityName": "Avatar_Yunjin_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Yunjin_TeamConfig_01AS", + "abilityName": "Avatar_Yunjin_TeamConfig_01AS", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/json/avatar/ConfigAvatar_Zhongli.json b/data/json/avatar/ConfigAvatar_Zhongli.json new file mode 100644 index 0000000..eea546e --- /dev/null +++ b/data/json/avatar/ConfigAvatar_Zhongli.json @@ -0,0 +1,94 @@ +{ + "abilities": [ + { + "abilityID": "Avatar_Zhongli_ExtraAttack", + "abilityName": "Avatar_Zhongli_ExtraAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_PillarOrShield_HoldCharge", + "abilityName": "Avatar_Zhongli_PillarOrShield_HoldCharge", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_SetHairEmissionScaler", + "abilityName": "Avatar_Zhongli_SetHairEmissionScaler", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_PrimoPillar", + "abilityName": "Avatar_Zhongli_PrimoPillar", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_RockShield", + "abilityName": "Avatar_Zhongli_RockShield", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_GeoOrder", + "abilityName": "Avatar_Zhongli_GeoOrder", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_RockFever", + "abilityName": "Avatar_Zhongli_RockFever", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_NormalAttack", + "abilityName": "Avatar_Zhongli_NormalAttack", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_FallingAnthem", + "abilityName": "Avatar_Zhongli_FallingAnthem", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli", + "abilityName": "Avatar_Zhongli", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_TeamConfig_01BS", + "abilityName": "Avatar_Zhongli_TeamConfig_01BS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_TeamConfig_01Loop", + "abilityName": "Avatar_Zhongli_TeamConfig_01Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_TeamConfig_01AS", + "abilityName": "Avatar_Zhongli_TeamConfig_01AS", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_ElementalBurst_Spine", + "abilityName": "Avatar_Zhongli_ElementalBurst_Spine", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_ElementalBurst_Hit", + "abilityName": "Avatar_Zhongli_ElementalBurst_Hit", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_Spine_Loop", + "abilityName": "Avatar_Zhongli_Spine_Loop", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_Spine_Loop_Cloud", + "abilityName": "Avatar_Zhongli_Spine_Loop_Cloud", + "abilityOverride": "" + }, + { + "abilityID": "Avatar_Zhongli_Sub_Spine", + "abilityName": "Avatar_Zhongli_Sub_Spine", + "abilityOverride": "" + } + ] +} \ No newline at end of file diff --git a/data/txt/AvatarData.txt b/data/txt/AvatarData.txt new file mode 100644 index 0000000..d9f24f1 --- /dev/null +++ b/data/txt/AvatarData.txt @@ -0,0 +1,119 @@ +bodyType iconName sideIconName qualityType chargeEfficiency initialWeapon weaponType imageName skillDepotId staminaRecoverSpeed candSkillDepotIds avatarIdentityType avatarPromoteId avatarPromoteRewardLevelList featureTagGroupID hpBase attackBase defenseBase critical criticalHurt id useType isRangeAttack +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 101 25 AVATAR_IDENTITY_NORMAL 2 1,3,5 10000001 166.0 5.0 8.0 0.05 0.5 10000001 false +BODY_GIRL UI_AvatarIcon_Ayaka UI_AvatarIcon_Side_Ayaka QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Ayaka 201 25 AVATAR_IDENTITY_NORMAL 2 1,3,5 10000002 1000.986 26.6266 61.0266 0.05 0.5 10000002 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Qin 301 25 AVATAR_IDENTITY_NORMAL 3 1,3,5 10000003 1143.984 18.62 59.83 0.05 0.5 10000003 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_PlayerBoy UI_AvatarIcon_Side_PlayerBoy QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 501 25 501,502,503,504,505,506,507,508 12 1,3,5 10000005 911.791 17.808 57.225 0.05 0.5 10000005 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Lisa UI_AvatarIcon_Side_Lisa QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Lisa 601 25 AVATAR_IDENTITY_NORMAL 4 1,3,5 10000006 802.3761 19.41072 48.069 0.05 0.5 10000006 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_PlayerGirl UI_AvatarIcon_Side_PlayerGirl QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 701 25 701,702,703,704,705,706,707,708 12 1,3,5 10000007 911.791 17.808 57.225 0.05 0.5 10000007 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Barbara UI_AvatarIcon_Side_Barbara QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Barbara 1401 25 AVATAR_IDENTITY_NORMAL 14 1,3,5 10000014 820.6119 13.356 56.0805 0.05 0.5 10000014 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Kaeya UI_AvatarIcon_Side_Kaeya QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 15 1,3,5 10000015 975.6164 18.6984 66.381 0.05 0.5 10000015 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Diluc UI_AvatarIcon_Side_Diluc QUALITY_ORANGE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Diluc 1601 25 AVATAR_IDENTITY_NORMAL 16 1,3,5 10000016 1010.5192 26.068 61.0266 0.05 0.5 10000016 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Razor UI_AvatarIcon_Side_Razor QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Qin 2001 25 AVATAR_IDENTITY_NORMAL 20 1,3,5 10000020 1002.9701 19.5888 62.9475 0.05 0.5 10000020 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Ambor UI_AvatarIcon_Side_Ambor QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Ambor 2101 25 AVATAR_IDENTITY_NORMAL 21 1,3,5 10000021 793.2582 18.6984 50.358 0.05 0.5 10000021 AVATAR_FORMAL true +BODY_BOY UI_AvatarIcon_Venti UI_AvatarIcon_Side_Venti QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Venti 2201 25 AVATAR_IDENTITY_NORMAL 22 1,3,5 10000022 819.8552 20.482 52.0521 0.05 0.5 10000022 AVATAR_FORMAL true +BODY_GIRL UI_AvatarIcon_Xiangling UI_AvatarIcon_Side_Xiangling QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Xiangling 2301 25 AVATAR_IDENTITY_NORMAL 23 1,3,5 10000023 911.791 18.87648 56.0805 0.05 0.5 10000023 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Beidou UI_AvatarIcon_Side_Beidou QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Beidou 2401 25 AVATAR_IDENTITY_NORMAL 24 1,3,5 10000024 1094.1492 18.87648 54.36375 0.05 0.5 10000024 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Xingqiu UI_AvatarIcon_Side_Xingqiu QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Xingqiu 2501 25 AVATAR_IDENTITY_NORMAL 25 1,3,5 10000025 857.08356 16.9176 63.51975 0.05 0.5 10000025 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Xiao UI_AvatarIcon_Side_Xiao QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Xiao 2601 25 AVATAR_IDENTITY_NORMAL 26 1,3,5 10000026 991.4528 27.1852 62.2232 0.05 0.5 10000026 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Ningguang UI_AvatarIcon_Side_Ningguang QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Lisa 2701 25 AVATAR_IDENTITY_NORMAL 27 1,3,5 10000027 820.6119 17.808 48.069 0.05 0.5 10000027 AVATAR_FORMAL false +BODY_LOLI UI_AvatarIcon_Klee UI_AvatarIcon_Side_Klee QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Klee 2901 25 AVATAR_IDENTITY_NORMAL 29 1,3,5 10000029 800.7888 24.206 47.864 0.05 0.5 10000029 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Zhongli UI_AvatarIcon_Side_Zhongli QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Diluc 3001 25 AVATAR_IDENTITY_NORMAL 30 1,3,5 10000030 1143.984 19.551 57.4368 0.05 0.5 10000030 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Fischl UI_AvatarIcon_Side_Fischl QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Fischl 3101 25 AVATAR_IDENTITY_NORMAL 31 1,3,5 10000031 770.4634 20.4792 49.78575 0.05 0.5 10000031 AVATAR_FORMAL true +BODY_BOY UI_AvatarIcon_Bennett UI_AvatarIcon_Side_Bennett QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Bennett 3201 25 AVATAR_IDENTITY_NORMAL 32 1,3,5 10000032 1039.4418 16.0272 64.66425 0.05 0.5 10000032 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Tartaglia UI_AvatarIcon_Side_Tartaglia QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Tartaglia 3301 25 AVATAR_IDENTITY_NORMAL 33 1,3,5 10000033 1020.0524 23.4612 63.4198 0.05 0.5 10000033 AVATAR_FORMAL true +BODY_GIRL UI_AvatarIcon_Noel UI_AvatarIcon_Side_Noel QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Noel 3401 25 AVATAR_IDENTITY_NORMAL 34 1,3,5 10000034 1012.088 16.0272 66.95325 0.05 0.5 10000034 AVATAR_FORMAL false +BODY_LOLI UI_AvatarIcon_Qiqi UI_AvatarIcon_Side_Qiqi QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Qin 3501 25 AVATAR_IDENTITY_NORMAL 35 1,3,5 10000035 962.8532 22.344 71.796 0.05 0.5 10000035 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Chongyun UI_AvatarIcon_Side_Chongyun QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Kate 3601 25 AVATAR_IDENTITY_NORMAL 36 1,3,5 10000036 920.90894 18.6984 54.36375 0.05 0.5 10000036 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Ganyu UI_AvatarIcon_Side_Ganyu QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Fischl 3701 25 AVATAR_IDENTITY_NORMAL 37 1,3,5 10000037 762.656 26.068 49.0606 0.05 0.5 10000037 AVATAR_FORMAL true +BODY_BOY UI_AvatarIcon_Albedo UI_AvatarIcon_Side_Albedo QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Albedo 3801 25 AVATAR_IDENTITY_NORMAL 38 1,3,5 10000038 1029.5856 19.551 68.2062 0.05 0.5 10000038 AVATAR_FORMAL false +BODY_LOLI UI_AvatarIcon_Diona UI_AvatarIcon_Side_Diona QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Diona 3901 25 AVATAR_IDENTITY_NORMAL 39 1,3,5 10000039 802.3761 17.808 50.358 0.05 0.5 10000039 AVATAR_FORMAL true +BODY_GIRL UI_AvatarIcon_Mona UI_AvatarIcon_Side_Mona QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Mona 4101 25 AVATAR_IDENTITY_NORMAL 41 1,3,5 10000041 810.322 22.344 50.8555 0.05 0.5 10000041 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Keqing UI_AvatarIcon_Side_Keqing QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Keqing 4201 25 AVATAR_IDENTITY_NORMAL 42 1,3,5 10000042 1020.0524 25.137 62.2232 0.05 0.5 10000042 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Sucrose UI_AvatarIcon_Side_Sucrose QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Sucrose 4301 25 AVATAR_IDENTITY_NORMAL 43 1,3,5 10000043 775.02234 14.2464 58.94175 0.05 0.5 10000043 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Xinyan UI_AvatarIcon_Side_Xinyan QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Xinyan 4401 25 AVATAR_IDENTITY_NORMAL 44 1,3,5 10000044 939.1447 20.83536 66.95325 0.05 0.5 10000044 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Rosaria UI_AvatarIcon_Side_Rosaria QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Rosaria 4501 25 AVATAR_IDENTITY_NORMAL 45 1,3,5 10000045 1030.3239 20.12304 59.514 0.05 0.5 10000045 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Hutao UI_AvatarIcon_Side_Hutao QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Hutao 4601 25 AVATAR_IDENTITY_NORMAL 46 1,3,5 10000046 1210.7164 8.2859 68.2062 0.05 0.5 10000046 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Kazuha UI_AvatarIcon_Side_Kazuha QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kazuha 4701 25 AVATAR_IDENTITY_NORMAL 47 1,3,5 10000047 1039.1188 23.0888 62.8215 0.05 0.5 10000047 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Feiyan UI_AvatarIcon_Side_Feiyan QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Feiyan 4801 25 AVATAR_IDENTITY_NORMAL 48 1,3,5 10000048 784.14026 20.12304 49.2135 0.05 0.5 10000048 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Yoimiya UI_AvatarIcon_Side_Yoimiya QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Yoimiya 4901 25 AVATAR_IDENTITY_NORMAL 49 1,3,5 10000049 791.2556 25.137 47.864 0.05 0.5 10000049 AVATAR_FORMAL true +BODY_MALE UI_AvatarIcon_Tohma UI_AvatarIcon_Side_Tohma QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Tohma 5001 25 AVATAR_IDENTITY_NORMAL 50 1,3,5 10000050 866.2015 16.9176 62.9475 0.05 0.5 10000050 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Eula UI_AvatarIcon_Side_Eula QUALITY_ORANGE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Eula 5101 25 AVATAR_IDENTITY_NORMAL 51 1,3,5 10000051 1029.5856 26.6266 58.45391 0.05 0.5 10000051 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Shougun UI_AvatarIcon_Side_Shougun QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Shougun 5201 25 AVATAR_IDENTITY_NORMAL 52 1,3,5 10000052 1004.79926 26.2542 61.44541 0.05 0.5 10000052 AVATAR_FORMAL false +BODY_LOLI UI_AvatarIcon_Sayu UI_AvatarIcon_Side_Sayu QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Sayu 5301 25 AVATAR_IDENTITY_NORMAL 53 1,3,5 10000053 993.8522 20.4792 62.432476 0.05 0.5 10000053 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Kokomi UI_AvatarIcon_Side_Kokomi QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Kokomi 5401 25 AVATAR_IDENTITY_NORMAL 54 1,3,5 10000054 1048.652 18.2476 51.15465 0.05 0.5 10000054 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Gorou UI_AvatarIcon_Side_Gorou QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Gorou 5501 25 AVATAR_IDENTITY_NORMAL 55 1,3,5 10000055 802.3761 15.31488 54.36375 0.05 0.5 10000055 AVATAR_FORMAL true +BODY_LADY UI_AvatarIcon_Sara UI_AvatarIcon_Side_Sara QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Sara 5601 25 AVATAR_IDENTITY_NORMAL 56 1,3,5 10000056 802.3761 16.38336 52.647 0.05 0.5 10000056 AVATAR_FORMAL true +BODY_MALE UI_AvatarIcon_Itto UI_AvatarIcon_Side_Itto QUALITY_ORANGE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Itto 5701 25 AVATAR_IDENTITY_NORMAL 57 1,3,5 10000057 1000.986 17.689 74.66784 0.05 0.5 10000057 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Yae UI_AvatarIcon_Side_Yae QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Yae 5801 25 AVATAR_IDENTITY_NORMAL 58 1,3,5 10000058 807.46204 26.4404 44.2742 0.05 0.5 10000058 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Heizo UI_AvatarIcon_Side_Heizo QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Heizo 5901 25 AVATAR_IDENTITY_NORMAL 59 1,3,5 10000059 893.5552 18.87648 57.33945 0.05 0.5 10000059 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Yelan UI_AvatarIcon_Side_Yelan QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Yelan 6001 25 AVATAR_IDENTITY_NORMAL 60 1,3,5 10000060 1124.9176 18.9924 42.65879 0.05 0.5 10000060 AVATAR_FORMAL true +BODY_GIRL UI_AvatarIcon_Momoka UI_AvatarIcon_Side_Momoka QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Momoka 6101 25 AVATAR_IDENTITY_NORMAL 61 1,3,5 10000061 1021.20593 18.6984 45.78 0.05 0.5 10000061 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Aloy UI_AvatarIcon_Side_Aloy QUALITY_ORANGE_SP 1.0 15101 WEAPON_BOW AvatarImage_Forward_Aloy 6201 25 AVATAR_IDENTITY_NORMAL 62 1,3,5 10000062 848.4548 18.21036 52.6504 0.05 0.5 10000062 AVATAR_FORMAL true +BODY_LADY UI_AvatarIcon_Shenhe UI_AvatarIcon_Side_Shenhe QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Shenhe 6301 25 AVATAR_IDENTITY_NORMAL 63 1,3,5 10000063 1011.47253 23.6474 64.6164 0.05 0.5 10000063 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Yunjin UI_AvatarIcon_Side_Yunjin QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Yunjin 6401 25 AVATAR_IDENTITY_NORMAL 64 1,3,5 10000064 893.5552 16.0272 61.5741 0.05 0.5 10000064 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Shinobu UI_AvatarIcon_Side_Shinobu QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Shinobu 6501 25 AVATAR_IDENTITY_NORMAL 65 1,3,5 10000065 1030.3239 17.808 62.9475 0.05 0.5 10000065 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Ayato UI_AvatarIcon_Side_Ayato QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Ayato 6601 25 AVATAR_IDENTITY_NORMAL 66 1,3,5 10000066 1067.7184 23.275 59.83 0.05 0.5 10000066 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Collei UI_AvatarIcon_Side_Collei QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Collei 6701 25 AVATAR_IDENTITY_NORMAL 67 1,3,5 10000067 820.6119 16.73952 50.358 0.05 0.5 10000067 AVATAR_FORMAL true +BODY_LOLI UI_AvatarIcon_Dori UI_AvatarIcon_Side_Dori QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Dori 6801 25 AVATAR_IDENTITY_NORMAL 68 1,3,5 10000068 1039.4418 18.6984 60.6585 0.05 0.5 10000068 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Tighnari UI_AvatarIcon_Side_Tighnari QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Tighnari 6901 25 AVATAR_IDENTITY_NORMAL 69 1,3,5 10000069 844.64154 20.8544 49.0606 0.05 0.5 10000069 AVATAR_FORMAL true +BODY_GIRL UI_AvatarIcon_Nilou UI_AvatarIcon_Side_Nilou QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Nilou 7001 25 AVATAR_IDENTITY_NORMAL 70 1,3,5 10000070 1182.1168 17.8752 56.71884 0.05 0.5 10000070 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Cyno UI_AvatarIcon_Side_Cyno QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Cyno 7101 25 AVATAR_IDENTITY_NORMAL 71 1,3,5 10000071 972.3864 24.7646 66.88994 0.05 0.5 10000071 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Candace UI_AvatarIcon_Side_Candace QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Candace 7201 25 AVATAR_IDENTITY_NORMAL 72 1,3,5 10000072 911.791 17.808 57.225 0.05 0.5 10000072 AVATAR_FORMAL false +BODY_LOLI UI_AvatarIcon_Nahida UI_AvatarIcon_Side_Nahida QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Nahida 7301 25 AVATAR_IDENTITY_NORMAL 73 1,3,5 10000073 806.5087 23.275 49.0606 0.05 0.5 10000073 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Layla UI_AvatarIcon_Side_Layla QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Layla 7401 25 AVATAR_IDENTITY_NORMAL 74 1,3,5 10000074 930.0268 18.16416 54.936 0.05 0.5 10000074 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Wanderer UI_AvatarIcon_Side_Wanderer QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Wanderer 7501 25 AVATAR_IDENTITY_NORMAL 75 1,3,5 10000075 791.2556 25.5094 47.2657 0.05 0.5 10000075 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Faruzan UI_AvatarIcon_Side_Faruzan QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Faruzan 7601 25 AVATAR_IDENTITY_NORMAL 76 1,3,5 10000076 802.3761 16.4724 52.647 0.05 0.5 10000076 AVATAR_FORMAL true +BODY_LOLI UI_AvatarIcon_Yaoyao UI_AvatarIcon_Side_Yaoyao QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Yaoyao 7701 25 AVATAR_IDENTITY_NORMAL 77 1,3,5 10000077 1030.3239 17.808 62.9475 0.05 0.5 10000077 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Alhatham UI_AvatarIcon_Side_Alhatham QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Alhatham 7801 25 AVATAR_IDENTITY_NORMAL 78 1,3,5 10000078 1039.1188 24.3922 60.84711 0.05 0.5 10000078 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Dehya UI_AvatarIcon_Side_Dehya QUALITY_ORANGE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Dehya 7901 25 AVATAR_IDENTITY_NORMAL 79 1,3,5 10000079 1220.2496 20.6682 48.88111 0.05 0.5 10000079 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Mika UI_AvatarIcon_Side_Mika QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Mika 8001 25 AVATAR_IDENTITY_NORMAL 80 1,3,5 10000080 1048.5597 18.6984 59.800125 0.05 0.5 10000080 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Kaveh UI_AvatarIcon_Side_Kaveh QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Kaveh 8101 25 AVATAR_IDENTITY_NORMAL 81 1,3,5 10000081 1002.9701 19.5888 62.9475 0.05 0.5 10000081 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Baizhuer UI_AvatarIcon_Side_Baizhuer QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Baizhuer 8201 25 AVATAR_IDENTITY_NORMAL 82 1,3,5 10000082 1039.1188 14.9891 38.8895 0.05 0.5 10000082 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Linette UI_AvatarIcon_Side_Linette QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Linette 8301 25 AVATAR_IDENTITY_NORMAL 83 1,3,5 10000083 1039.4418 19.41072 59.685677 0.05 0.5 10000083 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Liney UI_AvatarIcon_Side_Liney QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Liney 8401 25 AVATAR_IDENTITY_NORMAL 84 1,3,5 10000084 857.988 24.7646 41.881 0.05 0.5 10000084 AVATAR_FORMAL true +BODY_BOY UI_AvatarIcon_Freminet UI_AvatarIcon_Side_Freminet QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Freminet 8501 25 AVATAR_IDENTITY_NORMAL 85 1,3,5 10000085 1012.088 21.3696 59.39955 0.05 0.5 10000085 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Wriothesley UI_AvatarIcon_Side_Wriothesley QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Wriothesley 8601 25 AVATAR_IDENTITY_NORMAL 86 1,3,5 10000086 1058.1852 24.206 59.41119 0.05 0.5 10000086 AVATAR_FORMAL false +BODY_MALE UI_AvatarIcon_Neuvillette UI_AvatarIcon_Side_Neuvillette QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Neuvillette 8701 25 AVATAR_IDENTITY_NORMAL 87 1,3,5 10000087 1143.984 16.21802 44.8725 0.05 0.5 10000087 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Charlotte UI_AvatarIcon_Side_Charlotte QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Charlotte 8801 25 AVATAR_IDENTITY_NORMAL 88 1,3,5 10000088 902.6731 14.51352 45.78 0.05 0.5 10000088 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Furina UI_AvatarIcon_Side_Furina QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Furina 8901 25 AVATAR_IDENTITY_NORMAL 89 1,3,5 10000089 1191.65 18.9924 54.14615 0.05 0.5 10000089 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Chevreuse UI_AvatarIcon_Side_Chevreuse QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Chevreuse 9001 25 AVATAR_IDENTITY_NORMAL 90 1,3,5 10000090 1002.9701 16.20528 50.70135 0.05 0.5 10000090 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Navia UI_AvatarIcon_Side_Navia QUALITY_ORANGE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Navia 9101 25 AVATAR_IDENTITY_NORMAL 91 1,3,5 10000091 984.77954 27.3714 61.74456 0.05 0.5 10000091 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Gaming UI_AvatarIcon_Side_Gaming QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Gaming 9201 25 AVATAR_IDENTITY_NORMAL 92 1,3,5 10000092 957.38055 25.28736 58.94175 0.05 0.5 10000092 AVATAR_FORMAL false +BODY_LADY UI_AvatarIcon_Liuyun UI_AvatarIcon_Side_Liuyun QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Liuyun 9301 25 AVATAR_IDENTITY_NORMAL 93 1,3,5 10000093 810.322 26.068 44.57335 0.05 0.5 10000093 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Chiori UI_AvatarIcon_Side_Chiori QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Chiori 9401 25 AVATAR_IDENTITY_NORMAL 94 1,3,5 10000094 890.4009 25.137 74.1892 0.05 0.5 10000094 AVATAR_FORMAL false +BODY_LOLI UI_AvatarIcon_Sigewinne UI_AvatarIcon_Side_Sigewinne QUALITY_ORANGE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Sigewinne 9501 25 AVATAR_IDENTITY_NORMAL 95 1,3,5 10000095 1039.1188 14.9891 38.8895 0.05 0.5 10000095 AVATAR_FORMAL true +BODY_LADY UI_AvatarIcon_Arlecchino UI_AvatarIcon_Side_Arlecchino QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Arlecchino 9601 25 AVATAR_IDENTITY_NORMAL 96 1,3,5 10000096 1020.0524 26.6266 59.53085 0.05 0.5 10000096 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Sethos UI_AvatarIcon_Side_Sethos QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Sethos 9701 25 AVATAR_IDENTITY_NORMAL 97 1,3,5 10000097 820.6119 19.05456 46.9245 0.05 0.5 10000097 AVATAR_FORMAL true +BODY_LADY UI_AvatarIcon_Clorinde UI_AvatarIcon_Side_Clorinde QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Clorinde 9801 25 AVATAR_IDENTITY_NORMAL 98 1,3,5 10000098 1008.61255 26.2542 61.0266 0.05 0.5 10000098 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Emilie UI_AvatarIcon_Side_Emilie QUALITY_ORANGE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Emilie 9901 25 AVATAR_IDENTITY_NORMAL 99 1,3,5 10000099 1056.2786 26.068 56.8385 0.05 0.5 10000099 AVATAR_FORMAL false +BODY_LOLI UI_AvatarIcon_Kachina UI_AvatarIcon_Side_Kachina QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Kachina 10001 25 AVATAR_IDENTITY_NORMAL 100 1,3,5 10000100 989.2932 18.16416 66.438225 0.05 0.5 10000100 AVATAR_FORMAL false +BODY_BOY UI_AvatarIcon_Kinich UI_AvatarIcon_Side_Kinich QUALITY_ORANGE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Kinich 10101 25 AVATAR_IDENTITY_NORMAL 101 1,3,5 10000101 1000.986 25.8818 62.40269 0.05 0.5 10000101 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Mualani UI_AvatarIcon_Side_Mualani QUALITY_ORANGE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Mualani 10201 25 AVATAR_IDENTITY_NORMAL 102 1,3,5 10000102 1182.1168 14.1512 44.39386 0.05 0.5 10000102 AVATAR_FORMAL false +BODY_GIRL UI_AvatarIcon_Side_Ambor UI_AvatarIcon_Side_Ambor QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Ambor 8011 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000008 AVATAR_ABANDON false +BODY_GIRL UI_AvatarIcon_Side_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 9011 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000009 AVATAR_ABANDON false +BODY_GIRL UI_AvatarIcon_Side_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 10011 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000010 AVATAR_ABANDON false +BODY_BOY UI_AvatarIcon_Side_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000011 false +BODY_GIRL UI_AvatarIcon_Side_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 13011 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000013 AVATAR_SYNC_TEST false +BODY_MALE UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000017 false +BODY_LADY UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000018 false +BODY_GIRL UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000019 false +BODY_BOY UI_AvatarIcon_Razor UI_AvatarIcon_Side_Razor QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Qin 25011 25 AVATAR_IDENTITY_NORMAL 2 10000001 208.6 8.2 9.5 0.05 0.5 11000025 true +BODY_LOLI UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 14101 WEAPON_CATALYST AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000026 false +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 101 25 AVATAR_IDENTITY_NORMAL 2 10000001 166.0 5.0 8.0 0.05 0.5 11000027 false +BODY_GIRL UI_AvatarIcon_Ayaka UI_AvatarIcon_Side_Ayaka QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Ayaka 28011 25 AVATAR_IDENTITY_NORMAL 2 10000001 185.0 6.0 10.4 0.05 0.5 11000028 false +BODY_GIRL UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Qin 30011 25 AVATAR_IDENTITY_NORMAL 2 10000001 189.5 5.6 10.5 0.05 0.5 11000030 false +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 40003 25 AVATAR_IDENTITY_NORMAL 2 10000001 166.0 5.0 8.0 0.05 0.5 11000031 false +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 40002 25 AVATAR_IDENTITY_NORMAL 2 10000001 166.0 5.0 8.0 0.05 0.5 11000032 false +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 40001 25 AVATAR_IDENTITY_NORMAL 2 10000001 166.0 5.0 8.0 0.05 0.5 11000033 false +BODY_LADY UI_AvatarIcon_Xiangling UI_AvatarIcon_Side_Xiangling QUALITY_PURPLE 1.0 13101 WEAPON_POLE AvatarImage_Forward_Xiangling 101 25 AVATAR_IDENTITY_NORMAL 2 10000001 185.0 6.0 10.4 0.05 0.5 11000035 false +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 101 25 AVATAR_IDENTITY_NORMAL 2 10000001 166.0 5.0 8.0 0.05 0.5 11000036 false +BODY_BOY UI_AvatarIcon_PlayerBoy UI_AvatarIcon_Side_PlayerBoy QUALITY_PURPLE 1.0 15101 WEAPON_BOW AvatarImage_Forward_Kate 37011 25 AVATAR_IDENTITY_NORMAL 2 10000001 191.0 5.0 11.0 0.05 0.5 11000037 true +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 101 25 AVATAR_IDENTITY_NORMAL 2 10000001 166.0 5.0 8.0 0.05 0.5 11000038 false +BODY_GIRL UI_AvatarIcon_Kate UI_AvatarIcon_Side_Kate QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 101 25 AVATAR_IDENTITY_NORMAL 2 10000001 166.0 5.0 8.0 0.05 0.5 11000039 false +BODY_GIRL UI_AvatarIcon_PlayerGirl UI_AvatarIcon_Side_PlayerGirl QUALITY_ORANGE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 701 25 AVATAR_IDENTITY_NORMAL 2 10000001 441.9454 17.6352 15.9755 0.05 0.5 11000040 false +BODY_BOY UI_AvatarIcon_PlayerBoy UI_AvatarIcon_Side_PlayerBoy QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 501 25 AVATAR_IDENTITY_NORMAL 2 10000001 441.9454 17.6352 15.9755 0.05 0.5 11000041 false +BODY_BOY UI_AvatarIcon_PlayerBoy UI_AvatarIcon_Side_PlayerBoy QUALITY_PURPLE 1.0 11101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Kate 38001 25 AVATAR_IDENTITY_NORMAL 2 10000001 441.9454 17.6352 15.9755 0.05 0.5 11000042 false +BODY_LOLI UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 14101 WEAPON_CLAYMORE AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000043 false +BODY_LOLI UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 14101 WEAPON_SWORD_ONE_HAND AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000044 false +BODY_LOLI UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 14101 WEAPON_BOW AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000045 false +BODY_LADY UI_AvatarIcon_Qin UI_AvatarIcon_Side_Qin QUALITY_PURPLE 1.0 12101 WEAPON_CLAYMORE AvatarImage_Forward_Qin 1501 25 AVATAR_IDENTITY_NORMAL 2 10000001 99999.0 99999.0 99999.0 0.05 0.5 11000046 false diff --git a/data/txt/OpenStateData.txt b/data/txt/OpenStateData.txt new file mode 100644 index 0000000..874753e --- /dev/null +++ b/data/txt/OpenStateData.txt @@ -0,0 +1,388 @@ +cond systemOpenUiId defaultState allowClientOpen id +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 1 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 3 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 4 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 10 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 5 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 6 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 7 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 8 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 9 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 11 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 12 +condType:OPEN_STATE_COND_QUEST|param:2010001|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 1 false false 31 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:2|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 30 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:2|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 37 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:14|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 39 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 45 +condType:OPEN_STATE_COND_QUEST|param:35723|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 13 false false 54 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:7|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 2100 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 13 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 14 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 15 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 16 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 17 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 18 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 19 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 20 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 21 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 22 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 23 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 24 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 25 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 26 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 27 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 28 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 29 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 32 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 33 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 34 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 35 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 36 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 38 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 40 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 41 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 50 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 51 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 59 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 52 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:8|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 11 false false 53 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 56 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 58 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 76 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 60 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 61 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 62 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 63 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 64 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 66 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 67 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 68 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 69 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 70 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 71 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 72 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 73 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 74 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 75 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 77 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 78 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 79 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 80 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 81 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 82 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 83 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 84 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2001 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2002 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2003 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2004 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2104 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2105 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2106 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 1411 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 1412 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2205 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2206 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2400 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2401 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2402 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2210 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2211 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2212 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2601 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2700 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2701 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2702 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2703 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3500 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3501 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3502 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3503 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4604 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4605 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4606 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4607 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4613 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2800 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2704 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3006 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3007 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3100 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3101 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3102 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3103 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3201 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3312 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3313 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3314 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3400 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3504 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3601 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3611 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3612 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3613 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3614 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3615 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3616 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3701 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3703 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3704 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3705 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3710 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3711 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3712 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3713 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3714 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3715 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3716 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3717 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3718 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3719 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3720 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3721 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3722 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3723 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3750 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4100 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4101 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4102 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4200 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4201 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4202 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4301 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4302 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4303 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4304 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4708 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4709 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4710 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:26|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 17 false false 57 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 43 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 1001 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_QUEST|param:31101|NEOENBFLOGE:0 0 false false 1002 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 1003 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:5|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1004 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:5|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1005 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:13|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1006 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 1007 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:5|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1008 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_QUEST|param:31101|NEOENBFLOGE:0 0 false false 1009 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:5|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1010 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 903 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 901 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 902 +condType:OPEN_STATE_COND_QUEST|param:2010001|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 12 false false 900 +condType:OPEN_STATE_OFFERING_LEVEL|param:2|NEOENBFLOGE:50,condType:OPEN_STATE_COND_QUEST|param:31101|NEOENBFLOGE:0 0 false false 1011 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 1013 +condType:OPEN_STATE_OFFERING_LEVEL|param:5|NEOENBFLOGE:50,condType:OPEN_STATE_COND_QUEST|param:31101|NEOENBFLOGE:0 0 false false 3004 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 3005 +condType:OPEN_STATE_OFFERING_LEVEL|param:7|NEOENBFLOGE:50,condType:OPEN_STATE_COND_QUEST|param:31101|NEOENBFLOGE:0 0 false false 4006 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4007 +condType:OPEN_STATE_OFFERING_LEVEL|param:9|NEOENBFLOGE:50,condType:OPEN_STATE_COND_QUEST|param:31101|NEOENBFLOGE:0 0 false false 5011 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 5012 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_QUEST|param:2003003|NEOENBFLOGE:0 0 false false 1100 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:8|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1103 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 1101 +condType:OPEN_STATE_COND_QUEST|param:2211102|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1102 +condType:OPEN_STATE_COND_QUEST|param:39303|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1104 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:16|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 2801 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 44 +condType:OPEN_STATE_COND_QUEST|param:35001|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 47 +condType:OPEN_STATE_COND_QUEST|param:99902|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 48 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:16|NEOENBFLOGE:0,condType:OPEN_STATE_COND_QUEST|param:35001|NEOENBFLOGE:0 9 false false 49 +condType:OPEN_STATE_COND_QUEST|param:35311|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1403 +condType:OPEN_STATE_COND_QUEST|param:4000100|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 2 false false 1200 +condType:OPEN_STATE_COND_QUEST|param:4000110|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1201 +condType:OPEN_STATE_COND_QUEST|param:4000104|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1202 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1300 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:20|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 10 false false 1301 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 55 +condType:OPEN_STATE_COND_QUEST|param:35802|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1401 +condType:OPEN_STATE_COND_QUEST|param:39403|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1402 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:25|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 14 false false 802 +condType:OPEN_STATE_COND_QUEST|param:7065001|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 800 +condType:OPEN_STATE_COND_QUEST|param:7165001|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 801 +condType:OPEN_STATE_COND_QUEST|param:7265701|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 803 +condType:OPEN_STATE_COND_QUEST|param:7367301|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3000 +condType:OPEN_STATE_COND_QUEST|param:7465001|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4000 +condType:OPEN_STATE_CITY_REPUTATION_LEVEL|param:1|NEOENBFLOGE:2,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1404 +condType:OPEN_STATE_CITY_REPUTATION_LEVEL|param:2|NEOENBFLOGE:2,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1405 +condType:OPEN_STATE_CITY_REPUTATION_LEVEL|param:3|NEOENBFLOGE:2,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1409 +condType:OPEN_STATE_CITY_REPUTATION_LEVEL|param:4|NEOENBFLOGE:2,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3002 +condType:OPEN_STATE_CITY_REPUTATION_LEVEL|param:5|NEOENBFLOGE:2,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4001 +condType:OPEN_STATE_TRIBAL_REPUTATION_FINISH_NUM|param:6|NEOENBFLOGE:1,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5016 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true false 65 +condType:OPEN_STATE_COND_QUEST|param:7014118|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 15 false false 1406 +condType:OPEN_STATE_COND_QUEST|param:7181210|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1407 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:26|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1408 +condType:OPEN_STATE_COND_QUEST|param:7066103|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 19 false false 1410 +condType:OPEN_STATE_COND_PARENT_QUEST|param:1025|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 2200 +condType:OPEN_STATE_COND_PARENT_QUEST|param:70661|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 2201 +condType:OPEN_STATE_COND_QUEST|param:1100811|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 16 false false 1502 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1500 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:28|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1501 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:10|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1700 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:45|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1600 +condType:OPEN_STATE_COND_PARENT_QUEST|param:71654|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1504 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 1505 +condType:OPEN_STATE_COND_QUEST|param:201310|NEOENBFLOGE:0,condType:OPEN_STATE_COND_PLAYER_LEVEL|param:30|NEOENBFLOGE:0 18 false false 2000 +condType:OPEN_STATE_COND_QUEST|param:1201812|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1012 +condType:OPEN_STATE_COND_QUEST|param:7103711|NEOENBFLOGE:0,condType:OPEN_STATE_COND_PLAYER_LEVEL|param:28|NEOENBFLOGE:0 20 false false 2600 +condType:OPEN_STATE_COND_QUEST|param:7322902|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 21 false false 3001 +condType:OPEN_STATE_COND_QUEST|param:7334101|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 23 false false 3600 +condType:OPEN_STATE_COND_QUEST|param:400617|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 24 false false 4004 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4005 +condType:OPEN_STATE_COND_QUEST|param:7112704|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 25 false false 4400 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4401 +condType:OPEN_STATE_COND_QUEST|param:500218|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 28 false false 5009 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 5010 +condType:OPEN_STATE_COND_PARENT_QUEST|param:71655|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 1503 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 85 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 86 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:2|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 2101 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2103 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2102 +condType:OPEN_STATE_COND_QUEST|param:201310|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2005 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 87 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 88 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 89 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:30|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 2500 +condType:OPEN_STATE_COND_QUEST|param:7217716|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 2403 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 2501 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 91 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 92 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 90 +condType:OPEN_STATE_COND_QUEST|param:7303510|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3003 +condType:OPEN_STATE_COND_QUEST|param:7066521|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 22 false false 3300 +condType:OPEN_STATE_COND_GCG_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3301 +condType:OPEN_STATE_COND_GCG_LEVEL|param:4|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3302 +condType:OPEN_STATE_COND_GCG_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3303 +condType:OPEN_STATE_COND_QUEST|param:7066510|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3304 +condType:OPEN_STATE_COND_GCG_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3305 +condType:OPEN_STATE_COND_GCG_LEVEL|param:3|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3306 +condType:OPEN_STATE_COND_QUEST|param:7066510|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3307 +condType:OPEN_STATE_COND_GCG_LEVEL|param:2|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3308 +condType:OPEN_STATE_COND_QUEST|param:7066521|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3309 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 3200 +condType:OPEN_STATE_COND_GCG_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3311 +condType:OPEN_STATE_COND_GCG_LEVEL|param:4|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3700 +condType:OPEN_STATE_COND_GCG_LEVEL|param:1|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4008 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4204 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3505 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3506 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3702 +condType:OPEN_STATE_COND_QUEST|param:4011314|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3800 +condType:OPEN_STATE_COND_QUEST|param:4011501|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3801 +condType:OPEN_STATE_COND_QUEST|param:4011602|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 3802 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3805 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3751 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3760 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3761 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4002 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4003 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4009 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4010 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3803 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 3804 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4103 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:24|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4104 +condType:OPEN_STATE_COND_QUEST|param:202102|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4105 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4106 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4107 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4813 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4614 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4108 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4109 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4203 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4300 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4110 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4111 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4206 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4207 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4208 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4112 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4210 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4211 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4212 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4213 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4214 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4215 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4216 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4217 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4218 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4219 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4220 +condType:OPEN_STATE_COND_QUEST|param:7110082|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4402 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4501 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4502 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4403 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4404 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4504 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4503 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4509 +condType:OPEN_STATE_COND_QUEST|param:39604|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4601 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4602 +condType:OPEN_STATE_COND_QUEST|param:7418432|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4603 +condType:OPEN_STATE_COND_QUEST|param:7067602|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 26 false false 4700 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4505 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4506 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4507 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4508 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4526 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4520 +condType:OPEN_STATE_COND_QUEST|param:2003004|NEOENBFLOGE:0,condType:OPEN_STATE_COND_PLAYER_LEVEL|param:12|NEOENBFLOGE:0 0 false false 4510 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4511 +condType:OPEN_STATE_COND_QUEST|param:2500902|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4512 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4513 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4514 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4515 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4516 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4517 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4519 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4525 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4521 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4522 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4523 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4608 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4609 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4610 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4611 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 true true 4612 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4615 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4616 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5002 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5003 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5004 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:25|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 29 false false 5001 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:25|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5005 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:25|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5013 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:25|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5006 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:25|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5007 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:25|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 5008 +condType:OPEN_STATE_COND_QUEST|param:7068001|NEOENBFLOGE:0,condType:OPEN_STATE_COND_PLAYER_LEVEL|param:35|NEOENBFLOGE:0 27 false false 4805 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4801 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4802 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4803 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4804 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4701 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4704 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4705 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4706 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4702 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4703 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4707 +condType:OPEN_STATE_COND_QUEST|param:4016202|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4806 +condType:OPEN_STATE_COND_QUEST|param:4016303|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4807 +condType:OPEN_STATE_COND_QUEST|param:4016304|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4808 +condType:OPEN_STATE_COND_QUEST|param:4016403|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4809 +condType:OPEN_STATE_COND_QUEST|param:4016406|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false false 4810 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4812 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4820 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4821 +condType:OPEN_STATE_COND_PLAYER_LEVEL|param:28|NEOENBFLOGE:0,condType:OPEN_STATE_COND_QUEST|param:102510|NEOENBFLOGE:0 0 false false 5014 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4822 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4823 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 5015 +condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0,condType:OPEN_STATE_COND_NONE|param:0|NEOENBFLOGE:0 0 false true 4811 diff --git a/data/txt/SceneData.txt b/data/txt/SceneData.txt new file mode 100644 index 0000000..141b0e2 --- /dev/null +++ b/data/txt/SceneData.txt @@ -0,0 +1,1412 @@ +id type ignoreNavMesh scriptData overrideDefaultProfile levelEntityConfig specifiedAvatarList comment boundaryPointVec dungeonEntryPoint maxSpecifiedAvatarNum worldSceneId mpType sceneFixTime useToTheMoon navmeshMode safePoint isAllowMapMarkPoint isDeleteMapMarkPoint entityAppearSorted subtype imageSceneId overrideVisionLevelType +1001 SCENE_DUNGEON NotUse ClimbTest1 测试 +1002 SCENE_WORLD NotUse ClimbTest2 测试 +1003 SCENE_WORLD NotUse TheBigWorld 测试 +1006 SCENE_DUNGEON Level_PFDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon01 正式 +1011 SCENE_DUNGEON NotUse Level_Gameplay_Test 测试 +1015 SCENE_DUNGEON WindZone Data/Environment/EnviroSystemProfile/Dungeon/ESP_WindZone01 Level_Sneak 10000005,10000007 正式 1 +1016 SCENE_DUNGEON Level_AmborAbyss01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AmborAbyss01 正式 +1017 SCENE_DUNGEON Level_FCdungeon_Kettle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Kettle01 正式 +1019 SCENE_DUNGEON NotUse Level_Wisdom03 Level_Dungeon 测试 +1024 SCENE_DUNGEON Level_WeekDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WeekDungeon01 正式 +1030 SCENE_WORLD NotUse TestIntercept_LiYue Level_Sneak 测试 1 +1031 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +1032 SCENE_DUNGEON Level_FCdungeon_Cloud02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud03 LevelEntity_Quest_XiaoDungeon 正式 +1050 SCENE_DUNGEON NotUse Level_WaterMonster_Test 测试 +1051 SCENE_DUNGEON Level_QunYuGe_CLX Data/Environment/EnviroSystemProfile/Dungeon/ESP_Qunyuge01 正式 +1052 SCENE_DUNGEON Level_FCdungeon_FatOtaku Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_FatOtaku 正式 +1053 SCENE_DUNGEON Level_FCdungeon_Kettle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Kettle01 正式 +1054 SCENE_DUNGEON Level_FCdungeon_Kettle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Kettle01 正式 +1055 SCENE_DUNGEON Level_YoungMaster Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_YoungMaster01 正式 +1056 SCENE_DUNGEON Level_ZhongLi_WG Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Zhongli01 正式 +1058 SCENE_DUNGEON Level_FCdungeon_FatOtaku Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_FatOtaku 正式 +1059 SCENE_DUNGEON Level_FCdungeon_Hutao Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Hutao_01 正式 +1062 SCENE_DUNGEON Level_FCdungeon_LeiDianYing 正式 +1064 SCENE_ROOM NotUse IndoorScene_Dq_TenryuBugyo 正式 3 +1065 SCENE_DUNGEON Level_TenryuBugyo01 正式 +1066 SCENE_ROOM NotUse IndoorScene_Dq_Uyutei 正式 3 +1068 SCENE_ROOM IndoorScene_Md_AngelShare_Bartender01 Level_Bartender_Room 10000005,10000007 正式 1 SCENE_MP_SINGLE_PLAYER_SINGLE_MODE +1070 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +1071 SCENE_DUNGEON Level_FCdungeon_Shougun01_Kazuha 正式 +1076 SCENE_ROOM IndoorScene_Md_CattailTavern 正式 3 +1004 SCENE_ROOM NotUse Knight_Inside_Test 正式 3 +1005 SCENE_ROOM ChurchSteal Level_Sneak 10000005,10000007 正式 1 +1008 SCENE_ROOM ChurchLobby 正式 3 +1009 SCENE_ROOM AngelShare 正式 3 +1013 SCENE_ROOM NotUse SneakAdvancedTest Level_Sneak 10000005,10000007 测试 1 +1018 SCENE_ROOM Chateau 正式 3 +1023 SCENE_ROOM Level_Yurenzhong 正式 +1033 SCENE_ROOM Indoor_Ly_Bank 正式 3 +1034 SCENE_ROOM Indoor_Ly_Liuliting 正式 3 +1035 SCENE_ROOM Indoor_Ly_Xinyuexuan 正式 3 +1057 SCENE_ROOM NotUse Indoor_Ly_Qunyuge 正式 3 +1060 SCENE_ROOM NotUse IndoorScene_Dq_Teahouse 正式 3 +1061 SCENE_ROOM NotUse IndoorScene_Dq_Syabugyo 正式 3 +1063 SCENE_ROOM NotUse IndoorScene_Dq_Donjon 正式 3 +1069 SCENE_ROOM IndoorScene_Ly_CyRoom 正式 +1072 SCENE_ROOM NotUse IndoorScene_Xm_Barbecue 正式 3 +1073 SCENE_ROOM NotUse IndoorScene_Xm_Biglibrary 正式 3 +1074 SCENE_ROOM NotUse IndoorScene_Xm_Coffeehouse 正式 3 +1075 SCENE_ROOM NotUse IndoorScene_Xm_Csd 正式 3 +1077 SCENE_ROOM NotUse IndoorScene_Xm_Chunzhangjia 正式 3 +1078 SCENE_ROOM NotUse IndoorScene_Xm_Zls 正式 3 +1079 SCENE_ROOM NotUse IndoorScene_Xm_Alhouse 正式 3 +1082 SCENE_ROOM NotUse IndoorScene_Ly_Baizhu 正式 3 +1080 SCENE_ROOM NotUse IndoorScene_Fd_ShuiXian 正式 3 +1081 SCENE_ROOM NotUse IndoorScene_Cyg_Qyz 正式 3 +1083 SCENE_ROOM NotUse IndoorScene_Fd_Yht 正式 3 +1084 SCENE_ROOM NotUse IndoorScene_Fd_Hotel 正式 3 +1085 SCENE_ROOM NotUse IndoorScene_Fd_Gjy 正式 3 +1086 SCENE_ROOM NotUse IndoorScene_Fd_Dyz 正式 3 +1087 SCENE_ROOM NotUse IndoorScene_Fd_Fln 正式 3 +1088 SCENE_ROOM NotUse IndoorScene_Fd_Ck 正式 3 +1089 SCENE_ROOM NotUse IndoorScene_Fd_Qz 正式 3 +1090 SCENE_ROOM NotUse IndoorScene_Md_CatCafe 正式 3 +1091 SCENE_ROOM NotUse IndoorScene_XM_SilenceTemple 正式 3 +1092 SCENE_ROOM NotUse IndoorScene_Fd_Xgw 正式 3 +1093 SCENE_ROOM NotUse IndoorScene_Md_TRPGGame 正式 3 11 +1094 SCENE_ROOM NotUse IndoorScene_Fd_KlldCk 正式 3 22 +2001 SCENE_HOME_WORLD Client Homeworld_Exterior_Above 正式 +2002 SCENE_HOME_WORLD Client Homeworld_Exterior_Karst 正式 +2003 SCENE_HOME_WORLD Client Homeworld_Exterior_Uncharted 正式 +2004 SCENE_HOME_WORLD Client Homeworld_Exterior_Ukiyo 正式 +2005 SCENE_HOME_WORLD Client Homeworld_Exterior_Sumeru 正式 +2006 SCENE_HOME_WORLD NotUse Homeworld_Exterior_Theater Level_HomeWorld_Theater 正式 +2201 SCENE_HOME_ROOM Client Homeworld_Interior_Md_Apartment_01 正式 +2202 SCENE_HOME_ROOM Client Homeworld_Interior_Ly_Apartment_01 正式 +2203 SCENE_HOME_ROOM Client Homeworld_Interior_Dq_Apartment_01 正式 +2204 SCENE_HOME_ROOM Client Homeworld_Interior_Xm_Apt_01 正式 +2205 SCENE_HOME_ROOM Client Homeworld_Interior_Fd_Apt_01 正式 +1 SCENE_WORLD NotUse BigWorld_LevelStreaming Level_BigWorld 测试 +2 SCENE_WORLD NotUse BigWorld_LevelStreaming Level_BigWorld 测试 +3 SCENE_WORLD BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_BigWorld 正式 -8523.2,8736,7819.2,-7680 true NAVMESH_MODE_BOX 15 true +4 SCENE_WORLD LostParadise_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_LP_General Level_BigWorld 正式 1 true true +5 SCENE_WORLD AbyssalPalace_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_LP_General Level_BigWorld 正式 -2131.2,2755.2,3155.2,-1731.2 1 true +6 SCENE_WORLD TheChasm_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_LP_General Level_BigWorld 正式 -2131.2,2755.2,3155.2,-1731.2 0.75 1 true +7 SCENE_WORLD MichiaeMatsuri_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_LP_General Level_BigWorld 正式 2 true true +9 SCENE_WORLD DreamIsland_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_LP_General Level_BigWorld 正式 NAVMESH_MODE_POLYGON 33 true true +10 SCENE_WORLD Penumbra_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_LP_General Level_BigWorld_Scene10 正式 -2131.2,2755.2,3155.2,-1731.2 2 true true +11 SCENE_WORLD DeepSea_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_LP_General Level_BigWorld 正式 -2131.2,2755.2,3155.2,-1731.2 true 1 true +20000 SCENE_DUNGEON NotUse Level_Gameplay_Test 测试 +20005 SCENE_DUNGEON PlotLevel_XiangLingLevel_Xyd Data/Environment/EnviroSystemProfile/Dungeon/ESP_XianglingPlotLevel01 正式 +20006 SCENE_DUNGEON NotUse Level_UCDungeon01 测试 +20007 SCENE_DUNGEON NotUse PlotLevel_BarbaraMission02_Xyd 测试 +20008 SCENE_DUNGEON Level_KaeyaTutorialMission01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_KaeyaTutorialMission01 正式 +20009 SCENE_DUNGEON Level_AmborTutorialMission01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AmborTutorialMission01 正式 +20010 SCENE_DUNGEON Level_LisaTutorialMission04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +20011 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +20012 SCENE_DUNGEON NotUse Level_UCDungeon01 测试 +20013 SCENE_DUNGEON NotUse Level_KaeyaTutorialMission02 测试 +20014 SCENE_DUNGEON NotUse Level_UCDungeon01 测试 +20015 SCENE_DUNGEON NotUse Level_LisaTutorialMission03 测试 +20016 SCENE_DUNGEON Level_KaeyaTutorialMission02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_KaeyaTutorialMission02 正式 +20017 SCENE_DUNGEON DvalinTest_S01 Data/Environment/EnviroSystemProfile/Monster/ESP_Monster_Dvalin_S01 Level_Dvalin_S01 10000005,10000007 正式 1 1 +20018 SCENE_DUNGEON DvalinTest_S04 Data/Environment/EnviroSystemProfile/Monster/ESP_Monster_Dvalin_S04 Level_Dvalin_S04 正式 1 +20019 SCENE_DUNGEON Level_LisaTutorialMission04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +20020 SCENE_DUNGEON DvalinTest_S00 Data/Environment/EnviroSystemProfile/Monster/ESP_Monster_Dvalin_S00 Level_Dvalin_S00 10000005,10000007 正式 1 1 +20022 SCENE_DUNGEON Level_UCDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_BarbaraMission01 正式 +20023 SCENE_DUNGEON Level_Plot Data/Environment/EnviroSystemProfile/Dungeon/ESP_Plot 正式 +20024 SCENE_DUNGEON Level_UCDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_BarbaraMission01 正式 +20025 SCENE_DUNGEON DvalinTest_S04 Data/Environment/EnviroSystemProfile/Monster/ESP_Monster_Dvalin_S04 Level_Dvalin_S04_Recycle 正式 1 +20026 SCENE_DUNGEON Level_WeekDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WeekDungeon01 正式 +20027 SCENE_DUNGEON Level_WeekDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WeekDungeon01 正式 +20028 SCENE_DUNGEON Level_WeekDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WeekDungeon01 正式 +20031 SCENE_DUNGEON Level_UCDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_BarbaraMission01 正式 +20032 SCENE_DUNGEON Level_WindyTutorial_YQT Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +20034 SCENE_DUNGEON IndoorScene_Ly_Goldenhouse Data/Environment/EnviroSystemProfile/Dungeon/ESP_AureaBattle01 Level_Tartaglia 正式 +20035 SCENE_DUNGEON Level_KaeyaTutorialMission02 正式 +20036 SCENE_DUNGEON Level_KaeyaTutorialMission02 正式 +20037 SCENE_DUNGEON Level_FCdungeon_Eula Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Eula 正式 +20101 SCENE_DUNGEON IndoorScene_Ly_Goldenhouse Data/Environment/EnviroSystemProfile/Dungeon/ESP_AureaBattle01 Level_Tartaglia 正式 +20102 SCENE_DUNGEON Level_FCdungeon_Qiqi Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Qiqi 正式 +20103 SCENE_DUNGEON Level_AmborTutorialMission01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AmborTutorialMission01 正式 +20104 SCENE_DUNGEON Level_FCdungeon_GoddessLY Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_GoddessLY01 正式 +20105 SCENE_DUNGEON Level_FCdungeon_GoddessLY Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_GoddessLY01 正式 +20106 SCENE_DUNGEON Level_DahakaBoss01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_DahakaBoss01 Level_Dahaka_CameraSetting 正式 +20107 SCENE_DUNGEON Level_DahakaBoss01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_DahakaBoss01 Level_Dahaka_CameraSetting 正式 +20108 SCENE_DUNGEON Level_DahakaBoss01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_DahakaBoss01 Level_Dahaka_CameraSetting 正式 +20109 SCENE_DUNGEON Level_DahakaBoss01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_DahakaBoss01 Level_Dahaka_CameraSetting 正式 +20110 SCENE_DUNGEON Level_DahakaBoss01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_DahakaBoss01 Level_Dahaka_CameraSetting 正式 +20111 SCENE_DUNGEON Level_HFDungeon_Prison01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFdungeon_Prison01 正式 +20112 SCENE_DUNGEON Level_Dq_Void01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Dq_Void01 Level_Monster_Shougun_Setting 正式 +20113 SCENE_DUNGEON Level_FCdungeon_Delusion01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCDungeon_Delusion01 正式 +20114 SCENE_DUNGEON Level_DonjonBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_DonjonBattle 正式 +20115 SCENE_DUNGEON Level_DonjonBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_DonjonBattle 正式 +20116 SCENE_DUNGEON Level_Dq_Void01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Dq_Void01 正式 +20117 SCENE_DUNGEON Level_Dq_Void02 Level_Monster_Shougun_Tachi_Revive 正式 +20118 SCENE_DUNGEON Level_HFDungeon02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon02 正式 +20119 SCENE_DUNGEON Level_HFDungeon_Yidou01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon_Yidou01 正式 +20120 SCENE_DUNGEON Level_Eldritch_Minor01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Eldritch_Minor01 正式 +20121 SCENE_DUNGEON QuestLevel_FCdungeon_ShenheCloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Kettle01 正式 +20122 SCENE_DUNGEON Level_WeekDungeon_Baal Data/Environment/EnviroSystemProfile/Dungeon/ESP_WeekDungeon_Baal Level_Monster_Shougun_Mitakenarukami_AvatarRevive 正式 +20123 SCENE_DUNGEON Level_FCdungeon_Miko Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCDungeon_Miko 正式 +20124 SCENE_DUNGEON Level_Eldritch_Minor01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Eldritch_Minor01 正式 +20125 SCENE_DUNGEON Level_WeekDungeon_Baal Data/Environment/EnviroSystemProfile/Dungeon/ESP_WeekDungeon_Baal 正式 +20126 SCENE_DUNGEON Level_QuestRongcai_Dungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFdungeon_Prison01 正式 +20127 SCENE_DUNGEON Level_CYDungeon_Activy01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CYDungeon_Activy01 正式 +20128 SCENE_DUNGEON Level_CYDungeon_Activy02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CYDungeon_Activy02 LevelEntity_Activity_V2_7_CYRogue_20128 正式 +20129 SCENE_DUNGEON Level_CYDungeon_Activy03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFdungeon_Prison01 正式 +20130 SCENE_ROOM IndoorScene_Ly_CyRoom 正式 6 +20131 SCENE_DUNGEON Level_FCdungeon_Yelan Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Yelan 正式 +20132 SCENE_DUNGEON Level_SmrDungeon_BigTree Level_Dungeon 正式 +20133 SCENE_DUNGEON Level_DreamIsland_Xinyan01 正式 9,27 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20134 SCENE_DUNGEON Level_DreamIsland_Mona01 Level_DreamDungeon_Mona 正式 9,29 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20135 SCENE_DUNGEON Level_DreamIsland_Kazuha02 正式 9,11 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20136 SCENE_DUNGEON Level_DreamIsland_Mona02 Level_DreamDungeon_Mona 正式 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20137 SCENE_DUNGEON Level_DreamIsland_Fischl01 正式 9,15 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20138 SCENE_DUNGEON Level_DreamIsland_Fischl02 正式 9,17 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20139 SCENE_DUNGEON Level_DreamIsland_Fischl03 正式 9,19 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20140 SCENE_DUNGEON Level_DreamIsland_Kazuha03 正式 9,13 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20141 SCENE_DUNGEON Level_DreamIsland_Fischllibrary 正式 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20142 SCENE_DUNGEON Level_DreamIsland_Kazuha01 正式 9,9 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20143 SCENE_DUNGEON Level_DreamIsland_Fischlroom 正式 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20144 SCENE_DUNGEON Level_DreamIsland_Fischlcorridor 正式 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +20145 SCENE_DUNGEON Level_XMDungeon_WQ01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01 Level_Dungeon 正式 +20146 SCENE_DUNGEON Level_XMDungeon_WQ04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01_02 Level_Dungeon 正式 +20147 SCENE_DUNGEON Level_XMDungeon_WQ03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01_03 Level_Dungeon 正式 +20148 SCENE_DUNGEON Level_XMDungeon_WQ02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ02 正式 +20149 SCENE_DUNGEON Level_SmrDungeon_Tinali Level_Dungeon 正式 +20150 SCENE_DUNGEON Level_VoidWorldTree 正式 +20151 SCENE_DUNGEON Level_FC_DeshretTemple 正式 +20152 SCENE_DUNGEON NotUse Level_ScaramoucheBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_ScaramoucheBoss01 Level_Monster_Nada_Setting 测试 +20153 SCENE_DUNGEON Level_ScaramoucheBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_ScaramoucheBoss01 Level_Monster_Nada_Setting 正式 +20154 SCENE_DUNGEON Level_ScaramoucheBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_ScaramoucheBoss01 Level_Monster_Nada_Setting 正式 +20155 SCENE_DUNGEON Level_ScaramoucheBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_ScaramoucheBoss01 Level_Monster_Nada_Setting 正式 +20156 SCENE_DUNGEON Level_ScaramoucheBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_ScaramoucheBoss01 Level_Monster_Nada_Setting 正式 +20157 SCENE_DUNGEON Level_SmrDungeon_Cyno 正式 +20158 SCENE_DUNGEON Level_FCdungeon_BigTree Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_BigTree_01 Level_Dungeon 正式 +20159 SCENE_DUNGEON Level_XMDungeon_WQ01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01 Level_Dungeon 正式 +20160 SCENE_DUNGEON Level_FC_DeshretTemple Level_Dungeon 正式 +20161 SCENE_DUNGEON Level_FC_DeshretTemple Level_Dungeon 正式 +20162 SCENE_DUNGEON IndoorScene_Xm_Biglibrary 正式 1073 +20163 SCENE_DUNGEON Level_ScaramoucheFactory Level_Dungeon 正式 +20164 SCENE_DUNGEON Level_VoidWorldTree 正式 +20165 SCENE_DUNGEON Level_NahidaDungeon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_NahidaDungeon_01 Level_Dungeon 正式 +20166 SCENE_DUNGEON Level_VoidWorldTree_02 LevelEntity_Activity_ClearFollowPet 正式 +20167 SCENE_DUNGEON Level_Consciousness LevelEntity_Activity_ClearFollowPet 正式 +20168 SCENE_DUNGEON Level_ScaramoucheBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_ScaramoucheBoss01 Level_Monster_Nada_Setting 正式 +20169 SCENE_DUNGEON Level_ScaramoucheRecall 正式 +20170 SCENE_DUNGEON Level_ScaramoucheFactory 正式 +20171 SCENE_DUNGEON Level_ScaramoucheBoss LevelEntity_ScaramoucheBoss 正式 +20172 SCENE_DUNGEON Level_Consciousness 正式 +20173 SCENE_DUNGEON Level_Xm_Alhaitham_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Alhaitham_01 Level_AlHaitham_Dungeon_Setting 正式 +20174 SCENE_DUNGEON Level_Wisdom01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Wisdom01 Level_SpaceIntelligence_Dungeon 正式 +20175 SCENE_DUNGEON Level_Wisdom02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Wisdom02 Level_SpaceIntelligence_Dungeon 正式 +20176 SCENE_DUNGEON Level_Wisdom03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Wisdom03 Level_SpaceIntelligence_Dungeon 正式 +20177 SCENE_DUNGEON Level_SmrDungeon_Dehya Level_Dungeon 正式 +20178 SCENE_DUNGEON Level_HangMystification 正式 +20179 SCENE_DUNGEON Level_WeekDungeon_Apep Data/Environment/EnviroSystemProfile/Dungeon/ESP_GrassDragonBoss01 正式 +20180 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 Level_BigWorld 正式 3,776 3 +20181 SCENE_DUNGEON Level_HangMystification 正式 +20182 SCENE_DUNGEON Level_Ly_Baizhu_01 正式 +20183 SCENE_DUNGEON Level_Penumbra_CircusTent Level_V3_8_Scene20183 正式 +20184 SCENE_DUNGEON NotUse Level_PtahurBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 测试 +20185 SCENE_DUNGEON Level_WeekDungeon_Apep Data/Environment/EnviroSystemProfile/Dungeon/ESP_GrassDragonBoss01 正式 +20186 SCENE_DUNGEON Level_Fontaine_Gear 正式 +20187 SCENE_DUNGEON Level_Dungeon_Fd_LinNi 正式 +20188 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 Level_BigWorld 正式 3,945 3 +20189 SCENE_DUNGEON Level_BoxMatch LevelEntity_Activity_V4_1_BoxMatch_20189 正式 +20190 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +20191 SCENE_DUNGEON Level_BoxMatch LevelEntity_Activity_V4_1_BoxMatch_20191 正式 +20192 SCENE_DUNGEON Level_BoxMatch LevelEntity_Activity_V4_1_BoxMatch_20192 正式 +20193 SCENE_DUNGEON Level_BoxMatch LevelEntity_Activity_V4_1_BoxMatch_20193 正式 +20194 SCENE_DUNGEON Level_BoxMatch LevelEntity_Activity_V4_1_BoxMatch_20194 正式 +20195 SCENE_DUNGEON Level_Dungeon_Fd_Laiousili Level_Wriothesley_Dungeon_Setting 正式 +20196 SCENE_DUNGEON Level_Fd_RestrictedArea 正式 +20197 SCENE_DUNGEON Level_FD_Freminet 正式 +20198 SCENE_DUNGEON Level_Devourer_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd42_Level_Devourer_Out LevelEntity_Ptahur_Story 正式 VISION_LEVEL_LITTLE_REMOTE +20199 SCENE_DUNGEON Level_Devourer_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd42_Level_Devourer_Out 正式 VISION_LEVEL_LITTLE_REMOTE +20200 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 Level_BigWorld 正式 3,1054 3 +20201 SCENE_DUNGEON IndoorScene_Fd_Gjy 正式 20200,2 1085 +20202 SCENE_DUNGEON Level_Fd_TearLand_01 正式 +20203 SCENE_DUNGEON Level_Fd_SlateRuin01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_SlateRuin01_Before 正式 +20204 SCENE_DUNGEON Level_Fd_SlateRuin01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_SlateRuin01_After 正式 +20205 SCENE_DUNGEON Level_FD_Shuixian Data/Environment/EnviroSystemProfile/Indoor/ESP_Fd_ShuiXian 正式 +20206 SCENE_DUNGEON Level_QuestDevourer_01 Data/Environment/EnviroSystemProfile/BigWorld/ESP_Fd42_TH_Boss_Up 正式 +20207 SCENE_DUNGEON Level_LY44Dungeon_WQ Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du44_BossWQ Level_V4_4_Hermit_Dungeon 正式 +20208 SCENE_DUNGEON Level_WeekDungeon_Nihil Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du46_NihilBoss01_A Level_Monster_Nihil_StoryLevel 正式 +20209 SCENE_DUNGEON Level_FCdungeon_Liuyun Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du44_Liuyun_WS_Start 正式 +20210 SCENE_DUNGEON DeepSea_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Fd46_Kpm_GlodenLobby_After Level_BigWorld 正式 3,1138 11 +20211 SCENE_DUNGEON DeepSea_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Fd46_Kpm_GlodenLobby_After Level_BigWorld 正式 3,1140 11 +20212 SCENE_DUNGEON Level_Fd_Chiori Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd45_Chiori_Shops 正式 +20213 SCENE_DUNGEON Level_Smr_SilenceTemple 正式 +20214 SCENE_DUNGEON Level_WeekDungeon_Nihil Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du46_NihilBoss01_A Level_Monster_Nihil_WeatherSetting 正式 +20215 SCENE_DUNGEON DeepSea_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Fd46_Kpm_GlodenLobby_After LevelEntity_TeamAbility_V4.6_WQ_AvatarRevive 正式 11,20 11 +20216 SCENE_DUNGEON DeepSea_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Fd46_Kpm_GlodenLobby_After Level_BigWorld 正式 11,22 11 +20217 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 Level_BigWorld 正式 3,1223 14 true 3 +20218 SCENE_DUNGEON Level_Fd_Sigewinne Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_Sigewinne_Base 正式 +20219 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 Level_BigWorld 正式 3,1266 20 true 3 +20222 SCENE_DUNGEON Level_SmrDungeon_Twins1 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_SmrDungeon_Twins1 Level_Dungeon 正式 +20224 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 Level_BigWorld 正式 3,1288 3 +20225 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 Level_BigWorld 正式 1093,2 18 true 3 +20226 SCENE_DUNGEON Level_SmrDungeon_Twins2 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_SmrDungeon_Twins2 正式 +30001 SCENE_DUNGEON NotUse LevelTest_CurseMaze 测试 +30100 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30101 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30102 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30103 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30104 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30200 SCENE_DUNGEON Level_Tower_01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_General 正式 +30201 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30202 SCENE_DUNGEON Level_Tower_01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_General 正式 +30203 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30204 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30300 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30301 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30302 SCENE_DUNGEON Level_Tower_01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_General 正式 +30303 SCENE_DUNGEON Level_Tower_01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_General 正式 +30304 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +30400 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30401 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30402 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30403 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30404 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30500 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30501 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30502 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30503 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30504 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30600 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30601 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30602 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30603 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30604 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30700 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30701 SCENE_DUNGEON Level_Tower_01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_General 正式 +30702 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30703 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30704 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 正式 +30800 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +30801 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +30802 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +30803 SCENE_DUNGEON Level_Tower_01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_General 正式 +30804 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +30900 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30901 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30902 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30903 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +30904 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31000 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31001 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31002 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31003 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31004 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31100 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31101 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31102 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31103 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31104 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31200 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31201 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31202 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31203 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31204 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31300 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +31301 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +31302 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +31303 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +31304 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +31400 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +31401 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +31402 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +31403 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +31404 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +31500 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +31501 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +31502 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +31503 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +31504 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +31600 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +31601 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +31602 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +31603 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +31604 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +31700 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31701 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31702 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31703 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31704 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +31800 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31801 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31802 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31803 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31804 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31900 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31901 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31902 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31903 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +31904 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +32000 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +32001 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +32002 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +32003 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +32004 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +32100 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32101 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32102 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32103 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32104 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32200 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32201 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32202 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32203 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +32204 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +33100 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +33101 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +33102 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33103 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +34100 SCENE_DUNGEON Level_Tower_Morning_01 正式 +34101 SCENE_DUNGEON Level_Tower_01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_General 正式 +34102 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34103 SCENE_DUNGEON Level_Tower_Morning_01 正式 +35100 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +35101 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +35102 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +35103 SCENE_DUNGEON Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 正式 +33401 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 LevelEntity_ClearLocalGadgets 正式 +33402 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33403 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33404 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34401 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 LevelEntity_ClearLocalGadgets 正式 +34402 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34403 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34404 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35401 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 LevelEntity_ClearLocalGadgets 正式 +35402 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35403 SCENE_DUNGEON Level_Tower_Dusk_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Dusk_01 LevelEntity_ClearLocalGadgets 正式 +35404 SCENE_DUNGEON Level_Tower_Night_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33700 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33701 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33702 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33703 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33704 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +33705 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +33706 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +33707 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +33708 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33709 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +33710 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33711 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +33712 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33713 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +33714 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +33715 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33716 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33717 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33718 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33719 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33720 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33721 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33722 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33723 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33724 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33725 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33726 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33727 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33728 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33729 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33730 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33731 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33732 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33733 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33734 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33735 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +33736 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +33737 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33738 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33739 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33740 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33741 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33742 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33743 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33744 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33745 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33746 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33747 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33748 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33749 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33750 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33751 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33752 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33753 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33754 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33755 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33756 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33757 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33758 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33759 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33760 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33761 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33762 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33763 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33764 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33765 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33766 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33767 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33768 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33769 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33770 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33771 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33772 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +33773 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +33774 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34700 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34701 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34702 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34703 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34704 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +34705 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +34706 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +34707 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +34708 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34709 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +34710 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34711 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +34712 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34713 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +34714 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +34715 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34716 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34717 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34718 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34719 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34720 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34721 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34722 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34723 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34724 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34725 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34726 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34727 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34728 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34729 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34730 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34731 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34732 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34733 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34734 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34735 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +34736 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +34737 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34738 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34739 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34740 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34741 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34742 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34743 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34744 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34745 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34746 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34747 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34748 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34749 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34750 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34751 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34752 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34753 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34754 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34755 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34756 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34757 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34758 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34759 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34760 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34761 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34762 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34763 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34764 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34765 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34766 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34767 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34768 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34769 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34770 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34771 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34772 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +34773 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +34774 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35700 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35701 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35702 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35703 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35704 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +35705 SCENE_DUNGEON Level_Tower_Element_Fire_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Fire_01 正式 +35706 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +35707 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +35708 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35709 SCENE_DUNGEON Level_Tower_Element_Thunder_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Thunder_01 正式 +35710 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35711 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +35712 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35713 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +35714 SCENE_DUNGEON Level_Tower_Element_Ice_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Ice_01 正式 +35715 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35716 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35717 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35718 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35719 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35720 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35721 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35722 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35723 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35724 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35725 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35726 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35727 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35728 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35729 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35730 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35731 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35732 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35733 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35734 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35735 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +35736 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +35737 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35738 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35739 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35740 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35741 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35742 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35743 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35744 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35745 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35746 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35747 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35748 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35749 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35750 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35751 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35752 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35753 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35754 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35755 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35756 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35757 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35758 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35759 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35760 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35761 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35762 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35763 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35764 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35765 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35766 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35767 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35768 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35769 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35770 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35771 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35772 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35773 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 LevelEntity_ClearLocalGadgets 正式 +35774 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 LevelEntity_ClearLocalGadgets 正式 +35800 SCENE_DUNGEON Level_CycleDungeon_WindFlower Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon_WindFlower Level_WindFlora_Dungeon 正式 +35801 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35802 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35803 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35804 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35805 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35806 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35807 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35808 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35809 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35810 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35811 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35812 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35813 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35814 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35815 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35816 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35817 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35818 SCENE_DUNGEON Level_ContestBattle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_ContestBattle01 正式 +35820 SCENE_DUNGEON Level_FCdungeon_Qiqi Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Qiqi 正式 +35821 SCENE_DUNGEON Level_FCdungeon_Qiqi Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Qiqi 正式 +35822 SCENE_DUNGEON Level_FCdungeon_Qiqi Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Qiqi 正式 +35823 SCENE_DUNGEON Level_FCdungeon_Qiqi Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Qiqi 正式 +35824 SCENE_DUNGEON PlotLevel_XiangLingLevel_Xyd Data/Environment/EnviroSystemProfile/Dungeon/ESP_XianglingPlotLevel01 正式 +35825 SCENE_DUNGEON PlotLevel_XiangLingLevel_Xyd Data/Environment/EnviroSystemProfile/Dungeon/ESP_XianglingPlotLevel01 正式 +35826 SCENE_DUNGEON PlotLevel_XiangLingLevel_Xyd Data/Environment/EnviroSystemProfile/Dungeon/ESP_XianglingPlotLevel01 正式 +35827 SCENE_DUNGEON PlotLevel_XiangLingLevel_Xyd Data/Environment/EnviroSystemProfile/Dungeon/ESP_XianglingPlotLevel01 正式 +35828 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +35829 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +35830 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +35831 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +35840 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35841 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35842 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35843 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35844 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35845 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35846 SCENE_DUNGEON Level_DreamIsland_Xinyan01 正式 +35847 SCENE_DUNGEON Level_DreamIsland_Xinyan01 正式 +35848 SCENE_DUNGEON Level_DIKazuha04 正式 +35849 SCENE_DUNGEON Level_DIKazuha04 正式 +35850 SCENE_DUNGEON Level_DreamIsland_Fischl03 正式 +35851 SCENE_DUNGEON Level_DreamIsland_Fischl03 正式 +35852 SCENE_DUNGEON Level_DreamIsland_Mona01 Level_DreamDungeon_Mona 正式 +35853 SCENE_DUNGEON Level_DreamIsland_Mona01 Level_DreamDungeon_Mona 正式 +35854 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35855 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35856 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35857 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35858 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35859 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35860 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35861 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35862 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35863 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35870 SCENE_DUNGEON NotUse Level_BrickBreaker01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_BrickBreaker01 正式 +35871 SCENE_DUNGEON NotUse Level_BrickBreaker01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_BrickBreaker01 正式 +35872 SCENE_DUNGEON NotUse Level_BrickBreaker01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_BrickBreaker01 正式 +35873 SCENE_DUNGEON Level_FungusFighter01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter01_A 正式 +35874 SCENE_DUNGEON Level_FungusFighter01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter01_A 正式 +35875 SCENE_DUNGEON Level_FungusFighter01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter01_A 正式 +35876 SCENE_DUNGEON Level_FungusFighter02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter02_A 正式 +35877 SCENE_DUNGEON Level_FungusFighter02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter02_A 正式 +35878 SCENE_DUNGEON Level_FungusFighter02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter02_A 正式 +35879 SCENE_DUNGEON Level_FungusFighter02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter02_A 正式 +35880 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +35881 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +35882 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +35883 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +35884 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +35890 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35891 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35892 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35893 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35894 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35895 SCENE_DUNGEON Level_CrystalLink_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CrystalLink_01 正式 +35896 SCENE_DUNGEON Level_AkaFesRhythm01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm36_Level_AkaFesRhythm01_01 正式 +35897 SCENE_DUNGEON Level_AkaFesRhythm01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm36_Level_AkaFesRhythm01_01 正式 +35898 SCENE_DUNGEON Level_AkaFesRhythm01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm36_Level_AkaFesRhythm01_01 正式 +35899 SCENE_DUNGEON Level_FungusFighter01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FungusFighter01_A 正式 +35900 SCENE_DUNGEON Level_AkaFesArc_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AkaFesArc_01 LevelEntity_Activity_V3_6_AkaFesCustomGrapplingHook 正式 +35901 SCENE_DUNGEON Level_AkaFesArc_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AkaFesArc_01 LevelEntity_Activity_V3_6_AkaFesCustomGrapplingHook 正式 +35902 SCENE_DUNGEON Level_AkaFesArc_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AkaFesArc_01 LevelEntity_Activity_V3_6_AkaFesCustomGrapplingHook 正式 +35903 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35904 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35905 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35906 SCENE_DUNGEON Level_CycleDungeon_WindFlower Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon_WindFlower 正式 +35907 SCENE_DUNGEON Level_CycleDungeon_WindFlower Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon_WindFlower 正式 +35908 SCENE_DUNGEON Level_CycleDungeon_WindFlower Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon_WindFlower 正式 +35909 SCENE_DUNGEON Level_CycleDungeon_WindFlower Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon_WindFlower 正式 +35910 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35911 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35912 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35913 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35914 SCENE_DUNGEON Level_Activity_Circus LevelEntity_Activity_Bladedance_BanItem 正式 +35915 SCENE_DUNGEON Level_Activity_Circus LevelEntity_Activity_Bladedance_BanItem 正式 +35916 SCENE_DUNGEON Level_Activity_Circus LevelEntity_Activity_Bladedance_BanItem 正式 +35917 SCENE_DUNGEON Level_Activity_Circus LevelEntity_Activity_Bladedance_BanItem 正式 +35918 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35919 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35920 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35921 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35922 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +35923 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_LostSamachurl 正式 3,776 3 +35924 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_FilmfestSniper 正式 3,776 8 3 +35925 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_FilmfestSniper 正式 3,776 24 3 +35926 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_FilmfestSniper 正式 3,776 24 3 +35927 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_FilmfestSniper 正式 3776 19 3 +35928 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_FilmfestSniper 正式 3,1093 3 +35930 SCENE_DUNGEON Level_FungusFighter04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_FungusFighter04_Light 正式 +35931 SCENE_DUNGEON Level_FungusFighter04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_FungusFighter04_Light 正式 +35932 SCENE_DUNGEON Level_FungusFighter04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_FungusFighter04_Light 正式 +35933 SCENE_DUNGEON Level_FungusFighter03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_FungusFighter03_Night 正式 +35934 SCENE_DUNGEON Level_FungusFighter03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_FungusFighter03_Night 正式 +35935 SCENE_DUNGEON Level_FungusFighter03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_FungusFighter03_Night 正式 +35936 SCENE_DUNGEON Level_FungusFighter03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_FungusFighter03_Night 正式 +35941 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_LostSamachurl 正式 3,776 3 +35942 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_LostSamachurl 正式 3,776 3 +35943 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 LevelEntity_Activity_LostSamachurl 正式 3,776 3 +35950 SCENE_DUNGEON Level_SlimeCannon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_SlimeCannon01 LevelEntity_Activity_SlimeCannon 正式 +35951 SCENE_DUNGEON Level_SlimeCannon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_SlimeCannon01 LevelEntity_Activity_SlimeCannon 正式 +35952 SCENE_DUNGEON Level_SlimeCannon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_SlimeCannon01 LevelEntity_Activity_SlimeCannon 正式 +35953 SCENE_DUNGEON Level_SlimeCannon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_SlimeCannon01 LevelEntity_Activity_SlimeCannon 正式 +35954 SCENE_DUNGEON Level_SlimeCannon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_SlimeCannon01 LevelEntity_Activity_SlimeCannon 正式 +35955 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_BigWorld 正式 3 VISION_LEVEL_REMOTE +35956 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_BigWorld 正式 3 VISION_LEVEL_REMOTE +35957 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Ly_General Level_BigWorld 正式 3 VISION_LEVEL_REMOTE +35958 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Dq_General Level_BigWorld 正式 3 VISION_LEVEL_REMOTE +35961 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35962 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35963 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35964 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35965 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35966 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35967 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35968 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm35_GeneralCopyWorld01 正式 3,776 24 3 +35971 SCENE_DUNGEON Level_MvM01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM01 LevelEntity_Activity_V4_7_MonsterVsMonster 正式 +35972 SCENE_DUNGEON Level_MvM01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM01 LevelEntity_Activity_V4_7_MonsterVsMonster_35972 正式 +35973 SCENE_DUNGEON Level_MvM01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM01 LevelEntity_Activity_V4_7_MonsterVsMonster_35973 正式 +35974 SCENE_DUNGEON Level_MvM01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM01 LevelEntity_Activity_V4_7_MonsterVsMonster_35974 正式 +35975 SCENE_DUNGEON Level_MvM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM01 LevelEntity_Activity_V4_7_MonsterVsMonster_35975 正式 +35976 SCENE_DUNGEON Level_MvM01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM01 LevelEntity_Activity_V4_7_MonsterVsMonster_35976 正式 +35977 SCENE_DUNGEON Level_MvM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM01 LevelEntity_Activity_V4_7_MonsterVsMonster_35977 正式 +35981 SCENE_DUNGEON Level_MvM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM03 LevelEntity_Activity_V4_7_MonsterVsMonster_35981 正式 +35982 SCENE_DUNGEON Level_MvM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM03 LevelEntity_Activity_V4_7_MonsterVsMonster_35982 正式 +35983 SCENE_DUNGEON Level_MvM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM03 LevelEntity_Activity_V4_7_MonsterVsMonster_35983 正式 +35984 SCENE_DUNGEON Level_MvM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM03 LevelEntity_Activity_V4_7_MonsterVsMonster_35984 正式 +35985 SCENE_DUNGEON Level_MvM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM03 LevelEntity_Activity_V4_7_MonsterVsMonster_35985 正式 +35986 SCENE_DUNGEON Level_MvM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM03 LevelEntity_Activity_V4_7_MonsterVsMonster_35986 正式 +35987 SCENE_DUNGEON Level_MvM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du47_MvM03 LevelEntity_Activity_V4_7_MonsterVsMonster_35987 正式 +40001 SCENE_DUNGEON NotUse Level_UCDungeon02 测试 +40002 SCENE_DUNGEON NotUse Level_UCDungeon01 测试 +40003 SCENE_DUNGEON NotUse Level_UCDungeon01 测试 +40004 SCENE_DUNGEON Level_KaeyaTutorialMission02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_KaeyaTutorialMission02 正式 +40005 SCENE_DUNGEON NotUse Level_KaeyaTutorialMission01 测试 +40006 SCENE_DUNGEON NotUse Level_KaeyaTutorialMission01 测试 +40007 SCENE_DUNGEON Level_PFDungeon01 正式 +40008 SCENE_DUNGEON Level_KaeyaTutorialMission02 正式 +40009 SCENE_DUNGEON Level_AmborTutorialMission01 正式 +40010 SCENE_DUNGEON Level_AmborTutorialMission01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AmborTutorialMission01 正式 +40012 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40013 SCENE_DUNGEON Level_AmborTutorialMission01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_AmborTutorialMission01 正式 +40014 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40015 SCENE_DUNGEON Level_FCdungeon_Kettle01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Kettle01 正式 +40016 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +40017 SCENE_DUNGEON NotUse Level_FCdungeon_Cloud01 测试 +40018 SCENE_DUNGEON NotUse Level_FCdungeon_Kettle01 测试 +40019 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +40020 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +40021 SCENE_DUNGEON NotUse Level_Challenge_Thunder01 测试 +40022 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +40023 SCENE_DUNGEON Level_ActivityBoss01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 正式 +40024 SCENE_DUNGEON Level_ActivityBoss01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock 正式 +40025 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +40026 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40027 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +40028 SCENE_DUNGEON Level_ActivityBoss01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 正式 +40029 SCENE_DUNGEON Level_ActivityBoss01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock 正式 +40030 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40031 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40032 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40033 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40034 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40035 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40036 SCENE_DUNGEON Level_LisaTutorialMission03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_LisaTutorialMission 正式 +40037 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +40038 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +40039 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +40040 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +40041 SCENE_DUNGEON Level_ActivityBoss02_Water 正式 +40042 SCENE_DUNGEON Level_ActivityBoss02_Water 正式 +40043 SCENE_DUNGEON Level_ActivityBoss02_Water 正式 +40044 SCENE_DUNGEON Level_HFDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon01 正式 +40045 SCENE_DUNGEON Level_HFDungeon02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon02 正式 +40046 SCENE_DUNGEON Level_Tower_Element_Water_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Element_Water_01 正式 +40047 SCENE_DUNGEON Level_HFDungeon02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon02 正式 +40048 SCENE_DUNGEON Level_HFDungeon01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon01 正式 +40049 SCENE_DUNGEON Level_HFDungeon02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon02 正式 +40050 SCENE_DUNGEON Level_HFDungeon_wq Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFDungeon02 正式 +40051 SCENE_DUNGEON Level_XMDungeon_WQ01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01 Level_Dungeon 正式 +40052 SCENE_DUNGEON Level_XMDungeon_WQ03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01_03 Level_Dungeon 正式 +40053 SCENE_DUNGEON Level_XMDungeon_WQ01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01 Level_Dungeon 正式 +40054 SCENE_DUNGEON Level_XMDungeon_WQ04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_XMdungeon_WQ01_02 Level_Dungeon 正式 +40055 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40056 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40057 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40058 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40059 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40060 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40061 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40062 SCENE_DUNGEON Level_ActivityBoss01_Wind Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallenge 正式 +40063 SCENE_DUNGEON Level_Smr_LostCity Level_Dungeon 正式 +40064 SCENE_DUNGEON Level_Smr_LostCity Level_Dungeon 正式 +40065 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +40066 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +40067 SCENE_DUNGEON Level_Tower_Moon_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallengeV4_40067 正式 +40068 SCENE_DUNGEON Level_Tower_Moon_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallengeV4_40068 正式 +40069 SCENE_DUNGEON Level_Tower_Moon_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallengeV4_40069 正式 +40070 SCENE_DUNGEON Level_Tower_Moon_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 Level_EffigyChallengeV4_40070 正式 +40100 SCENE_DUNGEON Level_CycleDungeon01_Fire Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Fire 正式 +40101 SCENE_DUNGEON Level_CycleDungeon01_Fire Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Fire 正式 +40102 SCENE_DUNGEON Level_CycleDungeon01_Fire Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Fire 正式 +40103 SCENE_DUNGEON NotUse Level_CycleDungeon01_Fire Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Fire 测试 +40104 SCENE_DUNGEON NotUse Level_CycleDungeon01_Fire Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Fire 测试 +40105 SCENE_DUNGEON Level_CycleDungeon01_Fire Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Fire 正式 +40200 SCENE_DUNGEON Level_CycleDungeon01_Ice Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Ice 正式 +40201 SCENE_DUNGEON Level_CycleDungeon01_Ice Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Ice 正式 +40202 SCENE_DUNGEON Level_CycleDungeon01_Ice Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Ice 正式 +40203 SCENE_DUNGEON Level_CycleDungeon01_Ice Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Ice 正式 +40300 SCENE_DUNGEON Level_CycleDungeon01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Water 正式 +40301 SCENE_DUNGEON Level_CycleDungeon01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Water 正式 +40302 SCENE_DUNGEON Level_CycleDungeon01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Water 正式 +40303 SCENE_DUNGEON Level_CycleDungeon01_Water Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Water 正式 +40400 SCENE_DUNGEON Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 正式 +40401 SCENE_DUNGEON Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 正式 +40402 SCENE_DUNGEON Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 正式 +40403 SCENE_DUNGEON Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 正式 +40404 SCENE_DUNGEON Level_CycleDungeon01_Snow Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Snow 正式 +40405 SCENE_DUNGEON NotUse Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 测试 +40406 SCENE_DUNGEON NotUse Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 测试 +40407 SCENE_DUNGEON NotUse Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 测试 +40408 SCENE_DUNGEON Level_CycleDungeon01_Snow Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Snow 正式 +40409 SCENE_DUNGEON Level_CycleDungeon01_Snow Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Snow 正式 +40410 SCENE_DUNGEON Level_CycleDungeon01_Snow Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Snow 正式 +40500 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40501 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40502 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40503 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40504 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40505 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40506 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40507 SCENE_DUNGEON NotUse Level_CycleDungeon02_Normal 测试 +40508 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40509 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40510 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40511 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40512 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40513 SCENE_DUNGEON NotUse Level_CycleDungeon02_Normal 测试 +40514 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40515 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40516 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40517 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40600 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40601 SCENE_DUNGEON Level_CycleDungeon02_Morning Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Morning 正式 +40602 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40603 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40604 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40605 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40606 SCENE_DUNGEON NotUse Level_CycleDungeon02_Normal 测试 +40607 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40608 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40609 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40610 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40611 SCENE_DUNGEON NotUse Level_CycleDungeon02_Normal 测试 +40612 SCENE_DUNGEON Level_CycleDungeon02_Dusk Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Dusk 正式 +40613 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40614 SCENE_DUNGEON Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Night 正式 +40615 SCENE_DUNGEON NotUse Level_CycleDungeon02_Night Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Water 测试 +40616 SCENE_DUNGEON NotUse Level_Daily_Water 测试 +40617 SCENE_DUNGEON Level_CycleDungeon02_Chasm Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Chasm 正式 +40618 SCENE_DUNGEON Level_CycleDungeon02_Chasm Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Chasm 正式 +40619 SCENE_DUNGEON Level_CycleDungeon02_Chasm Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Chasm 正式 +40620 SCENE_DUNGEON Level_CycleDungeon02_Chasm Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_Chasm 正式 +40650 SCENE_DUNGEON Level_Cycle01_XM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM03 正式 +40651 SCENE_DUNGEON Level_Cycle01_XM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM03 正式 +40652 SCENE_DUNGEON Level_Cycle01_XM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM03 正式 +40653 SCENE_DUNGEON Level_Cycle01_XM03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM03 正式 +40660 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40661 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40662 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40663 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40664 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40665 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40666 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40667 SCENE_DUNGEON Level_Cycle01_XM04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Xm_Cycle01_XM04 正式 +40700 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40701 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40702 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40703 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40750 SCENE_DUNGEON Level_Cycle02_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle02_XM02 正式 +40751 SCENE_DUNGEON Level_Cycle02_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle02_XM02 正式 +40752 SCENE_DUNGEON Level_Cycle02_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle02_XM02 正式 +40753 SCENE_DUNGEON Level_Cycle02_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle02_XM02 正式 +40754 SCENE_DUNGEON Level_Cycle01_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM02 正式 +40755 SCENE_DUNGEON Level_Cycle01_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM02 正式 +40756 SCENE_DUNGEON Level_Cycle01_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM02 正式 +40757 SCENE_DUNGEON Level_Cycle01_XM02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Cycle01_XM02 正式 +40760 SCENE_DUNGEON Level_Cycle_Fontaine01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine01 正式 +40761 SCENE_DUNGEON Level_Cycle_Fontaine01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine01 正式 +40762 SCENE_DUNGEON Level_Cycle_Fontaine01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine01 正式 +40763 SCENE_DUNGEON Level_Cycle_Fontaine01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine01 正式 +40770 SCENE_DUNGEON Level_Cycle_Fontaine02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine02 正式 +40771 SCENE_DUNGEON Level_Cycle_Fontaine02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine02 正式 +40772 SCENE_DUNGEON Level_Cycle_Fontaine02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine02 正式 +40773 SCENE_DUNGEON Level_Cycle_Fontaine02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine02 正式 +40780 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40781 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40782 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40783 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40784 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40785 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40786 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40787 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40788 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40789 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40790 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40791 SCENE_DUNGEON Level_Cycle_Fontaine03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Fd_CycleDungeon_Fontaine03 正式 +40800 SCENE_DUNGEON NotUse Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 测试 +40801 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40802 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40803 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40804 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40805 SCENE_DUNGEON NotUse Level_CycleDungeon01_Thunder Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder 测试 +40806 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40807 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40808 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40809 SCENE_DUNGEON Level_CycleDungeon02_ThunderCave_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon02_ThunderCave_Dq 正式 +40900 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40901 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40902 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40903 SCENE_DUNGEON Level_CycleDungeon01_Rock Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Rock TestLevel_Element_Evn_Rock 正式 +40950 SCENE_DUNGEON Level_CycleDungeon01_Thunder_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder_Dq 正式 +40951 SCENE_DUNGEON Level_CycleDungeon01_Thunder_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder_Dq 正式 +40952 SCENE_DUNGEON Level_CycleDungeon01_Thunder_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder_Dq 正式 +40953 SCENE_DUNGEON Level_CycleDungeon01_Thunder_Dq Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Thunder_Dq 正式 +41000 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41001 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41002 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41003 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41004 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41005 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41006 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41007 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41008 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41009 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41010 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41011 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41012 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41013 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41014 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41015 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41016 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41017 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41018 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41019 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41020 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41021 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41022 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41023 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41024 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41025 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41026 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41027 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41028 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41029 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41030 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41031 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41032 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41033 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41034 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41035 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41036 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41037 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41038 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41039 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41040 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41041 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41042 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41043 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41044 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41045 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41046 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41047 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41048 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41049 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41050 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41051 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41052 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41053 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41054 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41055 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41056 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41057 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41058 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41059 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41060 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41061 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41062 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41063 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41064 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41065 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41066 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41067 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41068 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41069 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41070 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41071 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41072 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41073 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41074 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41075 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41076 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41077 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41078 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41079 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41080 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41081 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41082 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41083 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41084 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41085 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41086 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41087 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41088 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41089 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41090 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41091 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41092 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41093 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41094 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41095 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41096 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41097 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41098 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41099 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41100 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41101 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41102 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41103 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41104 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41105 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +41106 SCENE_DUNGEON Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +42001 SCENE_DUNGEON Level_PFDungeon02_Active01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42002 SCENE_DUNGEON Level_PFDungeon02_Active02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42003 SCENE_DUNGEON Level_PFDungeon02_Active07 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42004 SCENE_DUNGEON Level_PFDungeon02_Active06 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42005 SCENE_DUNGEON Level_PFDungeon02_Active05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42006 SCENE_DUNGEON Level_PFDungeon02_Active03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42007 SCENE_DUNGEON Level_PFDungeon02_Active04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42008 SCENE_DUNGEON Level_PFDungeon02_Active07 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42009 SCENE_DUNGEON Level_PFDungeon02_Active02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42010 SCENE_DUNGEON Level_PFDungeon02_Active01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42011 SCENE_DUNGEON Level_PFDungeon02_Active05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42012 SCENE_DUNGEON Level_PFDungeon02_Active04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42013 SCENE_DUNGEON Level_PFDungeon02_Active07 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +42014 SCENE_DUNGEON Level_PFDungeon02_Active03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +43001 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43002 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43003 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43004 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43005 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43006 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43007 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43008 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43009 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43010 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43011 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43012 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +43013 SCENE_DUNGEON Level_FCdungeon_MistTrial 正式 +44001 SCENE_DUNGEON Level_PFDungeon01 正式 +44002 SCENE_DUNGEON Level_KaeyaTutorialMission02 正式 +44003 SCENE_DUNGEON PlotLevel_XiangLingLevel_Xyd 正式 +44004 SCENE_DUNGEON Level_Tower_Dusk_01 正式 +44005 SCENE_DUNGEON Level_Tower_Moon_01 正式 +44006 SCENE_DUNGEON Level_Tower_Element_Thunder_01 正式 +44007 SCENE_DUNGEON Level_Tower_Universe_01 正式 +44011 SCENE_DUNGEON Level_Tower_Moon_01 正式 +44012 SCENE_DUNGEON Level_Tower_Night_01 正式 +44013 SCENE_DUNGEON Level_Tower_Moon_01 正式 +45000 SCENE_DUNGEON Level_PFDungeon02_ReActive02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45001 SCENE_DUNGEON Level_PFDungeon02_ReActive01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45002 SCENE_DUNGEON Level_PFDungeon02_ReActive02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45003 SCENE_DUNGEON Level_PFDungeon02_ReActive03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45004 SCENE_DUNGEON Level_PFDungeon02_ReActive04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45005 SCENE_DUNGEON Level_PFDungeon02_ReActive05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45006 SCENE_DUNGEON Level_PFDungeon02_ReActive06 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45007 SCENE_DUNGEON Level_PFDungeon02_ReActive05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45008 SCENE_DUNGEON Level_PFDungeon02_ReActive01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45009 SCENE_DUNGEON Level_PFDungeon02_ReActive02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45010 SCENE_DUNGEON Level_PFDungeon02_ReActive03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45011 SCENE_DUNGEON Level_PFDungeon02_ReActive04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45012 SCENE_DUNGEON Level_PFDungeon02_ReActive05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45013 SCENE_DUNGEON Level_PFDungeon02_Active08 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45014 SCENE_DUNGEON Level_PFDungeon02_Active02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45015 SCENE_DUNGEON Level_PFDungeon02_Active03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45016 SCENE_DUNGEON Level_PFDungeon02_Active04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45017 SCENE_DUNGEON Level_PFDungeon02_Active08 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45018 SCENE_DUNGEON Level_PFDungeon02_Active02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45019 SCENE_DUNGEON Level_PFDungeon02_Active03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45020 SCENE_DUNGEON Level_PFDungeon02_Active04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_PFDungeon02_Active01 正式 +45050 SCENE_DUNGEON Client Level_CustomLevel_A_01 Level_UGC_Dungeon 正式 +45051 SCENE_DUNGEON Client Level_CustomLevel_A_02 Level_UGC_Dungeon 正式 +45052 SCENE_DUNGEON Client Level_CustomLevel_A_03 Level_UGC_Dungeon 正式 +45053 SCENE_DUNGEON Client Level_CustomLevel_A_04 Level_UGC_Dungeon 正式 +45054 SCENE_DUNGEON Client Level_CustomLevel_A_05 Level_UGC_Dungeon 正式 +45055 SCENE_DUNGEON Level_CustomLevel_A_01 Level_UGC_Dungeon 正式 +45056 SCENE_DUNGEON Level_CustomLevel_A_02 Level_UGC_Dungeon 正式 +45057 SCENE_DUNGEON Level_CustomLevel_A_03 Level_UGC_Dungeon 正式 +45058 SCENE_DUNGEON Level_CustomLevel_A_04 Level_UGC_Dungeon 正式 +45059 SCENE_DUNGEON Level_CustomLevel_A_05 Level_UGC_Dungeon 正式 +46001 SCENE_DUNGEON Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 正式 +46101 SCENE_DUNGEON Level_HFDungeon_Prison01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFdungeon_Prison01 正式 +46201 SCENE_DUNGEON Level_CYDungeon_ActivityRouge01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CYDungeon_Activy01 LevelEntity_Activity_V2_7_CYRogue_46201 正式 +46202 SCENE_DUNGEON Level_CYDungeon_Activy02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CYDungeon_Activy02 LevelEntity_Activity_V2_7_CYRogue_46202 正式 +46203 SCENE_DUNGEON Level_CYDungeon_Activy03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFdungeon_Prison01 LevelEntity_Activity_V2_7_CYRogue_46203 正式 +46300 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +46301 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46302 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +46303 SCENE_DUNGEON Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 正式 +46304 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46305 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46306 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46310 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46311 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46312 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46313 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +46320 SCENE_DUNGEON Level_FDBattle_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01 正式 +46321 SCENE_DUNGEON Level_FDBattle_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01 正式 +46322 SCENE_DUNGEON Level_FDBattle_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01 正式 +46323 SCENE_DUNGEON Level_FDBattle_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01 正式 +46324 SCENE_DUNGEON Level_FDBattle_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01 正式 +47001 SCENE_DUNGEON Level_OnmyoMaze_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_FirstStage 正式 +47002 SCENE_DUNGEON Level_OnmyoMaze_05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_SecondStage 正式 +47003 SCENE_DUNGEON Level_OnmyoMaze_03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_TheThirdPhase 正式 +47004 SCENE_DUNGEON Level_OnmyoMaze_04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_FirstStage 正式 +47005 SCENE_DUNGEON Level_OnmyoMaze_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_SecondStage 正式 +47006 SCENE_DUNGEON Level_OnmyoMaze_06 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_TheThirdPhase 正式 +47007 SCENE_DUNGEON Level_OnmyoMaze_07 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_FirstStage 正式 +47008 SCENE_DUNGEON Level_OnmyoMaze_08 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_TheThirdPhase 正式 +47009 SCENE_DUNGEON Level_OnmyoMaze_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_FirstStage 正式 +47010 SCENE_DUNGEON Level_OnmyoMaze_05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_SecondStage 正式 +47011 SCENE_DUNGEON NotUse Level_OnmyoMaze_05 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_SecondStage 测试 +47012 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_SLL03 测试 +47013 SCENE_DUNGEON NotUse Level_OnmyoMaze_03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_OnmyoMaze01_TheThirdPhase 测试 +47014 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_SLL05 测试 +47015 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_SLL06 测试 +47016 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_LX01 测试 +47017 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_LX02 测试 +47018 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_LX03 测试 +47019 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_LX04 测试 +47020 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_LX05 测试 +47021 SCENE_DUNGEON Level_WindDungeon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WindDungeon_01 正式 +47022 SCENE_DUNGEON Level_WindDungeon_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WindDungeon_02 正式 +47023 SCENE_DUNGEON Level_WindDungeon_03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WindDungeon_03 正式 +47024 SCENE_DUNGEON Level_WindDungeon_04 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WindDungeon_04 正式 +47025 SCENE_DUNGEON Level_WindDungeon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_WindDungeon_01 正式 +47101 SCENE_DUNGEON Level_FungusFighter Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter LevelEntity_Activity_V3_2_MushroomBeastBattle 正式 +47102 SCENE_DUNGEON Level_FungusFighter Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter LevelEntity_Activity_V3_2_MushroomBeastBattle 正式 +47103 SCENE_DUNGEON Level_FungusFighter Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter LevelEntity_Activity_V3_2_MushroomBeastBattle 正式 +47201 SCENE_DUNGEON Level_Smr_LostCity LevelEntity_Activity_V3_3_LostCity_47201 正式 +47202 SCENE_DUNGEON Level_Smr_LostCity LevelEntity_Activity_V3_3_LostCity_47202 正式 +47203 SCENE_DUNGEON Level_Smr_LostCity LevelEntity_Activity_V3_3_LostCity_47203 正式 +47204 SCENE_DUNGEON Level_Smr_LostCity LevelEntity_Activity_V3_3_LostCity_47204 正式 +47205 SCENE_DUNGEON Level_Smr_LostCity LevelEntity_Activity_V3_3_LostCity_47205 正式 +47206 SCENE_DUNGEON Level_Smr_LostCity LevelEntity_Activity_V3_3_LostCity_47206 正式 +47207 SCENE_DUNGEON Level_Smr_LostCity LevelEntity_Activity_V3_3_LostCity_47207 正式 +47301 SCENE_DUNGEON Level_ContestBattle01 正式 +47302 SCENE_DUNGEON Level_ContestBattle01 正式 +47303 SCENE_DUNGEON Level_ContestBattle01 正式 +47304 SCENE_DUNGEON Level_ContestBattle01 正式 +47305 SCENE_DUNGEON Level_ContestBattle01 正式 +47306 SCENE_DUNGEON Level_ContestBattle01 正式 +47307 SCENE_DUNGEON Level_ContestBattle01 正式 +47401 SCENE_DUNGEON Level_PacMan_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du35_ActivityPacMan_01_Day 正式 +47402 SCENE_DUNGEON Level_PacMan_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du35_ActivityPacMan_02_Day 正式 +47403 SCENE_DUNGEON Level_PacMan_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du35_ActivityPacMan_01_Day 正式 +47404 SCENE_DUNGEON Level_PacMan_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du35_ActivityPacMan_02_Day 正式 +47405 SCENE_DUNGEON Level_PacMan_03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du35__ActivityPacMan_01_Night_Light 正式 +47406 SCENE_DUNGEON Level_PacMan_03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du35__ActivityPacMan_01_Night_Fog 正式 +47501 SCENE_DUNGEON Level_Custom_Play01 Level_UGC_Dungeon_02 正式 SCENE_SUB_TYPE_UGC_PLAY VISION_LEVEL_LITTLE_REMOTE +47502 SCENE_DUNGEON NotUse Level_Custom_Edit01 正式 VISION_LEVEL_LITTLE_REMOTE +47601 SCENE_DUNGEON Level_CloudCombat_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du37_CloudCombat_01 正式 +47602 SCENE_DUNGEON Level_OnmyoCombat_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du37_OnmyoCombat_01 正式 +47603 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +47604 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +47605 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +47606 SCENE_DUNGEON Level_OnmyoCombat_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du37_OnmyoCombat_01 正式 +47607 SCENE_DUNGEON Level_CloudCombat_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du37_CloudCombat_01 正式 +47608 SCENE_DUNGEON Level_Carnival02 Level_CharAmusement_Dungeon 正式 +47610 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +47611 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +47612 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +47613 SCENE_DUNGEON Level_FDBattle_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01 正式 +47614 SCENE_DUNGEON Level_OnmyoCombat_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du37_OnmyoCombat_01 正式 +47615 SCENE_DUNGEON Level_XM_BigLeaf Data/Environment/EnviroSystemProfile/BigWorld/ESP_XM_FungusFighter 正式 +47616 SCENE_DUNGEON Level_FCdungeon_Cloud01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Cloud01 正式 +47617 SCENE_DUNGEON Level_FDBattle_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01 正式 +47701 SCENE_DUNGEON NotUse Level_Sniper01 Data/Environment/EnviroSystemProfile/BigWorld/ESP_Xm_City_General 测试 +47711 SCENE_DUNGEON Level_FilmfestBallGame Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_FilmfestBallGame LevelEntity_Activity_FilmfestBallGame 正式 +47712 SCENE_DUNGEON Level_FilmfestBallGame Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_FilmfestBallGame LevelEntity_Activity_FilmfestBallGame_02 正式 +47713 SCENE_DUNGEON Level_FilmfestBallGame Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_FilmfestBallGame LevelEntity_Activity_FilmfestBallGame_03 正式 +47714 SCENE_DUNGEON Level_FilmfestBallGame Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_FilmfestBallGame LevelEntity_Activity_FilmfestBallGame_04 正式 +47715 SCENE_DUNGEON Level_FilmfestBallGame Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_FilmfestBallGame LevelEntity_Activity_FilmfestBallGame_05 正式 +47716 SCENE_DUNGEON Level_FDBattle_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_02 LevelEntity_ClearLocalGadgets 正式 +47717 SCENE_DUNGEON Level_FDBattle_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_02 LevelEntity_ClearLocalGadgets 正式 +47718 SCENE_DUNGEON Level_FDBattle_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_02 LevelEntity_ClearLocalGadgets 正式 +47719 SCENE_DUNGEON Level_FDBattle_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_02 LevelEntity_ClearLocalGadgets 正式 +47720 SCENE_DUNGEON Level_FDBattle_02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_02 LevelEntity_ClearLocalGadgets 正式 +47721 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47722 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47723 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47724 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47725 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47726 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47727 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47728 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio LevelEntity_ClearLocalGadgets 正式 +47730 SCENE_DUNGEON NotUse Level_Carnival02 LevelBuff_ActivityAbility_BulletHell_01 正式 +47731 SCENE_DUNGEON NotUse Level_Carnival02 LevelBuff_ActivityAbility_BulletHell_02 正式 +47732 SCENE_DUNGEON NotUse Level_Carnival02 LevelBuff_ActivityAbility_BulletHell_03 正式 +47733 SCENE_DUNGEON NotUse Level_Carnival02 LevelBuff_ActivityAbility_BulletHell_04 正式 +47734 SCENE_DUNGEON NotUse Level_Carnival02 LevelBuff_ActivityAbility_BulletHell_05 正式 +47735 SCENE_DUNGEON NotUse Level_Carnival02 LevelBuff_ActivityAbility_BulletHell_06 正式 +47801 SCENE_DUNGEON Level_FD_MistTrial Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_MistTrial_Indoor 正式 +47802 SCENE_DUNGEON Level_FD_MistTrial Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_MistTrial_Indoor 正式 +47803 SCENE_DUNGEON Level_FD_MistTrial Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_MistTrial_Indoor 正式 +47804 SCENE_DUNGEON Level_FD_MistTrial Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_MistTrial_Indoor 正式 +47805 SCENE_DUNGEON Level_FD_MistTrial Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_MistTrial_Indoor 正式 +47806 SCENE_DUNGEON Level_FD_MistTrial Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_MistTrial_Indoor 正式 +47807 SCENE_DUNGEON Level_FD_MistTrial Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du42_MistTrial_Indoor 正式 +47808 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio 正式 +47809 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio 正式 +47810 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio 正式 +47811 SCENE_DUNGEON Level_Combat_Fd_Studio Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du43_Level_Combat_Fd_Studio 正式 +47812 SCENE_DUNGEON Level_FDBattle_01b Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01B 正式 +47813 SCENE_DUNGEON Level_FDBattle_01b Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01B 正式 +47814 SCENE_DUNGEON Level_FDBattle_01b Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01B 正式 +47815 SCENE_DUNGEON Level_FDBattle_01b Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01B 正式 +47816 SCENE_DUNGEON Level_FDBattle_01b Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du41_FDBattle_01B 正式 +47901 SCENE_DUNGEON Level_FD_MistTrial LevelEntity_Activity_V4_2_LostCity_47901 正式 +47902 SCENE_DUNGEON Level_FD_MistTrial LevelEntity_Activity_V4_2_LostCity_47902 正式 +47903 SCENE_DUNGEON Level_FD_MistTrial LevelEntity_Activity_V4_2_LostCity_47903 正式 +47904 SCENE_DUNGEON Level_FD_MistTrial LevelEntity_Activity_V4_2_LostCity_47904 正式 +47905 SCENE_DUNGEON Level_FD_MistTrial LevelEntity_Activity_V4_2_LostCity_47905 正式 +47906 SCENE_DUNGEON Level_FD_MistTrial LevelEntity_Activity_V4_2_LostCity_47906 正式 +47907 SCENE_DUNGEON Level_FD_MistTrial LevelEntity_Activity_V4_2_LostCity_47907 正式 +47911 SCENE_DUNGEON Level_LostSamachurlBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du44_Level_LostSamachurlBoss Level_LostSamachurl_BossBattle 正式 +47912 SCENE_DUNGEON Level_LostSamachurlBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du44_Level_LostSamachurlBoss 正式 +47913 SCENE_DUNGEON Level_LostSamachurlBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du44_Level_LostSamachurlBoss 正式 +47914 SCENE_DUNGEON Level_LostSamachurlBoss Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du44_Level_LostSamachurlBoss 正式 +47921 SCENE_DUNGEON Level_LanternParty01 LevelEntity_Activity_LanternRite_PartyLion_CoinBattle 正式 +47922 SCENE_DUNGEON Level_LanternParty02 LevelEntity_Activity_LanternRite_PartyLion_Crown 正式 +47923 SCENE_DUNGEON Level_LanternParty03 LevelEntity_Activity_LanternRite_PartyLion_Survival 正式 +48000 SCENE_DUNGEON Level_TowerV2_Lounge01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_TowerV2_Lounge01 LevelEntity_Activity_RoleCombat_RestRoom 正式 +48001 SCENE_DUNGEON Level_TowerV2_Combat01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_TowerV2_Auditorium LevelEntity_Activity_RoleCombat_BattleRoom 正式 +48002 SCENE_DUNGEON Level_TowerV2_Combat02 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_TowerV2_Combat02 LevelEntity_Activity_RoleCombat_BattleRoom 正式 +48003 SCENE_DUNGEON Level_TowerV2_Combat03 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Du45_TowerV2_Combat03 LevelEntity_Activity_RoleCombat_BattleRoom 正式 +48010 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_EffigyV5 正式 3 +48011 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_EffigyV5 正式 3 +48012 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_EffigyV5 正式 3 +48013 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_EffigyV5 正式 3 +50002 SCENE_DUNGEON NotUse TestLevel_Cold_LYX TestLevel_Cold 测试 +50003 SCENE_DUNGEON NotUse TestLevel_Battle_CLX 测试 +50004 SCENE_DUNGEON NotUse Level_PowerCharge_Test 测试 +50005 SCENE_DUNGEON NotUse Level_ElementGameplay_Test 测试 +50006 SCENE_DUNGEON NotUse Level_KaeyaTutorialMission02 测试 +50007 SCENE_DUNGEON NotUse Level_PowerCharge_Test Level_ClimbTest1 测试 +50008 SCENE_DUNGEON NotUse Level_Function_BlackBox_Test 测试 +50009 SCENE_DUNGEON NotUse TestLevelGameplay_CX 测试 +50010 SCENE_DUNGEON NotUse TestLevelGameplay_LSA 测试 +50011 SCENE_DUNGEON NotUse Level_CycleDungeon01_Fire Level_Explode_Test 测试 +50012 SCENE_DUNGEON NotUse Level_CycleDungeon01_Ice Level_Swril_Test 测试 +50013 SCENE_DUNGEON NotUse Level_CycleDungeon01_Fire Level_Melt_Test 测试 +50014 SCENE_DUNGEON NotUse Monster_StrategyTest_LTJ 测试 +50015 SCENE_DUNGEON NotUse LevelTestRooms 测试 +50016 SCENE_DUNGEON NotUse Level_CharactersPattern_Test 测试 +50017 SCENE_DUNGEON NotUse Level_Tower_Moon_01 测试 +50018 SCENE_DUNGEON NotUse TestLevel_Protect_MC 测试 +50019 SCENE_DUNGEON NotUse TestLevel_Protect_MC TestLevel_Element_Evn_Rock 测试 +50020 SCENE_WORLD NotUse ClimbTest1 测试 +50021 SCENE_DUNGEON NotUse LevelTest_TestTest_WG 测试 +50022 SCENE_DUNGEON NotUse TestLevel_PFDungeon01_ZHT 测试 +50023 SCENE_DUNGEON NotUse Level_Tower_Dusk_01 测试 +50024 SCENE_DUNGEON NotUse Level_Tower_Dusk_01 LevelEntity_TowerBuff_ElementReactionHurt_Melt 测试 +50025 SCENE_DUNGEON NotUse Level_CycleDungeon02_Normal 测试 +50026 SCENE_DUNGEON NotUse Level_CycleDungeon02_Normal 测试 +50027 SCENE_DUNGEON NotUse Level_CycleDungeon02_Normal 测试 +50028 SCENE_DUNGEON NotUse TestLevel_CycleFire_YQT 测试 +50029 SCENE_DUNGEON NotUse Level_TdGameplay_Test 测试 +50030 SCENE_DUNGEON NotUse Level_PFDungeon02_Active01 测试 +50031 SCENE_DUNGEON NotUse Level_FCdungeon_DragonBoss 测试 +50032 SCENE_DUNGEON NotUse Level_PFDungeon02_Active03 测试 +50033 SCENE_DUNGEON NotUse Level_PFDungeon02_Active04 测试 +50034 SCENE_DUNGEON NotUse Level_PFDungeon02_Active05 测试 +50041 SCENE_DUNGEON NotUse TestLevel_SZ_LX Level_Dungeon 测试 +50042 SCENE_DUNGEON NotUse TestLevel_MD_YQT 测试 +50043 SCENE_DUNGEON NotUse TestLevel_MD_YQT 测试 +50044 SCENE_DUNGEON NotUse TestLevel_SZ_LX 测试 +50045 SCENE_DUNGEON NotUse Level_CycleDungeon_WindFlower 测试 +50046 SCENE_DUNGEON NotUse Level_Challenge_Thunder01 测试 +50047 SCENE_DUNGEON NotUse Level_CycleDungeon_WindFlower 测试 +50048 SCENE_DUNGEON NotUse Level_CycleDungeon_WindFlower 测试 +50049 SCENE_DUNGEON NotUse Level_CycleDungeon_WindFlower 测试 +50050 SCENE_DUNGEON NotUse Level_Tower_Morning_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Morning_01 测试 +50051 SCENE_DUNGEON NotUse Level_FCdungeon_MistTrial 测试 +50052 SCENE_DUNGEON NotUse Level_Tower_01_Open 测试 +50053 SCENE_DUNGEON NotUse Level_LadyBoss01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_CycleDungeon01_Snow 测试 +50054 SCENE_DUNGEON NotUse Level_ActivityBoss02_Water 测试 +50055 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge 测试 +50056 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_YQT01 测试 +50057 SCENE_DUNGEON NotUse TestLevel_Dq_Rouge_YQT02 测试 +50058 SCENE_DUNGEON NotUse Level_Dq_Void02 Level_Monster_Shougun_Setting 测试 +50059 SCENE_DUNGEON NotUse TestLevelSLL_SpringFestival Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_FatOtaku Level_Monster_Shougun_Setting 测试 +50060 SCENE_DUNGEON NotUse TestLevel_Dq_UGC_LX01 测试 +50061 SCENE_DUNGEON NotUse Level_Tower_Universe_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Universe_01 测试 +50062 SCENE_DUNGEON NotUse TestLevel_Dq_UGC_LX02 测试 +50063 SCENE_DUNGEON NotUse TestLevel_Dq_UGC_LX03 测试 +50064 SCENE_DUNGEON NotUse TestLevel_Dq_UGC_LX04 测试 +50065 SCENE_DUNGEON NotUse TestLevel_Dq_UGC_LX05 测试 +50066 SCENE_DUNGEON NotUse TestLevel_FCdungeon_ShenheCloud01 测试 +50067 SCENE_DUNGEON NotUse TestLevel_WB_Z 测试 +50068 SCENE_DUNGEON NotUse Level_Tower_01_Open Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 测试 +50069 SCENE_WORLD NotUse TestLevel_ClimbBox 测试 +50070 SCENE_DUNGEON NotUse TestLevel_APA_ZQQ Data/Environment/EnviroSystemProfile/Dungeon/ESP_HFdungeon_Prison01 测试 +50071 SCENE_WORLD NotUse TestWorld_APA_ZQQ 测试 +50072 SCENE_DUNGEON NotUse Level_TD_V3_Gameplay_Test 测试 +50073 SCENE_WORLD NotUse PerformanceTest_LevelStreaming LevelEntity_DungeonDive 测试 +50074 SCENE_DUNGEON NotUse Level_SmrDungeon_Tinali 测试 +50075 SCENE_DUNGEON NotUse Level_SmrDungeon_BigTree 测试 +50076 SCENE_DUNGEON NotUse Level_XMDungeon_GrassDragon 测试 +50077 SCENE_DUNGEON Level_Tower_Moon_01 正式 +50078 SCENE_DUNGEON NotUse Level_DreamIsland_Xinyan01 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50079 SCENE_DUNGEON NotUse Level_DreamIsland_Mona01 Level_DreamDungeon_Mona 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50080 SCENE_DUNGEON NotUse Level_DreamIsland_Kazuha02 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50081 SCENE_DUNGEON NotUse Level_DreamIsland_Mona02 Level_DreamDungeon_Mona 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50082 SCENE_DUNGEON NotUse Level_DreamIsland_Fischl01 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50083 SCENE_DUNGEON NotUse Level_DreamIsland_Fischl02 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50084 SCENE_DUNGEON NotUse Level_DreamIsland_Fischl03 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50085 SCENE_DUNGEON NotUse Level_DreamIsland_Kazuha03 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50086 SCENE_DUNGEON NotUse Level_DreamIsland_Fischllibrary 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50087 SCENE_DUNGEON NotUse Level_DreamIsland_Kazuha01 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50088 SCENE_DUNGEON NotUse Level_DreamIsland_Fischlroom 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50089 SCENE_DUNGEON NotUse Level_DreamIsland_Fischlcorridor 测试 SCENE_SUB_TYPE_PERSISTENT_DUNGEON +50090 SCENE_DUNGEON NotUse TestLevel_WhiteBox_Xm_03 测试 +50091 SCENE_DUNGEON NotUse Level_DahakaBoss01 测试 +79999 SCENE_DUNGEON NotUse GcgCardTest 10000005,10000007 正式 1 +50092 SCENE_DUNGEON NotUse WindPuzzle_WhiteboxSll01 测试 +50093 SCENE_DUNGEON NotUse WindPuzzle_WhiteboxSll04 测试 +50094 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +50095 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +50096 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +50097 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +50098 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +50099 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +50100 SCENE_DUNGEON NotUse FdWaterTest Data/Environment/EnviroSystemProfile/BigWorld/ESP_Fd_ShallowWater_Hallway 测试 +50101 SCENE_DUNGEON NotUse FdWaterTest02 Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General 测试 +50102 SCENE_DUNGEON NotUse FdWaterFlowTest Data/Environment/EnviroSystemProfile/BigWorld/ESP_Fd_ShallowWater_Hallway 测试 +51000 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51001 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51002 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51003 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51004 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51005 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51006 SCENE_DUNGEON NotUse TestLevel_TestBox_GJH 测试 +51007 SCENE_DUNGEON BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_BigWorld 正式 3 +51008 SCENE_DUNGEON Level_Carnival Level_CharAmusement_Dungeon 正式 +51009 SCENE_DUNGEON NotUse Level_SmrDungeon_BigTree Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower LevelEntity_Activity_V3_2_MushroomBeastBattle 测试 +51010 SCENE_DUNGEON NotUse TestLevel_TestBox_LCM 测试 +51011 SCENE_DUNGEON NotUse TestLevel_WhiteBox_Xm_04 测试 +51012 SCENE_DUNGEON NotUse TestLevel_Xm_CircusTent 测试 +51013 SCENE_DUNGEON NotUse Level_Xm_Alhaitham_01 测试 +51014 SCENE_DUNGEON NotUse Level_Cycle01_XM04 测试 +51015 SCENE_DUNGEON NotUse Level_TestLevel_Pacman_Sll Data/Environment/EnviroSystemProfile/Dungeon/ESP_FCdungeon_Hutao_01 测试 +51016 SCENE_DUNGEON NotUse TestLevel_FD_4.6_YYL 测试 +51017 SCENE_DUNGEON NotUse Level_Cycle01_XM04 测试 +51018 SCENE_DUNGEON NotUse TestLevel_Dehya_GJH 测试 +51019 SCENE_DUNGEON NotUse TestLevel_WhiteBox_Xm_05 测试 +51020 SCENE_DUNGEON NotUse TestLevel_3.7UGC_GJH 测试 +51021 SCENE_DUNGEON NotUse Level_CustomLevel_A_05 测试 +51022 SCENE_DUNGEON NotUse Level_CustomLevel_A_05 测试 +51023 SCENE_DUNGEON NotUse TestLevel_WhiteBox_Fd_01 测试 +51024 SCENE_DUNGEON NotUse TestLevel_WhiteBox_3.7UGC 测试 +51025 SCENE_DUNGEON NotUse TestLevel_4.1BoxMatch_WZK LevelEntity_Activity_V4_1_BoxMatch 测试 +51026 SCENE_DUNGEON NotUse TestLevel_WhiteBox_UGC_TowerDefence 测试 +51027 SCENE_DUNGEON NotUse TestLevel_WhiteBox_UGC_Survival 测试 +51028 SCENE_DUNGEON NotUse TestLevel_WhiteBox_UGC_CampEnhancer 测试 +51029 SCENE_DUNGEON NotUse Level_Cycle01_XM04 Level_Dungeon 测试 +51030 SCENE_DUNGEON NotUse BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General Level_V4_4_Test 测试 3 +51031 SCENE_DUNGEON NotUse Level_SmrDungeon_Challenge Data/Environment/EnviroSystemProfile/Dungeon/ESP_SmrDungeon_BigTree_Flower 测试 +51032 SCENE_DUNGEON NotUse TestLevel_Whitebox_MQL 测试 +51034 SCENE_DUNGEON NotUse TestLevel_WhiteBox_NataDino 测试 +51037 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51038 SCENE_DUNGEON Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 正式 +51039 SCENE_DUNGEON NotUse Level_Tower_Moon_01 Data/Environment/EnviroSystemProfile/Dungeon/ESP_Tower_Night_01 测试 +51040 SCENE_DUNGEON NotUse Level_FDBattle_02 测试 +51041 SCENE_DUNGEON NotUse Level_Custom_Play01 测试 +51046 SCENE_DUNGEON NotUse BigWorld_LevelStreaming Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General 测试 3 +51050 SCENE_DUNGEON NotUse ClimbTestStage_AvatarTest Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General 测试 +51051 SCENE_WORLD NotUse ClimbTestStage_AvatarTest Data/Environment/EnviroSystemProfile/BigWorld/ESP_Md_General 测试 +51053 SCENE_DUNGEON NotUse Level_Carnival02 Level_CharAmusement_Dungeon 测试 +51054 SCENE_DUNGEON NotUse QA_3DTest_New Data/Environment/EnviroSystemProfile/BigWorld/ESP_Default 测试 \ No newline at end of file diff --git a/data/txt/WorldData.txt b/data/txt/WorldData.txt new file mode 100644 index 0000000..92815ca --- /dev/null +++ b/data/txt/WorldData.txt @@ -0,0 +1,3 @@ +id type mainSceneId subSceneIdVec +1 WORLD_PLAYER 3 1004,1008,1009,1018,1033,1034,1035,1057,1060,1061,1063,1064,1066,1072,1073,1074,1075,1076,1077,1078,1079,1082,1083,1084,1085,1086,1087,1088,1089,1093,1094 +2 WORLD_HOME 2001 2201,2202 \ No newline at end of file diff --git a/dbgate/Cargo.toml b/dbgate/Cargo.toml new file mode 100644 index 0000000..1431a66 --- /dev/null +++ b/dbgate/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "dbgate" +edition = "2021" +version.workspace = true + +[dependencies] +env_logger.workspace = true + +sqlx.workspace = true +serde.workspace = true +serde_json.workspace = true +toml.workspace = true + +tokio.workspace = true +tokio-util.workspace = true + +tracing.workspace = true +tracing-futures.workspace = true +tracing-log.workspace = true +tracing-subscriber.workspace = true +tracing-bunyan-formatter.workspace = true + +paste.workspace = true +prost.workspace = true +hex.workspace = true +rbase64.workspace = true +proto.workspace = true + +common.workspace = true diff --git a/dbgate/dbgate.toml b/dbgate/dbgate.toml new file mode 100644 index 0000000..0168dc2 --- /dev/null +++ b/dbgate/dbgate.toml @@ -0,0 +1,25 @@ +app_id = 3 + +[[applications.Dispatch]] +app_id = 1 +inner_ip = "127.0.0.1:22001" + +[[applications.Gateserver]] +app_id = 2 +inner_ip = "127.0.0.1:22002" + +[[applications.Dbgate]] +app_id = 3 +inner_ip = "127.0.0.1:22003" + +[[applications.Gameserver]] +app_id = 4 +inner_ip = "127.0.0.1:22004" + +[region] +name = "dev_mualani" +dev_sdk_account = true + +[database] +connection_string = "postgres://postgres:@localhost:5432/hk4e" +redis_url = "redis://127.0.0.1/" diff --git a/dbgate/src/config.rs b/dbgate/src/config.rs new file mode 100644 index 0000000..ef6eba3 --- /dev/null +++ b/dbgate/src/config.rs @@ -0,0 +1,28 @@ +use std::collections::BTreeMap; + +use common::{ + config::{AppConfig, DatabaseConfig, RegionConfig}, + net::ServiceType, +}; +use serde::Deserialize; + +const DEFAULT_TOML: &str = include_str!("../dbgate.toml"); + +#[derive(Deserialize, Clone)] +pub struct DbgateConfig { + pub app_id: u32, + pub applications: BTreeMap>, + pub database: DatabaseConfig, + #[allow(dead_code)] + pub region: RegionConfig, +} + +pub fn load() -> Option { + match common::config::load_or_create_config("dbgate.toml", DEFAULT_TOML) { + Ok(config) => Some(config), + Err(err) => { + tracing::error!("Failed to load config: {err}"); + None + } + } +} diff --git a/dbgate/src/main.rs b/dbgate/src/main.rs new file mode 100644 index 0000000..60dcaea --- /dev/null +++ b/dbgate/src/main.rs @@ -0,0 +1,25 @@ +use std::{error::Error, sync::OnceLock}; + +use common::log; +use service::DbgateService; + +mod config; +mod network; +mod service; + +static SERVICE: OnceLock = OnceLock::new(); + +#[tokio::main] +async fn main() -> Result<(), Box> { + log::init_tracing(); + let config = config::load().unwrap(); + let service = DbgateService::new(config).await?; + let service = SERVICE.get_or_init(|| service); + service.run().await; + + Ok(()) +} + +fn dbgate_service() -> &'static DbgateService { + SERVICE.get().unwrap() +} diff --git a/dbgate/src/network/mod.rs b/dbgate/src/network/mod.rs new file mode 100644 index 0000000..1f6a787 --- /dev/null +++ b/dbgate/src/network/mod.rs @@ -0,0 +1,2 @@ +mod network_mgr; +pub use network_mgr::NetworkMgr; diff --git a/dbgate/src/network/network_mgr.rs b/dbgate/src/network/network_mgr.rs new file mode 100644 index 0000000..6c4bc38 --- /dev/null +++ b/dbgate/src/network/network_mgr.rs @@ -0,0 +1,103 @@ +use prost::Message; +use proto::{PlayerData, SavePlayerDataReq}; +use std::error::Error; + +use common::{ + impl_net_service, + net::{tools::Packet, AServer, NetError, ServiceType}, + rpc_handlers, ServiceQualifier, +}; + +use crate::{config::DbgateConfig, dbgate_service}; + +pub struct NetworkMgr { + server: AServer, +} + +impl NetworkMgr { + pub async fn new(config: &DbgateConfig) -> Result { + let inner_ip = config + .applications + .get(&ServiceType::Dbgate) + .unwrap() + .iter() + .find(|a| a.app_id == config.app_id) + .unwrap() + .inner_ip + .clone(); + + Ok(Self { + server: AServer::bind(inner_ip).await?, + }) + } + + pub async fn run(&self) { + loop { + let Ok(mut packets) = self.server.recv().await else { + continue; + }; + + while let Some(packet) = packets.pop_front() { + if let Err(err) = self.on_recv(packet).await { + tracing::warn!("on_recv fail: {err}"); + } + } + } + } + + pub async fn send_rsp(&self, packet: Packet) -> Result<(), NetError> { + dbgate_service() + .service_box + .push_packet_to_service(ServiceQualifier::AppId(packet.head.rpc_id), packet) + .await + } + + rpc_handlers! { + GetPlayerTokenReq; + PlayerLoginReq; + SavePlayerDataReq; + } + + async fn on_get_player_token_req(&self, packet: Packet) -> Result<(), Box> { + dbgate_service() + .login_handler + .on_get_player_token_req(packet) + .await + } + + async fn on_player_login_req(&self, packet: Packet) -> Result<(), Box> { + dbgate_service() + .login_handler + .on_player_login_req(packet) + .await + } + + async fn on_save_player_data_req(&self, packet: Packet) -> Result<(), Box> { + let req = packet.get_proto::()?; + let Ok(player_data) = PlayerData::decode(&*req.player_data) else { + tracing::error!( + "on_save_player_data_req: PlayerData::decode failed, uid: {}", + packet.head.user_id + ); + return Ok(()); + }; + + dbgate_service() + .sql_op_player_data + .update_player_data_by_uid( + player_data.uid as i32, + player_data.nickname, + player_data.level as i32, + player_data.exp as i32, + player_data.bin, + ) + .await?; + Ok(()) + } + + pub async fn default_packet_process_func(&self, _packet: Packet) -> Result<(), Box> { + Ok(()) + } +} + +impl_net_service!(Dbgate); diff --git a/dbgate/src/service/dbgate_service.rs b/dbgate/src/service/dbgate_service.rs new file mode 100644 index 0000000..30b0415 --- /dev/null +++ b/dbgate/src/service/dbgate_service.rs @@ -0,0 +1,39 @@ +use std::error::Error; + +use common::{ + db::{self, SqlOpPlayerData}, + ServiceBox, +}; + +use crate::{config::DbgateConfig, network::NetworkMgr}; + +use super::LoginHandler; + +pub struct DbgateService { + pub config: DbgateConfig, + pub network_mgr: NetworkMgr, + pub service_box: ServiceBox, + pub login_handler: LoginHandler, + pub sql_op_player_data: SqlOpPlayerData, +} + +impl DbgateService { + pub async fn new(config: DbgateConfig) -> Result> { + let network_mgr = NetworkMgr::new(&config).await?; + let service_box = ServiceBox::new(config.app_id, &config.applications); + let db = db::connect(&config.database.connection_string).await?; + let sql_op_player_data = SqlOpPlayerData::new(db); + + Ok(Self { + config, + network_mgr, + service_box, + login_handler: LoginHandler, + sql_op_player_data, + }) + } + + pub async fn run(&self) { + self.network_mgr.run().await + } +} diff --git a/dbgate/src/service/login_handler.rs b/dbgate/src/service/login_handler.rs new file mode 100644 index 0000000..93df966 --- /dev/null +++ b/dbgate/src/service/login_handler.rs @@ -0,0 +1,153 @@ +use std::error::Error; + +use common::net::tools::Packet; +use proto::{ + CmdID, GetPlayerTokenReq, GetPlayerTokenRsp, PacketHead, PlayerData, PlayerLoginReq, + PlayerLoginRsp, +}; + +use prost::Message; + +use crate::dbgate_service; + +pub struct LoginHandler; + +impl LoginHandler { + pub async fn on_get_player_token_req(&self, packet: Packet) -> Result<(), Box> { + let Ok(req) = packet.get_proto::() else { + tracing::warn!("get proto failed"); + return Ok(()); + }; + + let mut rsp = GetPlayerTokenRsp { + retcode: -1, + server_rand_key: req.client_rand_key.clone(), + account_uid: req.account_uid.clone(), + token: req.account_token.clone(), + platform_type: req.platform_type, + key_id: req.key_id, + ..Default::default() + }; + + let retcode = self.check_login_account_condition(&req); + if retcode != 0 { + tracing::info!("[LOGIN] check_account_condition failed, account_uid:{} account_token: {} retcode:{}", &req.account_uid, "", retcode); + rsp.retcode = retcode; + } else { + let sql_op_player_data = &dbgate_service().sql_op_player_data; + let player_uid = match sql_op_player_data + .select_player_uid_by_account(req.account_uid.clone()) + .await + { + Ok(Some(row)) => row.uid, + Ok(None) => { + sql_op_player_data + .insert_player_uid_by_account(req.account_uid.clone(), req.platform_type) + .await? + } + Err(_) => { + tracing::warn!( + "[LOGIN] on_get_player_token failed, account_uid:{}", + &req.account_uid + ); + rsp.retcode = -1; + return Ok(()); + } + }; + + rsp.uid = player_uid as u32; + rsp.retcode = 0; + } + + let packet = Packet { + cmd_id: rsp.get_cmd_id(), + head: PacketHead { + rpc_id: packet.head.sender_app_id, + ..packet.head + }, + recv_vec: rsp.encode_to_vec(), + }; + + tracing::info!( + "[LOGIN] OnGetPlayerToken account_uid: {} uid: {} ip: {} retcode: {}", + &rsp.account_uid, + rsp.uid, + packet.get_user_ip(), + rsp.retcode + ); + + dbgate_service().network_mgr.send_rsp(packet).await?; + Ok(()) + } + + pub async fn on_player_login_req(&self, packet: Packet) -> Result<(), Box> { + let Ok(req) = packet.get_proto::() else { + tracing::error!("get proto failed"); + return Ok(()); + }; + + let uid = packet.head.user_id; + let Ok(result) = dbgate_service() + .sql_op_player_data + .select_player_data_by_uid(uid as i32) + .await + else { + tracing::error!("select_player_data_by_uid failed, uid:{uid}"); + return Ok(()); + }; + + let is_new_player = result.is_none(); + let player_data = match result { + Some(data) => PlayerData { + uid: data.uid as u32, + nickname: data.nickname, + bin: data.bin_data, + extra_bin_data: data.extra_bin_data.unwrap_or_default(), + json_data: data.json_data, + ..Default::default() + }, + None => PlayerData { + uid, + ..Default::default() + }, + }; + + if is_new_player { + dbgate_service() + .sql_op_player_data + .insert_player_data_by_uid(uid as i32, &player_data) + .await?; + } + + let rsp = PlayerLoginRsp { + is_new_player, + player_data: player_data.encode_to_vec(), + login_rand: req.login_rand, + ..Default::default() + }; + + dbgate_service() + .network_mgr + .send_rsp(Packet { + cmd_id: rsp.get_cmd_id(), + head: PacketHead { + rpc_id: packet.head.sender_app_id, + ..packet.head + }, + recv_vec: rsp.encode_to_vec(), + }) + .await?; + + tracing::info!("[LOGIN] onPlayerLoginReq uid:{uid}"); + Ok(()) + } + + fn check_login_account_condition(&self, req: &GetPlayerTokenReq) -> i32 { + if !req.account_uid.is_empty() { + 0 + } else { + tracing::warn!("req.account_uid is empty() token: {}", ""); + -1 + } + } +} diff --git a/dbgate/src/service/mod.rs b/dbgate/src/service/mod.rs new file mode 100644 index 0000000..c18fd39 --- /dev/null +++ b/dbgate/src/service/mod.rs @@ -0,0 +1,5 @@ +mod dbgate_service; +mod login_handler; + +pub use dbgate_service::DbgateService; +pub use login_handler::LoginHandler; diff --git a/dispatch/Cargo.toml b/dispatch/Cargo.toml new file mode 100644 index 0000000..eb3d9bb --- /dev/null +++ b/dispatch/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "dispatch" +edition = "2021" +version.workspace = true + +[dependencies] +env_logger.workspace = true + +axum.workspace = true +axum-server.workspace = true + +sqlx.workspace = true +serde.workspace = true +serde_json.workspace = true +toml.workspace = true + +tokio.workspace = true +tokio-util.workspace = true + +tracing.workspace = true +tracing-futures.workspace = true +tracing-log.workspace = true +tracing-subscriber.workspace = true +tracing-bunyan-formatter.workspace = true + +dashmap.workspace = true +paste.workspace = true +prost.workspace = true +hex.workspace = true +rbase64.workspace = true +proto.workspace = true + +common.workspace = true diff --git a/dispatch/dispatch.toml b/dispatch/dispatch.toml new file mode 100644 index 0000000..f934af1 --- /dev/null +++ b/dispatch/dispatch.toml @@ -0,0 +1,29 @@ +app_id = 1 +forbid_first_dispatch = false + +[[applications.Dispatch]] +app_id = 1 +inner_ip = "127.0.0.1:22001" + +[[applications.Gateserver]] +app_id = 2 +inner_ip = "127.0.0.1:22002" + +[[applications.Dbgate]] +app_id = 3 +inner_ip = "127.0.0.1:22003" + +[[applications.Gameserver]] +app_id = 4 +inner_ip = "127.0.0.1:22004" + +[region] +name = "dev_mualani" +dev_sdk_account = true + +[net.http] +bind_host = "0.0.0.0:21041" + +[database] +connection_string = "postgres://postgres:@localhost:5432/hk4e" +redis_url = "redis://127.0.0.1/" diff --git a/dispatch/src/config.rs b/dispatch/src/config.rs new file mode 100644 index 0000000..bf0440c --- /dev/null +++ b/dispatch/src/config.rs @@ -0,0 +1,39 @@ +use std::collections::BTreeMap; + +use common::{ + config::{AppConfig, DatabaseConfig, RegionConfig}, + net::ServiceType, +}; +use serde::Deserialize; + +const DEFAULT_TOML: &str = include_str!("../dispatch.toml"); + +#[derive(Deserialize)] +pub struct HttpServerConfig { + pub bind_host: String, +} + +#[derive(Deserialize)] +pub struct NetConfig { + pub http: HttpServerConfig, +} + +#[derive(Deserialize)] +pub struct DispatchConfig { + pub app_id: u32, + pub applications: BTreeMap>, + pub net: NetConfig, + pub database: DatabaseConfig, + pub region: RegionConfig, + pub forbid_first_dispatch: bool, +} + +pub fn load() -> Option { + match common::config::load_or_create_config("dispatch.toml", DEFAULT_TOML) { + Ok(config) => Some(config), + Err(err) => { + tracing::error!("Failed to load config: {err}"); + None + } + } +} diff --git a/dispatch/src/dispatch_service.rs b/dispatch/src/dispatch_service.rs new file mode 100644 index 0000000..f991609 --- /dev/null +++ b/dispatch/src/dispatch_service.rs @@ -0,0 +1,48 @@ +use std::error::Error; + +use axum::{extract::Request, ServiceExt}; +use common::db::{self, DbDeployConfigMgr}; +use tokio::net::TcpListener; + +use crate::{ + config::DispatchConfig, + dispatch_service, + gateserver_mgr::GateserverMgr, + network::{self, NetworkMgr}, +}; + +pub struct DispatchService { + pub config: DispatchConfig, + pub network_mgr: NetworkMgr, + pub db_deploy_config_mgr: DbDeployConfigMgr, + pub gateserver_mgr: GateserverMgr, +} + +impl DispatchService { + pub async fn new(config: DispatchConfig) -> Result> { + let db_pool = db::connect(&config.database.connection_string).await?; + let network_mgr = NetworkMgr::new(&config).await?; + let gateserver_mgr = GateserverMgr::new(); + + Ok(Self { + config, + network_mgr, + gateserver_mgr, + db_deploy_config_mgr: DbDeployConfigMgr::new(db_pool), + }) + } + + pub async fn run(&self) { + tokio::spawn(async { + let router = network::http_handlers::make_routes(); + + let listener = TcpListener::bind(&dispatch_service().config.net.http.bind_host) + .await + .unwrap(); + + axum::serve(listener, ServiceExt::::into_make_service(router)).await + }); + + self.network_mgr.run().await + } +} diff --git a/dispatch/src/gateserver_mgr.rs b/dispatch/src/gateserver_mgr.rs new file mode 100644 index 0000000..6f8baa5 --- /dev/null +++ b/dispatch/src/gateserver_mgr.rs @@ -0,0 +1,81 @@ +use std::{collections::BTreeMap, sync::Mutex}; + +#[derive(Clone)] +pub struct GateserverInfo { + pub app_id: u32, + #[allow(dead_code)] + pub inner_ip: String, + pub outer_ip: String, + pub listen_port: u16, + pub use_domain_name: bool, + pub domain_name: String, + pub load: u32, +} + +pub struct GateserverMgr { + gateserver_map: Mutex>, +} + +impl GateserverMgr { + pub fn new() -> Self { + Self { + gateserver_map: Mutex::new(BTreeMap::new()), + } + } + + pub fn add_gateserver( + &self, + app_id: u32, + inner_ip: String, + outer_ip: String, + listen_port: u16, + use_domain_name: bool, + domain_name: String, + load: u32, + ) { + let mut gateserver_map = self.gateserver_map.lock().unwrap(); + gateserver_map.insert( + app_id, + GateserverInfo { + app_id, + inner_ip: inner_ip.clone(), + outer_ip: outer_ip.clone(), + listen_port, + use_domain_name, + domain_name: domain_name.clone(), + load, + }, + ); + + tracing::info!("add gateserver app_id={}, inner_ip={}, outer_ip={}, listen_port={} use_domain_name={} domain_name={}. cur_total_server_count={}", app_id, inner_ip, outer_ip, listen_port, use_domain_name, domain_name, gateserver_map.len()); + } + + pub fn get_gateserver(&self, uid: u32) -> Option { + let gateserver_map = self.gateserver_map.lock().unwrap(); + match gateserver_map + .values() + .min_by_key(|g| g.load) + .map(|g| g.clone()) + { + Some(info) => { + tracing::info!("get gateserver {} app_id: to uid={uid}", info.app_id); + Some(info) + } + None => None, + } + } + + pub fn sync_gateserver_load(&self, app_id: u32, load: u32) { + let mut gateserver_map = self.gateserver_map.lock().unwrap(); + + let Some(info) = gateserver_map.get_mut(&app_id) else { + tracing::warn!("fail to find gateserver app_id={app_id}"); + return; + }; + + if info.load != load { + info.load = load; + tracing::info!("sync gateserver load app_id={app_id}, load={load}"); + } + } +} diff --git a/dispatch/src/main.rs b/dispatch/src/main.rs new file mode 100644 index 0000000..f47f303 --- /dev/null +++ b/dispatch/src/main.rs @@ -0,0 +1,26 @@ +use std::{error::Error, sync::OnceLock}; + +use common::log; +use dispatch_service::DispatchService; + +mod config; +mod dispatch_service; +mod gateserver_mgr; +mod network; + +static SERVICE: OnceLock = OnceLock::new(); + +#[tokio::main] +async fn main() -> Result<(), Box> { + log::init_tracing(); + let config = config::load().unwrap(); + let service = DispatchService::new(config).await?; + let service = SERVICE.get_or_init(|| service); + service.run().await; + + Ok(()) +} + +fn dispatch_service() -> &'static DispatchService { + SERVICE.get().unwrap() +} diff --git a/dispatch/src/network/gateserver_session.rs b/dispatch/src/network/gateserver_session.rs new file mode 100644 index 0000000..3499ffe --- /dev/null +++ b/dispatch/src/network/gateserver_session.rs @@ -0,0 +1,72 @@ +use std::{error::Error, net::Ipv4Addr}; + +use common::{ + config::IpString, + net::{tools::Packet, AServerSession, NetError, ServiceType}, + rpc_handlers, +}; + +use paste::paste; +use proto::AddGateserverNotify; + +use crate::dispatch_service; + +pub struct GateserverSession { + server_session: AServerSession, +} + +impl GateserverSession { + pub async fn new(app_id: u32, service_ip: IpString, cur_app_id: u32) -> Result { + Ok(Self { + server_session: AServerSession::new(app_id, service_ip, cur_app_id), + }) + } + + async fn on_add_gateserver_notify(&self, packet: Packet) -> Result<(), Box> { + let service = dispatch_service(); + let Some(inner_ip) = service + .config + .applications + .get(&ServiceType::Gateserver) + .unwrap() + .iter() + .find(|a| a.app_id == packet.head.sender_app_id) + .map(|a| a.inner_ip.clone()) + else { + tracing::error!("app_id {} not found!", packet.head.sender_app_id); + return Ok(()); + }; + + let proto = packet.get_proto::()?; + let outer_ip = Ipv4Addr::from(proto.outer_ip); + + service.gateserver_mgr.add_gateserver( + packet.head.sender_app_id, + inner_ip.0.to_string(), + outer_ip.to_string(), + proto.listen_port as u16, + proto.use_domain_name, + proto.domain_name, + 0, + ); + + Ok(()) + } + + async fn on_keep_alive_notify(&self, packet: Packet) -> Result<(), Box> { + dispatch_service() + .gateserver_mgr + .sync_gateserver_load(self.server_session.app_id, packet.head.sender_load); + + Ok(()) + } + + rpc_handlers! { + AddGateserverNotify; + KeepAliveNotify; + } + + async fn default_packet_process_func(&self, _packet: Packet) -> Result<(), Box> { + Ok(()) + } +} diff --git a/dispatch/src/network/http_handlers.rs b/dispatch/src/network/http_handlers.rs new file mode 100644 index 0000000..033570e --- /dev/null +++ b/dispatch/src/network/http_handlers.rs @@ -0,0 +1,248 @@ +use axum::{extract::Query, routing::get, Router}; +use prost::Message; +use proto::{QueryCurrRegionHttpRsp, QueryRegionListHttpRsp, RegionInfo, RegionSimpleInfo}; +use serde::Deserialize; +use serde_json::json; + +use crate::{config::DispatchConfig, dispatch_service, gateserver_mgr::GateserverMgr}; +use common::{ + crypto::{rsa_utils, MhyXorpad}, + db::DbDeployConfigMgr, +}; + +const ALIVE_RSP: &str = "{\"retcode\":\"0\", \"msg\":\"alive ok\"}"; +const FALLBACK_RSP: &str = "{\"retcode\":\"-1\", \"msg\":\"system error\"}"; + +pub fn make_routes() -> Router { + Router::new() + .route("/alive", get(|| async { ALIVE_RSP })) + .route("/query_region_list", get(query_region_list)) + .route("/query_cur_region", get(query_curr_region)) + .route("/query_gateserver", get(query_curr_region)) + .fallback(|| async { FALLBACK_RSP }) +} + +#[derive(Deserialize)] +#[allow(unused)] +struct QueryRegionListParams { + pub channel_id: i32, + pub version: String, + pub lang: i32, + pub platform: i32, + pub binary: u8, + pub time: u32, +} + +#[derive(Deserialize)] +#[allow(unused)] +struct QueryCurrRegionParams { + pub channel_id: i32, + pub version: String, + pub lang: i32, + pub platform: i32, + pub binary: u8, + pub time: u32, + #[serde(rename = "dispatchSeed")] + pub dispatch_seed: String, + pub aid: u32, + pub key_id: Option, +} + +async fn query_region_list(params: Query) -> String { + let service = dispatch_service(); + let rsp = if service.config.forbid_first_dispatch { + tracing::warn!("query_region_list is forbidden in this dispatch"); + + QueryRegionListHttpRsp { + retcode: 8, + ..Default::default() + } + } else { + match build_query_region_list_rsp(&service.db_deploy_config_mgr, ¶ms.0).await { + Some(rsp) => rsp, + None => QueryRegionListHttpRsp { + retcode: -1, + ..Default::default() + }, + } + }; + + rbase64::encode(&rsp.encode_to_vec()) +} + +async fn query_curr_region(params: Query) -> String { + let service = dispatch_service(); + let rsp = match get_curr_region_info( + &service.gateserver_mgr, + &service.db_deploy_config_mgr, + &service.config, + ¶ms.0, + ) + .await + { + Some(rsp) => rsp, + None => QueryCurrRegionHttpRsp { + retcode: -1, + ..Default::default() + }, + }; + + if params.key_id.is_some() { + encrypt_region_info( + &service.db_deploy_config_mgr, + &service.config, + ¶ms.0, + rsp.encode_to_vec(), + ) + .await + .unwrap() + .to_string() + } else { + rbase64::encode(&rsp.encode_to_vec()) + } +} + +async fn encrypt_region_info( + deploy_config_mgr: &DbDeployConfigMgr, + config: &DispatchConfig, + params: &QueryCurrRegionParams, + rsp_vec: Vec, +) -> Option { + let key_id = params.key_id.unwrap(); + + let region = deploy_config_mgr + .find_db_region_config(config.region.name.clone()) + .await?; + + if !region.is_key_allowed(key_id as u32) { + tracing::warn!("this region doesn't allow key_id: {}", key_id); + return None; + } + + let rsakey = deploy_config_mgr.find_db_rsakey_config(key_id).await?; + + let sign = rsa_utils::private_sign(&rsakey.server_private_key, &rsp_vec)?; + let cipher = rsa_utils::public_encrypt(&rsakey.client_public_key, &rsp_vec)?; + + Some(json! ({ + "content": rbase64::encode(&cipher), + "sign": rbase64::encode(&sign) + })) +} + +#[tracing::instrument(skip_all)] +async fn get_curr_region_info( + gateserver_mgr: &GateserverMgr, + deploy_config_mgr: &DbDeployConfigMgr, + config: &DispatchConfig, + params: &QueryCurrRegionParams, +) -> Option { + tracing::info!( + "request version: {} lang: {} platform: {} channel_id: {} dispatch_seed: {}", + params.version, + params.lang, + params.platform, + params.channel_id, + params.dispatch_seed + ); + + let region = deploy_config_mgr + .find_db_region_config(config.region.name.clone()) + .await?; + + let client_config = deploy_config_mgr + .find_db_client_config(params.version.clone()) + .await?; + + if client_config.dispatch_seed.len() > 0 { + if params.dispatch_seed != client_config.dispatch_seed { + tracing::warn!( + "expected dispatch seed: {} get: {}", + client_config.dispatch_seed, + params.dispatch_seed + ); + + return Some(QueryCurrRegionHttpRsp { + retcode: 1, + ..Default::default() + }); + } + } + + let Some(gateserver) = gateserver_mgr.get_gateserver(params.aid) else { + tracing::warn!("get_gateserver failed for uid: {}", params.aid); + + return Some(QueryCurrRegionHttpRsp { + retcode: -1, + msg: String::from("Not found Gateserver"), + ..Default::default() + }); + }; + + let mut rsp = QueryCurrRegionHttpRsp { + client_secret_key: region.client_secret_key.clone(), + region_info: Some(RegionInfo { + gateserver_ip: gateserver.outer_ip, + gateserver_port: gateserver.listen_port as u32, + use_gateserver_domain_name: gateserver.use_domain_name, + gateserver_domain_name: gateserver.domain_name, + area_type: region.area_type.clone(), + ..Default::default() + }), + ..Default::default() + }; + + if let Some(client_region_config) = deploy_config_mgr + .find_db_client_region_config(params.version.clone(), region.name.clone()) + .await + { + if client_region_config.client_region_custom_config.len() > 0 { + let mut client_region_custom_config = client_region_config + .client_region_custom_config + .into_bytes(); + let xorpad = MhyXorpad::from_ec2b(®ion.client_secret_key); + xorpad.xor(&mut client_region_custom_config); + rsp.client_region_custom_config_encrypted = client_region_custom_config; + } + } + + Some(rsp) +} + +#[tracing::instrument(skip_all)] +async fn build_query_region_list_rsp( + deploy_config_mgr: &DbDeployConfigMgr, + params: &QueryRegionListParams, +) -> Option { + let binds = deploy_config_mgr + .find_bind_region_config_vec(params.version.clone()) + .await; + + let regions = deploy_config_mgr.fetch_region_list(&binds).await; + let enable_login_pc = deploy_config_mgr.enable_login_pc(params.channel_id).await?; + + let client_secret_key = regions.first()?.client_secret_key.clone(); + let client_config = deploy_config_mgr + .find_db_client_config(params.version.clone()) + .await?; + + let mut client_custom_config = client_config.client_custom_config_str.into_bytes(); + let xorpad = MhyXorpad::from_ec2b(&client_secret_key); + xorpad.xor(&mut client_custom_config); + + Some(QueryRegionListHttpRsp { + retcode: 0, + enable_login_pc, + client_secret_key, + client_custom_config_encrypted: client_custom_config, + region_list: regions + .iter() + .map(|r| RegionSimpleInfo { + name: r.name.clone(), + title: r.title.clone(), + r#type: r.region_type.clone(), + dispatch_url: r.dispatch_url.clone(), + }) + .collect(), + }) +} diff --git a/dispatch/src/network/mod.rs b/dispatch/src/network/mod.rs new file mode 100644 index 0000000..8fe6ebd --- /dev/null +++ b/dispatch/src/network/mod.rs @@ -0,0 +1,5 @@ +mod gateserver_session; +pub mod http_handlers; +mod network_mgr; + +pub use network_mgr::NetworkMgr; diff --git a/dispatch/src/network/network_mgr.rs b/dispatch/src/network/network_mgr.rs new file mode 100644 index 0000000..6b64cee --- /dev/null +++ b/dispatch/src/network/network_mgr.rs @@ -0,0 +1,64 @@ +use std::error::Error; + +use common::{ + base::NetService, + impl_net_service, + net::{tools::Packet, AServer, NetError, ServiceType}, + rpc_handlers, services, +}; +use dashmap::DashMap; + +use crate::{config::DispatchConfig, dispatch_service}; +use paste::paste; + +use super::gateserver_session::GateserverSession; + +pub struct NetworkMgr { + server: AServer, + gateserver_sessions: DashMap, +} + +impl NetworkMgr { + pub async fn new(config: &DispatchConfig) -> Result { + let app_config = config + .applications + .get(&ServiceType::Dispatch) + .unwrap() + .iter() + .find(|a| a.app_id == config.app_id) + .expect("Failed to get applications.Dispatch entry"); + + let server = AServer::bind(app_config.inner_ip.clone()).await?; + + Ok(Self { + server, + gateserver_sessions: DashMap::new(), + }) + } + + pub async fn run(&self) { + loop { + let Ok(mut packets) = self.server.recv().await else { + continue; + }; + + while let Some(packet) = packets.pop_front() { + if let Err(err) = self.on_recv_to_svc(packet).await { + tracing::warn!("Packet processing error: {err}"); + } + } + } + } + + rpc_handlers! {} + + services! { + Gateserver; + } + + pub async fn default_packet_process_func(&self, _: Packet) -> Result<(), Box> { + Ok(()) + } +} + +impl_net_service!(Dispatch); diff --git a/framework/common/Cargo.toml b/framework/common/Cargo.toml new file mode 100644 index 0000000..8524c11 --- /dev/null +++ b/framework/common/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "common" +edition = "2021" +version.workspace = true + +[dependencies] +bytes.workspace = true +env_logger.workspace = true + +serde.workspace = true +serde_json.workspace = true +toml.workspace = true + +rand.workspace = true +rand_mt.workspace = true +rsa.workspace = true + +thiserror.workspace = true +tokio.workspace = true +tracing.workspace = true +sqlx.workspace = true +redis.workspace = true +zeromq.workspace = true +dashmap.workspace = true + +rbase64.workspace = true +prost.workspace = true +proto.workspace = true +mhy-kcp.workspace = true + +[target.'cfg(target_os = "windows")'.dependencies] +ansi_term = "0.12.1" diff --git a/framework/common/migrations/001_tables.sql b/framework/common/migrations/001_tables.sql new file mode 100644 index 0000000..d2cff37 --- /dev/null +++ b/framework/common/migrations/001_tables.sql @@ -0,0 +1,110 @@ +create function unhex(text) returns text language sql immutable strict as $$ + select encode(decode($1, 'hex'), 'escape') +$$; + +CREATE TABLE t_sdk_account ( + uid int primary key generated always as identity, + token varchar(64) NOT NULL, + username varchar(40) NOT NULL, + password varchar(256) NOT NULL, + UNIQUE(username) +); + +CREATE TABLE t_combo_token ( + account_uid varchar(32) primary key, + token varchar(64) NOT NULL, + device_id varchar(128) NOT NULL, + UNIQUE(account_uid, device_id) +); + +CREATE TABLE t_client_config ( + id bigint primary key, + version varchar(64) NOT NULL DEFAULT '', + name varchar(64) NOT NULL DEFAULT '', + stop_server_config_str varchar(512) NOT NULL DEFAULT '', + client_custom_config_str varchar(512) NOT NULL DEFAULT '', + dispatch_seed varchar(512) NOT NULL DEFAULT '', + UNIQUE(version) +); + +INSERT INTO t_client_config VALUES +(1, 'OSCBWin4.8.50', '', '', '{\"codeSwitch\":[4334],\"sdkenv\":2,\"checkdevice\":false,\"loadPatch\":false,\"showexception\":false,\"regionConfig\":\"pm|fk|add\",\"downloadMode\":0}', ''); + +CREATE TABLE t_region_config ( + id bigint primary key, + name varchar(64) NOT NULL DEFAULT '', + title varchar(128) NOT NULL DEFAULT '', + region_type varchar(64) NOT NULL DEFAULT '', + area_type varchar(64) NOT NULL DEFAULT '', + dispatch_url varchar(64) NOT NULL DEFAULT '', + sdk_env int NOT NULL, + client_secret_key bytea NOT NULL DEFAULT '', + rsa_key_list varchar(128) NOT NULL DEFAULT '', + UNIQUE(name) +); + +INSERT INTO t_region_config VALUES +(1, 'dev_mualani', 'dev_mualani', 'DEV_PUBLIC', 'global', 'http://127.0.0.1:21041/query_cur_region', 2, decode('456332621000000083FD4642C3298A7CBB33E0A04332058300080000BBFA992CD5433217198CB083995F29C7DD0CF0E30414DD89E70A3716B9EACB3935ADD70A8C6777E6BA31CEB50BDDDA259E8E104A8BBB0EE900DA167628EA277BE0365354C5F211051301202DA77ADBF26B792B3601E2E191E26B2EE31860EF8C7230373628A0CD0BA3AAA5FA6BA5BC78C46A7AD671287D64BDE6098CE62108D74D3C12C27F2F03495D60A6F7A55179FF0ED710EC708C225F0BB15F17C0D16FA990BEB3D08C35DE2E457685ACBE2FE1E32A73872DE59345E31623B3192AD0EC365D8A6F111EBC7374DA167FD7374952952738677F00D2E7D622A6718AAF647F461C27636F21E46D932C27CC148B1206E3A306A882A3B66288F96C5B3DBDB78A0699CEA20153CD494EB617C5FB04521E389338B6075EAE179368502EFF0FAF7FC57A5832266151D68129295E2C4B6476A8744BD8F066BB825DE45301DA8189CA956F89CA166D14DD3A6C2F75B91990B3201CDADA86BDE390632DA8633BCC301E28F60F60C71C0397CD4093DDDA51F0AD6C666B5EE7E7CD789260CED2941CD701296003E2926281472EAA56EA9256387A365A9171DBDA10BBB428DE396371E24F620A2656C0026B96E49C872DB31A9FDA82FA5082A3B9B1B94BEA2DBD6A4ECC94821A8C63D6181FFD733261A8A73902BF68EB8A5E9F87DEDD7C65EA3E521E04008B2C40FE138C9D1E1C61E376E9051DC4651ED94B2B91C330DDA6F816CAABE12E0A87F9748DBDCDA66E6DA7307CB8894EBF77B346D5F9543D45F5A21CD5966E6426B2DCB20F2D796079C86F881C5EB5A612068C1C04AEB87775D2A33F4862AA94CD26DBB66846972F3C2B41552D46ED18514FE0F0FA83473A024D0B2561417D4A6FDBB68F6F09FA130057A3048ADDCB745FB108AF6A9091F5A6872E668FF83F5C68445EB99B28F1AF515F8BD9365683AB819B275151F969BC15BA33C16B0714F15B19EE08540C971979A122BF2D598BDC5A8CAADDEEBFE9DA4EB15B16940213E38D79E1AB952E76A627647DD5ECED8C638D717BD05858DD377FFD62558DE398E2975286E73873AB32E94E65231B3C42DEF1D661D466E162DE5CA2FA82FB13379AA2587D723005C7FAF9DE64CE1D9ADC705BB62603591B1C3ACA8DE407827D1AC61B0414BBC660B13E8AC948623B061E154AA8FBC7EDAAC00FDB99289F6F000B50C70F4E4969AE40FA0EBDF202427EBB55119A3131DB0758DF3BE956CE7838DB638CA4E1224546EFA34466017652E96E20DD76EEE8C96793EE96426785E9D219096CB91F2521DDF125007A2DB3DD2B784BBA1653B0F590A29F12C467A7595D203971F80C1BF92E517EA648383D34468FD40CCC5A207FB33A03869E884F878C997BDEC8DA2805C823D2F56505B70A7813F48AC177D780D70CD810938F9B41346F8379DF9073B23342CE38940730D5EAB1E7C43464B387EFAB49BE5AD6FFA4C44014D4128DCB74E4A2A6F1C13C5F3C4F79767203C8B8AED90AF270BA64A4BF83A5B172C3E01C7BC00126F0B19DA32D159602D77019B51959ABB7A588822896BD9AC54D7E4EE00601792FDF2D4AE0F18EDF99D45BC73400CB541D70690776EB676ED14F88228FB908059D45EC75F203AEC210B6E8A529874387CED25F384C2A9489FAAF0DB23813799EBC2DFA8EDEE42C70AD36D7919FBD5299927264EF36973C3FCCBBFF26B28C51F872E6C28BC4BA5B6DC0BD907C3E3A4F07F4201612E696144A19A9FF329A15390DD975D5C6723EF4EE0F7627BD5DDEE7AF819DB1D4A65D3233D6DF7D55F2A7952FF2DC4761CAD105047B41DB7845BBCFA7A291190F528409028A78F813E96C80E943CD4A6036513171D0ACEADE80C1A68E68112F8841F94D1CB01D0E6678EBD844E73D3066B9D53AD66F0B2381CB25A8F8676C7443C8A729C668861E62B6BB130B574853F2B4B2B7D73521C1D0FF16C1DAF6A4C42B143F4A3C3AF5FD819D49A70ED918C159C572A9A1C56E23F7945FD76FEAF95EA882A438C5197934BAF26DD5E2C702C14AA3556181B61240CF6001F37D62A40FC97721BC777A73E79FAAB902B29337E6A97DD60DFD402DAEC9C0D109A5985DA86DE967F35BDF2A6D35487D7557EA70C08403009D4E3C70C6266D6D909C7DD63A64D3FABC8FA067CB768746A90FC1078EE26F94BEFC1FA8639CF9CA02A171D4FAA8FFA3E1FB41727045DC6AC36DD28C1816B376C18D9FC2D766A2997F2A4802B7557D5228A89BA830F251C01B16E072F60F8E48CE613F495B130C322A692F22C1A653C6CA8650A96384F53D86427F47A84C56BC88F69812BFB23B332DD97E7B9F200FCAFFA4FC8E56B047239B5510679C8A51ACB95A2165CECFD18883868710A68D1CA7B07BC221534D356986F383C094582C8FC4326FA84DB89989A15F4320232D6F2936F8F06DC9D512993888D818EC4EFD30D77D27721572BD53082BFCD20DDCAEC50B8AA66457F0A00F283835F8D732DA4E3FEF7AB5204E8241A6FBE176E655456AEEAC5ACEDF24BC98FE84BBB13D224B407A44137A2F5D0832A46202D390A840BC89B16D282E8B0B4485F2E02CF62F82D71FAE36BE921C1D8DFEFB60BA3D774985D23D8F6476A8B4E92AD15E1E9054BA139D7B3C0B8C2DCE59F13E4A134F0BAFAE8EDBDC4613C22F95C5AC54811D54DF44717B29F64204229BA73BB9E8703ADF8363688B24F45BEDD266DE6EE71597B79A1A644E57C5CA4BBB4A04AA78817566E790875AF6C171A164ED955581329006AAEC6EE08B3172F193C8BDDC14743F538320AAAC74EF8AFE92B1FB117A581758F01EC0A9F050885820B50C88DEB4A8037ADA2D64B48E09F0C785BDAB98DF6D5193C08110508D2C6353A6617B31084BEC5D026459CF747B245A27FD77EB7E8C5FB89876A9EF58C452D3AB90A411B2E8239AFCEB56B3', 'hex'), '5'); + +CREATE TABLE t_bind_config ( + id bigint primary key, + client_version varchar(64) NOT NULL, + region_name varchar(64) NOT NULL, + channel_id int NOT NULL +); + +INSERT INTO t_bind_config VALUES +(1, 'OSCBWin4.8.50', 'dev_mualani', 1); + +CREATE TABLE t_channel_id_config ( + id bigint primary key, + channel_id int NOT NULL, + enable_login_pc bool +); + +INSERT INTO t_channel_id_config VALUES +(1, 1, TRUE); + +CREATE TABLE t_client_region_config ( + id bigint primary key, + client_version varchar(64) NOT NULL, + region_name varchar(64) NOT NULL, + client_region_custom_config varchar(512) NOT NULL +); + +INSERT INTO t_client_region_config VALUES +(1, 'OSCBWin4.8.50', 'dev_mualani', ''); + +CREATE TABLE t_rsakey_config ( + id bigint primary key, + client_public_key varchar(4096) NOT NULL, + server_private_key varchar(4096) NOT NULL +); + +INSERT INTO t_rsakey_config VALUES +(5, E'-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsJbFp3WcsiojjdQtVnTu\nvtawL2m4XxK93F6lCnFwcZqUP39txFGGlrogHMqreyawIUN7E5shtwGzigzjW8Ly\n5CryBJpXP3ehNTqJS7emb+9LlC19Oxa1eQuUQnatgcsd16DPH7kJ5JzN3vXnhvUy\nk4Qficdmm0uk7FRaNYFi7EJs4xyqFTrp3rDZ0dzBHumlIeK1om7FNt6Nyivgp+Uy\nbO7kl0NLFEeSlV4S+7ofitWQsO5xYqKAzSzz+KIRQcxJidGBlZ1JN/g5DPDpx/zt\nvOWYUlM7TYk6xN3focZpU0kBzAw/rn94yW9z8jpXfzk+MvWzVL/HAcPy4ySwkay0\nNwIDAQAB\n-----END PUBLIC KEY-----', E'-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEAxbbx2m1feHyrQ7jP+8mtDF/pyYLrJWKWAdEv3wZrOtjOZzeL\nGPzsmkcgncgoRhX4dT+1itSMR9j9m0/OwsH2UoF6U32LxCOQWQD1AMgIZjAkJeJv\nFTrtn8fMQ1701CkbaLTVIjRMlTw8kNXvNA/A9UatoiDmi4TFG6mrxTKZpIcTInvP\nEpkK2A7Qsp1E4skFK8jmysy7uRhMaYHtPTsBvxP0zn3lhKB3W+HTqpneewXWHjCD\nfL7Nbby91jbz5EKPZXWLuhXIvR1Cu4tiruorwXJxmXaP1HQZonytECNU/UOzP6GN\nLdq0eFDE4b04Wjp396551G99YiFP2nqHVJ5OMQIDAQABAoIBAQDEeYZhjyq+avUu\neSuFhOaIU4/ZhlXycsOqzpwJvzEz61tBSvrZPA5LSb9pzAvpic+7hDH94jX89+8d\nNfO7qlADsVNEQJBxuv2o1MCjpCRkmBZz506IBGU60Kt1j5kwdCEergTW1q375z4w\nl8f7LmSL2U6WvKcdojTVxohBkIUJ7shtmmukDi2YnMfe6T/2JuXDDL8rvIcnfr5E\nMCgPQs+xLeLEGrIJdpUy1iIYZYrzvrpJwf9EJL3D0e7jkpbvAQZ8EF9YhEizJhOm\ndzTqW4PgW2yUaHYd3q5QjiILy7AC+oOYoTZln3RfjPOxl+bYjeMOWlqkgtpPQkAE\n4I64w8RZAoGBAPLR44pEkmTdfIIF8ZtzBiVfDZ29bT96J0CWXGVzp8x6bSu5J5jl\ns7sP8DEcjGZ6vHsLGOvkcNxzcnR3l/5HOz6TIuvVuUm36b1jHltq1xZStjGeKZs1\nihhJSu2lIA+TrK8FCRnKARJ0ughXGNZFItgeM230Sgjp2RL4ISXJ724XAoGBANBy\nS2RwNpUYvkCSZHSFnQM/jq1jldxw+0p4jAGpWLilEaA/8xWUnZrnCrPFF/t9llpb\ndTR/dCI8ntIMAy2dH4IUHyYKUahyHSzCAUNKpS0s433kn5hy9tGvn7jyuOJ4dk9F\no1PIZM7qfzmkdCBbX3NF2TGpzOvbYGJHHC3ssVr3AoGBANHJDopN9iDYzpJTaktA\nVEYDWnM2zmUyNylw/sDT7FwYRaup2xEZG2/5NC5qGM8NKTww+UYMZom/4FnJXXLd\nvcyxOFGCpAORtoreUMLwioWJzkkN+apT1kxnPioVKJ7smhvYAOXcBZMZcAR2o0m0\nD4eiiBJuJWyQBPCDmbfZQFffAoGBAKpcr4ewOrwS0/O8cgPV7CTqfjbyDFp1sLwF\n2A/Hk66dotFBUvBRXZpruJCCxn4R/59r3lgAzy7oMrnjfXl7UHQk8+xIRMMSOQwK\np7OSv3szk96hy1pyo41vJ3CmWDsoTzGs7bcdMl72wvKemRaU92ckMEZpzAT8cEMC\ncWKLb8yzAoGAMibG8IyHSo7CJz82+7UHm98jNOlg6s73CEjp0W/+FL45Ka7MF/lp\nxtR3eSmxltvwvjQoti3V4Qboqtc2IPCt+EtapTM7Wo41wlLCWCNx4u25pZPH/c8g\n1yQ+OvH+xOYG+SeO98Phw/8d3IRfR83aqisQHv5upo2Rozzo0Kh3OsE=\n-----END RSA PRIVATE KEY-----'); + +CREATE TABLE t_user_uid ( + uid int primary key NOT NULL, + account_uid varchar(128) NOT NULL, + ext varchar(512) NOT NULL DEFAULT '', + tag int NOT NULL DEFAULT 0, + UNIQUE(account_uid) +); + +CREATE TABLE t_player_data ( + uid int primary key, + nickname varchar(128) NOT NULL DEFAULT '0', + level int NOT NULL DEFAULT 0, + exp int NOT NULL DEFAULT 0, + vip_point int NOT NULL DEFAULT 0, + json_data varchar(512) NOT NULL DEFAULT '', + bin_data bytea NOT NULL, + extra_bin_data bytea DEFAULT NULL, + tag_list varchar(128) NOT NULL DEFAULT '', + is_delete bool, + reserved_1 int, + reserved_2 int, + before_login_bin_data bytea DEFAULT NULL +); + diff --git a/framework/common/src/base/mod.rs b/framework/common/src/base/mod.rs new file mode 100644 index 0000000..71b2edf --- /dev/null +++ b/framework/common/src/base/mod.rs @@ -0,0 +1,3 @@ +mod service_base; + +pub use service_base::NetService; diff --git a/framework/common/src/base/service_base.rs b/framework/common/src/base/service_base.rs new file mode 100644 index 0000000..76a34fd --- /dev/null +++ b/framework/common/src/base/service_base.rs @@ -0,0 +1,92 @@ +use std::collections::BTreeMap; + +use crate::{config::AppConfig, net::ServiceType}; + +pub trait NetService { + fn app_id(&self) -> u32; + fn get_service_type(&self) -> ServiceType; + fn app_map(&self) -> &'static BTreeMap>; + + fn get_app_config(&self, ty: ServiceType, app_id: u32) -> Option { + self.app_map() + .get(&ty)? + .iter() + .find(|a| a.app_id == app_id) + .cloned() + } + + fn get_service_type_by_app_id(&self, app_id: u32) -> Option { + for (ty, apps) in self.app_map() { + if apps.iter().any(|a| a.app_id == app_id) { + return Some(*ty); + } + } + + None + } +} + +#[macro_export] +macro_rules! impl_net_service { + ($name: ident) => { + impl ::common::base::NetService for NetworkMgr { + ::paste::paste! { + fn app_id(&self) -> u32 { + crate::[<$name:lower _service>]().config.app_id + } + + fn get_service_type(&self) -> ::common::net::ServiceType { + ::common::net::ServiceType::$name + } + + fn app_map(&self) -> &'static ::std::collections::BTreeMap<::common::net::ServiceType, Vec<::common::config::AppConfig>> { + &[<$name:lower _service>]().config.applications + } + } + } + }; +} + +#[macro_export] +macro_rules! services { + ($($name: ident;)*) => { + async fn on_recv_to_svc( + &self, + packet: ::common::net::tools::Packet, + ) -> Result<(), Box> { + let Some(app_type) = self.get_service_type_by_app_id(packet.head.sender_app_id) else { + return Ok(()); + }; + + paste! { match app_type { + $(ServiceType::$name => self.[](packet).await,)* + _ => self.on_recv(packet).await, + }} + } + + paste! { + $( + async fn []( + &self, + packet: ::common::net::tools::Packet, + ) -> Result<(), Box> { + let sessions = &self.[<$name:snake _sessions>]; + + if let Some(session) = sessions.get(&packet.head.sender_app_id) { + session.on_recv(packet).await + } else { + let Some(config) = self.get_app_config(ServiceType::$name, packet.head.sender_app_id) else { + tracing::warn!("config for app_id:{} not found", packet.head.sender_app_id); + return Ok(()); + }; + let session = [<$name Session>]::new(packet.head.sender_app_id, config.inner_ip.clone(), self.app_id()).await?; + let session = sessions + .insert(packet.head.sender_app_id, session); + + sessions.get(&packet.head.sender_app_id).unwrap().on_recv(packet).await + } + } + )* + } + }; +} diff --git a/framework/common/src/config/mod.rs b/framework/common/src/config/mod.rs new file mode 100644 index 0000000..b53753b --- /dev/null +++ b/framework/common/src/config/mod.rs @@ -0,0 +1,40 @@ +use std::sync::Arc; + +use serde::{de::DeserializeOwned, Deserialize}; +use toml::de::Error; + +#[derive(Deserialize, Clone)] +pub struct DatabaseConfig { + pub connection_string: String, + pub redis_url: String, +} + +#[derive(Deserialize, Clone)] +pub struct RegionConfig { + pub name: String, + pub dev_sdk_account: bool, +} + +#[derive(Deserialize, Clone)] +pub struct IpString(pub Arc); + +#[derive(Deserialize, Clone)] +pub struct AppConfig { + pub app_id: u32, + pub inner_ip: IpString, +} + +pub fn load_or_create_config(path: &str, defaults: &str) -> Result +where + T: DeserializeOwned, +{ + let data = std::fs::read_to_string(path).map_or_else( + |_| { + std::fs::write(path, defaults).unwrap(); + defaults.to_string() + }, + |data| data, + ); + + toml::from_str(&data) +} diff --git a/framework/common/src/crypto/aes.rs b/framework/common/src/crypto/aes.rs new file mode 100644 index 0000000..b04c381 --- /dev/null +++ b/framework/common/src/crypto/aes.rs @@ -0,0 +1,173 @@ +use super::magic::*; + +fn xorr(a: &mut [u8], b: &[u8], n: usize) { + (0..n).for_each(|i| a[i] ^= b[i]) +} + +fn xor_round_key(state: &mut [u8], keys: &[u8], round: usize) { + xorr(state, &keys[round * 16..], 16) +} + +fn sub_bytes(a: &mut [u8], n: usize) { + (0..n).for_each(|i| a[i] = LOOKUP_SBOX[a[i] as usize]) +} + +fn sub_bytes_inv(a: &mut [u8], n: usize) { + (0..n).for_each(|i| a[i] = LOOKUP_SBOX_INV[a[i] as usize]) +} + +fn key_schedule_core(a: &mut [u8], i: usize) { + let temp = a[0]; + a[0] = a[1]; + a[1] = a[2]; + a[2] = a[3]; + a[3] = temp; + sub_bytes(a, 4); + a[0] ^= LOOKUP_RCON[i]; +} + +fn oqs_aes128_load_schedule_c(key: &[u8]) -> [u8; 176] { + let mut schedule = [0u8; 176]; + + let mut bytes = 16; + let mut i = 1; + let mut t = [0u8; 4]; + + schedule[0..16].copy_from_slice(key); + + while bytes < 176 { + t.copy_from_slice(&schedule[bytes - 4..]); + key_schedule_core(&mut t, i); + i += 1; + xorr(&mut schedule[bytes..], &t, 4); + schedule[bytes..].copy_from_slice(&t); + bytes += 4; + + for _ in 0..3 { + t.copy_from_slice(&schedule[bytes - 4..]); + xorr(&mut t, &schedule[bytes - 16..], 4); + schedule[bytes..].copy_from_slice(&t); + bytes += 4; + } + } + + schedule +} + +fn shift_rows(state: &mut [u8]) { + let temp = state.to_vec(); + (0..16).for_each(|i| state[i] = temp[SHIFT_ROWS_TABLE[i] as usize]); +} + +fn shift_rows_inv(state: &mut [u8]) { + let temp = state.to_vec(); + (0..16).for_each(|i| state[i] = temp[SHIFT_ROWS_TABLE_INV[i] as usize]); +} + +fn mix_col(state: &mut [u8]) { + let (a0, a1, a2, a3) = (state[0], state[1], state[2], state[3]); + + state[0] = LOOKUP_G2[a0 as usize] ^ LOOKUP_G3[a1 as usize] ^ a2 ^ a3; + state[1] = LOOKUP_G2[a1 as usize] ^ LOOKUP_G3[a2 as usize] ^ a3 ^ a0; + state[2] = LOOKUP_G2[a2 as usize] ^ LOOKUP_G3[a3 as usize] ^ a0 ^ a1; + state[3] = LOOKUP_G2[a3 as usize] ^ LOOKUP_G3[a0 as usize] ^ a1 ^ a2; +} + +fn mix_cols(state: &mut [u8]) { + mix_col(&mut state[0..4]); + mix_col(&mut state[4..8]); + mix_col(&mut state[8..12]); + mix_col(&mut state[12..16]); +} + +fn mix_col_inv(state: &mut [u8]) { + let (a0, a1, a2, a3) = (state[0], state[1], state[2], state[3]); + + state[0] = LOOKUP_G14[a0 as usize] + ^ LOOKUP_G9[a3 as usize] + ^ LOOKUP_G13[a2 as usize] + ^ LOOKUP_G11[a1 as usize]; + state[1] = LOOKUP_G14[a1 as usize] + ^ LOOKUP_G9[a0 as usize] + ^ LOOKUP_G13[a3 as usize] + ^ LOOKUP_G11[a2 as usize]; + state[2] = LOOKUP_G14[a2 as usize] + ^ LOOKUP_G9[a1 as usize] + ^ LOOKUP_G13[a0 as usize] + ^ LOOKUP_G11[a3 as usize]; + state[3] = LOOKUP_G14[a3 as usize] + ^ LOOKUP_G9[a2 as usize] + ^ LOOKUP_G13[a1 as usize] + ^ LOOKUP_G11[a0 as usize]; +} + +fn mix_cols_inv(state: &mut [u8]) { + mix_col_inv(&mut state[0..4]); + mix_col_inv(&mut state[4..8]); + mix_col_inv(&mut state[8..12]); + mix_col_inv(&mut state[12..16]); +} + +fn oqs_aes128_enc_c(plaintext: &[u8], schedule: &[u8], ciphertext: &mut [u8]) { + ciphertext.copy_from_slice(&plaintext[..16]); + xor_round_key(ciphertext, schedule, 0); + + for i in 1..10 { + sub_bytes(ciphertext, 16); + shift_rows(ciphertext); + mix_cols(ciphertext); + xor_round_key(ciphertext, schedule, i); + } + + sub_bytes(ciphertext, 16); + shift_rows(ciphertext); + xor_round_key(ciphertext, schedule, 10); +} + +pub fn oqs_mhy128_enc_c(plaintext: &[u8], schedule: &[u8], ciphertext: &mut [u8]) { + ciphertext.copy_from_slice(&plaintext[..16]); + xor_round_key(ciphertext, schedule, 0); + + for i in 1..10 { + sub_bytes_inv(ciphertext, 16); + shift_rows_inv(ciphertext); + mix_cols_inv(ciphertext); + xor_round_key(ciphertext, schedule, i); + } + + sub_bytes_inv(ciphertext, 16); + shift_rows_inv(ciphertext); + xor_round_key(ciphertext, schedule, 10); +} + +fn oqs_aes128_dec_c(ciphertext: &[u8], schedule: &[u8], plaintext: &mut [u8]) { + plaintext.copy_from_slice(&ciphertext[..16]); + xor_round_key(plaintext, schedule, 10); + shift_rows_inv(plaintext); + sub_bytes_inv(plaintext, 16); + + for i in 0..9 { + xor_round_key(plaintext, schedule, 9 - i); + mix_cols_inv(plaintext); + shift_rows_inv(plaintext); + sub_bytes_inv(plaintext, 16); + } + + xor_round_key(plaintext, schedule, 0); +} + +fn oqs_mhy128_dec_c(ciphertext: &[u8], schedule: &[u8], plaintext: &mut [u8]) { + plaintext.copy_from_slice(&ciphertext[..16]); + xor_round_key(plaintext, schedule, 10); + shift_rows(plaintext); + sub_bytes(plaintext, 16); + + for i in 0..9 { + xor_round_key(plaintext, schedule, 9 - i); + mix_cols(plaintext); + shift_rows(plaintext); + sub_bytes(plaintext, 16); + } + + xor_round_key(plaintext, schedule, 0); +} diff --git a/framework/common/src/crypto/magic.rs b/framework/common/src/crypto/magic.rs new file mode 100644 index 0000000..23b0a31 --- /dev/null +++ b/framework/common/src/crypto/magic.rs @@ -0,0 +1,534 @@ +pub const SHIFT_ROWS_TABLE: [u8; 16] = [0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11]; +pub const SHIFT_ROWS_TABLE_INV: [u8; 16] = [0, 13, 10, 7, 4, 1, 14, 11, 8, 5, 2, 15, 12, 9, 6, 3]; +pub const LOOKUP_RCON: [u8; 16] = [ + 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, +]; +pub const LOOKUP_SBOX: [u8; 256] = [ + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, + 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, + 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, + 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, + 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, + 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, + 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, + 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, + 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, + 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, + 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, + 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, + 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, + 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, + 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, + 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16, +]; +pub const LOOKUP_SBOX_INV: [u8; 256] = [ + 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, + 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, + 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, + 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, + 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, + 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, + 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, + 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, + 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, + 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, + 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, + 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, + 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, + 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, + 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, + 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d, +]; +pub const LOOKUP_G2: [u8; 256] = [ + 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, + 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e, + 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c, 0x4e, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, + 0x60, 0x62, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7a, 0x7c, 0x7e, + 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c, 0x8e, 0x90, 0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, + 0xa0, 0xa2, 0xa4, 0xa6, 0xa8, 0xaa, 0xac, 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, + 0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde, + 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0xfe, + 0x1b, 0x19, 0x1f, 0x1d, 0x13, 0x11, 0x17, 0x15, 0x0b, 0x09, 0x0f, 0x0d, 0x03, 0x01, 0x07, 0x05, + 0x3b, 0x39, 0x3f, 0x3d, 0x33, 0x31, 0x37, 0x35, 0x2b, 0x29, 0x2f, 0x2d, 0x23, 0x21, 0x27, 0x25, + 0x5b, 0x59, 0x5f, 0x5d, 0x53, 0x51, 0x57, 0x55, 0x4b, 0x49, 0x4f, 0x4d, 0x43, 0x41, 0x47, 0x45, + 0x7b, 0x79, 0x7f, 0x7d, 0x73, 0x71, 0x77, 0x75, 0x6b, 0x69, 0x6f, 0x6d, 0x63, 0x61, 0x67, 0x65, + 0x9b, 0x99, 0x9f, 0x9d, 0x93, 0x91, 0x97, 0x95, 0x8b, 0x89, 0x8f, 0x8d, 0x83, 0x81, 0x87, 0x85, + 0xbb, 0xb9, 0xbf, 0xbd, 0xb3, 0xb1, 0xb7, 0xb5, 0xab, 0xa9, 0xaf, 0xad, 0xa3, 0xa1, 0xa7, 0xa5, + 0xdb, 0xd9, 0xdf, 0xdd, 0xd3, 0xd1, 0xd7, 0xd5, 0xcb, 0xc9, 0xcf, 0xcd, 0xc3, 0xc1, 0xc7, 0xc5, + 0xfb, 0xf9, 0xff, 0xfd, 0xf3, 0xf1, 0xf7, 0xf5, 0xeb, 0xe9, 0xef, 0xed, 0xe3, 0xe1, 0xe7, 0xe5, +]; +pub const LOOKUP_G3: [u8; 256] = [ + 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11, + 0x30, 0x33, 0x36, 0x35, 0x3c, 0x3f, 0x3a, 0x39, 0x28, 0x2b, 0x2e, 0x2d, 0x24, 0x27, 0x22, 0x21, + 0x60, 0x63, 0x66, 0x65, 0x6c, 0x6f, 0x6a, 0x69, 0x78, 0x7b, 0x7e, 0x7d, 0x74, 0x77, 0x72, 0x71, + 0x50, 0x53, 0x56, 0x55, 0x5c, 0x5f, 0x5a, 0x59, 0x48, 0x4b, 0x4e, 0x4d, 0x44, 0x47, 0x42, 0x41, + 0xc0, 0xc3, 0xc6, 0xc5, 0xcc, 0xcf, 0xca, 0xc9, 0xd8, 0xdb, 0xde, 0xdd, 0xd4, 0xd7, 0xd2, 0xd1, + 0xf0, 0xf3, 0xf6, 0xf5, 0xfc, 0xff, 0xfa, 0xf9, 0xe8, 0xeb, 0xee, 0xed, 0xe4, 0xe7, 0xe2, 0xe1, + 0xa0, 0xa3, 0xa6, 0xa5, 0xac, 0xaf, 0xaa, 0xa9, 0xb8, 0xbb, 0xbe, 0xbd, 0xb4, 0xb7, 0xb2, 0xb1, + 0x90, 0x93, 0x96, 0x95, 0x9c, 0x9f, 0x9a, 0x99, 0x88, 0x8b, 0x8e, 0x8d, 0x84, 0x87, 0x82, 0x81, + 0x9b, 0x98, 0x9d, 0x9e, 0x97, 0x94, 0x91, 0x92, 0x83, 0x80, 0x85, 0x86, 0x8f, 0x8c, 0x89, 0x8a, + 0xab, 0xa8, 0xad, 0xae, 0xa7, 0xa4, 0xa1, 0xa2, 0xb3, 0xb0, 0xb5, 0xb6, 0xbf, 0xbc, 0xb9, 0xba, + 0xfb, 0xf8, 0xfd, 0xfe, 0xf7, 0xf4, 0xf1, 0xf2, 0xe3, 0xe0, 0xe5, 0xe6, 0xef, 0xec, 0xe9, 0xea, + 0xcb, 0xc8, 0xcd, 0xce, 0xc7, 0xc4, 0xc1, 0xc2, 0xd3, 0xd0, 0xd5, 0xd6, 0xdf, 0xdc, 0xd9, 0xda, + 0x5b, 0x58, 0x5d, 0x5e, 0x57, 0x54, 0x51, 0x52, 0x43, 0x40, 0x45, 0x46, 0x4f, 0x4c, 0x49, 0x4a, + 0x6b, 0x68, 0x6d, 0x6e, 0x67, 0x64, 0x61, 0x62, 0x73, 0x70, 0x75, 0x76, 0x7f, 0x7c, 0x79, 0x7a, + 0x3b, 0x38, 0x3d, 0x3e, 0x37, 0x34, 0x31, 0x32, 0x23, 0x20, 0x25, 0x26, 0x2f, 0x2c, 0x29, 0x2a, + 0x0b, 0x08, 0x0d, 0x0e, 0x07, 0x04, 0x01, 0x02, 0x13, 0x10, 0x15, 0x16, 0x1f, 0x1c, 0x19, 0x1a, +]; +pub const LOOKUP_G9: [u8; 256] = [ + 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77, + 0x90, 0x99, 0x82, 0x8b, 0xb4, 0xbd, 0xa6, 0xaf, 0xd8, 0xd1, 0xca, 0xc3, 0xfc, 0xf5, 0xee, 0xe7, + 0x3b, 0x32, 0x29, 0x20, 0x1f, 0x16, 0x0d, 0x04, 0x73, 0x7a, 0x61, 0x68, 0x57, 0x5e, 0x45, 0x4c, + 0xab, 0xa2, 0xb9, 0xb0, 0x8f, 0x86, 0x9d, 0x94, 0xe3, 0xea, 0xf1, 0xf8, 0xc7, 0xce, 0xd5, 0xdc, + 0x76, 0x7f, 0x64, 0x6d, 0x52, 0x5b, 0x40, 0x49, 0x3e, 0x37, 0x2c, 0x25, 0x1a, 0x13, 0x08, 0x01, + 0xe6, 0xef, 0xf4, 0xfd, 0xc2, 0xcb, 0xd0, 0xd9, 0xae, 0xa7, 0xbc, 0xb5, 0x8a, 0x83, 0x98, 0x91, + 0x4d, 0x44, 0x5f, 0x56, 0x69, 0x60, 0x7b, 0x72, 0x05, 0x0c, 0x17, 0x1e, 0x21, 0x28, 0x33, 0x3a, + 0xdd, 0xd4, 0xcf, 0xc6, 0xf9, 0xf0, 0xeb, 0xe2, 0x95, 0x9c, 0x87, 0x8e, 0xb1, 0xb8, 0xa3, 0xaa, + 0xec, 0xe5, 0xfe, 0xf7, 0xc8, 0xc1, 0xda, 0xd3, 0xa4, 0xad, 0xb6, 0xbf, 0x80, 0x89, 0x92, 0x9b, + 0x7c, 0x75, 0x6e, 0x67, 0x58, 0x51, 0x4a, 0x43, 0x34, 0x3d, 0x26, 0x2f, 0x10, 0x19, 0x02, 0x0b, + 0xd7, 0xde, 0xc5, 0xcc, 0xf3, 0xfa, 0xe1, 0xe8, 0x9f, 0x96, 0x8d, 0x84, 0xbb, 0xb2, 0xa9, 0xa0, + 0x47, 0x4e, 0x55, 0x5c, 0x63, 0x6a, 0x71, 0x78, 0x0f, 0x06, 0x1d, 0x14, 0x2b, 0x22, 0x39, 0x30, + 0x9a, 0x93, 0x88, 0x81, 0xbe, 0xb7, 0xac, 0xa5, 0xd2, 0xdb, 0xc0, 0xc9, 0xf6, 0xff, 0xe4, 0xed, + 0x0a, 0x03, 0x18, 0x11, 0x2e, 0x27, 0x3c, 0x35, 0x42, 0x4b, 0x50, 0x59, 0x66, 0x6f, 0x74, 0x7d, + 0xa1, 0xa8, 0xb3, 0xba, 0x85, 0x8c, 0x97, 0x9e, 0xe9, 0xe0, 0xfb, 0xf2, 0xcd, 0xc4, 0xdf, 0xd6, + 0x31, 0x38, 0x23, 0x2a, 0x15, 0x1c, 0x07, 0x0e, 0x79, 0x70, 0x6b, 0x62, 0x5d, 0x54, 0x4f, 0x46, +]; +pub const LOOKUP_G11: [u8; 256] = [ + 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69, + 0xb0, 0xbb, 0xa6, 0xad, 0x9c, 0x97, 0x8a, 0x81, 0xe8, 0xe3, 0xfe, 0xf5, 0xc4, 0xcf, 0xd2, 0xd9, + 0x7b, 0x70, 0x6d, 0x66, 0x57, 0x5c, 0x41, 0x4a, 0x23, 0x28, 0x35, 0x3e, 0x0f, 0x04, 0x19, 0x12, + 0xcb, 0xc0, 0xdd, 0xd6, 0xe7, 0xec, 0xf1, 0xfa, 0x93, 0x98, 0x85, 0x8e, 0xbf, 0xb4, 0xa9, 0xa2, + 0xf6, 0xfd, 0xe0, 0xeb, 0xda, 0xd1, 0xcc, 0xc7, 0xae, 0xa5, 0xb8, 0xb3, 0x82, 0x89, 0x94, 0x9f, + 0x46, 0x4d, 0x50, 0x5b, 0x6a, 0x61, 0x7c, 0x77, 0x1e, 0x15, 0x08, 0x03, 0x32, 0x39, 0x24, 0x2f, + 0x8d, 0x86, 0x9b, 0x90, 0xa1, 0xaa, 0xb7, 0xbc, 0xd5, 0xde, 0xc3, 0xc8, 0xf9, 0xf2, 0xef, 0xe4, + 0x3d, 0x36, 0x2b, 0x20, 0x11, 0x1a, 0x07, 0x0c, 0x65, 0x6e, 0x73, 0x78, 0x49, 0x42, 0x5f, 0x54, + 0xf7, 0xfc, 0xe1, 0xea, 0xdb, 0xd0, 0xcd, 0xc6, 0xaf, 0xa4, 0xb9, 0xb2, 0x83, 0x88, 0x95, 0x9e, + 0x47, 0x4c, 0x51, 0x5a, 0x6b, 0x60, 0x7d, 0x76, 0x1f, 0x14, 0x09, 0x02, 0x33, 0x38, 0x25, 0x2e, + 0x8c, 0x87, 0x9a, 0x91, 0xa0, 0xab, 0xb6, 0xbd, 0xd4, 0xdf, 0xc2, 0xc9, 0xf8, 0xf3, 0xee, 0xe5, + 0x3c, 0x37, 0x2a, 0x21, 0x10, 0x1b, 0x06, 0x0d, 0x64, 0x6f, 0x72, 0x79, 0x48, 0x43, 0x5e, 0x55, + 0x01, 0x0a, 0x17, 0x1c, 0x2d, 0x26, 0x3b, 0x30, 0x59, 0x52, 0x4f, 0x44, 0x75, 0x7e, 0x63, 0x68, + 0xb1, 0xba, 0xa7, 0xac, 0x9d, 0x96, 0x8b, 0x80, 0xe9, 0xe2, 0xff, 0xf4, 0xc5, 0xce, 0xd3, 0xd8, + 0x7a, 0x71, 0x6c, 0x67, 0x56, 0x5d, 0x40, 0x4b, 0x22, 0x29, 0x34, 0x3f, 0x0e, 0x05, 0x18, 0x13, + 0xca, 0xc1, 0xdc, 0xd7, 0xe6, 0xed, 0xf0, 0xfb, 0x92, 0x99, 0x84, 0x8f, 0xbe, 0xb5, 0xa8, 0xa3, +]; +pub const LOOKUP_G13: [u8; 256] = [ + 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b, + 0xd0, 0xdd, 0xca, 0xc7, 0xe4, 0xe9, 0xfe, 0xf3, 0xb8, 0xb5, 0xa2, 0xaf, 0x8c, 0x81, 0x96, 0x9b, + 0xbb, 0xb6, 0xa1, 0xac, 0x8f, 0x82, 0x95, 0x98, 0xd3, 0xde, 0xc9, 0xc4, 0xe7, 0xea, 0xfd, 0xf0, + 0x6b, 0x66, 0x71, 0x7c, 0x5f, 0x52, 0x45, 0x48, 0x03, 0x0e, 0x19, 0x14, 0x37, 0x3a, 0x2d, 0x20, + 0x6d, 0x60, 0x77, 0x7a, 0x59, 0x54, 0x43, 0x4e, 0x05, 0x08, 0x1f, 0x12, 0x31, 0x3c, 0x2b, 0x26, + 0xbd, 0xb0, 0xa7, 0xaa, 0x89, 0x84, 0x93, 0x9e, 0xd5, 0xd8, 0xcf, 0xc2, 0xe1, 0xec, 0xfb, 0xf6, + 0xd6, 0xdb, 0xcc, 0xc1, 0xe2, 0xef, 0xf8, 0xf5, 0xbe, 0xb3, 0xa4, 0xa9, 0x8a, 0x87, 0x90, 0x9d, + 0x06, 0x0b, 0x1c, 0x11, 0x32, 0x3f, 0x28, 0x25, 0x6e, 0x63, 0x74, 0x79, 0x5a, 0x57, 0x40, 0x4d, + 0xda, 0xd7, 0xc0, 0xcd, 0xee, 0xe3, 0xf4, 0xf9, 0xb2, 0xbf, 0xa8, 0xa5, 0x86, 0x8b, 0x9c, 0x91, + 0x0a, 0x07, 0x10, 0x1d, 0x3e, 0x33, 0x24, 0x29, 0x62, 0x6f, 0x78, 0x75, 0x56, 0x5b, 0x4c, 0x41, + 0x61, 0x6c, 0x7b, 0x76, 0x55, 0x58, 0x4f, 0x42, 0x09, 0x04, 0x13, 0x1e, 0x3d, 0x30, 0x27, 0x2a, + 0xb1, 0xbc, 0xab, 0xa6, 0x85, 0x88, 0x9f, 0x92, 0xd9, 0xd4, 0xc3, 0xce, 0xed, 0xe0, 0xf7, 0xfa, + 0xb7, 0xba, 0xad, 0xa0, 0x83, 0x8e, 0x99, 0x94, 0xdf, 0xd2, 0xc5, 0xc8, 0xeb, 0xe6, 0xf1, 0xfc, + 0x67, 0x6a, 0x7d, 0x70, 0x53, 0x5e, 0x49, 0x44, 0x0f, 0x02, 0x15, 0x18, 0x3b, 0x36, 0x21, 0x2c, + 0x0c, 0x01, 0x16, 0x1b, 0x38, 0x35, 0x22, 0x2f, 0x64, 0x69, 0x7e, 0x73, 0x50, 0x5d, 0x4a, 0x47, + 0xdc, 0xd1, 0xc6, 0xcb, 0xe8, 0xe5, 0xf2, 0xff, 0xb4, 0xb9, 0xae, 0xa3, 0x80, 0x8d, 0x9a, 0x97, +]; +pub const LOOKUP_G14: [u8; 256] = [ + 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a, + 0xe0, 0xee, 0xfc, 0xf2, 0xd8, 0xd6, 0xc4, 0xca, 0x90, 0x9e, 0x8c, 0x82, 0xa8, 0xa6, 0xb4, 0xba, + 0xdb, 0xd5, 0xc7, 0xc9, 0xe3, 0xed, 0xff, 0xf1, 0xab, 0xa5, 0xb7, 0xb9, 0x93, 0x9d, 0x8f, 0x81, + 0x3b, 0x35, 0x27, 0x29, 0x03, 0x0d, 0x1f, 0x11, 0x4b, 0x45, 0x57, 0x59, 0x73, 0x7d, 0x6f, 0x61, + 0xad, 0xa3, 0xb1, 0xbf, 0x95, 0x9b, 0x89, 0x87, 0xdd, 0xd3, 0xc1, 0xcf, 0xe5, 0xeb, 0xf9, 0xf7, + 0x4d, 0x43, 0x51, 0x5f, 0x75, 0x7b, 0x69, 0x67, 0x3d, 0x33, 0x21, 0x2f, 0x05, 0x0b, 0x19, 0x17, + 0x76, 0x78, 0x6a, 0x64, 0x4e, 0x40, 0x52, 0x5c, 0x06, 0x08, 0x1a, 0x14, 0x3e, 0x30, 0x22, 0x2c, + 0x96, 0x98, 0x8a, 0x84, 0xae, 0xa0, 0xb2, 0xbc, 0xe6, 0xe8, 0xfa, 0xf4, 0xde, 0xd0, 0xc2, 0xcc, + 0x41, 0x4f, 0x5d, 0x53, 0x79, 0x77, 0x65, 0x6b, 0x31, 0x3f, 0x2d, 0x23, 0x09, 0x07, 0x15, 0x1b, + 0xa1, 0xaf, 0xbd, 0xb3, 0x99, 0x97, 0x85, 0x8b, 0xd1, 0xdf, 0xcd, 0xc3, 0xe9, 0xe7, 0xf5, 0xfb, + 0x9a, 0x94, 0x86, 0x88, 0xa2, 0xac, 0xbe, 0xb0, 0xea, 0xe4, 0xf6, 0xf8, 0xd2, 0xdc, 0xce, 0xc0, + 0x7a, 0x74, 0x66, 0x68, 0x42, 0x4c, 0x5e, 0x50, 0x0a, 0x04, 0x16, 0x18, 0x32, 0x3c, 0x2e, 0x20, + 0xec, 0xe2, 0xf0, 0xfe, 0xd4, 0xda, 0xc8, 0xc6, 0x9c, 0x92, 0x80, 0x8e, 0xa4, 0xaa, 0xb8, 0xb6, + 0x0c, 0x02, 0x10, 0x1e, 0x34, 0x3a, 0x28, 0x26, 0x7c, 0x72, 0x60, 0x6e, 0x44, 0x4a, 0x58, 0x56, + 0x37, 0x39, 0x2b, 0x25, 0x0f, 0x01, 0x13, 0x1d, 0x47, 0x49, 0x5b, 0x55, 0x7f, 0x71, 0x63, 0x6d, + 0xd7, 0xd9, 0xcb, 0xc5, 0xef, 0xe1, 0xf3, 0xfd, 0xa7, 0xa9, 0xbb, 0xb5, 0x9f, 0x91, 0x83, 0x8d, +]; +pub const KEY_XORPAD_TABLE: [u8; 16] = [ + 0xA2, 0x25, 0x25, 0x99, 0xB7, 0x62, 0xF4, 0x39, 0x28, 0xE1, 0xB7, 0x73, 0x91, 0x05, 0x25, 0x87, +]; +pub const AES_XORPAD_TABLE: [[u8; 2816]; 2] = [ + [ + 0xDE, 0xAD, 0xCA, 0xFE, 0xFA, 0xCE, 0xB0, 0x0C, 0xDE, 0xAD, 0xCA, 0xFE, 0xFA, 0xCE, 0xB0, + 0x0C, 0x3A, 0xE6, 0xDE, 0x9C, 0x81, 0xBA, 0x7C, 0xC6, 0x12, 0x1B, 0xAF, 0xD2, 0x8A, 0xBA, + 0xF5, 0xE6, 0x41, 0xDF, 0x71, 0xBA, 0x37, 0x11, 0x50, 0xF3, 0xF3, 0x62, 0x6E, 0x04, 0xF1, + 0x14, 0xFC, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x7B, 0x52, 0x7C, + 0x19, 0x98, 0x35, 0x96, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, + 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, + 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, + 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, + 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, + 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, + 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, + 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, + 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, + 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, + 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, + 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, + 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, + 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, + 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, + 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, + 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, + 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, + 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, + 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, + 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, + 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, + 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, + 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, + 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, + 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, + 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, + 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, + 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, + 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, + 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, + 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, + 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, + 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, + 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, + 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, + 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, + 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, + 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, + 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, + 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, + 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, + 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, + 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, + 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, + 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, + 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, + 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, + 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, + 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, + 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, + 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, + 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, + 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, + 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, + 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, + 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, + 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, + 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, + 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, + 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, + 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, + 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, + 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, + 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, + 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, + 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, + 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, + 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, + 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, + 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, + 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, + 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, + 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, + 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, + 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, + 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, + 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, + 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, + 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, + 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, + 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, + 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, + 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, + 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, + 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, + 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, + 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, + 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, + 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, + 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, + 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, + 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, + 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, + 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, + 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, + 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, + 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, + 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, + 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, + 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, + 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, + 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, + 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, + 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, + 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, + 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, + 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, + 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, + 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, + 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, + 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, + 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, + 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, + 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, + 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, + 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, + 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, + 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, + 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, + 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, + 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, + 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, + 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, + 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, + 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, + 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, + 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, + 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, + 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, + 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, + 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, + 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, + 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, + 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, + 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, + 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, + 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, + 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, + 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, + 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, + 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, + 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, + 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, + 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, + 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, + 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, + 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, + 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, + 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, + 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, + 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, + 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, + 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, + 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, + 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, + 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, + 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, + 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, + 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, + 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, + 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, + 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, + 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, + 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, + 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, + 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, + 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, + 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, + 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, + 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, + 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, + 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, + 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, + 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, + 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, 0x18, 0x18, 0xE0, 0xAC, + 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, 0xB5, 0x0E, 0xB6, 0x3E, + 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, 0xD0, 0x69, 0x81, 0x00, + 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, 0x82, 0x47, 0x6A, 0xB8, + 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, 0x1F, 0x8E, 0xFA, 0x3C, 0x73, 0x62, 0x6A, 0x92, + 0x18, 0x18, 0xE0, 0xAC, 0x9E, 0x71, 0x37, 0x3C, 0x48, 0xDE, 0xDC, 0xA2, 0xE8, 0xBB, 0x35, + 0xB5, 0x0E, 0xB6, 0x3E, 0x71, 0x25, 0x8A, 0xF2, 0x33, 0xE0, 0xD6, 0xBE, 0xF0, 0x3A, 0x93, + 0xD0, 0x69, 0x81, 0x00, 0x53, 0x7E, 0xCA, 0x4E, 0x78, 0x4B, 0xA2, 0xF7, 0xB3, 0xF1, 0x67, + 0x82, 0x47, 0x6A, 0xB8, 0xAA, 0x76, 0xF9, 0xDF, 0x3B, 0xEC, 0x56, + ], + [ + 0xC3, 0x20, 0x20, 0xB4, 0xAF, 0x0E, 0x82, 0x2E, 0xEF, 0x29, 0xFE, 0x75, 0x1D, 0xDB, 0x4B, + 0x86, 0x86, 0x23, 0x28, 0x72, 0xA3, 0xF4, 0x1B, 0x4F, 0x5F, 0x0E, 0x02, 0xB1, 0xAC, 0x0D, + 0xE6, 0x4F, 0x8B, 0x0B, 0x3F, 0xF3, 0x5F, 0xB5, 0x09, 0x7E, 0x3B, 0xE9, 0x93, 0x29, 0x55, + 0xE1, 0xB4, 0x9B, 0xCC, 0xCE, 0x37, 0xFC, 0xAB, 0x6B, 0xA4, 0x05, 0xE6, 0xC7, 0x45, 0x34, + 0xC0, 0xFF, 0x7C, 0x24, 0x89, 0x36, 0xBF, 0x17, 0xAB, 0x91, 0xCA, 0x49, 0xF2, 0x74, 0x80, + 0xB6, 0x90, 0x60, 0xFF, 0xD2, 0xA9, 0xE5, 0xC9, 0x64, 0xBC, 0x38, 0x40, 0x98, 0xB3, 0xBA, + 0x8F, 0x8B, 0xBA, 0x9D, 0xF3, 0xCF, 0x57, 0xBA, 0xAC, 0x18, 0xE7, 0xD3, 0x03, 0x01, 0x48, + 0x29, 0x41, 0xF6, 0x2F, 0x89, 0xD4, 0x9F, 0xD7, 0xD3, 0x05, 0x71, 0x63, 0x30, 0x4E, 0xBB, + 0xF7, 0xB0, 0x99, 0xFF, 0x43, 0xDA, 0x87, 0xCA, 0xA7, 0x48, 0x92, 0x9E, 0x76, 0xA6, 0xEE, + 0x48, 0x1C, 0x96, 0x28, 0x8E, 0x54, 0x30, 0xD6, 0xA5, 0xD3, 0x22, 0xA2, 0x30, 0xCB, 0x6A, + 0x85, 0x26, 0x69, 0xE1, 0x7C, 0xEC, 0xDC, 0xD4, 0x89, 0x2A, 0xB8, 0xAE, 0xDF, 0x12, 0x6E, + 0x39, 0x8A, 0x9B, 0x48, 0x61, 0xF9, 0x4B, 0x34, 0xD0, 0xF1, 0x60, 0x87, 0xBA, 0x88, 0x86, + 0x68, 0x8C, 0xBE, 0xC1, 0x9C, 0xAE, 0x30, 0xBC, 0xE6, 0x62, 0xFF, 0xEB, 0xBB, 0x88, 0x7C, + 0xD2, 0xBB, 0x57, 0xB4, 0x02, 0x82, 0x06, 0x72, 0xD2, 0x94, 0x60, 0x86, 0x4A, 0x29, 0xF0, + 0xEA, 0xD3, 0x88, 0x92, 0xF1, 0x22, 0xD1, 0x5C, 0x88, 0x65, 0xE6, 0xFB, 0xEE, 0x28, 0x79, + 0x86, 0x68, 0x7D, 0xA6, 0x5A, 0xBF, 0xBD, 0x7D, 0x15, 0xEF, 0x05, 0xF6, 0xF9, 0xE0, 0x11, + 0xD6, 0x30, 0x94, 0xF2, 0x6C, 0x3D, 0x0A, 0xDB, 0xC5, 0x0E, 0xDC, 0xF2, 0xFD, 0x1F, 0x61, + 0x91, 0x5D, 0x80, 0x69, 0xA3, 0xDB, 0x35, 0x98, 0x4E, 0x4A, 0xC1, 0x49, 0x76, 0xAB, 0xC0, + 0x67, 0x36, 0x3F, 0xA4, 0xC6, 0xE8, 0xCA, 0x25, 0x44, 0x63, 0x23, 0xB5, 0xC8, 0xBB, 0x3A, + 0xAC, 0xA1, 0x09, 0xC3, 0x10, 0x57, 0xA5, 0x5B, 0x3B, 0x33, 0x21, 0xCD, 0x3C, 0x88, 0xAE, + 0x1E, 0x8F, 0xC1, 0xD6, 0xFB, 0x94, 0x61, 0x38, 0xAB, 0xF1, 0x9C, 0x06, 0xCB, 0x89, 0x58, + 0x9A, 0xF4, 0xF4, 0x33, 0x80, 0x66, 0x13, 0xC0, 0xFD, 0xE2, 0x16, 0xE0, 0x89, 0x65, 0xE2, + 0xC1, 0xA6, 0xE3, 0x74, 0xD2, 0x5F, 0xA0, 0x76, 0xAD, 0xF5, 0x6B, 0x4F, 0xE0, 0xF7, 0x52, + 0xB0, 0xB1, 0x48, 0xDD, 0xEE, 0xB6, 0x01, 0x9A, 0x90, 0x91, 0x18, 0xEC, 0xCB, 0xCB, 0xAD, + 0x04, 0xB6, 0x73, 0xCF, 0x7F, 0xF3, 0xAC, 0xBE, 0xEC, 0x91, 0x44, 0x56, 0x81, 0xB8, 0x74, + 0xAE, 0x28, 0x5D, 0xC7, 0x5C, 0xAB, 0x8B, 0x56, 0x21, 0x32, 0x91, 0xB9, 0x9E, 0x70, 0xF6, + 0x9B, 0xAC, 0x50, 0x0B, 0x2E, 0x4B, 0x8B, 0xA2, 0xA5, 0x24, 0x5B, 0x91, 0xDF, 0x24, 0xA7, + 0xB0, 0x79, 0xA7, 0x16, 0x54, 0x44, 0x2E, 0xBC, 0x48, 0xCD, 0x87, 0xBA, 0xAF, 0xD4, 0xB9, + 0x1C, 0x0F, 0xAA, 0xFA, 0x3A, 0x3F, 0x3A, 0x3D, 0x68, 0x5A, 0xAE, 0xAC, 0xBA, 0xBE, 0xA3, + 0x92, 0x6E, 0x38, 0x8E, 0x33, 0x3E, 0x0A, 0xCC, 0xF6, 0xE3, 0x26, 0x57, 0xEC, 0x8E, 0x63, + 0x31, 0x27, 0xBA, 0x20, 0x4E, 0x7F, 0x34, 0xE5, 0x19, 0xFE, 0x7F, 0xA6, 0x97, 0x90, 0xD6, + 0x29, 0x1C, 0x3F, 0x8C, 0x3F, 0x81, 0x62, 0x3D, 0xF5, 0x00, 0xD4, 0xC5, 0xE2, 0xE1, 0x42, + 0x42, 0x8C, 0x65, 0x8F, 0x5A, 0x66, 0x59, 0xE1, 0xDD, 0xEC, 0xDC, 0x1B, 0x4E, 0x63, 0x82, + 0xFF, 0x02, 0x9D, 0x53, 0xDE, 0xBD, 0xB4, 0x80, 0xCF, 0x2B, 0xB7, 0xDE, 0x69, 0x5D, 0x1B, + 0xCA, 0xFB, 0xB3, 0xF9, 0xBE, 0xD0, 0xF5, 0x79, 0x86, 0x2F, 0x0E, 0xB6, 0xA9, 0x87, 0xF4, + 0x68, 0xC1, 0xBF, 0x4F, 0xB8, 0xA6, 0x2D, 0x03, 0xA9, 0x72, 0x04, 0xCA, 0x37, 0x6D, 0x1B, + 0x90, 0xDD, 0xBC, 0x52, 0xAE, 0xF3, 0xFF, 0x08, 0xDD, 0x4B, 0x46, 0xD0, 0xCD, 0xB1, 0x8A, + 0x35, 0x9A, 0x02, 0x64, 0x64, 0x2F, 0x57, 0xA5, 0x7B, 0x9A, 0x0D, 0x2B, 0x55, 0x11, 0x3C, + 0xC0, 0x35, 0x74, 0x69, 0xD9, 0x7B, 0x43, 0x1D, 0xAC, 0xB2, 0xC2, 0x8A, 0xBE, 0x22, 0x45, + 0x46, 0x76, 0xA9, 0x8A, 0x49, 0xB2, 0x5F, 0xC0, 0xB8, 0xBC, 0xCD, 0x27, 0xF8, 0x14, 0xB2, + 0xA9, 0x6D, 0x5A, 0x1F, 0xA4, 0x43, 0x1E, 0x0F, 0xDB, 0xA4, 0x9E, 0x2B, 0xCA, 0xFC, 0x98, + 0x7F, 0xF1, 0x18, 0x87, 0x5B, 0x11, 0x2D, 0xC5, 0xE4, 0x91, 0x20, 0xA9, 0x6A, 0x2D, 0xAC, + 0xA8, 0xFA, 0x94, 0x57, 0x7F, 0x30, 0x73, 0x08, 0xE8, 0x49, 0xF0, 0xC8, 0x63, 0xDA, 0x83, + 0x87, 0x2A, 0xC3, 0x31, 0x1A, 0xFC, 0xB7, 0x57, 0xB2, 0x40, 0x46, 0x09, 0x6D, 0x84, 0xB4, + 0x66, 0xF1, 0x13, 0x16, 0x3A, 0x3A, 0xFB, 0xC6, 0x6E, 0xB0, 0x71, 0xB8, 0x23, 0x74, 0x22, + 0x89, 0xFC, 0xBE, 0x34, 0xB3, 0x17, 0xB6, 0xC9, 0x68, 0x53, 0x64, 0x47, 0xAF, 0xCA, 0x1D, + 0x5F, 0xB4, 0x74, 0xA3, 0x77, 0xB5, 0xFB, 0x77, 0xD9, 0x69, 0x2B, 0x3A, 0xAA, 0xAE, 0xE4, + 0x03, 0x81, 0x6B, 0x3A, 0x35, 0x9C, 0x45, 0x50, 0x9C, 0x76, 0xCE, 0xE3, 0x7F, 0x64, 0x4B, + 0x9F, 0x83, 0x7B, 0x72, 0xBC, 0x02, 0x1E, 0x94, 0x99, 0xC1, 0x1C, 0x45, 0x19, 0x1D, 0x56, + 0x74, 0x73, 0xE7, 0xFC, 0x58, 0x72, 0x2D, 0xE3, 0x50, 0xA4, 0x21, 0xBE, 0x81, 0xDF, 0x80, + 0xDA, 0x40, 0xDB, 0x79, 0x67, 0x0E, 0x94, 0xA3, 0x05, 0xDD, 0xF7, 0x14, 0x28, 0xD6, 0xC4, + 0x2B, 0xF3, 0xCF, 0x36, 0x08, 0x84, 0xF3, 0xC8, 0x8C, 0xAD, 0xCE, 0x7F, 0x7C, 0x0F, 0xC6, + 0xFE, 0x05, 0x54, 0x4B, 0x17, 0xA1, 0x83, 0x65, 0x97, 0x29, 0x01, 0x70, 0xC1, 0x16, 0xAE, + 0x69, 0xA4, 0x90, 0xB9, 0xBE, 0x17, 0x05, 0x50, 0xF1, 0x65, 0x07, 0x23, 0x76, 0x64, 0x84, + 0x2D, 0x40, 0x34, 0xFD, 0xDF, 0x62, 0x7E, 0x4C, 0x85, 0xD2, 0x6D, 0x17, 0xE1, 0x41, 0x12, + 0xC6, 0x3E, 0xD6, 0x14, 0xB8, 0x5F, 0x8F, 0x39, 0x65, 0xC2, 0x62, 0x21, 0x06, 0x5C, 0xC9, + 0xB8, 0x99, 0xA5, 0x00, 0xE3, 0x9C, 0x73, 0xAB, 0xB9, 0x76, 0x12, 0xD2, 0xFA, 0x7F, 0x7D, + 0x64, 0x63, 0x9E, 0x26, 0xAA, 0x89, 0x85, 0x3A, 0xC9, 0x94, 0x04, 0x97, 0xEC, 0xFD, 0xC5, + 0xA3, 0xB1, 0x7D, 0xD6, 0x07, 0x9C, 0x47, 0x30, 0x9C, 0x64, 0x97, 0x0E, 0xC6, 0xFC, 0x0B, + 0xFF, 0xA7, 0xF9, 0x46, 0x5B, 0x2B, 0xDB, 0x9E, 0x1C, 0x85, 0x3A, 0x75, 0xD6, 0xEB, 0x9B, + 0x15, 0x36, 0xD7, 0x1A, 0x3D, 0xFC, 0x0B, 0x75, 0x08, 0x5E, 0x32, 0x23, 0xE0, 0xA5, 0xAD, + 0x0F, 0x45, 0xB3, 0x78, 0x20, 0x22, 0x24, 0x64, 0x0C, 0xCF, 0xD6, 0x3C, 0xA4, 0x48, 0xC7, + 0xB3, 0x6E, 0x02, 0xE2, 0x0A, 0xAB, 0x92, 0xFC, 0x40, 0x7D, 0xF5, 0x02, 0x61, 0x56, 0xAB, + 0xC5, 0x68, 0x38, 0xE0, 0x01, 0xF1, 0x94, 0x73, 0xC6, 0xFE, 0xC2, 0x34, 0x67, 0x8E, 0xB1, + 0x73, 0x72, 0xD4, 0x3B, 0xFD, 0x1F, 0xE2, 0xA8, 0xED, 0x20, 0x14, 0x0A, 0x60, 0x6D, 0xD1, + 0x85, 0x14, 0x05, 0x54, 0x96, 0xC6, 0x3D, 0xB5, 0x1B, 0x37, 0x56, 0x24, 0xF7, 0x7C, 0x0F, + 0x55, 0xC6, 0xAA, 0x7E, 0x33, 0x2D, 0xE1, 0x97, 0x74, 0xA8, 0xDC, 0xC5, 0xA1, 0xEC, 0x8C, + 0xEF, 0x28, 0x3B, 0x49, 0x8B, 0x00, 0xED, 0x8B, 0xD9, 0xE9, 0x65, 0xD5, 0x05, 0x7B, 0x6D, + 0x20, 0xCA, 0x8F, 0x93, 0xB4, 0xCA, 0x36, 0x34, 0x8E, 0x16, 0x46, 0xCE, 0x02, 0x23, 0x43, + 0x22, 0xF6, 0xBD, 0x10, 0xCC, 0xD0, 0xA3, 0xB0, 0x42, 0xA5, 0xAF, 0x59, 0x72, 0x97, 0x0B, + 0xAE, 0x80, 0x8D, 0x19, 0xD0, 0x1D, 0x7D, 0x30, 0x4E, 0x5B, 0x46, 0xC0, 0xC2, 0x5C, 0x40, + 0xFC, 0xF3, 0xEF, 0x05, 0x84, 0xE8, 0x0C, 0x80, 0xD7, 0x37, 0xA1, 0x6F, 0xC1, 0x8C, 0xE0, + 0xBA, 0xA1, 0x88, 0x7B, 0xE7, 0x20, 0xBF, 0x18, 0x02, 0x40, 0x9F, 0x6F, 0x23, 0x11, 0x78, + 0x07, 0xD0, 0x92, 0x87, 0x2D, 0xB5, 0xE0, 0xE9, 0xE9, 0xAA, 0x32, 0x88, 0x57, 0xF8, 0x9B, + 0x01, 0x93, 0x2D, 0x07, 0x77, 0x68, 0x86, 0xAD, 0x06, 0xDE, 0x57, 0xA9, 0xA4, 0x96, 0x33, + 0x42, 0xF8, 0xFB, 0x23, 0x1F, 0x99, 0xB6, 0x62, 0x93, 0x6B, 0x12, 0xBE, 0x72, 0x9F, 0x96, + 0x1A, 0xDA, 0x05, 0x60, 0xF1, 0xD5, 0x40, 0x9F, 0x75, 0xF3, 0x1D, 0xBE, 0xD7, 0x87, 0x5D, + 0x3A, 0x55, 0xF0, 0x9B, 0xBF, 0xE8, 0xB9, 0x72, 0xC2, 0xDD, 0x4D, 0x27, 0xF6, 0xA9, 0x37, + 0x96, 0x7E, 0x6E, 0x6E, 0x64, 0x37, 0x4E, 0x2E, 0x3F, 0xFD, 0x3C, 0xF4, 0xA6, 0xF5, 0x22, + 0xA8, 0x43, 0xF4, 0x13, 0x21, 0xB5, 0x4E, 0xA8, 0x6D, 0x50, 0x0A, 0xB3, 0xFE, 0x9F, 0x5C, + 0xE7, 0x1A, 0xCF, 0x36, 0x42, 0x30, 0x1C, 0x88, 0x7F, 0x29, 0xE9, 0xCD, 0x96, 0xF2, 0x6A, + 0x52, 0xB2, 0x25, 0x87, 0x63, 0xDC, 0xFC, 0x72, 0xE4, 0xF8, 0x5E, 0xB1, 0x97, 0xB4, 0x1E, + 0x08, 0x90, 0x68, 0x10, 0x73, 0x7F, 0x94, 0x61, 0x48, 0x49, 0x36, 0x9B, 0x7D, 0xBD, 0xDF, + 0xCD, 0xB1, 0xA3, 0x7D, 0xFB, 0xDD, 0x97, 0x8A, 0x0D, 0xFC, 0x9A, 0xB8, 0xA9, 0x33, 0xB5, + 0x4E, 0x50, 0x3D, 0x60, 0x90, 0xEB, 0xAB, 0xB8, 0xCB, 0x6E, 0x32, 0xE4, 0x6B, 0xB0, 0x3F, + 0x57, 0xB8, 0xA4, 0x6A, 0x7C, 0x00, 0x66, 0x39, 0xB1, 0x22, 0xE2, 0x04, 0x26, 0xA1, 0x5A, + 0x17, 0xAA, 0x80, 0xB6, 0xC0, 0xF6, 0xCF, 0x7A, 0xF8, 0x60, 0xE9, 0x52, 0xB8, 0x0E, 0x08, + 0xC0, 0xD5, 0x1F, 0xAB, 0x61, 0x62, 0x1A, 0x83, 0xD1, 0x92, 0xE1, 0x4D, 0x6D, 0xDF, 0x27, + 0x0E, 0xFF, 0xF9, 0xA3, 0x36, 0xFF, 0x73, 0xEF, 0x1D, 0xAB, 0xAC, 0xBF, 0xA7, 0xB3, 0x29, + 0xD2, 0xB2, 0x37, 0xAB, 0x08, 0x7D, 0xB6, 0x7E, 0x0D, 0x25, 0xAA, 0x49, 0x29, 0x9F, 0x61, + 0x52, 0x44, 0x19, 0x1C, 0x51, 0x95, 0x74, 0xB9, 0x3D, 0xDD, 0x95, 0x2C, 0x4F, 0x30, 0x56, + 0xC9, 0xEF, 0x3D, 0x87, 0x90, 0x1E, 0xF8, 0x69, 0xFF, 0x37, 0x06, 0x27, 0xDB, 0x72, 0x82, + 0x2C, 0xDE, 0xB8, 0x39, 0x0B, 0x78, 0xB1, 0x1F, 0x37, 0x54, 0xBF, 0x21, 0x32, 0x87, 0xB4, + 0xD9, 0x49, 0x2D, 0x29, 0x19, 0x43, 0x01, 0xD4, 0xC0, 0xA3, 0xFF, 0x09, 0x6F, 0x69, 0xC8, + 0x5D, 0x35, 0x1D, 0x10, 0x09, 0x91, 0xB6, 0x12, 0xEC, 0x04, 0xA6, 0x61, 0xEF, 0x73, 0xC7, + 0x4C, 0x04, 0x8E, 0x3E, 0xAE, 0xD7, 0xC2, 0x84, 0x48, 0xAB, 0x99, 0x96, 0x75, 0xD8, 0xAD, + 0xA7, 0x5B, 0xDE, 0x72, 0x44, 0x96, 0xC5, 0xB3, 0xEB, 0x8E, 0xED, 0xD6, 0x69, 0x81, 0xE6, + 0x07, 0x3A, 0x15, 0x0D, 0x66, 0x5F, 0x36, 0xA9, 0xAB, 0x53, 0x82, 0x47, 0x98, 0x27, 0xF2, + 0x16, 0x95, 0x05, 0x0B, 0xAE, 0xF1, 0x04, 0x92, 0x80, 0x20, 0xA4, 0x9B, 0x43, 0x66, 0x70, + 0x7F, 0x45, 0x0B, 0x4B, 0x85, 0x95, 0x10, 0x09, 0xC8, 0xD9, 0xF9, 0x5D, 0x40, 0x6D, 0x07, + 0x69, 0x18, 0xF3, 0xD6, 0x98, 0x61, 0x25, 0x8E, 0xA1, 0xE2, 0x24, 0xBD, 0xF0, 0xFA, 0x89, + 0xD8, 0x68, 0xB2, 0x03, 0x81, 0x63, 0xF9, 0x42, 0xD4, 0x1A, 0xD9, 0x4D, 0xCD, 0x30, 0x36, + 0x2D, 0xB1, 0x63, 0xFC, 0xA3, 0x2B, 0xA7, 0x07, 0x50, 0xBC, 0x67, 0xAB, 0x7D, 0x33, 0x1D, + 0xEC, 0x62, 0xFE, 0xD2, 0x65, 0xAA, 0xBA, 0x37, 0xC9, 0x7F, 0x67, 0x26, 0x9D, 0x8A, 0x8B, + 0x63, 0x0B, 0xE0, 0x30, 0x65, 0x07, 0x8C, 0xF3, 0xD1, 0xCF, 0x0D, 0xB4, 0x1E, 0xF3, 0x29, + 0xBE, 0x43, 0x1F, 0x34, 0x1E, 0x52, 0x02, 0xA7, 0x8D, 0x30, 0x2E, 0x3E, 0x39, 0x00, 0xB6, + 0x7B, 0x5C, 0x29, 0x39, 0xC0, 0x0D, 0xAB, 0xA0, 0x6D, 0x77, 0x3C, 0xB2, 0x18, 0x42, 0x57, + 0x63, 0xDA, 0x9E, 0xF5, 0xE0, 0x42, 0x43, 0xF6, 0x50, 0xFD, 0x71, 0x9B, 0x30, 0xE0, 0x92, + 0x8B, 0xD1, 0xE1, 0xC4, 0x96, 0xC9, 0xF5, 0x14, 0xB6, 0xF7, 0xA5, 0x10, 0x77, 0xF4, 0xF9, + 0xAC, 0xDC, 0x45, 0xE1, 0x3C, 0xD6, 0x0B, 0xA5, 0xE2, 0x58, 0x01, 0x19, 0x39, 0x14, 0x68, + 0x96, 0xC0, 0xCE, 0xA9, 0xDE, 0x84, 0x22, 0x59, 0x87, 0x70, 0xFD, 0x8A, 0x71, 0x64, 0x79, + 0x16, 0x37, 0x80, 0x83, 0xFD, 0x9C, 0x73, 0xE6, 0x9C, 0x8B, 0xCD, 0xC0, 0x69, 0x66, 0x90, + 0x45, 0x0A, 0xC9, 0x81, 0x4A, 0xDA, 0x26, 0xDA, 0xA1, 0x70, 0x03, 0x6C, 0x36, 0x9D, 0xAD, + 0xD7, 0xE2, 0x1F, 0x27, 0xBE, 0xBB, 0xEC, 0x63, 0xD9, 0xC2, 0x2A, 0x56, 0x4D, 0x63, 0xCD, + 0x92, 0xEE, 0xAF, 0xCA, 0xD0, 0x11, 0x35, 0x2F, 0x1D, 0xF1, 0x96, 0xD1, 0xAA, 0xDC, 0xF6, + 0x14, 0x3F, 0xA0, 0xEE, 0x90, 0x83, 0x9F, 0x42, 0x40, 0xE6, 0x2C, 0x10, 0x23, 0x00, 0x23, + 0x18, 0x8C, 0xA1, 0x26, 0x4B, 0x22, 0xE1, 0x36, 0x07, 0x55, 0xCB, 0xC3, 0xD2, 0xDD, 0x12, + 0x58, 0x19, 0x75, 0x03, 0xC6, 0xD8, 0x2E, 0xCE, 0x87, 0x1C, 0xC3, 0x15, 0x44, 0x2A, 0x30, + 0x00, 0x52, 0x39, 0x31, 0x13, 0xF4, 0x25, 0x75, 0x74, 0x15, 0x6C, 0xC5, 0xC1, 0xD2, 0x33, + 0x75, 0xC2, 0x41, 0x22, 0x28, 0x95, 0xDF, 0x97, 0x6C, 0x31, 0xF8, 0x35, 0xA6, 0x54, 0x29, + 0x5C, 0xF4, 0x20, 0x97, 0x69, 0xE5, 0x46, 0xFF, 0x34, 0x24, 0x73, 0x12, 0xB8, 0x61, 0x25, + 0x46, 0xB3, 0x8F, 0xBA, 0x3C, 0xFA, 0x06, 0xFF, 0x3F, 0x66, 0x9D, 0x22, 0x55, 0x46, 0x2F, + 0xFF, 0x44, 0xDB, 0x25, 0x29, 0xE0, 0x16, 0x6E, 0xEC, 0x87, 0x97, 0x92, 0x37, 0x23, 0x0E, + 0x52, 0x4E, 0xBB, 0x10, 0xBB, 0x1C, 0x73, 0x75, 0xD1, 0x31, 0xC3, 0xAD, 0xFE, 0xB8, 0x12, + 0x50, 0xA0, 0x69, 0x91, 0x36, 0xEA, 0x5F, 0x0D, 0xEC, 0x1A, 0x23, 0x4A, 0x7D, 0x94, 0x84, + 0xC8, 0x4A, 0x58, 0x6A, 0xA1, 0xA3, 0x75, 0xCA, 0x85, 0xE7, 0x96, 0x91, 0x07, 0x05, 0x3A, + 0x57, 0x61, 0x6A, 0x6F, 0xF1, 0xEF, 0xF7, 0xB3, 0xB1, 0x09, 0xB8, 0x91, 0xA8, 0xF9, 0x57, + 0xB8, 0x63, 0x95, 0xFF, 0xB4, 0x1C, 0x96, 0xE7, 0xE5, 0xEC, 0x06, 0x3A, 0x11, 0xE6, 0x81, + 0xAB, 0x23, 0xE4, 0x5E, 0x5A, 0xB6, 0x6B, 0x69, 0x62, 0x6F, 0x9D, 0xC4, 0x08, 0x6F, 0xA6, + 0xBE, 0x4D, 0x09, 0x12, 0x77, 0xCA, 0xDD, 0xB5, 0x2D, 0x66, 0xCB, 0x4F, 0x4F, 0x11, 0xF2, + 0x3A, 0x1A, 0x97, 0x1F, 0xFE, 0x50, 0x2F, 0x19, 0x32, 0x05, 0x45, 0xA0, 0x50, 0x60, 0x58, + 0x40, 0x40, 0x3D, 0xF6, 0xC3, 0x6F, 0x07, 0xC8, 0x26, 0x26, 0x0E, 0x42, 0x22, 0x96, 0x6D, + 0xFE, 0x95, 0x53, 0x70, 0xDC, 0x92, 0x12, 0x63, 0xFD, 0xA3, 0x7D, 0x6E, 0x44, 0xCD, 0x11, + 0x2C, 0x51, 0x6F, 0xBC, 0x50, 0xFC, 0x1C, 0xC8, 0x3A, 0x28, 0xF5, 0x39, 0xF8, 0x8C, 0x60, + 0x5D, 0xA5, 0x4A, 0xFA, 0xAB, 0x04, 0x7F, 0x34, 0x91, 0x53, 0xE7, 0x6C, 0x56, 0xC6, 0x14, + 0xE4, 0xCC, 0xE4, 0xBB, 0x6E, 0x47, 0x7A, 0x46, 0x6B, 0xE2, 0x88, 0xA0, 0xBD, 0xBD, 0xCC, + 0x51, 0xF3, 0x37, 0x4B, 0xB3, 0xA0, 0x19, 0x92, 0x48, 0x35, 0xBB, 0xBC, 0x79, 0x78, 0xFF, + 0x49, 0xC1, 0x2B, 0x93, 0xDF, 0x75, 0xA7, 0xFB, 0x94, 0x89, 0xAF, 0x50, 0x5E, 0x2D, 0xE1, + 0x78, 0x60, 0x0C, 0xDF, 0xF8, 0x7C, 0xFD, 0xCD, 0x2D, 0xE2, 0xFF, 0xD3, 0xA3, 0x4A, 0x48, + 0x0D, 0x40, 0x8F, 0x03, 0x4F, 0x2C, 0xBD, 0xFA, 0x2E, 0x16, 0xC3, 0xD4, 0xFD, 0x0B, 0xB3, + 0xBD, 0x4F, 0x30, 0xAD, 0xD0, 0xAE, 0xCA, 0x77, 0x9D, 0xDD, 0x3D, 0xA3, 0x66, 0xD0, 0xC1, + 0x6D, 0xCC, 0x3B, 0x56, 0x81, 0x5D, 0x80, 0x07, 0xD8, 0x84, 0x46, 0x71, 0x40, 0x57, 0xB3, + 0x44, 0x85, 0x63, 0x4E, 0x17, 0x2C, 0xB0, 0x21, 0x98, 0x43, 0x42, 0x04, 0x18, 0x84, 0xFA, + 0xB1, 0xD7, 0xC5, 0x5C, 0xCA, 0x25, 0x8B, 0x1A, 0x7A, 0x50, 0x60, 0x68, 0x4A, 0x30, 0xEA, + 0xE6, 0xDE, 0x19, 0xBB, 0x9F, 0x47, 0xEF, 0xDB, 0xC5, 0x81, 0x72, 0xF0, 0x8D, 0xBA, 0x74, + 0x3A, 0xD1, 0xD5, 0xC6, 0xD1, 0xE0, 0xAE, 0x28, 0x2A, 0x65, 0xE5, 0x0B, 0x09, 0xFA, 0xEA, + 0x5B, 0xA6, 0xDB, 0x38, 0xD8, 0x67, 0xC0, 0xBE, 0xA1, 0x12, 0x1C, 0x03, 0xB1, 0x81, 0xB8, + 0x95, 0xDD, 0x78, 0xF8, 0x16, 0x6E, 0xAB, 0xBB, 0xAA, 0x33, 0x54, 0x0E, 0x39, 0x83, 0x24, + 0x17, 0xB3, 0x0B, 0x3C, 0xA1, 0x62, 0x21, 0xB2, 0xA0, 0xF8, 0x49, 0xAB, 0x8B, 0x80, 0xC6, + 0x3D, 0xF1, 0x2E, 0x18, 0x44, 0x74, 0x5F, 0x98, 0x92, 0x33, 0xFB, 0xB2, 0x52, 0x6B, 0x97, + 0xE9, 0x48, 0x12, 0x91, 0x32, 0x50, 0x21, 0x75, 0x74, 0x69, 0x88, 0x54, 0xC6, 0xF3, 0xC9, + 0x37, 0x3C, 0xB3, 0x89, 0xAB, 0x33, 0x1F, 0x79, 0x57, 0xF7, 0xE4, 0xB5, 0x87, 0x0C, 0xA4, + 0x99, 0x48, 0x89, 0x63, 0x5F, 0x72, 0xA1, 0xBC, 0xFF, 0xFE, 0xF8, 0xB3, 0xF1, 0x00, 0xE4, + 0xD4, 0x01, 0x9B, 0xB7, 0x2E, 0x4F, 0xA0, 0x90, 0xE4, 0x9B, 0x6A, 0xA8, 0xBA, 0xE1, 0xD3, + 0xD5, 0xBC, 0xEB, 0xC5, 0xB2, 0x89, 0xB4, 0xE9, 0x4D, 0x3F, 0x4C, 0xFA, 0x8C, 0xCB, 0xCD, + 0x22, 0x08, 0xB8, 0xC7, 0xB3, 0xA3, 0xED, 0x6B, 0xAC, 0xF3, 0x2D, 0x98, 0x70, 0x41, 0x47, + 0x85, 0xE8, 0x6E, 0x31, 0x0A, 0xC2, 0x3E, 0x51, 0x39, 0x55, 0xF8, 0x4A, 0xE9, 0x48, 0x64, + 0x01, 0xDB, 0x8D, 0xE3, 0xAF, 0xA4, 0xB9, 0xD8, 0x19, 0xCA, 0x86, 0xCA, 0xA1, 0x6C, 0x1C, + 0x12, 0x3D, 0xA1, 0x02, 0x23, 0x1D, 0x29, 0x5D, 0x94, 0x04, 0xC6, 0x51, 0x01, 0x40, 0x0B, + 0xB3, 0x69, 0x25, 0x45, 0xEF, 0x43, 0x81, 0x4F, 0x97, 0x57, 0x0D, 0xA1, 0xA5, 0xC9, 0x9D, + 0xE6, 0x56, 0xB9, 0x38, 0x93, 0xA1, 0x78, 0xC5, 0xBF, 0x75, 0xFE, 0x81, 0x6A, 0x35, 0x64, + 0x89, 0x64, 0x43, 0x75, 0xFD, 0x29, 0x63, 0xD1, 0x15, 0xAB, 0x43, 0x60, 0x65, 0xDC, 0x98, + 0xD5, 0xC7, 0x6E, 0xF9, 0xB2, 0x38, 0xFB, 0x6E, 0xB0, 0x34, 0x9C, 0xA3, 0x73, 0x61, 0xF5, + 0x51, 0xFF, 0x1F, 0xCE, 0xB0, 0x08, 0x83, 0x29, 0xB3, 0x82, 0x07, 0xFA, 0xC4, 0xE5, 0x21, + 0xD3, 0xA0, 0xD4, 0xC0, 0xF8, 0x1A, 0x65, 0x9B, 0x35, 0x7A, 0xE3, 0x32, 0xA5, 0x4D, 0x77, + 0x1F, 0x23, 0x19, 0xCC, 0xE1, 0xB3, 0x50, 0x0D, 0xE8, 0x2F, 0x8B, 0x18, 0x89, 0x61, 0xCB, + 0x22, 0xBA, 0xE0, 0x4A, 0xA2, 0x7F, 0xA5, 0x1B, 0x45, 0x59, 0x33, 0xC4, 0x73, 0xDF, 0x42, + 0xC6, 0x00, 0x11, 0x37, 0xF2, 0x3C, 0x1B, 0xF4, 0x26, 0xD1, 0x6D, 0x93, 0xC1, 0x94, 0xD2, + 0x60, 0xE5, 0xF3, 0x91, 0x66, 0x92, 0x3C, 0x65, 0x27, 0xC1, 0x83, 0x13, 0x76, 0x5A, 0x88, + 0xEC, 0xB2, 0x59, 0x95, 0x18, 0x81, 0x2E, 0x94, 0x96, 0x53, 0x17, 0xB6, 0xFD, 0x8C, 0xCC, + 0xBE, 0x8D, 0x36, 0xB3, 0xC8, 0xF2, 0xB2, 0xBE, 0x0F, 0x12, 0x99, 0xFF, 0xFA, 0xF9, 0x18, + 0xAB, 0x30, 0xFA, 0xB1, 0x5B, 0xF2, 0xEE, 0xCA, 0x6E, 0xA1, 0xD9, 0xCE, 0xCC, 0x60, 0xA0, + 0x4D, 0xFD, 0x7C, 0xAD, 0x4D, 0x50, 0xB6, 0x88, 0x0D, 0x88, 0x3B, 0x28, 0x7F, 0xA1, 0x28, + 0x41, 0x0A, 0x43, 0xAD, 0xCC, 0x08, 0x14, 0xF3, 0xF2, 0x43, 0xE7, 0xCF, 0x6A, 0x5C, 0x11, + 0xD0, 0x6D, 0x99, 0xC8, 0x4F, 0xB1, 0x14, 0x06, 0xBC, 0x68, 0x6D, 0xBE, 0xCD, 0xD7, 0x58, + 0xA2, 0x17, 0xF5, 0x9E, 0xFD, 0xDA, 0xFA, 0xBF, 0x73, 0x57, 0x4A, 0xF8, 0xF3, 0xA9, 0x94, + 0xB3, 0x01, 0xE9, 0xA3, 0xDA, 0xEA, 0xC1, 0x40, 0x33, 0xAA, 0x3F, 0xE6, 0x0D, 0x6A, 0xE2, + 0xF3, 0x74, 0xE8, 0x1B, 0x3C, 0x2B, 0x25, 0x44, 0x8E, 0x1C, 0x36, 0xBE, 0xA9, 0x27, 0x6E, + 0x6A, 0x48, 0x8E, 0x2F, 0x2C, 0x9D, 0x71, 0x66, 0x23, 0x7C, 0x7A, 0x74, 0x93, 0x46, 0x2D, + 0xCA, 0x6B, 0xC6, 0x33, 0xDA, 0x1E, 0x1E, 0x44, 0x07, 0xFD, 0x89, 0x5D, 0x30, 0x02, 0x4C, + 0xB1, 0x73, 0xC0, 0x91, 0xEB, 0xA5, 0x61, 0x89, 0xA4, 0x04, 0xFD, 0xD5, 0x5F, 0x54, 0x59, + 0x81, 0xC3, 0x2A, 0x13, 0x89, 0xDA, 0x68, 0xB6, 0x3A, 0x9C, 0x70, 0x6F, 0x48, 0xB4, 0x3C, + 0xF8, 0x9B, 0xF8, 0xF2, 0x59, 0xBF, 0xF4, 0x8D, 0x06, 0x58, 0xEA, 0xA2, 0xA6, 0xB4, 0x70, + 0x08, 0x80, 0x2B, 0x50, 0x13, 0x36, 0x79, 0x17, 0x0B, 0x94, 0x0E, 0x4D, 0xF5, 0xC8, 0x14, + 0xB9, 0x02, 0x7D, 0xEE, 0x6B, 0xBD, 0x10, 0xB4, 0x85, 0x74, 0xA1, 0xB9, 0x84, 0x67, 0xC6, + 0x2C, 0xDB, 0xDA, 0x55, 0x54, 0x16, 0xDA, 0x02, 0xB6, 0xDA, 0x2A, 0x9B, 0x51, 0xD6, 0xDC, + 0x87, 0x80, 0xC1, 0xB8, 0x6F, 0x0C, 0xEF, 0x4B, 0xD1, 0x1A, 0x9F, 0x36, 0x2E, 0x9C, 0x7E, + 0x5F, 0x17, 0xE2, 0xC1, 0x82, 0x0C, 0x42, 0x0D, 0x15, 0x18, 0xCA, + ], +]; diff --git a/framework/common/src/crypto/mod.rs b/framework/common/src/crypto/mod.rs new file mode 100644 index 0000000..e8e59e5 --- /dev/null +++ b/framework/common/src/crypto/mod.rs @@ -0,0 +1,87 @@ +#![allow(dead_code)] + +mod aes; +mod magic; + +pub mod rsa_utils; + +use aes::*; +use magic::*; +use rand_mt::Mt64; + +pub struct MhyXorpad([u8; 4096]); + +impl MhyXorpad { + pub fn from_ec2b(ec2b: &[u8]) -> Self { + let ec2b_magic = u32::from_be_bytes(ec2b[0..4].try_into().unwrap()); + assert_eq!(ec2b_magic, 0x45633262); // "Ec2b" + + let key_len = u32::from_le_bytes(ec2b[4..8].try_into().unwrap()); + assert_eq!(key_len, 16); + + let data_len = u32::from_le_bytes(ec2b[24..28].try_into().unwrap()); + assert_eq!(data_len, 2048); + + let mut key: [u8; 16] = ec2b[8..24].try_into().unwrap(); + let data = &ec2b[28..2048 + 28]; + + key_scramble(&mut key); + (0..16).for_each(|i| key[i] ^= KEY_XORPAD_TABLE[i]); + + Self(get_decrypt_vector(&mut key, data)) + } + + pub fn from_seed(seed: u64) -> Self { + let mut mt = Mt64::new(seed); + let new_seed = mt.next_u64(); + mt.reseed(new_seed); + mt.next_u64(); + + let mut buf = Vec::with_capacity(4096); + (0..512).for_each(|_| buf.extend(mt.next_u64().to_be_bytes())); + + Self(buf.try_into().unwrap()) + } + + pub fn xor(&self, data: &mut [u8]) { + for (i, b) in data.iter_mut().enumerate() { + *b ^= self.0[i % 4096] + } + } +} + +fn key_scramble(key: &mut [u8]) { + let mut round_keys = [0u8; 176]; + for round in 0..11 { + for i in 0..16 { + for j in 0..16 { + let idx = (round << 8) + (i * 16) + j; + round_keys[round * 16 + i] ^= AES_XORPAD_TABLE[1][idx] ^ AES_XORPAD_TABLE[0][idx]; + } + } + } + + let mut chip = [0u8; 16]; + oqs_mhy128_enc_c(key, &round_keys, &mut chip); + + key.copy_from_slice(&chip); +} + +fn get_decrypt_vector(key: &mut [u8], crypt: &[u8]) -> [u8; 4096] { + let mut output = Vec::with_capacity(4096); + + let val = crypt + .chunks_exact(8) + .map(|chunk| u64::from_le_bytes(chunk.try_into().unwrap())) + .fold(0xFFFFFFFFFFFFFFFF, |val, i| val ^ i); + + let key_qword_0 = u64::from_le_bytes(key[0..8].try_into().unwrap()); + let key_qword_1 = u64::from_le_bytes(key[8..16].try_into().unwrap()); + + let mut mt = Mt64::new(key_qword_1 ^ 0xCEAC3B5A867837AC ^ val ^ key_qword_0); + for _ in 0..512 { + output.extend(mt.next_u64().to_le_bytes()); + } + + output.try_into().unwrap() +} diff --git a/framework/common/src/crypto/rsa_utils.rs b/framework/common/src/crypto/rsa_utils.rs new file mode 100644 index 0000000..113530c --- /dev/null +++ b/framework/common/src/crypto/rsa_utils.rs @@ -0,0 +1,44 @@ +use rsa::{ + pkcs1v15::SigningKey, + sha2::Sha256, + signature::{RandomizedSigner, SignatureEncoding}, + Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey, +}; + +const RSA_CHUNK_SIZE: usize = 245; + +#[must_use] +pub fn public_encrypt(public_key: &str, data: &[u8]) -> Option> { + let public_key: RsaPublicKey = + rsa::pkcs8::DecodePublicKey::from_public_key_pem(public_key).ok()?; + let mut rng = rand::thread_rng(); + + let mut result: Vec = Vec::new(); + for chunk in data.chunks(RSA_CHUNK_SIZE) { + let encrypted_chunk = public_key.encrypt(&mut rng, Pkcs1v15Encrypt, chunk).ok()?; + result.extend(encrypted_chunk); + } + + Some(result) +} + +#[must_use] +pub fn private_sign(private_key: &str, data: &[u8]) -> Option> { + let private_key = rsa::pkcs1::DecodeRsaPrivateKey::from_pkcs1_pem(private_key).ok()?; + let signing_key = SigningKey::::new(private_key); + + let mut rng = rand::thread_rng(); + Some( + signing_key + .sign_with_rng(&mut rng, data) + .to_bytes() + .to_vec(), + ) +} + +#[must_use] +pub fn private_decrypt(private_key: &str, cipher: &[u8]) -> Option> { + let private_key: RsaPrivateKey = + rsa::pkcs1::DecodeRsaPrivateKey::from_pkcs1_pem(private_key).ok()?; + private_key.decrypt(Pkcs1v15Encrypt, cipher).ok() +} diff --git a/framework/common/src/db/data.rs b/framework/common/src/db/data.rs new file mode 100644 index 0000000..4298264 --- /dev/null +++ b/framework/common/src/db/data.rs @@ -0,0 +1,96 @@ +use serde::{Deserialize, Serialize}; +use sqlx::FromRow; + +#[derive(Debug, FromRow)] +pub struct DbClientConfig { + pub id: i64, + pub version: String, + pub name: String, + pub stop_server_config_str: String, + pub client_custom_config_str: String, + pub dispatch_seed: String, +} + +#[derive(Debug, FromRow)] +pub struct DbRegionConfig { + pub id: i64, + pub name: String, + pub title: String, + pub region_type: String, + pub area_type: String, + pub dispatch_url: String, + pub sdk_env: i32, + pub client_secret_key: Vec, + pub rsa_key_list: String, +} + +impl DbRegionConfig { + pub fn is_key_allowed(&self, key_id: u32) -> bool { + self.rsa_key_list + .split(',') + .map(|s| s.parse::()) + .flatten() + .find(|i| key_id == *i) + .is_some() + } +} + +#[derive(Debug, FromRow)] +pub struct DbBindConfig { + pub id: i64, + pub client_version: String, + pub region_name: String, + pub channel_id: i32, +} + +#[derive(Debug, FromRow)] +pub struct DbChannelIdConfig { + pub id: i64, + pub channel_id: i32, + pub enable_login_pc: bool, +} + +#[derive(Debug, FromRow)] +pub struct DbClientRegionConfig { + pub id: i64, + pub client_version: String, + pub region_name: String, + pub client_region_custom_config: String, +} + +#[derive(Debug, FromRow)] +pub struct DbRsakeyConfig { + pub id: i64, + pub client_public_key: String, + pub server_private_key: String, +} + +#[derive(Deserialize, Serialize)] +pub struct PlayerExtJsonData { + pub reg_platform: u32, +} + +#[derive(FromRow, Debug)] +pub struct DbPlayerUidRow { + pub uid: i32, + pub account_uid: String, + pub ext: String, + pub tag: i32, +} + +#[derive(FromRow, Debug)] +pub struct DbPlayerDataRow { + pub uid: i32, + pub nickname: String, + pub level: i32, + pub exp: i32, + pub vip_point: i32, + pub json_data: String, + pub bin_data: Vec, + pub extra_bin_data: Option>, + pub tag_list: String, + pub is_delete: bool, + pub reserved_1: i32, + pub reserved_2: i32, + pub before_login_bin_data: Option>, +} diff --git a/framework/common/src/db/deploy_config_mgr.rs b/framework/common/src/db/deploy_config_mgr.rs new file mode 100644 index 0000000..de470a1 --- /dev/null +++ b/framework/common/src/db/deploy_config_mgr.rs @@ -0,0 +1,88 @@ +use super::data::*; +use sqlx::{query_as, PgPool, Postgres, QueryBuilder}; + +#[derive(Clone)] +pub struct DbDeployConfigMgr(PgPool); + +impl DbDeployConfigMgr { + pub fn new(pool: PgPool) -> Self { + Self(pool) + } + + pub async fn find_db_client_config(&self, version: String) -> Option { + query_as("SELECT * from t_client_config where version = ($1)") + .bind(version) + .fetch_one(&self.0) + .await + .ok() + } + + pub async fn enable_login_pc(&self, channel_id: i32) -> Option { + Some( + query_as::<_, DbChannelIdConfig>( + "SELECT * from t_channel_id_config where channel_id = ($1)", + ) + .bind(channel_id) + .fetch_one(&self.0) + .await + .ok()? + .enable_login_pc, + ) + } + + pub async fn find_bind_region_config_vec(&self, client_version: String) -> Vec { + query_as("SELECT * from t_bind_config where client_version = ($1)") + .bind(client_version) + .fetch_all(&self.0) + .await + .unwrap_or_default() + } + + pub async fn find_db_client_region_config( + &self, + client_version: String, + region_name: String, + ) -> Option { + query_as("SELECT * from t_client_region_config where client_version = ($1) and region_name = ($2)") + .bind(client_version) + .bind(region_name) + .fetch_one(&self.0) + .await + .ok() + } + + pub async fn find_db_region_config(&self, name: String) -> Option { + query_as("SELECT * from t_region_config where name = ($1)") + .bind(name) + .fetch_one(&self.0) + .await + .ok() + } + + pub async fn find_db_rsakey_config(&self, id: i64) -> Option { + query_as("SELECT * from t_rsakey_config where id = ($1)") + .bind(id) + .fetch_one(&self.0) + .await + .ok() + } + + pub async fn fetch_region_list(&self, binds: &[DbBindConfig]) -> Vec { + let mut regions_query = + QueryBuilder::::new("SELECT * from t_region_config where name in ("); + + binds.iter().enumerate().for_each(|(i, b)| { + regions_query.push_bind(b.region_name.clone()); + if binds.len() > i + 1 { + regions_query.push(","); + } + }); + + regions_query + .push(")") + .build_query_as() + .fetch_all(&self.0) + .await + .unwrap_or_default() + } +} diff --git a/framework/common/src/db/error.rs b/framework/common/src/db/error.rs new file mode 100644 index 0000000..74b2bb5 --- /dev/null +++ b/framework/common/src/db/error.rs @@ -0,0 +1,9 @@ +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum DbError { + #[error("Failed to connect to database")] + ConnectionFailed, + #[error("Failed to run initial migration: {0}")] + StartupMigrationFailed(#[from] sqlx::migrate::MigrateError), +} diff --git a/framework/common/src/db/mod.rs b/framework/common/src/db/mod.rs new file mode 100644 index 0000000..e619ece --- /dev/null +++ b/framework/common/src/db/mod.rs @@ -0,0 +1,24 @@ +use sqlx::{migrate, PgPool}; + +pub mod data; +mod deploy_config_mgr; +mod error; +mod redis_mgr; +mod sql_op_player_data; +pub use deploy_config_mgr::DbDeployConfigMgr; +pub use error::DbError; +pub use redis_mgr::RedisMgr; +pub use sql_op_player_data::SqlOpPlayerData; + +pub async fn connect(connection_string: &str) -> Result { + let pool = PgPool::connect(connection_string) + .await + .map_err(|_| DbError::ConnectionFailed)?; + + migrate!("./migrations") + .run(&pool) + .await + .map_err(|err| DbError::from(err))?; + + Ok(pool) +} diff --git a/framework/common/src/db/redis_mgr.rs b/framework/common/src/db/redis_mgr.rs new file mode 100644 index 0000000..497ed70 --- /dev/null +++ b/framework/common/src/db/redis_mgr.rs @@ -0,0 +1,58 @@ +use std::time::Duration; + +use prost::Message; +use proto::PlayerStatusRedisData; +use redis::{aio::MultiplexedConnection, AsyncCommands, Client, RedisError}; +use tokio::sync::Mutex; + +pub struct RedisMgr(Mutex); + +impl RedisMgr { + pub async fn new(redis_conn_str: &str) -> Result { + let client = Client::open(redis_conn_str)?; + let connection = client + .get_multiplexed_tokio_connection_with_response_timeouts( + Duration::from_secs(1), + Duration::from_secs(1), + ) + .await?; + + Ok(Self(Mutex::new(connection))) + } + + pub async fn get_player_status(&self, uid: u32) -> Option { + match self + .0 + .lock() + .await + .get::>(format!("player:status:{uid}")) + .await + { + Ok(Some(proto_str)) => { + let data = rbase64::decode(&proto_str).ok()?; + Some(PlayerStatusRedisData::decode(&*data).ok()?) + } + Ok(None) => Some(PlayerStatusRedisData::default()), + Err(_) => None, + } + } + + pub async fn compare_and_modify_player_status( + &self, + uid: u32, + _last_login_rand: u64, + new_data: PlayerStatusRedisData, + ) { + let data = new_data.encode_to_vec(); + + let _ = self + .0 + .lock() + .await + .set::, Option>( + format!("player:status:{uid}"), + Some(rbase64::encode(&data)), + ) + .await; + } +} diff --git a/framework/common/src/db/sql_op_player_data.rs b/framework/common/src/db/sql_op_player_data.rs new file mode 100644 index 0000000..6aea7d6 --- /dev/null +++ b/framework/common/src/db/sql_op_player_data.rs @@ -0,0 +1,105 @@ +use std::error::Error; + +use super::data::*; +use proto::PlayerData; +use sqlx::{query, query_as, PgPool, Row}; + +pub struct SqlOpPlayerData(PgPool); + +impl SqlOpPlayerData { + pub fn new(pool: PgPool) -> Self { + Self(pool) + } + + pub async fn select_player_uid_by_account( + &self, + account_uid: String, + ) -> Result, Box> { + Ok( + query_as("SELECT * from t_user_uid where account_uid = ($1)") + .bind(account_uid) + .fetch_optional(&self.0) + .await?, + ) + } + + pub async fn insert_player_uid_by_account( + &self, + account_uid: String, + platform_type: u32, + ) -> Result> { + let max_uid = query("SELECT uid from t_user_uid ORDER BY uid DESC LIMIT 1") + .fetch_optional(&self.0) + .await?; + + let max_uid = match max_uid { + Some(max_uid) => max_uid.try_get::(0)?, + _ => 0, + }; + + let ext = serde_json::to_string(&PlayerExtJsonData { + reg_platform: platform_type, + })?; + + query("INSERT INTO t_user_uid VALUES ($1, $2, $3, $4)") + .bind(max_uid + 1) + .bind(account_uid) + .bind(ext) + .bind(0) + .execute(&self.0) + .await?; + + Ok(max_uid + 1) + } + + pub async fn select_player_data_by_uid( + &self, + uid: i32, + ) -> Result, Box> { + match query_as("SELECT * from t_player_data where uid = ($1)") + .bind(uid) + .fetch_optional(&self.0) + .await + { + Ok(data) => Ok(data), + Err(err) => { + tracing::error!("failed to select player data, uid: {uid}, err: {err}"); + Err(err.into()) + } + } + } + + pub async fn insert_player_data_by_uid( + &self, + uid: i32, + data: &PlayerData, + ) -> Result<(), Box> { + query( + "INSERT INTO t_player_data (uid, nickname, level, exp, bin_data, is_delete, reserved_1, reserved_2) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)", + ) + .bind(uid) + .bind(data.nickname.as_str()) + .bind(data.level as i32) + .bind(data.exp as i32) + .bind(data.bin.clone()) + .bind(false).bind(0).bind(0) + .execute(&self.0).await?; + + Ok(()) + } + + pub async fn update_player_data_by_uid( + &self, + uid: i32, + nickname: String, + level: i32, + exp: i32, + bin_data: Vec, + ) -> Result<(), Box> { + query( + "UPDATE t_player_data SET nickname = ($1), level = ($2), exp = ($3), bin_data = ($4) WHERE uid = ($5)", + ).bind(nickname).bind(level).bind(exp).bind(bin_data).bind(uid).execute(&self.0).await?; + + Ok(()) + } +} diff --git a/framework/common/src/lib.rs b/framework/common/src/lib.rs new file mode 100644 index 0000000..b8d3d57 --- /dev/null +++ b/framework/common/src/lib.rs @@ -0,0 +1,10 @@ +pub mod base; +pub mod config; +pub mod crypto; +pub mod db; +pub mod log; +pub mod net; +pub mod tools; + +mod service_box; +pub use service_box::{ServiceBox, ServiceQualifier}; diff --git a/framework/common/src/log/mod.rs b/framework/common/src/log/mod.rs new file mode 100644 index 0000000..3072a93 --- /dev/null +++ b/framework/common/src/log/mod.rs @@ -0,0 +1,6 @@ +pub fn init_tracing() { + #[cfg(target_os = "windows")] + ansi_term::enable_ansi_support().unwrap(); + + env_logger::init_from_env(env_logger::Env::new().default_filter_or("info")); +} diff --git a/framework/common/src/net/aclient/mod.rs b/framework/common/src/net/aclient/mod.rs new file mode 100644 index 0000000..85e087b --- /dev/null +++ b/framework/common/src/net/aclient/mod.rs @@ -0,0 +1,80 @@ +use std::time::Duration; + +use crate::config::IpString; + +use super::{tools::Packet, NetResult}; +use prost::Message; +use proto::PacketHead; +use tokio::sync::mpsc::{channel, Receiver, Sender}; +use zeromq::{PushSocket, Socket, SocketSend}; + +pub struct AClient { + tx: Sender, +} + +impl AClient { + pub fn new(host: IpString, cur_app_id: u32) -> Self { + let (tx, rx) = channel(32); + + tokio::spawn(async move { Self::network_func(cur_app_id, host, rx).await }); + Self { tx } + } + + async fn network_func(cur_app_id: u32, host: IpString, mut rx: Receiver) { + let mut socket = None; + loop { + let mut packet = rx.recv().await.unwrap(); + packet.head.sender_app_id = cur_app_id; + + let sock = match socket.as_mut() { + Some(socket) => socket, + None => { + socket = Some(Self::connect(&host).await); + socket.as_mut().unwrap() + } + }; + + if let Err(err) = sock.send(packet.to_vec().into()).await { + tracing::error!( + "network_func: socket send failed, will try to reconnect next time. Err: {err}" + ); + socket = None; + } + } + } + + pub async fn send(&self, cmd_id: u16, head: PacketHead, proto: impl Message) -> NetResult<()> { + let packet = Packet { + cmd_id, + head, + recv_vec: proto.encode_to_vec(), + }; + + self.send_packet(packet).await + } + + pub async fn send_packet(&self, packet: Packet) -> NetResult<()> { + self.tx.send(packet).await.unwrap(); + Ok(()) + } + + pub fn send_packet_blocking(&self, packet: Packet) -> NetResult<()> { + self.tx.blocking_send(packet).unwrap(); + Ok(()) + } + + pub async fn connect(host: &IpString) -> PushSocket { + let mut new_socket = PushSocket::new(); + loop { + if new_socket + .connect(&format!("tcp://{}", host.0)) + .await + .is_ok() + { + break new_socket; + } + + tokio::time::sleep(Duration::from_millis(500)).await; + } + } +} diff --git a/framework/common/src/net/aserver/aserver_session.rs b/framework/common/src/net/aserver/aserver_session.rs new file mode 100644 index 0000000..6524e0d --- /dev/null +++ b/framework/common/src/net/aserver/aserver_session.rs @@ -0,0 +1,42 @@ +use prost::Message; +use proto::PacketHead; + +use crate::{ + config::IpString, + net::{AClient, NetError}, +}; + +pub struct AServerSession { + pub app_id: u32, + client: AClient, +} + +impl AServerSession { + pub fn new(app_id: u32, service_ip: IpString, cur_app_id: u32) -> Self { + let client = AClient::new(service_ip, cur_app_id); + Self { app_id, client } + } + + pub async fn send(&self, cmd_id: u16, proto: impl Message) -> Result<(), NetError> { + self.client.send(cmd_id, PacketHead::default(), proto).await + } +} + +#[macro_export] +macro_rules! rpc_handlers { + ($($name: ident;)*) => { + pub async fn on_recv(&self, packet: ::common::net::tools::Packet) -> Result<(), Box> { + use ::proto::*; + use ::prost::Message; + use ::paste::paste; + paste! { + match packet.cmd_id { + $( + $name::CMD_ID => self.[](packet).await, + )* + _ => self.default_packet_process_func(packet).await + } + } + } + }; +} diff --git a/framework/common/src/net/aserver/mod.rs b/framework/common/src/net/aserver/mod.rs new file mode 100644 index 0000000..2a79439 --- /dev/null +++ b/framework/common/src/net/aserver/mod.rs @@ -0,0 +1,50 @@ +use std::collections::VecDeque; + +use tokio::sync::Mutex; +use zeromq::{PullSocket, Socket, SocketRecv}; + +use crate::config::IpString; + +use super::{tools::Packet, NetError, NetResult}; + +mod aserver_session; +pub use aserver_session::AServerSession; + +pub struct AServer(Mutex); + +impl AServer { + pub async fn bind(host: IpString) -> NetResult { + let mut socket = PullSocket::new(); + socket + .bind(&format!("tcp://{}", host.0)) + .await + .map_err(|err| NetError::BindFail(err))?; + + Ok(Self(Mutex::new(socket))) + } + + pub async fn recv(&self) -> NetResult> { + let message = self + .0 + .lock() + .await + .recv() + .await + .map_err(|err| NetError::RecvFail(err))?; + + let out = message + .into_vecdeque() + .into_iter() + .map(|buf| match Packet::parse_from_array(&buf) { + Ok(packet) => Some(packet), + Err(err) => { + tracing::warn!("Failed to parse packet: {err}"); + None + } + }) + .flatten() + .collect(); + + Ok(out) + } +} diff --git a/framework/common/src/net/error.rs b/framework/common/src/net/error.rs new file mode 100644 index 0000000..fe4f702 --- /dev/null +++ b/framework/common/src/net/error.rs @@ -0,0 +1,20 @@ +use thiserror::Error; +use zeromq::ZmqError; + +use super::ServiceType; + +#[derive(Error, Debug)] +pub enum NetError { + #[error("Failed to connect to remote service: {0}")] + ConnectFail(#[source] ZmqError), + #[error("Failed to bind: {0}")] + BindFail(#[source] ZmqError), + #[error("Failed to send data to remote service: {0}")] + SendFail(#[source] ZmqError), + #[error("Recv failed: {0}")] + RecvFail(#[source] ZmqError), + #[error("Service with app id {0} not found")] + MissingAppId(u32), + #[error("No service of type {0:?}")] + MissingServiceType(ServiceType), +} diff --git a/framework/common/src/net/kcp_server/error.rs b/framework/common/src/net/kcp_server/error.rs new file mode 100644 index 0000000..40c1dff --- /dev/null +++ b/framework/common/src/net/kcp_server/error.rs @@ -0,0 +1,7 @@ +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum KcpServerError { + #[error("find_session failed, session_id={0}")] + SessionNotFound(u32), +} diff --git a/framework/common/src/net/kcp_server/kcp_conn_mgr.rs b/framework/common/src/net/kcp_server/kcp_conn_mgr.rs new file mode 100644 index 0000000..5485467 --- /dev/null +++ b/framework/common/src/net/kcp_server/kcp_conn_mgr.rs @@ -0,0 +1,176 @@ +use std::{ + error::Error, + net::SocketAddr, + sync::{Arc, OnceLock, Weak}, + task::{Context, Poll}, +}; + +use rand::RngCore; +use tokio::net::UdpSocket; + +use crate::net::tools::connect_packet::*; + +use super::{KcpServerError, KcpServerMgr, KcpSession}; + +pub struct KcpConnMgr +where + Session: KcpSession, +{ + socket: UdpSocket, + server_mgr: OnceLock>>, + #[allow(dead_code)] + max_conn_num: usize, // todo + udp_mtu: usize, + recv_buf_len: usize, +} + +impl KcpConnMgr +where + Session: KcpSession + 'static, +{ + pub async fn new( + addr: &str, + max_conn_num: usize, + udp_mtu: usize, + recv_buf_len: usize, + ) -> Result { + let socket = UdpSocket::bind(addr).await?; + + Ok(Self { + socket, + server_mgr: OnceLock::new(), + max_conn_num, + udp_mtu, + recv_buf_len, + }) + } + + pub async fn run(self: Arc) -> Result<(), Box> { + let mut buf = vec![0u8; self.udp_mtu]; + loop { + let Ok((len, addr)) = self.socket.recv_from(&mut buf).await else { + continue; + }; + + let buf = &buf[..len]; + match len { + CONTROL_PACKET_SIZE => match get_control_packet_type(buf) { + Some(ControlPacketType::Connect) => { + if let Err(err) = self.handle_connect_packet(buf, addr).await { + tracing::warn!("handle_connect_packet failed {err:?}"); + } + } + Some(ControlPacketType::Disconnect) => { + if let Err(err) = self.handle_disconnect_packet(buf, addr).await { + tracing::warn!("handle_disconnect_packet failed {err:?}"); + } + } + Some(ControlPacketType::SendBackConv) => { + tracing::warn!("server received SendBackConv packet from {addr:?}") + } + None => (), + }, + 28.. => { + if let Err(err) = self.handle_kcp_packet(buf.into()).await { + tracing::warn!("handle_kcp_packet failed {err:?}"); + } + } + _ => (), + }; + } + } + + async fn handle_connect_packet( + self: &Arc, + buf: &[u8], + addr: SocketAddr, + ) -> Result<(), std::io::Error> { + let server_mgr = self.server_mgr(); + + let token = match get_token_from_control_packet(buf) { + 0 => rand::thread_rng().next_u32(), + token => token, + }; + let session_id = server_mgr.gen_new_session_id(); + let data = get_data_from_control_packet(buf); + + let mut session = Session::new(self.clone(), session_id, token, self.recv_buf_len, addr); + session.on_connect(data); + server_mgr.add_session(session_id, session); + + tracing::info!( + "add_session from ip={} port={} data={} token={}", + addr.ip(), + addr.port(), + data, + token + ); + + let packet = make_send_back_conv_packet(session_id, token, data); + self.socket.send_to(&packet, addr).await?; + + Ok(()) + } + + async fn handle_disconnect_packet( + self: &Arc, + buf: &[u8], + _addr: SocketAddr, + ) -> Result<(), std::io::Error> { + let server_mgr = self.server_mgr(); + + let conv = get_conv_from_control_packet(buf); + let data = get_data_from_control_packet(buf); + + server_mgr.disconnect(conv, data).await; + tracing::info!( + "disconnect session from client, session_id={} data={}", + conv, + data + ); + + Ok(()) + } + + async fn handle_kcp_packet(&self, buf: Box<[u8]>) -> Result<(), Box> { + let conv = mhy_kcp::get_conv(&buf); + let Some(session) = self.server_mgr().find_session(conv) else { + return Err(KcpServerError::SessionNotFound(conv))?; + }; + + tokio::spawn(async move { session.input(buf).await }); + Ok(()) + } + + pub async fn disconnect(&self, session_id: u32, data: u32) { + let Some(session) = self.server_mgr().find_session(session_id) else { + tracing::warn!("disconnect find_session failed, session_id={session_id}"); + return; + }; + + let packet = make_disconnect_packet(session_id, session.get_user_token(), data); + let _ = self + .socket + .send_to(&packet, session.get_udp_remote_endpoint()) + .await; + } + + pub fn send_udp_packet( + &self, + cx: &mut Context<'_>, + buf: &[u8], + endpoint: SocketAddr, + ) -> Poll> { + self.socket.poll_send_to(cx, buf, endpoint) + } + + pub fn set_server_mgr(&self, server_mgr: Arc>) { + if self.server_mgr.set(Arc::downgrade(&server_mgr)).is_err() { + panic!("KcpConnMgr::set_server_mgr shouldn't be called twice") + } + } + + fn server_mgr(&self) -> Arc> { + self.server_mgr.get().unwrap().upgrade().unwrap() + } +} diff --git a/framework/common/src/net/kcp_server/kcp_server_mgr.rs b/framework/common/src/net/kcp_server/kcp_server_mgr.rs new file mode 100644 index 0000000..0858ae2 --- /dev/null +++ b/framework/common/src/net/kcp_server/kcp_server_mgr.rs @@ -0,0 +1,74 @@ +use std::sync::{ + atomic::{AtomicU32, Ordering}, + Arc, +}; + +use dashmap::DashMap; + +use crate::config::IpString; + +use super::{KcpConnMgr, KcpSession}; + +pub struct KcpServerMgr +where + Session: KcpSession, +{ + conn_mgr: Arc>, + session_id_counter: AtomicU32, + session_map: DashMap>, +} + +impl KcpServerMgr +where + Session: KcpSession + 'static, +{ + pub async fn new( + outer_ip: IpString, + listen_port: u16, + max_conn_num: usize, + udp_mtu: usize, + recv_buf_len: usize, + ) -> Result { + let addr = format!("{}:{}", outer_ip.0, listen_port); + let conn_mgr = KcpConnMgr::new(&addr, max_conn_num, udp_mtu, recv_buf_len).await?; + + Ok(Self { + conn_mgr: Arc::new(conn_mgr), + session_id_counter: AtomicU32::new(0), + session_map: DashMap::new(), + }) + } + + pub async fn run(self: Arc) { + self.conn_mgr.set_server_mgr(self.clone()); + if let Err(err) = self.conn_mgr.clone().run().await { + tracing::error!("KcpConnMgr run fail {err:?}") + } + } + + pub fn add_session(&self, session_id: u32, session: Session) { + self.session_map.insert(session_id, Arc::new(session)); + } + + pub fn find_session(&self, session_id: u32) -> Option> { + self.session_map.get(&session_id).map(|s| s.clone()) + } + + pub async fn disconnect(&self, session_id: u32, data: u32) { + let Some(session) = self.find_session(session_id) else { + tracing::warn!("disconnect find_session failed, session_id={session_id}"); + return; + }; + + session.on_disconnect(data); + self.conn_mgr.disconnect(session_id, data).await; + } + + pub fn session_count(&self) -> usize { + self.session_map.len() + } + + pub fn gen_new_session_id(&self) -> u32 { + self.session_id_counter.fetch_add(1, Ordering::SeqCst) + 1 + } +} diff --git a/framework/common/src/net/kcp_server/kcp_session.rs b/framework/common/src/net/kcp_server/kcp_session.rs new file mode 100644 index 0000000..67ebabc --- /dev/null +++ b/framework/common/src/net/kcp_server/kcp_session.rs @@ -0,0 +1,23 @@ +use std::{net::SocketAddr, sync::Arc}; + +use super::KcpConnMgr; + +pub trait KcpSession: Sync + Send { + fn new( + conn_mgr: Arc>, + session_id: u32, + token: u32, + recv_buf_len: usize, + udp_remote_endpoint: SocketAddr, + ) -> Self + where + Self: Sized; + + fn on_connect(&mut self, data: u32); + fn on_disconnect(&self, reason: u32); + fn input(self: Arc, buf: Box<[u8]>) -> impl std::future::Future + Send; + fn get_remote_ip(&self) -> u32; + fn get_user_session_id(&self) -> u32; + fn get_user_token(&self) -> u32; + fn get_udp_remote_endpoint(&self) -> SocketAddr; +} diff --git a/framework/common/src/net/kcp_server/mod.rs b/framework/common/src/net/kcp_server/mod.rs new file mode 100644 index 0000000..91b5a2f --- /dev/null +++ b/framework/common/src/net/kcp_server/mod.rs @@ -0,0 +1,9 @@ +mod error; +mod kcp_conn_mgr; +mod kcp_server_mgr; +mod kcp_session; + +pub use error::KcpServerError; +pub use kcp_conn_mgr::KcpConnMgr; +pub use kcp_server_mgr::KcpServerMgr; +pub use kcp_session::KcpSession; diff --git a/framework/common/src/net/mod.rs b/framework/common/src/net/mod.rs new file mode 100644 index 0000000..87537be --- /dev/null +++ b/framework/common/src/net/mod.rs @@ -0,0 +1,35 @@ +mod aclient; +mod aserver; +mod error; +pub mod kcp_server; +pub mod tools; + +pub type NetResult = Result; + +pub use aclient::AClient; +pub use aserver::{AServer, AServerSession}; +pub use error::NetError; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd)] +#[repr(u32)] +pub enum ServiceType { + Gateserver = 2, + Gameserver = 3, + Nodeserver = 4, + Dbgate = 5, + Dispatch = 7, + Muipserver = 8, + OfflineMsg = 9, + Mail = 10, + Mp = 11, + HttpProxy = 12, + Activity = 13, + Pathfinding = 14, + Social = 15, + Oaserver = 16, + Match = 17, + OfflineOp = 18, + Tothemoon = 19, + GCG = 20, +} diff --git a/framework/common/src/net/tools/connect_packet.rs b/framework/common/src/net/tools/connect_packet.rs new file mode 100644 index 0000000..96139b6 --- /dev/null +++ b/framework/common/src/net/tools/connect_packet.rs @@ -0,0 +1,63 @@ +pub const CONTROL_PACKET_SIZE: usize = 20; + +pub fn make_control_packet( + head_magic: u32, + tail_magic: u32, + conv: u32, + token: u32, + data: u32, +) -> [u8; CONTROL_PACKET_SIZE] { + let mut buf = Vec::with_capacity(CONTROL_PACKET_SIZE); + + buf.extend(head_magic.to_be_bytes()); + buf.extend(conv.to_be_bytes()); + buf.extend(token.to_be_bytes()); + buf.extend(data.to_be_bytes()); + buf.extend(tail_magic.to_be_bytes()); + + buf.try_into().unwrap() +} + +#[derive(Clone, Copy, PartialEq, Eq)] +pub enum ControlPacketType { + Connect, + SendBackConv, + Disconnect, +} + +#[allow(dead_code)] +pub fn make_connect_packet(conv: u32, token: u32, data: u32) -> [u8; CONTROL_PACKET_SIZE] { + make_control_packet(0xFF, 0xFFFFFFFF, conv, token, data) +} + +pub fn make_send_back_conv_packet(conv: u32, token: u32, data: u32) -> [u8; CONTROL_PACKET_SIZE] { + make_control_packet(0x145, 0x14514545, conv, token, data) +} + +pub fn make_disconnect_packet(conv: u32, token: u32, data: u32) -> [u8; CONTROL_PACKET_SIZE] { + make_control_packet(0x194, 0x19419494, conv, token, data) +} + +pub fn get_conv_from_control_packet(data: &[u8]) -> u32 { + u32::from_be_bytes(data[4..8].try_into().unwrap()) +} + +pub fn get_token_from_control_packet(data: &[u8]) -> u32 { + u32::from_be_bytes(data[8..12].try_into().unwrap()) +} + +pub fn get_data_from_control_packet(data: &[u8]) -> u32 { + u32::from_be_bytes(data[12..16].try_into().unwrap()) +} + +pub fn get_control_packet_type(data: &[u8]) -> Option { + let head_magic = u32::from_be_bytes(data[0..4].try_into().unwrap()); + let tail_magic = u32::from_be_bytes(data[16..20].try_into().unwrap()); + + match (head_magic, tail_magic) { + (0xFF, 0xFFFFFFFF) => Some(ControlPacketType::Connect), + (0x145, 0x14514545) => Some(ControlPacketType::SendBackConv), + (0x194, 0x19419494) => Some(ControlPacketType::Disconnect), + _ => None, + } +} diff --git a/framework/common/src/net/tools/mod.rs b/framework/common/src/net/tools/mod.rs new file mode 100644 index 0000000..b0623bf --- /dev/null +++ b/framework/common/src/net/tools/mod.rs @@ -0,0 +1,3 @@ +pub(crate) mod connect_packet; +mod packet; +pub use packet::Packet; diff --git a/framework/common/src/net/tools/packet.rs b/framework/common/src/net/tools/packet.rs new file mode 100644 index 0000000..02c35f7 --- /dev/null +++ b/framework/common/src/net/tools/packet.rs @@ -0,0 +1,118 @@ +#![allow(unused)] + +use std::net::Ipv4Addr; + +use prost::Message; +use proto::{PacketHead, YSMessage}; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum PacketParseError { + #[error("buf_len={0} is too short")] + BufferIsTooShort(usize), + #[error("head magic error")] + HeadMagicMismatch, + #[error("body_len={0} is too long")] + TooLongBodyLen(usize), + #[error("buf_len={0} is too short, packet_len={1}")] + BufferExceeded(usize, usize), + #[error("PacketHead::decode failed")] + HeadParseFailed, + #[error("tail magic error 0x{0:X}")] + TailMagicMismatch(u16), +} + +#[derive(Clone)] +pub struct Packet { + pub cmd_id: u16, + pub head: PacketHead, + pub recv_vec: Vec, +} + +impl Packet { + const MIN_PACKET_LEN: usize = 12; + const HEAD_MAGIC: u16 = 0x4567; + const TAIL_MAGIC: u16 = 0x89AB; + + pub fn new(proto: impl YSMessage, head: PacketHead) -> Self { + Self { + cmd_id: proto.get_cmd_id(), + head, + recv_vec: proto.encode_to_vec(), + } + } + + pub fn parse_from_array(buf: &[u8]) -> Result { + let buf_len = buf.len(); + + if buf_len < Self::MIN_PACKET_LEN { + return Err(PacketParseError::BufferIsTooShort(buf_len)); + } + + let head_magic = u16::from_be_bytes(buf[0..2].try_into().unwrap()); + if head_magic != Self::HEAD_MAGIC { + return Err(PacketParseError::HeadMagicMismatch); + } + + let cmd_id = u16::from_be_bytes(buf[2..4].try_into().unwrap()); + let head_len = u16::from_be_bytes(buf[4..6].try_into().unwrap()) as usize; + let body_len = u32::from_be_bytes(buf[6..10].try_into().unwrap()) as usize; + + if body_len > 0x19999999 { + return Err(PacketParseError::TooLongBodyLen(body_len)); + } + + let packet_len = Self::MIN_PACKET_LEN + head_len + body_len; + if buf_len < packet_len { + return Err(PacketParseError::BufferExceeded(buf_len, packet_len)); + } + + let Ok(head) = PacketHead::decode(&buf[10..10 + head_len]) else { + return Err(PacketParseError::HeadParseFailed); + }; + + let tail_magic = u16::from_be_bytes( + buf[10 + head_len + body_len..12 + head_len + body_len] + .try_into() + .unwrap(), + ); + + if tail_magic != Self::TAIL_MAGIC { + return Err(PacketParseError::TailMagicMismatch(tail_magic)); + } + + Ok(Self { + cmd_id, + head, + recv_vec: buf[10 + head_len..10 + head_len + body_len].to_vec(), + }) + } + + pub fn to_vec(&self) -> Vec { + let mut output = Vec::with_capacity( + Self::MIN_PACKET_LEN + self.head.encoded_len() + self.recv_vec.len(), + ); + + let head = self.head.encode_to_vec(); + output.extend(Self::HEAD_MAGIC.to_be_bytes()); + output.extend(self.cmd_id.to_be_bytes()); + output.extend((head.len() as u16).to_be_bytes()); + output.extend((self.recv_vec.len() as u32).to_be_bytes()); + output.extend(head); + output.extend(&self.recv_vec); + output.extend(Self::TAIL_MAGIC.to_be_bytes()); + + output + } + + pub fn get_proto(&self) -> Result + where + T: prost::Message + Default, + { + T::decode(&*self.recv_vec) + } + + pub fn get_user_ip(&self) -> String { + Ipv4Addr::from(self.head.user_ip).to_string() + } +} diff --git a/framework/common/src/service_box.rs b/framework/common/src/service_box.rs new file mode 100644 index 0000000..bfab1a0 --- /dev/null +++ b/framework/common/src/service_box.rs @@ -0,0 +1,76 @@ +use std::collections::BTreeMap; + +use crate::{ + config::AppConfig, + net::{tools::Packet, AClient, NetError, ServiceType}, +}; + +pub struct ServiceBox { + services: BTreeMap, +} + +pub enum ServiceQualifier { + Type(ServiceType), + AppId(u32), +} + +impl ServiceBox { + pub fn new(own_app_id: u32, applications: &BTreeMap>) -> Self { + let mut services = BTreeMap::new(); + + for (ty, apps) in applications.iter() { + apps.iter().for_each(|a| { + services.insert( + a.app_id, + (*ty, AClient::new(a.inner_ip.clone(), own_app_id)), + ); + }); + } + + Self { services } + } + + pub async fn push_packet_to_service( + &self, + qualifier: ServiceQualifier, + packet: Packet, + ) -> Result<(), NetError> { + let client = match qualifier { + ServiceQualifier::AppId(id) => { + &self.services.get(&id).ok_or(NetError::MissingAppId(id))?.1 + } + ServiceQualifier::Type(svc_type) => { + &self + .services + .values() + .find(|(ty, _)| *ty == svc_type) + .ok_or(NetError::MissingAppId(0))? + .1 + } + }; + + client.send_packet(packet).await + } + + pub fn push_packet_to_service_blocking( + &self, + qualifier: ServiceQualifier, + packet: Packet, + ) -> Result<(), NetError> { + let client = match qualifier { + ServiceQualifier::AppId(id) => { + &self.services.get(&id).ok_or(NetError::MissingAppId(id))?.1 + } + ServiceQualifier::Type(svc_type) => { + &self + .services + .values() + .find(|(ty, _)| *ty == svc_type) + .ok_or(NetError::MissingAppId(0))? + .1 + } + }; + + client.send_packet_blocking(packet) + } +} diff --git a/framework/common/src/tools/mod.rs b/framework/common/src/tools/mod.rs new file mode 100644 index 0000000..8ce4325 --- /dev/null +++ b/framework/common/src/tools/mod.rs @@ -0,0 +1,2 @@ +pub mod string_utils; +pub mod time_utils; diff --git a/framework/common/src/tools/string_utils.rs b/framework/common/src/tools/string_utils.rs new file mode 100644 index 0000000..b474215 --- /dev/null +++ b/framework/common/src/tools/string_utils.rs @@ -0,0 +1,5 @@ +pub fn get_string_hash(s: &str) -> u32 { + s.chars().fold(0, |hash, c| { + (((c as u64) + 131 * hash as u64) & 0xFFFFFFFF) as u32 + }) +} diff --git a/framework/common/src/tools/time_utils.rs b/framework/common/src/tools/time_utils.rs new file mode 100644 index 0000000..3e424b3 --- /dev/null +++ b/framework/common/src/tools/time_utils.rs @@ -0,0 +1,15 @@ +use std::time::{SystemTime, UNIX_EPOCH}; + +pub fn get_now() -> u64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_secs() as u64 +} + +pub fn get_now_ms() -> u64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap() + .as_millis() as u64 +} diff --git a/gameserver/Cargo.toml b/gameserver/Cargo.toml new file mode 100644 index 0000000..ce42042 --- /dev/null +++ b/gameserver/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "gameserver" +edition = "2021" +version.workspace = true + +[dependencies] +env_logger.workspace = true + +serde.workspace = true +serde_json.workspace = true +toml.workspace = true +num_enum.workspace = true + +parking_lot.workspace = true +tokio.workspace = true +tokio-util.workspace = true + +tracing.workspace = true +tracing-futures.workspace = true +tracing-log.workspace = true +tracing-subscriber.workspace = true +tracing-bunyan-formatter.workspace = true + +dashmap.workspace = true +rand.workspace = true +paste.workspace = true +prost.workspace = true +hex.workspace = true +rbase64.workspace = true +proto.workspace = true + +common.workspace = true +data.workspace = true diff --git a/gameserver/gameserver.toml b/gameserver/gameserver.toml new file mode 100644 index 0000000..1d3b06f --- /dev/null +++ b/gameserver/gameserver.toml @@ -0,0 +1,25 @@ +app_id = 4 + +[[applications.Dispatch]] +app_id = 1 +inner_ip = "127.0.0.1:22001" + +[[applications.Gateserver]] +app_id = 2 +inner_ip = "127.0.0.1:22002" + +[[applications.Dbgate]] +app_id = 3 +inner_ip = "127.0.0.1:22003" + +[[applications.Gameserver]] +app_id = 4 +inner_ip = "127.0.0.1:22004" + +[region] +name = "dev_mualani" +dev_sdk_account = true + +[database] +connection_string = "postgres://postgres:@localhost:5432/hk4e" +redis_url = "redis://127.0.0.1/" diff --git a/gameserver/src/ability/ability_comp.rs b/gameserver/src/ability/ability_comp.rs new file mode 100644 index 0000000..ac68b92 --- /dev/null +++ b/gameserver/src/ability/ability_comp.rs @@ -0,0 +1,104 @@ +use std::{cell::RefCell, collections::BTreeMap, rc::Rc, sync::LazyLock}; + +use common::tools::string_utils::get_string_hash; +use proto::{AbilityControlBlock, AbilityEmbryo}; + +use crate::player::avatar::Avatar; + +// TODO: Real ability logic +#[derive(Default)] +pub struct AbilityComp { + pub creature: Option>>, + target_ability_id_map: BTreeMap, + last_ability_id: u32, +} + +const COMMON_AVATAR_ABILITIES: [&'static str; 9] = [ + "Avatar_DefaultAbility_VisionReplaceDieInvincible", + "Avatar_DefaultAbility_AvartarInShaderChange", + "Avatar_SprintBS_Invincible", + "Avatar_Freeze_Duration_Reducer", + "Avatar_Attack_ReviveEnergy", + "Avatar_Component_Initializer", + "Avatar_HDMesh_Controller", + "Avatar_Trampoline_Jump_Controller", + "Avatar_ArkheGrade_CD_Controller", +]; + +impl AbilityComp { + pub fn init(&mut self, creature: Rc>) { + self.creature = Some(creature); + self.init_target_ability(); + } + + pub fn init_target_ability(&mut self) { + let mut target_ability_vec = Vec::new(); + + for ability_name in &COMMON_AVATAR_ABILITIES { + target_ability_vec.push((get_string_hash(ability_name), 0)); + } + + self.get_all_static_config_abilities(&mut target_ability_vec); + + for (ability_name_hash, override_name_hash) in target_ability_vec { + self.add_target_ability(ability_name_hash, override_name_hash); + } + } + + fn add_target_ability(&mut self, ability_name_hash: u32, mut override_name_hash: u32) { + static DEFAULT_OVERRIDE_NAME_HASH: LazyLock = + LazyLock::new(|| get_string_hash("Default")); + + if override_name_hash == 0 { + override_name_hash = *DEFAULT_OVERRIDE_NAME_HASH; + } + + let ability_id = self.last_ability_id + 1; + self.last_ability_id += 1; + + self.target_ability_id_map + .insert(ability_id, (ability_name_hash, override_name_hash)); + } + + pub fn get_proto_ability_control_block( + &self, + proto_ability_control_block: &mut AbilityControlBlock, + ) { + for (id, (name_hash, override_name_hash)) in self.target_ability_id_map.iter() { + proto_ability_control_block + .ability_embryo_list + .push(AbilityEmbryo { + ability_id: *id, + ability_name_hash: *name_hash, + ability_override_name_hash: *override_name_hash, + }); + } + } + + fn get_all_static_config_abilities(&self, target_ability_vec: &mut Vec<(u32, u32)>) { + let avatar_id = self + .creature + .as_ref() + .unwrap() + .borrow() + .base_avatar() + .avatar_id; + + let avatar_data = data::iter_avatar_data() + .find(|a| a.id == avatar_id) + .unwrap(); + + let name = avatar_data.icon_name.replace("UI_AvatarIcon_", ""); // TODO: that's kind of hack + let Some(config) = data::get_config_avatar(&name) else { + tracing::error!("get_config_avatar failed, name:{name}"); + return; + }; + + for ability_entry in config.abilities.iter() { + target_ability_vec.push(( + get_string_hash(&ability_entry.ability_name), + get_string_hash(&ability_entry.ability_override), + )); + } + } +} diff --git a/gameserver/src/ability/mod.rs b/gameserver/src/ability/mod.rs new file mode 100644 index 0000000..2507b23 --- /dev/null +++ b/gameserver/src/ability/mod.rs @@ -0,0 +1,2 @@ +mod ability_comp; +pub use ability_comp::AbilityComp; diff --git a/gameserver/src/config.rs b/gameserver/src/config.rs new file mode 100644 index 0000000..95f518f --- /dev/null +++ b/gameserver/src/config.rs @@ -0,0 +1,28 @@ +use std::collections::BTreeMap; + +use common::{ + config::{AppConfig, DatabaseConfig, RegionConfig}, + net::ServiceType, +}; +use serde::Deserialize; + +const DEFAULT_TOML: &str = include_str!("../gameserver.toml"); + +#[derive(Deserialize, Clone)] +pub struct GameserverConfig { + pub app_id: u32, + pub applications: BTreeMap>, + pub database: DatabaseConfig, + #[allow(dead_code)] + pub region: RegionConfig, +} + +pub fn load() -> Option { + match common::config::load_or_create_config("gameserver.toml", DEFAULT_TOML) { + Ok(config) => Some(config), + Err(err) => { + tracing::error!("Failed to load config: {err}"); + None + } + } +} diff --git a/gameserver/src/creature/creature.rs b/gameserver/src/creature/creature.rs new file mode 100644 index 0000000..612e8c4 --- /dev/null +++ b/gameserver/src/creature/creature.rs @@ -0,0 +1,27 @@ +use crate::entity::Entity; +use num_enum::FromPrimitive; + +pub trait Creature: Entity { + fn set_level(&mut self, level: u32); + fn assign_prop(&mut self) { + // Dummy + } + fn set_cur_hp_full(&mut self); + fn get_life_state(&self) -> LifeState; + fn set_life_state(&mut self, state: LifeState); + + fn get_cur_hp(&self) -> f32 { + 0.0 + } + fn set_cur_hp(&mut self, _hp: f32) {} +} + +#[repr(u32)] +#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, FromPrimitive)] +pub enum LifeState { + LifeNone = 0, + #[default] + LifeAlive = 1, + LifeDead = 2, + LifeRevive = 3, +} diff --git a/gameserver/src/creature/fight_prop_comp.rs b/gameserver/src/creature/fight_prop_comp.rs new file mode 100644 index 0000000..3c6f485 --- /dev/null +++ b/gameserver/src/creature/fight_prop_comp.rs @@ -0,0 +1,83 @@ +use paste::paste; +use std::collections::{BTreeMap, HashMap}; + +use data::FightPropType; + +pub type FightPropValue = f32; + +#[derive(Default)] +pub struct FightPropComp { + pub fight_cur_prop_map: BTreeMap, + pub fight_cal_prop_map: BTreeMap, +} + +macro_rules! impl_get_cur { + ($($ty: ident;)*) => { + paste! { + $(pub fn [](&self) -> FightPropValue { + let percent = self.get_prop_value(FightPropType::[<$ty Percent>]) + 1.0; + let percent = FightPropValue::max(percent, 0.0); + + let base = percent * self.get_prop_value(FightPropType::[]); + base + self.get_prop_value(FightPropType::$ty) + })* + } + }; +} + +impl FightPropComp { + pub fn get_fight_prop_value_map(&self) -> HashMap { + let mut all_map: HashMap = self + .fight_cur_prop_map + .iter() + .map(|(t, v)| (*t as u32, *v)) + .collect(); + all_map.extend( + self.fight_cal_prop_map + .iter() + .map(|(t, v)| (*t as u32, *v)) + .collect::>(), + ); + all_map + } + + pub fn get_prop_value(&self, ty: FightPropType) -> FightPropValue { + match ty { + FightPropType::CurAttack => self.get_cur_attack(), + FightPropType::CurDefense => self.get_cur_defense(), + FightPropType::CurSpeed => self.get_cur_speed(), + ty if Self::is_cur_prop_type(ty) => self + .fight_cur_prop_map + .get(&ty) + .cloned() + .unwrap_or_default(), + ty => self.find_cal_prop_value(ty), + } + } + + impl_get_cur! { Attack; Defense; } + + pub fn get_cur_speed(&self) -> FightPropValue { + let percent = self.get_prop_value(FightPropType::SpeedPercent) + 1.0; + let percent = FightPropValue::max(percent, 0.0); + + percent * self.get_prop_value(FightPropType::BaseSpeed) + } + + pub fn set_cur_hp(&mut self, hp: FightPropValue) { + self.fight_cur_prop_map.insert(FightPropType::CurHp, hp); + } + + fn find_cal_prop_value(&self, ty: FightPropType) -> FightPropValue { + self.fight_cal_prop_map + .get(&ty) + .cloned() + .unwrap_or_default() + } + + fn is_cur_prop_type(ty: FightPropType) -> bool { + ty >= FightPropType::CurFireEnergy + && ty <= FightPropType::CurSpeed + && ty != FightPropType::MaxHp + } +} diff --git a/gameserver/src/creature/mod.rs b/gameserver/src/creature/mod.rs new file mode 100644 index 0000000..d40915f --- /dev/null +++ b/gameserver/src/creature/mod.rs @@ -0,0 +1,6 @@ +mod creature; +mod fight_prop_comp; +pub mod property; + +pub use creature::{Creature, LifeState}; +pub use fight_prop_comp::FightPropComp; diff --git a/gameserver/src/creature/property.rs b/gameserver/src/creature/property.rs new file mode 100644 index 0000000..d9030b8 --- /dev/null +++ b/gameserver/src/creature/property.rs @@ -0,0 +1,16 @@ +use std::collections::HashMap; + +use proto::{prop_value, PropValue}; + +pub type PropValueMap = HashMap; + +pub fn append_int_prop_value(map: &mut PropValueMap, ty: u32, ival: i64) { + map.insert( + ty, + PropValue { + r#type: ty, + val: ival, + value: Some(prop_value::Value::Ival(ival)), + }, + ); +} diff --git a/gameserver/src/entity/entity.rs b/gameserver/src/entity/entity.rs new file mode 100644 index 0000000..03c43e6 --- /dev/null +++ b/gameserver/src/entity/entity.rs @@ -0,0 +1,53 @@ +use std::{fmt::Display, rc::Rc}; + +use data::math_def::Vector3; +use proto::{ProtEntityType, SceneEntityInfo}; + +use crate::player::Player; + +pub trait Entity { + fn get_entity_type(&self) -> ProtEntityType; + fn get_group_id(&self) -> u32; + fn entity_id(&self) -> u32; + fn set_entity_id(&mut self, id: u32); + fn position(&self) -> &Vector3; + fn rotation(&self) -> &Vector3; + fn set_position(&mut self, pos: Vector3); + fn set_rotation(&mut self, rot: Vector3); + fn get_owner_player(&self) -> Option>; + + fn is_on_scene(&self) -> bool { + self.entity_id() != 0 + } + + fn can_enter_region(&self) -> bool { + false + } + + fn get_desc(&self) -> String { + let pos = self.position(); + format!( + "[entity_id:{},group_id:{},pos:{},{},{}]", + self.entity_id(), + self.get_group_id(), + pos.x, + pos.y, + pos.z + ) + } + + fn get_player_uid(&self) -> u32 { + match self.get_owner_player() { + Some(player) => player.uid, + None => 0, + } + } + + fn to_client(&self, _scene_entity_info: &mut SceneEntityInfo) {} +} + +impl Display for dyn Entity { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.get_desc()) + } +} diff --git a/gameserver/src/entity/entity_mgr.rs b/gameserver/src/entity/entity_mgr.rs new file mode 100644 index 0000000..344d59c --- /dev/null +++ b/gameserver/src/entity/entity_mgr.rs @@ -0,0 +1,12 @@ +use proto::ProtEntityType; + +use crate::{player::avatar::AvatarTeamEntity, scene::Scene}; + +use super::Entity; + +pub fn create_avatar_team_entity(scene: &mut Scene) -> AvatarTeamEntity { + let mut entity = AvatarTeamEntity::default(); + entity.set_entity_id(scene.gen_new_entity_id(ProtEntityType::ProtEntityTeam)); + + entity +} diff --git a/gameserver/src/entity/entity_utils.rs b/gameserver/src/entity/entity_utils.rs new file mode 100644 index 0000000..93ba92e --- /dev/null +++ b/gameserver/src/entity/entity_utils.rs @@ -0,0 +1,5 @@ +use proto::ProtEntityType; + +pub fn get_entity_id(ty: ProtEntityType, index: u32) -> u32 { + index | ((ty as u32) << 24) +} diff --git a/gameserver/src/entity/mod.rs b/gameserver/src/entity/mod.rs new file mode 100644 index 0000000..a1952fe --- /dev/null +++ b/gameserver/src/entity/mod.rs @@ -0,0 +1,8 @@ +mod entity; + +pub use entity::Entity; +pub mod entity_mgr; +pub mod entity_utils; +mod vision_context; + +pub use vision_context::VisionContext; diff --git a/gameserver/src/entity/vision_context.rs b/gameserver/src/entity/vision_context.rs new file mode 100644 index 0000000..aa0f16f --- /dev/null +++ b/gameserver/src/entity/vision_context.rs @@ -0,0 +1,17 @@ +use proto::VisionType; + +pub struct VisionContext { + pub vision_type: VisionType, + pub param: u32, + pub exclude_uid: u32, +} + +impl VisionContext { + pub fn new(vision_type: VisionType) -> Self { + Self { + vision_type, + param: 0, + exclude_uid: 0, + } + } +} diff --git a/gameserver/src/gadget/mod.rs b/gameserver/src/gadget/mod.rs new file mode 100644 index 0000000..d02d66e --- /dev/null +++ b/gameserver/src/gadget/mod.rs @@ -0,0 +1,3 @@ +mod weapon_gadget; + +pub use weapon_gadget::WeaponGadget; diff --git a/gameserver/src/gadget/weapon_gadget.rs b/gameserver/src/gadget/weapon_gadget.rs new file mode 100644 index 0000000..6daf5b6 --- /dev/null +++ b/gameserver/src/gadget/weapon_gadget.rs @@ -0,0 +1,122 @@ +use data::math_def::Vector3; +use proto::{AbilitySyncStateInfo, Retcode, SceneWeaponInfo}; + +use crate::{creature::Creature, entity::Entity}; + +pub struct WeaponGadgetBase { + pub item_id: u32, + pub gadget_id: u32, + level: u32, + entity_id: u32, + pos: Vector3, + rot: Vector3, +} + +pub struct AvatarWeaponGadget { + pub base: WeaponGadgetBase, + pub weapon_guid: u64, +} + +pub enum WeaponGadget { + Avatar(AvatarWeaponGadget), +} + +impl WeaponGadget { + pub fn new_avatar(item_id: u32, guid: u64) -> Self { + Self::Avatar(AvatarWeaponGadget { + base: WeaponGadgetBase { + item_id, + gadget_id: 50000000 + item_id, // TODO! + entity_id: 0, + level: 1, + pos: Vector3::default(), + rot: Vector3::default(), + }, + weapon_guid: guid, + }) + } + + pub fn base(&self) -> &WeaponGadgetBase { + match self { + Self::Avatar(gadget) => &gadget.base, + } + } + + pub fn base_mut(&mut self) -> &mut WeaponGadgetBase { + match self { + Self::Avatar(gadget) => &mut gadget.base, + } + } + + pub fn init_ability(&mut self) -> Result<(), Retcode> { + // TODO: self.base_mut().ability_comp ... + + Ok(()) + } + + pub fn to_client(&self) -> SceneWeaponInfo { + SceneWeaponInfo { + ability_info: Some(AbilitySyncStateInfo::default()), + level: self.base().level, + item_id: self.base().item_id, + gadget_id: self.base().gadget_id, + entity_id: self.entity_id(), + guid: match self { + Self::Avatar(gadget) => gadget.weapon_guid, + }, + ..Default::default() + } + } +} + +impl Creature for WeaponGadget { + fn set_level(&mut self, level: u32) { + self.base_mut().level = level; + } + + fn set_cur_hp_full(&mut self) {} + + fn get_life_state(&self) -> crate::creature::LifeState { + crate::creature::LifeState::LifeNone + } + + fn set_life_state(&mut self, _state: crate::creature::LifeState) {} +} + +impl Entity for WeaponGadget { + fn get_entity_type(&self) -> proto::ProtEntityType { + proto::ProtEntityType::ProtEntityWeapon + } + + fn get_group_id(&self) -> u32 { + 0 + } + + fn entity_id(&self) -> u32 { + self.base().entity_id + } + + fn set_entity_id(&mut self, id: u32) { + self.base_mut().entity_id = id; + } + + fn position(&self) -> &Vector3 { + &self.base().pos + } + + fn rotation(&self) -> &Vector3 { + &self.base().rot + } + + fn get_owner_player(&self) -> Option> { + None + } + + fn set_position(&mut self, pos: data::math_def::Vector3) { + self.base_mut().pos = pos; + } + + fn set_rotation(&mut self, rot: data::math_def::Vector3) { + self.base_mut().rot = rot; + } +} diff --git a/gameserver/src/gameserver_service.rs b/gameserver/src/gameserver_service.rs new file mode 100644 index 0000000..0590ed7 --- /dev/null +++ b/gameserver/src/gameserver_service.rs @@ -0,0 +1,71 @@ +use std::{error::Error, sync::Arc}; + +use common::{db::RedisMgr, net::tools::Packet, ServiceBox}; +use dashmap::DashMap; +use proto::PlayerLoginReq; + +use crate::{ + config::GameserverConfig, + network::{NetworkMgr, PlayerSessionProxy}, + player::PlayerMgr, +}; + +pub struct GameserverService { + pub config: GameserverConfig, + pub network_mgr: NetworkMgr, + pub service_box: ServiceBox, + pub redis_mgr: RedisMgr, + pub player_sessions: DashMap>, + pub player_mgr: PlayerMgr, +} + +impl GameserverService { + pub async fn new(config: GameserverConfig) -> Result> { + let network_mgr = NetworkMgr::new(&config).await?; + let service_box = ServiceBox::new(config.app_id, &config.applications); + let redis_mgr = RedisMgr::new(&config.database.redis_url).await?; + + Ok(Self { + config, + network_mgr, + service_box, + redis_mgr, + player_sessions: DashMap::new(), + player_mgr: PlayerMgr::new(), + }) + } + + pub async fn run(&self) { + self.network_mgr.run().await + } + + pub fn find_player_session(&self, uid: u32) -> Option> { + self.player_sessions.get(&uid).map(|a| a.clone()) + } + + pub fn remove_player_session(&self, uid: u32) { + self.player_sessions.remove(&uid); + } + + pub fn create_player_session( + &self, + packet: &Packet, + login_req: PlayerLoginReq, + ) -> Option> { + let uid = packet.head.user_id; + let mut session = PlayerSessionProxy::new(uid); + session.set_login_packet_head(packet); + session.set_login_req(login_req.clone()); + + if self.player_sessions.contains_key(&uid) { + tracing::warn!("duplicated session: {uid}"); + None + } else { + let session = Arc::new(session); + self.player_sessions.insert(uid, session.clone()); + + session.on_connect(); + Some(session) + } + } +} diff --git a/gameserver/src/handler/avatar_handler.rs b/gameserver/src/handler/avatar_handler.rs new file mode 100644 index 0000000..4be384a --- /dev/null +++ b/gameserver/src/handler/avatar_handler.rs @@ -0,0 +1,117 @@ +use common::net::tools::Packet; +use proto::{ChangeAvatarRsp, Retcode, SetUpAvatarTeamRsp}; + +use crate::player::Player; + +use super::get_proto; +use std::{error::Error, rc::Rc}; + +pub fn on_set_up_avatar_team_req( + player: &Rc, + packet: Packet, +) -> Result<(), Box> { + let req = get_proto!(packet, SetUpAvatarTeamReq); + let mut rsp = SetUpAvatarTeamRsp { + avatar_team_guid_list: req.avatar_team_guid_list.clone(), + team_id: req.team_id, + cur_avatar_guid: req.cur_avatar_guid, + retcode: Retcode::RetSucc.into(), + }; + + if req.avatar_team_guid_list.len() <= 4 { + if let Err(ret) = player.check_is_in_safe_state_for_change_team() { + rsp.retcode = ret.into(); + tracing::info!( + "SetUpAvatarTeam fails, not in safe state, uid:{}, ret:{ret:?}", + player.uid + ); + } else { + if player + .player_avatar_comp + .borrow() + .check_avatar_guid_vec_all_formal(&req.avatar_team_guid_list) + .is_ok() + { + let avatar_comp = player.player_avatar_comp.borrow(); + if let Err(ret) = avatar_comp.set_up_avatar_team( + req.team_id, + &req.avatar_team_guid_list, + req.cur_avatar_guid, + ) { + tracing::info!("set_up_avatar_team fails, uid:{}", player.uid); + rsp.retcode = ret.into(); + } + } else { + rsp.retcode = Retcode::RetFail.into(); + tracing::info!("checkAvatarTeamAllFormal failed"); + } + } + } else { + tracing::warn!( + "avatar_guid_list_size too large:{}", + req.avatar_team_guid_list.len() + ); + rsp.retcode = Retcode::RetFail.into(); + } + + player.send_proto(rsp); + Ok(()) +} + +pub fn on_change_avatar_req(player: &Rc, packet: Packet) -> Result<(), Box> { + let req = get_proto!(packet, ChangeAvatarReq); + let mut rsp = ChangeAvatarRsp::default(); + + if player.player_scene_comp.borrow().get_dest_scene().is_some() { + tracing::info!("intransfer cannot choose cur avatar team."); + rsp.retcode = Retcode::RetAvatarNotOnScene.into(); + player.send_proto(rsp); + return Ok(()); + } + + rsp.cur_guid = req.guid; + rsp.skill_id = req.skill_id; + + if req.guid != 0 { + if player + .player_avatar_comp + .borrow() + .is_my_avatar_in_scene_team(req.guid) + { + let cur_guid = { + let cur_avatar_ptr = player.player_avatar_comp.borrow().get_cur_avatar().unwrap(); + let cur_avatar = cur_avatar_ptr.borrow(); + cur_avatar.base_avatar().guid + }; + + if req.guid == cur_guid { + rsp.retcode = Retcode::RetSucc.into(); + } else { + let avatar_comp = player.player_avatar_comp.borrow(); + if let Err(ret) = avatar_comp.check_change_cur_avatar(req.guid) { + tracing::info!("check_change_cur_avatar ret:{ret:?}, guid:{}", req.guid); + rsp.retcode = ret.into(); + } else { + if req.is_move { + // TODO! + } + + let _ = avatar_comp.change_cur_avatar(req.guid, true); + rsp.retcode = Retcode::RetSucc.into(); + } + } + } else { + tracing::info!( + "avatar not in cur team, player:{} guid:{}", + player.uid, + req.guid + ); + rsp.retcode = Retcode::RetAvatarNotExistInTeam.into(); + } + } else { + tracing::warn!("guid != 0 !!! player:{}", player.uid); + rsp.retcode = Retcode::RetFail.into(); + } + + Ok(()) +} diff --git a/gameserver/src/handler/login_handler.rs b/gameserver/src/handler/login_handler.rs new file mode 100644 index 0000000..c8b8519 --- /dev/null +++ b/gameserver/src/handler/login_handler.rs @@ -0,0 +1,225 @@ +use std::{error::Error, net::Ipv4Addr, sync::Arc}; + +use common::{ + base::NetService, + net::{tools::Packet, ServiceType}, + tools::time_utils, + ServiceQualifier, +}; +use proto::{ + PacketHead, PlayerLoginReq, PlayerLoginRsp, PlayerLogoutReason, PlayerLogoutReq, + PlayerStatusType, Retcode, +}; + +use crate::{gameserver_service, network::PlayerSessionProxy, player::Player}; + +pub async fn on_player_login_req(packet: Packet) -> Result<(), Box> { + let Ok(req) = packet.get_proto::() else { + tracing::error!( + "get_proto PlayerLoginReq failed, uid: {}", + packet.head.user_id + ); + return Ok(()); + }; + + if let Err(ret) = player_login(packet, req).await { + tracing::error!("LoginHandler::player_login failed, retcode: {ret:?}",); + } + + Ok(()) +} + +async fn player_login(packet: Packet, req: PlayerLoginReq) -> Result<(), Retcode> { + let client_ip = Ipv4Addr::from(packet.head.user_ip).to_string(); + tracing::info!("[TEST_IP] playerLogin, ip:{client_ip}"); + + let uid = packet.head.user_id; + + let session = if let Some(session) = gameserver_service().find_player_session(uid) { + if is_from_same_client_session(&session, &packet) { + tracing::warn!("RET_REPEAT_LOGIN uid: {uid}"); + return Err(Retcode::RetRepeatLogin); + } + + // tracing::error!("GameserverService::bind_player_session: not implemented."); + // stop previous session + + gameserver_service().remove_player_session(uid); + gameserver_service().player_mgr.remove_from_online_map(uid); + + if let Some(coro) = session.exec_coroutine.read().as_ref() { + coro.push_packet(Packet::new( + PlayerLogoutReq { + reason: PlayerLogoutReason::ClientReq.into(), + }, + PacketHead { + user_id: session.uid, + user_session_id: session.get_gateserver_session_id(), + ..Default::default() + }, + )); + } + + let Some(session) = gameserver_service().create_player_session(&packet, req.clone()) else { + tracing::error!("create_player_session failed"); + return Err(Retcode::RetFail); + }; + + session + } else { + let Some(session) = gameserver_service().create_player_session(&packet, req.clone()) else { + tracing::error!("create_player_session failed"); + return Err(Retcode::RetFail); + }; + + session + }; + + session.gen_new_login_rand(); + async_modify_player_status( + &packet, + PlayerStatusType::PlayerStatusOnline, + ModifyPlayerStatusContext { + last_login_rand: req.login_rand, + cur_login_rand: session.get_cur_login_rand(), + }, + ) + .await; + + let service = gameserver_service(); + let _ = service + .service_box + .push_packet_to_service( + ServiceQualifier::Type(ServiceType::Dbgate), + Packet::new( + PlayerLoginReq { + login_rand: session.get_cur_login_rand(), + ..req + }, + PacketHead { + sender_app_id: service.network_mgr.app_id(), + ..packet.head + }, + ), + ) + .await; + + Ok(()) +} + +async fn async_modify_player_status( + packet: &Packet, + status: PlayerStatusType, + context: ModifyPlayerStatusContext, +) { + let app_id = gameserver_service().network_mgr.app_id(); + gameserver_service() + .redis_mgr + .compare_and_modify_player_status( + packet.head.user_id, + context.last_login_rand, + proto::PlayerStatusRedisData { + status: status.into(), + gameserver_id: app_id, + login_rand: context.cur_login_rand, + login_time: time_utils::get_now() as u32, + }, + ) + .await; +} + +pub async fn on_player_login_rsp(packet: Packet) { + let Some(session) = gameserver_service().find_player_session(packet.head.user_id) else { + tracing::warn!( + "find_player_session uid: {} failed,or session is not connected", + packet.head.user_id + ); + return; + }; + + player_login_result(session, packet); +} + +fn player_login_result(session: Arc, packet: Packet) { + let service = gameserver_service(); + + let Ok(rsp) = packet.get_proto::() else { + tracing::error!("get_proto failed"); + return; + }; + + if service.player_mgr.find_online_player(session.uid).is_some() { + tracing::error!("uid: {} player is still exist", session.uid); + return; + } + + let cur_login_rand = session.get_cur_login_rand(); + if cur_login_rand == rsp.login_rand { + // asyncPlayerLoginInitCallback + add_player_to_online_map(session.clone(), rsp); + } +} + +fn add_player_to_online_map(session: Arc, rsp: PlayerLoginRsp) { + *session.exec_coroutine.write() = Some(Player::start(session.clone(), session.uid)); + + gameserver_service() + .player_mgr + .add_to_online_map(session.uid, session.get_gateserver_session_id()); + + session + .exec_coroutine + .read() + .as_ref() + .unwrap() + .push_packet(Packet::new(rsp, PacketHead::default())); +} + +fn is_from_same_client_session(session: &PlayerSessionProxy, packet: &Packet) -> bool { + packet.head.sender_app_id == session.get_gateserver_id() + && packet.head.user_session_id == session.get_gateserver_session_id() +} + +struct ModifyPlayerStatusContext { + pub last_login_rand: u64, + pub cur_login_rand: u64, +} + +pub async fn on_player_force_exit_req(packet: Packet) -> Result<(), Box> { + let Some(session) = gameserver_service().find_player_session(packet.head.user_id) else { + tracing::warn!( + "on_player_force_exit: player session not found, session id: {}, uid: {}", + packet.head.user_session_id, + packet.head.user_id + ); + return Ok(()); + }; + + let uid = packet.head.user_id; + + if let Some(coroutine) = session.exec_coroutine.read().as_ref() { + coroutine.push_packet(Packet::new( + PlayerLogoutReq { + reason: PlayerLogoutReason::ClientReq.into(), + }, + packet.head.clone(), + )); + } else { + tracing::warn!("on_player_force_exit: coroutine not running, uid: {uid}"); + } + + gameserver_service().player_mgr.remove_from_online_map(uid); + async_modify_player_status( + &packet, + PlayerStatusType::PlayerStatusOffline, + ModifyPlayerStatusContext { + cur_login_rand: 0, + last_login_rand: session.get_cur_login_rand(), + }, + ) + .await; + + gameserver_service().remove_player_session(uid); + + Ok(()) +} diff --git a/gameserver/src/handler/mod.rs b/gameserver/src/handler/mod.rs new file mode 100644 index 0000000..68d4fa8 --- /dev/null +++ b/gameserver/src/handler/mod.rs @@ -0,0 +1,53 @@ +pub mod avatar_handler; +pub mod login_handler; +pub mod player_handler; +pub mod player_misc_handler; +pub mod scene_handler; + +macro_rules! get_proto { + ($packet: expr, $proto: ident) => { + match $packet.get_proto::<::proto::$proto>() { + Ok(proto) => proto, + Err(_) => { + ::tracing::error!( + concat!("get_proto ", stringify!($proto), " failed, uid: {}"), + $packet.head.user_id + ); + return Ok(()); + } + } + }; +} + +macro_rules! game_packet_handlers { + ($($category: ident::$name: ident;)*) => { + pub fn process_packet(player: &::std::rc::Rc, packet: ::common::net::tools::Packet) -> Result<(), Box> { + use ::proto::CmdID; + ::paste::paste! { + match packet.cmd_id { + $( + ::proto::$name::CMD_ID => crate::handler::[<$category:snake>]::[](player, packet), + )* + _ => { + tracing::warn!("can not find func for cmd_id={}", packet.cmd_id); + Ok(()) + } + } + } + } + }; +} + +pub(crate) use get_proto; + +game_packet_handlers! { + PlayerMiscHandler::PingReq; + PlayerHandler::SetPlayerBornDataReq; + PlayerHandler::PlayerLogoutReq; + SceneHandler::EnterSceneReadyReq; + SceneHandler::SceneInitFinishReq; + SceneHandler::EnterSceneDoneReq; + SceneHandler::PostEnterSceneReq; + AvatarHandler::SetUpAvatarTeamReq; + AvatarHandler::ChangeAvatarReq; +} diff --git a/gameserver/src/handler/player_handler.rs b/gameserver/src/handler/player_handler.rs new file mode 100644 index 0000000..a52ecc8 --- /dev/null +++ b/gameserver/src/handler/player_handler.rs @@ -0,0 +1,40 @@ +use std::{error::Error, rc::Rc}; + +use common::net::tools::Packet; +use proto::{PlayerLogoutReason, ServerDisconnectClientNotify, SetPlayerBornDataRsp}; + +use crate::player::Player; + +use super::get_proto; + +pub fn on_set_player_born_data_req( + player: &Rc, + packet: Packet, +) -> Result<(), Box> { + let req = get_proto!(packet, SetPlayerBornDataReq); + + let retcode = player.set_player_born_data(req).err().unwrap_or_default(); + + player.send_proto(SetPlayerBornDataRsp { + retcode: retcode.into(), + }); + + Ok(()) +} + +pub fn on_player_logout_req(player: &Rc, packet: Packet) -> Result<(), Box> { + let req = get_proto!(packet, PlayerLogoutReq); + + tracing::info!("on_player_logout, uid: {}", player.uid); + + if player.block_stop_coroutine().is_err() { + return Ok(()); + } + + player.save_to_db(); + if req.reason == PlayerLogoutReason::ClientReq as i32 { + player.send_proto(ServerDisconnectClientNotify { data: 1 }); + } + + Ok(()) +} diff --git a/gameserver/src/handler/player_misc_handler.rs b/gameserver/src/handler/player_misc_handler.rs new file mode 100644 index 0000000..47bb02a --- /dev/null +++ b/gameserver/src/handler/player_misc_handler.rs @@ -0,0 +1,22 @@ +use std::{error::Error, rc::Rc}; + +use common::net::tools::Packet; +use proto::PingRsp; + +use crate::player::Player; + +use super::get_proto; + +pub fn on_ping_req(player: &Rc, packet: Packet) -> Result<(), Box> { + let req = get_proto!(packet, PingReq); + + let mut rsp = PingRsp { + retcode: -1, + ..Default::default() + }; + + player.on_ping_req(req, &mut rsp); + player.send_proto(rsp); + + Ok(()) +} diff --git a/gameserver/src/handler/scene_handler.rs b/gameserver/src/handler/scene_handler.rs new file mode 100644 index 0000000..0b27d7e --- /dev/null +++ b/gameserver/src/handler/scene_handler.rs @@ -0,0 +1,70 @@ +use std::{error::Error, rc::Rc}; + +use common::net::tools::Packet; +use proto::{ + EnterSceneDoneRsp, EnterSceneReadyRsp, PostEnterSceneRsp, Retcode, SceneInitFinishRsp, +}; + +use crate::player::Player; + +use super::get_proto; + +pub fn on_enter_scene_ready_req(player: &Rc, packet: Packet) -> Result<(), Box> { + let req = get_proto!(packet, EnterSceneReadyReq); + + let result = player.enter_scene_ready(&req); + + player.send_proto(EnterSceneReadyRsp { + enter_scene_token: req.enter_scene_token, + retcode: result.err().unwrap_or_default().into(), + }); + + Ok(()) +} + +pub fn on_scene_init_finish_req(player: &Rc, packet: Packet) -> Result<(), Box> { + let req = get_proto!(packet, SceneInitFinishReq); + + let mut rsp = SceneInitFinishRsp { + retcode: Retcode::RetFail.into(), + enter_scene_token: req.enter_scene_token, + }; + + player.player_basic_comp.borrow().notify_server_time(); + let ret = player + .scene_init_finish(&req) + .err() + .unwrap_or(Retcode::RetSucc); + + rsp.retcode = ret.into(); + player.send_proto(rsp); + Ok(()) +} + +pub fn on_enter_scene_done_req(player: &Rc, packet: Packet) -> Result<(), Box> { + let req = get_proto!(packet, EnterSceneDoneReq); + + if let Err(ret) = player.enter_scene_done(&req) { + tracing::info!("end_enter_scene failed, uid:{}", player.uid); + player.send_proto(EnterSceneDoneRsp { + retcode: ret.into(), + enter_scene_token: req.enter_scene_token, + }); + } + + Ok(()) +} + +pub fn on_post_enter_scene_req(player: &Rc, packet: Packet) -> Result<(), Box> { + let req = get_proto!(packet, PostEnterSceneReq); + + if let Err(ret) = player.post_enter_scene(&req) { + tracing::info!("post_enter_scene failed, uid:{}", player.uid); + player.send_proto(PostEnterSceneRsp { + retcode: ret.into(), + enter_scene_token: req.enter_scene_token, + }); + } + + Ok(()) +} diff --git a/gameserver/src/item/equip_comp.rs b/gameserver/src/item/equip_comp.rs new file mode 100644 index 0000000..a85d8c1 --- /dev/null +++ b/gameserver/src/item/equip_comp.rs @@ -0,0 +1,57 @@ +use std::{cell::RefCell, rc::Rc}; + +use proto::{avatar_bin, AvatarBin}; + +use crate::{gadget::WeaponGadget, player::item::Weapon}; + +#[derive(Default)] +pub struct EquipComp { + pub equip_guid_vec: Vec, + pub weapon_gadget: Option>>, +} + +impl EquipComp { + pub fn set_init_weapon(&mut self, weapon_guid: u64) { + if self.equip_guid_vec.len() != 0 { + tracing::warn!("weapon has been initialized"); + } else { + self.equip_guid_vec.push(weapon_guid); + } + } + + pub fn init(&mut self, equip_vec: Vec<&Weapon>) { + let weapon = equip_vec.first().unwrap(); + + // TODO: this is old cringe item system, refactor it! (should be: Item->Equip->(Relic, Weapon)) + self.create_and_set_weapon_gadget(weapon.base.base.guid, weapon.base.base.item_id); + } + + pub fn create_and_set_weapon_gadget(&mut self, weapon_guid: u64, item_id: u32) { + self.weapon_gadget = Some(Rc::new(RefCell::new(WeaponGadget::new_avatar( + item_id, + weapon_guid, + )))); + } + + pub fn to_client(&self, info: &mut proto::AvatarInfo) { + info.equip_guid_list = self.equip_guid_vec.clone(); + } + + pub fn from_bin(bin: &AvatarBin) -> Self { + if let Some(avatar_bin::Detail::FormalAvatar(avatar)) = bin.detail.as_ref() { + Self { + equip_guid_vec: avatar.equip_guid_list.clone(), + weapon_gadget: None, + } + } else { + Self::default() + } + } + + pub fn to_bin(&self, bin: &mut AvatarBin) { + // Non-formal avatar is not allowed to have persistent equip. + if let Some(avatar_bin::Detail::FormalAvatar(avatar)) = bin.detail.as_mut() { + avatar.equip_guid_list = self.equip_guid_vec.clone() + } + } +} diff --git a/gameserver/src/item/mod.rs b/gameserver/src/item/mod.rs new file mode 100644 index 0000000..67917b4 --- /dev/null +++ b/gameserver/src/item/mod.rs @@ -0,0 +1,3 @@ +mod equip_comp; + +pub use equip_comp::EquipComp; diff --git a/gameserver/src/main.rs b/gameserver/src/main.rs new file mode 100644 index 0000000..456c9aa --- /dev/null +++ b/gameserver/src/main.rs @@ -0,0 +1,35 @@ +use std::{error::Error, sync::OnceLock}; + +use common::log; +use gameserver_service::GameserverService; + +mod ability; +mod config; +mod creature; +mod entity; +mod gadget; +mod gameserver_service; +mod handler; +mod item; +mod network; +mod player; +mod scene; + +static SERVICE: OnceLock = OnceLock::new(); + +#[tokio::main] +async fn main() -> Result<(), Box> { + log::init_tracing(); + data::load_txt_data()?; + data::load_all_config_avatar()?; + let config = config::load().unwrap(); + let service = GameserverService::new(config).await?; + let service = SERVICE.get_or_init(|| service); + service.run().await; + + Ok(()) +} + +fn gameserver_service() -> &'static GameserverService { + SERVICE.get().unwrap() +} diff --git a/gameserver/src/network/gateserver_session.rs b/gameserver/src/network/gateserver_session.rs new file mode 100644 index 0000000..cde3d33 --- /dev/null +++ b/gameserver/src/network/gateserver_session.rs @@ -0,0 +1,45 @@ +use std::error::Error; + +use common::{ + config::IpString, + net::{tools::Packet, AServerSession, NetError}, +}; +use proto::CmdID; + +use crate::{gameserver_service, handler::login_handler}; + +pub struct GateserverSession { + _server_session: AServerSession, +} + +impl GateserverSession { + pub async fn new(app_id: u32, service_ip: IpString, cur_app_id: u32) -> Result { + Ok(Self { + _server_session: AServerSession::new(app_id, service_ip, cur_app_id), + }) + } + + pub async fn on_recv(&self, packet: Packet) -> Result<(), Box> { + match packet.cmd_id { + proto::PlayerLoginReq::CMD_ID => login_handler::on_player_login_req(packet).await, + proto::PlayerForceExitReq::CMD_ID => { + login_handler::on_player_force_exit_req(packet).await + } + _ => { + let Some(session) = gameserver_service() + .player_sessions + .get(&packet.head.user_id) + else { + tracing::warn!("user_session_id: {} not found", packet.head.user_session_id); + return Ok(()); + }; + + if let Some(player_coroutine) = session.exec_coroutine.read().as_ref() { + player_coroutine.push_packet(packet); + } + + Ok(()) + } + } + } +} diff --git a/gameserver/src/network/mod.rs b/gameserver/src/network/mod.rs new file mode 100644 index 0000000..b16a9cc --- /dev/null +++ b/gameserver/src/network/mod.rs @@ -0,0 +1,8 @@ +mod network_mgr; +pub use network_mgr::NetworkMgr; + +mod gateserver_session; +pub use gateserver_session::GateserverSession; + +mod player_session_proxy; +pub use player_session_proxy::PlayerSessionProxy; diff --git a/gameserver/src/network/network_mgr.rs b/gameserver/src/network/network_mgr.rs new file mode 100644 index 0000000..53d32df --- /dev/null +++ b/gameserver/src/network/network_mgr.rs @@ -0,0 +1,73 @@ +use std::error::Error; + +use dashmap::DashMap; +use paste::paste; + +use common::{ + base::NetService, + impl_net_service, + net::{tools::Packet, AServer, NetError, ServiceType}, + rpc_handlers, services, +}; + +use crate::{config::GameserverConfig, gameserver_service, handler::login_handler}; + +use super::GateserverSession; + +pub struct NetworkMgr { + server: AServer, + gateserver_sessions: DashMap, +} + +impl NetworkMgr { + pub async fn new(config: &GameserverConfig) -> Result { + let inner_ip = config + .applications + .get(&ServiceType::Gameserver) + .unwrap() + .iter() + .find(|a| a.app_id == config.app_id) + .unwrap() + .inner_ip + .clone(); + + Ok(Self { + server: AServer::bind(inner_ip).await?, + gateserver_sessions: DashMap::new(), + }) + } + + pub async fn run(&self) { + loop { + let Ok(mut packets) = self.server.recv().await else { + continue; + }; + + while let Some(packet) = packets.pop_front() { + if let Err(err) = self.on_recv_to_svc(packet).await { + tracing::warn!("on_recv fail: {err}"); + } + } + } + } + + rpc_handlers! { + PlayerLoginRsp; + } + + services! { + Gateserver; + } + + pub async fn on_player_login_rsp(&self, packet: Packet) -> Result<(), Box> { + login_handler::on_player_login_rsp(packet).await; + + Ok(()) + } + + pub async fn default_packet_process_func(&self, _: Packet) -> Result<(), Box> { + Ok(()) + } +} + +impl_net_service!(Gameserver); diff --git a/gameserver/src/network/player_session_proxy.rs b/gameserver/src/network/player_session_proxy.rs new file mode 100644 index 0000000..acef754 --- /dev/null +++ b/gameserver/src/network/player_session_proxy.rs @@ -0,0 +1,115 @@ +use std::{ + net::Ipv4Addr, + sync::atomic::{AtomicU32, AtomicU64, Ordering}, +}; + +use common::{ + base::NetService, + net::{tools::Packet, ServiceType}, + tools::time_utils, + ServiceQualifier, +}; +use parking_lot::RwLock; +use proto::{PacketHead, PlayerLoginReq}; + +use crate::{gameserver_service, player::PlayerCoroExec}; + +pub struct PlayerSessionProxy { + pub uid: u32, + pub client_ip: String, + pub flag: String, + login_packet_head: PacketHead, + pub login_req: PlayerLoginReq, + cur_login_rand: AtomicU64, + pub exec_coroutine: RwLock>, +} + +impl PlayerSessionProxy { + pub fn new(uid: u32) -> Self { + Self { + uid, + client_ip: String::new(), + flag: String::new(), + login_packet_head: PacketHead::default(), + login_req: PlayerLoginReq::default(), + cur_login_rand: AtomicU64::new(0), + exec_coroutine: RwLock::new(None), + } + } + + pub fn set_login_packet_head(&mut self, packet: &Packet) { + self.login_packet_head = packet.head.clone(); + self.client_ip = Ipv4Addr::from(packet.head.user_ip).to_string(); + self.flag = Self::create_flag_str(self.get_gateserver_id(), packet.head.user_session_id); + } + + pub fn set_login_req(&mut self, login_req: PlayerLoginReq) { + self.login_req = login_req; + } + + pub fn get_gateserver_id(&self) -> u32 { + self.login_packet_head.sender_app_id + } + + pub fn get_gateserver_session_id(&self) -> u32 { + self.login_packet_head.user_session_id + } + + pub fn get_cur_login_rand(&self) -> u64 { + self.cur_login_rand.load(Ordering::SeqCst) + } + + pub fn gen_new_login_rand(&self) { + let login_rand = do_gen_login_rand(); + self.cur_login_rand.store(login_rand, Ordering::SeqCst); + + if login_rand != 0 { + tracing::info!( + "[LOGIN] uid: {} gate login_rand: {} cur_login_rand: {} gatesession: {}", + self.uid, + self.login_req.login_rand, + login_rand, + &self.flag + ); + } else { + tracing::warn!("do_gen_login_rand return 0"); + } + } + + pub fn send_packet(&self, mut packet: Packet) { + packet.head = PacketHead { + user_id: self.uid, + user_ip: self.login_packet_head.user_ip, + user_session_id: self.login_packet_head.user_session_id, + rpc_id: ServiceType::Gateserver as u32, + ..Default::default() + }; + + let dst_app_id = self.login_packet_head.sender_app_id; + let _ = gameserver_service() + .service_box + .push_packet_to_service_blocking(ServiceQualifier::AppId(dst_app_id), packet); + } + + pub fn on_connect(&self) { + tracing::info!( + "[LOGIN][SESSION] on_connect uid: {} gatesession: {}", + self.uid, + &self.flag + ); + } + + fn create_flag_str(gate_id: u32, gate_session: u32) -> String { + format!("{gate_id}:{gate_session}") + } +} + +fn do_gen_login_rand() -> u64 { + static SEQ: AtomicU32 = AtomicU32::new(0); + + let v4 = ((gameserver_service().network_mgr.app_id() >> 16) & 0xFFFF) as u64; + let v5 = ((SEQ.fetch_add(1, Ordering::SeqCst) + 1) & 0xFFFF) as u64; + let now = (time_utils::get_now() & 0xFFFFFFFF) as u64; + + v4 << 48 | v5 << 32 | now +} diff --git a/gameserver/src/player/avatar/avatar.rs b/gameserver/src/player/avatar/avatar.rs new file mode 100644 index 0000000..7090c93 --- /dev/null +++ b/gameserver/src/player/avatar/avatar.rs @@ -0,0 +1,439 @@ +use std::{ + cell::RefCell, + rc::{Rc, Weak}, +}; + +use data::{math_def::Vector3, prop_type::PROP_LEVEL, FightPropType}; +use proto::{ + avatar_bin::{self, Detail}, + AbilitySyncStateInfo, AnimatorParameterValueInfoPair, AvatarBin, AvatarExcelInfo, + EntityAuthorityInfo, EntityClientData, FightPropPair, Iolgpkjjcfi, Lcjbmelilap, MotionInfo, + PropPair, PropValue, ProtEntityType, SceneAvatarInfo, SceneEntityInfo, +}; + +use crate::{ + ability::AbilityComp, + creature::{property::PropValueMap, Creature, FightPropComp, LifeState}, + entity::Entity, + item::EquipComp, + player::{item::Item, Player}, +}; + +use super::{FormalAvatar, MirrorAvatar, TrialAvatar}; + +pub enum Avatar { + Formal(FormalAvatar), + Trial(TrialAvatar), + Mirror(MirrorAvatar), +} + +impl Avatar { + pub fn base_avatar(&self) -> &BaseAvatar { + match self { + Self::Formal(a) => &a.base, + Self::Trial(a) => &a.base, + Self::Mirror(a) => &a.base, + } + } + + pub fn base_avatar_mut(&mut self) -> &mut BaseAvatar { + match self { + Self::Formal(a) => &mut a.base, + Self::Trial(a) => &mut a.base, + Self::Mirror(a) => &mut a.base, + } + } + + pub fn on_add_to_scene_team(&mut self) { + self.base_avatar_mut().on_add_to_scene_team(); + } + + pub fn on_remove_from_scene_team(&mut self) { + self.base_avatar_mut().on_remove_from_scene_team(); + } + + pub fn init(&mut self) { + let base = self.base_avatar_mut(); + base.skill_depot_id = data::iter_avatar_data() + .find(|a| a.id == base.avatar_id) + .unwrap() + .skill_depot_id; + + let player = self.base_avatar().player().unwrap(); + let item_comp = player.player_item_comp.borrow(); + + let equip_item_vec = self + .base_avatar() + .equip_comp + .equip_guid_vec + .iter() + .map(|guid| item_comp.pack_store.items.get(guid).unwrap()) + .collect::>(); + + let mut equip_vec = Vec::new(); + + for item in equip_item_vec.iter() { + match item { + // TODO: Item::Equip -> Weapon, Relic + Item::Weapon(weapon) => equip_vec.push(weapon), + } + } + + self.base_avatar_mut().equip_comp.init(equip_vec); + } + + pub fn set_last_valid_position(&mut self, pos: Vector3) { + self.base_avatar_mut().last_valid_pos = pos; + } + + pub fn set_last_valid_rotation(&mut self, rot: Vector3) { + self.base_avatar_mut().last_valid_rot = rot; + } + + pub fn to_client(&self) -> proto::AvatarInfo { + let mut info = match self { + Self::Formal(avatar) => avatar.to_client(), + Self::Trial(avatar) => avatar.to_client(), + Self::Mirror(avatar) => avatar.to_client(), + }; + + info.avatar_type = self.get_avatar_type(); + info + } + + pub fn to_client_scene_entity(&self, scene_entity_info: &mut SceneEntityInfo) { + Entity::to_client(self, scene_entity_info); + } + + pub fn to_client_avatar_entity(&self, scene_avatar_info: &mut SceneAvatarInfo) { + let player = self.get_owner_player().unwrap(); + + scene_avatar_info.uid = player.uid; + scene_avatar_info.peer_id = player.peer_id.get(); + scene_avatar_info.avatar_id = self.base_avatar().avatar_id; + scene_avatar_info.guid = self.base_avatar().guid; + scene_avatar_info.equip_id_list = { + let item_comp = player.player_item_comp.borrow(); + self.base_avatar() + .equip_comp + .equip_guid_vec + .iter() + .map(|guid| { + item_comp + .pack_store + .items + .get(guid) + .map(|item| item.item_id()) + }) + .flatten() + .collect() + }; + + scene_avatar_info.skill_depot_id = self.base_avatar().skill_depot_id; + scene_avatar_info.born_time = self.base_avatar().born_time; + scene_avatar_info.team_resonance_list = vec![10301]; // TODO! + scene_avatar_info.wearing_flycloak_id = self.base_avatar().flycloak_id; + scene_avatar_info.costume_id = 0; // TODO! + scene_avatar_info.excel_info = Some(AvatarExcelInfo::default()); + scene_avatar_info.weapon = self + .base_avatar() + .equip_comp + .weapon_gadget + .as_ref() + .map(|gadget| gadget.borrow().to_client()); + } + + pub fn from_bin(bin: AvatarBin) -> Self { + let level = bin.level; + let cur_hp = bin.cur_hp; + + let mut avatar = match bin.detail.clone().unwrap() { + Detail::FormalAvatar(detail) => Self::Formal(FormalAvatar::from_bin(bin, detail)), + Detail::TrialAvatar(detail) => Self::Trial(TrialAvatar::from_bin(bin, detail)), + Detail::MirrorAvatar(detail) => Self::Mirror(MirrorAvatar::from_bin(bin, detail)), + }; + + avatar.set_level(level); + avatar.set_cur_hp(cur_hp); + // TODO: cur_elem_energy + + avatar + } + + pub fn to_bin(&self) -> AvatarBin { + match self { + Self::Formal(a) => a.to_bin(), + Self::Trial(a) => a.to_bin(), + Self::Mirror(a) => a.to_bin(), + } + } + + pub fn get_avatar_type(&self) -> u32 { + match self { + Self::Formal(_) => 1, + Self::Trial(_) => 2, + Self::Mirror(_) => 3, + } + } +} + +#[derive(Default)] +pub struct BaseAvatar { + player: Weak, + pub avatar_id: u32, + pub guid: u64, + pub level: u32, + pub life_state: LifeState, + pub promote_level: u32, + pub skill_depot_id: u32, + // skill_map, buff_map, depot_map + pub satiation_val: f32, + pub satiation_penalty_time: f32, + pub flycloak_id: u32, + pub born_time: u32, + // Components + pub fight_prop_comp: FightPropComp, + pub equip_comp: EquipComp, + pub ability_comp: Rc>, + // Entity + pub entity_id: u32, + pub pos: Vector3, + pub rot: Vector3, + pub last_valid_pos: Vector3, + pub last_valid_rot: Vector3, +} + +impl BaseAvatar { + pub fn to_client(&self, prop_map: PropValueMap) -> proto::AvatarInfo { + let mut info = proto::AvatarInfo { + avatar_id: self.avatar_id, + guid: self.guid, + prop_map, + life_state: self.life_state as u32, + skill_depot_id: self.skill_depot_id, + wearing_flycloak_id: self.flycloak_id, + born_time: self.born_time, + fetter_info: Some(proto::AvatarFetterInfo { + exp_level: 1, + ..Default::default() + }), + fight_prop_map: self.fight_prop_comp.get_fight_prop_value_map(), + ..Default::default() + }; + self.equip_comp.to_client(&mut info); + + info + } + + pub fn from_bin(bin: AvatarBin) -> Self { + let mut fight_prop_comp = FightPropComp::default(); + fight_prop_comp.set_cur_hp(bin.cur_hp); + + let equip_comp = EquipComp::from_bin(&bin); + + Self { + player: Weak::new(), + avatar_id: bin.avatar_id, + guid: bin.guid, + level: bin.level, + life_state: bin.life_state.into(), + promote_level: bin.promote_level, + skill_depot_id: bin.skill_depot_id, + satiation_val: bin.satiation_val, + satiation_penalty_time: bin.satiation_penalty_time, + flycloak_id: bin.flycloak_id, + born_time: bin.born_time, + fight_prop_comp, + equip_comp, + ..Default::default() + } + } + + pub fn to_bin(&self, detail: avatar_bin::Detail) -> AvatarBin { + let mut bin = AvatarBin { + detail: Some(detail), + avatar_id: self.avatar_id, + guid: self.guid, + level: self.level, + life_state: self.life_state as u32, + cur_hp: self.fight_prop_comp.get_prop_value(FightPropType::CurHp), + cur_elem_energy: 0.0, // todo + promote_level: self.promote_level, + skill_depot_id: self.skill_depot_id, + satiation_val: self.satiation_val, + satiation_penalty_time: self.satiation_penalty_time, + flycloak_id: self.flycloak_id, + born_time: self.born_time, + ..Default::default() + }; + + self.equip_comp.to_bin(&mut bin); + bin + } + + pub fn on_add_to_scene_team(&mut self) { + // TODO + } + + pub fn on_remove_from_scene_team(&mut self) { + // TODO + } + + pub fn set_player(&mut self, player: Rc) { + self.player = Rc::downgrade(&player) + } + + fn player(&self) -> Option> { + self.player.upgrade() + } +} + +impl Creature for Avatar { + fn set_level(&mut self, level: u32) { + self.base_avatar_mut().level = level; + self.assign_prop(); + } + + fn assign_prop(&mut self) { + // TODO: level-based calculation + let id = self.base_avatar().avatar_id; + let config = data::iter_avatar_data().find(|a| a.id == id).unwrap(); + + let base = self.base_avatar_mut(); + let fpc = &mut base.fight_prop_comp; + + fpc.fight_cal_prop_map + .insert(FightPropType::BaseHp, config.hp_base); + fpc.fight_cal_prop_map + .insert(FightPropType::MaxHp, config.hp_base); + fpc.fight_cal_prop_map + .insert(FightPropType::BaseAttack, config.defense_base); + fpc.fight_cal_prop_map + .insert(FightPropType::BaseDefense, config.defense_base); + } + + fn set_cur_hp_full(&mut self) { + let base = self.base_avatar_mut(); + let fpc = &mut base.fight_prop_comp; + + fpc.set_cur_hp(fpc.get_prop_value(FightPropType::MaxHp)); + } + + fn get_life_state(&self) -> LifeState { + self.base_avatar().life_state + } + + fn set_life_state(&mut self, state: LifeState) { + self.base_avatar_mut().life_state = state; + } + + fn get_cur_hp(&self) -> f32 { + let base = self.base_avatar(); + base.fight_prop_comp.get_prop_value(FightPropType::CurHp) + } + + fn set_cur_hp(&mut self, hp: f32) { + let base = self.base_avatar_mut(); + let fpc = &mut base.fight_prop_comp; + + fpc.set_cur_hp(hp); + } +} + +impl Entity for Avatar { + fn get_entity_type(&self) -> ProtEntityType { + ProtEntityType::ProtEntityAvatar + } + + fn get_group_id(&self) -> u32 { + 0 + } + + fn entity_id(&self) -> u32 { + self.base_avatar().entity_id + } + + fn set_entity_id(&mut self, id: u32) { + self.base_avatar_mut().entity_id = id + } + + fn position(&self) -> &data::math_def::Vector3 { + &self.base_avatar().pos + } + + fn rotation(&self) -> &data::math_def::Vector3 { + &self.base_avatar().rot + } + + fn get_owner_player(&self) -> Option> { + self.base_avatar().player() + } + + fn is_on_scene(&self) -> bool { + self.entity_id() != 0 + } + + fn set_position(&mut self, pos: data::math_def::Vector3) { + self.base_avatar_mut().pos = pos; + } + + fn set_rotation(&mut self, rot: data::math_def::Vector3) { + self.base_avatar_mut().rot = rot; + } + + fn to_client(&self, scene_entity_info: &mut SceneEntityInfo) { + scene_entity_info.entity_id = self.entity_id(); + scene_entity_info.entity_type = self.get_entity_type().into(); + scene_entity_info.life_state = self.get_life_state() as u32; + + scene_entity_info.motion_info = Some(MotionInfo { + pos: Some(self.position().to_client()), + rot: Some(self.rotation().to_client()), + speed: Some(proto::Vector::default()), + ..Default::default() + }); + + // TODO: macro for this stuff + scene_entity_info.prop_list = vec![PropPair { + r#type: PROP_LEVEL, + prop_value: Some(PropValue { + r#type: PROP_LEVEL, + val: self.base_avatar().level as i64, + value: Some(proto::prop_value::Value::Ival( + self.base_avatar().level as i64, + )), + }), + }]; + + scene_entity_info.fight_prop_list = self + .base_avatar() + .fight_prop_comp + .get_fight_prop_value_map() + .iter() + .map(|(ty, val)| FightPropPair { + prop_type: *ty, + prop_value: *val, + }) + .collect(); + + let mut scene_avatar_info = SceneAvatarInfo::default(); + self.to_client_avatar_entity(&mut scene_avatar_info); + scene_entity_info.entity = + Some(proto::scene_entity_info::Entity::Avatar(scene_avatar_info)); + + scene_entity_info.animator_para_list = vec![AnimatorParameterValueInfoPair { + animator_para: Some(Iolgpkjjcfi::default()), + name_id: 0, + }]; + + scene_entity_info.entity_client_data = Some(EntityClientData::default()); + scene_entity_info.entity_authority_info = Some(EntityAuthorityInfo { + ability_info: Some(AbilitySyncStateInfo::default()), + born_pos: Some(proto::Vector::default()), + client_extra_info: Some(Lcjbmelilap { + ffioldkchck: Some(proto::Vector::default()), + }), + ..Default::default() + }); + } +} diff --git a/gameserver/src/player/avatar/avatar_team.rs b/gameserver/src/player/avatar/avatar_team.rs new file mode 100644 index 0000000..c8c4b77 --- /dev/null +++ b/gameserver/src/player/avatar/avatar_team.rs @@ -0,0 +1,19 @@ +pub struct AvatarTeam { + pub avatar_vec: Vec, + pub team_name: String, + pub last_cur_avatar_guid: u64, +} + +// TODO: this will be used once we implement team setup +#[allow(dead_code)] +impl AvatarTeam { + pub fn add_avatar(&mut self, avatar_id: u64) { + self.avatar_vec.push(avatar_id); + } + + pub fn del_avatar(&mut self, avatar_id: u64) { + if let Some(idx) = self.avatar_vec.iter().position(|a| *a == avatar_id) { + self.avatar_vec.remove(idx); + } + } +} diff --git a/gameserver/src/player/avatar/avatar_team_entity.rs b/gameserver/src/player/avatar/avatar_team_entity.rs new file mode 100644 index 0000000..4fd46c5 --- /dev/null +++ b/gameserver/src/player/avatar/avatar_team_entity.rs @@ -0,0 +1,64 @@ +use std::rc::{Rc, Weak}; + +use data::math_def::Vector3; +use proto::{AbilityControlBlock, AbilitySyncStateInfo, TeamEnterSceneInfo}; + +use crate::{entity::Entity, player::Player}; + +#[derive(Default)] +pub struct AvatarTeamEntity { + pos: Vector3, + rot: Vector3, + player: Weak, + id: u32, +} + +impl AvatarTeamEntity { + pub fn set_player(&mut self, player_ptr: &Rc) { + self.player = Rc::downgrade(player_ptr); + } + + pub fn to_client(&self, team_enter_info: &mut TeamEnterSceneInfo) { + team_enter_info.ability_control_block = Some(AbilityControlBlock::default()); + team_enter_info.team_ability_info = Some(AbilitySyncStateInfo::default()); + team_enter_info.team_entity_id = self.id; + } +} + +impl Entity for AvatarTeamEntity { + fn get_entity_type(&self) -> proto::ProtEntityType { + proto::ProtEntityType::ProtEntityTeam + } + + fn get_group_id(&self) -> u32 { + 0 + } + + fn entity_id(&self) -> u32 { + self.id + } + + fn set_entity_id(&mut self, id: u32) { + self.id = id; + } + + fn position(&self) -> &data::math_def::Vector3 { + &self.pos + } + + fn rotation(&self) -> &data::math_def::Vector3 { + &self.rot + } + + fn set_position(&mut self, pos: data::math_def::Vector3) { + self.pos = pos; + } + + fn set_rotation(&mut self, rot: data::math_def::Vector3) { + self.rot = rot; + } + + fn get_owner_player(&self) -> Option> { + self.player.upgrade() + } +} diff --git a/gameserver/src/player/avatar/formal_avatar.rs b/gameserver/src/player/avatar/formal_avatar.rs new file mode 100644 index 0000000..0948538 --- /dev/null +++ b/gameserver/src/player/avatar/formal_avatar.rs @@ -0,0 +1,54 @@ +use std::collections::HashMap; + +use data::prop_type::{PROP_EXP, PROP_LEVEL}; +use proto::{avatar_bin::Detail, AvatarBin, FormalAvatarBin}; + +use crate::creature::property::append_int_prop_value; + +use super::avatar::BaseAvatar; + +#[derive(Default)] +pub struct FormalAvatar { + pub base: BaseAvatar, + pub exp: u32, + // TODO: fetter, expedition + pub avatar_repeat_count: u32, + pub is_focus: bool, + pub taken_promote_reward_level_list: Vec, + pub costume_id: u32, +} + +impl FormalAvatar { + pub fn to_client(&self) -> proto::AvatarInfo { + let mut map = HashMap::new(); + append_int_prop_value(&mut map, PROP_LEVEL, self.base.level.into()); + append_int_prop_value(&mut map, PROP_EXP, self.exp.into()); + + let mut info = self.base.to_client(map); + info.costume_id = self.costume_id; + + info + } + + pub fn from_bin(bin: AvatarBin, detail_bin: FormalAvatarBin) -> Self { + Self { + base: BaseAvatar::from_bin(bin), + exp: detail_bin.exp, + avatar_repeat_count: detail_bin.avatar_repeat_count, + is_focus: detail_bin.is_focus, + taken_promote_reward_level_list: detail_bin.taken_promote_reward_level_list, + costume_id: detail_bin.costume_id, + } + } + + pub fn to_bin(&self) -> AvatarBin { + self.base.to_bin(Detail::FormalAvatar(FormalAvatarBin { + exp: self.exp, + avatar_repeat_count: self.avatar_repeat_count, + is_focus: self.is_focus, + taken_promote_reward_level_list: self.taken_promote_reward_level_list.clone(), + costume_id: self.costume_id, + ..Default::default() + })) + } +} diff --git a/gameserver/src/player/avatar/mirror_avatar.rs b/gameserver/src/player/avatar/mirror_avatar.rs new file mode 100644 index 0000000..b4a37c2 --- /dev/null +++ b/gameserver/src/player/avatar/mirror_avatar.rs @@ -0,0 +1,36 @@ +use std::collections::HashMap; + +use data::prop_type::PROP_LEVEL; +use proto::{avatar_bin::Detail, AvatarBin, MirrorAvatarBin}; + +use crate::creature::property::append_int_prop_value; + +use super::BaseAvatar; + +#[derive(Default)] +pub struct MirrorAvatar { + pub base: BaseAvatar, + pub avatar_snapshot_type: u32, +} + +impl MirrorAvatar { + pub fn to_client(&self) -> proto::AvatarInfo { + let mut map = HashMap::new(); + append_int_prop_value(&mut map, PROP_LEVEL, self.base.level.into()); + + self.base.to_client(map) + } + + pub fn from_bin(bin: AvatarBin, detail_bin: MirrorAvatarBin) -> Self { + Self { + base: BaseAvatar::from_bin(bin), + avatar_snapshot_type: detail_bin.avatar_snapshot_type, + } + } + + pub fn to_bin(&self) -> AvatarBin { + self.base.to_bin(Detail::MirrorAvatar(MirrorAvatarBin { + avatar_snapshot_type: self.avatar_snapshot_type, + })) + } +} diff --git a/gameserver/src/player/avatar/mod.rs b/gameserver/src/player/avatar/mod.rs new file mode 100644 index 0000000..4c11bf9 --- /dev/null +++ b/gameserver/src/player/avatar/mod.rs @@ -0,0 +1,15 @@ +mod avatar; +mod avatar_team; +mod avatar_team_entity; +mod formal_avatar; +mod mirror_avatar; +mod player_avatar_comp; +mod trial_avatar; + +pub use avatar::{Avatar, BaseAvatar}; +pub use avatar_team::AvatarTeam; +pub use avatar_team_entity::AvatarTeamEntity; +pub use formal_avatar::FormalAvatar; +pub use mirror_avatar::MirrorAvatar; +pub use player_avatar_comp::PlayerAvatarComp; +pub use trial_avatar::TrialAvatar; diff --git a/gameserver/src/player/avatar/player_avatar_comp.rs b/gameserver/src/player/avatar/player_avatar_comp.rs new file mode 100644 index 0000000..0013b93 --- /dev/null +++ b/gameserver/src/player/avatar/player_avatar_comp.rs @@ -0,0 +1,764 @@ +use std::{ + cell::RefCell, + collections::{BTreeMap, HashMap, HashSet}, + rc::{Rc, Weak}, +}; + +use common::tools::time_utils; +use data::iter_avatar_data; +use proto::{ + AvatarDataNotify, AvatarTeamBin, AvatarTeamUpdateNotify, PlayerAvatarCompBin, Retcode, + VisionType, +}; +use tokio::sync::OnceCell; + +use crate::{ + creature::{Creature, LifeState}, + entity::{Entity, VisionContext}, + player::Player, + scene::Scene, +}; + +use super::{Avatar, AvatarTeam, AvatarTeamEntity, FormalAvatar, MirrorAvatar, TrialAvatar}; + +#[derive(Default)] +pub struct PlayerAvatarComp { + player: OnceCell>, + pub avatar_map: BTreeMap>>, + pub trial_avatar_guid_set: HashSet, + pub temp_avatar_guid_set: HashSet, + pub avatar_team_map: BTreeMap>, + pub cur_avatar_team_id: u32, + pub last_change_avatar_time_ms: u64, + pub is_spring_auto_use: bool, + pub spring_auto_use_percent: u32, + pub last_background_avatar_recover_time: u32, + pub is_flyable: bool, + pub is_transferable: bool, + pub last_avatar_guid: u64, + pub choose_avatar_guid: u64, + pub die_type: u32, + pub owned_flycloak_set: HashSet, + pub owned_costume_set: HashSet, + pub team_entity: Weak>, + cur_avatar_ptr: RefCell>>, +} + +impl PlayerAvatarComp { + const INIT_TEAM_ID: u32 = 1; + const TRAVELER_MALE_ID: u32 = 10000005; + const TRAVELER_FEMALE_ID: u32 = 10000007; + + pub fn set_player(&self, player: Rc) { + self.player.set(Rc::downgrade(&player)).unwrap(); + } + + pub fn player(&self) -> Option> { + self.player.get().map(|p| p.upgrade())? + } + + pub fn init(&mut self) { + if self.get_avatar_count() != 0 { + if self.choose_avatar_guid != 0 { + let player = self.player().unwrap(); + for (_, avatar) in self.avatar_map.iter_mut() { + let mut avatar = avatar.borrow_mut(); + avatar.base_avatar_mut().set_player(player.clone()); + avatar.init(); + } + + if self.avatar_team_map.is_empty() { + self.avatar_team_map.insert( + Self::INIT_TEAM_ID, + RefCell::new(AvatarTeam { + avatar_vec: vec![self.choose_avatar_guid], + last_cur_avatar_guid: 0, + team_name: String::new(), + }), + ); + + tracing::warn!( + "avatar_team_map empty player_uid: {}", + self.player().unwrap().uid + ); + } + + if !self.avatar_team_map.contains_key(&self.cur_avatar_team_id) { + tracing::warn!( + "cur_avatar_team_id:{} not in team_map player_uid: {}", + self.cur_avatar_team_id, + self.player().unwrap().uid + ); + + self.cur_avatar_team_id = *self.avatar_team_map.iter().next().unwrap().0; + } + + let mut cur_team = self + .avatar_team_map + .get(&self.cur_avatar_team_id) + .unwrap() + .borrow_mut(); + if cur_team.avatar_vec.is_empty() { + cur_team.avatar_vec.push(self.choose_avatar_guid); + tracing::warn!( + "cur_avatar_team avatar empty player_uid: {} cur_avatar_team_id: {}", + self.player().unwrap().uid, + self.cur_avatar_team_id + ); + } + + if !cur_team.avatar_vec.contains(&cur_team.last_cur_avatar_guid) { + cur_team.last_cur_avatar_guid = cur_team.avatar_vec[0]; + } + } else { + tracing::error!( + "choose_avatar_guid = 0 player_uid: {}", + self.player().unwrap().uid + ); + } + } + } + + pub fn check_avatar_guid_vec_all_formal(&self, guid_vec: &[u64]) -> Result<(), Retcode> { + for guid in guid_vec { + if self.find_formal_avatar(*guid).is_none() { + tracing::warn!("find_formal_avatar failed, avatar_guid: {guid}"); + return Err(Retcode::RetFail); + } + } + + Ok(()) + } + + pub fn get_cur_avatar_team_with_temp_avatar(&self) -> Vec { + let cur_team = self + .avatar_team_map + .get(&self.cur_avatar_team_id) + .unwrap() + .borrow(); + let mut result = cur_team.avatar_vec.clone(); + result.extend(self.trial_avatar_guid_set.iter().collect::>()); + + result + } + + pub fn get_cur_avatar_team_vec(&self) -> Vec>> { + let cur_avatar_team = self.avatar_team_map.get(&self.cur_avatar_team_id).unwrap(); + cur_avatar_team + .borrow() + .avatar_vec + .iter() + .map(|guid| self.avatar_map.get(guid).map(|a| a.clone())) + .flatten() + .collect() + } + + pub fn get_my_avatar_team_in_scene_team(&self) -> Vec { + let player = self.player().unwrap(); + let cur_world = player + .player_scene_comp + .borrow() + .get_cur_scene() + .unwrap() + .borrow() + .base() + .cur_world_wtr + .upgrade() + .unwrap(); + + let cur_world = cur_world.borrow(); + cur_world + .scene_team + .get_avatar_guid_vec(player.uid) + .unwrap_or_default() + } + + pub fn is_my_avatar_in_scene_team(&self, guid: u64) -> bool { + let guid_vec = self.get_my_avatar_team_in_scene_team(); + if !guid_vec.contains(&guid) { + tracing::info!("guid:{guid} not in scene team, guid_vec:{guid_vec:?}"); + false + } else { + true + } + } + + pub fn set_up_avatar_team( + &self, + team_id: u32, + avatar_guid_vec: &[u64], + target_avatar_guid: u64, + ) -> Result<(), Retcode> { + let Some(_cur_avatar_ptr) = self.cur_avatar_ptr.borrow().upgrade() else { + tracing::warn!("cur_avatar_ptr is None"); + return Err(Retcode::RetFail); + }; + + if let Err(ret) = self.check_avatar_team_can_set_up(team_id, avatar_guid_vec) { + tracing::info!("check_avatar_team_can_set_up failed"); + return Err(ret); + } + + if self.cur_avatar_team_id == team_id + && !self.temp_avatar_guid_set.contains(&target_avatar_guid) + && !avatar_guid_vec.contains(&target_avatar_guid) + { + tracing::warn!("can't find avatar in team, guid:{target_avatar_guid}"); + return Err(Retcode::RetAvatarNotExistInTeam); + } + + if let Err(ret) = self.check_change_cur_avatar(target_avatar_guid) { + tracing::info!("check_change_cur_avatar failed, guid:{target_avatar_guid}"); + return Err(ret); + } + + self.avatar_team_map + .get(&team_id) + .unwrap() + .borrow_mut() + .avatar_vec = avatar_guid_vec.to_vec(); + self.notify_avatar_team(team_id); + + if self.cur_avatar_team_id == team_id { + self.sync_cur_avatar_team_to_scene_team(target_avatar_guid)?; + } + + Ok(()) + } + + fn notify_avatar_team(&self, team_id: u32) { + let avatar_team = self.avatar_team_map.get(&team_id).unwrap().borrow(); + + self.player().unwrap().send_proto(AvatarTeamUpdateNotify { + temp_avatar_guid_list: self.temp_avatar_guid_set.iter().cloned().collect(), + avatar_team_map: HashMap::from([( + team_id, + proto::AvatarTeam { + team_name: avatar_team.team_name.clone(), + avatar_guid_list: avatar_team.avatar_vec.clone(), + }, + )]), + }); + } + + fn sync_cur_avatar_team_to_scene_team(&self, target_avatar_guid: u64) -> Result<(), Retcode> { + let cur_team = self.get_cur_avatar_team_with_temp_avatar(); + if cur_team.is_empty() { + tracing::warn!( + "cur_team empty, target_avatar_guid:{target_avatar_guid}, uid:{}", + self.player().unwrap().uid + ); + return Err(Retcode::RetFail); + } + + let player = self.player().unwrap(); + let scene_comp = player.player_scene_comp.borrow(); + let Some(cur_scene) = scene_comp.get_cur_scene() else { + tracing::info!( + "get_cur_scene target_avatar_guid:{target_avatar_guid}, uid:{}", + self.player().unwrap().uid + ); + return Err(Retcode::RetFail); + }; + drop(scene_comp); + + if let Err(ret) = + self.set_scene_team_and_add_to_scene(cur_team, target_avatar_guid, cur_scene) + { + tracing::warn!("set_scene_team_and_add_to_scene fails"); + return Err(ret); + } + + Ok(()) + } + + fn set_scene_team_and_add_to_scene( + &self, + avatar_vec: Vec, + appear_avatar_guid: u64, + cur_scene: Rc>, + ) -> Result<(), Retcode> { + let cur_world = cur_scene.borrow().base().cur_world_wtr.upgrade().unwrap(); + + let old_team = cur_world + .borrow() + .scene_team + .get_avatar_guid_vec(self.player().unwrap().uid) + .unwrap(); + + if let Err(ret) = cur_world + .borrow_mut() + .scene_team + .set_player_avatar_team_and_add_to_scene( + self.player().unwrap().uid, + avatar_vec.clone(), + appear_avatar_guid, + &mut cur_scene.borrow_mut(), + false, + ) + { + tracing::warn!( + "set_player_avatar_team_and_add_to_scene fails, uid:{}", + self.player().unwrap().uid + ); + return Err(ret); + } + + if appear_avatar_guid != self.get_cur_avatar().unwrap().borrow().base_avatar().guid { + if let Err(ret) = self.change_cur_avatar(appear_avatar_guid, false) { + tracing::warn!( + "change_cur_avatar fails, ret:{ret:?}, uid: {}", + self.player().unwrap().uid + ); + } + } + + cur_world.borrow().scene_team.notify_scene_team_update(); + let cur_team = cur_world + .borrow() + .scene_team + .get_avatar_guid_vec(self.player().unwrap().uid) + .unwrap(); + + tracing::info!("set_scene_team_and_add_to_scene set_avatar_vec:{avatar_vec:?}, old_team:{old_team:?}, cur_team:{cur_team:?}, uid:{}", self.player().unwrap().uid); + + let scene = { + let player = self.player().unwrap(); + let scene_comp = player.player_scene_comp.borrow(); + scene_comp.get_cur_scene().unwrap() + }; + + for guid in old_team { + if !cur_team.contains(&guid) { + if let Some(avatar_ptr) = self.find_avatar(guid) { + scene.borrow_mut().del_avatar_and_weapon_entity(avatar_ptr); + } + } + } + + Ok(()) + } + + pub fn change_cur_avatar(&self, guid: u64, is_notify: bool) -> Result<(), Retcode> { + let Some(cur_avatar_ptr) = self.cur_avatar_ptr.borrow().upgrade() else { + tracing::error!( + "cur_avatar_ptr is None, guid: {guid}, player: {}", + self.player().unwrap().uid + ); + return Err(Retcode::RetFail); + }; + + let Some(dest_avatar_ptr) = self.find_avatar(guid) else { + tracing::error!("find_avatar fails, guid:{guid}"); + return Err(Retcode::RetFail); + }; + + { + let mut dest_avatar = dest_avatar_ptr.borrow_mut(); + let cur_avatar = cur_avatar_ptr.borrow(); + + dest_avatar.set_position(cur_avatar.position().clone()); + dest_avatar.set_rotation(cur_avatar.rotation().clone()); + dest_avatar.set_last_valid_position(cur_avatar.position().clone()); + dest_avatar.set_last_valid_rotation(cur_avatar.rotation().clone()); + } + + let scene = { + let player = self.player().unwrap(); + let scene_comp = player.player_scene_comp.borrow(); + scene_comp.get_cur_scene().unwrap() + }; + + let vision_type = match is_notify { + true => VisionType::VisionReplace, + false => VisionType::VisionReplaceNoNotify, + }; + + if let Err(ret) = scene.borrow_mut().entity_disappear( + &(cur_avatar_ptr.clone() as Rc>), + VisionContext::new(vision_type), + ) { + tracing::warn!("entity_disappear fails"); + return Err(ret); + } + + if dest_avatar_ptr.borrow().entity_id() == 0 { + tracing::warn!("change_cur_avatar fails. avatar entityid is 0."); + return Err(Retcode::RetFail); + } + + if let Err(ret) = scene.borrow_mut().entity_appear( + &(dest_avatar_ptr.clone() as Rc>), + VisionContext::new(vision_type), + ) { + tracing::warn!("entity_appear fails"); + return Err(ret); + } + + *self.cur_avatar_ptr.borrow_mut() = Rc::downgrade(&dest_avatar_ptr); + self.avatar_team_map + .get(&self.cur_avatar_team_id) + .unwrap() + .borrow_mut() + .last_cur_avatar_guid = guid; + + Ok(()) + } + + pub fn check_avatar_team_can_set_up( + &self, + team_id: u32, + avatar_guid_vec: &[u64], + ) -> Result<(), Retcode> { + if !self.avatar_team_map.contains_key(&team_id) { + return Err(Retcode::RetCanNotFindTeam); + } + + if avatar_guid_vec.len() > 4 { + return Err(Retcode::RetFail); + } + + let mut avatar_guid_set = HashSet::with_capacity(avatar_guid_vec.len()); + for guid in avatar_guid_vec { + if !avatar_guid_set.insert(*guid) { + tracing::info!("duplicate avatar guid:{guid}"); + return Err(Retcode::RetDuplicateAvatar); + } + } + + for guid in avatar_guid_vec { + if self.find_avatar(*guid).is_none() { + return Err(Retcode::RetCanNotFindAvatar); + } + } + + Ok(()) + } + + pub fn check_change_cur_avatar(&self, _guid: u64) -> Result<(), Retcode> { + Ok(()) + } + + pub fn on_login(&mut self, _is_new_player: bool) { + for index in 1..=4 { + if !self.avatar_team_map.contains_key(&index) { + self.avatar_team_map.insert( + index, + RefCell::new(AvatarTeam { + avatar_vec: Vec::new(), + last_cur_avatar_guid: 0, + team_name: String::new(), + }), + ); + } + } + + self.owned_flycloak_set.insert(140001); + self.try_add_default_unlock_costume(); + } + + pub fn notify_all_data(&self) { + let notify = AvatarDataNotify { + avatar_list: self + .avatar_map + .iter() + .map(|(_, av)| av.borrow().to_client()) + .collect(), + cur_avatar_team_id: self.cur_avatar_team_id, + avatar_team_map: self + .avatar_team_map + .iter() + .map(|(id, team)| { + ( + *id, + proto::AvatarTeam { + team_name: team.borrow().team_name.clone(), + avatar_guid_list: team.borrow().avatar_vec.clone(), + }, + ) + }) + .collect(), + choose_avatar_guid: self.choose_avatar_guid, + owned_flycloak_list: self.owned_flycloak_set.clone().into_iter().collect(), + owned_costume_list: self.owned_costume_set.clone().into_iter().collect(), + ..Default::default() + }; + + self.player().unwrap().send_proto(notify); + } + + fn try_add_default_unlock_costume(&mut self) { + // TODO! this is for free skins. + } + + pub fn on_first_login(&self) { + // empty. + } + + pub fn set_born_avatar(&mut self, avatar_id: u32) -> Result<(), Retcode> { + if self.get_avatar_count() != 0 { + tracing::error!("can not redo it"); + return Err(Retcode::RetFail); + } + + if avatar_id != Self::TRAVELER_MALE_ID && avatar_id != Self::TRAVELER_FEMALE_ID { + tracing::error!("invalid born avatar, avatar_id:{avatar_id}"); + return Err(Retcode::RetFail); + } + + self.cur_avatar_team_id = 1; + let Some(guid) = self.add_formal_avatar(avatar_id, false, 1, 0) else { + tracing::error!("add_formal_avatar fails, avatar_id:{avatar_id}"); + return Err(Retcode::RetFail); + }; + + let mut team = self.avatar_team_map.get_mut(&1).unwrap().borrow_mut(); + team.avatar_vec.push(guid); + team.last_cur_avatar_guid = guid; + self.choose_avatar_guid = guid; + self.last_background_avatar_recover_time = time_utils::get_now() as u32; + self.spring_auto_use_percent = 50; + self.cur_avatar_team_id = 1; + + Ok(()) + } + + pub fn add_formal_avatar( + &mut self, + avatar_id: u32, + is_notify: bool, + add_avatar_reason: u32, + action_reason: u32, + ) -> Option { + let player = self.player().unwrap(); + if self.has_avatar(avatar_id, 1) { + tracing::warn!("formal avatar avatar_id:{avatar_id} already exist"); + return None; + } + + let Some(avatar_config) = iter_avatar_data().find(|a| a.id == avatar_id) else { + tracing::error!("find_avatar_config fails, avatar_id:{avatar_id}"); + return None; + }; + + let Some(mut avatar) = self.create_avatar(1, avatar_id, 0) else { + tracing::error!("create_avatar fails, avatar_id:{avatar_id}"); + return None; + }; + + let guid = avatar.base_avatar().guid; + + avatar.base_avatar_mut().set_player(player.clone()); + avatar.base_avatar_mut().skill_depot_id = avatar_config.skill_depot_id; + avatar.set_level(1); + avatar.base_avatar_mut().life_state = LifeState::LifeAlive; + let add_equip_result = player + .player_item_comp + .borrow_mut() + .force_add_equip_by_add_avatar(avatar_config.initial_weapon); + + avatar + .base_avatar_mut() + .equip_comp + .set_init_weapon(add_equip_result.guid); + + avatar.set_cur_hp_full(); + if self + .add_avatar(avatar, is_notify, add_avatar_reason, action_reason) + .is_err() + { + tracing::error!("add_avatar failed, avatar_id:{avatar_id}"); + return None; + } + + Some(guid) + } + + pub fn add_avatar( + &mut self, + mut avatar: Avatar, + is_notify: bool, + _add_avatar_reason: u32, + _action_reason: u32, + ) -> Result<(), Retcode> { + avatar.init(); + self.emplace_avatar(avatar)?; + + if is_notify { + // TODO! + } + + Ok(()) + } + + fn create_avatar(&self, avatar_type: u32, avatar_id: u32, avatar_guid: u64) -> Option { + let mut avatar = match avatar_type { + 1 => Avatar::Formal(FormalAvatar::default()), + 2 => Avatar::Trial(TrialAvatar::default()), + 3 => Avatar::Mirror(MirrorAvatar::default()), + _ => { + tracing::error!("unknown avatar_type:{avatar_type}"); + return None; + } + }; + + avatar.base_avatar_mut().avatar_id = avatar_id; + + let avatar_guid = match avatar_guid { + 0 => { + let player = self.player().unwrap(); + let mut basic_comp = player.player_basic_comp.borrow_mut(); + basic_comp.gen_guid() + } + guid => guid, + }; + + if avatar_guid == 0 { + tracing::error!( + "gen_guid failed, avatar_type:{avatar_type} avatar_id:{avatar_id} uid:{}", + self.player().unwrap().uid + ); + return None; + } + + avatar.base_avatar_mut().guid = avatar_guid; + avatar.base_avatar_mut().born_time = time_utils::get_now() as u32; + + Some(avatar) + } + + pub fn has_avatar(&self, avatar_id: u32, avatar_type: u32) -> bool { + self.avatar_map.iter().any(|(_, a)| { + let a = a.borrow(); + a.base_avatar().avatar_id == avatar_id && a.get_avatar_type() == avatar_type + }) + } + + pub fn find_avatar(&self, guid: u64) -> Option>> { + self.avatar_map.get(&guid).cloned() + } + + pub fn find_formal_avatar(&self, guid: u64) -> Option>> { + let avatar = self.avatar_map.get(&guid).cloned(); + if let Some(avatar) = avatar.as_ref() { + if avatar.borrow().get_avatar_type() != 1 { + return None; + } + } + + avatar + } + + pub fn get_cur_avatar(&self) -> Option>> { + self.cur_avatar_ptr.borrow().upgrade() + } + + pub fn set_cur_avatar(&mut self, cur_avatar_ptr: &Rc>) { + *self.cur_avatar_ptr.borrow_mut() = Rc::downgrade(cur_avatar_ptr); + } + + pub fn from_bin(bin: PlayerAvatarCompBin) -> Self { + let mut comp = Self { + player: OnceCell::new(), + avatar_map: BTreeMap::new(), + trial_avatar_guid_set: HashSet::new(), + temp_avatar_guid_set: bin.temp_avatar_guid_list.into_iter().collect(), + avatar_team_map: bin + .team_map + .into_iter() + .map(|(i, t)| { + ( + i, + RefCell::new(AvatarTeam { + team_name: t.team_name, + last_cur_avatar_guid: t.last_cur_avatar_guid, + avatar_vec: t.avatar_guid_list, + }), + ) + }) + .collect(), + cur_avatar_team_id: bin.cur_team_id, + last_change_avatar_time_ms: bin.last_change_avatar_time, + is_spring_auto_use: bin.is_spring_auto_use, + spring_auto_use_percent: bin.spring_auto_use_percent, + last_background_avatar_recover_time: bin.last_backgroud_avatar_recover_time, + is_flyable: bin.is_flyable, + is_transferable: bin.is_transferable, + last_avatar_guid: bin.last_avatar_guid, + choose_avatar_guid: bin.choose_avatar_guid, + die_type: bin.die_type, + owned_flycloak_set: bin.owned_flycloak_list.into_iter().collect(), + owned_costume_set: bin.owned_costume_id_list.into_iter().collect(), + team_entity: Weak::new(), + cur_avatar_ptr: RefCell::new(Weak::new()), + }; + + bin.avatar_list.into_iter().for_each(|a| { + let _ = comp.emplace_avatar(Avatar::from_bin(a)); + }); + + comp + } + + pub fn to_bin(&self) -> PlayerAvatarCompBin { + PlayerAvatarCompBin { + avatar_list: self + .avatar_map + .values() + .map(|a| a.borrow().to_bin()) + .collect(), + team_map: self + .avatar_team_map + .iter() + .map(|(i, t)| { + ( + *i, + AvatarTeamBin { + team_name: t.borrow().team_name.clone(), + last_cur_avatar_guid: t.borrow().last_cur_avatar_guid, + avatar_guid_list: t.borrow().avatar_vec.clone(), + }, + ) + }) + .collect(), + cur_team_id: self.cur_avatar_team_id, + last_change_avatar_time: self.last_change_avatar_time_ms, + is_spring_auto_use: self.is_spring_auto_use, + spring_auto_use_percent: self.spring_auto_use_percent, + last_backgroud_avatar_recover_time: self.last_background_avatar_recover_time, + is_flyable: self.is_flyable, + is_transferable: self.is_transferable, + last_avatar_guid: self.last_avatar_guid, + choose_avatar_guid: self.choose_avatar_guid, + die_type: self.die_type, + owned_flycloak_list: self.owned_flycloak_set.iter().cloned().collect(), + owned_costume_id_list: self.owned_costume_set.iter().cloned().collect(), + temp_avatar_guid_list: self.temp_avatar_guid_set.iter().cloned().collect(), + ..Default::default() + } + } + + pub fn emplace_avatar(&mut self, avatar: Avatar) -> Result<(), Retcode> { + let guid = avatar.base_avatar().guid; + if guid == 0 { + tracing::error!("avatar guid is 0, uid:{}", self.player().unwrap().uid); + return Err(Retcode::RetFail); + } + + if !self.avatar_map.contains_key(&guid) { + if avatar.get_avatar_type() == 2 { + self.trial_avatar_guid_set.insert(guid); + } + + self.avatar_map.insert(guid, Rc::new(RefCell::new(avatar))); + Ok(()) + } else { + tracing::error!("emplace Avatar failed, uid:{}", self.player().unwrap().uid); + Err(Retcode::RetFail) + } + } + + pub fn get_avatar_count(&self) -> usize { + self.avatar_map.len() + } +} diff --git a/gameserver/src/player/avatar/trial_avatar.rs b/gameserver/src/player/avatar/trial_avatar.rs new file mode 100644 index 0000000..13b261f --- /dev/null +++ b/gameserver/src/player/avatar/trial_avatar.rs @@ -0,0 +1,40 @@ +use std::collections::HashMap; + +use data::prop_type::PROP_LEVEL; +use proto::{avatar_bin::Detail, AvatarBin, TrialAvatarBin}; + +use crate::creature::property::append_int_prop_value; + +use super::BaseAvatar; + +#[derive(Default)] +pub struct TrialAvatar { + pub base: BaseAvatar, + pub trial_avatar_id: u32, + pub is_inherit: bool, +} + +impl TrialAvatar { + pub fn to_client(&self) -> proto::AvatarInfo { + let mut map = HashMap::new(); + append_int_prop_value(&mut map, PROP_LEVEL, self.base.level.into()); + + self.base.to_client(map) + } + + pub fn from_bin(bin: AvatarBin, detail_bin: TrialAvatarBin) -> Self { + Self { + base: BaseAvatar::from_bin(bin), + trial_avatar_id: detail_bin.trial_avatar_id, + is_inherit: detail_bin.is_inherit, + } + } + + pub fn to_bin(&self) -> AvatarBin { + self.base.to_bin(Detail::TrialAvatar(TrialAvatarBin { + trial_avatar_id: self.trial_avatar_id, + is_inherit: self.is_inherit, + ..Default::default() + })) + } +} diff --git a/gameserver/src/player/basic/mod.rs b/gameserver/src/player/basic/mod.rs new file mode 100644 index 0000000..d5198f4 --- /dev/null +++ b/gameserver/src/player/basic/mod.rs @@ -0,0 +1,2 @@ +mod player_basic_comp; +pub use player_basic_comp::PlayerBasicComp; diff --git a/gameserver/src/player/basic/player_basic_comp.rs b/gameserver/src/player/basic/player_basic_comp.rs new file mode 100644 index 0000000..5aa3128 --- /dev/null +++ b/gameserver/src/player/basic/player_basic_comp.rs @@ -0,0 +1,251 @@ +use std::{ + collections::BTreeMap, + rc::{Rc, Weak}, +}; + +use common::tools::time_utils; +use proto::{ + OpenStateUpdateNotify, PlayerBasicCompBin, PlayerGameTimeNotify, Retcode, ServerTimeNotify, +}; +use tokio::sync::OnceCell; + +use crate::player::Player; + +#[derive(Default)] +pub struct PlayerBasicComp { + player: OnceCell>, + is_guid_init: bool, + last_world_level_limit: u32, + pub level: u32, + pub exp: u32, + pub nickname: String, + pub total_game_time: u32, + pub trans_no_count: u64, + pub is_weather_locked: bool, + pub is_game_time_locked: bool, + pub persist_stamina_limit: f32, + pub cur_persist_stamina: f32, + pub cur_temporary_stamina: f32, + pub open_state_map: BTreeMap, + pub player_time_ms: u64, + pub last_login_time: u32, + pub register_time: u32, + pub total_login_days: u32, + pub update_login_days_time: u32, + pub reward_taken_level_list: Vec, + pub language_type: u32, + pub client_app_version: String, + pub client_device_info: String, + pub client_system_version: String, + pub is_guest: bool, + pub online_time: u32, + pub is_proficient_player: bool, + pub set_language_tag: u32, + pub head_image_avatar_id: u32, + pub guid_seq_id: u32, + pub is_rebate_mail_sent: bool, + pub is_rebate_mail_received: bool, + pub register_cps: String, + pub cur_json_climate_type: u32, + pub cur_climate_meter: f32, + pub last_logout_time: u32, + pub data_version: u32, + pub last_daily_refresh_time: u32, + pub is_auto_unlock_specific_equip: bool, + pub profile_picture_costume_id: u32, + pub online_id: String, + pub psn_id: String, + pub last_login_platform: u32, + pub pivot_client_time: f64, + pub pivot_unix_time: f64, + pub client_total_tick_time: f64, + pub player_stat_id: u64, + pub game_time: u32, + pub last_game_time_update_time: u64, + pub cur_login_time: u64, + pub is_online: bool, + pub is_game_time_locked_by_client: bool, +} + +impl PlayerBasicComp { + pub fn set_player(&self, player: Rc) { + self.player.set(Rc::downgrade(&player)).unwrap(); + } + + pub fn player(&self) -> Option> { + self.player.get().map(|p| p.upgrade())? + } + + #[allow(dead_code)] + pub fn increase_player_stat_id(&mut self) { + self.player_stat_id += 1; + } + + pub fn init(&mut self) { + self.is_guid_init = true; + self.last_world_level_limit = self.calc_world_level_limit(); + } + + pub fn on_login(&mut self, _is_new_player: bool) { + self.cur_login_time = time_utils::get_now(); + self.is_online = true; + self.is_game_time_locked_by_client = false; + } + + pub fn on_first_login(&mut self) { + self.level = 1; + let now = time_utils::get_now(); + self.register_time = now as u32; + self.game_time = (7.31 * 60.0) as u32; + self.last_game_time_update_time = now; + self.is_weather_locked = true; + self.is_game_time_locked = true; + self.last_daily_refresh_time = now as u32; + } + + pub fn notify_all_data(&self) { + self.notify_all_open_state_data(); + } + + pub fn notify_all_open_state_data(&self) { + self.player().unwrap().send_proto(OpenStateUpdateNotify { + open_state_map: self.open_state_map.clone().into_iter().collect(), + }); + } + + pub fn notify_server_time(&self) { + self.player().unwrap().send_proto(ServerTimeNotify { + server_time: time_utils::get_now_ms(), + }); + } + + pub fn notify_game_time(&self, player: &Player) { + player.send_proto(PlayerGameTimeNotify { + is_home: false, + uid: self.player().unwrap().uid, + game_time: self.game_time, + }); + } + + pub fn gen_guid(&mut self) -> u64 { + if !self.is_guid_init { + tracing::error!("called before init"); + return 0; + } + + let uid = self.player().unwrap().uid; + self.guid_seq_id += 1; + + ((uid as u64) << 32) | (self.guid_seq_id as u64) + } + + pub fn check_nick_name(&self, _nick_name: &str) -> Result<(), Retcode> { + Ok(()) + } + + fn calc_world_level_limit(&self) -> u32 { + // TODO! + 8 + } + + pub fn from_bin(bin: PlayerBasicCompBin) -> Self { + Self { + player: OnceCell::new(), + level: bin.level, + exp: bin.exp, + nickname: bin.nickname, + total_game_time: bin.total_game_time, + trans_no_count: bin.trans_no_count, + is_weather_locked: bin.is_weather_locked, + is_game_time_locked: bin.is_game_time_locked, + persist_stamina_limit: bin.persist_stamina_limit, + cur_persist_stamina: bin.cur_persist_stamina, + cur_temporary_stamina: bin.cur_temporary_stamina, + open_state_map: bin.open_state_map.into_iter().collect(), + player_time_ms: bin.player_time_ms, + last_login_time: bin.last_login_time, + register_time: bin.register_time, + total_login_days: bin.total_login_days, + update_login_days_time: bin.update_login_days_time, + reward_taken_level_list: bin.reward_taken_level_list, + language_type: bin.language_type, + client_app_version: bin.client_app_version, + client_device_info: bin.client_device_info, + client_system_version: bin.client_system_version, + is_guest: bin.is_guest, + online_time: bin.online_time, + is_proficient_player: bin.is_proficient_player, + set_language_tag: bin.set_language_tag, + head_image_avatar_id: bin.head_image_avatar_id, + guid_seq_id: bin.guid_seq_id, + is_rebate_mail_sent: bin.is_rebate_mail_sent, + is_rebate_mail_received: bin.is_rebate_mail_received, + register_cps: bin.register_cps, + cur_json_climate_type: bin.cur_json_climate_type, + cur_climate_meter: bin.cur_climate_meter, + last_logout_time: bin.last_logout_time, + data_version: bin.data_version, + last_daily_refresh_time: bin.last_daily_refresh_time, + is_auto_unlock_specific_equip: bin.is_auto_unlock_specific_equip, + profile_picture_costume_id: bin.profile_picture_costume_id, + online_id: bin.online_id, + psn_id: bin.psn_id, + last_login_platform: bin.last_login_platform, + pivot_client_time: bin.pivot_client_time, + pivot_unix_time: bin.pivot_unix_time, + client_total_tick_time: bin.client_total_tick_time, + player_stat_id: bin.player_stat_id, + ..Default::default() + } + } + + pub fn to_bin(&self) -> PlayerBasicCompBin { + PlayerBasicCompBin { + level: self.level.clone(), + exp: self.exp.clone(), + nickname: self.nickname.clone(), + total_game_time: self.total_game_time.clone(), + trans_no_count: self.trans_no_count.clone(), + is_weather_locked: self.is_weather_locked.clone(), + is_game_time_locked: self.is_game_time_locked.clone(), + persist_stamina_limit: self.persist_stamina_limit.clone(), + cur_persist_stamina: self.cur_persist_stamina.clone(), + cur_temporary_stamina: self.cur_temporary_stamina.clone(), + open_state_map: self.open_state_map.clone().into_iter().collect(), + player_time_ms: self.player_time_ms.clone(), + last_login_time: self.last_login_time.clone(), + register_time: self.register_time.clone(), + total_login_days: self.total_login_days.clone(), + update_login_days_time: self.update_login_days_time.clone(), + reward_taken_level_list: self.reward_taken_level_list.clone(), + language_type: self.language_type.clone(), + client_app_version: self.client_app_version.clone(), + client_device_info: self.client_device_info.clone(), + client_system_version: self.client_system_version.clone(), + is_guest: self.is_guest.clone(), + online_time: self.online_time.clone(), + is_proficient_player: self.is_proficient_player.clone(), + set_language_tag: self.set_language_tag.clone(), + head_image_avatar_id: self.head_image_avatar_id.clone(), + guid_seq_id: self.guid_seq_id.clone(), + is_rebate_mail_sent: self.is_rebate_mail_sent.clone(), + is_rebate_mail_received: self.is_rebate_mail_received.clone(), + register_cps: self.register_cps.clone(), + cur_json_climate_type: self.cur_json_climate_type.clone(), + cur_climate_meter: self.cur_climate_meter.clone(), + last_logout_time: self.last_logout_time.clone(), + data_version: self.data_version.clone(), + last_daily_refresh_time: self.last_daily_refresh_time.clone(), + is_auto_unlock_specific_equip: self.is_auto_unlock_specific_equip.clone(), + profile_picture_costume_id: self.profile_picture_costume_id.clone(), + online_id: self.online_id.clone(), + psn_id: self.psn_id.clone(), + last_login_platform: self.last_login_platform.clone(), + pivot_client_time: self.pivot_client_time.clone(), + pivot_unix_time: self.pivot_unix_time.clone(), + client_total_tick_time: self.client_total_tick_time.clone(), + player_stat_id: self.player_stat_id.clone(), + nickname_audit_bin: None, + } + } +} diff --git a/gameserver/src/player/item/equip.rs b/gameserver/src/player/item/equip.rs new file mode 100644 index 0000000..622338f --- /dev/null +++ b/gameserver/src/player/item/equip.rs @@ -0,0 +1,37 @@ +use proto::item_bin::Detail; +use proto::{EquipBin, ItemBin}; + +use super::BaseItem; + +#[derive(Default)] +pub struct Equip { + pub base: BaseItem, + pub is_locked: bool, +} + +impl Equip { + pub fn to_client(&self, detail: proto::equip::Detail) -> proto::Item { + self.base + .to_client(proto::item::Detail::Equip(proto::Equip { + is_locked: self.is_locked, + detail: Some(detail), + })) + } + + pub fn from_bin(bin: ItemBin, detail: EquipBin) -> Self { + Self { + base: BaseItem::from_bin(bin), + is_locked: detail.is_locked, + } + } + + pub fn to_bin(&self, item_type: u32) -> ItemBin { + let mut item_bin = self.base.to_bin(item_type); + item_bin.detail = Some(Detail::Equip(EquipBin { + is_locked: self.is_locked, + ..Default::default() + })); + + item_bin + } +} diff --git a/gameserver/src/player/item/item.rs b/gameserver/src/player/item/item.rs new file mode 100644 index 0000000..b133453 --- /dev/null +++ b/gameserver/src/player/item/item.rs @@ -0,0 +1,119 @@ +use proto::{ItemBin, ItemParamBin}; + +use super::Weapon; + +pub enum Item { + Weapon(Weapon), +} + +impl Item { + pub fn item_id(&self) -> u32 { + self.base().item_id + } + + pub fn guid(&self) -> u64 { + self.base().guid + } + + pub fn base(&self) -> &BaseItem { + match self { + Item::Weapon(weapon) => &weapon.base.base, + } + } + + pub fn to_client(&self) -> proto::Item { + match self { + Self::Weapon(weapon) => weapon.to_client(), + } + } + + pub fn from_bin(bin: ItemBin) -> Self { + match bin.item_type { + 4 => { + // ugly but saving system is retarded.. (oneof-based polymorphism) + let proto::item_bin::Detail::Equip(equip) = bin.detail.clone().unwrap() else { + panic!("Failed to unwrap EquipBin for Weapon") + }; + let proto::equip_bin::Detail::Weapon(weapon) = equip.detail.clone().unwrap() else { + panic!("Failed to unwrap WeaponBin") + }; + + Item::Weapon(Weapon::from_bin(bin, equip, weapon)) + } + _ => todo!("item type {}", bin.item_type), + } + } + + pub fn to_bin(&self) -> ItemBin { + match self { + Item::Weapon(weapon) => weapon.to_bin(), + } + } +} + +#[allow(dead_code)] +pub struct AddItemResult { + pub item_id: u32, + pub guid: u64, + pub add_count: u32, + pub cur_count: u32, +} + +pub struct ItemParam { + pub item_id: u32, + pub count: u32, + pub level: u32, + pub promote_level: u32, +} + +impl ItemParam { + pub fn from_bin(bin: ItemParamBin) -> Self { + Self { + item_id: bin.item_id, + count: bin.count, + level: bin.level, + promote_level: bin.promote_level, + } + } + + pub fn to_bin(&self) -> ItemParamBin { + ItemParamBin { + item_id: self.item_id, + count: self.count, + level: self.level, + promote_level: self.promote_level, + } + } +} + +#[derive(Default)] +pub struct BaseItem { + pub item_id: u32, + pub guid: u64, +} + +impl BaseItem { + pub fn to_client(&self, detail: proto::item::Detail) -> proto::Item { + proto::Item { + item_id: self.item_id, + guid: self.guid, + detail: Some(detail), + } + } + + pub fn from_bin(bin: ItemBin) -> Self { + Self { + item_id: bin.item_id, + guid: bin.guid, + } + } + + pub fn to_bin(&self, item_type: u32) -> ItemBin { + ItemBin { + item_id: self.item_id, + guid: self.guid, + item_type, + ..Default::default() + } + } +} diff --git a/gameserver/src/player/item/item_store.rs b/gameserver/src/player/item/item_store.rs new file mode 100644 index 0000000..2bc0212 --- /dev/null +++ b/gameserver/src/player/item/item_store.rs @@ -0,0 +1,63 @@ +use std::collections::BTreeMap; + +use proto::{ItemStoreBin, PlayerStoreNotify, StoreType}; + +use crate::player::Player; + +use super::{AddItemResult, Item}; + +#[derive(Default)] +pub struct ItemStore { + pub items: BTreeMap, + pub is_material_item_num_alarmed: bool, +} + +impl ItemStore { + pub fn notify_all_data(&self, player: &Player) { + // TODO: ItemStore::notifyMaxWeight + self.notify_all_item(player); + } + + pub fn notify_all_item(&self, player: &Player) { + player.send_proto(PlayerStoreNotify { + store_type: StoreType::StorePack.into(), + weight_limit: 30000, + item_list: self + .items + .iter() + .map(|(_, item)| item.to_client()) + .collect(), + }) + } + + pub fn force_add_equip_by_add_avatar(&mut self, item: Item) -> AddItemResult { + let result = AddItemResult { + item_id: item.item_id(), + guid: item.guid(), + add_count: 1, + cur_count: 1, + }; + + self.items.insert(item.guid(), item); + result + } + + pub fn from_bin(bin: ItemStoreBin) -> Self { + Self { + items: bin + .item_list + .into_iter() + .map(|bin| (bin.guid, Item::from_bin(bin))) + .collect(), + is_material_item_num_alarmed: bin.is_material_item_num_alarmed, + } + } + + pub fn to_bin(&self) -> ItemStoreBin { + ItemStoreBin { + item_list: self.items.iter().map(|(_, item)| item.to_bin()).collect(), + is_material_item_num_alarmed: self.is_material_item_num_alarmed, + ..Default::default() + } + } +} diff --git a/gameserver/src/player/item/mod.rs b/gameserver/src/player/item/mod.rs new file mode 100644 index 0000000..a122018 --- /dev/null +++ b/gameserver/src/player/item/mod.rs @@ -0,0 +1,10 @@ +mod equip; +mod item; +mod item_store; +mod player_item_comp; +mod weapon; + +pub use equip::Equip; +pub use item::*; +pub use player_item_comp::PlayerItemComp; +pub use weapon::Weapon; diff --git a/gameserver/src/player/item/player_item_comp.rs b/gameserver/src/player/item/player_item_comp.rs new file mode 100644 index 0000000..2edc567 --- /dev/null +++ b/gameserver/src/player/item/player_item_comp.rs @@ -0,0 +1,108 @@ +use std::{ + collections::{BTreeMap, BTreeSet}, + rc::{Rc, Weak}, +}; + +use proto::PlayerItemCompBin; +use tokio::sync::OnceCell; + +use crate::player::Player; + +use super::{item_store::ItemStore, AddItemResult, Equip, Item, ItemParam, Weapon}; + +#[derive(Default)] +pub struct PlayerItemComp { + player: OnceCell>, + pub pack_store: ItemStore, + pub history_item_set: BTreeSet, + pub hcoin: u32, + pub scoin: u32, + pub item_cd_map: BTreeMap, +} + +impl PlayerItemComp { + pub fn set_player(&self, player: Rc) { + self.player.set(Rc::downgrade(&player)).unwrap(); + } + + pub fn player(&self) -> Option> { + self.player.get().map(|p| p.upgrade())? + } + + pub fn init(&mut self) { + // TODO: check item hard limits + } + + pub fn on_login(&mut self, _is_new_player: bool) { + // TODO: Resin changing, ::checkAllMaterialsDelete (?) + } + + pub fn notify_all_data(&self) { + self.pack_store.notify_all_data(&self.player().unwrap()); + } + + pub fn force_add_equip_by_add_avatar(&mut self, item_id: u32) -> AddItemResult { + let item = self.create_item(ItemParam { + item_id, + count: 1, + level: 1, + promote_level: 0, + }); + + self.pack_store.force_add_equip_by_add_avatar(item) + } + + pub fn create_item(&mut self, item_param: ItemParam) -> Item { + self.create_item_batch(vec![item_param]).remove(0) + } + + pub fn create_item_batch(&mut self, item_param_vec: Vec) -> Vec { + let mut created_items = Vec::with_capacity(item_param_vec.len()); + for param in item_param_vec { + let guid = self + .player() + .unwrap() + .player_basic_comp + .borrow_mut() + .gen_guid(); + // TODO: currently only weapons are supported! + + created_items.push(Item::Weapon(Weapon { + base: Equip { + is_locked: false, + base: super::BaseItem { + item_id: param.item_id, + guid, + }, + }, + level: param.level, + promote_level: param.promote_level, + ..Default::default() + })); + } + + created_items + } + + pub fn from_bin(bin: PlayerItemCompBin) -> Self { + Self { + player: OnceCell::new(), + pack_store: ItemStore::from_bin(bin.pack_store.unwrap_or_default()), + history_item_set: bin.history_item_list.into_iter().collect(), + hcoin: bin.hcoin, + scoin: bin.scoin, + item_cd_map: bin.item_cd_map.into_iter().collect(), + } + } + + pub fn to_bin(&self) -> PlayerItemCompBin { + PlayerItemCompBin { + pack_store: Some(self.pack_store.to_bin()), + history_item_list: self.history_item_set.clone().into_iter().collect(), + hcoin: self.hcoin, + scoin: self.scoin, + item_cd_map: self.item_cd_map.clone().into_iter().collect(), + ..Default::default() + } + } +} diff --git a/gameserver/src/player/item/weapon.rs b/gameserver/src/player/item/weapon.rs new file mode 100644 index 0000000..23166fa --- /dev/null +++ b/gameserver/src/player/item/weapon.rs @@ -0,0 +1,55 @@ +use std::collections::BTreeMap; + +use proto::{EquipBin, ItemBin, WeaponBin}; + +use super::Equip; + +#[derive(Default)] +pub struct Weapon { + pub base: Equip, + pub exp: u32, + pub level: u32, + pub promote_level: u32, + pub affix_map: BTreeMap, +} + +impl Weapon { + pub fn to_client(&self) -> proto::Item { + self.base + .to_client(proto::equip::Detail::Weapon(proto::Weapon { + level: self.level, + exp: self.exp, + promote_level: self.promote_level, + affix_map: self.affix_map.clone().into_iter().collect(), + ..Default::default() + })) + } + + pub fn from_bin(bin: ItemBin, equip_bin: EquipBin, detail: WeaponBin) -> Self { + Self { + level: detail.level, + exp: detail.exp, + promote_level: detail.promote_level, + affix_map: detail.affix_map.into_iter().collect(), + base: Equip::from_bin(bin, equip_bin), + } + } + + pub fn to_bin(&self) -> ItemBin { + let mut item = self.base.to_bin(self.get_item_type()); + if let Some(proto::item_bin::Detail::Equip(equip)) = item.detail.as_mut() { + equip.detail = Some(proto::equip_bin::Detail::Weapon(WeaponBin { + level: self.level, + promote_level: self.promote_level, + exp: self.exp, + affix_map: self.affix_map.clone().into_iter().collect(), + })) + } + + item + } + + pub fn get_item_type(&self) -> u32 { + 4 + } +} diff --git a/gameserver/src/player/mod.rs b/gameserver/src/player/mod.rs new file mode 100644 index 0000000..f2a7c80 --- /dev/null +++ b/gameserver/src/player/mod.rs @@ -0,0 +1,13 @@ +mod player; +mod player_coro_exec; +mod player_login_comp; +mod player_mgr; + +pub mod avatar; +pub mod basic; +pub mod item; + +pub use player::Player; +pub use player_coro_exec::PlayerCoroExec; +pub use player_login_comp::PlayerLoginComp; +pub use player_mgr::PlayerMgr; diff --git a/gameserver/src/player/player.rs b/gameserver/src/player/player.rs new file mode 100644 index 0000000..2213357 --- /dev/null +++ b/gameserver/src/player/player.rs @@ -0,0 +1,908 @@ +use std::{ + cell::{Cell, RefCell}, + rc::{Rc, Weak}, + sync::{self, mpsc::Receiver, Arc}, +}; + +use common::{net::tools::Packet, tools::time_utils}; +use data::{ + get_default_world_main_scene_id, + math_def::Vector3, + prop_type::{ + PROP_CUR_PERSIST_STAMINA, PROP_IS_FLYABLE, PROP_IS_GAME_TIME_LOCKED, + PROP_IS_SPRING_AUTO_USE, PROP_IS_TRANSFERABLE, PROP_IS_WEATHER_LOCKED, PROP_MAX_STAMINA, + PROP_PLAYER_EXP, PROP_PLAYER_HCOIN, PROP_PLAYER_LEVEL, PROP_PLAYER_SCOIN, + PROP_SPRING_AUTO_USE_PERCENT, + }, + AvatarUseType, +}; + +use prost::Message; +use proto::{ + AbilitySyncStateInfo, AvatarEnterSceneInfo, CmdID, DoSetPlayerBornDataNotify, + EnterSceneDoneReq, EnterSceneDoneRsp, EnterScenePeerNotify, EnterSceneReadyReq, EnterType, + MpLevelEntityInfo, PacketHead, PingReq, PingRsp, PlayerData, PlayerDataBin, PlayerDataNotify, + PlayerEnterSceneInfoNotify, PlayerEnterSceneNotify, PlayerLoginRsp, PostEnterSceneReq, + PostEnterSceneRsp, Retcode, SavePlayerDataReq, SceneInitFinishReq, SetPlayerBornDataReq, + TeamEnterSceneInfo, VisionType, YSMessage, +}; +use rand::RngCore; + +use crate::{ + creature::{property::append_int_prop_value, Creature, LifeState}, + entity::{Entity, VisionContext}, + gadget::WeaponGadget, + gameserver_service, handler, + network::PlayerSessionProxy, + scene::{EnterSceneState, PlayerSceneComp, Scene}, +}; + +use super::{ + avatar::PlayerAvatarComp, basic::PlayerBasicComp, item::PlayerItemComp, PlayerCoroExec, + PlayerLoginComp, +}; + +pub struct Player { + pub uid: u32, + session: RefCell>, + pub player_basic_comp: Rc>, + pub player_login_comp: Rc>, + pub player_avatar_comp: Rc>, + pub player_scene_comp: Rc>, + pub player_item_comp: Rc>, + pub peer_id: Cell, + last_recv_ping_time: Cell, + last_save_time: Cell, + is_coro_stopping: Cell, +} + +impl Player { + pub fn construct_player(uid: u32) -> Self { + Self { + uid, + session: RefCell::new(sync::Weak::new()), + player_basic_comp: Rc::new(RefCell::new(PlayerBasicComp::default())), + player_login_comp: Rc::new(RefCell::new(PlayerLoginComp::default())), + player_avatar_comp: Rc::new(RefCell::new(PlayerAvatarComp::default())), + player_scene_comp: Rc::new(RefCell::new(PlayerSceneComp::default())), + player_item_comp: Rc::new(RefCell::new(PlayerItemComp::default())), + peer_id: Cell::new(0), + last_recv_ping_time: Cell::new(0), + last_save_time: Cell::new(0), + is_coro_stopping: Cell::new(false), + } + } + + pub fn login( + &self, + is_new_player: bool, + is_relogin: bool, + target_uid: u32, + target_home_owner_uid: u32, + is_client_relogin: bool, + ) { + tracing::info!("Player::login uid:{} is_new_player:{} is_relogin:{} target_uid:{} is_client_relogin:{}", self.uid, is_new_player, is_relogin, target_uid, is_client_relogin); + + self.update_last_ping_time(); + self.player_scene_comp.borrow_mut().pre_login(is_relogin); + if is_new_player { + self.first_login(); + } + + // TODO: checkLuaShellOnLogin + + self.player_basic_comp.borrow_mut().on_login(is_new_player); + self.player_login_comp.borrow_mut().on_login(is_new_player); + self.player_item_comp.borrow_mut().on_login(is_new_player); + self.player_avatar_comp.borrow_mut().on_login(is_new_player); + self.player_scene_comp.borrow_mut().on_login(is_new_player); + + // TODO: PlayerSceneComp::afterLogin + + if self.player_avatar_comp.borrow().get_avatar_count() == 0 { + self.send_proto(DoSetPlayerBornDataNotify::default()); + } else { + self.init_and_begin_enter_scene( + false, + target_uid, + target_home_owner_uid, + is_client_relogin, + ); + } + } + + fn first_login(&self) { + self.player_basic_comp.borrow_mut().on_first_login(); + self.player_avatar_comp.borrow_mut().on_first_login(); + self.player_scene_comp.borrow_mut().on_first_login(); + } + + pub fn block_stop_coroutine(&self) -> Result<(), ()> { + if self.is_coro_stopping.get() { + tracing::error!("block_stop_coroutine called repeated, uid:{}", self.uid); + return Err(()); + } + + self.is_coro_stopping.set(true); + Ok(()) + } + + fn coroutine_loop(uid: u32, rx: Receiver, session: Arc) { + let player = Rc::new(Self::construct_player(uid)); + player.set_session(session, false); + + loop { + if player.is_coro_stopping.get() { + break; + } + + let packet = rx.recv().unwrap(); + + match packet.cmd_id { + PlayerLoginRsp::CMD_ID => { + let rsp: PlayerLoginRsp = packet.get_proto().unwrap(); + let player_data = PlayerData::decode(rsp.player_data.as_ref()).unwrap(); + player.from_bin(player_data).unwrap(); + player.init(); + + player.login(rsp.is_new_player, false, 0, 0, false); + player.send_proto(rsp); + + // First post-login save + player.save_to_db(); + player.last_save_time.set(time_utils::get_now()); + } + _ => { + let _ = handler::process_packet(&player, packet); + } + } + + // TODO: configurable save time? + if time_utils::get_now() - player.last_save_time.get() > 30 { + player.save_to_db(); + player.last_save_time.set(time_utils::get_now()); + } + } + } + + pub fn start(session: Arc, uid: u32) -> PlayerCoroExec { + PlayerCoroExec::start(move |rx| Self::coroutine_loop(uid, rx, session.clone())) + } + + pub fn set_session(&self, session: Arc, _is_relogin: bool) { + *self.session.borrow_mut() = Arc::downgrade(&session); + } + + pub fn send_proto(&self, proto: impl YSMessage) { + self.session + .borrow() + .upgrade() + .unwrap() + .send_packet(Packet { + cmd_id: proto.get_cmd_id(), + head: PacketHead::default(), + recv_vec: proto.encode_to_vec(), + }); + } + + pub fn on_ping_req(&self, req: PingReq, rsp: &mut PingRsp) { + tracing::info!("[PING] uid:{}, seq:{}", self.uid, req.seq); + rsp.retcode = Retcode::RetSucc.into(); + rsp.seq = req.seq; + rsp.client_time = req.client_time; + self.update_last_ping_time(); + } + + pub fn set_player_born_data(&self, req: SetPlayerBornDataReq) -> Result<(), Retcode> { + if self.player_avatar_comp.borrow().get_avatar_count() != 0 { + return Err(Retcode::RetRepeatSetPlayerBornData); + } + + self.player_basic_comp + .borrow() + .check_nick_name(&req.nick_name)?; + + if self + .player_avatar_comp + .borrow_mut() + .set_born_avatar(req.avatar_id) + .is_err() + { + return Err(Retcode::RetAvatarIdError); + } + + self.player_basic_comp.borrow_mut().nickname = req.nick_name; + self.init_and_begin_enter_scene(false, 0, 0, false); + + Ok(()) + } + + pub fn check_is_in_safe_state_for_change_team(&self) -> Result<(), Retcode> { + Ok(()) + } + + pub fn init_and_begin_enter_scene( + &self, + _is_relogin: bool, + _target_uid: u32, + _target_home_owner_uid: u32, + _is_client_relogin: bool, + ) { + // Unlock all stuff here + // TODO: MUIP/GM for this + + self.player_avatar_comp.borrow_mut().is_flyable = true; + self.player_avatar_comp.borrow_mut().is_transferable = true; + self.player_avatar_comp.borrow_mut().is_spring_auto_use = true; + self.player_avatar_comp.borrow_mut().spring_auto_use_percent = 50; + + for open_state in data::iter_open_state_data() { + self.player_basic_comp + .borrow_mut() + .open_state_map + .insert(open_state.id, 1); + } + + for avatar in data::iter_avatar_data() { + if avatar.use_type == AvatarUseType::AvatarFormal { + if !self.player_avatar_comp.borrow().has_avatar(avatar.id, 1) { + self.player_avatar_comp + .borrow_mut() + .add_formal_avatar(avatar.id, false, 1, 0) + .unwrap(); + } + } + } + + self.notify_all_data(); + + let cur_scene_id = get_default_world_main_scene_id(); + + let cur_scene = { + let mut scene_comp = self.player_scene_comp.borrow_mut(); + scene_comp.dest_world_ptr = Some(scene_comp.own_world.clone()); + + let dest_world = scene_comp.own_world.borrow(); + let cur_scene = dest_world.scene_map.get(&cur_scene_id).unwrap().clone(); + cur_scene.borrow_mut().base_mut().cur_world_wtr = Rc::downgrade(&scene_comp.own_world); + + cur_scene + }; + + let (pos, rot) = { + let cur_scene = cur_scene.borrow_mut(); + cur_scene.base().get_last_owner_location() + }; + + self.begin_enter_scene( + cur_scene, + pos, + rot, + EnterType::EnterSelf, + VisionType::VisionMeet, + ); + } + + fn begin_enter_scene( + &self, + dest_scene_ptr: Rc>, + pos: Vector3, + rot: Vector3, + enter_type: EnterType, + vision_type: VisionType, + ) { + let mut scene_comp = self.player_scene_comp.borrow_mut(); + if scene_comp.enter_scene_state != EnterSceneState::ENTER_SCENE_NONE + && scene_comp.enter_scene_state != EnterSceneState::ENTER_SCENE_POST + { + tracing::warn!( + "begin_enter_scene with last one not finish, uid:{}", + self.uid + ); + } + + self.mark_destination( + &dest_scene_ptr, + pos.clone(), + rot, + enter_type, + vision_type, + &mut scene_comp, + ); + + let enter_scene_token = match scene_comp.enter_scene_token { + 0 => rand::thread_rng().next_u32() & 0xFFFF, // OG: gettid lmfao + _ => scene_comp.enter_scene_token.wrapping_add(100), + }; + + scene_comp.enter_scene_token = enter_scene_token; + + let scene = dest_scene_ptr.borrow(); + let scene_id = scene.base().scene_id; + let notify = PlayerEnterSceneNotify { + scene_id, + pos: Some(pos.to_client()), + scene_transaction: scene.base().scene_transaction.clone(), + enter_scene_token, + scene_begin_time: scene.base().begin_time_ms, + r#type: enter_type.into(), + target_uid: self.uid, + ..Default::default() + }; + + scene_comp.enter_scene_state = EnterSceneState::ENTER_SCENE_NOTIFY; + + tracing::info!("[EnterScene] BeginEnterScene uid:{} enter_type:{:?} token:{} dest_scene_id:{} pos:{:?} target_uid:{}", self.uid, enter_type, notify.enter_scene_token, scene_id, pos, 0); + + self.send_proto(notify); + } + + pub fn enter_scene_ready(self: &Rc, req: &EnterSceneReadyReq) -> Result<(), Retcode> { + { + let scene_comp = self.player_scene_comp.borrow(); + + if scene_comp.enter_scene_token != req.enter_scene_token { + tracing::info!( + "[EnterScene] token not match, client_token:{} server_token:{}", + req.enter_scene_token, + scene_comp.enter_scene_token + ); + + return Err(Retcode::RetEnterSceneTokenInvalid); + } + + if scene_comp.enter_scene_state != EnterSceneState::ENTER_SCENE_NOTIFY { + tracing::warn!("EnterSceneState is not EnterSceneNotify, uid:{}", self.uid); + return Err(Retcode::RetFail); + } + }; + + self.pre_enter_scene()?; + + let mut scene_comp = self.player_scene_comp.borrow_mut(); + let dest_scene = scene_comp.get_dest_scene().unwrap(); + let dest_scene = dest_scene.borrow(); + let scene = dest_scene.base(); + let notify = EnterScenePeerNotify { + enter_scene_token: scene_comp.enter_scene_token, + dest_scene_id: scene_comp.dest_scene_id, + host_peer_id: scene.get_host_peer_id().unwrap_or_default(), + peer_id: scene.get_peer_id(self.uid).unwrap_or_default(), + }; + + tracing::info!( + "[EnterScene] EnterSceneReady uid:{}, dest_scene_id:{}, peer_id:{}, host_peer_id:{}", + self.uid, + notify.dest_scene_id, + notify.peer_id, + notify.host_peer_id + ); + + scene_comp.enter_scene_state = EnterSceneState::ENTER_SCENE_READY; + self.send_proto(notify); + + Ok(()) + } + + pub fn scene_init_finish(self: &Rc, req: &SceneInitFinishReq) -> Result<(), Retcode> { + let scene_comp = self.player_scene_comp.borrow(); + + if scene_comp.enter_scene_token != req.enter_scene_token { + tracing::warn!( + "[ENTER_SCENE] token not match, client_token:{} server_token:{}", + req.enter_scene_token, + scene_comp.enter_scene_token + ); + + return Err(Retcode::RetEnterSceneTokenInvalid); + } + + if scene_comp.enter_scene_state != EnterSceneState::ENTER_SCENE_READY { + tracing::warn!("EnterSceneState is not EnterSceneReady, uid:{}", self.uid); + return Err(Retcode::RetFail); + } + + let dest_pos = scene_comp.dest_pos.clone(); + let dest_rot = scene_comp.dest_rot.clone(); + let enter_type = scene_comp.dest_enter_type; + let vision_type = scene_comp.dest_vision_type; + let is_need_enter_world = { + let Some(dest_scene) = scene_comp.get_dest_scene() else { + tracing::error!("get_dest_scene failed, uid:{}", self.uid); + return Err(Retcode::RetFail); + }; + + let is_reenter_dungeon = match scene_comp.get_cur_scene() { + Some(_) => false, + None => matches!(*dest_scene.borrow(), Scene::Dungeon(_)), + }; + !is_reenter_dungeon + }; + + drop(scene_comp); + + if is_need_enter_world { + let (world_owner_uid, dest_world_ptr) = { + let scene_comp = self.player_scene_comp.borrow(); + let owner_uid = scene_comp + .dest_world_ptr + .as_ref() + .unwrap() + .borrow() + .get_owner_uid(); + let dest_world_ptr = scene_comp.dest_world_ptr.clone().unwrap(); + + (owner_uid, dest_world_ptr) + }; + + let mut dest_world = dest_world_ptr.borrow_mut(); + + if let Err(ret) = dest_world.player_enter(self) { + tracing::info!( + "uid: {} player_enter world fails, owner_uid: {}", + self.uid, + world_owner_uid + ); + return Err(ret); + } + } + + let dest_scene = self.player_scene_comp.borrow().get_dest_scene(); + self.player_enter_scene(dest_scene, dest_pos, dest_rot, enter_type, vision_type)?; + self.player_scene_comp.borrow_mut().enter_scene_state = EnterSceneState::ENTER_SCENE_INIT; + + Ok(()) + } + + pub fn enter_scene_done(self: &Rc, req: &EnterSceneDoneReq) -> Result<(), Retcode> { + let mut scene_comp = self.player_scene_comp.borrow_mut(); + + if scene_comp.enter_scene_token != req.enter_scene_token { + tracing::warn!( + "[ENTER_SCENE] token not match, client_token:{} server_token:{}", + req.enter_scene_token, + scene_comp.enter_scene_token + ); + return Err(Retcode::RetEnterSceneTokenInvalid); + } + + if scene_comp.enter_scene_state != EnterSceneState::ENTER_SCENE_INIT { + tracing::warn!("EnterSceneState is not EnterSceneInit, uid:{}", self.uid); + return Err(Retcode::RetFail); + } + + let Some(cur_scene) = scene_comp.get_cur_scene() else { + tracing::warn!("get_cur_scene is None, uid:{}", self.uid); + return Err(Retcode::RetFail); + }; + + let vision_type = scene_comp.dest_vision_type; + let dest_pos = scene_comp.dest_pos.clone(); + let dest_rot = scene_comp.dest_rot.clone(); + + let Some(cur_avatar_ptr) = ({ + let avatar_comp = self.player_avatar_comp.borrow(); + avatar_comp.get_cur_avatar() + }) else { + tracing::warn!("[EnterScene] get_cur_avatar failed, uid:{}", self.uid); + return Err(Retcode::RetFail); + }; + + { + let mut cur_avatar = cur_avatar_ptr.borrow_mut(); + if cur_avatar.get_life_state() == LifeState::LifeDead { + cur_avatar.set_life_state(LifeState::LifeAlive); + + if cur_avatar.get_cur_hp() == 0.0 { + cur_avatar.set_cur_hp(1.0); + } + } + + cur_avatar.set_position(dest_pos.clone()); + cur_avatar.set_rotation(dest_rot.clone()); + cur_avatar.set_last_valid_position(dest_pos); + cur_avatar.set_last_valid_rotation(dest_rot); + } + + let vision_context = VisionContext::new(vision_type); + if cur_scene + .borrow_mut() + .entity_appear(&(cur_avatar_ptr as Rc>), vision_context) + .is_err() + { + tracing::warn!("[EnterScene] entity_appear failed, uid:{}", self.uid); + return Err(Retcode::RetFail); + } + + scene_comp.enter_scene_state = EnterSceneState::ENTER_SCENE_DONE; + // TODO: scene_comp.notify_current_weather(); + + // Why here but ok.. + self.send_proto(EnterSceneDoneRsp { + retcode: Retcode::RetSucc.into(), + enter_scene_token: req.enter_scene_token, + }); + + tracing::info!("[EnterScene] enter_scene_done succ, uid:{}", self.uid); + + Ok(()) + } + + pub fn post_enter_scene(self: &Rc, req: &PostEnterSceneReq) -> Result<(), Retcode> { + { + let scene_comp = self.player_scene_comp.borrow(); + + if scene_comp.enter_scene_token != req.enter_scene_token { + tracing::warn!( + "[ENTER_SCENE] token not match, client_token:{} server_token:{}", + req.enter_scene_token, + scene_comp.enter_scene_token + ); + return Err(Retcode::RetEnterSceneTokenInvalid); + } + + if scene_comp.enter_scene_state != EnterSceneState::ENTER_SCENE_DONE { + tracing::warn!("EnterSceneState is not EnterSceneDone, uid:{}", self.uid); + return Err(Retcode::RetFail); + } + + if scene_comp.get_cur_scene().is_none() { + tracing::warn!("get_cur_scene is None, uid:{}", self.uid); + return Err(Retcode::RetFail); + }; + } + + self.clear_destination(); + self.player_scene_comp.borrow_mut().enter_scene_state = EnterSceneState::ENTER_SCENE_POST; + // TODO: self.player_basic_comp.borrow_mut().is_in_transfer = false; + + tracing::info!("[EnterScene] post_enter_scene succ, uid:{}", self.uid); + + self.send_proto(PostEnterSceneRsp { + retcode: Retcode::RetSucc.into(), + enter_scene_token: req.enter_scene_token, + }); + + Ok(()) + } + + fn player_enter_scene( + self: &Rc, + dest_scene_ptr: Option>>, + pos: Vector3, + rot: Vector3, + _enter_type: EnterType, + _vision_type: VisionType, + ) -> Result<(), Retcode> { + let Some(dest_scene_ptr) = dest_scene_ptr else { + tracing::error!("dest_scene_ptr is None, uid: {}", self.uid); + return Err(Retcode::RetFail); + }; + + let cur_avatar_team = self.init_enter_scene_avatar(&mut dest_scene_ptr.borrow_mut())?; + + let (cur_avatar_team, appear_avatar) = { + let avatar_comp = self.player_avatar_comp.borrow(); + let avatar_team = avatar_comp + .avatar_team_map + .get(&avatar_comp.cur_avatar_team_id) + .unwrap(); + + let cur_avatar_team = cur_avatar_team + .iter() + .map(|guid| avatar_comp.avatar_map.get(guid).unwrap().clone()) + .collect(); + + let appear_avatar = avatar_comp + .avatar_map + .get(&avatar_team.borrow().last_cur_avatar_guid) + .unwrap() + .clone(); + + (cur_avatar_team, appear_avatar) + }; + + if dest_scene_ptr + .borrow_mut() + .player_enter(self, pos, rot, false, cur_avatar_team, &appear_avatar) + .is_err() + { + tracing::error!("player_enter fails, uid: {}", self.uid); + return Err(Retcode::RetEnterSceneFail); + } + + self.player_scene_comp.borrow_mut().cur_scene_wtr = Rc::downgrade(&dest_scene_ptr); + + Ok(()) + } + + pub fn notify_player_enter_scene_info(&self, scene: &mut Scene) { + use crate::entity::Entity; + // TODO: OG server gets scene from PlayerSceneComp here + + let cur_avatar_entity_id = { + let Some(cur_avatar) = self.player_avatar_comp.borrow().get_cur_avatar() else { + tracing::error!("cur_avatar_ptr is None"); + return; + }; + + let cur_avatar = cur_avatar.borrow(); + cur_avatar.entity_id() + }; + + let mut notify = PlayerEnterSceneInfoNotify::default(); + notify.cur_avatar_entity_id = cur_avatar_entity_id; + notify.enter_scene_token = self.player_scene_comp.borrow().enter_scene_token; + + { + let avatar_comp = self.player_avatar_comp.borrow(); + for avatar in avatar_comp.get_cur_avatar_team_vec() { + let avatar = avatar.borrow(); + let weapon_gadget = avatar + .base_avatar() + .equip_comp + .weapon_gadget + .as_ref() + .unwrap(); + + let weapon_gadget = weapon_gadget.borrow(); + notify.avatar_enter_info.push(AvatarEnterSceneInfo { + avatar_guid: avatar.base_avatar().guid, + weapon_guid: match &*weapon_gadget { + WeaponGadget::Avatar(gadget) => gadget.weapon_guid, + //_ => 0, + }, + avatar_entity_id: avatar.entity_id(), + weapon_entity_id: weapon_gadget.entity_id(), + aobhcppmkma: Some(AbilitySyncStateInfo::default()), + pnanfpcioko: Some(AbilitySyncStateInfo::default()), + buff_id_list: Vec::with_capacity(0), + server_buff_list: Vec::with_capacity(0), + }); + } + + let Some(avatar_team_entity) = avatar_comp.team_entity.upgrade() else { + tracing::error!("team_entity is None"); + return; + }; + + let mut team_enter_info = TeamEnterSceneInfo::default(); + avatar_team_entity.borrow().to_client(&mut team_enter_info); + notify.team_enter_info = Some(team_enter_info); + } + + let mp_level_entity = scene.get_or_create_mp_level_entity(); + let mut mp_level_entity_info = MpLevelEntityInfo::default(); + mp_level_entity + .borrow() + .to_client(&mut mp_level_entity_info); + + notify.mp_level_entity_info = Some(mp_level_entity_info); + self.send_proto(notify); + } + + fn init_enter_scene_avatar(&self, dest_scene_ptr: &mut Scene) -> Result, Retcode> { + // TODO: special avatars for dungeons/challenges + + let avatar_comp = self.player_avatar_comp.borrow(); + let cur_avatar_team = avatar_comp.get_cur_avatar_team_with_temp_avatar(); + + let cur_world_ptr = dest_scene_ptr.base_mut().cur_world_wtr.upgrade().unwrap(); + let mut cur_world = cur_world_ptr.borrow_mut(); + + let _team_avatar_vec = cur_world + .scene_team + .team_avatar_map + .get_mut(&self.uid) + .unwrap(); + + /* TODO: check if this actually should be done here, I doubt tbh + * cur_avatar_team.iter().for_each(|guid| { + team_avatar_vec.push(crate::scene::SceneTeamAvatar { + uid: self.uid, + avatar_guid: *guid, + }) + });*/ + + // TODO: avatar_comp.is_all_avatar_dead() -> revive + + Ok(cur_avatar_team) + } + + fn pre_enter_scene(self: &Rc) -> Result<(), Retcode> { + let scene_comp = self.player_scene_comp.borrow(); + + let Some(mut dest_world_ptr) = scene_comp.dest_world_ptr.as_ref().map(|d| d.borrow_mut()) + else { + tracing::error!("dest_world_ptr is None, uid: {}", self.uid); + return Err(Retcode::RetFail); + }; + + dest_world_ptr.player_pre_enter(self).map_err(|retcode| { + tracing::warn!( + "uid: {} pre-enter world fails, owner: {}", + self.uid, + dest_world_ptr.get_owner_uid() + ); + retcode + })?; + + scene_comp + .get_dest_scene() + .unwrap() + .borrow_mut() + .base_mut() + .player_pre_enter(self.clone()) + .map_err(|retcode| { + tracing::warn!("[EnterScene] playerPreEnter failed, uid:{}", self.uid); + retcode + })?; + + Ok(()) + } + + fn mark_destination( + &self, + dest_scene_ptr: &Rc>, + pos: Vector3, + rot: Vector3, + enter_type: EnterType, + vision_type: VisionType, + comp: &mut PlayerSceneComp, + ) { + comp.dest_pos = pos; + comp.dest_rot = rot; + comp.set_dest_scene(Rc::downgrade(dest_scene_ptr)); + comp.dest_enter_type = enter_type; + comp.dest_vision_type = vision_type; + } + + fn clear_destination(&self) { + let mut comp = self.player_scene_comp.borrow_mut(); + comp.set_dest_scene(Weak::new()); + comp.dest_enter_type = EnterType::EnterNone; + comp.dest_vision_type = VisionType::VisionNone; + } + + fn notify_all_data(&self) { + self.notify_player_data(); + + self.player_basic_comp.borrow().notify_all_data(); + self.player_item_comp.borrow().notify_all_data(); + self.player_avatar_comp.borrow().notify_all_data(); + } + + fn notify_player_data(&self) { + let mut notify = PlayerDataNotify::default(); + + let basic_comp = self.player_basic_comp.borrow(); + let avatar_comp = self.player_avatar_comp.borrow(); + let item_comp = self.player_item_comp.borrow(); + + notify.nick_name = basic_comp.nickname.clone(); + notify.server_time = time_utils::get_now(); + + let map = &mut notify.prop_map; + append_int_prop_value( + map, + PROP_IS_SPRING_AUTO_USE, + avatar_comp.is_spring_auto_use.into(), + ); + append_int_prop_value( + map, + PROP_SPRING_AUTO_USE_PERCENT, + avatar_comp.spring_auto_use_percent.into(), + ); + append_int_prop_value(map, PROP_IS_FLYABLE, avatar_comp.is_flyable.into()); + append_int_prop_value( + map, + PROP_IS_TRANSFERABLE, + avatar_comp.is_transferable.into(), + ); + append_int_prop_value( + map, + PROP_IS_WEATHER_LOCKED, + basic_comp.is_weather_locked.into(), + ); + append_int_prop_value( + map, + PROP_IS_GAME_TIME_LOCKED, + basic_comp.is_game_time_locked.into(), + ); + append_int_prop_value(map, PROP_PLAYER_LEVEL, basic_comp.level.into()); + append_int_prop_value(map, PROP_PLAYER_EXP, basic_comp.exp.into()); + append_int_prop_value(map, PROP_PLAYER_HCOIN, item_comp.hcoin.into()); + append_int_prop_value(map, PROP_PLAYER_SCOIN, item_comp.scoin.into()); + append_int_prop_value(map, PROP_MAX_STAMINA, 10000); + append_int_prop_value(map, PROP_CUR_PERSIST_STAMINA, 10000); + + self.send_proto(notify); + } + + fn update_last_ping_time(&self) { + self.last_recv_ping_time.set(time_utils::get_now()); + } + + pub fn save_to_db(&self) { + use common::{net::ServiceType, ServiceQualifier}; + let player_data = self.to_bin(); + + if let Err(err) = gameserver_service() + .service_box + .push_packet_to_service_blocking( + ServiceQualifier::Type(ServiceType::Dbgate), + Packet::new( + SavePlayerDataReq { + player_data: player_data.encode_to_vec(), + save_stat_id: 0, // TODO + }, + PacketHead { + user_id: self.uid, + user_session_id: self + .session + .borrow() + .upgrade() + .map(|s| s.get_gateserver_session_id()) + .unwrap_or_default(), + ..Default::default() + }, + ), + ) + { + tracing::warn!("save_to_db failed, uid: {}, err: {err}", self.uid); + } + } + + pub fn from_bin(&self, data: PlayerData) -> Result<(), prost::DecodeError> { + // TODO: PlayerData::bin zlib + let bin = PlayerDataBin::decode(&*data.bin)?; + + *self.player_basic_comp.borrow_mut() = + PlayerBasicComp::from_bin(bin.basic_bin.unwrap_or_default()); + *self.player_login_comp.borrow_mut() = + PlayerLoginComp::from_bin(bin.login_bin.unwrap_or_default()); + *self.player_avatar_comp.borrow_mut() = + PlayerAvatarComp::from_bin(bin.avatar_bin.unwrap_or_default()); + *self.player_item_comp.borrow_mut() = + PlayerItemComp::from_bin(bin.item_bin.unwrap_or_default()); + *self.player_scene_comp.borrow_mut() = + PlayerSceneComp::from_bin(bin.scene_bin.unwrap_or_default()); + + Ok(()) + } + + pub fn to_bin(&self) -> PlayerData { + let mut bin = PlayerDataBin::default(); + bin.basic_bin = Some(self.player_basic_comp.borrow().to_bin()); + bin.login_bin = Some(self.player_login_comp.borrow().to_bin()); + bin.avatar_bin = Some(self.player_avatar_comp.borrow().to_bin()); + bin.item_bin = Some(self.player_item_comp.borrow().to_bin()); + bin.scene_bin = Some(self.player_scene_comp.borrow().to_bin()); + + let basic_comp = self.player_basic_comp.borrow(); + PlayerData { + uid: self.uid, + nickname: basic_comp.nickname.clone(), + level: basic_comp.level, + exp: basic_comp.exp, + bin: bin.encode_to_vec(), + ..Default::default() + } + } + + pub fn init(self: &Rc) { + self.player_basic_comp.borrow_mut().set_player(self.clone()); + self.player_login_comp.borrow_mut().set_player(self.clone()); + self.player_avatar_comp + .borrow_mut() + .set_player(self.clone()); + self.player_item_comp.borrow_mut().set_player(self.clone()); + self.player_scene_comp.borrow_mut().set_player(self.clone()); + + self.player_basic_comp.borrow_mut().init(); + self.player_login_comp.borrow_mut().init(); + self.player_avatar_comp.borrow_mut().init(); + self.player_item_comp.borrow_mut().init(); + self.player_scene_comp.borrow_mut().init(); + } +} diff --git a/gameserver/src/player/player_coro_exec.rs b/gameserver/src/player/player_coro_exec.rs new file mode 100644 index 0000000..b790d8d --- /dev/null +++ b/gameserver/src/player/player_coro_exec.rs @@ -0,0 +1,25 @@ +use std::{ + sync::mpsc::{self, Receiver, Sender}, + thread, +}; + +use common::net::tools::Packet; + +pub struct PlayerCoroExec { + tx: Sender, +} + +impl PlayerCoroExec { + pub fn start) -> () + Send>(coro_loop_func: F) -> Self { + let (tx, rx) = mpsc::channel(); + thread::spawn(move || coro_loop_func(rx)); + + Self { tx } + } + + pub fn push_packet(&self, packet: Packet) { + let _ = self.tx.send(packet).inspect_err(|err| { + tracing::error!("PlayerCoroExec: tx.send() failed: {err}"); + }); + } +} diff --git a/gameserver/src/player/player_login_comp.rs b/gameserver/src/player/player_login_comp.rs new file mode 100644 index 0000000..b196537 --- /dev/null +++ b/gameserver/src/player/player_login_comp.rs @@ -0,0 +1,56 @@ +use std::rc::{Rc, Weak}; + +use proto::PlayerLoginCompBin; +use tokio::sync::OnceCell; + +use super::Player; + +#[derive(Default)] +pub struct PlayerLoginComp { + player: OnceCell>, + pub taken_login_reward_config_list: Vec, + pub last_login_refresh_time: u32, + pub recv_questionnaire_mail_config_list: Vec, + pub last_recv_questionnaire_mail_time: u32, +} + +impl PlayerLoginComp { + pub fn set_player(&self, player: Rc) { + self.player.set(Rc::downgrade(&player)).unwrap(); + } + + #[allow(dead_code)] + pub fn player(&self) -> Option> { + self.player.get().map(|p| p.upgrade())? + } + + pub fn init(&mut self) {} + + pub fn on_login(&mut self, is_new_player: bool) { + self.refresh_login_reward(true); + self.refresh_questionnaire_mail(is_new_player); + } + + // TODO + fn refresh_login_reward(&mut self, _is_login: bool) {} + fn refresh_questionnaire_mail(&mut self, _is_new_player: bool) {} + + pub fn from_bin(bin: PlayerLoginCompBin) -> Self { + Self { + player: OnceCell::new(), + taken_login_reward_config_list: bin.taken_login_reward_config_list, + last_login_refresh_time: bin.last_login_refresh_time, + recv_questionnaire_mail_config_list: bin.recv_questionnaire_mail_config_list, + last_recv_questionnaire_mail_time: bin.last_recv_questionnaire_mail_time, + } + } + + pub fn to_bin(&self) -> PlayerLoginCompBin { + PlayerLoginCompBin { + taken_login_reward_config_list: self.taken_login_reward_config_list.clone(), + last_login_refresh_time: self.last_login_refresh_time, + recv_questionnaire_mail_config_list: self.recv_questionnaire_mail_config_list.clone(), + last_recv_questionnaire_mail_time: self.last_recv_questionnaire_mail_time, + } + } +} diff --git a/gameserver/src/player/player_mgr.rs b/gameserver/src/player/player_mgr.rs new file mode 100644 index 0000000..1170f4f --- /dev/null +++ b/gameserver/src/player/player_mgr.rs @@ -0,0 +1,25 @@ +use dashmap::DashMap; + +pub struct PlayerMgr { + player_map: DashMap, // uid-session_id +} + +impl PlayerMgr { + pub fn new() -> Self { + Self { + player_map: DashMap::new(), + } + } + + pub fn add_to_online_map(&self, uid: u32, session_id: u32) { + self.player_map.insert(uid, session_id); + } + + pub fn remove_from_online_map(&self, uid: u32) { + self.player_map.remove(&uid); + } + + pub fn find_online_player(&self, uid: u32) -> Option { + self.player_map.get(&uid).map(|a| a.clone()) + } +} diff --git a/gameserver/src/scene/dungeon_scene.rs b/gameserver/src/scene/dungeon_scene.rs new file mode 100644 index 0000000..1cdd2c2 --- /dev/null +++ b/gameserver/src/scene/dungeon_scene.rs @@ -0,0 +1,29 @@ +use proto::SceneBin; + +use super::BaseScene; + +pub struct DungeonScene { + pub base: BaseScene, +} + +impl DungeonScene { + pub fn new(scene_id: u32) -> Self { + Self { + base: BaseScene::new(scene_id), + } + } + + pub fn from_bin(scene_id: u32, bin: SceneBin) -> Self { + Self { + base: BaseScene::from_bin(scene_id, bin), + } + } + + pub fn to_bin(&self) -> SceneBin { + self.base.to_bin() + } + + pub fn init(&mut self) { + self.base.init(); + } +} diff --git a/gameserver/src/scene/grid.rs b/gameserver/src/scene/grid.rs new file mode 100644 index 0000000..23d7771 --- /dev/null +++ b/gameserver/src/scene/grid.rs @@ -0,0 +1,36 @@ +use std::{cell::RefCell, collections::BTreeMap, rc::Rc}; + +use crate::entity::Entity; + +use super::region::Region; + +#[derive(Default)] +pub struct Grid { + entity_map: BTreeMap>>, + region_vec: Vec, +} + +impl Grid { + #[allow(dead_code)] + pub fn has_entity(&self) -> bool { + self.entity_map.len() != 0 + } + + pub fn add_entity(&mut self, entity: Rc>) { + let entity_id = entity.borrow().entity_id(); + self.entity_map.insert(entity_id, entity); + } + + pub fn del_entity(&mut self, entity: &Rc>) { + let entity_id = entity.borrow().entity_id(); + self.entity_map.remove(&entity_id); + } + + pub fn add_region(&mut self, region: Region) { + self.region_vec.push(region); + } + + pub fn get_all_entity(&self) -> Vec>> { + self.entity_map.values().map(|a| a.clone()).collect() + } +} diff --git a/gameserver/src/scene/grid_mgr.rs b/gameserver/src/scene/grid_mgr.rs new file mode 100644 index 0000000..fe2faeb --- /dev/null +++ b/gameserver/src/scene/grid_mgr.rs @@ -0,0 +1,57 @@ +use std::{cell::RefCell, collections::HashMap, rc::Rc}; + +use data::math_def::Coordinate; +use proto::ProtEntityType; + +use crate::entity::Entity; + +use super::{grid::Grid, region::Region, VisionLevelType}; + +#[allow(unused)] +pub struct GridMgr { + pub range_type: VisionLevelType, + pub length: u32, + pub width: u32, + pub sight_radius: u32, + pub grid_map: HashMap<(i32, i32), Grid>, +} + +impl GridMgr { + pub fn get_grid(&mut self, x: i32, y: i32) -> &mut Grid { + self.grid_map.entry((x, y)).or_insert_with(Grid::default) + } + + pub fn place_entity( + &mut self, + entity: Rc>, + coordinate: Coordinate, + ) -> Result>>, ()> { + let entity_type = { + let entity = entity.borrow(); + entity.get_entity_type() + }; + + let grid = self.get_grid(coordinate.x, coordinate.y); + if entity_type == ProtEntityType::ProtEntityRegion { + tracing::error!("GridMgr::place_entity shouldn't be used for Region entity"); + return Err(()); + } else { + grid.add_entity(entity); + } + + Ok(grid.get_all_entity()) + } + + pub fn remove_entity(&mut self, entity: &Rc>, coordinate: Coordinate) { + let grid = self.get_grid(coordinate.x, coordinate.y); + grid.del_entity(entity); + } + + #[allow(dead_code)] + pub fn place_region(&mut self, region: Region, coordinate: Coordinate) -> Result<(), ()> { + let grid = self.get_grid(coordinate.x, coordinate.y); + grid.add_region(region); + + Ok(()) + } +} diff --git a/gameserver/src/scene/mod.rs b/gameserver/src/scene/mod.rs new file mode 100644 index 0000000..5fd7303 --- /dev/null +++ b/gameserver/src/scene/mod.rs @@ -0,0 +1,20 @@ +mod dungeon_scene; +mod grid; +mod grid_mgr; +mod mp_level_entity; +mod player_scene_comp; +mod player_world; +mod player_world_scene; +mod region; +mod scene; +pub mod scene_mgr; +mod scene_sight_comp; +mod scene_team; + +pub use mp_level_entity::MPLevelEntity; +pub use player_scene_comp::{EnterSceneState, PlayerSceneComp}; +pub use player_world::PlayerWorld; +pub use scene::*; +pub use scene_team::*; + +pub use scene_sight_comp::{SceneSightComp, VisionLevelType}; diff --git a/gameserver/src/scene/mp_level_entity.rs b/gameserver/src/scene/mp_level_entity.rs new file mode 100644 index 0000000..90506b4 --- /dev/null +++ b/gameserver/src/scene/mp_level_entity.rs @@ -0,0 +1,64 @@ +use std::rc::Rc; + +use data::math_def::Vector3; +use proto::{AbilitySyncStateInfo, MpLevelEntityInfo}; + +use crate::{entity::Entity, player::Player}; + +#[derive(Default)] +pub struct MPLevelEntity { + pos: Vector3, + rot: Vector3, + id: u32, + authority_peer_id: u32, +} + +impl MPLevelEntity { + pub fn set_authority_peer_id(&mut self, id: u32) { + self.authority_peer_id = id; + } + + pub fn to_client(&self, entity_info: &mut MpLevelEntityInfo) { + entity_info.ability_info = Some(AbilitySyncStateInfo::default()); + entity_info.authority_peer_id = self.authority_peer_id; + entity_info.entity_id = self.id; + } +} + +impl Entity for MPLevelEntity { + fn get_entity_type(&self) -> proto::ProtEntityType { + proto::ProtEntityType::ProtEntityMpLevel + } + + fn get_group_id(&self) -> u32 { + 0 + } + + fn entity_id(&self) -> u32 { + self.id + } + + fn set_entity_id(&mut self, id: u32) { + self.id = id; + } + + fn position(&self) -> &data::math_def::Vector3 { + &self.pos + } + + fn rotation(&self) -> &data::math_def::Vector3 { + &self.rot + } + + fn set_position(&mut self, pos: data::math_def::Vector3) { + self.pos = pos; + } + + fn set_rotation(&mut self, rot: data::math_def::Vector3) { + self.rot = rot; + } + + fn get_owner_player(&self) -> Option> { + None + } +} diff --git a/gameserver/src/scene/player_scene_comp.rs b/gameserver/src/scene/player_scene_comp.rs new file mode 100644 index 0000000..36ffdb9 --- /dev/null +++ b/gameserver/src/scene/player_scene_comp.rs @@ -0,0 +1,146 @@ +use std::{ + cell::RefCell, + collections::BTreeMap, + rc::{Rc, Weak}, +}; + +use data::math_def::Vector3; +use proto::{DungeonProductBin, EnterType, PlayerSceneCompBin, SceneProductBin, VisionType}; +use tokio::sync::OnceCell; + +use crate::player::Player; + +use super::{PlayerWorld, Scene}; + +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default)] +#[allow(non_camel_case_types)] +pub enum EnterSceneState { + #[default] + ENTER_SCENE_NONE, + ENTER_SCENE_NOTIFY, + ENTER_SCENE_READY, + ENTER_SCENE_INIT, + ENTER_SCENE_DONE, + ENTER_SCENE_POST, +} + +#[derive(Default)] +pub struct PlayerSceneComp { + player: OnceCell>, + pub own_world: Rc>, + pub cur_scene_owner_uid: u32, + pub my_prev_scene_id: u32, + pub my_prev_pos: Vector3, + pub my_prev_rot: Vector3, + pub my_cur_scene_id: u32, + pub monster_seen_list: Vec, + //pub mark_point_list: Vec, + pub world_product_map: BTreeMap, + pub my_cur_area_id: u32, + pub dungeon_product_map: BTreeMap, + pub my_cur_player_scene_id: u32, + pub my_cur_home_scene_id: u32, + pub cur_scene_id: u32, + pub cur_scene_wtr: Weak>, + pub dest_scene_id: u32, + pub dest_pos: Vector3, + pub dest_rot: Vector3, + pub dest_enter_type: EnterType, + pub dest_vision_type: VisionType, + pub dest_world_ptr: Option>>, + pub dest_scene_wtr: Weak>, + pub enter_scene_state: EnterSceneState, + pub enter_scene_token: u32, +} + +impl PlayerSceneComp { + pub fn set_player(&self, player: Rc) { + self.own_world.borrow_mut().set_player(player.clone()); + self.player.set(Rc::downgrade(&player)).unwrap(); + } + + pub fn init(&mut self) { + self.own_world.borrow_mut().init(); + } + + pub fn pre_login(&mut self, is_relogin: bool) { + self.own_world.borrow_mut().pre_player_login(is_relogin); + } + + pub fn on_login(&mut self, _is_new_player: bool) { + self.reset_dest_scene(); + } + + pub fn on_first_login(&mut self) { + let mut world = self.own_world.borrow_mut(); + let main_world_scene = world.scene_map.get_mut(&3).unwrap(); + main_world_scene + .borrow_mut() + .base_mut() + .set_player_last_valid_location_on_first_login(); + } + + pub fn set_dest_scene(&mut self, scene_wtr: Weak>) { + if let Some(scene) = scene_wtr.upgrade() { + self.dest_scene_id = scene.borrow().base().scene_id; + self.dest_scene_wtr = scene_wtr; + } else { + self.dest_scene_wtr = Weak::new(); + self.dest_scene_id = 0; + } + } + + pub fn get_dest_scene(&self) -> Option>> { + self.dest_scene_wtr.upgrade() + } + + pub fn get_cur_scene(&self) -> Option>> { + self.cur_scene_wtr.upgrade() + } + + fn reset_dest_scene(&mut self) { + self.dest_scene_wtr = Weak::new(); + self.dest_scene_id = 0; + self.dest_pos.reset(); + self.dest_rot.reset(); + } + + pub fn from_bin(bin: PlayerSceneCompBin) -> Self { + Self { + player: OnceCell::new(), + own_world: Rc::new(RefCell::new(PlayerWorld::from_bin( + bin.world.unwrap_or_default(), + ))), + cur_scene_owner_uid: bin.cur_scene_owner_uid, + my_prev_scene_id: bin.my_prev_scene_id, + my_prev_pos: Vector3::from_bin(bin.my_prev_pos.unwrap_or_default()), + my_prev_rot: Vector3::from_bin(bin.my_prev_rot.unwrap_or_default()), + my_cur_scene_id: bin.my_cur_scene_id, + monster_seen_list: bin.monster_seen_list, + world_product_map: bin.world_product_map.into_iter().collect(), + my_cur_area_id: bin.my_cur_area_id, + dungeon_product_map: bin.dungeon_product_map.into_iter().collect(), + my_cur_player_scene_id: bin.my_cur_player_scene_id, + my_cur_home_scene_id: bin.my_cur_home_scene_id, + ..Default::default() + } + } + + pub fn to_bin(&self) -> PlayerSceneCompBin { + PlayerSceneCompBin { + world: Some(self.own_world.borrow().to_bin()), + cur_scene_owner_uid: self.cur_scene_owner_uid.clone(), + my_prev_scene_id: self.my_prev_scene_id.clone(), + my_prev_pos: Some(self.my_prev_pos.to_bin()), + my_prev_rot: Some(self.my_prev_rot.to_bin()), + my_cur_scene_id: self.my_cur_scene_id.clone(), + monster_seen_list: self.monster_seen_list.clone(), + world_product_map: self.world_product_map.clone().into_iter().collect(), + my_cur_area_id: self.my_cur_area_id.clone(), + dungeon_product_map: self.dungeon_product_map.clone().into_iter().collect(), + my_cur_player_scene_id: self.my_cur_player_scene_id.clone(), + my_cur_home_scene_id: self.my_cur_home_scene_id.clone(), + ..Default::default() + } + } +} diff --git a/gameserver/src/scene/player_world.rs b/gameserver/src/scene/player_world.rs new file mode 100644 index 0000000..6c6edf8 --- /dev/null +++ b/gameserver/src/scene/player_world.rs @@ -0,0 +1,258 @@ +use std::{ + cell::RefCell, + collections::{BTreeMap, HashMap}, + rc::{Rc, Weak}, +}; + +use common::tools::time_utils; +use proto::{Retcode, WorldBin}; +use tokio::sync::OnceCell; + +use crate::player::Player; + +use super::{scene_mgr, Scene, SceneTeam}; + +pub struct WorldPlayerSlotInfo { + pub uid: u32, + pub pre_enter_time: u64, +} + +pub struct WorldPlayerInfo { + pub player_wtr: Weak, + pub enter_time: u64, + pub cur_scene_id: u32, +} + +#[derive(Default)] +pub struct PlayerWorld { + player: OnceCell>, + pub scene_team: SceneTeam, + slot_info_map: HashMap, + player_info_map: HashMap, + pub scene_map: BTreeMap>>, + pub level: u32, + pub last_adjust_time: u32, + pub adjust_level: u32, +} + +impl PlayerWorld { + pub fn set_player(&self, player: Rc) { + self.player.set(Rc::downgrade(&player)).unwrap(); + self.scene_map + .values() + .for_each(|scene| scene.borrow_mut().set_own_player(player.clone())); + } + + pub fn player(&self) -> Option> { + self.player.get().map(|p| p.upgrade())? + } + + pub fn init(&mut self) { + if self.scene_map.len() != 0 { + for (_, scene) in self.scene_map.iter_mut() { + scene.borrow_mut().init(); + } + + let default_scene_id = data::get_default_world_main_scene_id(); + + // TODO: last scene id + self.scene_team.init( + self.player().unwrap(), + self.player().unwrap().uid, + default_scene_id, + ); + } else { + let default_scene_id = data::get_default_world_main_scene_id(); + let mut scene = scene_mgr::create_scene(default_scene_id, self.player().unwrap()); + scene.init(); + self.scene_map + .insert(default_scene_id, Rc::new(RefCell::new(scene))); + tracing::info!( + "[SCENE] first create scene, scene_id:{}, uid: {}", + default_scene_id, + self.player().unwrap().uid + ); + + self.scene_team.init( + self.player().unwrap(), + self.player().unwrap().uid, + default_scene_id, + ); + } + } + + pub fn get_main_world_scene(&self) -> Option>> { + self.scene_map + .get(&data::get_default_world_main_scene_id()) + .cloned() + } + + pub fn pre_player_login(&mut self, is_relogin: bool) { + for (_, scene) in self.scene_map.iter_mut() { + scene.borrow_mut().pre_player_login(is_relogin); + } + } + + pub fn player_pre_enter(&mut self, player: &Player) -> Result<(), Retcode> { + if self.is_world_full() { + tracing::warn!("uid: {} player_pre_enter fails, world is full", player.uid); + return Err(Retcode::RetFail); + } + + let owner_uid = self.get_owner_uid(); + + if self + .slot_info_map + .insert( + player.uid, + WorldPlayerSlotInfo { + uid: player.uid, + pre_enter_time: time_utils::get_now(), + }, + ) + .is_some() + { + tracing::warn!( + "uid: {} already pre_enter world, owner: {}", + player.uid, + owner_uid + ); + } + + // TODO: World::notifyPreEnterMpPlayer + + tracing::info!( + "[WORLD] uid: {} pre-Enter world, owner: {}", + player.uid, + owner_uid + ); + + Ok(()) + } + + pub fn player_enter(&mut self, player: &Rc) -> Result<(), Retcode> { + let Some(own_player) = self.player() else { + tracing::error!("get_own_player fails"); + return Err(Retcode::RetFail); + }; + + if let Err(ret) = self.check_player_enter(player) { + tracing::warn!( + "[WORLD] uid: {} enter world fail, owner: {}, ret: {:?}", + player.uid, + own_player.uid, + ret + ); + return Err(ret); + } + + tracing::info!( + "[WORLD] uid: {} enter world, owner: {}", + player.uid, + own_player.uid + ); + + self.player_info_map.insert( + player.uid, + WorldPlayerInfo { + player_wtr: Rc::downgrade(player), + enter_time: time_utils::get_now(), + cur_scene_id: 0, + }, + ); + + self.scene_team.on_player_enter(player.clone()); + + // TODO: World::notifyAllPlayerInfo + // TODO: PlayerWorld::notifyWorldAndOwnerData + + if self.get_player_count() > 1 { + // MP stuff + // TODO: PlayerWorld::onPlayerCountChange + // TODO: World::notifyEnterWorldChatChannel + } + + Ok(()) + } + + pub fn check_player_enter(&self, player: &Player) -> Result<(), Retcode> { + let own_player = self.player().ok_or(Retcode::RetFail)?; + + if self.is_world_full() { + tracing::error!( + "uid: {} enter owner: {} world fails", + player.uid, + own_player.uid + ); + return Err(Retcode::RetFail); + } + + if own_player.uid != player.uid { + if !self.player_info_map.contains_key(&own_player.uid) { + tracing::warn!( + "owner_uid:{} not in world, uid:{}", + own_player.uid, + player.uid + ); + return Err(Retcode::RetMpGuestLoadingFirstEnter); + } + } + + if !self.slot_info_map.contains_key(&player.uid) { + tracing::warn!( + "world owner: {} cannot found slot for uid: {}", + own_player.uid, + player.uid + ); + return Err(Retcode::RetFail); + } + + Ok(()) + } + + fn is_world_full(&self) -> bool { + self.get_player_count() >= self.get_max_player_count() + } + + pub fn get_player_count(&self) -> usize { + self.scene_team.get_team_player_num() + } + + pub fn get_max_player_count(&self) -> usize { + 4 + } + + pub fn get_owner_uid(&self) -> u32 { + self.player().map(|p| p.uid).unwrap_or_default() + } + + pub fn from_bin(bin: WorldBin) -> Self { + Self { + scene_map: bin + .scene_map + .into_iter() + .map(|(id, sc)| (id, Rc::new(RefCell::new(Scene::from_bin(id, sc))))) + .collect(), + scene_team: SceneTeam::default(), + level: bin.level, + last_adjust_time: bin.last_adjust_time, + adjust_level: bin.adjust_level, + player: OnceCell::new(), + slot_info_map: HashMap::new(), + player_info_map: HashMap::new(), + } + } + + pub fn to_bin(&self) -> WorldBin { + WorldBin { + scene_map: self + .scene_map + .iter() + .map(|(id, sc)| (*id, sc.borrow().to_bin())) + .collect(), + level: self.level, + last_adjust_time: self.last_adjust_time, + adjust_level: self.adjust_level, + } + } +} diff --git a/gameserver/src/scene/player_world_scene.rs b/gameserver/src/scene/player_world_scene.rs new file mode 100644 index 0000000..bc8361d --- /dev/null +++ b/gameserver/src/scene/player_world_scene.rs @@ -0,0 +1,29 @@ +use proto::SceneBin; + +use super::BaseScene; + +pub struct PlayerWorldScene { + pub base: BaseScene, +} + +impl PlayerWorldScene { + pub fn new(scene_id: u32) -> Self { + Self { + base: BaseScene::new(scene_id), + } + } + + pub fn from_bin(scene_id: u32, bin: SceneBin) -> Self { + Self { + base: BaseScene::from_bin(scene_id, bin), + } + } + + pub fn to_bin(&self) -> SceneBin { + self.base.to_bin() + } + + pub fn init(&mut self) { + self.base.init(); + } +} diff --git a/gameserver/src/scene/region.rs b/gameserver/src/scene/region.rs new file mode 100644 index 0000000..314e420 --- /dev/null +++ b/gameserver/src/scene/region.rs @@ -0,0 +1,119 @@ +#![allow(unused)] + +use std::{cell::RefCell, collections::HashMap, rc::Rc, sync::Arc}; + +use data::math_def::{Vector3, VECTOR3_ZERO}; +use parking_lot::Mutex; + +use crate::entity::Entity; + +use super::Scene; + +#[derive(Default)] +pub struct RegionBase { + pub entity_table: HashMap>>, +} + +pub enum RegionShape { + Sphere, + Cubic, + Cylinder, + Polygon, +} + +pub enum Region { + Cubic(RegionBase, Vector3, Vector3), +} + +impl Region { + pub fn new_cubic(pos: Vector3, size: Vector3) -> Region { + Region::Cubic(RegionBase::default(), pos, size) + } + + pub fn get_region_shape(&self) -> RegionShape { + match self { + //Self::Sphere(..) => RegionShape::Sphere, + Self::Cubic(..) => RegionShape::Cubic, + } + } + + pub fn add_entity(&mut self, entity_ptr: Arc>) { + let entity_id = entity_ptr.lock().entity_id(); + self.base_mut().entity_table.insert(entity_id, entity_ptr); + + // TODO: group events + } + + pub fn is_in_region(&self, pos: &Vector3) -> bool { + match self { + Self::Cubic(_, position, size) => { + if pos.x < (position.x as f32 - (size.x as f32 / 2.0)) + || ((size.x as f32 / 2.0) + position.x as f32) < pos.x as f32 + { + return false; + } + + if pos.y < (position.y as f32 - (size.y as f32 / 2.0)) + || ((size.y as f32 / 2.0) + position.y as f32) < pos.y as f32 + { + return false; + } + + pos.z < (position.z as f32 - (size.z as f32 / 2.0)) + || ((size.z as f32 / 2.0) + position.z as f32) < pos.z as f32 + } + } + } + + fn base(&self) -> &RegionBase { + match self { + //Self::Sphere(base) => &base, + Self::Cubic(base, ..) => &base, + } + } + + fn base_mut(&mut self) -> &mut RegionBase { + match self { + //Self::Sphere(base) => &mut base, + Self::Cubic(base, ..) => base, + } + } +} + +impl Entity for Region { + fn get_entity_type(&self) -> proto::ProtEntityType { + proto::ProtEntityType::ProtEntityRegion + } + + fn get_group_id(&self) -> u32 { + 0 // todo? + } + + fn entity_id(&self) -> u32 { + 0 + } + + fn set_entity_id(&mut self, _id: u32) {} + + fn position(&self) -> &data::math_def::Vector3 { + match self { + Self::Cubic(_, pos, ..) => pos, + } + } + + fn rotation(&self) -> &data::math_def::Vector3 { + &VECTOR3_ZERO + } + + fn set_position(&mut self, pos: data::math_def::Vector3) { + match self { + Self::Cubic(_, p, ..) => *p = pos, + }; + } + + fn set_rotation(&mut self, _rot: data::math_def::Vector3) {} + + fn get_owner_player(&self) -> Option> { + None + } +} diff --git a/gameserver/src/scene/scene.rs b/gameserver/src/scene/scene.rs new file mode 100644 index 0000000..4a0d898 --- /dev/null +++ b/gameserver/src/scene/scene.rs @@ -0,0 +1,851 @@ +use std::{ + cell::RefCell, + collections::{BTreeMap, HashMap}, + rc::{Rc, Weak}, + sync::atomic::{AtomicU32, Ordering}, +}; + +use common::tools::time_utils; +use data::{ + math_def::{Vector2, Vector3}, + SceneType, +}; +use proto::{ + EnterType, HostPlayerNotify, ProtEntityType, Retcode, SceneBin, SceneDataNotify, + SceneEntityAppearNotify, SceneEntityDisappearNotify, SceneEntityInfo, SceneForceUnlockNotify, + ScenePlayerLocationBin, VisionType, +}; +use tokio::sync::OnceCell; + +use crate::{ + entity::{entity_mgr, entity_utils, Entity, VisionContext}, + player::{avatar::Avatar, Player}, +}; + +use super::{ + dungeon_scene::DungeonScene, player_world_scene::PlayerWorldScene, MPLevelEntity, PlayerWorld, + SceneSightComp, +}; + +pub enum Scene { + PlayerWorld(PlayerWorldScene), + Dungeon(DungeonScene), +} + +impl Scene { + pub fn new(scene_id: u32) -> Self { + let scene_type = data::iter_scene_data() + .find(|s| s.id == scene_id) + .unwrap() + .r#type; + + match scene_type { + SceneType::World => Self::PlayerWorld(PlayerWorldScene::new(scene_id)), + SceneType::Dungeon => Self::Dungeon(DungeonScene::new(scene_id)), + _ => panic!("Invalid scene type {scene_type:?}"), + } + } + + pub fn from_bin(scene_id: u32, bin: SceneBin) -> Self { + let scene_type = data::iter_scene_data() + .find(|s| s.id == scene_id) + .unwrap() + .r#type; + + match scene_type { + SceneType::World => Self::PlayerWorld(PlayerWorldScene::from_bin(scene_id, bin)), + SceneType::Dungeon => Self::Dungeon(DungeonScene::from_bin(scene_id, bin)), + _ => panic!("Invalid scene type {scene_type:?}"), + } + } + + pub fn to_bin(&self) -> SceneBin { + match self { + Self::PlayerWorld(scene) => scene.to_bin(), + Self::Dungeon(scene) => scene.to_bin(), + } + } + + pub fn base(&self) -> &BaseScene { + match self { + Self::PlayerWorld(scene) => &scene.base, + Self::Dungeon(scene) => &scene.base, + } + } + + pub fn base_mut(&mut self) -> &mut BaseScene { + match self { + Self::PlayerWorld(scene) => &mut scene.base, + Self::Dungeon(scene) => &mut scene.base, + } + } + + pub fn gen_new_entity_id(&self, ty: ProtEntityType) -> u32 { + self.base().gen_new_entity_id(ty) + } + + pub fn init(&mut self) { + match self { + Self::PlayerWorld(scene) => scene.init(), + Self::Dungeon(scene) => scene.init(), + } + } + + pub fn player_enter( + &mut self, + player: &Rc, + pos: Vector3, + rot: Vector3, + is_relogin: bool, + enter_scene_avatar: Vec>>, + appear_avatar_ptr: &Rc>, + ) -> Result<(), Retcode> { + let uid = player.uid; + let Some(_peer_id) = self.base().get_peer_id(uid) else { + return Err(Retcode::RetFail); + }; + + self.base_mut() + .player_map + .insert(player.uid, Rc::downgrade(player)); + + { + let Some(host_player) = self + .base() + .host_player_wtr + .as_ref() + .map(|p| p.upgrade()) + .flatten() + else { + return Err(Retcode::RetFail); + }; + + let mut host_avatar_comp = host_player.player_avatar_comp.borrow_mut(); + if host_avatar_comp.team_entity.upgrade().is_none() { + let team_entity = + Rc::new(RefCell::new(entity_mgr::create_avatar_team_entity(self))); + team_entity.borrow_mut().set_player(player); + host_avatar_comp.team_entity = Rc::downgrade(&team_entity); + + self.base_mut() + .add_gridless_entity(team_entity as Rc>)?; + } + } + + let mut avatar_comp = player.player_avatar_comp.borrow_mut(); + if let Some(cur_avatar) = avatar_comp.get_cur_avatar() { + if cur_avatar.borrow().is_on_scene() { + tracing::error!("[ENTER] last cur avatar is on scene! uid: {}", player.uid); + } + } + + let mut scene_comp = player.player_scene_comp.borrow_mut(); + let dest_enter_type = scene_comp.dest_enter_type; + let prev_scene_id = scene_comp.cur_scene_id; + let new_scene_id = self.base().scene_id; + + scene_comp.cur_scene_id = new_scene_id; + scene_comp.cur_scene_owner_uid = self.base().owner_uid(); + + drop(scene_comp); + // SET after: player.player_scene_comp.lock().cur_scene_wtr = self + + avatar_comp.set_cur_avatar(appear_avatar_ptr); + drop(avatar_comp); + + let appear_avatar_guid = { + let appear_avatar = appear_avatar_ptr.borrow(); + appear_avatar.base_avatar().guid + }; + + let avatar_guid_vec = enter_scene_avatar + .iter() + .map(|a| a.borrow().base_avatar().guid) + .collect(); + let cur_world_ptr = self.base().cur_world_wtr.upgrade().unwrap(); + cur_world_ptr + .borrow_mut() + .scene_team + .set_player_avatar_team_and_add_to_scene( + player.uid, + avatar_guid_vec, + appear_avatar_guid, + self, + false, + ) + .map_err(|err| { + tracing::error!( + "set_player_avatar_team_and_add_to_scene failed, uid:{}", + player.uid + ); + err + })?; + + if self.base().owner_uid() == player.uid { + let scene_id = self.base().scene_id; + + let mut scene_comp = player.player_scene_comp.borrow_mut(); + scene_comp.my_cur_scene_id = scene_id; + scene_comp.my_cur_player_scene_id = scene_id; + // TODO: differentiate between home/player scene! + // scene_comp.my_home_scene_id = scene_id; + } + + if prev_scene_id != new_scene_id + || is_relogin + || dest_enter_type == EnterType::EnterGotoRecreate + { + self.notify_scene_and_host_data(player.uid); + player.notify_player_enter_scene_info(self); + // Player::setIsDataResVersionChanged(player, 0); + } else if prev_scene_id == new_scene_id { + // TODO: for Goto/Jump ('re-enter' current scene) + // v91 = Player::getAvatarComp(v90); + // std::function::function> const&,std::shared_ptr)::{lambda(Avatar &)#1},void,void>( + // (std::function *const)&v140, + // (Scene::playerEnter::)(v7 + 480)); + // PlayerAvatarComp::foreachMyAvatarInSceneTeam(v91, (std::function *)&v140); + } + + let scene_player_location = ScenePlayerLocation { + cur_pos: pos.clone(), + cur_rot: rot.clone(), + last_valid_pos: pos.clone(), + last_valid_rot: rot.clone(), + }; + + self.set_player_location(player.uid, scene_player_location); + + { + let avatar_comp = player.player_avatar_comp.borrow(); + let cur_avatar_ptr = avatar_comp.get_cur_avatar().unwrap(); + let mut cur_avatar = cur_avatar_ptr.borrow_mut(); + cur_avatar.set_position(pos.clone()); + cur_avatar.set_rotation(rot.clone()); + cur_avatar.set_last_valid_position(pos); + cur_avatar.set_last_valid_rotation(rot); + } + + // TODO: Scene::notifyAllPlayerInfo(); + cur_world_ptr.borrow().scene_team.notify_scene_team_update(); + + // Scene::notifyAllTeamEntity() -> SyncTeamEntityNotify ? + // Scene::notifyAllPlayTeamEntity() + + Ok(()) + } + + pub fn get_or_create_mp_level_entity(&mut self) -> Rc> { + if let Some(mp_level_entity) = self.base().mp_level_entity_ptr.as_ref() { + return mp_level_entity.clone(); + } + + let mut mp_level_entity = MPLevelEntity::default(); + mp_level_entity.set_authority_peer_id(self.base().get_host_peer_id().unwrap_or_default()); + mp_level_entity.set_entity_id(self.gen_new_entity_id(ProtEntityType::ProtEntityMpLevel)); + + let mp_level_entity_ptr = Rc::new(RefCell::new(mp_level_entity)); + self.add_gridless_entity(mp_level_entity_ptr.clone() as Rc>) + .unwrap(); + + self.base_mut().mp_level_entity_ptr = Some(mp_level_entity_ptr.clone()); + mp_level_entity_ptr + } + + pub fn set_player_location(&mut self, uid: u32, player_location: ScenePlayerLocation) { + if self.base().owner_uid() == uid { + self.base_mut().owner_player_location = player_location.clone(); + } + + tracing::info!( + "[ENTER_SCENE] set_player_location, last_valid_pos:{:?}, cur_pos:{:?}", + player_location.last_valid_pos, + player_location.cur_pos + ); + + self.base_mut() + .player_location_map + .insert(uid, player_location); + } + + fn notify_scene_and_host_data(&self, uid: u32) { + let Some(player) = self.base().find_player(uid) else { + tracing::warn!("find_player failed, uid:{uid}"); + return; + }; + + self.notify_all_unlock_force(player.as_ref()); + self.notify_host_to_player(player.as_ref()); + self.notify_scene_data(player.as_ref()); + + if false + // if let Some(home_comp) = self.base().get_own_home() + { + // home_comp.notify_game_time(player.as_ref()); + } else { + let own_player = self.base().own_player().unwrap(); + own_player + .player_basic_comp + .borrow() + .notify_game_time(player.as_ref()); + } + } + + fn notify_all_unlock_force(&self, player: &Player) { + player.send_proto(SceneForceUnlockNotify { + force_id_list: self.base().unlocked_force_list.clone(), + is_add: false, + }); + } + + fn notify_host_to_player(&self, player: &Player) { + let Some(host_player) = self.base().get_host_player() else { + tracing::error!("host_player_ptr is None"); + return; + }; + + player.send_proto(HostPlayerNotify { + host_uid: host_player.uid, + host_peer_id: self.base().get_peer_id(host_player.uid).unwrap(), + }); + } + + fn notify_scene_data(&self, player: &Player) { + let mut scene_data_notify = SceneDataNotify::default(); + if self.fill_scene_data_notify(&mut scene_data_notify).is_err() { + tracing::warn!("fill_scene_data_notify failed"); + return; + } + + player.send_proto(scene_data_notify); + } + + fn fill_scene_data_notify(&self, _notify: &mut SceneDataNotify) -> Result<(), Retcode> { + // TODO! + Ok(()) + } + + pub fn add_avatar_and_weapon_entity( + &mut self, + avatar_ptr: Rc>, + _is_enter_scene: bool, + ) -> Result<(), Retcode> { + { + let mut avatar = avatar_ptr.borrow_mut(); + avatar.set_entity_id(self.gen_new_entity_id(ProtEntityType::ProtEntityAvatar)); + + tracing::info!( + "[LR] add_avatar_and_weapon_entity, avatar_id:{} avatar_guid:{} entity_id:{}", + avatar.base_avatar().avatar_id, + avatar.base_avatar().guid, + avatar.entity_id() + ); + } + + self.add_gridless_entity(avatar_ptr.clone() as Rc>) + .map_err(|_| { + tracing::warn!("add_gridless_entity fails"); + Retcode::RetFail + })?; + + let ability_comp = { + let avatar = avatar_ptr.borrow(); + avatar.base_avatar().ability_comp.clone() + }; + + ability_comp.borrow_mut().init(avatar_ptr.clone()); + + let mut avatar = avatar_ptr.borrow_mut(); + let Some(weapon_gadget) = avatar.base_avatar_mut().equip_comp.weapon_gadget.as_mut() else { + tracing::error!("missing weapon gadget!"); + return Err(Retcode::RetFail); + }; + + weapon_gadget + .borrow_mut() + .set_entity_id(self.gen_new_entity_id(ProtEntityType::ProtEntityWeapon)); + + self.add_gridless_entity(weapon_gadget.clone() as Rc>) + .map_err(|_| { + tracing::warn!( + "add_gridless_entity fails, weapon_entity_id:{}", + weapon_gadget.borrow().entity_id() + ); + Retcode::RetFail + })?; + + weapon_gadget.borrow_mut().init_ability().map_err(|_| { + tracing::warn!("init_ability fails"); + Retcode::RetFail + })?; + + Ok(()) + } + + pub fn del_avatar_and_weapon_entity(&mut self, avatar_ptr: Rc>) { + let entity_id = avatar_ptr.borrow().entity_id(); + avatar_ptr.borrow_mut().set_entity_id(0); + if self + .del_gridless_entity(avatar_ptr.clone() as Rc>) + .is_err() + { + tracing::warn!( + "del_gridless_entity_fails {}", + avatar_ptr.borrow().get_desc() + ); + return; + } + + let avatar = avatar_ptr.borrow(); + if let Some(gadget) = avatar.base_avatar().equip_comp.weapon_gadget.clone() { + if self + .del_gridless_entity(gadget.clone() as Rc>) + .is_err() + { + tracing::warn!( + "del_gridless_entity fails, weapon_entity_id:{}", + gadget.borrow().entity_id() + ); + return; + } + } + + tracing::info!( + "del_avatar_and_weapon_entity finished, avatar_entity_id:{entity_id}, guid:{}", + avatar.base_avatar().guid + ); + } + + pub fn entity_appear( + &mut self, + entity: &Rc>, + vision_context: VisionContext, + ) -> Result<(), Retcode> { + let sight_comp = self.base_mut().sight_comp.as_mut().unwrap(); + let Ok(meet_entity_vec) = sight_comp.place_entity(entity.clone()) else { + tracing::error!("place_entity fails"); + return Err(Retcode::RetFail); + }; + + let (pos, entity_id) = { + let entity = entity.borrow(); + ( + Vector2 { + x: entity.position().x, + y: entity.position().z, + }, + entity.entity_id(), + ) + }; + + let coordinate = + sight_comp.pos_to_coordinate(sight_comp.get_vision_level_type(&entity), &pos); + + tracing::info!( + "[FY] meet entity vec: {:?} @ {:?}", + meet_entity_vec + .iter() + .map(|a| a.borrow().get_desc()) + .collect::>(), + coordinate + ); + + self.base_mut().entity_map.insert(entity_id, entity.clone()); + + // TODO: PlayerViewMgr + + if vision_context.vision_type != VisionType::VisionReplaceNoNotify { + for player_wtr in self.base().player_map.values() { + if let Some(player) = player_wtr.upgrade() { + self.notify_entity_appear(&player, &meet_entity_vec, &vision_context) + } + } + } + + Ok(()) + } + + pub fn entity_disappear( + &mut self, + entity: &Rc>, + vision_context: VisionContext, + ) -> Result<(), Retcode> { + if !entity.borrow().is_on_scene() { + tracing::info!("entity is not on scene {}", entity.borrow().get_desc()); + return Ok(()); + } + + self.base_mut() + .sight_comp + .as_mut() + .unwrap() + .remove_entity(entity); + + // TODO: disappear nearby entities on avatar death (PROT_ENTITY_AVATAR and not replace) + if vision_context.vision_type != VisionType::VisionReplaceNoNotify { + for player_wtr in self.base().player_map.values() { + if let Some(player) = player_wtr.upgrade() { + self.notify_entity_disappear( + &player, + &[entity.borrow().entity_id()], + &vision_context, + ) + } + } + } + + Ok(()) + } + + fn notify_entity_appear( + &self, + player: &Player, + entity_vec: &[Rc>], + context: &VisionContext, + ) { + let mut notify = SceneEntityAppearNotify::default(); + + for entity_ptr in entity_vec { + let entity = entity_ptr.borrow(); + let mut scene_entity_info = SceneEntityInfo::default(); + entity.to_client(&mut scene_entity_info); + notify.entity_list.push(scene_entity_info); + } + + notify.appear_type = context.vision_type.into(); + notify.param = context.param; + + player.send_proto(notify); + } + + fn notify_entity_disappear( + &self, + player: &Player, + entity_id_vec: &[u32], + context: &VisionContext, + ) { + player.send_proto(SceneEntityDisappearNotify { + entity_list: entity_id_vec.to_vec(), + disappear_type: context.vision_type.into(), + param: context.param, + }); + } + + fn add_gridless_entity(&mut self, entity: Rc>) -> Result<(), Retcode> { + self.base_mut().add_gridless_entity(entity) + } + + fn del_gridless_entity(&mut self, entity: Rc>) -> Result<(), Retcode> { + self.base_mut().del_gridless_entity(entity) + } + + pub fn pre_player_login(&mut self, is_relogin: bool) { + self.base_mut().pre_player_login(is_relogin); + } + + pub fn set_own_player(&self, player: Rc) { + self.base().set_own_player(player); + } +} + +#[derive(Default, Clone)] +pub struct ScenePlayerLocation { + pub cur_pos: Vector3, + pub cur_rot: Vector3, + pub last_valid_pos: Vector3, + pub last_valid_rot: Vector3, +} + +impl ScenePlayerLocation { + pub fn from_bin(bin: ScenePlayerLocationBin) -> Self { + Self { + cur_pos: Vector3::from_bin(bin.cur_pos.unwrap_or_default()), + cur_rot: Vector3::from_bin(bin.cur_rot.unwrap_or_default()), + last_valid_pos: Vector3::from_bin(bin.last_valid_pos.unwrap_or_default()), + last_valid_rot: Vector3::from_bin(bin.last_valid_rot.unwrap_or_default()), + } + } + + pub fn to_bin(&self) -> ScenePlayerLocationBin { + ScenePlayerLocationBin { + cur_pos: Some(self.cur_pos.to_bin()), + cur_rot: Some(self.cur_rot.to_bin()), + last_valid_pos: Some(self.last_valid_pos.to_bin()), + last_valid_rot: Some(self.last_valid_rot.to_bin()), + } + } +} + +pub struct ScenePlayerPeerInfo { + pub uid: u32, + #[allow(unused)] + pub enter_time: u64, +} + +#[derive(Default)] +pub struct BaseScene { + own_player: OnceCell>, + pub scene_id: u32, + pub unlocked_point_list: Vec, + pub unlocked_force_list: Vec, + pub locked_point_list: Vec, + pub owner_player_location: ScenePlayerLocation, + pub unhide_point_list: Vec, + pub scene_transaction: String, + pub begin_time_ms: u64, + peer_map: BTreeMap, + host_player_wtr: Option>, + player_map: HashMap>, + pub cur_world_wtr: Weak>, + pub gridless_entity_map: HashMap>>, + next_entity_index: AtomicU32, + pub mp_level_entity_ptr: Option>>, + pub player_location_map: HashMap, + pub sight_comp: Option, + pub entity_map: HashMap>>, +} + +impl BaseScene { + pub fn new(scene_id: u32) -> Self { + Self { + scene_id, + ..Default::default() + } + } + + pub fn init(&mut self) { + self.scene_transaction = self.create_scene_transaction_on_init(); + self.begin_time_ms = time_utils::get_now_ms(); + + self.sight_comp = Some( + SceneSightComp::new_grid( + Vector2::default(), + Vector2 { + // TODO! + x: 100000.0, + y: 100000.0, + }, + ) + .unwrap(), + ); + } + + pub fn pre_player_login(&mut self, _is_relogin: bool) { + // TODO: BlockGroupComp::prePlayerLogin() + } + + pub fn player_pre_enter(&mut self, player: Rc) -> Result<(), Retcode> { + if self.get_peer_id(player.uid).is_some() { + tracing::info!("peer_id exist in scene, scene_id:{}", self.scene_id); + return Ok(()); + } + + if self.peer_map.len() > 3 { + tracing::info!("scene is full, scene_id:{}", self.scene_id); + Err(Retcode::RetMpSceneIsFull) + } else { + let mut peer_id = 1; + self.peer_map.keys().for_each(|id| { + if peer_id == *id { + peer_id += 1; + } + }); + + if peer_id > 7 { + tracing::error!("invalid peer_id:{peer_id}"); + return Err(Retcode::RetFail); + } + + player.peer_id.set(peer_id); + self.peer_map.insert( + peer_id, + ScenePlayerPeerInfo { + uid: player.uid, + enter_time: time_utils::get_now(), + }, + ); + + if self.host_player_wtr.is_none() { + self.set_host_player(player.clone()); + } + + tracing::info!( + "[EnterScene] player preEnter scene, scene_id:{}", + self.scene_id + ); + Ok(()) + } + } + + pub fn set_host_player(&mut self, player: Rc) { + self.host_player_wtr = Some(Rc::downgrade(&player)); + + player.send_proto(HostPlayerNotify { + host_uid: player.uid, + host_peer_id: self.get_peer_id(player.uid).unwrap(), + }) + } + + pub fn get_peer_id(&self, uid: u32) -> Option { + self.peer_map + .iter() + .find(|(_, info)| info.uid == uid) + .map(|(id, _)| *id) + } + + pub fn get_host_peer_id(&self) -> Option { + self.host_player_wtr + .clone() + .map(|w| w.upgrade())? + .map(|p| self.get_peer_id(p.uid))? + } + + pub fn get_host_player(&self) -> Option> { + self.host_player_wtr.clone().map(|w| w.upgrade()).flatten() + } + + pub fn find_player(&self, uid: u32) -> Option> { + self.player_map.get(&uid).map(|p| p.upgrade()).flatten() + } + + pub fn add_gridless_entity( + &mut self, + entity_ptr: Rc>, + ) -> Result<(), Retcode> { + let entity_id = entity_ptr.borrow().entity_id(); + tracing::info!("[LR] add_gridless_entity, entity_id:{entity_id}"); + if self.gridless_entity_map.contains_key(&entity_id) { + tracing::warn!("duplicated gridless entity_id:{entity_id}"); + return Err(Retcode::RetFail); + } + + self.gridless_entity_map + .insert(entity_id, entity_ptr.clone()); + + Ok(()) + } + + pub fn del_gridless_entity( + &mut self, + entity_ptr: Rc>, + ) -> Result<(), Retcode> { + let entity_id = entity_ptr.borrow().entity_id(); + self.gridless_entity_map.remove(&entity_id); + tracing::info!("[LR] del_gridless_entity, entity_id:{entity_id}"); + + Ok(()) + } + + pub fn set_player_last_valid_location_on_first_login(&mut self) { + // Currently hardcoded spawn pos, because no lua. + + self.owner_player_location.last_valid_pos = Vector3 { + x: 2747.562, + y: 194.633, + z: -1719.386, + }; + + self.owner_player_location.last_valid_rot = Vector3 { + x: 0.0, + y: 307.0, + z: 0.0, + }; + } + + pub fn get_last_owner_location(&self) -> (Vector3, Vector3) { + ( + self.owner_player_location.last_valid_pos.clone(), + self.owner_player_location.last_valid_rot.clone(), + ) + } + + pub fn gen_new_entity_id(&self, ty: ProtEntityType) -> u32 { + let mut next_entity_index = self.next_entity_index.load(Ordering::SeqCst); + let mut is_rewind = false; + if next_entity_index <= 0xFFFFFE { + next_entity_index = self.next_entity_index.fetch_add(1, Ordering::SeqCst) + 1; + } else { + is_rewind = true; + next_entity_index = 1; + self.next_entity_index.store(1, Ordering::SeqCst); + } + + if is_rewind { + tracing::warn!( + "next_entity_index rewind. scene_id:{} owner_uid:{} scene_time_ms:{}", + self.scene_id, + self.owner_uid(), + self.get_scene_time_ms() + ); + + // TODO: config->kick_out_on_entity_id_circle + } + + entity_utils::get_entity_id(ty, next_entity_index) + } + + pub fn get_scene_time_ms(&self) -> u64 { + time_utils::get_now_ms() - self.begin_time_ms + } + + fn create_scene_transaction_on_init(&self) -> String { + static TRANSACTION_COUNTER: AtomicU32 = AtomicU32::new(0); + + format!( + "{}-{}-{}-{}", + self.scene_id, + self.owner_uid(), + time_utils::get_now(), + TRANSACTION_COUNTER.fetch_add(1, Ordering::SeqCst) + 1 + ) + } + + pub fn from_bin(scene_id: u32, bin: SceneBin) -> Self { + Self { + scene_id, + scene_transaction: String::new(), + begin_time_ms: 0, + own_player: OnceCell::new(), + unlocked_point_list: bin.unlocked_point_list, + unlocked_force_list: bin.unlocked_force_list, + locked_point_list: bin.locked_point_list, + owner_player_location: ScenePlayerLocation::from_bin( + bin.owner_player_location.unwrap_or_default(), + ), + unhide_point_list: bin.unhide_point_list, + peer_map: BTreeMap::new(), + host_player_wtr: None, + player_map: HashMap::new(), + cur_world_wtr: Weak::new(), + gridless_entity_map: HashMap::new(), + next_entity_index: AtomicU32::new(0), + mp_level_entity_ptr: None, + player_location_map: HashMap::new(), + sight_comp: None, + entity_map: HashMap::new(), + } + } + + pub fn to_bin(&self) -> SceneBin { + SceneBin { + unlocked_point_list: self.unlocked_point_list.clone(), + unlocked_force_list: self.unlocked_force_list.clone(), + locked_point_list: self.locked_point_list.clone(), + owner_player_location: Some(self.owner_player_location.to_bin()), + unhide_point_list: self.unhide_point_list.clone(), + ..Default::default() + } + } + + pub fn own_player(&self) -> Option> { + self.own_player.get().map(|p| p.upgrade())? + } + + pub fn set_own_player(&self, player: Rc) { + let _ = self.own_player.set(Rc::downgrade(&player)); + } + + pub fn owner_uid(&self) -> u32 { + self.own_player().unwrap().uid + } +} diff --git a/gameserver/src/scene/scene_mgr.rs b/gameserver/src/scene/scene_mgr.rs new file mode 100644 index 0000000..e8d5713 --- /dev/null +++ b/gameserver/src/scene/scene_mgr.rs @@ -0,0 +1,12 @@ +use std::rc::Rc; + +use crate::player::Player; + +use super::Scene; + +pub fn create_scene(scene_id: u32, player: Rc) -> Scene { + let scene = Scene::new(scene_id); + scene.set_own_player(player); + + scene +} diff --git a/gameserver/src/scene/scene_sight_comp.rs b/gameserver/src/scene/scene_sight_comp.rs new file mode 100644 index 0000000..d729e59 --- /dev/null +++ b/gameserver/src/scene/scene_sight_comp.rs @@ -0,0 +1,226 @@ +use std::{cell::RefCell, collections::HashMap, rc::Rc}; + +use data::math_def::{Coordinate, Vector2}; +use num_enum::FromPrimitive; +use proto::Retcode; + +use crate::entity::Entity; + +use super::grid_mgr::GridMgr; + +#[derive(Debug, Default, Clone, Copy, FromPrimitive)] +#[repr(u32)] +pub enum VisionLevelType { + #[default] + VisionLevelNormal, + VisionLevelLittleRemote, + VisionLevelRemote, + VisionLevelSuper, + VisionLevelNearby, + VisionLevelSuperNearby, +} + +pub struct SceneGridComp { + begin_pos: Vector2, + #[allow(unused)] + scene_size: Vector2, + grid_mgr_arr: [GridMgr; 6], +} + +pub enum SceneSightComp { + Grid(SceneGridComp), +} + +impl SceneSightComp { + pub fn new_grid(begin_pos: Vector2, scene_size: Vector2) -> Result { + let grid_comp = SceneGridComp::new(begin_pos, scene_size)?; + Ok(Self::Grid(grid_comp)) + } + + pub fn place_entity( + &mut self, + entity: Rc>, + ) -> Result>>, ()> { + match self { + Self::Grid(grid_comp) => grid_comp.place_entity(entity), + } + } + + pub fn remove_entity(&mut self, entity: &Rc>) { + match self { + Self::Grid(grid_comp) => grid_comp.remove_entity(entity), + } + } + + pub fn pos_to_coordinate(&self, range_type: VisionLevelType, pos: &Vector2) -> Coordinate { + match self { + Self::Grid(grid_comp) => grid_comp.pos_to_coordinate(range_type, pos), + } + } + + pub fn get_vision_level_type(&self, entity: &Rc>) -> VisionLevelType { + match self { + Self::Grid(grid_comp) => grid_comp.get_vision_level_type(entity), + } + } +} + +impl SceneGridComp { + pub fn new(begin_pos: Vector2, scene_size: Vector2) -> Result { + if scene_size.x == 0.0 || scene_size.y == 0.0 { + tracing::error!("0 == scene_size_.x || 0 == scene_size_.y"); + return Err(Retcode::RetFail); + } + + let mut grid_mgr_vec = Vec::with_capacity(6); + for vision_level in 0..6 { + let vision_level = vision_level.into(); + let grid_width = Self::get_grid_width(vision_level); + let sight_range = Self::get_sight_range(vision_level); + + if grid_width == 0 || sight_range == 0 { + tracing::error!("type: {vision_level:?} grid_width or sight_range invalid!"); + return Err(Retcode::RetFail); + } + + if grid_width * (sight_range / grid_width) != sight_range { + tracing::error!("{sight_range} / {grid_width} divide not exactly!"); + return Err(Retcode::RetFail); + } + + let Ok(grid_mgr) = + Self::create_grid_mgr(vision_level, grid_width, sight_range, &scene_size) + else { + tracing::error!("create_grid_mgr type: {vision_level:?} grid_width: {grid_width} sight_range: {sight_range} failed"); + return Err(Retcode::RetFail); + }; + + grid_mgr_vec.push(grid_mgr); + } + + Ok(Self { + begin_pos, + scene_size, + grid_mgr_arr: grid_mgr_vec.try_into().unwrap_or_else(|_| unreachable!()), + }) + } + + fn create_grid_mgr( + range_type: VisionLevelType, + grid_width: u32, + sight_range: u32, + scene_size: &Vector2, + ) -> Result { + if grid_width == 0 { + tracing::error!("invalid width: {grid_width}"); + return Err(()); + } + + let length = + ((grid_width as f32 + scene_size.x - 1.0) / (grid_width as f32)).round() as u32; + + if length > 0xFFFF { + tracing::error!("invalid length: {length}"); + return Err(()); + } + + let width = ((grid_width as f32 + scene_size.y - 1.0) / (grid_width as f32)).round() as u32; + if width > 0xFFFF { + tracing::error!("invalid width: {width}"); + return Err(()); + } + + Ok(GridMgr { + range_type, + length, + width, + sight_radius: sight_range, + grid_map: HashMap::new(), + }) + } + + pub fn place_entity( + &mut self, + entity: Rc>, + ) -> Result>>, ()> { + let vision_level_type = self.get_vision_level_type(&entity); + + let coordinate = { + let entity = entity.borrow(); + let pos = entity.position(); + let pos = Vector2 { x: pos.x, y: pos.z }; + + self.pos_to_coordinate(vision_level_type, &pos) + }; + + let grid_mgr = &mut self.grid_mgr_arr[vision_level_type as usize]; + let Ok(meet_entity_vec) = grid_mgr.place_entity(entity, coordinate) else { + tracing::error!("range_type: {vision_level_type:?} place_entity failed"); + return Err(()); + }; + + Ok(meet_entity_vec) + } + + pub fn remove_entity(&mut self, entity: &Rc>) { + let vision_level_type = self.get_vision_level_type(entity); + + let coordinate = { + let entity = entity.borrow(); + let pos = entity.position(); + let pos = Vector2 { x: pos.x, y: pos.z }; + + self.pos_to_coordinate(vision_level_type, &pos) + }; + + let grid_mgr = &mut self.grid_mgr_arr[vision_level_type as usize]; + grid_mgr.remove_entity(entity, coordinate); + } + + pub fn pos_to_coordinate(&self, range_type: VisionLevelType, pos: &Vector2) -> Coordinate { + let grid_width = Self::get_grid_width(range_type); + Coordinate { + x: (pos.x - self.begin_pos.x) as i32 / grid_width as i32, + y: (pos.y - self.begin_pos.y) as i32 / grid_width as i32, + } + } + + pub fn get_vision_level_type(&self, _entity: &Rc>) -> VisionLevelType { + // TODO! + VisionLevelType::VisionLevelNormal + } + + pub fn get_grid_width(vision_level: VisionLevelType) -> u32 { + // SceneGridComp::scene_grid_width: dd 20, 50, 250, 1000, 2 dup(20) + match vision_level { + VisionLevelType::VisionLevelNormal => 20, + VisionLevelType::VisionLevelLittleRemote => 50, + VisionLevelType::VisionLevelRemote => 250, + VisionLevelType::VisionLevelSuper => 1000, + VisionLevelType::VisionLevelNearby => 20, + VisionLevelType::VisionLevelSuperNearby => 20, + } + } + + pub fn get_sight_range(vision_level: VisionLevelType) -> u32 { + match vision_level { + VisionLevelType::VisionLevelNormal => 80, + VisionLevelType::VisionLevelLittleRemote => 200, + VisionLevelType::VisionLevelRemote => 1000, + VisionLevelType::VisionLevelSuper => 4000, + VisionLevelType::VisionLevelNearby => 40, + VisionLevelType::VisionLevelSuperNearby => 40, + } + } +} + +// TODO: this in gameserver config +/* + + + + + + + +*/ diff --git a/gameserver/src/scene/scene_team.rs b/gameserver/src/scene/scene_team.rs new file mode 100644 index 0000000..2966295 --- /dev/null +++ b/gameserver/src/scene/scene_team.rs @@ -0,0 +1,376 @@ +use std::{ + cell::RefCell, + collections::{BTreeMap, HashSet}, + rc::{Rc, Weak}, +}; + +use proto::{ + AbilityControlBlock, AbilitySyncStateInfo, Retcode, SceneAvatarInfo, SceneEntityInfo, + SceneTeamUpdateNotify, +}; + +use crate::{ + creature::{Creature, LifeState}, + player::avatar::Avatar, +}; +use crate::{gadget::WeaponGadget, player::Player}; + +use super::Scene; + +#[derive(Clone)] +pub struct SceneTeamAvatar { + pub uid: u32, + pub avatar_guid: u64, + pub avatar_ptr: Rc>, +} + +impl std::fmt::Debug for SceneTeamAvatar { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("SceneTeamAvatar") + .field("uid", &self.uid) + .field("avatar_guid", &self.avatar_guid) + .finish() + } +} + +impl SceneTeamAvatar { + pub fn to_client(&self, proto: &mut proto::SceneTeamAvatar, is_mp_mode: bool) { + use crate::entity::Entity; + + let avatar = self.avatar_ptr.borrow(); + + proto.player_uid = self.uid; + proto.avatar_guid = self.avatar_guid; + proto.entity_id = avatar.entity_id(); + proto.is_on_scene = avatar.is_on_scene(); + proto.is_player_cur_avatar = true; // TODO! + proto.pnanfpcioko = Some(AbilitySyncStateInfo::default()); + proto.aobhcppmkma = Some(AbilitySyncStateInfo::default()); + + let mut scene_entity_info = SceneEntityInfo::default(); + avatar.to_client_scene_entity(&mut scene_entity_info); + proto.scene_entity_info = Some(scene_entity_info); + + // TODO: AbilityComp::get_proto_ability_control_block() + proto.ability_control_block = Some(AbilityControlBlock::default()); + avatar + .base_avatar() + .ability_comp + .borrow() + .get_proto_ability_control_block(&mut proto.ability_control_block.as_mut().unwrap()); + + { + let weapon_gadget = avatar + .base_avatar() + .equip_comp + .weapon_gadget + .as_ref() + .unwrap(); + + proto.weapon_guid = match &*weapon_gadget.borrow() { + WeaponGadget::Avatar(gadget) => gadget.weapon_guid, + }; + proto.weapon_entity_id = weapon_gadget.borrow().entity_id(); + } + + if is_mp_mode { + proto.avatar_info = Some(avatar.to_client()); + + let mut scene_avatar_info = SceneAvatarInfo::default(); + avatar.to_client_avatar_entity(&mut scene_avatar_info); + proto.scene_avatar_info = Some(scene_avatar_info); + } + } +} + +#[derive(Default)] +pub struct SceneTeam { + pub player_uid_vec: Vec, + pub player_map: BTreeMap>, + pub team_avatar_map: BTreeMap>, + pub is_in_mp_mode: bool, + pub host_uid: u32, + pub scene_id: u32, + pub is_in_single_avatar_mode: bool, +} + +impl SceneTeam { + pub fn init(&mut self, player: Rc, host_uid: u32, scene_id: u32) { + self.host_uid = host_uid; + self.scene_id = scene_id; + self.player_map + .insert(self.host_uid, Rc::downgrade(&player)); + } + + pub fn get_avatar_guid_vec(&self, uid: u32) -> Option> { + let Some(avatar_vec) = self.team_avatar_map.get(&uid) else { + return None; + }; + + Some(avatar_vec.iter().map(|a| a.avatar_guid).collect()) + } + + pub fn get_allow_avatar_num(&self, uid: u32) -> usize { + if !self.team_avatar_map.contains_key(&uid) { + return 0; + } + + if self.is_in_single_avatar_mode { + return 1; + } + + let is_host = self.host_uid == uid; + let team_player_num = self.get_team_player_num(); + + Self::allow_avatar_num(team_player_num, is_host) + } + + pub fn on_player_enter(&mut self, player: Rc) { + if !self.team_avatar_map.contains_key(&player.uid) { + if player.uid == self.host_uid { + if self.player_uid_vec.len() != 0 { + tracing::info!("[SCENE_TEAM] host enter scene team after other, host_uid: {} player_uid_vec:{:?}", self.host_uid, self.player_uid_vec); + } + + self.player_uid_vec.insert(0, player.uid); + } else { + self.player_uid_vec.push(player.uid); + } + + self.team_avatar_map.insert(player.uid, Vec::new()); + self.player_map.insert(player.uid, Rc::downgrade(&player)); + } + } + + pub fn set_player_avatar_team_and_add_to_scene( + &mut self, + uid: u32, + mut avatar_guid_vec: Vec, + appear_avatar_guid: u64, + scene: &mut Scene, + is_notify: bool, + ) -> Result<(), Retcode> { + if self + .set_player_avatar_team(uid, &mut avatar_guid_vec, appear_avatar_guid, is_notify) + .is_err() + { + tracing::warn!( + "set_player_avatar_team failed, uid: {uid}, avatar_vec: {avatar_guid_vec:?}" + ); + return Err(Retcode::RetFail); + } + + for avatar in self.get_all_scene_team_avatar_vec() { + if let Err(ret) = scene.add_avatar_and_weapon_entity(avatar.avatar_ptr.clone(), true) { + tracing::error!("add_avatar_and_weapon_entity fails {avatar:?}"); + return Err(ret); + } + } + + if is_notify { + self.notify_scene_team_update(); + } + + Ok(()) + } + + pub fn set_player_avatar_team( + &mut self, + uid: u32, + guid_vec: &mut Vec, + appear_avatar_guid: u64, + _is_notify: bool, + ) -> Result<(), Retcode> { + let player = self + .player_map + .get(&uid) + .map(|p| p.upgrade()) + .flatten() + .ok_or(Retcode::RetFail)?; + + let allow_avatar_num = self.get_allow_avatar_num(uid); + if allow_avatar_num < guid_vec.len() { + tracing::warn!( + "guid_vec size is {}, allow: {allow_avatar_num}", + guid_vec.len() + ); + guid_vec.truncate(allow_avatar_num); + } + + if guid_vec.is_empty() { + guid_vec.push(appear_avatar_guid); + } + + let old_avatar_vec = self.get_all_scene_team_avatar_vec(); + let Some(player_avatar_vec) = self.team_avatar_map.get_mut(&uid) else { + tracing::error!("set_player_avatar_team: uid: {uid} not found"); + return Err(Retcode::RetFail); + }; + + let mut new_avatar_vec = Vec::new(); + let mut avatar_guid_set = HashSet::with_capacity(guid_vec.len()); + + for (i, guid) in guid_vec.iter().enumerate() { + let avatar_comp = player.player_avatar_comp.borrow(); + let Some(avatar) = avatar_comp.find_avatar(*guid) else { + tracing::error!("invalid avatar guid in guid_vec"); + return Err(Retcode::RetFail); + }; + + if !avatar_guid_set.insert(*guid) { + tracing::error!( + "duplicate guid in guid_vec, guid:{}, guid_vec:{:?}", + *guid, + &guid_vec + ); + } + + if i == 0 { + if avatar.borrow().get_life_state() == LifeState::LifeDead { + tracing::warn!("avatar dead, guid:{}, guid_vec:{:?}", *guid, &guid_vec); + } + } + + new_avatar_vec.push(SceneTeamAvatar { + uid, + avatar_guid: *guid, + avatar_ptr: avatar.clone(), + }); + } + + *player_avatar_vec = new_avatar_vec; + + self.resize_avatar_team(); + self.on_scene_team_change(old_avatar_vec); + + Ok(()) + } + + pub fn notify_scene_team_update(&self) { + let mut notify = SceneTeamUpdateNotify::default(); + + for uid in &self.player_uid_vec { + let Some(team_avatars) = self.team_avatar_map.get(&uid) else { + continue; + }; + + let Some(player) = self.player_map.get(&uid).map(|p| p.upgrade()).flatten() else { + continue; + }; + + for scene_team_avatar in team_avatars { + let mut scene_team_avatar_proto = proto::SceneTeamAvatar::default(); + scene_team_avatar.to_client(&mut scene_team_avatar_proto, self.is_in_mp_mode); + scene_team_avatar_proto.scene_id = self.scene_id; + scene_team_avatar_proto.is_player_cur_avatar = player + .player_avatar_comp + .borrow() + .get_cur_avatar() + .unwrap() + .borrow() + .base_avatar() + .guid + == scene_team_avatar.avatar_guid; + + notify.scene_team_avatar_list.push(scene_team_avatar_proto); + + tracing::info!( + "notify avatar: {}", + scene_team_avatar + .avatar_ptr + .borrow() + .base_avatar() + .avatar_id + ); + } + } + + notify.is_in_mp = self.is_in_mp_mode; + + for (_, player_wtr) in self.player_map.iter() { + if let Some(player) = player_wtr.upgrade() { + player.send_proto(notify.clone()); + } + } + } + + pub fn get_all_scene_team_avatar_vec(&self) -> Vec { + let mut retstr = Vec::new(); + for (_, avatar_vec) in self.team_avatar_map.iter() { + avatar_vec.iter().for_each(|a| retstr.push(a.clone())); + } + + retstr + } + + pub fn get_team_player_num(&self) -> usize { + self.player_map.len() + } + + pub fn is_avatar_in_team(&self, player_uid: u32, avatar_guid: u64) -> bool { + let Some(team_avatar_vec) = self.team_avatar_map.get(&player_uid) else { + return false; + }; + + team_avatar_vec.iter().any(|a| a.avatar_guid == avatar_guid) + } + + fn on_scene_team_change(&mut self, old_avatar_vec: Vec) { + // TODO: RefreshAbilityGuard, FightPropGuard, TalentComp + + let new_avatar_vec = self.get_all_scene_team_avatar_vec(); + + let mut diff_remove_avatar_vec = Vec::new(); + let mut diff_add_avatar_vec = Vec::new(); + + for avatar in &old_avatar_vec { + if !self.is_avatar_in_team(avatar.uid, avatar.avatar_guid) { + diff_remove_avatar_vec.push(avatar.clone()); + } + } + + for avatar in &new_avatar_vec { + if !old_avatar_vec + .iter() + .any(|a| avatar.uid == a.uid && avatar.avatar_guid == a.avatar_guid) + { + diff_add_avatar_vec.push(avatar.clone()); + } + } + + tracing::info!("[SCENE_TEAM_CHANGE] diff_remove_avatar_vec:{diff_remove_avatar_vec:?} diff_add_avatar_vec:{diff_add_avatar_vec:?}"); + + for team_avatar in diff_remove_avatar_vec { + team_avatar + .avatar_ptr + .borrow_mut() + .on_remove_from_scene_team(); + } + + for team_avatar in diff_add_avatar_vec { + team_avatar.avatar_ptr.borrow_mut().on_add_to_scene_team(); + } + + self.refresh_team_resonances(); + } + + fn refresh_team_resonances(&self) { + // TODO: TeamResonanceExcelConfigMgr::getSatisfiedTeamResonances + } + + fn resize_avatar_team(&mut self) { + // TODO! This is probably only useful for MP, + // so this is not implemented for now + } + + fn allow_avatar_num(team_size: usize, is_host: bool) -> usize { + match team_size { + 1 => 10, + 2 => 2, + 4 => 1, + 3 if is_host => 2, + 3 => 1, + _ => 0, + } + } +} diff --git a/gateserver/Cargo.toml b/gateserver/Cargo.toml new file mode 100644 index 0000000..b64a785 --- /dev/null +++ b/gateserver/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "gateserver" +edition = "2021" +version.workspace = true + +[dependencies] +env_logger.workspace = true + +redis.workspace = true +sqlx.workspace = true +serde.workspace = true +serde_json.workspace = true +toml.workspace = true + +tokio.workspace = true +tokio-util.workspace = true + +tracing.workspace = true +tracing-futures.workspace = true +tracing-log.workspace = true +tracing-subscriber.workspace = true +tracing-bunyan-formatter.workspace = true + +thiserror.workspace = true + +rand.workspace = true +paste.workspace = true +prost.workspace = true +hex.workspace = true +rbase64.workspace = true +proto.workspace = true +mhy-kcp.workspace = true + +common.workspace = true diff --git a/gateserver/gateserver.toml b/gateserver/gateserver.toml new file mode 100644 index 0000000..cf8ecdb --- /dev/null +++ b/gateserver/gateserver.toml @@ -0,0 +1,33 @@ +app_id = 2 + +[[applications.Dispatch]] +app_id = 1 +inner_ip = "127.0.0.1:22001" + +[[applications.Gateserver]] +app_id = 2 +inner_ip = "127.0.0.1:22002" + +[[applications.Dbgate]] +app_id = 3 +inner_ip = "127.0.0.1:22003" + +[[applications.Gameserver]] +app_id = 4 +inner_ip = "127.0.0.1:22004" + +[region] +name = "dev_mualani" +dev_sdk_account = true + +[net.player_server] +outer_ip = "127.0.0.1" +listen_port = 22101 +max_conn_num = 500 +recv_buf_len = 24756 +timeout_sec = 30 +mtu = 1200 + +[database] +connection_string = "postgres://postgres:@localhost:5432/hk4e" +redis_url = "redis://127.0.0.1/" diff --git a/gateserver/src/config.rs b/gateserver/src/config.rs new file mode 100644 index 0000000..0389612 --- /dev/null +++ b/gateserver/src/config.rs @@ -0,0 +1,44 @@ +use std::collections::BTreeMap; + +use common::{ + config::{AppConfig, DatabaseConfig, IpString, RegionConfig}, + net::ServiceType, +}; +use serde::Deserialize; + +const DEFAULT_TOML: &str = include_str!("../gateserver.toml"); + +#[derive(Deserialize, Clone)] +pub struct PlayerServerConfig { + pub outer_ip: IpString, + pub listen_port: u16, + pub max_conn_num: usize, + pub recv_buf_len: usize, + #[allow(dead_code)] + pub timeout_sec: u32, + pub mtu: usize, +} + +#[derive(Deserialize, Clone)] +pub struct NetConfig { + pub player_server: PlayerServerConfig, +} + +#[derive(Deserialize, Clone)] +pub struct GateserverConfig { + pub app_id: u32, + pub applications: BTreeMap>, + pub database: DatabaseConfig, + pub region: RegionConfig, + pub net: NetConfig, +} + +pub fn load() -> Option { + match common::config::load_or_create_config("gateserver.toml", DEFAULT_TOML) { + Ok(config) => Some(config), + Err(err) => { + tracing::error!("Failed to load config: {err}"); + None + } + } +} diff --git a/gateserver/src/main.rs b/gateserver/src/main.rs new file mode 100644 index 0000000..74d5692 --- /dev/null +++ b/gateserver/src/main.rs @@ -0,0 +1,25 @@ +use std::{error::Error, sync::OnceLock}; + +use common::log; +use service::GateserverService; + +mod config; +mod network; +mod service; + +static SERVICE: OnceLock = OnceLock::new(); + +#[tokio::main] +async fn main() -> Result<(), Box> { + log::init_tracing(); + let config = config::load().unwrap(); + let service = GateserverService::new(config).await?; + let service = SERVICE.get_or_init(|| service); + service.run().await; + + Ok(()) +} + +fn gateserver_service() -> &'static GateserverService { + SERVICE.get().unwrap() +} diff --git a/gateserver/src/network/dispatch_connect.rs b/gateserver/src/network/dispatch_connect.rs new file mode 100644 index 0000000..f973196 --- /dev/null +++ b/gateserver/src/network/dispatch_connect.rs @@ -0,0 +1,58 @@ +use std::{net::Ipv4Addr, sync::Arc}; + +use common::{ + net::{tools::Packet, NetError, ServiceType}, + ServiceQualifier, +}; +use proto::{AddGateserverNotify, KeepAliveNotify, PacketHead}; + +use crate::gateserver_service; + +pub struct DispatchConnect; + +impl DispatchConnect { + pub async fn on_connect(&self) -> Result<(), NetError> { + let player_server_conf = &gateserver_service().config.net.player_server; + + gateserver_service() + .service_box + .push_packet_to_service( + ServiceQualifier::Type(ServiceType::Dispatch), + Packet::new( + AddGateserverNotify { + domain_name: String::new(), + outer_ip: u32::from_be_bytes( + player_server_conf + .outer_ip + .0 + .parse::() + .unwrap() + .octets(), + ), + listen_port: player_server_conf.listen_port as u32, + use_domain_name: false, + }, + PacketHead::default(), + ), + ) + .await + } + + pub async fn keep_alive_loop(self: Arc) { + loop { + let _ = gateserver_service() + .service_box + .push_packet_to_service( + ServiceQualifier::Type(ServiceType::Dispatch), + Packet::new( + KeepAliveNotify::default(), + PacketHead { + sender_load: gateserver_service().get_service_load(), + ..Default::default() + }, + ), + ) + .await; + } + } +} diff --git a/gateserver/src/network/mod.rs b/gateserver/src/network/mod.rs new file mode 100644 index 0000000..ea81614 --- /dev/null +++ b/gateserver/src/network/mod.rs @@ -0,0 +1,6 @@ +mod dispatch_connect; +mod network_mgr; +mod player_session; + +pub use network_mgr::NetworkMgr; +pub use player_session::PlayerSession; diff --git a/gateserver/src/network/network_mgr.rs b/gateserver/src/network/network_mgr.rs new file mode 100644 index 0000000..325cdf4 --- /dev/null +++ b/gateserver/src/network/network_mgr.rs @@ -0,0 +1,122 @@ +use std::{error::Error, sync::Arc}; + +use common::{ + impl_net_service, + net::{kcp_server::KcpServerMgr, tools::Packet, AServer, NetError, ServiceType}, + rpc_handlers, +}; +use proto::{ENetReason, PacketHead}; + +use crate::{config::GateserverConfig, gateserver_service}; + +use super::{dispatch_connect::DispatchConnect, PlayerSession}; + +pub struct NetworkMgr { + server: AServer, + dispatch_conn: Arc, + kcp_server_mgr: Arc>, +} + +impl NetworkMgr { + pub async fn new(config: &GateserverConfig) -> Result { + let app_config = config + .applications + .get(&ServiceType::Gateserver) + .map(|v| v.iter().find(|a| a.app_id == config.app_id)) + .unwrap_or_default() + .expect("Failed to get applications.Gateserver entry"); + + let server = AServer::bind(app_config.inner_ip.clone()).await?; + + let player_server_conf = &config.net.player_server; + let kcp_server_mgr = Arc::new( + KcpServerMgr::::new( + player_server_conf.outer_ip.clone(), + player_server_conf.listen_port, + player_server_conf.max_conn_num, + player_server_conf.mtu, + player_server_conf.recv_buf_len, + ) + .await + .expect("failed to initialize KcpServerMgr"), + ); + + Ok(Self { + server, + dispatch_conn: Arc::new(DispatchConnect), + kcp_server_mgr, + }) + } + + pub async fn run(&self) { + tokio::spawn(self.kcp_server_mgr.clone().run()); + + self.dispatch_conn.on_connect().await.unwrap(); + tokio::spawn(self.dispatch_conn.clone().keep_alive_loop()); + + loop { + let Ok(mut packets) = self.server.recv().await else { + continue; + }; + + while let Some(packet) = packets.pop_front() { + if let Err(err) = self.on_recv(packet).await { + tracing::warn!("on_recv fail: {err}"); + } + } + } + } + + rpc_handlers! { + GetPlayerTokenRsp; + PlayerLoginRsp; + } + + async fn on_get_player_token_rsp(&self, packet: Packet) -> Result<(), Box> { + let rsp = gateserver_service() + .login_handler + .on_get_player_token_rsp(&packet) + .await; + + if let Some(session) = self.find_player_session(packet.head.user_session_id) { + session + .send_packet(Packet::new(rsp, PacketHead::default())) + .await?; + } + + Ok(()) + } + + async fn on_player_login_rsp(&self, packet: Packet) -> Result<(), Box> { + gateserver_service() + .login_handler + .on_player_login_rsp(packet) + .await; + + Ok(()) + } + + pub async fn default_packet_process_func(&self, packet: Packet) -> Result<(), Box> { + if let Some(session) = self.find_player_session(packet.head.user_session_id) { + session.send_packet(packet).await?; + } + + Ok(()) + } + + pub async fn disconnect(&self, session_id: u32, reason: ENetReason) { + self.kcp_server_mgr + .disconnect(session_id, reason as u32) + .await + } + + pub fn get_player_session_num(&self) -> usize { + self.kcp_server_mgr.session_count() + } + + pub fn find_player_session(&self, session_id: u32) -> Option> { + self.kcp_server_mgr.find_session(session_id) + } +} + +impl_net_service!(Gateserver); diff --git a/gateserver/src/network/player_session.rs b/gateserver/src/network/player_session.rs new file mode 100644 index 0000000..8cc66e1 --- /dev/null +++ b/gateserver/src/network/player_session.rs @@ -0,0 +1,445 @@ +use std::{ + collections::VecDeque, + io::Error, + net::{IpAddr, SocketAddr}, + pin::Pin, + sync::{Arc, OnceLock, Weak}, + task::{Context, Poll}, +}; + +use common::{ + crypto::MhyXorpad, + net::{ + kcp_server::{KcpConnMgr, KcpSession}, + tools::Packet, + ServiceType, + }, + tools::time_utils, + ServiceQualifier, +}; +use mhy_kcp::Kcp; +use proto::{ + CmdID, ENetReason, GetPlayerTokenReq, GetPlayerTokenRsp, PacketHead, PingReq, PingRsp, + PlayerLoginReq, +}; +use tokio::{ + io::AsyncWrite, + sync::{Mutex, OnceCell}, +}; + +use crate::gateserver_service; + +pub struct PlayerSession { + session_id: u32, + token: u32, + recv_buf_len: usize, + udp_remote_endpoint: SocketAddr, + is_editor: bool, + kcp: Mutex>, + connect_time: u64, + secret_key: OnceCell, + uid: OnceCell, + account_uid: OnceCell, + account_token: OnceCell, + platform_type: OnceCell, + login_finished: OnceCell<()>, + recv_login: OnceCell<()>, + gameserver_id: OnceCell, +} + +impl PlayerSession { + pub fn session_time(&self) -> u32 { + (time_utils::get_now() - self.connect_time) as u32 + } + + async fn ikcp_input(&self, buf: &[u8]) -> Result<(), mhy_kcp::Error> { + let mut kcp = self.kcp.lock().await; + + kcp.input(buf)?; + kcp.async_update(self.session_time()).await?; + kcp.async_flush().await + } + + async fn on_recv(&self, data: &mut [u8]) -> Result<(), Box> { + self.encrypt_packet_data(data).await; + let mut packet = match Packet::parse_from_array(data) { + Ok(packet) => packet, + Err(err) => { + tracing::warn!( + "Packet::parse_from_array failed, uid: {}, session_id: {}, err: {}", + self.get_uid(), + self.session_id, + err + ); + return Ok(()); + } + }; + + self.init_packet_head(&mut packet); + packet.head.enet_is_reliable = 1; + + if !self.is_finish_login() && packet.cmd_id == PingReq::CMD_ID { + let Ok(req) = packet.get_proto::() else { + tracing::warn!( + "get_proto PingReq failed, session_id={}, ip:{}, port:{}", + self.session_id, + self.udp_remote_endpoint.ip(), + self.udp_remote_endpoint.port() + ); + return Ok(()); + }; + + let rsp = PingRsp { + retcode: 0, + client_time: req.client_time, + seq: req.seq, + }; + + let mut packet = Packet::new(rsp, PacketHead::default()); + + self.init_packet_head(&mut packet); + tracing::info!( + "recv ping before login finish, session_id={} uid:{} ip:{} port:{}", + self.session_id, + self.get_uid(), + self.udp_remote_endpoint.ip(), + self.udp_remote_endpoint.port() + ); + + return self.send_packet(packet).await; + } + + if self.uid.get().is_none() { + if packet.cmd_id != GetPlayerTokenReq::CMD_ID && packet.cmd_id != PingReq::CMD_ID { + tracing::error!( + "refuse packet cmd_id={} because uid=0, ip:{}, port:{}", + packet.cmd_id, + self.udp_remote_endpoint.ip(), + self.udp_remote_endpoint.port() + ); + + gateserver_service() + .disconnect(self.session_id, ENetReason::EnetLoginUnfinished) + .await; + } else if packet.cmd_id == GetPlayerTokenReq::CMD_ID { + self.on_get_player_token_req(packet).await; + } + } else { + if !self.is_recv_login() && packet.cmd_id != PlayerLoginReq::CMD_ID { + tracing::error!("need LoginReq first cmd_id: {}", packet.cmd_id); + gateserver_service() + .disconnect(self.session_id, ENetReason::EnetLoginUnfinished) + .await; + + return Ok(()); + } + + if packet.cmd_id == PlayerLoginReq::CMD_ID { + let _ = self.recv_login.set(()); + gateserver_service() + .login_handler + .on_player_login_req(packet) + .await; + } else if self.is_recv_login() { + gateserver_service() + .service_box + .push_packet_to_service( + ServiceQualifier::AppId(self.get_gameserver_id()), + packet, + ) + .await?; + } + } + + Ok(()) + } + + pub async fn send_packet(&self, packet: Packet) -> Result<(), Box> { + let mut buf = packet.to_vec(); + + if packet.cmd_id == GetPlayerTokenRsp::CMD_ID { + self.encrypt_first_packet_data(&mut buf).await; + } else { + self.encrypt_packet_data(&mut buf).await; + } + + let mut kcp = self.kcp.lock().await; + kcp.send(&buf)?; + kcp.async_flush().await?; + kcp.async_update(self.session_time()).await?; + + Ok(()) + } + + fn init_packet_head(&self, packet: &mut Packet) { + let head = &mut packet.head; + head.user_id = self.get_uid(); + head.user_session_id = self.session_id; + head.user_ip = self.get_remote_ip(); + head.source_service = ServiceType::Gateserver as u32; + head.sender_app_id = gateserver_service().config.app_id; + + // TODO: tothemoon and pathfinding + head.target_service = ServiceType::Gameserver as u32; + head.rpc_id = self.get_gameserver_id(); + } + + pub fn get_uid(&self) -> u32 { + self.uid.get().map(|u| *u).unwrap_or_default() + } + + pub fn set_uid(&self, uid: u32) { + let _ = self.uid.set(uid); + } + + pub fn get_account_token(&self) -> String { + self.account_token.get().cloned().unwrap_or_default() + } + + pub fn get_platform_type(&self) -> u32 { + self.platform_type.get().cloned().unwrap_or_default() + } + + pub fn set_gameserver_id(&self, id: u32) { + let _ = self.gameserver_id.set(id); + } + + pub fn get_gameserver_id(&self) -> u32 { + self.gameserver_id.get().cloned().unwrap_or_default() + } + + async fn on_get_player_token_req(&self, packet: Packet) { + let Ok(get_player_token) = packet.get_proto::() else { + tracing::warn!( + "get_proto GetPlayerToken failed, session_id:{}", + self.session_id + ); + return; + }; + if self.account_uid.get().is_none() { + self.account_uid + .set(get_player_token.account_uid.clone()) + .unwrap(); + self.account_token + .set(get_player_token.account_token.clone()) + .unwrap(); + self.platform_type + .set(get_player_token.platform_type) + .unwrap(); + } else { + gateserver_service() + .disconnect(self.session_id, ENetReason::EnetLoginUnfinished) + .await; + tracing::info!("[LOGIN] disconnect session_id:{} reason:{} cmd: req account_uid:{} session account_uid:{}", self.session_id, ENetReason::EnetLoginUnfinished.as_str_name(), get_player_token.account_uid, self.account_uid.get().unwrap()); + return; + } + + tracing::info!( + "[LOGIN] PlayerGetToken account_uid:{}", + &get_player_token.account_uid + ); + + gateserver_service() + .login_handler + .on_get_player_token_req(packet) + .await; + } + + async fn encrypt_packet_data(&self, data: &mut [u8]) { + if let Some(xorpad) = self.secret_key.get() { + xorpad.xor(data); + } else { + self.encrypt_first_packet_data(data).await; + } + } + + async fn encrypt_first_packet_data(&self, data: &mut [u8]) { + static FIRST_PACKET_SECRET_KEY: OnceLock = OnceLock::new(); + + let xorpad = match FIRST_PACKET_SECRET_KEY.get() { + Some(xorpad) => xorpad, + None => { + let service = gateserver_service(); + let region_config = service + .deploy_config_mgr + .find_db_region_config(service.config.region.name.clone()) + .await + .expect("Failed to find region config"); + FIRST_PACKET_SECRET_KEY + .get_or_init(|| MhyXorpad::from_ec2b(®ion_config.client_secret_key)) + } + }; + + xorpad.xor(data); + } + + pub fn set_secret_key(&self, secret_key: MhyXorpad) { + let _ = self.secret_key.set(secret_key); + } + + pub fn set_is_finish_login(&self) { + let _ = self.login_finished.set(()); + } + + pub fn set_is_recv_login(&self) { + let _ = self.recv_login.set(()); + } + + pub fn is_finish_login(&self) -> bool { + self.login_finished.get().is_some() + } + + pub fn is_recv_login(&self) -> bool { + self.recv_login.get().is_some() + } +} + +struct KcpOutput { + conn_mgr: Weak>, + udp_remote_endpoint: SocketAddr, +} + +impl KcpSession for PlayerSession { + fn new( + conn_mgr: Arc>, + session_id: u32, + token: u32, + recv_buf_len: usize, + udp_remote_endpoint: SocketAddr, + ) -> Self + where + Self: Sized, + { + Self { + session_id, + token, + recv_buf_len, + udp_remote_endpoint, + is_editor: false, + kcp: Mutex::new(Kcp::new( + session_id, + token, + false, + KcpOutput { + conn_mgr: Arc::downgrade(&conn_mgr), + udp_remote_endpoint, + }, + )), + connect_time: time_utils::get_now(), + secret_key: OnceCell::new(), + uid: OnceCell::new(), + account_uid: OnceCell::new(), + account_token: OnceCell::new(), + platform_type: OnceCell::new(), + login_finished: OnceCell::new(), + recv_login: OnceCell::new(), + gameserver_id: OnceCell::new(), + } + } + + fn on_connect(&mut self, data: u32) { + match ENetReason::try_from(data as i32) { + Ok(ENetReason::EnetClientEditorConnectKey) => { + tracing::info!( + "[LOGIN] player connect from unity editor, ip:{}, port:{}, session_id:{}", + self.udp_remote_endpoint.ip(), + self.udp_remote_endpoint.port(), + self.session_id + ); + self.is_editor = true; + } + Ok(ENetReason::EnetClientConnectKey) => tracing::info!( + "[LOGIN] player connect from mobile phone, ip:{}, port:{}, session_id:{}", + self.udp_remote_endpoint.ip(), + self.udp_remote_endpoint.port(), + self.session_id + ), + _ => tracing::info!( + "[LOGIN] invalid connect data:{}, ip:{}, port:{}, session_id:{}", + data, + self.udp_remote_endpoint.ip(), + self.udp_remote_endpoint.port(), + self.session_id + ), + } + } + + async fn input(self: Arc, udp_data: Box<[u8]>) { + if let Err(err) = self.ikcp_input(&udp_data).await { + tracing::warn!( + "ikcp_input failed, not a valid kcp packet, session_id={}, ip={}, port={}, bytes_recvd={}, ret={}", + self.session_id, + self.udp_remote_endpoint.ip(), + self.udp_remote_endpoint.port(), + udp_data.len(), + err + ); + return; + } + + let mut queue = VecDeque::>::new(); + let mut buf = vec![0; self.recv_buf_len]; + while let Ok(len) = self.kcp.lock().await.recv(&mut buf) { + queue.push_back(buf[..len].into()); + } + + while let Some(mut packet) = queue.pop_front() { + if let Err(err) = self.on_recv(&mut packet).await { + tracing::warn!("on_recv fail: {err}") + } + } + } + + fn get_remote_ip(&self) -> u32 { + match self.udp_remote_endpoint.ip() { + IpAddr::V4(ip) => u32::from_be_bytes(ip.octets()), + IpAddr::V6(_) => panic!("ipv6 is not supported in this context"), + } + } + + fn get_user_session_id(&self) -> u32 { + self.session_id + } + + fn on_disconnect(&self, reason: u32) { + // TODO: PlayerDisconnectNotify + + let reason = if let Ok(reason) = ENetReason::try_from(reason as i32) { + reason.as_str_name().to_string() + } else { + reason.to_string() + }; + + tracing::info!("[LOGIN] player disconnect, uid:{}, connect time:{}, is editor:{}, reason:{}, session_id:{}", + self.get_uid(), self.session_time() / 1000, self.is_editor, reason, self.session_id); + } + + fn get_user_token(&self) -> u32 { + self.token + } + + fn get_udp_remote_endpoint(&self) -> SocketAddr { + self.udp_remote_endpoint + } +} + +impl AsyncWrite for KcpOutput { + fn poll_write( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &[u8], + ) -> Poll> { + self.conn_mgr + .upgrade() + .unwrap() + .send_udp_packet(cx, buf, self.udp_remote_endpoint) + } + + fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } + + fn poll_shutdown(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } +} diff --git a/gateserver/src/service/gateserver_service.rs b/gateserver/src/service/gateserver_service.rs new file mode 100644 index 0000000..f1872a2 --- /dev/null +++ b/gateserver/src/service/gateserver_service.rs @@ -0,0 +1,70 @@ +use std::{error::Error, sync::Arc}; + +use common::{ + db::{self, DbDeployConfigMgr, RedisMgr}, + net::ServiceType, + ServiceBox, +}; +use proto::ENetReason; + +use crate::{ + config::GateserverConfig, + network::{NetworkMgr, PlayerSession}, +}; + +use super::login_handler::LoginHandler; + +pub struct GateserverService { + pub network_mgr: NetworkMgr, + pub service_box: ServiceBox, + pub deploy_config_mgr: DbDeployConfigMgr, + pub redis_mgr: RedisMgr, + pub config: GateserverConfig, + pub login_handler: LoginHandler, +} + +impl GateserverService { + pub async fn new(config: GateserverConfig) -> Result> { + let deploy_config_mgr = + DbDeployConfigMgr::new(db::connect(&config.database.connection_string).await?); + let redis_mgr = RedisMgr::new(&config.database.redis_url).await?; + + let network_mgr = NetworkMgr::new(&config).await?; + let service_box = ServiceBox::new(config.app_id, &config.applications); + + Ok(Self { + network_mgr, + service_box, + deploy_config_mgr, + redis_mgr, + config, + login_handler: LoginHandler, + }) + } + + pub async fn run(&self) { + self.network_mgr.run().await + } + + pub fn find_player_session(&self, session_id: u32) -> Option> { + self.network_mgr.find_player_session(session_id) + } + + pub fn get_service_load(&self) -> u32 { + self.network_mgr.get_player_session_num() as u32 + } + + pub async fn disconnect(&self, session_id: u32, reason: ENetReason) { + self.network_mgr.disconnect(session_id, reason).await + } + + pub fn choose_gameserver_id(&self) -> u32 { + self.config + .applications + .get(&ServiceType::Gameserver) + .unwrap() + .first() + .unwrap() + .app_id + } +} diff --git a/gateserver/src/service/login_handler.rs b/gateserver/src/service/login_handler.rs new file mode 100644 index 0000000..304235a --- /dev/null +++ b/gateserver/src/service/login_handler.rs @@ -0,0 +1,312 @@ +use common::{ + crypto::{rsa_utils, MhyXorpad}, + net::{kcp_server::KcpSession, tools::Packet, NetError, ServiceType}, + tools::time_utils, + ServiceQualifier, +}; +use proto::{ + GetPlayerTokenReq, GetPlayerTokenRsp, PacketHead, PlayerLoginReq, PlayerStatusRedisData, + PlayerStatusType, +}; +use rand::RngCore; +use thiserror::Error; + +use crate::{gateserver_service, network::PlayerSession}; + +pub struct LoginHandler; + +#[derive(Eq, PartialEq)] +pub enum SdkRetcode { + Fail = -1, + #[allow(dead_code)] + Succ = 0, +} + +#[derive(Error, Debug)] +enum GenSecretSeedError { + #[error("client_rand_key is too long:{0} uid:{1}")] + TooLongClientRandKey(usize, u32), + #[error("this region doesn't allow key_id:{0}")] + KeyNotAllowed(u32), + #[error("key_id:{0} config not found or key is empty")] + KeyNotFound(u32), + #[error("client_rand_key decrypt failed, uid:{0}")] + ClientRandKeyDecryptFail(u32), + #[error("client_rand_key is not uint64, uid:{0}")] + ClientRandKeySizeMismatch(u32), + #[error("client public encrypt failed, server_key:{0}, uid:{1}")] + ClientPublicEncryptFail(String, u32), + #[error("server private sign failed, server_key:{0}, uid:{1}")] + ServerPrivateSignFail(String, u32), +} + +impl LoginHandler { + pub async fn on_get_player_token_req(&self, packet: Packet) { + let user_session_id = packet.head.user_session_id; + let Some(session) = gateserver_service().find_player_session(user_session_id) else { + tracing::warn!("find_player_session: {user_session_id} failed"); + return; + }; + + if self.get_player_token(&session, packet).await.is_none() { + let rsp = GetPlayerTokenRsp { + retcode: 1, + ..Default::default() + }; + let _ = session + .send_packet(Packet::new(rsp, PacketHead::default())) + .await; + }; + } + + pub async fn on_player_login_req(&self, packet: Packet) { + let user_session_id = packet.head.user_session_id; + let Some(session) = gateserver_service().find_player_session(user_session_id) else { + tracing::warn!("find_player_session: {user_session_id} failed"); + return; + }; + + session.set_is_recv_login(); + let _ = self.player_login(&session, packet).await; + } + + pub async fn on_player_login_rsp(&self, packet: Packet) { + let user_session_id = packet.head.user_session_id; + let Some(session) = gateserver_service().find_player_session(user_session_id) else { + tracing::warn!("find_player_session: {user_session_id} failed"); + return; + }; + + session.set_is_finish_login(); + if session.send_packet(packet).await.is_err() { + tracing::error!("send_packet failed uid: {}", session.get_uid()); + } else { + tracing::info!( + "[LOGIN] send LoginRsp to client session: {} uid: {}", + user_session_id, + session.get_uid() + ); + } + } + + async fn get_player_token(&self, session: &PlayerSession, packet: Packet) -> Option<()> { + let Ok(proto) = packet.get_proto::() else { + tracing::warn!("get GetPlayerTokenReq failed"); + return None; + }; + + if !gateserver_service().config.region.dev_sdk_account { + if self + .check_sdk_account(&proto.account_uid, &proto.account_token) + .await + == SdkRetcode::Fail + { + tracing::warn!("account_uid: {} sdk_retcode is FAIL", &proto.account_uid); + return None; + } + } + + self.forward_get_player_token_req(session.get_user_session_id(), packet) + .await + .ok() + } + + async fn player_login(&self, session: &PlayerSession, packet: Packet) -> Option<()> { + let uid = session.get_uid(); + if uid == 0 { + tracing::error!("get_uid is 0, GetPlayerToken first"); + return None; + } + + let Ok(mut req) = packet.get_proto::() else { + tracing::error!("get PlayerLoginReq failed"); + return None; + }; + + if req.token != session.get_account_token() { + tracing::error!( + "uid: {} token not fit: {} {}", + uid, + req.token, + session.get_account_token() + ); + return None; + } + + let platform_type = session.get_platform_type(); + if req.platform_type != platform_type { + tracing::warn!("different platform_type in TokenReq and LoginReq! in login_req:{} going to change it to:{}", req.platform_type, platform_type); + req.platform_type = platform_type; + } + + let Some(status) = self.async_query_player_status(uid).await else { + return None; + }; + + let gameserver_id = match status.status() { + PlayerStatusType::PlayerStatusOnline => { + tracing::info!( + "[LOGIN] online, game: {}, login_rand: {}", + status.gameserver_id, + status.login_rand + ); + status.gameserver_id + } + PlayerStatusType::PlayerStatusOffline => { + let id = gateserver_service().choose_gameserver_id(); + tracing::info!("[LOGIN] offline, and choose game: {id}"); + id + } + }; + + session.set_gameserver_id(gameserver_id); + + let mut packet = packet.clone(); + packet.head.user_session_id = session.get_user_session_id(); + packet.head.user_id = uid; + packet.head.user_ip = session.get_remote_ip(); + gateserver_service() + .service_box + .push_packet_to_service(ServiceQualifier::AppId(gameserver_id), packet) + .await + .ok() + } + + async fn async_query_player_status(&self, uid: u32) -> Option { + let ret = gateserver_service().redis_mgr.get_player_status(uid).await; + match ret { + Some(_) => tracing::info!("query_player_status succ uid: {uid}"), + None => tracing::error!("get_player_status failed, uid: {uid}"), + } + + ret + } + + async fn forward_get_player_token_req( + &self, + session_id: u32, + mut packet: Packet, + ) -> Result<(), NetError> { + let app_id = gateserver_service().config.app_id; + + packet.head.source_service = ServiceType::Gateserver as u32; + packet.head.sender_app_id = app_id; + packet.head.user_session_id = session_id; + + gateserver_service() + .service_box + .push_packet_to_service(ServiceQualifier::Type(ServiceType::Dbgate), packet) + .await + } + + pub async fn check_sdk_account(&self, _account_uid: &str, _account_token: &str) -> SdkRetcode { + tracing::error!("LoginHandler::check_sdk_account not implemented"); + SdkRetcode::Fail + } + + pub async fn on_get_player_token_rsp(&self, packet: &Packet) -> GetPlayerTokenRsp { + let session_id = packet.head.user_session_id; + let Ok(mut rsp) = packet.get_proto::() else { + tracing::error!("get GetPlayerTokenRsp failed"); + return GetPlayerTokenRsp { + retcode: -1, + ..Default::default() + }; + }; + + tracing::info!( + "on_get_player_token_rsp session_id:{} uid:{} account_uid:{} ret:{} platform_type:{}", + session_id, + rsp.uid, + &rsp.account_uid, + rsp.retcode, + rsp.platform_type + ); + + let Some(session) = gateserver_service().find_player_session(session_id) else { + tracing::warn!("find_player_session: {session_id} failed"); + return rsp; + }; + + if rsp.retcode == 0 { + match self.gen_secret_seed(&mut rsp).await { + Ok(seed) => { + let secret_key = MhyXorpad::from_seed(seed); + session.set_secret_key(secret_key); + session.set_uid(rsp.uid); + } + Err(err) => tracing::warn!("gen SecretSeed failed, uid: {}, {err}", rsp.uid), + } + } + + rsp + } + + async fn gen_secret_seed( + &self, + rsp: &mut GetPlayerTokenRsp, + ) -> Result { + let service = gateserver_service(); + + let uid = rsp.uid; + let rand_key = rbase64::decode(&rsp.server_rand_key).unwrap_or_default(); + rsp.server_rand_key.clear(); + rsp.retcode = -1; + + let server_rand_key = + ((rand::thread_rng().next_u32() as u64) << 32) | (time_utils::get_now() & 0xFFFFFFFF); + + if rand_key.len() <= 0x200 { + let region_config = service + .deploy_config_mgr + .find_db_region_config(service.config.region.name.clone()) + .await + .unwrap(); + let key_id = rsp.key_id; + + if !region_config.is_key_allowed(key_id) { + return Err(GenSecretSeedError::KeyNotAllowed(key_id)); + } + + let rsa_config = service + .deploy_config_mgr + .find_db_rsakey_config(key_id.into()) + .await + .ok_or(GenSecretSeedError::KeyNotFound(key_id))?; + + let client_rand_key = + rsa_utils::private_decrypt(&rsa_config.server_private_key, &rand_key) + .ok_or(GenSecretSeedError::ClientRandKeyDecryptFail(uid))?; + + let client_rand_key = u64::from_be_bytes( + client_rand_key + .try_into() + .map_err(|_| GenSecretSeedError::ClientRandKeySizeMismatch(uid))?, + ); + + let server_rand_key_b = server_rand_key.to_be_bytes(); + let server_seed_encrypted = + rsa_utils::public_encrypt(&rsa_config.client_public_key, &server_rand_key_b) + .ok_or(GenSecretSeedError::ClientPublicEncryptFail( + hex::encode(&server_rand_key_b), + uid, + ))?; + + let server_sign = + rsa_utils::private_sign(&rsa_config.server_private_key, &server_rand_key_b).ok_or( + GenSecretSeedError::ServerPrivateSignFail(hex::encode(&server_rand_key_b), uid), + )?; + + rsp.retcode = 0; + rsp.server_rand_key = rbase64::encode(&server_seed_encrypted); + rsp.sign = rbase64::encode(&server_sign); + + Ok(client_rand_key ^ server_rand_key) + } else { + Err(GenSecretSeedError::TooLongClientRandKey( + rand_key.len(), + uid, + )) + } + } +} diff --git a/gateserver/src/service/mod.rs b/gateserver/src/service/mod.rs new file mode 100644 index 0000000..d90515b --- /dev/null +++ b/gateserver/src/service/mod.rs @@ -0,0 +1,3 @@ +mod gateserver_service; +mod login_handler; +pub use gateserver_service::GateserverService; diff --git a/hk4e_data/Cargo.toml b/hk4e_data/Cargo.toml new file mode 100644 index 0000000..c0df1ce --- /dev/null +++ b/hk4e_data/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "data" +edition = "2021" +version.workspace = true + +[dependencies] +proto.workspace = true +csv.workspace = true +serde.workspace = true +serde_json.workspace = true +paste.workspace = true diff --git a/hk4e_data/src/fight_prop_type.rs b/hk4e_data/src/fight_prop_type.rs new file mode 100644 index 0000000..31cfcfb --- /dev/null +++ b/hk4e_data/src/fight_prop_type.rs @@ -0,0 +1,100 @@ +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] +#[repr(u32)] +pub enum FightPropType { + None = 0, + BaseHp = 1, + Hp = 2, + HpPercent = 3, + BaseAttack = 4, + Attack = 5, + AttackPercent = 6, + BaseDefense = 7, + Defense = 8, + DefensePercent = 9, + BaseSpeed = 10, + SpeedPercent = 11, + HpMpPercent = 12, + AttackMpPercent = 13, + Critical = 20, + AntiCritical = 21, + CriticalHurt = 22, + ChargeEfficiency = 23, + AddHurt = 24, + SubHurt = 25, + HealAdd = 26, + HealedAdd = 27, + ElementMastery = 28, + PhysicalSubHurt = 29, + PhysicalAddHurt = 30, + DefenceIgnoreRatio = 31, + DefenceIgnoreDelta = 32, + FireAddHurt = 40, + ElecAddHurt = 41, + WaterAddHurt = 42, + GrassAddHurt = 43, + WindAddHurt = 44, + RockAddHurt = 45, + IceAddHurt = 46, + HitHeadAddHurt = 47, + FireSubHurt = 50, + ElecSubHurt = 51, + WaterSubHurt = 52, + GrassSubHurt = 53, + WindSubHurt = 54, + RockSubHurt = 55, + IceSubHurt = 56, + EffectHit = 60, + EffectResist = 61, + FreezeResist = 62, + TorporResist = 63, + DizzyResist = 64, + FreezeShorten = 65, + TorporShorten = 66, + DizzyShorten = 67, + MaxFireEnergy = 70, + MaxElecEnergy = 71, + MaxWaterEnergy = 72, + MaxGrassEnergy = 73, + MaxWindEnergy = 74, + MaxIceEnergy = 75, + MaxRockEnergy = 76, + SkillCdMinusRatio = 80, + ShieldCostMinusRatio = 81, + CurFireEnergy = 1000, + CurElecEnergy = 1001, + CurWaterEnergy = 1002, + CurGrassEnergy = 1003, + CurWindEnergy = 1004, + CurIceEnergy = 1005, + CurRockEnergy = 1006, + CurHp = 1010, + MaxHp = 2000, + CurAttack = 2001, + CurDefense = 2002, + CurSpeed = 2003, + NonextraAttack = 3000, + NonextraDefense = 3001, + NonextraCritical = 3002, + NonextraAntiCritical = 3003, + NonextraCriticalHurt = 3004, + NonextraChargeEfficiency = 3005, + NonextraElementMastery = 3006, + NonextraPhysicalSubHurt = 3007, + NonextraFireAddHurt = 3008, + NonextraElecAddHurt = 3009, + NonextraWaterAddHurt = 3010, + NonextraGrassAddHurt = 3011, + NonextraWindAddHurt = 3012, + NonextraRockAddHurt = 3013, + NonextraIceAddHurt = 3014, + NonextraFireSubHurt = 3015, + NonextraElecSubHurt = 3016, + NonextraWaterSubHurt = 3017, + NonextraGrassSubHurt = 3018, + NonextraWindSubHurt = 3019, + NonextraRockSubHurt = 3020, + NonextraIceSubHurt = 3021, + NonextraSkillCdMinusRatio = 3022, + NonextraShieldCostMinusRatio = 3023, + NonextraPhysicalAddHurt = 3024, +} diff --git a/hk4e_data/src/json_data_manual/mod.rs b/hk4e_data/src/json_data_manual/mod.rs new file mode 100644 index 0000000..7e4f0b3 --- /dev/null +++ b/hk4e_data/src/json_data_manual/mod.rs @@ -0,0 +1,50 @@ +use std::{collections::HashMap, io::Read, sync::OnceLock}; + +use serde::Deserialize; + +#[derive(Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ConfigAvatarAbilityEntry { + #[serde(rename = "abilityID")] + pub ability_id: String, + pub ability_name: String, + pub ability_override: String, +} + +#[derive(Deserialize)] +pub struct ConfigAvatar { + pub abilities: Vec, +} + +static AVATAR_CONFIG_MAP: OnceLock> = OnceLock::new(); + +pub fn load_all_config_avatar() -> Result<(), Box> { + let mut map = HashMap::new(); + + let mut read_dir = std::fs::read_dir("data/json/avatar/")?; + while let Some(entry) = read_dir.next() { + if let Ok(entry) = entry { + let path = entry.path(); + if path.is_file() { + let name = path + .to_str() + .unwrap() + .replace("data/json/avatar/ConfigAvatar_", "") + .replace(".json", ""); + let mut file = std::fs::File::open(path)?; + + let mut data = String::new(); + file.read_to_string(&mut data)?; + + map.insert(name, serde_json::from_str(&data)?); + } + } + } + + let _ = AVATAR_CONFIG_MAP.set(map); + Ok(()) +} + +pub fn get_config_avatar(name: &str) -> Option<&ConfigAvatar> { + AVATAR_CONFIG_MAP.get().unwrap().get(name) +} diff --git a/hk4e_data/src/lib.rs b/hk4e_data/src/lib.rs new file mode 100644 index 0000000..95553e4 --- /dev/null +++ b/hk4e_data/src/lib.rs @@ -0,0 +1,9 @@ +pub mod math_def; +pub mod prop_type; + +mod fight_prop_type; +mod json_data_manual; +mod txt_data_manual; +pub use fight_prop_type::FightPropType; +pub use json_data_manual::*; +pub use txt_data_manual::*; diff --git a/hk4e_data/src/math_def.rs b/hk4e_data/src/math_def.rs new file mode 100644 index 0000000..7d9dfc0 --- /dev/null +++ b/hk4e_data/src/math_def.rs @@ -0,0 +1,88 @@ +use proto::{Vector, VectorBin}; + +#[derive(Default, PartialEq, Clone, Debug)] +pub struct Vector3 { + pub x: f32, + pub y: f32, + pub z: f32, +} + +#[derive(Default, PartialEq, Clone, Debug)] +pub struct Vector2 { + pub x: f32, + pub y: f32, +} + +#[derive(Default, PartialEq, Eq, Clone, Debug)] +pub struct Coordinate { + pub x: i32, + pub y: i32, +} + +pub static VECTOR3_ZERO: Vector3 = Vector3 { + x: 0.0, + y: 0.0, + z: 0.0, +}; + +impl Vector3 { + pub fn from_bin(bin: VectorBin) -> Self { + Self { + x: bin.x, + y: bin.y, + z: bin.z, + } + } + + pub fn to_bin(&self) -> VectorBin { + VectorBin { + x: self.x, + y: self.y, + z: self.z, + } + } + + pub fn to_client(&self) -> Vector { + Vector { + x: self.x, + y: self.y, + z: self.z, + } + } + + pub fn reset(&mut self) { + self.x = 0.0; + self.y = 0.0; + self.z = 0.0; + } + + pub fn is_zero(&self) -> bool { + if self.x.abs() >= 0.00000011920929 { + return false; + } + + if self.y.abs() >= 0.00000011920929 { + return false; + } + + self.z.abs() < 0.00000011920929 + } + + pub fn is_valid(&self) -> bool { + self.x.is_finite() && self.y.is_finite() && self.z.is_finite() + } + + pub fn is_valid_rot(&self) -> bool { + let range = 0.0..361.0; + self.is_valid() + && range.contains(&self.x) + && range.contains(&self.y) + && range.contains(&self.z) + } +} + +impl ToString for Vector3 { + fn to_string(&self) -> String { + format!("{{{},{},{}}}", self.x, self.y, self.z) + } +} diff --git a/hk4e_data/src/prop_type.rs b/hk4e_data/src/prop_type.rs new file mode 100644 index 0000000..c63e6b6 --- /dev/null +++ b/hk4e_data/src/prop_type.rs @@ -0,0 +1,43 @@ +pub const PROP_EXP: u32 = 1001; +pub const PROP_BREAK_LEVEL: u32 = 1002; +pub const PROP_SATIATION_VAL: u32 = 1003; +pub const PROP_SATIATION_PENALTY_TIME: u32 = 1004; +pub const PROP_LEVEL: u32 = 4001; + +pub const PROP_LAST_CHANGE_AVATAR_TIME: u32 = 10001; +pub const PROP_MAX_SPRING_VOLUME: u32 = 10002; +pub const PROP_CUR_SPRING_VOLUME: u32 = 10003; +pub const PROP_IS_SPRING_AUTO_USE: u32 = 10004; +pub const PROP_SPRING_AUTO_USE_PERCENT: u32 = 10005; +pub const PROP_IS_FLYABLE: u32 = 10006; +pub const PROP_IS_WEATHER_LOCKED: u32 = 10007; +pub const PROP_IS_GAME_TIME_LOCKED: u32 = 10008; +pub const PROP_IS_TRANSFERABLE: u32 = 10009; +pub const PROP_MAX_STAMINA: u32 = 10010; +pub const PROP_CUR_PERSIST_STAMINA: u32 = 10011; +pub const PROP_CUR_TEMPORARY_STAMINA: u32 = 10012; +pub const PROP_PLAYER_LEVEL: u32 = 10013; +pub const PROP_PLAYER_EXP: u32 = 10014; +pub const PROP_PLAYER_HCOIN: u32 = 10015; +pub const PROP_PLAYER_SCOIN: u32 = 10016; +pub const PROP_PLAYER_MP_SETTING_TYPE: u32 = 10017; +pub const PROP_IS_MP_MODE_AVAILABLE: u32 = 10018; +pub const PROP_PLAYER_WORLD_LEVEL: u32 = 10019; +pub const PROP_PLAYER_RESIN: u32 = 10020; +pub const PROP_PLAYER_WAIT_SUB_HCOIN: u32 = 10022; +pub const PROP_PLAYER_WAIT_SUB_SCOIN: u32 = 10023; +pub const PROP_IS_ONLY_MP_WITH_PS_PLAYER: u32 = 10024; +pub const PROP_PLAYER_MCOIN: u32 = 10025; +pub const PROP_PLAYER_WAIT_SUB_MCOIN: u32 = 10026; +pub const PROP_PLAYER_LEGENDARY_KEY: u32 = 10027; +pub const PROP_IS_HAS_FIRST_SHARE: u32 = 10028; +pub const PROP_PLAYER_FORGE_POINT: u32 = 10029; +pub const PROP_CUR_CLIMATE_METER: u32 = 10035; +pub const PROP_CUR_CLIMATE_TYPE: u32 = 10036; +pub const PROP_CUR_CLIMATE_AREA_ID: u32 = 10037; +pub const PROP_CUR_CLIMATE_AREA_CLIMATE_TYPE: u32 = 10038; +pub const PROP_PLAYER_WORLD_LEVEL_LIMIT: u32 = 10039; +pub const PROP_PLAYER_WORLD_LEVEL_ADJUST_CD: u32 = 10040; +pub const PROP_PLAYER_LEGENDARY_DAILY_TASK_NUM: u32 = 10041; +pub const PROP_PLAYER_HOME_COIN: u32 = 10042; +pub const PROP_PLAYER_WAIT_SUB_HOME_COIN: u32 = 10043; diff --git a/hk4e_data/src/txt_data_manual/avatar_excel_config.rs b/hk4e_data/src/txt_data_manual/avatar_excel_config.rs new file mode 100644 index 0000000..2c52250 --- /dev/null +++ b/hk4e_data/src/txt_data_manual/avatar_excel_config.rs @@ -0,0 +1,46 @@ +use super::tsv_util::{default_if_empty, from_sequence}; +use serde::Deserialize; + +#[derive(Deserialize, Debug, Default, Clone, Copy, PartialEq, Eq)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +pub enum AvatarUseType { + #[default] + None, + AvatarFormal, + AvatarAbandon, + AvatarSyncTest, +} + +#[derive(Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct AvatarData { + pub body_type: String, + pub icon_name: String, + pub side_icon_name: String, + pub quality_type: String, + pub charge_efficiency: f32, + pub initial_weapon: u32, + pub weapon_type: String, + pub image_name: String, + pub skill_depot_id: u32, + pub stamina_recover_speed: u32, + #[serde(deserialize_with = "from_sequence")] + pub cand_skill_depot_ids: Vec, + #[serde(default)] + pub avatar_identity_type: String, + pub avatar_promote_id: u32, + #[serde(deserialize_with = "from_sequence")] + pub avatar_promote_reward_level_list: Vec, + #[serde(rename = "featureTagGroupID")] + pub feature_tag_group_id: u32, + pub hp_base: f32, + pub attack_base: f32, + pub defense_base: f32, + pub critical: f32, + pub critical_hurt: f32, + pub id: u32, + #[serde(deserialize_with = "default_if_empty")] + pub use_type: AvatarUseType, + #[serde(default)] + pub is_range_attack: bool, +} diff --git a/hk4e_data/src/txt_data_manual/mod.rs b/hk4e_data/src/txt_data_manual/mod.rs new file mode 100644 index 0000000..a022f8b --- /dev/null +++ b/hk4e_data/src/txt_data_manual/mod.rs @@ -0,0 +1,48 @@ +use paste::paste; +use std::sync::OnceLock; + +mod avatar_excel_config; +mod open_state_excel_config; +mod scene_excel_config; +mod world_excel_config; + +pub(crate) mod tsv_util; +pub use avatar_excel_config::{AvatarData, AvatarUseType}; +pub use open_state_excel_config::OpenStateData; +pub use scene_excel_config::{SceneData, SceneType}; +pub use world_excel_config::WorldData; + +macro_rules! tables { + ($($table_type:ident;)*) => { + $(paste! { + static [<$table_type:snake:upper _VEC>]: OnceLock> = OnceLock::new(); + })* + + pub fn load_txt_data() -> Result<(), Box> { + $(paste! { + let path = concat!("data/txt/", stringify!($table_type), ".txt"); + let data = std::fs::read_to_string(path)?; + let _ = [<$table_type:snake:upper _VEC>].set(tsv_util::from_str(&data)?); + })* + + Ok(()) + } + + $(paste! { + pub fn []() -> ::std::slice::Iter<'static, $table_type> { + [<$table_type:snake:upper _VEC>].get().unwrap().iter() + } + })* + }; +} + +tables! { + AvatarData; + WorldData; + SceneData; + OpenStateData; +} + +pub fn get_default_world_main_scene_id() -> u32 { + iter_world_data().next().unwrap().main_scene_id +} diff --git a/hk4e_data/src/txt_data_manual/open_state_excel_config.rs b/hk4e_data/src/txt_data_manual/open_state_excel_config.rs new file mode 100644 index 0000000..474213c --- /dev/null +++ b/hk4e_data/src/txt_data_manual/open_state_excel_config.rs @@ -0,0 +1,11 @@ +use serde::Deserialize; + +#[derive(Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct OpenStateData { + pub id: u32, + pub system_open_ui_id: u32, + pub cond: String, + pub default_state: bool, + pub allow_client_open: bool, +} diff --git a/hk4e_data/src/txt_data_manual/scene_excel_config.rs b/hk4e_data/src/txt_data_manual/scene_excel_config.rs new file mode 100644 index 0000000..35ec784 --- /dev/null +++ b/hk4e_data/src/txt_data_manual/scene_excel_config.rs @@ -0,0 +1,49 @@ +use super::tsv_util::{default_if_empty, from_sequence}; +use serde::Deserialize; + +#[derive(Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)] +pub enum SceneType { + #[default] + Unknown, + #[serde(rename = "SCENE_WORLD")] + World, + #[serde(rename = "SCENE_DUNGEON")] + Dungeon, + #[serde(rename = "SCENE_ROOM")] + Room, + #[serde(rename = "SCENE_HOME_WORLD")] + HomeWorld, + #[serde(rename = "SCENE_HOME_ROOM")] + HomeRoom, +} + +#[derive(Deserialize, Default)] +#[serde(rename_all = "camelCase")] +#[serde(default)] +pub struct SceneData { + #[serde(deserialize_with = "default_if_empty")] + pub id: u32, + pub r#type: SceneType, + pub subtype: String, + pub ignore_nav_mesh: String, + pub script_data: String, + pub override_default_profile: String, + pub level_entity_config: String, + #[serde(deserialize_with = "default_if_empty")] + pub entity_appear_sorted: u32, + #[serde(deserialize_with = "from_sequence")] + pub specified_avatar_list: Vec, + #[serde(deserialize_with = "default_if_empty")] + pub max_specified_avatar_num: u32, + #[serde(deserialize_with = "from_sequence")] + pub boundary_point_vec: Vec, + #[serde(deserialize_with = "from_sequence")] + pub dungeon_entry_point: Vec, + pub navmesh_mode: String, + #[serde(deserialize_with = "default_if_empty")] + pub is_allow_map_mark_point: bool, + #[serde(deserialize_with = "default_if_empty")] + pub safe_point: u32, + #[serde(deserialize_with = "default_if_empty")] + pub use_to_the_moon: bool, +} diff --git a/hk4e_data/src/txt_data_manual/tsv_util.rs b/hk4e_data/src/txt_data_manual/tsv_util.rs new file mode 100644 index 0000000..88d2539 --- /dev/null +++ b/hk4e_data/src/txt_data_manual/tsv_util.rs @@ -0,0 +1,40 @@ +use std::str::FromStr; + +use csv::ReaderBuilder; +use serde::{de::DeserializeOwned, Deserialize, Deserializer}; + +pub fn from_sequence<'de, D, T>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, + T: FromStr + Default, +{ + let sequence = String::deserialize(deserializer)?; + match sequence.len() { + 0 => Ok(vec![]), + _ => Ok(sequence + .split(",") + .map(|s| s.parse::().unwrap_or_default()) + .collect()), + } +} + +pub fn from_str<'de, T>(data: &str) -> Result, csv::Error> +where + T: DeserializeOwned, +{ + let mut reader = ReaderBuilder::new() + .delimiter(b'\t') + .has_headers(true) + .from_reader(data.as_bytes()); + + reader.deserialize::().collect() +} + +pub fn default_if_empty<'de, D, T>(de: D) -> Result +where + D: serde::Deserializer<'de>, + T: serde::Deserialize<'de> + Default, +{ + use serde::Deserialize; + Option::::deserialize(de).map(|x| x.unwrap_or_default()) +} diff --git a/hk4e_data/src/txt_data_manual/world_excel_config.rs b/hk4e_data/src/txt_data_manual/world_excel_config.rs new file mode 100644 index 0000000..0f989dc --- /dev/null +++ b/hk4e_data/src/txt_data_manual/world_excel_config.rs @@ -0,0 +1,12 @@ +use super::tsv_util::from_sequence; +use serde::Deserialize; + +#[derive(Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct WorldData { + pub id: u32, + pub r#type: String, + pub main_scene_id: u32, + #[serde(deserialize_with = "from_sequence")] + pub sub_scene_id_vec: Vec, +} diff --git a/hk4e_proto/Cargo.toml b/hk4e_proto/Cargo.toml new file mode 100644 index 0000000..1f896ad --- /dev/null +++ b/hk4e_proto/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "proto" +edition = "2021" +version.workspace = true + +[dependencies] +prost.workspace = true +prost-types.workspace = true +proto_gen.workspace = true + +[build-dependencies] +prost-build.workspace = true diff --git a/hk4e_proto/build.rs b/hk4e_proto/build.rs new file mode 100644 index 0000000..0410a42 --- /dev/null +++ b/hk4e_proto/build.rs @@ -0,0 +1,57 @@ +use std::{ + fs::{self, File}, + io::{BufRead, BufReader}, + path::Path, +}; + +pub fn main() { + let proto_files = [ + "packet_head", + "server_only", + "bin.server", + "redis_data", + "cmd", + ]; + + for proto_file in &proto_files { + if Path::new(proto_file).exists() { + println!("cargo:rerun-if-changed={proto_file}.proto"); + + prost_build::Config::new() + .out_dir("out/") + .type_attribute(".", "#[derive(proto_gen::CmdID)]") + .compile_protos(&[format!("{proto_file}.proto")], &[proto_file]) + .unwrap(); + } + } + + implement_cmd_id(Path::new("out/cmd.rs")).unwrap(); + implement_cmd_id(Path::new("out/server_only.rs")).unwrap(); +} + +fn implement_cmd_id(path: &Path) -> std::io::Result<()> { + let file = File::open(path)?; + let reader = BufReader::new(file); + let mut output = Vec::new(); + + let mut cmd_id_attr = None; + for line in reader.lines() { + let line = line?; + if line.contains("CmdID: ") { + cmd_id_attr = Some(make_cmd_id_attr(&line).unwrap()); + } else { + output.push(line); + if let Some(attr) = cmd_id_attr.take() { + output.push(attr); + } + } + } + + fs::write(path, output.join("\n").as_bytes())?; + Ok(()) +} + +fn make_cmd_id_attr(line: &str) -> Option { + let cmd_id = line.split("CmdID: ").nth(1)?.parse::().ok()?; + Some(format!("#[cmdid({cmd_id})]")) +} diff --git a/hk4e_proto/out/.gitkeep b/hk4e_proto/out/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/hk4e_proto/out/bin.rs b/hk4e_proto/out/bin.rs new file mode 100644 index 0000000..8070f68 --- /dev/null +++ b/hk4e_proto/out/bin.rs @@ -0,0 +1,9463 @@ +// This file is @generated by prost-build. +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VectorBin { + #[prost(float, tag = "1")] + pub x: f32, + #[prost(float, tag = "2")] + pub y: f32, + #[prost(float, tag = "3")] + pub z: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Uint32PairBin { + #[prost(uint32, tag = "1")] + pub key: u32, + #[prost(uint32, tag = "2")] + pub value: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Uint32ToInt32PairBin { + #[prost(uint32, tag = "1")] + pub key: u32, + #[prost(int32, tag = "2")] + pub value: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FloatPairBin { + #[prost(float, tag = "1")] + pub first: f32, + #[prost(float, tag = "2")] + pub second: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Uint32List { + #[prost(uint32, repeated, tag = "1")] + pub uint32_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Int32List { + #[prost(int32, repeated, tag = "1")] + pub int32_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReliquaryBin { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub exp: u32, + #[prost(uint32, tag = "4")] + pub main_prop_id: u32, + #[prost(uint32, repeated, tag = "5")] + pub append_prop_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WeaponBin { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub exp: u32, + #[prost(uint32, tag = "3")] + pub promote_level: u32, + #[prost(map = "uint32, uint32", tag = "4")] + pub affix_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ItemParamBin { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub count: u32, + #[prost(uint32, tag = "3")] + pub level: u32, + #[prost(uint32, tag = "4")] + pub promote_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MailBin { + #[prost(string, tag = "1")] + pub title: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub content: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub sender: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "4")] + pub item_param_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "5")] + pub send_time: u32, + #[prost(fixed32, tag = "6")] + pub expire_time: u32, + #[prost(uint32, tag = "7")] + pub importance: u32, + #[prost(uint32, tag = "8")] + pub config_id: u32, + #[prost(string, repeated, tag = "9")] + pub argument_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(uint32, tag = "10")] + pub item_limit_type: u32, + #[prost(uint32, tag = "11")] + pub source_type: u32, + #[prost(string, tag = "12")] + pub tag: ::prost::alloc::string::String, + #[prost(uint32, tag = "13")] + pub reason_type: u32, + #[prost(uint32, tag = "14")] + pub collect_state: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelItemOp { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub item_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelItemNegativeOp { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub item_num: u32, + #[prost(uint32, tag = "3")] + pub remain_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelEquipOp { + #[prost(uint64, tag = "1")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGotoOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResetParentQuestOp { + #[prost(uint32, tag = "3")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RefreshGroupOp { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "2")] + pub suite_id: u32, + #[prost(uint32, tag = "3")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetScenePointLockStatusOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub point_id: u32, + #[prost(bool, tag = "3")] + pub is_locked: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetPlayerNickNameOp { + #[prost(string, tag = "1")] + pub nick_name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RefreshShopOp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UnlockTalentOp { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub skill_depot_id: u32, + #[prost(uint32, tag = "3")] + pub talent_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TakeOffEquipOp { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub equip_type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelMailOp { + #[prost(uint32, repeated, tag = "1")] + pub mail_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UnlockAreaOp { + #[prost(uint32, tag = "1")] + pub area_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FinishDailyTaskOp { + #[prost(uint32, tag = "1")] + pub daily_task_id: u32, + #[prost(uint32, tag = "2")] + pub daily_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddItemOp { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub item_count: u32, + #[prost(oneof = "add_item_op::Detail", tags = "101, 102")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `AddItemOp`. +pub mod add_item_op { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "101")] + Reliquary(super::ReliquaryBin), + #[prost(message, tag = "102")] + Weapon(super::WeaponBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ModifyBornPosOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SubCoinNegativeOp { + #[prost(uint32, tag = "1")] + pub scoin: u32, + #[prost(uint32, tag = "2")] + pub hcoin: u32, + #[prost(uint32, tag = "3")] + pub mcoin: u32, + #[prost(uint32, tag = "4")] + pub home_coin: u32, + #[prost(int32, tag = "5")] + pub platform_type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetQuestContentProgressOp { + #[prost(uint32, tag = "1")] + pub quest_id: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub finish_progress_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "3")] + pub fail_progress_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FinishOrderOp { + #[prost(uint32, tag = "1")] + pub order_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddOrModifyWatcherOp { + #[prost(uint32, tag = "1")] + pub watcher_id: u32, + #[prost(uint32, tag = "2")] + pub progress: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelWatcherOp { + #[prost(uint32, tag = "1")] + pub watcher_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetSignatureOp { + #[prost(string, tag = "1")] + pub signature: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddOrSubResinOp { + #[prost(uint32, tag = "1")] + pub delta_count: u32, + #[prost(bool, tag = "2")] + pub is_sub: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetQuestGlobalVarValueOp { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(int32, tag = "2")] + pub value: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddMcoinVipPointOp { + #[prost(uint32, tag = "1")] + pub mcoin: u32, + #[prost(uint32, tag = "2")] + pub vip_point: u32, + #[prost(int32, tag = "3")] + pub platform_type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExchangeMcoinOp { + #[prost(uint32, tag = "1")] + pub num: u32, + #[prost(int32, tag = "2")] + pub exchange_type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GroupBinOp { + #[prost(enumeration = "GroupBinOperation", tag = "1")] + pub op_type: i32, + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "3")] + pub config_id: u32, + #[prost(bool, tag = "4")] + pub is_add: bool, + #[prost(uint32, tag = "5")] + pub state: u32, + #[prost(bool, tag = "6")] + pub is_create: bool, + #[prost(string, tag = "7")] + pub trigger_name: ::prost::alloc::string::String, + #[prost(uint32, tag = "8")] + pub trigger_count: u32, + #[prost(string, tag = "9")] + pub variable_name: ::prost::alloc::string::String, + #[prost(int32, tag = "10")] + pub variable_value: i32, + #[prost(uint32, tag = "11")] + pub target_suite: u32, + #[prost(uint32, tag = "12")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelOneOffOp { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "2")] + pub config_id: u32, + #[prost(bool, tag = "3")] + pub is_monster: bool, + #[prost(uint32, tag = "4")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FinishRoutineOp { + #[prost(uint32, tag = "1")] + pub routine_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FinishDailyTaskUnloadGroupOp { + #[prost(uint32, tag = "1")] + pub daily_task_id: u32, + #[prost(uint32, tag = "2")] + pub daily_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RefreshBlossomCircleCampOp { + #[prost(uint32, tag = "1")] + pub refresh_id: u32, + #[prost(uint32, tag = "2")] + pub circle_camp_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlessingActivityGivePicOp { + #[prost(uint32, tag = "1")] + pub source_uid: u32, + #[prost(uint32, tag = "2")] + pub target_uid: u32, + #[prost(uint32, tag = "3")] + pub pic_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExpeditionActivityAssistOp { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub assist_time: u32, + #[prost(uint32, tag = "3")] + pub target_uid: u32, + #[prost(string, tag = "4")] + pub target_nick_name: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub online_id: ::prost::alloc::string::String, + #[prost(uint32, tag = "6")] + pub assist_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RecoverWorldLevelOp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddRegionSearchProgressOp { + #[prost(uint32, tag = "1")] + pub region_id: u32, + #[prost(uint32, tag = "2")] + pub add_recycle: u32, + #[prost(uint32, tag = "3")] + pub add_progress: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetMatchPunishTimesOp { + #[prost(uint32, tag = "1")] + pub match_id: u32, + #[prost(uint32, tag = "2")] + pub punish_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResetChannellerSlabCampGroupOp { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(uint32, tag = "2")] + pub round_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ForceAcceptQuestOp { + #[prost(uint32, tag = "1")] + pub quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetMainCoopConfidenceOp { + #[prost(uint32, tag = "1")] + pub confidence: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddCoopPointSavePointListOp { + #[prost(uint32, tag = "1")] + pub coop_point_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub save_point_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetClimateAreaTypeOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub climate_area_id: u32, + #[prost(uint32, tag = "3")] + pub climate_type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ProcSceneTagOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub scene_tag_id: u32, + #[prost(enumeration = "SceneTagOpType", tag = "3")] + pub op_type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetFinishedParentQuestChildStateOp { + #[prost(uint32, tag = "1")] + pub quest_id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChangeMapAreaInfoOp { + #[prost(uint32, tag = "1")] + pub map_area_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetLevel1AreaExplorePointOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub level1_area_id: u32, + #[prost(uint32, tag = "3")] + pub explore_point: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetCodexOpenOrCloseOp { + #[prost(uint32, tag = "1")] + pub codex_type: u32, + #[prost(uint32, tag = "2")] + pub codex_id: u32, + #[prost(bool, tag = "3")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GroupLinkOp { + #[prost(enumeration = "GroupLinkOpType", tag = "1")] + pub op_type: i32, + #[prost(uint32, tag = "2")] + pub group_bundle_id: u32, + #[prost(uint32, tag = "3")] + pub activity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetWatcherCompRecordValueOp { + #[prost( + oneof = "set_watcher_comp_record_value_op::OptionalMaxCriticalDamage", + tags = "1" + )] + pub optional_max_critical_damage: ::core::option::Option< + set_watcher_comp_record_value_op::OptionalMaxCriticalDamage, + >, + #[prost( + oneof = "set_watcher_comp_record_value_op::OptionalMaxFlyMapDistance", + tags = "2" + )] + pub optional_max_fly_map_distance: ::core::option::Option< + set_watcher_comp_record_value_op::OptionalMaxFlyMapDistance, + >, + #[prost(oneof = "set_watcher_comp_record_value_op::OptionalMaxFlyTime", tags = "3")] + pub optional_max_fly_time: ::core::option::Option< + set_watcher_comp_record_value_op::OptionalMaxFlyTime, + >, + #[prost(oneof = "set_watcher_comp_record_value_op::OptionalMaxDashTime", tags = "4")] + pub optional_max_dash_time: ::core::option::Option< + set_watcher_comp_record_value_op::OptionalMaxDashTime, + >, +} +/// Nested message and enum types in `SetWatcherCompRecordValueOp`. +pub mod set_watcher_comp_record_value_op { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum OptionalMaxCriticalDamage { + #[prost(float, tag = "1")] + MaxCriticalDamage(f32), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum OptionalMaxFlyMapDistance { + #[prost(float, tag = "2")] + MaxFlyMapDistance(f32), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum OptionalMaxFlyTime { + #[prost(float, tag = "3")] + MaxFlyTime(f32), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum OptionalMaxDashTime { + #[prost(float, tag = "4")] + MaxDashTime(f32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddFriendOp { + #[prost(uint32, tag = "1")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelFriendOp { + #[prost(uint32, tag = "1")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddFriendAskOp { + #[prost(uint32, tag = "1")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelFriendAskOp { + #[prost(uint32, tag = "1")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BanCustomDungeonOp { + #[prost(uint32, tag = "1")] + pub ban_expire_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RemoveInvalidMapMarksOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(message, optional, tag = "2")] + pub x_range: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub z_range: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RecalculateAreaExplorePointOp { + #[prost(uint32, tag = "1")] + pub area_id: u32, + #[prost(uint32, tag = "2")] + pub old_exp: u32, + #[prost(uint32, tag = "3")] + pub recalc_exp: u32, + #[prost(uint32, tag = "4")] + pub new_exp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct NicknameAuditResultOp { + #[prost(string, tag = "1")] + pub nickname: ::prost::alloc::string::String, + #[prost(bool, tag = "2")] + pub is_ok: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SignatureAuditResultOp { + #[prost(string, tag = "1")] + pub signature: ::prost::alloc::string::String, + #[prost(bool, tag = "2")] + pub is_ok: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PassHomeSceneArrangementAuditOp { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(uint32, tag = "3")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FailHomeSceneArrangementAuditOp { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(uint32, tag = "3")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FailHomeModulesArrangementAuditOp { + #[prost(bool, tag = "1")] + pub is_all_module: bool, + #[prost(uint32, repeated, tag = "2")] + pub module_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BanUgcPublishOp { + #[prost(uint32, tag = "1")] + pub ban_publish_expire_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResetPlayerPersistentDungeonOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResetPlayerPosInPersistentDungeonOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LevelTagChangeOp { + #[prost(uint32, tag = "1")] + pub level_tag_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResetPlayerWayPointInPersistentDungeonOp { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub way_point_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExhibitionSetOp { + #[prost(uint32, tag = "1")] + pub exhibition_id: u32, + #[prost(oneof = "exhibition_set_op::OptionalAccumulableVal", tags = "2")] + pub optional_accumulable_val: ::core::option::Option< + exhibition_set_op::OptionalAccumulableVal, + >, + #[prost(oneof = "exhibition_set_op::OptionalReplaceableVal", tags = "3")] + pub optional_replaceable_val: ::core::option::Option< + exhibition_set_op::OptionalReplaceableVal, + >, +} +/// Nested message and enum types in `ExhibitionSetOp`. +pub mod exhibition_set_op { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum OptionalAccumulableVal { + #[prost(uint32, tag = "2")] + AccumulableVal(u32), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum OptionalReplaceableVal { + #[prost(uint32, tag = "3")] + ReplaceableVal(u32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetAvatarExtraPropOp { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub extra_prop_id: u32, + #[prost(uint32, tag = "3")] + pub extra_prop_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddItemWithLimitOp { + #[prost(message, optional, tag = "1")] + pub add_item_op: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub max_item_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetGadgetChainLevelOp { + #[prost(uint32, tag = "1")] + pub gadgetchain_id: u32, + #[prost(uint32, tag = "2")] + pub gadgetchain_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetDailyTaskVarOp { + #[prost(uint32, tag = "1")] + pub task_id: u32, + #[prost(uint32, tag = "2")] + pub index: u32, + #[prost(int32, tag = "3")] + pub value: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineMsgBin { + #[prost(fixed32, tag = "1")] + pub enque_time: u32, + #[prost(string, tag = "2")] + pub ticket: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub index: u32, + #[prost( + oneof = "offline_msg_bin::Detail", + tags = "4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28001, 28002, 28003, 28004, 30000, 30001, 30002, 31001, 32001" + )] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `OfflineMsgBin`. +pub mod offline_msg_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "4")] + DelItemOp(super::DelItemOp), + #[prost(message, tag = "5")] + GotoOp(super::PlayerGotoOp), + #[prost(message, tag = "6")] + ResetParentQuestOp(super::ResetParentQuestOp), + #[prost(message, tag = "7")] + RefreshGroupOp(super::RefreshGroupOp), + #[prost(message, tag = "8")] + SetScenePointLockStatusOp(super::SetScenePointLockStatusOp), + #[prost(message, tag = "9")] + SetNickNameOp(super::SetPlayerNickNameOp), + #[prost(message, tag = "10")] + RefreshShopOp(super::RefreshShopOp), + #[prost(message, tag = "11")] + UnlockTalentOp(super::UnlockTalentOp), + #[prost(message, tag = "12")] + TakeOffEquipOp(super::TakeOffEquipOp), + #[prost(message, tag = "13")] + DelMailOp(super::DelMailOp), + #[prost(message, tag = "14")] + FinishDailyTaskOp(super::FinishDailyTaskOp), + #[prost(message, tag = "15")] + UnlockAreaOp(super::UnlockAreaOp), + #[prost(message, tag = "16")] + DelItemNegativeOp(super::DelItemNegativeOp), + #[prost(message, tag = "17")] + DelEquipOp(super::DelEquipOp), + #[prost(message, tag = "18")] + AddItemOp(super::AddItemOp), + #[prost(message, tag = "19")] + ModifyBornPosOp(super::ModifyBornPosOp), + #[prost(message, tag = "20")] + SubCoinNegativeOp(super::SubCoinNegativeOp), + #[prost(message, tag = "21")] + SetQuestContentProgressOp(super::SetQuestContentProgressOp), + #[prost(message, tag = "22")] + FinishOrderOp(super::FinishOrderOp), + #[prost(message, tag = "23")] + AddOrModifyWatcherOp(super::AddOrModifyWatcherOp), + #[prost(message, tag = "24")] + DelWatcherOp(super::DelWatcherOp), + #[prost(message, tag = "25")] + SetSignatureOp(super::SetSignatureOp), + #[prost(message, tag = "26")] + AddOrSubResinOp(super::AddOrSubResinOp), + #[prost(message, tag = "27")] + SetQuestGlobalVarValueOp(super::SetQuestGlobalVarValueOp), + #[prost(message, tag = "28")] + AddMcoinOp(super::AddMcoinVipPointOp), + #[prost(message, tag = "29")] + GroupBinOp(super::GroupBinOp), + #[prost(message, tag = "30")] + DelOneOffOp(super::DelOneOffOp), + #[prost(message, tag = "31")] + FinishRoutineOp(super::FinishRoutineOp), + #[prost(message, tag = "32")] + FinishDailyTaskGroupOp(super::FinishDailyTaskUnloadGroupOp), + #[prost(message, tag = "33")] + RefreshBlossomCircleCampOp(super::RefreshBlossomCircleCampOp), + #[prost(message, tag = "34")] + BlessingGivePicOp(super::BlessingActivityGivePicOp), + #[prost(message, tag = "35")] + ExpeditionAssistOp(super::ExpeditionActivityAssistOp), + #[prost(message, tag = "36")] + RecoverWorldLevelOp(super::RecoverWorldLevelOp), + #[prost(message, tag = "37")] + ForceAcceptQuestOp(super::ForceAcceptQuestOp), + #[prost(message, tag = "38")] + SetMainCoopConfidenceOp(super::SetMainCoopConfidenceOp), + #[prost(message, tag = "39")] + AddCoopPointSavePointListOp(super::AddCoopPointSavePointListOp), + #[prost(message, tag = "40")] + AddRegionSearchProgressOp(super::AddRegionSearchProgressOp), + #[prost(message, tag = "41")] + SetMatchPunishTimesOp(super::SetMatchPunishTimesOp), + #[prost(message, tag = "42")] + ResetChannellerSlabCampGroupOp(super::ResetChannellerSlabCampGroupOp), + #[prost(message, tag = "43")] + ProcSceneTagOp(super::ProcSceneTagOp), + #[prost(message, tag = "44")] + SetClimateAreaTypeOp(super::SetClimateAreaTypeOp), + #[prost(message, tag = "45")] + ExchangeMcoinOp(super::ExchangeMcoinOp), + #[prost(message, tag = "46")] + SetFinishedParentQuestChildStateOp(super::SetFinishedParentQuestChildStateOp), + #[prost(message, tag = "47")] + SetLevel1AreaExplorePointOp(super::SetLevel1AreaExplorePointOp), + #[prost(message, tag = "48")] + SetCodexOpenOrCloseOp(super::SetCodexOpenOrCloseOp), + #[prost(message, tag = "49")] + ChangeMapAreaInfoOp(super::ChangeMapAreaInfoOp), + #[prost(message, tag = "50")] + GroupLinkOp(super::GroupLinkOp), + #[prost(message, tag = "51")] + SetWatcherCompRecordValueOp(super::SetWatcherCompRecordValueOp), + #[prost(message, tag = "52")] + AddFriendOp(super::AddFriendOp), + #[prost(message, tag = "53")] + DelFriendOp(super::DelFriendOp), + #[prost(message, tag = "54")] + AddFriendAskOp(super::AddFriendAskOp), + #[prost(message, tag = "55")] + DelFriendAskOp(super::DelFriendAskOp), + #[prost(message, tag = "56")] + BanCustomDungeonOp(super::BanCustomDungeonOp), + #[prost(message, tag = "57")] + RemoveInvalidMapMarksOp(super::RemoveInvalidMapMarksOp), + #[prost(message, tag = "58")] + RecalculateAreaExplorePointOp(super::RecalculateAreaExplorePointOp), + #[prost(message, tag = "59")] + NicknameAuditResultOp(super::NicknameAuditResultOp), + #[prost(message, tag = "60")] + SignatureAuditResultOp(super::SignatureAuditResultOp), + #[prost(message, tag = "61")] + PassHomeSceneArrangementAuditOp(super::PassHomeSceneArrangementAuditOp), + #[prost(message, tag = "62")] + FailHomeSceneArrangementAuditOp(super::FailHomeSceneArrangementAuditOp), + #[prost(message, tag = "63")] + FailHomeModulesArrangementAuditOp(super::FailHomeModulesArrangementAuditOp), + #[prost(message, tag = "64")] + BanUgcPublishOp(super::BanUgcPublishOp), + #[prost(message, tag = "28001")] + ResetPlayerPersistentDungeonOp(super::ResetPlayerPersistentDungeonOp), + #[prost(message, tag = "28002")] + ResetPlayerPosInPersistentDungeonOp(super::ResetPlayerPosInPersistentDungeonOp), + #[prost(message, tag = "28003")] + LevelTagChangeOp(super::LevelTagChangeOp), + #[prost(message, tag = "28004")] + ResetPlayerWayPointInPersistentDungeonOp( + super::ResetPlayerWayPointInPersistentDungeonOp, + ), + #[prost(message, tag = "30000")] + ExhibitionSetOp(super::ExhibitionSetOp), + #[prost(message, tag = "30001")] + SetAvatarExtraPropOp(super::SetAvatarExtraPropOp), + #[prost(message, tag = "30002")] + AddItemWithLimitOp(super::AddItemWithLimitOp), + #[prost(message, tag = "31001")] + SetGadgetChainLevelOp(super::SetGadgetChainLevelOp), + #[prost(message, tag = "32001")] + SetDailyTaskVarOp(super::SetDailyTaskVarOp), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeTestOp { + #[prost(uint32, tag = "1")] + pub val: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeRestoreDefaultsArrangementOp { + #[prost(bool, tag = "1")] + pub is_all_module: bool, + #[prost(uint32, repeated, tag = "2")] + pub module_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeRestoreDefaultsSceneArrangementOp { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(uint32, tag = "3")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeOfflineMsgBin { + #[prost(fixed32, tag = "1")] + pub enque_time: u32, + #[prost(string, tag = "2")] + pub ticket: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub index: u32, + #[prost(oneof = "home_offline_msg_bin::Detail", tags = "101, 102, 103")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `HomeOfflineMsgBin`. +pub mod home_offline_msg_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "101")] + TestOp(super::HomeTestOp), + #[prost(message, tag = "102")] + RestoreDefaultsArrangementOp(super::HomeRestoreDefaultsArrangementOp), + #[prost(message, tag = "103")] + RestoreDefaultsSceneArrangementOp(super::HomeRestoreDefaultsSceneArrangementOp), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GroupVariableBin { + #[prost(int32, tag = "2")] + pub value: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GroupVariableConfigIdBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(int32, tag = "2")] + pub value: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct InteractGadget { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "2")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AreaBin { + #[prost(uint32, tag = "1")] + pub explore_num: u32, + #[prost(uint32, tag = "2")] + pub explore_point: u32, + #[prost(uint32, repeated, tag = "3")] + pub unlock_point_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub interact_gadget_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CityBin { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub crystal_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ScenePlayerLocationBin { + #[prost(message, optional, tag = "1")] + pub cur_pos: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub cur_rot: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub last_valid_pos: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub last_valid_rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EnvZoneInfoBin { + #[prost(fixed32, tag = "1")] + pub last_refresh_time: u32, + #[prost(uint32, tag = "2")] + pub animal_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneEnvAnimalCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub zone_info_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneWeatherInfoBin { + #[prost(uint32, tag = "1")] + pub height_area_id: u32, + #[prost(uint32, tag = "2")] + pub climate_type: u32, + #[prost(uint64, tag = "3")] + pub next_climate_time: u64, + #[prost(uint32, repeated, tag = "4")] + pub forcast_climate_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneClimateAreaInfoBin { + #[prost(uint32, tag = "1")] + pub climate_area_id: u32, + #[prost(uint32, tag = "2")] + pub json_climate_type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneAllWeatherInfoBin { + #[prost(message, repeated, tag = "1")] + pub weather_info_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub closed_weather_area_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub climate_area_info_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub closed_climate_area_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BackupGroupBin { + #[prost(uint32, repeated, tag = "1")] + pub del_monster_list: ::prost::alloc::vec::Vec, + #[prost(map = "string, message", tag = "2")] + pub variable_map: ::std::collections::HashMap< + ::prost::alloc::string::String, + GroupVariableBin, + >, + #[prost(uint32, tag = "3")] + pub revise_level: u32, + #[prost(fixed32, tag = "4")] + pub last_refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneBlockGroupCompBin { + #[prost(uint32, repeated, tag = "1")] + pub dead_group_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "2")] + pub backup_group_map: ::std::collections::HashMap, + #[prost(bool, tag = "3")] + pub is_scene_group_all_dead: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneAreaCompBin { + #[prost(uint32, repeated, tag = "1")] + pub unlocked_area_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "2")] + pub area_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "3")] + pub city_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneEncounterCompBin { + #[prost(uint32, repeated, tag = "1")] + pub parent_quest_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivitySceneBin { + #[prost(bool, tag = "1")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneVehicleBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(message, optional, tag = "2")] + pub cur_pos: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub cur_rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneTagOp { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(enumeration = "SceneTagOpType", tag = "2")] + pub op_type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WayPoint { + #[prost(uint32, tag = "1")] + pub point_id: u32, + #[prost(uint32, tag = "2")] + pub activate_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DungeonSceneBin { + #[prost(message, repeated, tag = "1")] + pub activated_way_point_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub activated_slip_revive_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneBin { + #[prost(uint32, repeated, tag = "1")] + pub unlocked_point_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub unlocked_force_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub locked_point_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "4")] + pub all_weather_info: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub owner_player_location: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub block_group_bin: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub env_animal_bin: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub area_comp_bin: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub encounter_comp_bin: ::core::option::Option, + #[prost(uint64, tag = "10")] + pub last_spring_recover_time_ms: u64, + #[prost(uint32, repeated, tag = "11")] + pub group_unlimit_point_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub interacted_to_be_explored_point_list: ::prost::alloc::vec::Vec, + #[prost(float, tag = "13")] + pub cur_spring_volume: f32, + #[prost(bool, tag = "14")] + pub is_locked: bool, + #[prost(message, repeated, tag = "15")] + pub vehicle_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "16")] + pub scene_tag_op_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "17")] + pub hide_point_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "18")] + pub unhide_point_list: ::prost::alloc::vec::Vec, + #[prost(oneof = "scene_bin::Detail", tags = "101, 102")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `SceneBin`. +pub mod scene_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "101")] + ActivitySceneBin(super::ActivitySceneBin), + #[prost(message, tag = "102")] + DungeonSceneBin(super::DungeonSceneBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineOpTestOp { + #[prost(string, tag = "1")] + pub msg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineOpFurnitureMakeHelp { + #[prost(string, tag = "1")] + pub player_name: ::prost::alloc::string::String, + #[prost(fixed32, tag = "2")] + pub time: u32, + #[prost(uint32, tag = "3")] + pub uid: u32, + #[prost(uint32, tag = "4")] + pub icon: u32, + #[prost(message, optional, tag = "5")] + pub profile_picture_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineOpPlantFlowerActivityGiveFlower { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub flower_num_map: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub schedule_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineOpWinterCampActivityGiveItem { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(message, repeated, tag = "2")] + pub item_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub schedule_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineOpActivityGiveGift { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub gift_num_map: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub schedule_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineOpVintageActivityDividend { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub schedule_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineOpBin { + #[prost(oneof = "offline_op_bin::Detail", tags = "1, 2, 3, 4, 5, 6")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `OfflineOpBin`. +pub mod offline_op_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "1")] + TestOp(super::OfflineOpTestOp), + #[prost(message, tag = "2")] + FurnitureMakeHelpOp(super::OfflineOpFurnitureMakeHelp), + #[prost(message, tag = "3")] + PlantFlowerGiveFlowerOp(super::OfflineOpPlantFlowerActivityGiveFlower), + #[prost(message, tag = "4")] + WinterCampGiveItemOp(super::OfflineOpWinterCampActivityGiveItem), + #[prost(message, tag = "5")] + ActivityGiveGiftOp(super::OfflineOpActivityGiveGift), + #[prost(message, tag = "6")] + VintageDividendOp(super::OfflineOpVintageActivityDividend), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FurnitureMakeSlotsBin { + #[prost(uint32, tag = "1")] + pub make_id: u32, + #[prost(fixed32, tag = "2")] + pub begin_time: u32, + #[prost(uint32, tag = "3")] + pub dur_time: u32, + #[prost(fixed32, tag = "4")] + pub accelerate_time: u32, + #[prost(uint32, tag = "6")] + pub accelerate_count: u32, + #[prost(uint32, tag = "7")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ProfilePictureBin { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CustomDungeonSettingBin { + #[prost(bool, tag = "1")] + pub is_arrive_finish: bool, + #[prost(uint32, tag = "2")] + pub coin_limit: u32, + #[prost(uint32, tag = "3")] + pub time_limit: u32, + #[prost(bool, tag = "4")] + pub is_forbid_skill: bool, + #[prost(uint32, repeated, tag = "5")] + pub open_room_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub start_room_id: u32, + #[prost(uint32, tag = "7")] + pub life_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CustomDungeonAbstractBin { + #[prost(uint32, tag = "1")] + pub finish_room_id: u32, + #[prost(uint32, tag = "2")] + pub total_coin_num: u32, + #[prost(uint32, tag = "3")] + pub first_publish_time: u32, + #[prost(uint32, tag = "4")] + pub last_publish_time: u32, + #[prost(map = "uint32, uint32", tag = "5")] + pub brick_statistics_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBasicCompBin { + #[prost(uint64, tag = "1")] + pub trans_no_count: u64, + #[prost(uint64, tag = "4")] + pub exp: u64, + #[prost(uint32, tag = "5")] + pub level: u32, + #[prost(string, tag = "6")] + pub owner_nick_name: ::prost::alloc::string::String, + #[prost(uint32, tag = "7")] + pub total_home_time: u32, + #[prost(uint64, tag = "8")] + pub home_time_ms: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFurnitureBin { + #[prost(uint32, tag = "1")] + pub furniture_id: u32, + #[prost(message, optional, tag = "3")] + pub spawn_pos: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub spawn_rot: ::core::option::Option, + #[prost(int32, tag = "7")] + pub parent_furniture_index: i32, + #[prost(uint32, tag = "8")] + pub guid: u32, + #[prost(uint32, tag = "9")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFurnitureSuiteBin { + #[prost(uint32, tag = "1")] + pub suite_id: u32, + #[prost(message, optional, tag = "2")] + pub spawn_pos: ::core::option::Option, + #[prost(int32, repeated, tag = "3")] + pub included_furniture_index_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub guid: u32, + #[prost(bool, tag = "5")] + pub is_allow_summon: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeNpcBin { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(message, optional, tag = "2")] + pub spawn_pos: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub spawn_rot: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeAnimalBin { + #[prost(uint32, tag = "1")] + pub furniture_id: u32, + #[prost(message, optional, tag = "2")] + pub spawn_pos: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub spawn_rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBlockSubFieldBin { + #[prost(message, optional, tag = "1")] + pub spawn_pos: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub spawn_rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBlockFieldBin { + #[prost(uint32, tag = "1")] + pub guid: u32, + #[prost(uint32, tag = "2")] + pub furniture_id: u32, + #[prost(message, optional, tag = "3")] + pub spawn_pos: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub spawn_rot: ::core::option::Option, + #[prost(message, repeated, tag = "5")] + pub sub_field_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFurnitureGroupBin { + #[prost(uint32, tag = "1")] + pub group_furniture_index: u32, + #[prost(message, repeated, tag = "2")] + pub virtual_furniure_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFurnitureCustomSuiteBin { + #[prost(message, optional, tag = "1")] + pub spawn_pos: ::core::option::Option, + #[prost(int32, repeated, tag = "2")] + pub included_furniture_index_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub guid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBlockBin { + #[prost(uint32, tag = "1")] + pub block_id: u32, + #[prost(message, repeated, tag = "2")] + pub persistent_furniture_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub deploy_furniure_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub deploy_npc_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub furniture_suite_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub deploy_animal_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub is_unlocked: bool, + #[prost(message, repeated, tag = "8")] + pub deploy_field_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub deploy_furniture_group_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub furniture_custom_suite_list: ::prost::alloc::vec::Vec< + HomeFurnitureCustomSuiteBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSceneBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(message, optional, tag = "2")] + pub scene_bin: ::core::option::Option, + #[prost(message, repeated, tag = "3")] + pub block_bin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub is_set_born_pos: bool, + #[prost(message, optional, tag = "5")] + pub born_pos: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub born_rot: ::core::option::Option, + #[prost(message, repeated, tag = "7")] + pub door_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub stair_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub main_house: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub djinn_pos: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub tmp_version: u32, + #[prost(fixed32, tag = "13")] + pub save_time: u32, + #[prost(uint32, tag = "14")] + pub bgm_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeModuleBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "2")] + pub cur_room_scene_id: u32, + #[prost(message, repeated, tag = "3")] + pub scene_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSceneCompBin { + #[prost(uint32, tag = "1")] + pub cur_module_id: u32, + #[prost(message, repeated, tag = "2")] + pub module_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeOfflineMsgExeBin { + #[prost(message, optional, tag = "1")] + pub msg: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub exe_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeOfflineMsgCompBin { + #[prost(uint32, tag = "1")] + pub index: u32, + #[prost(message, repeated, tag = "2")] + pub next_offline_msg_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFurnitureMakeBin { + #[prost(message, repeated, tag = "1")] + pub furniture_make_slots_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeLimitedShopPoolRecordBin { + #[prost(uint32, tag = "1")] + pub pool_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub goods_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeLimitedShopGoodsInfoBin { + #[prost(uint32, tag = "1")] + pub goods_id: u32, + #[prost(uint32, tag = "2")] + pub buy_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeLimitedShopNpcPosBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(uint32, tag = "5")] + pub block_id: u32, + #[prost(uint32, tag = "6")] + pub index: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeLimitedShopBin { + #[prost(uint32, tag = "1")] + pub last_refresh_time: u32, + #[prost(message, repeated, tag = "3")] + pub pool_record_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub goods_info_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub npc_pos_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomePlantSubFieldBin { + #[prost(uint32, tag = "1")] + pub index: u32, + #[prost(uint32, tag = "2")] + pub seed_id: u32, + #[prost(uint32, tag = "3")] + pub grow_time: u32, + #[prost(uint32, tag = "4")] + pub last_update_time: u32, + #[prost(uint32, repeated, tag = "5")] + pub gather_index_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub home_gather_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomePlantFieldBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(uint32, tag = "3")] + pub guid: u32, + #[prost(uint32, tag = "4")] + pub furniture_id: u32, + #[prost(message, repeated, tag = "5")] + pub sub_field_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomePlantBin { + #[prost(message, repeated, tag = "1")] + pub field_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFishpondFarmingBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub fishpond_guid: u32, + #[prost(uint32, tag = "3")] + pub furniture_id: u32, + #[prost(uint32, repeated, tag = "4")] + pub fish_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeScenePointFishFarmingBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub local_entity_id: u32, + #[prost(uint32, repeated, tag = "4")] + pub fish_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeModuleFishFarmingBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(message, repeated, tag = "2")] + pub fishpond_farming_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub scene_point_fish_farming_bin_list: ::prost::alloc::vec::Vec< + HomeScenePointFishFarmingBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFishFarmingBin { + #[prost(message, repeated, tag = "1")] + pub module_fish_farming_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeCustomFurnitureNodeInfoBin { + #[prost(int32, tag = "1")] + pub parent_index: i32, + #[prost(uint32, tag = "2")] + pub furniture_id: u32, + #[prost(string, tag = "3")] + pub slot_identifier: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeOneCustomFurnitureBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub guid: u32, + #[prost(uint32, tag = "3")] + pub furniture_id: u32, + #[prost(message, repeated, tag = "4")] + pub sub_furniture_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeModuleCustomFurnitureBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(message, repeated, tag = "2")] + pub custom_furniture_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeCustomFurnitureBin { + #[prost(message, repeated, tag = "1")] + pub module_custom_furniture_bin_list: ::prost::alloc::vec::Vec< + HomeModuleCustomFurnitureBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeOnePictureFrameBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(uint32, tag = "2")] + pub guid: u32, + #[prost(uint32, tag = "3")] + pub furniture_id: u32, + #[prost(uint32, tag = "4")] + pub picture_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeModulePictureFrameBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(message, repeated, tag = "2")] + pub picture_frame_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomePictureFrameBin { + #[prost(message, repeated, tag = "1")] + pub module_picture_frame_bin_list: ::prost::alloc::vec::Vec< + HomeModulePictureFrameBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeGroupPlayerInfoBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(string, tag = "2")] + pub nickname: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub player_level: u32, + #[prost(message, optional, tag = "4")] + pub profile_picture: ::core::option::Option, + #[prost(string, tag = "5")] + pub online_id: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub psn_id: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeRacingGalleryRecordBin { + #[prost(uint32, tag = "1")] + pub use_time: u32, + #[prost(message, optional, tag = "2")] + pub player_info: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub timestamp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeRacingRecordBin { + #[prost(message, repeated, tag = "1")] + pub record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBalloonGalleryRecordBin { + #[prost(uint32, tag = "1")] + pub score: u32, + #[prost(uint32, tag = "2")] + pub hit_count: u32, + #[prost(message, optional, tag = "3")] + pub player_info: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub timestamp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBalloonRecordBin { + #[prost(message, repeated, tag = "1")] + pub record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeStakePlayRecordBin { + #[prost(uint32, tag = "1")] + pub timestamp: u32, + #[prost(message, repeated, tag = "2")] + pub engaged_player_info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeStakeRecordBin { + #[prost(message, repeated, tag = "1")] + pub record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSeekFurniturePlayerScoreBin { + #[prost(message, optional, tag = "1")] + pub player_info: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSeekFurnitureOneRecordBin { + #[prost(uint32, tag = "1")] + pub timestamp: u32, + #[prost(message, repeated, tag = "2")] + pub engaged_player_score_list: ::prost::alloc::vec::Vec< + HomeSeekFurniturePlayerScoreBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSeekFurnitureAllRecordBin { + #[prost(message, repeated, tag = "1")] + pub record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeGroupRecordBin { + #[prost(oneof = "home_group_record_bin::Detail", tags = "11, 12, 13, 14")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `HomeGroupRecordBin`. +pub mod home_group_record_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "11")] + RacingGalleryInfoBin(super::HomeRacingRecordBin), + #[prost(message, tag = "12")] + BalloonGalleryInfoBin(super::HomeBalloonRecordBin), + #[prost(message, tag = "13")] + StakePlayInfoBin(super::HomeStakeRecordBin), + #[prost(message, tag = "14")] + SeekFurniturePlayInfoBin(super::HomeSeekFurnitureAllRecordBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeGroupRecordCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub group_record_map_bin: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBlueprintCompBin { + #[prost(bool, tag = "1")] + pub is_allow_friend_copy: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeDataBin { + #[prost(message, optional, tag = "1")] + pub basic_bin: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub scene_bin: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub offline_msg_bin: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub furniture_make_bin: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub limited_shop_bin: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub plant_bin: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub fish_farming_bin: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub custom_furniture_bin: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub picture_frame_bin: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub group_record_bin: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub blueprint_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeData { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub data_version: u32, + #[prost(bytes = "vec", tag = "3")] + pub bin_data: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "4")] + pub block_end_time: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerBasicCompBin { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub exp: u32, + #[prost(string, tag = "3")] + pub nickname: ::prost::alloc::string::String, + #[prost(uint32, tag = "4")] + pub total_game_time: u32, + #[prost(uint64, tag = "5")] + pub trans_no_count: u64, + #[prost(bool, tag = "6")] + pub is_weather_locked: bool, + #[prost(bool, tag = "7")] + pub is_game_time_locked: bool, + #[prost(float, tag = "8")] + pub persist_stamina_limit: f32, + #[prost(float, tag = "9")] + pub cur_persist_stamina: f32, + #[prost(float, tag = "10")] + pub cur_temporary_stamina: f32, + #[prost(map = "uint32, uint32", tag = "11")] + pub open_state_map: ::std::collections::HashMap, + #[prost(uint64, tag = "12")] + pub player_time_ms: u64, + #[prost(fixed32, tag = "13")] + pub last_login_time: u32, + #[prost(fixed32, tag = "14")] + pub register_time: u32, + #[prost(uint32, tag = "15")] + pub total_login_days: u32, + #[prost(uint32, tag = "16")] + pub update_login_days_time: u32, + #[prost(uint32, repeated, tag = "17")] + pub reward_taken_level_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "18")] + pub language_type: u32, + #[prost(string, tag = "19")] + pub client_app_version: ::prost::alloc::string::String, + #[prost(string, tag = "20")] + pub client_device_info: ::prost::alloc::string::String, + #[prost(string, tag = "21")] + pub client_system_version: ::prost::alloc::string::String, + #[prost(bool, tag = "22")] + pub is_guest: bool, + #[prost(uint32, tag = "23")] + pub online_time: u32, + #[prost(bool, tag = "24")] + pub is_proficient_player: bool, + #[prost(uint32, tag = "26")] + pub set_language_tag: u32, + #[prost(uint32, tag = "27")] + pub head_image_avatar_id: u32, + #[prost(uint32, tag = "28")] + pub guid_seq_id: u32, + #[prost(bool, tag = "29")] + pub is_rebate_mail_sent: bool, + #[prost(bool, tag = "30")] + pub is_rebate_mail_received: bool, + #[prost(string, tag = "31")] + pub register_cps: ::prost::alloc::string::String, + #[prost(uint32, tag = "32")] + pub cur_json_climate_type: u32, + #[prost(float, tag = "33")] + pub cur_climate_meter: f32, + #[prost(fixed32, tag = "34")] + pub last_logout_time: u32, + #[prost(uint32, tag = "35")] + pub data_version: u32, + #[prost(fixed32, tag = "36")] + pub last_daily_refresh_time: u32, + #[prost(bool, tag = "37")] + pub is_auto_unlock_specific_equip: bool, + #[prost(uint32, tag = "38")] + pub profile_picture_costume_id: u32, + #[prost(string, tag = "39")] + pub online_id: ::prost::alloc::string::String, + #[prost(string, tag = "40")] + pub psn_id: ::prost::alloc::string::String, + #[prost(uint32, tag = "41")] + pub last_login_platform: u32, + #[prost(double, tag = "42")] + pub pivot_client_time: f64, + #[prost(double, tag = "43")] + pub pivot_unix_time: f64, + #[prost(double, tag = "44")] + pub client_total_tick_time: f64, + #[prost(uint64, tag = "45")] + pub player_stat_id: u64, + #[prost(message, optional, tag = "46")] + pub nickname_audit_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarSkillBin { + #[prost(uint32, tag = "1")] + pub pass_cd_time: u32, + #[prost(uint32, repeated, tag = "2")] + pub full_cd_time_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarBuffBin { + #[prost(uint32, tag = "1")] + pub left_time: u32, + #[prost(uint32, tag = "2")] + pub buff_uid: u32, + #[prost(uint32, tag = "3")] + pub buff_type: u32, + #[prost(uint32, tag = "5")] + pub buff_id: u32, + #[prost(uint64, repeated, tag = "6")] + pub onadded_avatars_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarFetterBin { + #[prost(uint32, tag = "3")] + pub level: u32, + #[prost(uint32, tag = "4")] + pub exp: u32, + #[prost(uint32, repeated, tag = "6")] + pub rewarded_fetter_level_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub is_login_on_birthday: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarExpeditionBin { + #[prost(uint32, tag = "1")] + pub state: u32, + #[prost(uint32, tag = "2")] + pub exp_id: u32, + #[prost(uint32, tag = "3")] + pub hour_time: u32, + #[prost(fixed32, tag = "4")] + pub start_time: u32, + #[prost(uint64, tag = "5")] + pub transaction: u64, + #[prost(float, tag = "6")] + pub shorten_ratio: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarSkillDepotBin { + #[prost(uint32, repeated, tag = "1")] + pub talent_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub core_proud_skill_level: u32, + #[prost(uint32, repeated, tag = "3")] + pub inherent_proud_skill_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "4")] + pub skill_level_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarEquipAffixBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub cd: u32, + #[prost(uint32, tag = "3")] + pub pass_cd_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarExtraPropBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarBin { + #[prost(uint32, tag = "1")] + pub avatar_type: u32, + #[prost(uint32, tag = "2")] + pub avatar_id: u32, + #[prost(uint64, tag = "3")] + pub guid: u64, + #[prost(uint32, tag = "4")] + pub level: u32, + #[prost(uint32, tag = "5")] + pub life_state: u32, + #[prost(float, tag = "6")] + pub cur_hp: f32, + #[prost(float, tag = "7")] + pub cur_elem_energy: f32, + #[prost(uint32, tag = "8")] + pub promote_level: u32, + #[prost(uint32, tag = "9")] + pub skill_depot_id: u32, + #[prost(map = "uint32, message", tag = "10")] + pub skill_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "11")] + pub buff_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "12")] + pub depot_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "13")] + pub equip_list: ::prost::alloc::vec::Vec, + #[prost(float, tag = "14")] + pub satiation_val: f32, + #[prost(float, tag = "15")] + pub satiation_penalty_time: f32, + #[prost(uint32, tag = "16")] + pub flycloak_id: u32, + #[prost(message, repeated, tag = "17")] + pub avatar_equip_affix_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "18")] + pub born_time: u32, + #[prost(message, repeated, tag = "19")] + pub buff_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "20")] + pub costume_id: u32, + #[prost(message, repeated, tag = "21")] + pub extra_prop_list: ::prost::alloc::vec::Vec, + #[prost(oneof = "avatar_bin::Detail", tags = "101, 102, 103")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `AvatarBin`. +pub mod avatar_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "101")] + FormalAvatar(super::FormalAvatarBin), + #[prost(message, tag = "102")] + TrialAvatar(super::TrialAvatarBin), + #[prost(message, tag = "103")] + MirrorAvatar(super::MirrorAvatarBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarSnapshotBin { + #[prost(uint32, tag = "1")] + pub avatar_snapshot_type: u32, + #[prost(message, optional, tag = "2")] + pub avatar_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TrialAvatarGrantRecordBin { + #[prost(uint32, tag = "1")] + pub grant_reason: u32, + #[prost(uint32, tag = "2")] + pub from_parent_quest_id: u32, +} +/// Nested message and enum types in `TrialAvatarGrantRecordBin`. +pub mod trial_avatar_grant_record_bin { + #[derive(proto_gen::CmdID)] + #[derive( + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration + )] + #[repr(i32)] + pub enum GrantReason { + Invalid = 0, + GrantByQuest = 1, + } + impl GrantReason { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + GrantReason::Invalid => "INVALID", + GrantReason::GrantByQuest => "GRANT_BY_QUEST", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "INVALID" => Some(Self::Invalid), + "GRANT_BY_QUEST" => Some(Self::GrantByQuest), + _ => None, + } + } + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FormalAvatarBin { + #[prost(uint32, tag = "1")] + pub exp: u32, + #[prost(uint64, repeated, tag = "2")] + pub equip_guid_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub fetter: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub expedition_data: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub avatar_repeat_count: u32, + #[prost(bool, tag = "6")] + pub is_focus: bool, + #[prost(uint32, repeated, tag = "7")] + pub taken_promote_reward_level_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TrialAvatarBin { + #[prost(uint32, tag = "1")] + pub trial_avatar_id: u32, + #[prost(message, optional, tag = "2")] + pub grant_record_bin: ::core::option::Option, + #[prost(bool, tag = "3")] + pub is_inherit: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MirrorAvatarBin { + #[prost(uint32, tag = "1")] + pub avatar_snapshot_type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarTeamBin { + #[prost(uint64, repeated, tag = "1")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(string, tag = "2")] + pub team_name: ::prost::alloc::string::String, + #[prost(uint64, tag = "3")] + pub last_cur_avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerAvatarCompBin { + #[prost(message, repeated, tag = "1")] + pub avatar_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "2")] + pub cur_avatar_guid: u64, + #[prost(message, optional, tag = "3")] + pub pb_only_cur_pos: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub pb_only_cur_rot: ::core::option::Option, + #[prost(map = "uint32, message", tag = "5")] + pub team_map: ::std::collections::HashMap, + #[prost(uint32, tag = "6")] + pub cur_team_id: u32, + #[prost(uint64, tag = "7")] + pub last_change_avatar_time: u64, + #[prost(bool, tag = "8")] + pub is_spring_auto_use: bool, + #[prost(uint32, tag = "9")] + pub spring_auto_use_percent: u32, + #[prost(fixed32, tag = "10")] + pub last_backgroud_avatar_recover_time: u32, + #[prost(uint32, tag = "11")] + pub cur_spring_volume: u32, + #[prost(bool, tag = "12")] + pub is_flyable: bool, + #[prost(bool, tag = "13")] + pub is_transferable: bool, + #[prost(uint64, tag = "14")] + pub last_avatar_guid: u64, + #[prost(uint64, tag = "15")] + pub choose_avatar_guid: u64, + #[prost(uint32, tag = "16")] + pub die_type: u32, + #[prost(uint64, repeated, tag = "17")] + pub temp_avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "18")] + pub avatar_team_buff_map: ::std::collections::HashMap, + #[prost(uint32, tag = "19")] + pub last_server_buff_uid: u32, + #[prost(uint32, tag = "20")] + pub total_expedition_num: u32, + #[prost(uint32, repeated, tag = "21")] + pub owned_flycloak_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "22")] + pub avatar_team_buff_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "23")] + pub owned_costume_id_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "24")] + pub avatar_snapshot_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "25")] + pub backup_team_id_order_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WorldBin { + #[prost(map = "uint32, message", tag = "1")] + pub scene_map: ::std::collections::HashMap, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, tag = "3")] + pub last_adjust_time: u32, + #[prost(uint32, tag = "4")] + pub adjust_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GroupProductBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub gadget_one_off_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "2")] + pub monster_one_off_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneProductBin { + #[prost(map = "uint32, message", tag = "1")] + pub group_product_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DungeonProductBin { + #[prost(map = "uint32, message", tag = "1")] + pub scene_product_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MapMarkPointBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(string, tag = "2")] + pub name: ::prost::alloc::string::String, + #[prost(message, optional, tag = "3")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub point_type: u32, + #[prost(uint32, tag = "5")] + pub monster_id: u32, + #[prost(uint32, tag = "6")] + pub from_type: u32, + #[prost(uint32, tag = "7")] + pub quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GroupBossChestBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub boss_chest_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneBossChestBin { + #[prost(map = "uint32, message", tag = "1")] + pub group_boss_chest_map: ::std::collections::HashMap, + #[prost(fixed32, tag = "2")] + pub take_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SubfieldDropBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub drop_num_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MonsterBeKilledNumBin { + #[prost(uint32, tag = "1")] + pub monster_id: u32, + #[prost(uint32, tag = "2")] + pub be_killed_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MapAreaInfoBin { + #[prost(uint32, tag = "1")] + pub map_area_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MonsterBeCapturedNumBin { + #[prost(uint32, tag = "1")] + pub monster_id: u32, + #[prost(uint32, tag = "2")] + pub be_captured_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LevelTagChangeBin { + #[prost(uint32, tag = "1")] + pub level_tag_id: u32, + #[prost(uint32, tag = "2")] + pub change_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LevelTagBin { + #[prost(message, repeated, tag = "1")] + pub level_tag_change_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PersistentDungeonSceneBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(message, optional, tag = "2")] + pub dungeon_scene_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeshretObeliskBin { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "2")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerSceneCompBin { + #[prost(message, optional, tag = "1")] + pub world: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub cur_scene_owner_uid: u32, + #[prost(uint32, tag = "3")] + pub my_prev_scene_id: u32, + #[prost(message, optional, tag = "4")] + pub my_prev_pos: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub my_prev_rot: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub my_cur_scene_id: u32, + #[prost(uint32, repeated, tag = "7")] + pub monster_seen_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub mark_point_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "9")] + pub world_product_map: ::std::collections::HashMap, + #[prost(uint32, tag = "10")] + pub trivial_entity_drop_num: u32, + #[prost(fixed32, tag = "11")] + pub trivial_entity_drop_time: u32, + #[prost(map = "uint32, message", tag = "12")] + pub scene_boss_chest_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "13")] + pub subfield_drop_map: ::std::collections::HashMap, + #[prost(fixed32, tag = "14")] + pub subfield_drop_time: u32, + #[prost(uint32, tag = "15")] + pub my_cur_area_id: u32, + #[prost(map = "uint32, message", tag = "16")] + pub dungeon_product_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "17")] + pub chest_open_num_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "18")] + pub gadget_interact_num_map: ::std::collections::HashMap, + #[prost(uint32, tag = "19")] + pub total_boss_chest_take_num: u32, + #[prost(map = "string, uint32", tag = "20")] + pub daily_gadget_drop_category_count_map: ::std::collections::HashMap< + ::prost::alloc::string::String, + u32, + >, + #[prost(uint32, tag = "21")] + pub last_refresh_daily_gadget_drop_category_count_map_time: u32, + #[prost(message, repeated, tag = "22")] + pub monster_killed_num_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "23")] + pub my_cur_player_scene_id: u32, + #[prost(uint32, tag = "24")] + pub my_cur_home_scene_id: u32, + #[prost(uint32, repeated, tag = "25")] + pub obtained_wood_type_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "26")] + pub gadget_chain_level_map: ::std::collections::HashMap, + #[prost(uint32, tag = "27")] + pub weekly_boss_resin_discount_num: u32, + #[prost(uint32, tag = "28")] + pub last_weekly_boss_resin_discount_time: u32, + #[prost(message, repeated, tag = "29")] + pub map_area_info_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "30")] + pub monster_captured_num_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "31")] + pub level_tag_bin: ::core::option::Option, + #[prost(message, repeated, tag = "32")] + pub persistent_dungeon_scene_bin_list: ::prost::alloc::vec::Vec< + PersistentDungeonSceneBin, + >, + #[prost(uint32, tag = "33")] + pub last_area_play_type: u32, + #[prost(message, optional, tag = "34")] + pub deshret_obelisk_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuestContentBin { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(uint32, tag = "2")] + pub param: u32, + #[prost(uint32, tag = "3")] + pub progress: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuestTalkRecordBin { + #[prost(uint32, tag = "1")] + pub talk_id: u32, + #[prost(fixed32, tag = "2")] + pub talk_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuestBin { + #[prost(uint32, tag = "1")] + pub quest_id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, + #[prost(uint32, repeated, tag = "3")] + pub finish_progress_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub fail_progress_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub start_time: u32, + #[prost(message, repeated, tag = "6")] + pub talk_history_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "7")] + pub start_game_time: u32, + #[prost(fixed32, tag = "8")] + pub accept_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerQuestBin { + #[prost(message, repeated, tag = "1")] + pub quest_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ParentQuestRandomInfoBin { + #[prost(uint32, tag = "1")] + pub entrance_id: u32, + #[prost(uint32, tag = "2")] + pub template_id: u32, + #[prost(uint32, repeated, tag = "3")] + pub factor_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "4")] + pub quest_id_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ParentQuestInferenceWordBin { + #[prost(uint32, tag = "1")] + pub word_id: u32, + #[prost(bool, tag = "2")] + pub is_interpret: bool, + #[prost(bool, tag = "3")] + pub is_associate: bool, + #[prost(bool, tag = "4")] + pub is_submit: bool, + #[prost(uint32, tag = "5")] + pub unlock_by_word_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ParentQuestBin { + #[prost(uint32, tag = "1")] + pub parent_quest_id: u32, + #[prost(uint32, tag = "2")] + pub total_finish_count: u32, + #[prost(uint32, tag = "3")] + pub today_finish_count: u32, + #[prost(fixed32, tag = "4")] + pub last_finish_time: u32, + #[prost(message, repeated, tag = "5")] + pub child_quest_state_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub is_random: bool, + #[prost(message, optional, tag = "7")] + pub random_info: ::core::option::Option, + #[prost(fixed32, tag = "9")] + pub accept_time: u32, + #[prost(int32, repeated, tag = "10")] + pub quest_var: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub reward_index: u32, + #[prost(uint32, tag = "12")] + pub state: u32, + #[prost(message, repeated, tag = "13")] + pub time_var_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub unlock_inference_word_list: ::prost::alloc::vec::Vec< + ParentQuestInferenceWordBin, + >, + #[prost(uint32, repeated, tag = "15")] + pub unlock_inference_conclusion_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerParentQuestBin { + #[prost(message, repeated, tag = "1")] + pub parent_quest_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChapterBin { + #[prost(uint32, tag = "1")] + pub chapter_id: u32, + #[prost(uint32, tag = "2")] + pub chapter_state: u32, + #[prost(bool, tag = "3")] + pub is_notify_sent: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerChapterBin { + #[prost(message, repeated, tag = "1")] + pub chapter_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QuestGlobalVarBin { + #[prost(uint32, tag = "1")] + pub key: u32, + #[prost(int32, tag = "2")] + pub value: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WorldQuestBin { + #[prost(uint32, tag = "1")] + pub parent_quest_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub linked_flow_group_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerQuestCompBin { + #[prost(message, optional, tag = "1")] + pub quest_bin: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub parent_quest_bin: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub last_random_parent_quest_id: u32, + #[prost(uint32, tag = "4")] + pub last_random_quest_id: u32, + #[prost(map = "uint32, uint32", tag = "5")] + pub last_dungeon_settle_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "6")] + pub chapter_bin: ::core::option::Option, + #[prost(message, repeated, tag = "7")] + pub quest_global_var_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub pre_open_chapter_id_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub world_quest_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EquipBin { + #[prost(bool, tag = "1")] + pub is_locked: bool, + #[prost(oneof = "equip_bin::Detail", tags = "101, 102")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `EquipBin`. +pub mod equip_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "101")] + Reliquary(super::ReliquaryBin), + #[prost(message, tag = "102")] + Weapon(super::WeaponBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MaterialDeleteBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub delete_time_num_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MaterialBin { + #[prost(uint32, tag = "1")] + pub count: u32, + #[prost(message, optional, tag = "2")] + pub delete_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FurnitureBin { + #[prost(uint32, tag = "1")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ItemBin { + #[prost(uint32, tag = "1")] + pub item_type: u32, + #[prost(uint32, tag = "2")] + pub item_id: u32, + #[prost(fixed64, tag = "3")] + pub guid: u64, + #[prost(oneof = "item_bin::Detail", tags = "101, 102, 103")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `ItemBin`. +pub mod item_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "101")] + Material(super::MaterialBin), + #[prost(message, tag = "102")] + Equip(super::EquipBin), + #[prost(message, tag = "103")] + Furniture(super::FurnitureBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PackItemStoreBin {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ItemStoreBin { + #[prost(message, repeated, tag = "1")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub is_material_item_num_alarmed: bool, + #[prost(oneof = "item_store_bin::Ext", tags = "101")] + pub ext: ::core::option::Option, +} +/// Nested message and enum types in `ItemStoreBin`. +pub mod item_store_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Ext { + #[prost(message, tag = "101")] + PackStore(super::PackItemStoreBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AutoRecoverItemBin { + #[prost(uint32, tag = "1")] + pub value: u32, + #[prost(uint32, tag = "3")] + pub bought_num: u32, + #[prost(fixed32, tag = "4")] + pub last_bought_time: u32, + #[prost(fixed32, tag = "5")] + pub next_refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ItemLimitCountRecordBin { + #[prost(uint32, tag = "1")] + pub item_type: u32, + #[prost(uint32, tag = "2")] + pub index_value: u32, + #[prost(uint32, tag = "3")] + pub item_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ItemLimitRecordBin { + #[prost(uint32, tag = "1")] + pub item_limit_type: u32, + #[prost(fixed32, tag = "2")] + pub last_refresh_time: u32, + #[prost(message, repeated, tag = "3")] + pub item_limit_count_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MaterialDeleteReturnRecordBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub delete_material_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "2")] + pub return_item_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OutputControlRecordBin { + #[prost(fixed32, tag = "1")] + pub last_refresh_time: u32, + #[prost(message, repeated, tag = "2")] + pub daily_count_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub total_count_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ShopGoodsOutputRecordBin { + #[prost(uint32, tag = "1")] + pub goods_id: u32, + #[prost(fixed32, tag = "2")] + pub last_record_time: u32, + #[prost(uint32, tag = "3")] + pub buy_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ShopOutputRecordBin { + #[prost(message, repeated, tag = "1")] + pub shop_goods_output_record_list: ::prost::alloc::vec::Vec< + ShopGoodsOutputRecordBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SingleBonusRecordBin { + #[prost(fixed32, tag = "1")] + pub last_refresh_time: u32, + #[prost(uint32, tag = "2")] + pub config_id: u32, + #[prost(uint32, tag = "3")] + pub bonus_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BonusRecordBin { + #[prost(uint32, tag = "1")] + pub bonus_source_type: u32, + #[prost(message, repeated, tag = "2")] + pub single_bonus_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ItemLimitRefreshRecordBin { + #[prost(uint32, tag = "1")] + pub item_limit_refresh_type: u32, + #[prost(fixed32, tag = "2")] + pub last_refresh_time: u32, + #[prost(message, repeated, tag = "3")] + pub item_limit_count_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReliquaryLevelupNumRecordBin { + #[prost(uint32, tag = "1")] + pub rank_level: u32, + #[prost(message, repeated, tag = "2")] + pub reliquary_levelup_num_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EquipLevelupRecordBin { + #[prost(message, repeated, tag = "1")] + pub weapon_levelup_num_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub weapon_promote_levelup_num_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub rank_reliquary_levelup_list: ::prost::alloc::vec::Vec< + ReliquaryLevelupNumRecordBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReliquarySuitBin { + #[prost(uint32, tag = "1")] + pub reliquary_suit_id: u32, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, repeated, tag = "3")] + pub reliquary_type_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivityOutputIndexRecordBin { + #[prost(uint32, tag = "1")] + pub output_control_type: u32, + #[prost(message, repeated, tag = "2")] + pub activity_count_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivityOutputControlRecordBin { + #[prost(uint32, tag = "1")] + pub activity_type: u32, + #[prost(fixed32, tag = "2")] + pub last_refresh_time: u32, + #[prost(message, repeated, tag = "3")] + pub activity_output_index_record_list: ::prost::alloc::vec::Vec< + ActivityOutputIndexRecordBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReliquaryMainPropGuaranteeDataBin { + #[prost(uint32, tag = "1")] + pub main_prop_id: u32, + #[prost(uint32, tag = "2")] + pub miss_count: u32, + #[prost(uint32, tag = "3")] + pub guarantee_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReliquaryGuaranteeDepotBin { + #[prost(uint32, tag = "1")] + pub guarantee_depot_id: u32, + #[prost(message, repeated, tag = "2")] + pub main_prop_guarantee_data_list: ::prost::alloc::vec::Vec< + ReliquaryMainPropGuaranteeDataBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerItemCompBin { + #[prost(message, optional, tag = "1")] + pub pack_store: ::core::option::Option, + #[prost(uint32, repeated, tag = "2")] + pub history_item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub hcoin: u32, + #[prost(uint32, tag = "4")] + pub scoin: u32, + #[prost(map = "uint32, uint64", tag = "5")] + pub item_cd_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "6")] + pub resin_record: ::core::option::Option, + #[prost(message, repeated, tag = "7")] + pub item_limit_record_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub item_total_obtain_count_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub material_delete_return_record: ::core::option::Option< + MaterialDeleteReturnRecordBin, + >, + #[prost(map = "uint32, message", tag = "10")] + pub output_control_record_map: ::std::collections::HashMap< + u32, + OutputControlRecordBin, + >, + #[prost(uint32, tag = "11")] + pub wait_sub_hcoin: u32, + #[prost(uint32, tag = "12")] + pub wait_sub_scoin: u32, + #[prost(message, repeated, tag = "13")] + pub item_limit_refresh_record_list: ::prost::alloc::vec::Vec< + ItemLimitRefreshRecordBin, + >, + #[prost(message, optional, tag = "14")] + pub equip_levelup_record_bin: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub mcoin: u32, + #[prost(uint32, tag = "16")] + pub wait_sub_mcoin: u32, + #[prost(uint32, tag = "17")] + pub legendary_key: u32, + #[prost(message, repeated, tag = "18")] + pub reliquary_suit_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "19")] + pub shop_output_record: ::core::option::Option, + #[prost(message, repeated, tag = "20")] + pub bonus_record_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "21")] + pub activity_output_control_record_list: ::prost::alloc::vec::Vec< + ActivityOutputControlRecordBin, + >, + #[prost(uint32, tag = "22")] + pub home_coin: u32, + #[prost(uint32, tag = "23")] + pub wait_sub_home_coin: u32, + #[prost(uint32, tag = "24")] + pub psn_mcoin: u32, + #[prost(uint32, tag = "25")] + pub wait_sub_psn_mcoin: u32, + #[prost(bool, tag = "26")] + pub is_psn_version_modify: bool, + #[prost(message, repeated, tag = "27")] + pub reliquary_guarantee_depot_list: ::prost::alloc::vec::Vec< + ReliquaryGuaranteeDepotBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DungeonGroupRecordBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub chest_open_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DungeonRecordBin { + #[prost(uint32, tag = "1")] + pub enter_count: u32, + #[prost(fixed32, tag = "3")] + pub start_time: u32, + #[prost(fixed32, tag = "4")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DungeonRandomRecordBin { + #[prost(uint32, repeated, tag = "1")] + pub dungeon_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "2")] + pub refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DungeonDurableRecordBin { + #[prost(bool, tag = "1")] + pub is_passed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerDungeonRecordBin { + #[prost(map = "uint32, message", tag = "1")] + pub dungeon_daily_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "2")] + pub dungeon_durable_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "3")] + pub dungeon_random_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DungeonSerialBossChestBin { + #[prost(uint32, tag = "1")] + pub take_num: u32, + #[prost(fixed32, tag = "2")] + pub take_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerDungeonCompBin { + #[prost(uint32, tag = "1")] + pub cur_dungeon_id: u32, + #[prost(fixed32, tag = "2")] + pub last_enter_time: u32, + #[prost(message, optional, tag = "5")] + pub record_bin: ::core::option::Option, + #[prost(bool, tag = "6")] + pub is_join_other_scene: bool, + #[prost(fixed32, tag = "7")] + pub last_time_daily_item_add: u32, + #[prost(fixed32, tag = "8")] + pub last_time_weekly_item_add: u32, + #[prost(uint32, tag = "9")] + pub last_unsettled_dungeon_id: u32, + #[prost(map = "uint32, message", tag = "10")] + pub serial_boss_chest_map: ::std::collections::HashMap< + u32, + DungeonSerialBossChestBin, + >, + #[prost(bool, tag = "11")] + pub is_has_quit_target_pos: bool, + #[prost(uint32, tag = "12")] + pub quit_scene_id: u32, + #[prost(message, optional, tag = "13")] + pub quit_pos: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub quit_rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerBoredCompBin { + #[prost(bool, tag = "1")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerMpCompBin { + #[prost(uint32, tag = "2")] + pub mp_setting_type: u32, + #[prost(bool, tag = "3")] + pub is_only_mp_with_ps_player: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CompoundOutputBin { + #[prost(fixed32, tag = "1")] + pub output_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CompoundQueueBin { + #[prost(message, repeated, tag = "1")] + pub output_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CookRecipeDataBin { + #[prost(uint32, tag = "1")] + pub proficiency: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerCookCompBin { + #[prost(uint32, tag = "1")] + pub grade: u32, + #[prost(map = "uint32, message", tag = "2")] + pub recipe_data_map: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "3")] + pub unlock_compound_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "4")] + pub compound_que_bin_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerLoginCompBin { + #[prost(uint32, repeated, tag = "1")] + pub taken_login_reward_config_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "2")] + pub last_login_refresh_time: u32, + #[prost(uint32, repeated, tag = "3")] + pub recv_questionnaire_mail_config_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "4")] + pub last_recv_questionnaire_mail_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfflineMsgExeBin { + #[prost(message, optional, tag = "1")] + pub msg: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub exe_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerOfflineMsgCompBin { + #[prost(uint32, tag = "1")] + pub index: u32, + #[prost(message, repeated, tag = "2")] + pub next_offline_msg_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub born_scene_id: u32, + #[prost(message, optional, tag = "5")] + pub born_pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DailyTaskInfoBin { + #[prost(uint32, tag = "1")] + pub daily_task_id: u32, + #[prost(uint32, tag = "2")] + pub drop_id: u32, + #[prost(uint32, tag = "3")] + pub progress: u32, + #[prost(bool, tag = "4")] + pub is_finished: bool, + #[prost(uint32, tag = "5")] + pub preview_reward_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DailyTaskCycleQuestBin { + #[prost(uint32, tag = "1")] + pub quest_id: u32, + #[prost(uint32, tag = "2")] + pub refresh_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DailyTaskCityCycleQuestsBin { + #[prost(uint32, tag = "1")] + pub city_id: u32, + #[prost(message, repeated, tag = "2")] + pub quest_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerDailyTaskCompBin { + #[prost(fixed32, tag = "1")] + pub last_time: u32, + #[prost(message, repeated, tag = "2")] + pub task_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub score_player_level: u32, + #[prost(bool, tag = "4")] + pub is_taken_score_reward: bool, + #[prost(uint32, tag = "5")] + pub finished_num: u32, + #[prost(uint32, repeated, tag = "6")] + pub sure_pool_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub possible_pools_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "8")] + pub task_var_map: ::std::collections::HashMap, + #[prost(uint32, tag = "9")] + pub refresh_times: u32, + #[prost(uint32, tag = "10")] + pub total_reward_num: u32, + #[prost(uint32, tag = "11")] + pub filter_city_id: u32, + #[prost(uint32, tag = "12")] + pub random_city_id: u32, + #[prost(message, repeated, tag = "14")] + pub cycle_quest_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerRandTaskCompBin { + #[prost(fixed32, tag = "1")] + pub last_reward_time: u32, + #[prost(uint32, tag = "2")] + pub reward_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct InvestigationBin { + #[prost(uint32, tag = "1")] + pub investigation_id: u32, + #[prost(uint32, tag = "2")] + pub progress: u32, + #[prost(bool, tag = "3")] + pub is_taken_reward: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerInvestigationCompBin { + #[prost(message, repeated, tag = "1")] + pub investigation_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub finished_target_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub reward_taken_target_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub is_today_quest_daily_notify_ack: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SeaLampSectionBin { + #[prost(uint32, tag = "1")] + pub section_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SeaLampScheduleDataBin { + #[prost(uint32, tag = "1")] + pub popularity: u32, + #[prost(uint32, tag = "2")] + pub sea_lamp_coin: u32, + #[prost(bool, tag = "3")] + pub is_content_closed: bool, + #[prost(message, repeated, tag = "4")] + pub section_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CrucibleBattleUidBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub icon: u32, + #[prost(string, tag = "3")] + pub nickname: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub online_id: ::prost::alloc::string::String, + #[prost(message, optional, tag = "5")] + pub profile_picture_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CrucibleScheduleBin { + #[prost(uint32, tag = "1")] + pub cost_time: u32, + #[prost(message, repeated, tag = "2")] + pub battle_uid_data_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub battle_world_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TrialAvatarActivityRewardInfo { + #[prost(uint32, tag = "1")] + pub trial_avatar_index_id: u32, + #[prost(bool, tag = "2")] + pub passed_dungeon: bool, + #[prost(bool, tag = "3")] + pub received_reward: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TrialAvatarScheduleBin { + #[prost(message, repeated, tag = "1")] + pub reward_info_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub watcher_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SalesmanScheduleBin { + #[prost(uint32, tag = "1")] + pub status: u32, + #[prost(uint32, tag = "2")] + pub day_index: u32, + #[prost(uint32, tag = "4")] + pub deliver_count: u32, + #[prost(uint32, repeated, tag = "5")] + pub obtained_normal_reward_index_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub obtained_special_reward_index_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub finished_talk_id_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "8")] + pub selected_reward_id_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "9")] + pub loaded_group_config_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub last_deliver_day_index: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AsterLittleBin { + #[prost(bool, tag = "1")] + pub is_open: bool, + #[prost(uint32, tag = "2")] + pub stage_id: u32, + #[prost(uint32, tag = "3")] + pub stage_state: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AsterMidBin { + #[prost(bool, tag = "1")] + pub is_open: bool, + #[prost(uint32, tag = "2")] + pub refresh_id: u32, + #[prost(uint32, tag = "3")] + pub refresh_time: u32, + #[prost(uint32, repeated, tag = "4")] + pub finished_camp_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub collect_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AsterLargeBin { + #[prost(bool, tag = "1")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AsterProgressBin { + #[prost(uint32, tag = "1")] + pub count: u32, + #[prost(uint32, tag = "2")] + pub last_auto_add_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AsterScheduleBin { + #[prost(message, optional, tag = "1")] + pub aster_little: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub aster_mid: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub aster_large: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub aster_credit: u32, + #[prost(uint32, tag = "7")] + pub aster_token: u32, + #[prost(bool, tag = "8")] + pub is_special_reward_taken: bool, + #[prost(bool, tag = "9")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeliveryScheduleBin { + #[prost(uint32, tag = "1")] + pub day_index: u32, + #[prost(bool, tag = "2")] + pub is_taken_daily_reward: bool, + #[prost(uint32, repeated, tag = "3")] + pub cur_day_finished_delivery_quest_index_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FlightDailyRecordBin { + #[prost(bool, tag = "1")] + pub is_touched: bool, + #[prost(uint32, tag = "2")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FlightScheduleBin { + #[prost(message, repeated, tag = "1")] + pub daily_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DragonSpineChapterBin { + #[prost(uint32, tag = "1")] + pub chapter_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub progress: u32, + #[prost(bool, tag = "4")] + pub is_finish: bool, + #[prost(uint32, repeated, tag = "5")] + pub finished_mission_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub open_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DragonSpineBanDropSubject { + #[prost(message, repeated, tag = "1")] + pub drop_subject_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DragonSpineScheduleBin { + #[prost(uint32, tag = "1")] + pub weapon_enhance_stage: u32, + #[prost(message, repeated, tag = "2")] + pub chapter_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub shimmering_essence: u32, + #[prost(uint32, tag = "4")] + pub warm_essence: u32, + #[prost(uint32, tag = "5")] + pub wondrous_essence: u32, + #[prost(message, repeated, tag = "6")] + pub banned_drop_subject_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub is_content_closed: bool, + #[prost(uint64, tag = "8")] + pub activity_weapon_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EffigyDailyRecordBin { + #[prost(uint32, tag = "1")] + pub day_index: u32, + #[prost(uint32, tag = "2")] + pub challenge_id: u32, + #[prost(uint32, tag = "4")] + pub challenge_max_score: u32, + #[prost(bool, tag = "6")] + pub is_first_pass_reward_taken: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EffigyScheduleBin { + #[prost(message, repeated, tag = "1")] + pub daily_record_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub last_difficulty_id: u32, + #[prost(uint32, repeated, tag = "3")] + pub taken_reward_index_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TreasureMapRegionBin { + #[prost(uint32, tag = "1")] + pub region_id: u32, + #[prost(uint32, tag = "2")] + pub current_progress: u32, + #[prost(map = "uint32, bool", tag = "3")] + pub done_group_map: ::std::collections::HashMap, + #[prost(bool, tag = "4")] + pub is_region_detected: bool, + #[prost(bool, tag = "5")] + pub is_mp_challenge_open: bool, + #[prost(bool, tag = "6")] + pub is_mp_challenge_done: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TreasureMapBonusChallengeBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(bool, tag = "2")] + pub is_active: bool, + #[prost(bool, tag = "3")] + pub is_done: bool, + #[prost(bool, tag = "4")] + pub is_challenge_open: bool, + #[prost(map = "uint32, uint32", tag = "5")] + pub fragment_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TreasureMapScheduleBin { + #[prost(message, repeated, tag = "1")] + pub region_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub active_region_index: u32, + #[prost(uint32, tag = "3")] + pub currency_num: u32, + #[prost(message, repeated, tag = "4")] + pub challenge_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_mp_challenge_touched: bool, + #[prost(uint32, tag = "6")] + pub host_mp_reward_taken_num: u32, + #[prost(uint32, tag = "7")] + pub guest_mp_reward_taken_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SalesmanMpScheduleBin { + #[prost(uint32, tag = "1")] + pub status: u32, + #[prost(uint32, tag = "2")] + pub day_index: u32, + #[prost(uint32, repeated, tag = "3")] + pub deliver_day_index_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub last_deliver_day_index: u32, + #[prost(bool, tag = "5")] + pub is_has_taken_special_reward: bool, + #[prost(uint32, repeated, tag = "6")] + pub normal_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub obtained_normal_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub obtained_special_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub obtained_special_material_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub obtained_special_drop_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub finished_talk_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExpeditionPathDataBin { + #[prost(uint32, tag = "1")] + pub path_id: u32, + #[prost(uint32, tag = "2")] + pub mark_id: u32, + #[prost(uint32, tag = "3")] + pub refresh_time: u32, + #[prost(uint32, tag = "4")] + pub state: u32, + #[prost(uint32, tag = "5")] + pub start_time: u32, + #[prost(uint32, repeated, tag = "6")] + pub avatar_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub assist_uid: u32, + #[prost(uint32, tag = "8")] + pub assist_avatar_id: u32, + #[prost(float, tag = "9")] + pub bonus_probability: f32, + #[prost(string, tag = "10")] + pub transaction: ::prost::alloc::string::String, + #[prost(uint32, tag = "11")] + pub assist_costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExpeditionAssistRecordBin { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub assist_time: u32, + #[prost(uint32, tag = "3")] + pub target_uid: u32, + #[prost(string, tag = "4")] + pub target_nick_name: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub online_id: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExpeditionChallengeDataBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(bool, tag = "2")] + pub is_finished: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExpeditionScheduleBin { + #[prost(uint32, tag = "1")] + pub last_refresh_time: u32, + #[prost(uint32, repeated, tag = "2")] + pub candidate_path_id_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub path_data_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub expedition_count: u32, + #[prost(message, repeated, tag = "5")] + pub assist_record_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub challenge_data_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub expedition_finish_count: u32, + #[prost(uint32, tag = "8")] + pub cur_challenge_id: u32, + #[prost(bool, tag = "9")] + pub is_content_closed: bool, + #[prost(uint32, repeated, tag = "10")] + pub history_path_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlessingScanEntityData { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "3")] + pub config_id: u32, + #[prost(uint32, tag = "4")] + pub scan_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlessingRecvPicData { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub pic_id: u32, + #[prost(bool, tag = "3")] + pub is_recv: bool, + #[prost(uint32, tag = "4")] + pub index: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlessingScheduleBin { + #[prost(uint32, tag = "1")] + pub day_index: u32, + #[prost(message, repeated, tag = "2")] + pub cur_day_scanned_entity_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub cur_day_scan_num: u32, + #[prost(uint32, tag = "4")] + pub up_pool_index: u32, + #[prost(map = "uint32, uint32", tag = "5")] + pub pic_num_map: ::std::collections::HashMap, + #[prost(bool, tag = "6")] + pub is_activated: bool, + #[prost(bool, tag = "7")] + pub is_content_closed: bool, + #[prost(uint32, tag = "8")] + pub cur_day_scan_type_id: u32, + #[prost(uint32, repeated, tag = "9")] + pub pic_drop_record_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub total_unfulfilled_num: u32, + #[prost(uint32, tag = "11")] + pub redeem_reward_num: u32, + #[prost(message, repeated, tag = "12")] + pub recv_pic_data_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub last_generated_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FleurFairBalloonBin { + #[prost(uint32, tag = "1")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FleurFairFallBin { + #[prost(uint32, tag = "1")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FleurFairMusicRecordBin { + #[prost(uint32, tag = "1")] + pub max_score: u32, + #[prost(uint32, tag = "2")] + pub max_combo: u32, + #[prost(bool, tag = "3")] + pub is_unlock: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FleurFairMusicBin { + #[prost(map = "uint32, message", tag = "1")] + pub music_game_record_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FleurFairMinigameBin { + #[prost(uint32, tag = "1")] + pub minigame_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(oneof = "fleur_fair_minigame_bin::Detail", tags = "11, 12, 13")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `FleurFairMinigameBin`. +pub mod fleur_fair_minigame_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "11")] + BalloonBin(super::FleurFairBalloonBin), + #[prost(message, tag = "12")] + FallBin(super::FleurFairFallBin), + #[prost(message, tag = "13")] + MusicBin(super::FleurFairMusicBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FleurFairDungeonSectionDataBin { + #[prost(uint32, tag = "1")] + pub section_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FleurFairScheduleBin { + #[prost(uint32, tag = "1")] + pub credit: u32, + #[prost(uint32, tag = "2")] + pub token: u32, + #[prost(bool, tag = "3")] + pub is_content_closed: bool, + #[prost(map = "uint32, message", tag = "4")] + pub minigame_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "5")] + pub dungeon_section_map: ::std::collections::HashMap< + u32, + FleurFairDungeonSectionDataBin, + >, + #[prost(bool, tag = "6")] + pub is_dungeon_unlocked: bool, + #[prost(uint32, tag = "7")] + pub dungeon_punish_over_time: u32, + #[prost(uint32, tag = "8")] + pub obtained_token: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ArenaChallengeSchduleBin { + #[prost(uint32, tag = "1")] + pub world_level: u32, + #[prost(bool, tag = "2")] + pub is_finish_any_level: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WaterSpiritScheduleBin { + #[prost(uint32, tag = "1")] + pub spirit_coin: u32, + #[prost(uint32, tag = "2")] + pub region_search_play_id: u32, + #[prost(uint32, tag = "3")] + pub scene_play_id: u32, + #[prost(bool, tag = "4")] + pub is_phase_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabChallengeBin { + #[prost(uint32, tag = "1")] + pub active_camp_index: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabStageBin { + #[prost(message, repeated, tag = "1")] + pub challenge_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub is_dungeon_done: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabBuffSchemeBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub slot_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabAssistBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub avatar_id: u32, + #[prost(uint32, tag = "3")] + pub avatar_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabBuffDataBin { + #[prost(uint32, repeated, tag = "1")] + pub buff_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub single_buff_scheme: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub mp_buff_scheme: ::core::option::Option, + #[prost(message, repeated, tag = "4")] + pub assist_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabLoopDungeonDataBin { + #[prost(uint32, tag = "1")] + pub dungeon_index: u32, + #[prost(uint32, tag = "2")] + pub score: u32, + #[prost(bool, tag = "3")] + pub is_first_pass_reward_taken: bool, + #[prost(uint32, repeated, tag = "4")] + pub last_condition_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabLoopDungeonStageBin { + #[prost(message, repeated, tag = "1")] + pub dungeon_data_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub last_difficulty_id: u32, + #[prost(uint32, repeated, tag = "3")] + pub taken_reward_index_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChannellerSlabScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub buff_data: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub loop_dungeon_stage: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub tokens: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MistTrialLevelBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub open_time: u32, + #[prost(uint32, tag = "4")] + pub try_times: u32, + #[prost(uint32, tag = "5")] + pub success_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MistTrialScheduleBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HideAndSeekScheduleBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub hider_slot_skill_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "2")] + pub hunter_slot_skill_map: ::std::collections::HashMap, + #[prost(bool, tag = "3")] + pub is_play_open: bool, + #[prost(uint32, tag = "4")] + pub hider_count: u32, + #[prost(uint32, repeated, tag = "5")] + pub open_map_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FindHilichurlScheduleBin { + #[prost(uint32, tag = "1")] + pub finished_day_index: u32, + #[prost(bool, tag = "2")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SummerTimeStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SummerTimeSprintBoatBin { + #[prost(uint32, tag = "1")] + pub best_score: u32, + #[prost(bool, tag = "2")] + pub is_touched: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SummerTimeScheduleBin { + #[prost(map = "uint32, message", tag = "1")] + pub stage_bin_map: ::std::collections::HashMap, + #[prost(bool, tag = "2")] + pub is_content_closed: bool, + #[prost(uint32, repeated, tag = "3")] + pub disable_float_signal_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub unlcoked_mist_zone_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub last_float_signal_id: u32, + #[prost(uint32, tag = "6")] + pub next_float_signal_id: u32, + #[prost(uint32, tag = "7")] + pub draft_wood: u32, + #[prost(uint32, tag = "8")] + pub mini_harpastum: u32, + #[prost(message, repeated, tag = "9")] + pub sprint_boat_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub is_sea_mist_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BounceConjuringChapterBin { + #[prost(uint32, tag = "1")] + pub chapter_id: u32, + #[prost(uint32, tag = "2")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BounceConjuringScheduleBin { + #[prost(message, repeated, tag = "1")] + pub chapter_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub is_content_closed: bool, + #[prost(uint32, tag = "3")] + pub coin: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BuoyantCombatDailyRecordBin { + #[prost(uint32, tag = "1")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BuoyantCombatScheduleBin { + #[prost(message, repeated, tag = "1")] + pub daily_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SummerTimeDungeonBin { + #[prost(uint32, tag = "1")] + pub dungeon_id: u32, + #[prost(uint32, tag = "2")] + pub taken_chest_count: u32, + #[prost(uint32, tag = "3")] + pub taken_shell_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EchoShellScheduleBin { + #[prost(uint32, repeated, tag = "1")] + pub taken_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub taken_voice_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub summer_time_dungeon_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub pass_dungeon_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChessScheduleBin { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub exp: u32, + #[prost(bool, tag = "3")] + pub is_teach_dungeon_finished: bool, + #[prost(map = "uint32, uint32", tag = "4")] + pub daily_obtained_exp_map: ::std::collections::HashMap, + #[prost(uint32, tag = "5")] + pub coin: u32, + #[prost(uint32, repeated, tag = "6")] + pub finished_map_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub punish_over_time: u32, + #[prost(bool, tag = "8")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlitzRushStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlitzRushParkourLevelRecordBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub best_record: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlitzRushScheduleBin { + #[prost(uint32, tag = "1")] + pub coin_a: u32, + #[prost(uint32, tag = "2")] + pub coin_b: u32, + #[prost(bool, tag = "3")] + pub is_content_closed: bool, + #[prost(message, repeated, tag = "4")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub parkour_level_record_list: ::prost::alloc::vec::Vec< + BlitzRushParkourLevelRecordBin, + >, + #[prost(bool, tag = "6")] + pub is_dungeon_unlocked: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SumoAvatarBin { + #[prost(bool, tag = "1")] + pub is_trial: bool, + #[prost(uint64, tag = "2")] + pub avatar_id: u64, + #[prost(uint64, tag = "3")] + pub in_dungeon_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SumoTeamBin { + #[prost(message, repeated, tag = "1")] + pub avatar_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub skill_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SumoStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(uint32, tag = "2")] + pub max_score: u32, + #[prost(bool, tag = "3")] + pub is_open: bool, + #[prost(message, repeated, tag = "4")] + pub team_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SumoScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub difficulty_id: u32, + #[prost(uint32, tag = "3")] + pub last_stage_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LunaRiteHintPointBin { + #[prost(uint32, tag = "1")] + pub area_id: u32, + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "3")] + pub config_id: u32, + #[prost(uint32, tag = "4")] + pub r#type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LunaRiteAreaBin { + #[prost(uint32, tag = "1")] + pub area_id: u32, + #[prost(uint32, tag = "2")] + pub finish_battle_id: u32, + #[prost(uint32, repeated, tag = "3")] + pub sacrifice_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub sacrifice_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub hint_status: u32, + #[prost(uint32, tag = "6")] + pub chest_searching_num: u32, + #[prost(uint32, tag = "7")] + pub rune_searching_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LunaRiteScheduleBin { + #[prost(message, repeated, tag = "1")] + pub area_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub hint_point_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub atmosphere: u32, + #[prost(uint32, tag = "4")] + pub last_refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoonfinTrialLevelRecordBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub best_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoonfinTrialScheduleBin { + #[prost(message, repeated, tag = "1")] + pub moonfintrial_level_record_list: ::prost::alloc::vec::Vec< + MoonfinTrialLevelRecordBin, + >, + #[prost(uint32, tag = "2")] + pub special_fish_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlantFlowerRecvFlowerDataBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub flower_num_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeModuleUsedActivityItemDataBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub item_count_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeUsedActivityItemDataBin { + #[prost(message, repeated, tag = "1")] + pub module_used_item_list: ::prost::alloc::vec::Vec< + HomeModuleUsedActivityItemDataBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlantFlowerSeedPlantDataBin { + #[prost(uint32, tag = "1")] + pub seed_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub home_gather_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlantFlowerShelfDataBin { + #[prost(uint32, tag = "1")] + pub gadget_config_id: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub used_flower_num_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlantFlowerScheduleBin { + #[prost(uint32, tag = "1")] + pub day_index: u32, + #[prost(uint32, tag = "2")] + pub last_awarded_day_index: u32, + #[prost(uint32, repeated, tag = "3")] + pub seed_reward_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "4")] + pub wish_flower_num_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "5")] + pub recv_flower_data_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub is_content_closed: bool, + #[prost(map = "uint32, uint32", tag = "7")] + pub activity_used_flower_num_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "8")] + pub home_used_flower_data: ::core::option::Option, + #[prost(message, repeated, tag = "9")] + pub seed_plant_data_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub flower_shelf_data_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub plant_obtained_flower_type_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub common_obtained_flower_type_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MusicGameRecordBin { + #[prost(uint32, tag = "1")] + pub max_score: u32, + #[prost(uint32, tag = "2")] + pub max_combo: u32, + #[prost(bool, tag = "3")] + pub is_unlock: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MusicGameUgcSaveBin { + #[prost(uint64, tag = "1")] + pub ugc_guid: u64, + #[prost(uint32, tag = "2")] + pub music_id: u32, + #[prost(uint32, tag = "3")] + pub save_idx: u32, + #[prost(uint32, tag = "4")] + pub save_time: u32, + #[prost(uint32, tag = "5")] + pub max_score: u32, + #[prost(uint32, tag = "6")] + pub note_count: u32, + #[prost(uint32, tag = "7")] + pub version: u32, + #[prost(bool, tag = "8")] + pub is_published: bool, + #[prost(bool, tag = "9")] + pub is_changed_after_publish: bool, + #[prost(uint64, tag = "10")] + pub import_from_ugc_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MusicGameUgcSearchBin { + #[prost(uint64, tag = "1")] + pub ugc_guid: u64, + #[prost(uint32, tag = "2")] + pub music_id: u32, + #[prost(uint32, tag = "3")] + pub publish_time: u32, + #[prost(uint32, tag = "4")] + pub max_score: u32, + #[prost(uint32, tag = "5")] + pub note_count: u32, + #[prost(uint32, tag = "6")] + pub version: u32, + #[prost(string, tag = "7")] + pub creator_nickname: ::prost::alloc::string::String, + #[prost(bool, tag = "8")] + pub is_psn_platform: bool, + #[prost(uint64, tag = "9")] + pub import_from_ugc_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MusicGameUgcPlayBin { + #[prost(uint64, tag = "1")] + pub ugc_guid: u64, + #[prost(uint32, tag = "2")] + pub version: u32, + #[prost(uint32, tag = "3")] + pub score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MusicGameScheduleBin { + #[prost(map = "uint32, message", tag = "1")] + pub music_game_record_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "2")] + pub music_game_ugc_save_bin: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub music_game_ugc_search_bin: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub music_game_ugc_play_bin: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_finish_all_cond_level: bool, + #[prost(uint32, tag = "6")] + pub cur_trans_no: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoguelikeShikigamiBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoguelikeDungeonRuneBin { + #[prost(uint32, tag = "1")] + pub rune_id: u32, + #[prost(uint32, tag = "2")] + pub available_count: u32, + #[prost(uint32, tag = "3")] + pub max_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoguelikeDungeonCardBin { + #[prost(uint32, tag = "1")] + pub card_id: u32, + #[prost(uint32, tag = "2")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoguelikeDungeonCurseBin { + #[prost(uint32, tag = "1")] + pub curse_id: u32, + #[prost(uint32, tag = "2")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoguelikeDungeonDynamicSgvBin { + #[prost(string, tag = "1")] + pub key: ::prost::alloc::string::String, + #[prost(float, tag = "2")] + pub value: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoguelikeMiscBin { + #[prost(uint32, tag = "1")] + pub cur_dungeon_level: u32, + #[prost(message, repeated, tag = "2")] + pub use_rune_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub selected_card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub optional_card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub optional_card_depot_id: u32, + #[prost(message, repeated, tag = "6")] + pub curse_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub dynamic_sgv_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub gacha_cell_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "9")] + pub is_optional_card_can_refresh: bool, + #[prost(uint32, tag = "10")] + pub card_cell_id: u32, + #[prost(uint64, repeated, tag = "11")] + pub noheal_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub cur_rand_count: u32, + #[prost(uint32, repeated, tag = "13")] + pub viewed_card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub viewed_curse_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "15")] + pub add_talent_guid_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "16")] + pub chosen_card_type_count_map: ::std::collections::HashMap, + #[prost(uint32, tag = "17")] + pub refresh_count: u32, + #[prost(uint32, tag = "18")] + pub use_refresh_free_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueTeamBin { + #[prost(uint64, repeated, tag = "1")] + pub onstage_avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "2")] + pub backstage_avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueCellBin { + #[prost(uint32, tag = "1")] + pub cell_id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, + #[prost(uint32, tag = "3")] + pub r#type: u32, + #[prost(uint32, tag = "4")] + pub dungeon_id: u32, + #[prost(map = "uint32, uint32", tag = "5")] + pub diff_monster_pool_map: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "6")] + pub guard_point_config_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueGadgetPointBin { + #[prost(message, optional, tag = "1")] + pub group_point_pair: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub gadget_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueDungeonBin { + #[prost(bool, tag = "1")] + pub is_valid: bool, + #[prost(message, optional, tag = "2")] + pub team_bin: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub stage_id: u32, + #[prost(uint32, tag = "4")] + pub cur_level_index: u32, + #[prost(message, optional, tag = "5")] + pub last_player_pos: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub last_player_rot: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub cur_cell_id: u32, + #[prost(map = "uint32, message", tag = "8")] + pub rogue_cell_bin_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "9")] + pub brakeages_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub trap_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub blast_bucket_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub dungeon_id: u32, + #[prost(bool, tag = "13")] + pub is_temp_leave: bool, + #[prost(uint32, tag = "14")] + pub dungeon_weight_config_id: u32, + #[prost(uint32, repeated, tag = "15")] + pub explored_cell_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "16")] + pub brakeage_group_gadget_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "17")] + pub trap_group_gadget_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "18")] + pub byobu_group_gadget_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "19")] + pub ball_group_gadget_bin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "20")] + pub is_ban_spring: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueFinishChallengeBin { + #[prost(uint32, tag = "1")] + pub cell_num: u32, + #[prost(uint32, tag = "2")] + pub coin_b: u32, + #[prost(uint32, tag = "3")] + pub coin_c: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(uint32, tag = "2")] + pub coin_c_num: u32, + #[prost(uint32, tag = "3")] + pub max_passed_level: u32, + #[prost(bool, tag = "4")] + pub is_open: bool, + #[prost(bool, tag = "5")] + pub is_in_combat: bool, + #[prost(bool, tag = "6")] + pub is_passed: bool, + #[prost(bool, tag = "7")] + pub is_taken_reward: bool, + #[prost(bool, tag = "8")] + pub is_entering_next_level: bool, + #[prost(bool, tag = "9")] + pub is_explored: bool, + #[prost(uint32, tag = "10")] + pub cached_coin_b_num: u32, + #[prost(uint32, tag = "11")] + pub cached_coin_c_num: u32, + #[prost(message, repeated, tag = "12")] + pub dead_gadget_count_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub kill_monster_count: u32, + #[prost(uint32, tag = "14")] + pub avatar_element_count: u32, + #[prost(uint32, tag = "15")] + pub avatar_count: u32, + #[prost(bool, tag = "16")] + pub is_used_spring: bool, + #[prost(map = "uint32, uint32", tag = "17")] + pub level_explore_cell_count_map: ::std::collections::HashMap, + #[prost(bool, tag = "18")] + pub is_avatar_dead: bool, + #[prost(map = "uint32, bool", tag = "19")] + pub level_finish_all_challenge_map: ::std::collections::HashMap, + #[prost(uint32, tag = "20")] + pub cur_level_index: u32, + #[prost(map = "uint32, message", tag = "21")] + pub finish_challenge_bin_map: ::std::collections::HashMap< + u32, + RogueFinishChallengeBin, + >, + #[prost(string, tag = "22")] + pub transaction: ::prost::alloc::string::String, + #[prost(map = "uint32, uint32", tag = "23")] + pub level_time_cost_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "24")] + pub explored_cell_type_map: ::std::collections::HashMap, + #[prost(bool, tag = "25")] + pub has_temp_leaved: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoguelikeDungeonScheduleBin { + #[prost(uint32, repeated, tag = "1")] + pub rune_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub shikigami_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub coin_a: u32, + #[prost(uint32, tag = "4")] + pub coin_b: u32, + #[prost(uint32, tag = "5")] + pub coin_c: u32, + #[prost(uint32, repeated, tag = "6")] + pub equipped_rune_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "7")] + pub misc_bin: ::core::option::Option, + #[prost(message, repeated, tag = "8")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub dungeon_runtime_bin: ::core::option::Option, + #[prost(bool, tag = "10")] + pub is_content_closed: bool, + #[prost(uint32, tag = "11")] + pub init_world_level: u32, + #[prost(uint64, tag = "12")] + pub trans_no_count: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampDropBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(uint32, tag = "2")] + pub drop_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampExploreBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(bool, tag = "2")] + pub is_finished: bool, + #[prost(uint32, tag = "3")] + pub drop_group_index: u32, + #[prost(message, repeated, tag = "4")] + pub drop_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampBattleBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(bool, tag = "2")] + pub is_finished: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampRaceBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub max_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampRecvItemBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(message, repeated, tag = "2")] + pub item_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampHomeUsedItemBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(message, repeated, tag = "2")] + pub item_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampSnowmanUsedItemBin { + #[prost(uint32, tag = "1")] + pub gadget_id: u32, + #[prost(message, repeated, tag = "2")] + pub item_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WinterCampScheduleBin { + #[prost(bool, tag = "1")] + pub is_content_closed: bool, + #[prost(uint32, tag = "2")] + pub coin_a: u32, + #[prost(uint32, tag = "3")] + pub coin_b: u32, + #[prost(uint32, tag = "4")] + pub drop_gen_index: u32, + #[prost(message, optional, tag = "5")] + pub explore_bin: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub battle_bin: ::core::option::Option, + #[prost(message, repeated, tag = "7")] + pub race_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub recv_item_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub wish_item_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub taken_explore_reward_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub taken_battle_reward_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "12")] + pub is_race_started: bool, + #[prost(message, repeated, tag = "13")] + pub home_used_item_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub snowman_used_item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HachiStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finished: bool, + #[prost(uint32, tag = "4")] + pub dungeon_pass_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HachiScheduleBin { + #[prost(map = "uint32, message", tag = "1")] + pub stage_bin_map: ::std::collections::HashMap, + #[prost(bool, tag = "2")] + pub is_content_closed: bool, + #[prost(uint32, tag = "3")] + pub cur_finish_steal_stage_id: u32, + #[prost(uint32, tag = "4")] + pub cur_finish_battle_stage_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PotionLevelBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(uint32, tag = "2")] + pub difficulty_level: u32, + #[prost(uint32, tag = "3")] + pub mode_id: u32, + #[prost(uint32, tag = "4")] + pub score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PotionStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub reset_times: u32, + #[prost(message, repeated, tag = "4")] + pub level_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub cool_down_avatar_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub cool_down_buff_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PotionScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "2")] + pub in_dungeon_avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub is_finish_any_level: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TanukiTravelLevelBin { + #[prost(uint32, tag = "1")] + pub route_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TanukiTravelScheduleBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub finished_level_index: u32, + #[prost(bool, tag = "3")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SalvageBundleChallengeBin { + #[prost(uint32, repeated, tag = "1")] + pub finished_bundle_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SalvageScoreChallengeBin { + #[prost(uint32, tag = "1")] + pub salvage_challenge_id: u32, + #[prost(uint32, tag = "2")] + pub max_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SalvageChallengeBin { + #[prost(uint32, tag = "1")] + pub challenge_type: u32, + #[prost(bool, tag = "2")] + pub is_unlock: bool, + #[prost(oneof = "salvage_challenge_bin::ChallengeDetail", tags = "10, 11, 12")] + pub challenge_detail: ::core::option::Option, +} +/// Nested message and enum types in `SalvageChallengeBin`. +pub mod salvage_challenge_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum ChallengeDetail { + #[prost(message, tag = "10")] + BundleInfo(super::SalvageBundleChallengeBin), + #[prost(message, tag = "11")] + ScoreChallengeInfo(super::SalvageScoreChallengeBin), + #[prost(uint32, tag = "12")] + BossChallengeId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LanternSalvageStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finished: bool, + #[prost(message, repeated, tag = "4")] + pub challenge_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LanternRiteProjectionLevelBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(bool, tag = "2")] + pub is_finish: bool, + #[prost(uint32, tag = "3")] + pub min_finish_time: u32, + #[prost(bool, tag = "4")] + pub is_view_tips: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LanternRiteProjectionBin { + #[prost(uint32, repeated, tag = "2")] + pub open_stage_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub view_input_tips_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub view_switch_tips_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub level_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LanternRiteFireworksChallengeBin { + #[prost(uint32, tag = "1")] + pub challenge_id: u32, + #[prost(uint32, tag = "2")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LanternRiteFireworksStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(message, repeated, tag = "3")] + pub challenge_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LanternRiteFireworksBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LanternRiteScheduleBin { + #[prost(uint32, tag = "1")] + pub coin_a: u32, + #[prost(uint32, tag = "2")] + pub coin_b: u32, + #[prost(uint32, tag = "3")] + pub coin_c: u32, + #[prost(message, optional, tag = "4")] + pub projection_bin: ::core::option::Option, + #[prost(message, repeated, tag = "5")] + pub salvage_stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub is_mini_eldritch_dungeon_open: bool, + #[prost(bool, tag = "7")] + pub is_taken_skin_reward: bool, + #[prost(map = "uint32, uint32", tag = "8")] + pub salvage_tracking_mark_map: ::std::collections::HashMap, + #[prost(bool, tag = "9")] + pub is_content_closed: bool, + #[prost(message, optional, tag = "10")] + pub fireworks_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MichiaeMatsuriStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MichiaeMatsuriScheduleBin { + #[prost(uint32, tag = "1")] + pub statue_refresh_group_time: u32, + #[prost(message, repeated, tag = "2")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub unlocked_crystal_skill_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub gain_crystal_exp: u32, + #[prost(uint32, repeated, tag = "5")] + pub finished_challenge_group_id_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BartenderTaskBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(bool, tag = "2")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BartenderLevelBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub max_score: u32, + #[prost(bool, tag = "3")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BartenderScheduleBin { + #[prost(uint32, repeated, tag = "1")] + pub unlock_item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub unlock_formula_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub unlock_task_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub unlock_level_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_develop_module_open: bool, + #[prost(uint64, tag = "6")] + pub trans_no_count: u64, + #[prost(bool, tag = "7")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriChessMapBin { + #[prost(uint32, tag = "1")] + pub best_score: u32, + #[prost(uint32, repeated, tag = "2")] + pub equiped_card_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriChessLevelBin { + #[prost(message, optional, tag = "1")] + pub normal_map_data: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub hard_map_data: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub level_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriChessBin { + #[prost(bool, tag = "1")] + pub is_open: bool, + #[prost(message, repeated, tag = "2")] + pub level_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriFlowerShelfBin { + #[prost(uint32, tag = "1")] + pub gadget_id: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub used_flower_count_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriFlowerBin { + #[prost(uint32, repeated, tag = "1")] + pub is_satisfied_theme_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub shelf_data_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriPoetryThemeBin { + #[prost(uint32, tag = "1")] + pub theme_id: u32, + #[prost(uint32, tag = "2")] + pub progress: u32, + #[prost(uint32, repeated, tag = "3")] + pub scanned_index_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub selected_line_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriPoetryBin { + #[prost(message, repeated, tag = "1")] + pub theme_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub cur_theme_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriMasterLevelDetailBin { + #[prost(uint32, tag = "1")] + pub difficulty: u32, + #[prost(bool, tag = "2")] + pub is_have_try: bool, + #[prost(bool, tag = "3")] + pub is_finish: bool, + #[prost(uint32, tag = "4")] + pub min_finish_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriMasterLevelBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(message, repeated, tag = "2")] + pub level_detail_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub is_cg_viewed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IrodoriScheduleBin { + #[prost(message, optional, tag = "1")] + pub chess_data: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub flower_data: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub poetry_data: ::core::option::Option, + #[prost(message, repeated, tag = "4")] + pub master_level_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub master_transaction_no: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CrystalLinkBuffBin { + #[prost(uint32, tag = "1")] + pub cond_buff_id: u32, + #[prost(uint32, tag = "2")] + pub effect_buff_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CrystalLinkAvatarBin { + #[prost(bool, tag = "1")] + pub is_trial: bool, + #[prost(uint64, tag = "2")] + pub avatar_id: u64, + #[prost(uint64, tag = "3")] + pub in_dungeon_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CrystalLinkTeamBin { + #[prost(message, repeated, tag = "1")] + pub avatar_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub buff_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CrystalLinkLevelBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub best_score: u32, + #[prost(message, repeated, tag = "4")] + pub team_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CrystalLinkScheduleBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub difficulty_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PhotoPosBin { + #[prost(uint32, tag = "1")] + pub pos_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_view: bool, + #[prost(bool, tag = "4")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PhotoScheduleBin { + #[prost(message, repeated, tag = "1")] + pub photo_pos_bin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpiceStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub success_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpiceScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub increase_avatar_fetter_limit_times: u32, + #[prost(uint32, tag = "3")] + pub current_increase_avatar_fetter_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GachaStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(map = "uint32, uint32", tag = "3")] + pub target_num_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GachaScheduleBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub robot_num_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "2")] + pub gacha_stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub item_stage: u32, + #[prost(uint32, tag = "4")] + pub sub_stage: u32, + #[prost(uint32, tag = "5")] + pub robot_finish_num: u32, + #[prost(uint32, repeated, tag = "6")] + pub create_robot_vec: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub hidden_robot_finish_num: u32, + #[prost(uint32, tag = "8")] + pub first_create_hidden_robot_id: u32, + #[prost(uint32, tag = "9")] + pub tech_create_robot_id: u32, + #[prost(map = "uint32, uint32", tag = "10")] + pub have_reward_robot_num_map: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "11")] + pub have_get_robot_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivityRecvGiftBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub gift_num_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivityGiftDataBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub wish_gift_num_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "2")] + pub recv_gift_data_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LuminanceStoneChallengeScheduleBin { + #[prost(bool, tag = "1")] + pub is_content_closed: bool, + #[prost(uint32, tag = "2")] + pub current_stage_id: u32, + #[prost(bool, tag = "3")] + pub is_final_gallery_complete: bool, + #[prost(uint32, tag = "4")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueDiaryStageRecordBin { + #[prost(uint32, tag = "1")] + pub difficulty: u32, + #[prost(uint32, tag = "2")] + pub round: u32, + #[prost(bool, tag = "3")] + pub is_finish: bool, + #[prost(uint32, tag = "4")] + pub finish_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueDiaryStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_have_try: bool, + #[prost(message, optional, tag = "3")] + pub record_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueDiaryRoomConfigPairBin { + #[prost(uint32, tag = "1")] + pub room_config_id: u32, + #[prost(bool, tag = "2")] + pub is_can_hard: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueDiaryAvtarBin { + #[prost(uint64, tag = "1")] + pub guid: u64, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(float, tag = "3")] + pub hp: f32, + #[prost(float, tag = "4")] + pub energy: f32, + #[prost(uint32, tag = "5")] + pub trial_config_id: u32, + #[prost(uint32, tag = "6")] + pub round: u32, + #[prost(uint32, tag = "7")] + pub life_state: u32, + #[prost(bool, tag = "8")] + pub is_ban: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueDiaryProgressBin { + #[prost(bool, tag = "1")] + pub is_have_progress: bool, + #[prost(bool, tag = "2")] + pub is_have_enter_dungeon: bool, + #[prost(uint32, tag = "3")] + pub stage_id: u32, + #[prost(uint32, tag = "4")] + pub dungeon_id: u32, + #[prost(uint32, tag = "5")] + pub difficulty: u32, + #[prost(uint32, tag = "6")] + pub cur_round: u32, + #[prost(bool, tag = "7")] + pub is_round_fight_finish: bool, + #[prost(message, repeated, tag = "9")] + pub room_config_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub optional_card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub chosen_card_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "12")] + pub is_round_repair_finish: bool, + #[prost(uint64, repeated, tag = "13")] + pub onstage_guid_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub rogue_avatar_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "15")] + pub optional_tired_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "16")] + pub coin: u32, + #[prost(uint32, tag = "17")] + pub time: u32, + #[prost(uint32, tag = "18")] + pub transaction: u32, + #[prost(uint32, repeated, tag = "19")] + pub resume_optional_card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "20")] + pub resume_chosen_card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "21")] + pub resume_select_card_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RogueDiaryScheduleBin { + #[prost(bool, tag = "1")] + pub is_content_closed: bool, + #[prost(message, repeated, tag = "2")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub progress_bin: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub coin: u32, + #[prost(uint32, tag = "5")] + pub transaction: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SummerTimeV2DungeonStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_prev_dungeon_succeed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SummerTimeV2BoatStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SummerTimeV2ScheduleBin { + #[prost(message, repeated, tag = "1")] + pub dungeon_stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub boat_stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub is_content_closed: bool, + #[prost(uint32, tag = "4")] + pub coin: u32, + #[prost(uint32, tag = "5")] + pub taken_reward_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IslandPartyStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IslandPartyScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GearStageBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finished: bool, + #[prost(uint32, tag = "4")] + pub shortest_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct JigsawPictureDataBin { + #[prost(bool, tag = "1")] + pub is_open: bool, + #[prost(bool, tag = "2")] + pub is_finished: bool, + #[prost(uint32, tag = "3")] + pub shortest_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GearScheduleBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub jigsaw_picture_data: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub player_finish_gear_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocencePhotoStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finished: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocencePhotoObjectBin { + #[prost(uint32, tag = "1")] + pub object_id: u32, + #[prost(uint32, tag = "2")] + pub param: u32, + #[prost(uint32, tag = "3")] + pub finish_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocencePhotoBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub object_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceCampStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub level_id: u32, + #[prost(bool, tag = "4")] + pub is_finished: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceCampBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceRaceLevelBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub max_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceRaceBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceCarveStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceCarveUsedItemBin { + #[prost(uint32, tag = "1")] + pub gadget_config_id: u32, + #[prost(message, repeated, tag = "2")] + pub need_item_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub pass_item_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceCarveBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub used_item_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GravenInnocenceScheduleBin { + #[prost(message, optional, tag = "1")] + pub photo_bin: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub camp_bin: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub coin_a: u32, + #[prost(uint32, tag = "4")] + pub coin_b: u32, + #[prost(message, optional, tag = "5")] + pub race_bin: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub carve_bin: ::core::option::Option, + #[prost(bool, tag = "7")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct InstableSprayStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(uint32, tag = "2")] + pub max_score: u32, + #[prost(bool, tag = "3")] + pub is_open: bool, + #[prost(message, repeated, tag = "4")] + pub team_info_bin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_finished: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct InstableSprayScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "2")] + pub in_dungeon_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct InstableSprayAvatarInfoBin { + #[prost(uint64, tag = "1")] + pub avatar_id: u64, + #[prost(bool, tag = "2")] + pub is_trial: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct InstableSprayTeamInfoBin { + #[prost(message, repeated, tag = "1")] + pub avatar_info_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MuqadasPotionLevelDataBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub max_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MuqadasPotionScheduleBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "2")] + pub in_dungeon_avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TreasureSeelieRegionBin { + #[prost(uint32, tag = "1")] + pub open_day: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, repeated, tag = "3")] + pub opened_chest_config_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub is_done: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TreasureSeelieScheduleBin { + #[prost(uint32, tag = "1")] + pub coin_num: u32, + #[prost(message, repeated, tag = "2")] + pub region_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub is_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RockBoardExploreStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RockBoardExploreScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageHuntingStageDataBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finish: bool, + #[prost(uint32, tag = "4")] + pub record_value: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintagePresentLevelDataBin { + #[prost(uint32, tag = "1")] + pub present_id: u32, + #[prost(uint32, tag = "2")] + pub stage_id: u32, + #[prost(bool, tag = "3")] + pub is_open: bool, + #[prost(bool, tag = "4")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintagePresentStageDataBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(bool, tag = "3")] + pub is_finish: bool, + #[prost(map = "uint32, message", tag = "4")] + pub present_level_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageBoothUsedItemDataBin { + #[prost(uint32, tag = "1")] + pub gadget_id: u32, + #[prost(bool, tag = "3")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageCampChallengeLevelDataBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(uint32, tag = "2")] + pub stage_id: u32, + #[prost(bool, tag = "3")] + pub is_open: bool, + #[prost(bool, tag = "4")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageCampChallengeStageDataBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(map = "uint32, message", tag = "2")] + pub camp_level_map: ::std::collections::HashMap< + u32, + VintageCampChallengeLevelDataBin, + >, + #[prost(bool, tag = "3")] + pub is_open: bool, + #[prost(bool, tag = "4")] + pub is_finish: bool, + #[prost(uint32, tag = "5")] + pub max_finished_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageTraderDealBin { + #[prost(uint32, tag = "1")] + pub trader_id: u32, + #[prost(message, repeated, tag = "2")] + pub deal_item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageBargainBin { + #[prost(uint32, tag = "1")] + pub bargain_id: u32, + #[prost(uint32, tag = "2")] + pub price: u32, + #[prost(bool, tag = "3")] + pub is_succ: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageStoreAttrRandomPoolBin { + #[prost(uint32, tag = "1")] + pub template_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub pool_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageStoreBin { + #[prost(uint32, tag = "1")] + pub store_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub attr_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub attr_random_pool_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub aim_attr_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub slot_count: u32, + #[prost(uint32, repeated, tag = "6")] + pub chosen_skill_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageNpcEventBin { + #[prost(uint32, tag = "1")] + pub event_id: u32, + #[prost(uint32, tag = "2")] + pub max_effective_round: u32, + #[prost(bool, tag = "3")] + pub is_finish: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct VintageScheduleBin { + #[prost(uint32, tag = "1")] + pub popularity: u32, + #[prost(map = "uint32, message", tag = "2")] + pub hunting_stage_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "3")] + pub present_stage_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "4")] + pub booth_data: ::core::option::Option, + #[prost(map = "uint32, message", tag = "5")] + pub camp_stage_map: ::std::collections::HashMap< + u32, + VintageCampChallengeStageDataBin, + >, + #[prost(uint32, tag = "6")] + pub collected_item_num: u32, + #[prost(bool, tag = "7")] + pub is_content_closed: bool, + #[prost(uint32, tag = "8")] + pub market_coin_a: u32, + #[prost(uint32, tag = "9")] + pub market_coin_b: u32, + #[prost(uint32, tag = "10")] + pub market_coin_c: u32, + #[prost(bool, tag = "11")] + pub is_market_content_open: bool, + #[prost(bool, tag = "12")] + pub is_market_content_finish: bool, + #[prost(message, repeated, tag = "13")] + pub trader_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub bargain_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub store_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "16")] + pub store_round: u32, + #[prost(uint32, tag = "17")] + pub prev_coin_b_num: u32, + #[prost(uint32, tag = "18")] + pub prev_coin_c_num: u32, + #[prost(bool, tag = "19")] + pub is_round_tips_view: bool, + #[prost(uint32, repeated, tag = "20")] + pub taken_reward_present_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "21")] + pub is_store_content_finish: bool, + #[prost(bool, tag = "22")] + pub is_store_content_interrupt: bool, + #[prost(message, repeated, tag = "23")] + pub env_event_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "24")] + pub npc_event_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "25")] + pub skill_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "26")] + pub viewed_skill_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "27")] + pub is_strategy_module_open: bool, + #[prost(bool, tag = "28")] + pub is_help_module_open: bool, + #[prost(uint32, tag = "29")] + pub next_can_use_help_round: u32, + #[prost(uint32, tag = "30")] + pub help_skill_id: u32, + #[prost(map = "uint32, message", tag = "31")] + pub dividend_res_map: ::std::collections::HashMap, + #[prost(uint32, tag = "32")] + pub dividend_id: u32, + #[prost(uint32, tag = "33")] + pub dividend_reward_count: u32, + #[prost(uint32, tag = "34")] + pub hunting_boss_weak_count: u32, + #[prost(uint32, repeated, tag = "35")] + pub store_round_income_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WindFieldScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WindFieldStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivityGeneralCoinBin { + #[prost(uint32, tag = "1")] + pub coin_type: u32, + #[prost(uint32, tag = "2")] + pub coin_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FungusBin { + #[prost(uint32, tag = "1")] + pub fungus_id: u32, + #[prost(uint32, tag = "2")] + pub name_id: u32, + #[prost(bool, tag = "3")] + pub is_cultivate: bool, + #[prost(uint32, tag = "4")] + pub capture_order: u32, + #[prost(uint32, tag = "5")] + pub min_cultivate_step: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FungusPlotStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FungusTrainingDungeonBin { + #[prost(uint32, tag = "1")] + pub dungeon_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub best_score: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FungusFighterMonsterBin { + #[prost(uint32, tag = "1")] + pub fungus_id: u32, + #[prost(float, tag = "2")] + pub cur_hp_percentage: f32, + #[prost(bool, tag = "3")] + pub is_alive: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FungusTrainingShapshotDataBin { + #[prost(uint32, tag = "1")] + pub dungeon_id: u32, + #[prost(uint32, tag = "2")] + pub skill_count: u32, + #[prost(uint32, tag = "3")] + pub cur_round: u32, + #[prost(message, repeated, tag = "4")] + pub monster_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub choosen_monster_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub backup_monster_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub total_used_time: u32, + #[prost(uint32, tag = "8")] + pub rand_index: u32, + #[prost(uint32, repeated, tag = "9")] + pub monster_pool_list: ::prost::alloc::vec::Vec, + #[prost(string, tag = "10")] + pub level_transaction: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FungusTrainingProgressBin { + #[prost(message, repeated, tag = "1")] + pub fungus_snapshot_data_list: ::prost::alloc::vec::Vec< + FungusTrainingShapshotDataBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FungusFighterScheduleBin { + #[prost(message, repeated, tag = "1")] + pub fungus_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub fungus_plot_stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub capture_order: u32, + #[prost(message, repeated, tag = "5")] + pub fungus_training_dungeon_bin_list: ::prost::alloc::vec::Vec< + FungusTrainingDungeonBin, + >, + #[prost(uint32, repeated, tag = "6")] + pub unlock_camp_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub unlock_cultivate_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "8")] + pub fungus_training_progress_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CharAmusementStageBin { + #[prost(uint32, tag = "1")] + pub stage_id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, + #[prost(uint32, tag = "3")] + pub finish_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CharAmusementScheduleBin { + #[prost(message, repeated, tag = "1")] + pub stage_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "2")] + pub in_dungeon_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EffigyChallengeV2LevelBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(uint32, tag = "2")] + pub best_cost_time: u32, + #[prost(bool, tag = "3")] + pub is_level_open: bool, + #[prost(uint32, tag = "4")] + pub challenge_mode_difficulty_open: u32, + #[prost(uint32, tag = "5")] + pub challenge_mode_last_choose_skill_no: u32, + #[prost(uint32, tag = "6")] + pub challenge_mode_difficulty_pass: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EffigyChallengeV2ScheduleBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivityScheduleBin { + #[prost( + oneof = "activity_schedule_bin::Detail", + tags = "102, 103, 104, 112, 113, 114, 115, 116, 120, 121, 130, 131, 132, 140, 141, 142, 151, 152, 153, 154, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198" + )] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `ActivityScheduleBin`. +pub mod activity_schedule_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "102")] + SalesmanScheduleBin(super::SalesmanScheduleBin), + #[prost(message, tag = "103")] + TrialAvatarBin(super::TrialAvatarScheduleBin), + #[prost(message, tag = "104")] + DeliveryBin(super::DeliveryScheduleBin), + #[prost(message, tag = "112")] + CrucibleBin(super::CrucibleScheduleBin), + #[prost(message, tag = "113")] + AsterBin(super::AsterScheduleBin), + #[prost(message, tag = "114")] + FlightBin(super::FlightScheduleBin), + #[prost(message, tag = "115")] + DragonSpineBin(super::DragonSpineScheduleBin), + #[prost(message, tag = "116")] + EffigyBin(super::EffigyScheduleBin), + #[prost(message, tag = "120")] + TreasureMapBin(super::TreasureMapScheduleBin), + #[prost(message, tag = "121")] + SalesmanMpBin(super::SalesmanMpScheduleBin), + #[prost(message, tag = "130")] + BlessingBin(super::BlessingScheduleBin), + #[prost(message, tag = "131")] + SeaLampBin(super::SeaLampScheduleDataBin), + #[prost(message, tag = "132")] + ExpeditionBin(super::ExpeditionScheduleBin), + #[prost(message, tag = "140")] + FleurFairBin(super::FleurFairScheduleBin), + #[prost(message, tag = "141")] + ArenaChallengeBin(super::ArenaChallengeSchduleBin), + #[prost(message, tag = "142")] + WaterSpiritBin(super::WaterSpiritScheduleBin), + #[prost(message, tag = "151")] + ChannellerSlabBin(super::ChannellerSlabScheduleBin), + #[prost(message, tag = "152")] + HideAndSeekBin(super::HideAndSeekScheduleBin), + #[prost(message, tag = "153")] + MistTrialBin(super::MistTrialScheduleBin), + #[prost(message, tag = "154")] + FindHilichurlBin(super::FindHilichurlScheduleBin), + #[prost(message, tag = "160")] + SummerTimeBin(super::SummerTimeScheduleBin), + #[prost(message, tag = "161")] + BuoyantCombatBin(super::BuoyantCombatScheduleBin), + #[prost(message, tag = "162")] + BounceConjuringBin(super::BounceConjuringScheduleBin), + #[prost(message, tag = "163")] + EchoShellBin(super::EchoShellScheduleBin), + #[prost(message, tag = "164")] + BlitzRushBin(super::BlitzRushScheduleBin), + #[prost(message, tag = "165")] + ChessBin(super::ChessScheduleBin), + #[prost(message, tag = "166")] + SumoBin(super::SumoScheduleBin), + #[prost(message, tag = "167")] + LunaRiteBin(super::LunaRiteScheduleBin), + #[prost(message, tag = "168")] + MoonfinTrialBin(super::MoonfinTrialScheduleBin), + #[prost(message, tag = "169")] + PlantFlowerBin(super::PlantFlowerScheduleBin), + #[prost(message, tag = "170")] + MusicGameBin(super::MusicGameScheduleBin), + #[prost(message, tag = "171")] + RoguelikeDungeonBin(super::RoguelikeDungeonScheduleBin), + #[prost(message, tag = "172")] + WinterCampBin(super::WinterCampScheduleBin), + #[prost(message, tag = "173")] + HachiBin(super::HachiScheduleBin), + #[prost(message, tag = "174")] + TanukiTravelBin(super::TanukiTravelScheduleBin), + #[prost(message, tag = "175")] + LanternRiteBin(super::LanternRiteScheduleBin), + #[prost(message, tag = "176")] + PotionBin(super::PotionScheduleBin), + #[prost(message, tag = "177")] + MichiaeMatsuriBin(super::MichiaeMatsuriScheduleBin), + #[prost(message, tag = "178")] + BartenderBin(super::BartenderScheduleBin), + #[prost(message, tag = "179")] + IrodoriBin(super::IrodoriScheduleBin), + #[prost(message, tag = "180")] + CrystalLinkBin(super::CrystalLinkScheduleBin), + #[prost(message, tag = "181")] + PhotoBin(super::PhotoScheduleBin), + #[prost(message, tag = "182")] + SpiceBin(super::SpiceScheduleBin), + #[prost(message, tag = "183")] + GachaBin(super::GachaScheduleBin), + #[prost(message, tag = "184")] + LuminanceStoneChallengeBin(super::LuminanceStoneChallengeScheduleBin), + #[prost(message, tag = "185")] + RogueDiaryBin(super::RogueDiaryScheduleBin), + #[prost(message, tag = "186")] + SummerTimeV2Bin(super::SummerTimeV2ScheduleBin), + #[prost(message, tag = "187")] + IslandPartyBin(super::IslandPartyScheduleBin), + #[prost(message, tag = "188")] + GearBin(super::GearScheduleBin), + #[prost(message, tag = "189")] + GravenInnocenceBin(super::GravenInnocenceScheduleBin), + #[prost(message, tag = "190")] + InstableSprayBin(super::InstableSprayScheduleBin), + #[prost(message, tag = "191")] + MuqadasPotionBin(super::MuqadasPotionScheduleBin), + #[prost(message, tag = "192")] + TreasureSeelieBin(super::TreasureSeelieScheduleBin), + #[prost(message, tag = "193")] + RockBoardExploreBin(super::RockBoardExploreScheduleBin), + #[prost(message, tag = "194")] + VintageBin(super::VintageScheduleBin), + #[prost(message, tag = "195")] + WindFieldBin(super::WindFieldScheduleBin), + #[prost(message, tag = "196")] + FungusFighterBin(super::FungusFighterScheduleBin), + #[prost(message, tag = "197")] + CharAmusementBin(super::CharAmusementScheduleBin), + #[prost(message, tag = "198")] + EffigyChallengeBin(super::EffigyChallengeV2ScheduleBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActivityBin { + #[prost(uint32, tag = "1")] + pub schedule_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub meet_cond_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, bool", tag = "3")] + pub cond_state_map: ::std::collections::HashMap, + #[prost(bool, tag = "4")] + pub is_play_open_anim: bool, + #[prost(bool, tag = "5")] + pub is_settled: bool, + #[prost(uint32, repeated, tag = "6")] + pub taken_watcher_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub finished_watcher_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "8")] + pub schedule_bin: ::core::option::Option, + #[prost(bool, tag = "9")] + pub is_started: bool, + #[prost(uint32, repeated, tag = "10")] + pub activated_activity_sale_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub selected_avatar_reward_id: u32, + #[prost(uint32, tag = "12")] + pub score_limit: u32, + #[prost(uint32, tag = "13")] + pub cur_score: u32, + #[prost(uint32, repeated, tag = "14")] + pub taken_score_reward_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub is_notify_mail_sent: bool, + #[prost(message, repeated, tag = "16")] + pub disable_transfer_point_interaction_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "17")] + pub is_banner_cleared: bool, + #[prost(uint32, tag = "18")] + pub start_world_level: u32, + #[prost(bool, tag = "20")] + pub is_quick_open: bool, + #[prost(uint32, repeated, tag = "21")] + pub expired_cond_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "22")] + pub quest_content_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "23")] + pub gift_data_bin: ::core::option::Option, + #[prost(map = "uint32, uint32", tag = "24")] + pub activity_push_tips_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "25")] + pub activity_general_coin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "26")] + pub is_common_content_closed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerActivityCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub activity_bin_map: ::std::collections::HashMap, + #[prost(uint32, tag = "2")] + pub fly_sea_lamp_num: u32, + #[prost(uint32, tag = "3")] + pub fly_sea_lamp_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerMailBin { + #[prost(uint32, tag = "1")] + pub mail_id: u32, + #[prost(message, optional, tag = "2")] + pub mail_bin: ::core::option::Option, + #[prost(bool, tag = "3")] + pub is_read: bool, + #[prost(bool, tag = "4")] + pub is_attachment_got: bool, + #[prost(uint32, tag = "5")] + pub source_type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerMailCompBin { + #[prost(uint32, repeated, tag = "1")] + pub has_take_attachment_mail_id_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint64, message", tag = "2")] + pub wait_add_mail_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "3")] + pub action_seq_map: ::std::collections::HashMap, + #[prost(map = "string, message", tag = "4")] + pub new_wait_add_mail_map: ::std::collections::HashMap< + ::prost::alloc::string::String, + MailBin, + >, + #[prost(bool, tag = "5")] + pub is_collectible_mail_transfered: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ShopGoodsRecordBin { + #[prost(uint32, tag = "1")] + pub goods_id: u32, + #[prost(uint32, tag = "2")] + pub bought_num: u32, + #[prost(fixed32, tag = "3")] + pub last_buy_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ShopRecordBin { + #[prost(uint32, tag = "1")] + pub shop_type: u32, + #[prost(message, repeated, tag = "2")] + pub goods_record_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub history_goods_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerShopCompBin { + #[prost(message, repeated, tag = "1")] + pub shop_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GachaItemTypeDataBin { + #[prost(uint32, tag = "1")] + pub last_gacha_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GachaItemParentTypeDataBin { + #[prost(uint32, tag = "1")] + pub last_gacha_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GachaGuaranteeDataBin { + #[prost(uint32, tag = "1")] + pub gacha_rule_id: u32, + #[prost(uint32, tag = "2")] + pub last_gacha_guarantee_times: u32, + #[prost(bool, tag = "3")] + pub is_cur_schedule_triggered: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GachaUpDataBin { + #[prost(uint32, tag = "1")] + pub gacha_no_up_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GachaRecordBin { + #[prost(uint32, tag = "1")] + pub gacha_type: u32, + #[prost(uint32, tag = "2")] + pub cur_schedule_id: u32, + #[prost(uint32, tag = "3")] + pub total_gacha_times: u32, + #[prost(map = "uint32, message", tag = "4")] + pub gacha_guarantee_map: ::std::collections::HashMap, + #[prost(uint32, tag = "5")] + pub cur_schedule_total_gacha_times: u32, + #[prost(map = "uint32, message", tag = "6")] + pub gacha_item_type_data_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "7")] + pub gacha_item_parent_type_data_map: ::std::collections::HashMap< + u32, + GachaItemParentTypeDataBin, + >, + #[prost(uint32, tag = "8")] + pub total_ten_gacha_times: u32, + #[prost(map = "uint32, message", tag = "9")] + pub gacha_up_data_map: ::std::collections::HashMap, + #[prost(uint32, tag = "10")] + pub wish_item_id: u32, + #[prost(uint32, tag = "11")] + pub wish_progress: u32, + #[prost(bool, tag = "12")] + pub is_new_wish: bool, + #[prost(uint32, tag = "13")] + pub cur_schedule_daily_last_gacha_time: u32, + #[prost(uint32, tag = "14")] + pub cur_schedule_daily_gacha_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGachaCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub gacha_record_map: ::std::collections::HashMap, + #[prost(uint32, tag = "2")] + pub gacha_random: u32, + #[prost(uint32, tag = "3")] + pub daily_gacha_times: u32, + #[prost(uint32, tag = "4")] + pub last_gacha_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GivingRecordBin { + #[prost(uint32, tag = "1")] + pub giving_id: u32, + #[prost(bool, tag = "2")] + pub is_finished: bool, + #[prost(uint32, tag = "3")] + pub last_group_id: u32, + #[prost(bool, tag = "4")] + pub is_gadget_giving: bool, + #[prost(uint32, tag = "5")] + pub group_id: u32, + #[prost(uint32, tag = "6")] + pub config_id: u32, + #[prost(map = "uint32, uint32", tag = "8")] + pub material_cnt_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGivingCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub giving_record_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ForgeQueueBin { + #[prost(uint32, tag = "1")] + pub transaction_no: u32, + #[prost(uint32, tag = "2")] + pub queue_id: u32, + #[prost(uint32, tag = "3")] + pub forge_id: u32, + #[prost(uint32, tag = "4")] + pub forge_count: u32, + #[prost(uint32, tag = "5")] + pub finish_count: u32, + #[prost(uint32, tag = "6")] + pub taken_count: u32, + #[prost(fixed32, tag = "7")] + pub start_time: u32, + #[prost(uint32, tag = "8")] + pub single_time_cost: u32, + #[prost(uint32, repeated, tag = "9")] + pub proud_skill_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerForgeCompBin { + #[prost(uint32, tag = "1")] + pub last_transaction_no: u32, + #[prost(map = "uint32, message", tag = "2")] + pub forge_queue_map: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub forge_point: u32, + #[prost(fixed32, tag = "4")] + pub last_refresh_time: u32, + #[prost(uint32, repeated, tag = "5")] + pub unlock_forge_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerCombineCompBin { + #[prost(uint32, repeated, tag = "1")] + pub unlock_combine_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WatcherBin { + #[prost(uint32, tag = "1")] + pub watcher_id: u32, + #[prost(uint32, tag = "2")] + pub progress: u32, + #[prost(message, repeated, tag = "3")] + pub var_list: ::prost::alloc::vec::Vec, +} +/// Nested message and enum types in `WatcherBin`. +pub mod watcher_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Var { + #[prost(uint32, tag = "1")] + pub key: u32, + #[prost(int32, tag = "2")] + pub value: i32, + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PushTipsBin { + #[prost(uint32, tag = "1")] + pub push_tips_id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RecordValueBin { + #[prost(float, tag = "1")] + pub max_critical_damage: f32, + #[prost(float, tag = "2")] + pub max_fly_map_distance: f32, + #[prost(float, tag = "3")] + pub max_fly_time: f32, + #[prost(float, tag = "4")] + pub max_dash_time: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerWatcherCompBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub global_watcher_progress_map: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "2")] + pub finished_global_watcher_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub push_tips_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub watcher_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "5")] + pub record_value: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerTeamBin { + #[prost(uint32, tag = "1")] + pub tower_team_id: u32, + #[prost(uint64, repeated, tag = "2")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerLevelRecordBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub satisfied_cond_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerFloorRecordBin { + #[prost(uint32, tag = "1")] + pub floor_id: u32, + #[prost(message, repeated, tag = "2")] + pub passed_level_record_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub floor_star_reward_progress: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerAvatarRecordBin { + #[prost(map = "uint32, float", tag = "1")] + pub cur_fight_prop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerCurLevelRecordBin { + #[prost(uint32, tag = "1")] + pub cur_floor_index: u32, + #[prost(uint32, tag = "2")] + pub cur_level_index: u32, + #[prost(message, repeated, tag = "3")] + pub tower_team_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint64, message", tag = "4")] + pub avatar_record_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "5")] + pub tower_buff_map: ::std::collections::HashMap, + #[prost(bool, tag = "6")] + pub is_floor_finished: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerLevelBuffListBin { + #[prost(uint32, repeated, tag = "1")] + pub tower_buff_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerFloorLevelBin { + #[prost(uint32, tag = "1")] + pub floor_index: u32, + #[prost(uint32, tag = "2")] + pub level_index: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerFightStatisticBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub avatar_reveal_count_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "2")] + pub kill_count_map: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub max_single_damage_avatar_id: u32, + #[prost(uint32, tag = "4")] + pub max_single_damage_value: u32, + #[prost(map = "uint32, uint32", tag = "5")] + pub take_damage_count_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "6")] + pub normal_skill_count_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "7")] + pub energy_skill_count_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerFightSummaryPair { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub data: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerMonthlyCombatSummaryBin { + #[prost(message, repeated, tag = "1")] + pub most_reveal_avatar_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub most_kill_avatar_pair: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub highest_dps_avatr_pair: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub most_take_damage_avatar_pair: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub most_cast_normal_skill_avatar_pair: ::core::option::Option< + TowerFightSummaryPair, + >, + #[prost(message, optional, tag = "6")] + pub most_cast_energy_skill_avatar_pair: ::core::option::Option< + TowerFightSummaryPair, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TowerMonthlySummaryBin { + #[prost(uint32, tag = "1")] + pub tower_schedule_id: u32, + #[prost(uint32, tag = "2")] + pub best_floor_index: u32, + #[prost(uint32, tag = "3")] + pub best_level_index: u32, + #[prost(uint32, tag = "4")] + pub total_star_count: u32, + #[prost(message, optional, tag = "5")] + pub monthly_combat_summary: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub last_passed_floor_index: u32, + #[prost(bool, tag = "7")] + pub is_interact: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerTowerCompBin { + #[prost(uint32, tag = "1")] + pub tower_schedule_id: u32, + #[prost(message, repeated, tag = "2")] + pub tower_floor_record_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "3")] + pub last_daily_reward_time: u32, + #[prost(uint32, tag = "4")] + pub daily_floor_index: u32, + #[prost(uint32, tag = "5")] + pub daily_level_index: u32, + #[prost(map = "uint32, message", tag = "6")] + pub daily_level_buff_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "7")] + pub cur_level_record: ::core::option::Option, + #[prost(bool, tag = "8")] + pub is_interact_this_schedule: bool, + #[prost(message, optional, tag = "9")] + pub fight_statistic: ::core::option::Option, + #[prost(map = "uint32, message", tag = "10")] + pub tower_monthly_summary_map: ::std::collections::HashMap< + u32, + TowerMonthlySummaryBin, + >, + #[prost(message, repeated, tag = "11")] + pub tower_entrance_floor_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlossomCircleCampDataBin { + #[prost(uint32, tag = "1")] + pub refresh_id: u32, + #[prost(uint32, tag = "2")] + pub circle_camp_id: u32, + #[prost(uint32, tag = "3")] + pub drop_id: u32, + #[prost(uint32, tag = "4")] + pub preview_reward: u32, + #[prost(uint32, tag = "5")] + pub round: u32, + #[prost(uint32, tag = "6")] + pub state: u32, + #[prost(uint32, tag = "7")] + pub progress: u32, + #[prost(bool, tag = "8")] + pub is_guide_opened: bool, + #[prost(uint32, repeated, tag = "9")] + pub update_round_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub valid_world_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlossomRefreshDataBin { + #[prost(message, repeated, tag = "1")] + pub circle_camp_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "2")] + pub last_refresh_time: u32, + #[prost(uint32, repeated, tag = "3")] + pub used_camp_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlossomInitialSectionDataBin { + #[prost(uint32, tag = "1")] + pub section_id: u32, + #[prost(fixed32, tag = "2")] + pub timestamp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerBlossomCompBin { + #[prost(map = "uint32, fixed32", tag = "1")] + pub recent_used_section_id_map: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "2")] + pub initial_section_map: ::std::collections::HashMap< + u32, + BlossomInitialSectionDataBin, + >, + #[prost(map = "uint32, message", tag = "3")] + pub refresh_data_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SignInRecordBin { + #[prost(uint32, tag = "1")] + pub schedule_id: u32, + #[prost(uint32, tag = "2")] + pub sign_in_count: u32, + #[prost(fixed32, tag = "3")] + pub last_sign_in_time: u32, + #[prost(uint32, repeated, tag = "4")] + pub reward_day_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BonusActivityRecordBin { + #[prost(uint32, tag = "1")] + pub bonus_activity_id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerSignInCompBin { + #[prost(message, repeated, tag = "1")] + pub sign_in_record_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub bonus_activity_record_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct McoinProductConfigBin { + #[prost(fixed32, tag = "1")] + pub last_buy_time: u32, + #[prost(uint32, tag = "2")] + pub buy_times: u32, + #[prost(uint32, tag = "3")] + pub config_id: u32, + #[prost(string, repeated, tag = "4")] + pub product_id_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CardProductConfigBin { + #[prost(fixed32, tag = "1")] + pub last_daily_reward_time: u32, + #[prost(fixed32, tag = "2")] + pub take_effect_time: u32, + #[prost(fixed32, tag = "3")] + pub expire_time: u32, + #[prost(uint32, tag = "4")] + pub config_id: u32, + #[prost(string, repeated, tag = "5")] + pub product_id_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(fixed32, tag = "6")] + pub last_send_remind_mail_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GoogleGiftCardProductBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(uint32, tag = "2")] + pub buy_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConcertProductBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(uint32, tag = "2")] + pub buy_times: u32, + #[prost(string, repeated, tag = "3")] + pub ticket_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AppleGiftCardProductBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(uint32, tag = "2")] + pub buy_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PsnCompensationProductBin { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(uint32, tag = "2")] + pub buy_times: u32, + #[prost(uint32, tag = "3")] + pub last_buy_time: u32, + #[prost(uint32, tag = "4")] + pub month_buy_times: u32, + #[prost(uint32, tag = "5")] + pub month_last_buy_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OrderFinishNotifyItemBin { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OrderFinishNotifyBin { + #[prost(string, tag = "1")] + pub product_id: ::prost::alloc::string::String, + #[prost(uint32, tag = "2")] + pub add_mcoin: u32, + #[prost(uint32, tag = "3")] + pub card_product_remain_days: u32, + #[prost(uint32, tag = "4")] + pub order_id: u32, + #[prost(message, repeated, tag = "5")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OrderNotifySaveBin { + #[prost(uint32, tag = "1")] + pub platform_type: u32, + #[prost(message, repeated, tag = "3")] + pub order_notify_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerRechargeCompBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub finished_order_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "2")] + pub wait_mark_db_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "3")] + pub mcoin_product_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub card_product_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "5")] + pub mcoin_product_refresh_time: u32, + #[prost(uint32, tag = "6")] + pub vip_point: u32, + #[prost(string, repeated, tag = "7")] + pub ps4_package_product_list: ::prost::alloc::vec::Vec< + ::prost::alloc::string::String, + >, + #[prost(message, repeated, tag = "8")] + pub google_gift_card_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub order_notify_save_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub concert_product_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub apple_gift_card_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub psn_compensation_product_list: ::prost::alloc::vec::Vec< + PsnCompensationProductBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BattlePassRewardTagBin { + #[prost(uint32, tag = "1")] + pub unlock_status: u32, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, tag = "3")] + pub reward_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BattlePassScheduleBin { + #[prost(uint32, tag = "1")] + pub schedule_id: u32, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, tag = "3")] + pub point: u32, + #[prost(uint32, tag = "4")] + pub unlock_status: u32, + #[prost(message, repeated, tag = "5")] + pub reward_taken_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub is_extra_paid_reward_taken: bool, + #[prost(bool, tag = "7")] + pub is_viewed: bool, + #[prost(uint32, tag = "8")] + pub cur_cycle_points: u32, + #[prost(bool, tag = "9")] + pub is_notify_mail_sent: bool, + #[prost(uint32, tag = "10")] + pub paid_platform_flags: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BattlePassMissionBin { + #[prost(uint32, tag = "1")] + pub mission_id: u32, + #[prost(uint32, tag = "2")] + pub mission_status: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerBattlePassCompBin { + #[prost(message, repeated, tag = "1")] + pub schedule_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub cur_battle_pass_mission_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub cur_schedule_id: u32, + #[prost(fixed32, tag = "4")] + pub last_refresh_time: u32, + #[prost(fixed32, tag = "5")] + pub weekly_last_refresh_time: u32, + #[prost(uint32, repeated, tag = "6")] + pub cross_schedule_weekly_watcher_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChatEmojiCollectionBin { + #[prost(uint32, repeated, tag = "1")] + pub emoji_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerSocialCompBin { + #[prost(uint32, repeated, tag = "1")] + pub unlock_name_card_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "2")] + pub birthday: u64, + #[prost(string, tag = "3")] + pub signature: ::prost::alloc::string::String, + #[prost(uint32, tag = "4")] + pub name_card_id: u32, + #[prost(uint32, repeated, tag = "5")] + pub recent_mp_player_uid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub last_grant_birthday_benefit_year: u32, + #[prost(bool, tag = "7")] + pub is_have_first_share: bool, + #[prost(bool, tag = "8")] + pub is_login_on_birthday: bool, + #[prost(uint32, tag = "9")] + pub report_during_last_time_count: u32, + #[prost(uint32, tag = "10")] + pub report_next_limit_time: u32, + #[prost(uint32, tag = "11")] + pub next_report_time: u32, + #[prost(uint32, tag = "12")] + pub cur_day_social_request_num: u32, + #[prost(fixed32, tag = "13")] + pub last_clear_social_request_time: u32, + #[prost(map = "uint32, string", tag = "14")] + pub friend_remark_name_map: ::std::collections::HashMap< + u32, + ::prost::alloc::string::String, + >, + #[prost(uint32, tag = "15")] + pub cur_day_ask_friend_num: u32, + #[prost(fixed32, tag = "16")] + pub last_ask_friend_time: u32, + #[prost(uint32, repeated, tag = "17")] + pub show_avatar_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "18")] + pub is_show_avatar: bool, + #[prost(uint32, repeated, tag = "19")] + pub show_name_card_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "20")] + pub chat_emoji_collection: ::core::option::Option, + #[prost(message, optional, tag = "21")] + pub signature_audit_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SecurityAntiOfflineDataBin { + #[prost(uint32, tag = "1")] + pub security_check_type: u32, + #[prost(uint32, tag = "2")] + pub security_level: u32, + #[prost(uint32, tag = "3")] + pub succ_num: u32, + #[prost(uint32, tag = "4")] + pub empty_num: u32, + #[prost(uint32, tag = "5")] + pub decrypt_fail_num: u32, + #[prost(uint32, tag = "6")] + pub verify_fail_num: u32, + #[prost(uint32, tag = "7")] + pub cur_succ_num: u32, + #[prost(uint32, tag = "8")] + pub cur_fail_num: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MpPlayBin { + #[prost(uint32, tag = "1")] + pub mp_play_id: u32, + #[prost(uint32, tag = "2")] + pub entry_id: u32, + #[prost(uint32, tag = "3")] + pub play_type: u32, + #[prost(bool, tag = "4")] + pub is_close: bool, + #[prost(uint32, repeated, tag = "7")] + pub reward_remain_uid_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub uid_world_level_list: ::prost::alloc::vec::Vec, +} +/// Nested message and enum types in `MpPlayBin`. +pub mod mp_play_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct UidWorldLevelBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub world_level: u32, + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerMpPlayCompBin { + #[prost(message, repeated, tag = "1")] + pub mp_play_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CodexTypeDataBin { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(uint32, repeated, tag = "2")] + pub codex_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub viewed_codex_id_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub weapon_max_promote_level_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerCodexCompBin { + #[prost(message, repeated, tag = "1")] + pub type_data_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub recent_viewed_pushtips_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub last_read_pushtips_codex_id: u32, + #[prost(uint32, tag = "7")] + pub last_read_pushtips_type_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AchievementBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub status: u32, + #[prost(uint32, tag = "3")] + pub finish_timestamp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerAchievementCompBin { + #[prost(message, repeated, tag = "1")] + pub achievement_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub reward_taken_goal_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerPersonalLineCompBin { + #[prost(uint32, tag = "1")] + pub finished_daily_task_num: u32, + #[prost(uint32, repeated, tag = "2")] + pub unlock_personal_line_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerTrialAvatarCompBin { + #[prost(uint32, tag = "1")] + pub trial_avatar_index_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HuntingOfferDataBin { + #[prost(uint32, tag = "1")] + pub refresh_id: u32, + #[prost(uint32, tag = "2")] + pub monster_config_id: u32, + #[prost(uint32, tag = "3")] + pub city_id: u32, + #[prost(uint32, tag = "4")] + pub difficulty: u32, + #[prost(int32, tag = "5")] + pub state: i32, + #[prost(bool, tag = "6")] + pub is_taken_reward: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HuntingOfferPair { + #[prost(uint32, tag = "1")] + pub refresh_id: u32, + #[prost(uint32, tag = "2")] + pub monster_config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHuntingCompBin { + #[prost(message, repeated, tag = "1")] + pub hunting_offer_data_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub cur_week_finished_hunting_pair_vec: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "3")] + pub last_refresh_time: u32, + #[prost(uint32, repeated, tag = "4")] + pub cur_week_refreshed_monster_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub cur_week_refreshed_refresh_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub is_new_hunting: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CityReputationRequestBin { + #[prost(uint32, tag = "1")] + pub request_id: u32, + #[prost(uint32, tag = "2")] + pub quest_id: u32, + #[prost(bool, tag = "3")] + pub is_taken_reward: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CityReputationBin { + #[prost(uint32, tag = "1")] + pub city_id: u32, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, tag = "3")] + pub exp: u32, + #[prost(uint32, repeated, tag = "4")] + pub taken_level_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub taken_parent_quest_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub history_request_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub request_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "8")] + pub last_refresh_request_time: u32, + #[prost(bool, tag = "9")] + pub is_new_request: bool, + #[prost(uint32, repeated, tag = "10")] + pub taken_explore_reward_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerReputationCompBin { + #[prost(message, repeated, tag = "1")] + pub city_reputation_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetAnchorPointBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub rot: ::core::option::Option, + #[prost(fixed32, tag = "4")] + pub end_time: u32, + #[prost(uint32, tag = "5")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetLunchBoxBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub slot_material_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetOneoffGatherPointDetectorBin { + #[prost(uint32, tag = "1")] + pub material_id: u32, + #[prost(bool, tag = "2")] + pub is_hint_valid: bool, + #[prost(message, optional, tag = "3")] + pub hint_center_pos: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub group_id: u32, + #[prost(uint32, tag = "6")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetClientCollectorBin { + #[prost(uint32, tag = "1")] + pub material_id: u32, + #[prost(uint32, tag = "2")] + pub curr_points: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetCoolDownInfoBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint64, tag = "2")] + pub last_use_time: u64, + #[prost(bool, tag = "3")] + pub is_success: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AttachAvatarWidgetBin { + #[prost(uint32, tag = "1")] + pub material_id: u32, + #[prost(uint32, tag = "2")] + pub cd_over_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetCaptureAnimalBin { + #[prost(uint32, tag = "1")] + pub skill_flag: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetLightStoneBin { + #[prost(bool, tag = "1")] + pub is_hint_valid: bool, + #[prost(message, optional, tag = "2")] + pub hint_center_pos: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(uint32, tag = "5")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetBackgroundBin { + #[prost(bool, tag = "1")] + pub is_active: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetDetailBin { + #[prost(oneof = "widget_detail_bin::DetailBin", tags = "1, 2, 3, 4, 2601, 3001")] + pub detail_bin: ::core::option::Option, +} +/// Nested message and enum types in `WidgetDetailBin`. +pub mod widget_detail_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum DetailBin { + #[prost(message, tag = "1")] + AttachAvatarWidget(super::AttachAvatarWidgetBin), + #[prost(message, tag = "2")] + OneoffGatherPointDetector(super::WidgetOneoffGatherPointDetectorBin), + #[prost(message, tag = "3")] + ClientCollector(super::WidgetClientCollectorBin), + #[prost(message, tag = "4")] + CaptureAnimal(super::WidgetCaptureAnimalBin), + #[prost(message, tag = "2601")] + LightStone(super::WidgetLightStoneBin), + #[prost(message, tag = "3001")] + BackgroundWidget(super::WidgetBackgroundBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WidgetBin { + #[prost(uint32, tag = "1")] + pub material_id: u32, + #[prost(bool, repeated, tag = "2")] + pub slot_occupied_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub detail_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerWidgetCompBin { + #[prost(uint32, tag = "1")] + pub next_widget_id: u32, + #[prost(uint32, tag = "2")] + pub quick_use_material_id: u32, + #[prost(uint32, tag = "3")] + pub last_use_anchor_point_time: u32, + #[prost(message, repeated, tag = "4")] + pub anchor_point_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub last_use_bonfire_time: u32, + #[prost(message, optional, tag = "6")] + pub lunch_box: ::core::option::Option, + #[prost(message, repeated, tag = "7")] + pub oneoff_gather_point_detector_list: ::prost::alloc::vec::Vec< + WidgetOneoffGatherPointDetectorBin, + >, + #[prost(message, repeated, tag = "8")] + pub client_collector_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub group_cool_down_data_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub normal_cool_down_data_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub attach_avatar_widget: ::core::option::Option, + #[prost(message, repeated, tag = "20")] + pub widget_bin_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "21")] + pub slot_material_map: ::std::collections::HashMap, + #[prost(bool, tag = "22")] + pub is_oneoff_gather_point_detector_transfered: bool, + #[prost(bool, tag = "23")] + pub is_client_collector_transfered: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ScenePlaySourceBin { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(uint32, tag = "2")] + pub param: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ScenePlayBin { + #[prost(uint32, tag = "1")] + pub play_id: u32, + #[prost(uint32, tag = "2")] + pub play_type: u32, + #[prost(uint32, tag = "3")] + pub entry_id: u32, + #[prost(uint32, tag = "4")] + pub phase: u32, + #[prost(message, optional, tag = "5")] + pub source_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerScenePlayCompBin { + #[prost(message, repeated, tag = "1")] + pub play_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MainCoopBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub status: u32, + #[prost(uint32, repeated, tag = "3")] + pub save_point_id_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "4")] + pub self_confidence: i32, + #[prost(message, repeated, tag = "5")] + pub normal_var_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub temp_var_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub seen_ending_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub confidence: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CoopPointBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, + #[prost(message, optional, tag = "3")] + pub start_main_coop: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CoopChapterBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, + #[prost(uint32, repeated, tag = "3")] + pub cg_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub dialog_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub coop_point_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub seen_ending_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CoopProgressBin { + #[prost(uint32, tag = "1")] + pub coop_point_id: u32, + #[prost(map = "uint32, message", tag = "4")] + pub main_coop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerCoopCompBin { + #[prost(message, repeated, tag = "1")] + pub main_coop_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub chapter_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub progress_bin: ::core::option::Option, + #[prost(uint32, repeated, tag = "4")] + pub viewed_chapter_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerOfferingInfoBin { + #[prost(uint32, tag = "1")] + pub offering_id: u32, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, repeated, tag = "3")] + pub taken_level_reward_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub is_reach_max_level: bool, + #[prost(bool, tag = "5")] + pub is_need_notify_new_max: bool, + #[prost(uint32, tag = "6")] + pub last_version_max_level: u32, + #[prost(bool, tag = "7")] + pub is_first_interact: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerOfferingCompBin { + #[prost(message, repeated, tag = "1")] + pub offering_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReunionSignInBin { + #[prost(uint32, tag = "1")] + pub reunion_sign_in_id: u32, + #[prost(uint32, tag = "2")] + pub sign_in_count: u32, + #[prost(fixed32, tag = "3")] + pub last_sign_in_time: u32, + #[prost(uint32, repeated, tag = "4")] + pub reward_day_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReunionMissionBin { + #[prost(uint32, tag = "1")] + pub mission_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub taken_reward_watcher_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub finished_watcher_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub cur_day_watcher_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub cur_score: u32, + #[prost(bool, tag = "6")] + pub is_finished: bool, + #[prost(bool, tag = "7")] + pub is_taken_reward: bool, + #[prost(uint32, tag = "8")] + pub last_refresh_time: u32, + #[prost(bool, repeated, tag = "9")] + pub is_taken_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub watcher_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReunionPrivilegeBin { + #[prost(uint32, tag = "1")] + pub privilege_id: u32, + #[prost(uint32, tag = "2")] + pub cur_day_count: u32, + #[prost(uint32, tag = "3")] + pub last_refresh_time: u32, + #[prost(uint32, tag = "4")] + pub total_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReunionRecordBin { + #[prost(bool, tag = "1")] + pub is_taken_first_gift_reward: bool, + #[prost(uint32, tag = "2")] + pub first_gift_reward_id: u32, + #[prost(message, optional, tag = "3")] + pub sign_in_bin: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub mission_bin: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub privilege_bin: ::core::option::Option, + #[prost(fixed32, tag = "6")] + pub reunion_finish_time: u32, + #[prost(bool, tag = "7")] + pub is_activated: bool, + #[prost(string, tag = "8")] + pub game_version: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerReunionCompBin { + #[prost(fixed32, tag = "1")] + pub last_activate_reunion_time: u32, + #[prost(message, optional, tag = "2")] + pub reunion_record: ::core::option::Option, + #[prost(bool, tag = "3")] + pub is_activated_when_close: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerRoutineBin { + #[prost(uint32, tag = "1")] + pub routine_id: u32, + #[prost(uint32, tag = "2")] + pub progress: u32, + #[prost(uint32, tag = "3")] + pub is_finished: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerRoutineTypeBin { + #[prost(uint32, tag = "1")] + pub routine_type: u32, + #[prost(uint32, tag = "2")] + pub finished_num: u32, + #[prost(uint32, tag = "3")] + pub last_refresh_time: u32, + #[prost(message, repeated, tag = "4")] + pub routine_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerRoutineCompBin { + #[prost(message, repeated, tag = "1")] + pub routine_type_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MiracleRingDropParam { + #[prost(uint32, tag = "1")] + pub tag: u32, + #[prost(uint32, tag = "2")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerMiracleRingCompBin { + #[prost(uint32, tag = "1")] + pub last_take_reward_time: u32, + #[prost(message, repeated, tag = "2")] + pub drop_param_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MechanicusBin { + #[prost(uint32, tag = "1")] + pub mechanicus_id: u32, + #[prost(uint32, tag = "2")] + pub coin: u32, + #[prost(message, repeated, tag = "3")] + pub gear_level_pair_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub open_sequence_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_finish_teach_dungeon: bool, + #[prost(uint32, repeated, tag = "6")] + pub finish_difficult_level_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub punish_over_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerMechanicusCompBin { + #[prost(message, optional, tag = "1")] + pub cur_mechanicus_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OpActivityRecordBin { + #[prost(uint32, tag = "1")] + pub schedule_id: u32, + #[prost(uint32, tag = "2")] + pub use_bonus_count: u32, + #[prost(uint32, tag = "3")] + pub last_refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerOpActivityCompBin { + #[prost(message, repeated, tag = "1")] + pub op_activity_recored_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGalleryCompBin { + #[prost(uint32, repeated, tag = "1")] + pub valid_gallery_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RegionSearchSourceBin { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(uint32, tag = "2")] + pub param: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RegionSearchRegionBin { + #[prost(uint32, tag = "1")] + pub region_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub oneoff_group_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub recycle_group_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub recycle_progress: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RegionSearchBin { + #[prost(uint32, tag = "1")] + pub search_id: u32, + #[prost(uint32, tag = "2")] + pub state: u32, + #[prost(uint32, tag = "3")] + pub progress: u32, + #[prost(message, repeated, tag = "4")] + pub region_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_entered: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RegionSearchPlayBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(message, optional, tag = "2")] + pub source: ::core::option::Option, + #[prost(message, repeated, tag = "3")] + pub search_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub is_entered: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerRegionSearchCompBin { + #[prost(message, repeated, tag = "1")] + pub play_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerTalkCompBin { + #[prost(uint32, repeated, tag = "1")] + pub npc_fisrt_met_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub finished_talk_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerFishingCompBin { + #[prost(uint32, tag = "1")] + pub last_fish_rod: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CustomDungeonBriefBin { + #[prost(uint64, tag = "1")] + pub dungeon_guid: u64, + #[prost(uint32, tag = "2")] + pub dungeon_id: u32, + #[prost(uint32, tag = "3")] + pub state: u32, + #[prost(uint32, tag = "4")] + pub last_save_time: u32, + #[prost(message, optional, tag = "5")] + pub setting: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub r#abstract: ::core::option::Option, + #[prost(uint32, repeated, tag = "7")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub is_psn_platform: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OfficialCustomDungeonBin { + #[prost(uint32, tag = "1")] + pub dungeon_id: u32, + #[prost(uint32, tag = "2")] + pub win_times: u32, + #[prost(uint64, tag = "3")] + pub dungeon_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CustomDungeonBattleRecord { + #[prost(uint64, tag = "1")] + pub dungeon_guid: u64, + #[prost(uint32, tag = "2")] + pub min_cost_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerCustomDungeonCompBin { + #[prost(message, repeated, tag = "1")] + pub brief_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub dungeon_guid_idx: u32, + #[prost(uint64, repeated, tag = "3")] + pub store_dungeon_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "4")] + pub last_recommend_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub group_id: u32, + #[prost(message, repeated, tag = "6")] + pub official_dungeon_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub is_enable_ugc: bool, + #[prost(uint32, tag = "8")] + pub ban_expire_time: u32, + #[prost(message, repeated, tag = "9")] + pub battle_record_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub is_ever_liked: bool, + #[prost(uint32, tag = "11")] + pub last_got_recommend_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UgcBin {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerUgcCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub ugc_bin_map: ::std::collections::HashMap, + #[prost(uint32, tag = "2")] + pub ban_publish_expire_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeBlockBin { + #[prost(uint32, tag = "1")] + pub block_id: u32, + #[prost(bool, tag = "2")] + pub is_unlocked: bool, + #[prost(uint32, tag = "3")] + pub deploy_furniture_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeSceneBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(message, repeated, tag = "2")] + pub block_bin_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub is_unlocked: bool, + #[prost(uint32, tag = "4")] + pub version: u32, + #[prost(uint32, tag = "5")] + pub audit_state: u32, + #[prost(uint32, tag = "6")] + pub submit_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeModuleBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(message, repeated, tag = "2")] + pub scene_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeBasicCompSnapshotBin { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint64, tag = "2")] + pub exp: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSubFieldSnapShotBin { + #[prost(uint32, tag = "1")] + pub seed_id: u32, + #[prost(fixed32, tag = "2")] + pub end_time: u32, + #[prost(uint32, tag = "3")] + pub home_gather_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeFieldSnapShotBin { + #[prost(uint32, tag = "1")] + pub field_guid: u32, + #[prost(uint32, tag = "2")] + pub furniture_id: u32, + #[prost(message, optional, tag = "3")] + pub spawn_pos: ::core::option::Option, + #[prost(message, repeated, tag = "4")] + pub sub_field_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeTransferSnapShotBin { + #[prost(uint32, tag = "1")] + pub furniture_guid: u32, + #[prost(message, optional, tag = "2")] + pub spawn_pos: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub furniture_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeMarkPointNpcDataBin { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeMarkPointSuiteDataBin { + #[prost(uint32, tag = "1")] + pub suite_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeMarkPointFurnitureDataBin { + #[prost(uint32, tag = "1")] + pub guid: u32, + #[prost(uint32, tag = "2")] + pub furniture_id: u32, + #[prost(uint32, tag = "3")] + pub furniture_type: u32, + #[prost(message, optional, tag = "4")] + pub pos: ::core::option::Option, + #[prost(oneof = "home_mark_point_furniture_data_bin::Extra", tags = "6, 7")] + pub extra: ::core::option::Option, +} +/// Nested message and enum types in `HomeMarkPointFurnitureDataBin`. +pub mod home_mark_point_furniture_data_bin { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Extra { + #[prost(message, tag = "6")] + NpcData(super::HomeMarkPointNpcDataBin), + #[prost(message, tag = "7")] + SuiteData(super::HomeMarkPointSuiteDataBin), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSceneSnapshotBin { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(message, repeated, tag = "2")] + pub deploy_npc_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub furniture_suite_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "4")] + pub main_house: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub djinn_pos: ::core::option::Option, + #[prost(message, repeated, tag = "6")] + pub field_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub transfer_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub normal_mark_point_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeModuleSnapshotBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "2")] + pub cur_room_scene_id: u32, + #[prost(message, repeated, tag = "3")] + pub scene_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub furniture_arrange_count_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub world_scene_block_comfort_value_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub room_scene_comfort_value: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSceneCompSnapshotBin { + #[prost(uint32, tag = "1")] + pub cur_module_id: u32, + #[prost(message, repeated, tag = "2")] + pub module_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeSnapshotBin { + #[prost(message, optional, tag = "1")] + pub basic_snapshot: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub scene_snapshot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FurnitureMakeBeHelpedBin { + #[prost(string, tag = "1")] + pub player_name: ::prost::alloc::string::String, + #[prost(fixed32, tag = "2")] + pub time: u32, + #[prost(uint32, tag = "3")] + pub uid: u32, + #[prost(uint32, tag = "4")] + pub icon: u32, + #[prost(message, optional, tag = "5")] + pub profile_picture_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FurnitureMakeHelpBin { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FurnitureMakeTimesBin { + #[prost(uint32, tag = "1")] + pub furniture_id: u32, + #[prost(uint32, tag = "2")] + pub make_times: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerFunitureMakeBin { + #[prost(message, repeated, tag = "1")] + pub make_times_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub make_slots_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub help_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub helped_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerLimitedShopNpcPosBin { + #[prost(uint32, tag = "1")] + pub module_id: u32, + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(uint32, tag = "5")] + pub block_id: u32, + #[prost(uint32, tag = "6")] + pub index: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeLimitedShopBin { + #[prost(uint32, tag = "1")] + pub last_refresh_time: u32, + #[prost(message, repeated, tag = "2")] + pub npc_pos_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeResourceBin { + #[prost(uint32, tag = "1")] + pub store_value: u32, + #[prost(fixed32, tag = "2")] + pub last_refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeResourceBin { + #[prost(message, optional, tag = "1")] + pub home_coin_bin: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub fetter_exp_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeAvatarDataBin { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub talk_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub event_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeAvatarRewardEventBin { + #[prost(uint32, tag = "1")] + pub order: u32, + #[prost(uint32, tag = "2")] + pub event_id: u32, + #[prost(uint32, tag = "3")] + pub random_position: u32, + #[prost(uint32, tag = "4")] + pub guid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeAvatarBin { + #[prost(message, repeated, tag = "1")] + pub home_avatar_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub show_avatar_id_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub reward_event_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HomeWorldWoodExchangeDataBin { + #[prost(uint32, tag = "1")] + pub wood_id: u32, + #[prost(uint32, tag = "2")] + pub exchange_count: u32, + #[prost(fixed32, tag = "3")] + pub last_refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeBlueprintSlotBin { + #[prost(uint32, tag = "1")] + pub slot_id: u32, + #[prost(string, tag = "2")] + pub share_code: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeBlueprintBin { + #[prost(uint32, tag = "1")] + pub blueprint_guid_idx: u32, + #[prost(message, repeated, tag = "2")] + pub slot_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerHomeCompBin { + #[prost(int32, tag = "1")] + pub friend_enter_home_option: i32, + #[prost(uint32, tag = "2")] + pub init_home_modue_id: u32, + #[prost(message, repeated, tag = "4")] + pub module_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub unlocked_module_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "6")] + pub snapshot: ::core::option::Option, + #[prost(uint32, repeated, tag = "7")] + pub unlocked_formula_furniture_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub unlocked_furniture_suite_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub levelup_reward_got_level_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub furniture_make_bin: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub home_resource_bin: ::core::option::Option, + #[prost(uint32, repeated, tag = "12")] + pub arrangement_furniture_suite_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "13")] + pub limited_shop_bin: ::core::option::Option, + #[prost(bool, tag = "14")] + pub is_ever_enter_self_home_world: bool, + #[prost(message, optional, tag = "15")] + pub home_avatar_bin: ::core::option::Option, + #[prost(fixed32, tag = "16")] + pub last_save_time: u32, + #[prost(uint32, tag = "17")] + pub prior_check_time: u32, + #[prost(uint32, tag = "19")] + pub transfer_home_point: u32, + #[prost(uint32, repeated, tag = "20")] + pub seen_module_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "21")] + pub unlocked_bgm_id_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "22")] + pub is_transfer_to_safe_point: bool, + #[prost(uint32, tag = "23")] + pub audit_version_index: u32, + #[prost(message, repeated, tag = "24")] + pub wood_exchange_data_bin_list: ::prost::alloc::vec::Vec< + HomeWorldWoodExchangeDataBin, + >, + #[prost(message, optional, tag = "25")] + pub blueprint_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerOfflineOpBin { + #[prost(map = "uint32, uint32", tag = "1")] + pub index_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct H5ActivityWatcherBin { + #[prost(uint32, tag = "1")] + pub h5_activity_watcher_id: u32, + #[prost(uint32, tag = "2")] + pub progress: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct H5ActivityBin { + #[prost(uint32, tag = "1")] + pub h5_activity_schedule_id: u32, + #[prost(uint32, tag = "2")] + pub last_refresh_time: u32, + #[prost(uint32, repeated, tag = "3")] + pub finished_h5_activity_watcher_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub h5_activity_watcher_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub h5_activity_id: u32, + #[prost(uint32, repeated, tag = "6")] + pub unaccept_h5_activity_watcher_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub is_finish_watcher_logged: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerH5ActivityCompBin { + #[prost(message, repeated, tag = "1")] + pub h5_activity_list: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "2")] + pub client_red_dot_timestamp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MatchPunishBin { + #[prost(uint32, tag = "1")] + pub match_id: u32, + #[prost(uint32, tag = "2")] + pub punish_times: u32, + #[prost(uint32, tag = "3")] + pub punish_end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerMatchCompBin { + #[prost(message, repeated, tag = "1")] + pub punish_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub last_punish_refresh_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerExhibitionBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, tag = "2")] + pub replaceable_value: u32, + #[prost(uint32, tag = "3")] + pub accumulable_value: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerExhibitionCompBin { + #[prost(message, repeated, tag = "1")] + pub exhibition_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGroupLinkBin { + #[prost(uint32, tag = "1")] + pub link_id: u32, + #[prost(uint32, tag = "2")] + pub activity_id: u32, + #[prost(uint32, tag = "3")] + pub cur_bundle_id: u32, + #[prost(uint32, tag = "4")] + pub schedule_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGroupBundleBin { + #[prost(uint32, tag = "1")] + pub bundle_id: u32, + #[prost(uint32, tag = "2")] + pub activity_id: u32, + #[prost(bool, tag = "3")] + pub is_activated: bool, + #[prost(uint32, tag = "4")] + pub schedule_id: u32, + #[prost(bool, tag = "5")] + pub is_show_mark: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGroupBundleFinishBin { + #[prost(uint32, tag = "1")] + pub activity_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub bundle_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub schedule_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGroupLinkCompBin { + #[prost(message, repeated, tag = "2")] + pub link_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub bundle_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub finish_bundle_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FireworksParamBin { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(int32, tag = "2")] + pub value: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FireworksReformBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(message, repeated, tag = "2")] + pub reform_param_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FireworksLaunchSchemeBin { + #[prost(uint32, tag = "1")] + pub scheme_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub fireworks_id_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub launch_param_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerFireworksCompBin { + #[prost(message, repeated, tag = "1")] + pub fireworks_reform_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub last_use_launch_scheme_id: u32, + #[prost(message, repeated, tag = "3")] + pub launch_scheme_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerCityCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub city_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RegionalPlayVarBin { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(float, tag = "2")] + pub value: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeathZoneBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(bool, tag = "2")] + pub is_open: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerRegionalPlayCompBin { + #[prost(message, repeated, tag = "1")] + pub var_bin_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub death_zone_bin_list: ::prost::alloc::vec::Vec, + #[prost(string, tag = "3")] + pub last_play_name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ShareCdInfoBin { + #[prost(uint32, tag = "1")] + pub share_cd_id: u32, + #[prost(uint32, tag = "2")] + pub config_index: u32, + #[prost(uint64, tag = "3")] + pub last_use_time: u64, + #[prost(uint32, tag = "4")] + pub cd_token: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerShareCdCompBin { + #[prost(map = "uint32, message", tag = "1")] + pub share_cd_info_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgPlayerBriefBin { + #[prost(uint32, tag = "1")] + pub controller_id: u32, + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(string, tag = "3")] + pub nick_name: ::prost::alloc::string::String, + #[prost(message, optional, tag = "4")] + pub profile_picture: ::core::option::Option, + #[prost(uint32, repeated, tag = "5")] + pub card_id_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "6")] + pub card_face_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgGameBriefBin { + #[prost(uint32, tag = "1")] + pub app_id: u32, + #[prost(uint32, tag = "2")] + pub game_uid: u32, + #[prost(uint32, tag = "3")] + pub business_type: u32, + #[prost(message, repeated, tag = "4")] + pub player_brief_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub verify_code: u32, + #[prost(uint32, tag = "6")] + pub game_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgdsDeckBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(string, tag = "2")] + pub name: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "3")] + pub character_card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub card_back_id: u32, + #[prost(uint32, tag = "6")] + pub field_id: u32, + #[prost(fixed32, tag = "7")] + pub create_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgdsCardBin { + #[prost(uint32, tag = "1")] + pub card_id: u32, + #[prost(uint32, tag = "2")] + pub num: u32, + #[prost(uint32, repeated, tag = "3")] + pub unlock_face_type_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub face_type: u32, + #[prost(uint32, tag = "5")] + pub proficiency: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgDeckSystemBin { + #[prost(message, repeated, tag = "1")] + pub deck_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub card_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub unlock_card_back_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub unlock_field_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub cur_deck_id: u32, + #[prost(uint32, repeated, tag = "6")] + pub unlock_deck_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgtcTavernChallengeBin { + #[prost(uint32, tag = "1")] + pub character_id: u32, + #[prost(uint32, repeated, tag = "3")] + pub unlock_level_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgTavernBin { + #[prost(uint32, tag = "1")] + pub character_id: u32, + #[prost(uint32, tag = "2")] + pub level_id: u32, + #[prost(uint32, tag = "3")] + pub point_id: u32, + #[prost(bool, tag = "4")] + pub is_last_duel_win: bool, + #[prost(message, repeated, tag = "5")] + pub tavern_challenge_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgMatchBin { + #[prost(uint32, tag = "1")] + pub match_id: u32, + #[prost(uint32, tag = "2")] + pub score: u32, + #[prost(uint32, tag = "3")] + pub win_streak_count: u32, + #[prost(uint32, tag = "4")] + pub lose_streak_count: u32, + #[prost(uint32, tag = "5")] + pub refuse_count: u32, + #[prost(fixed32, tag = "6")] + pub punish_end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgBasicBin { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub exp: u32, + #[prost(uint32, repeated, tag = "3")] + pub level_reward_taken_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub match_bin_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgLevelBin { + #[prost(uint32, tag = "1")] + pub level_id: u32, + #[prost(uint32, repeated, tag = "2")] + pub finished_challenge_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgBossChallengeBin { + #[prost(uint32, tag = "1")] + pub id: u32, + #[prost(uint32, repeated, tag = "2")] + pub unlock_level_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgLevelChallengeBin { + #[prost(message, repeated, tag = "1")] + pub level_bin_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub pre_config_id: u32, + #[prost(uint32, tag = "3")] + pub pre_level_id: u32, + #[prost(uint32, tag = "4")] + pub pre_level_type: u32, + #[prost(uint32, repeated, tag = "5")] + pub unlock_world_challenge_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub unlock_boss_challenge_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgConstNpcBin { + #[prost(uint32, tag = "1")] + pub npc_id: u32, + #[prost(uint32, tag = "2")] + pub scene_point_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgTavernSceneBuilderBin { + #[prost(uint32, tag = "1")] + pub distribution_id: u32, + #[prost(uint32, tag = "2")] + pub last_refresh_game_time: u32, + #[prost(message, repeated, tag = "3")] + pub const_npc_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgWeekNpcBin { + #[prost(uint32, tag = "1")] + pub npc_id: u32, + #[prost(uint32, tag = "2")] + pub level_id: u32, + #[prost(bool, tag = "3")] + pub is_unlock: bool, + #[prost(uint32, tag = "4")] + pub finish_time: u32, + #[prost(uint32, tag = "5")] + pub scene_point_id: u32, + #[prost(bool, tag = "6")] + pub is_delete_from_tavern: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GcgWeekChallengeBin { + #[prost(uint32, tag = "1")] + pub last_refresh_time: u32, + #[prost(uint32, tag = "2")] + pub last_refresh_gcg_level: u32, + #[prost(message, repeated, tag = "3")] + pub week_npc_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGcgCompBin { + #[prost(message, optional, tag = "1")] + pub deck_system_bin: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub tavern_bin: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub basic_bin: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub level_challenge_bin: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub tavern_scene_builder_bin: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub week_challenge_bin: ::core::option::Option, + #[prost(message, optional, tag = "101")] + pub game_brief_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AranaraCollectionListBin { + #[prost(uint32, repeated, tag = "1")] + pub collection_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AranaraCollectionSuiteBin { + #[prost(uint32, tag = "1")] + pub collection_type: u32, + #[prost(map = "uint32, message", tag = "2")] + pub state_collection_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerAranaraCollectionCompBin { + #[prost(message, repeated, tag = "1")] + pub collection_suite_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerDataBin { + #[prost(message, optional, tag = "1")] + pub basic_bin: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub avatar_bin: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub quest_bin: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub shop_bin: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub item_bin: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub dungeon_bin: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub scene_bin: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub bored_bin: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub mp_bin: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub cook_bin: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub mail_bin: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub login_bin: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub offline_msg_bin: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub daily_task_bin: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub rand_task_bin: ::core::option::Option, + #[prost(message, optional, tag = "16")] + pub gacha_bin: ::core::option::Option, + #[prost(message, optional, tag = "17")] + pub giving_bin: ::core::option::Option, + #[prost(message, optional, tag = "18")] + pub forge_bin: ::core::option::Option, + #[prost(message, optional, tag = "19")] + pub investigation_bin: ::core::option::Option, + #[prost(message, optional, tag = "20")] + pub activity_bin: ::core::option::Option, + #[prost(message, optional, tag = "21")] + pub watcher_bin: ::core::option::Option, + #[prost(message, optional, tag = "22")] + pub tower_bin: ::core::option::Option, + #[prost(message, optional, tag = "23")] + pub sign_in_bin: ::core::option::Option, + #[prost(message, optional, tag = "24")] + pub battle_pass_bin: ::core::option::Option, + #[prost(message, optional, tag = "25")] + pub blossom_bin: ::core::option::Option, + #[prost(message, optional, tag = "26")] + pub recharge_bin: ::core::option::Option, + #[prost(message, optional, tag = "27")] + pub mp_play_bin: ::core::option::Option, + #[prost(message, optional, tag = "28")] + pub social_bin: ::core::option::Option, + #[prost(message, optional, tag = "29")] + pub codex_bin: ::core::option::Option, + #[prost(message, optional, tag = "30")] + pub achievement_bin: ::core::option::Option, + #[prost(message, optional, tag = "31")] + pub trial_avatar_bin: ::core::option::Option, + #[prost(message, optional, tag = "32")] + pub personal_line_bin: ::core::option::Option, + #[prost(message, optional, tag = "33")] + pub reputation_bin: ::core::option::Option, + #[prost(message, optional, tag = "34")] + pub widget_comp_bin: ::core::option::Option, + #[prost(message, optional, tag = "35")] + pub hunting_bin: ::core::option::Option, + #[prost(message, optional, tag = "36")] + pub scene_play_bin: ::core::option::Option, + #[prost(message, optional, tag = "37")] + pub combine_bin: ::core::option::Option, + #[prost(message, optional, tag = "38")] + pub coop_bin: ::core::option::Option, + #[prost(message, optional, tag = "39")] + pub offering_bin: ::core::option::Option, + #[prost(message, optional, tag = "40")] + pub routine_bin: ::core::option::Option, + #[prost(message, optional, tag = "41")] + pub reunion_bin: ::core::option::Option, + #[prost(message, optional, tag = "42")] + pub miracle_ring_bin: ::core::option::Option, + #[prost(message, optional, tag = "43")] + pub mechanicus_bin: ::core::option::Option, + #[prost(message, optional, tag = "44")] + pub op_activity_bin: ::core::option::Option, + #[prost(message, optional, tag = "45")] + pub gallery_bin: ::core::option::Option, + #[prost(message, optional, tag = "46")] + pub region_search_bin: ::core::option::Option, + #[prost(message, optional, tag = "47")] + pub talk_bin: ::core::option::Option, + #[prost(message, optional, tag = "48")] + pub home_bin: ::core::option::Option, + #[prost(message, optional, tag = "49")] + pub offline_op_bin: ::core::option::Option, + #[prost(message, optional, tag = "50")] + pub h5_activity_bin: ::core::option::Option, + #[prost(message, optional, tag = "51")] + pub match_bin: ::core::option::Option, + #[prost(message, optional, tag = "52")] + pub exhibition_bin: ::core::option::Option, + #[prost(message, optional, tag = "53")] + pub group_link_bin: ::core::option::Option, + #[prost(message, optional, tag = "54")] + pub fishing_bin: ::core::option::Option, + #[prost(message, optional, tag = "55")] + pub city_bin: ::core::option::Option, + #[prost(message, optional, tag = "56")] + pub fireworks_bin: ::core::option::Option, + #[prost(message, optional, tag = "57")] + pub regional_play_bin: ::core::option::Option, + #[prost(message, optional, tag = "58")] + pub custom_dungeon_bin: ::core::option::Option, + #[prost(message, optional, tag = "59")] + pub share_cd_bin: ::core::option::Option, + #[prost(message, optional, tag = "60")] + pub ugc_bin: ::core::option::Option, + #[prost(message, optional, tag = "61")] + pub aranara_collection_bin: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerJsonData { + #[prost(bool, tag = "1")] + pub is_proficient_player: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerExtJsonData { + #[prost(uint32, tag = "1")] + pub reg_platform: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerExtraBinData { + #[prost(map = "uint32, message", tag = "1")] + pub anti_offline_data_map: ::std::collections::HashMap< + u32, + SecurityAntiOfflineDataBin, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerBeforeLoginBinData { + #[prost(uint32, repeated, tag = "1")] + pub finish_quest_res_collection: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerData { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(string, tag = "2")] + pub nickname: ::prost::alloc::string::String, + #[prost(fixed32, tag = "3")] + pub last_login_time: u32, + #[prost(bytes = "vec", tag = "4")] + pub bin: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub data_version: u32, + #[prost(uint32, tag = "6")] + pub level: u32, + #[prost(uint32, tag = "7")] + pub exp: u32, + #[prost(string, tag = "8")] + pub json_data: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "9")] + pub extra_bin_data: ::prost::alloc::vec::Vec, + #[prost(string, tag = "10")] + pub online_id: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub psn_id: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "12")] + pub before_login_bin_data: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ContentAuditBin { + #[prost(string, tag = "1")] + pub content: ::prost::alloc::string::String, + #[prost(uint32, tag = "2")] + pub audit_state: u32, + #[prost(uint32, tag = "3")] + pub submit_time: u32, + #[prost(uint32, tag = "4")] + pub submit_count: u32, +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum GroupBinOperation { + GroupOpNone = 0, + GroupOpGadgetMapDel = 1, + GroupOpDelGadgetList = 2, + GroupOpMonsterMapDel = 3, + GroupOpDelMonsterList = 4, + GorupOpDelTrigger = 5, + GroupOpSetTriggerCount = 6, + GroupOpSetVariableVal = 7, + GroupOpSetTargetSuite = 8, + GroupOpSetGadgetState = 9, + GroupOpSetDead = 10, + GroupOpSetUnregister = 11, +} +impl GroupBinOperation { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + GroupBinOperation::GroupOpNone => "GROUP_OP_NONE", + GroupBinOperation::GroupOpGadgetMapDel => "GROUP_OP_GADGET_MAP_DEL", + GroupBinOperation::GroupOpDelGadgetList => "GROUP_OP_DEL_GADGET_LIST", + GroupBinOperation::GroupOpMonsterMapDel => "GROUP_OP_MONSTER_MAP_DEL", + GroupBinOperation::GroupOpDelMonsterList => "GROUP_OP_DEL_MONSTER_LIST", + GroupBinOperation::GorupOpDelTrigger => "GORUP_OP_DEL_TRIGGER", + GroupBinOperation::GroupOpSetTriggerCount => "GROUP_OP_SET_TRIGGER_COUNT", + GroupBinOperation::GroupOpSetVariableVal => "GROUP_OP_SET_VARIABLE_VAL", + GroupBinOperation::GroupOpSetTargetSuite => "GROUP_OP_SET_TARGET_SUITE", + GroupBinOperation::GroupOpSetGadgetState => "GROUP_OP_SET_GADGET_STATE", + GroupBinOperation::GroupOpSetDead => "GROUP_OP_SET_DEAD", + GroupBinOperation::GroupOpSetUnregister => "GROUP_OP_SET_UNREGISTER", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GROUP_OP_NONE" => Some(Self::GroupOpNone), + "GROUP_OP_GADGET_MAP_DEL" => Some(Self::GroupOpGadgetMapDel), + "GROUP_OP_DEL_GADGET_LIST" => Some(Self::GroupOpDelGadgetList), + "GROUP_OP_MONSTER_MAP_DEL" => Some(Self::GroupOpMonsterMapDel), + "GROUP_OP_DEL_MONSTER_LIST" => Some(Self::GroupOpDelMonsterList), + "GORUP_OP_DEL_TRIGGER" => Some(Self::GorupOpDelTrigger), + "GROUP_OP_SET_TRIGGER_COUNT" => Some(Self::GroupOpSetTriggerCount), + "GROUP_OP_SET_VARIABLE_VAL" => Some(Self::GroupOpSetVariableVal), + "GROUP_OP_SET_TARGET_SUITE" => Some(Self::GroupOpSetTargetSuite), + "GROUP_OP_SET_GADGET_STATE" => Some(Self::GroupOpSetGadgetState), + "GROUP_OP_SET_DEAD" => Some(Self::GroupOpSetDead), + "GROUP_OP_SET_UNREGISTER" => Some(Self::GroupOpSetUnregister), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum GroupLinkOpType { + GroupLinkOpNone = 0, + GroupLinkOpBundleRegister = 1, + GroupLinkOpBundleFinish = 2, + GroupLinkOpBundleUnregister = 3, +} +impl GroupLinkOpType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + GroupLinkOpType::GroupLinkOpNone => "GROUP_LINK_OP_NONE", + GroupLinkOpType::GroupLinkOpBundleRegister => "GROUP_LINK_OP_BUNDLE_REGISTER", + GroupLinkOpType::GroupLinkOpBundleFinish => "GROUP_LINK_OP_BUNDLE_FINISH", + GroupLinkOpType::GroupLinkOpBundleUnregister => { + "GROUP_LINK_OP_BUNDLE_UNREGISTER" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GROUP_LINK_OP_NONE" => Some(Self::GroupLinkOpNone), + "GROUP_LINK_OP_BUNDLE_REGISTER" => Some(Self::GroupLinkOpBundleRegister), + "GROUP_LINK_OP_BUNDLE_FINISH" => Some(Self::GroupLinkOpBundleFinish), + "GROUP_LINK_OP_BUNDLE_UNREGISTER" => Some(Self::GroupLinkOpBundleUnregister), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum SceneTagOpType { + SceneTagOpNone = 0, + SceneTagOpAdd = 1, + SceneTagOpDel = 2, +} +impl SceneTagOpType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + SceneTagOpType::SceneTagOpNone => "SCENE_TAG_OP_NONE", + SceneTagOpType::SceneTagOpAdd => "SCENE_TAG_OP_ADD", + SceneTagOpType::SceneTagOpDel => "SCENE_TAG_OP_DEL", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "SCENE_TAG_OP_NONE" => Some(Self::SceneTagOpNone), + "SCENE_TAG_OP_ADD" => Some(Self::SceneTagOpAdd), + "SCENE_TAG_OP_DEL" => Some(Self::SceneTagOpDel), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum OfflineOpType { + OfflineOpNone = 0, + OfflineOpTest = 1, + OfflineOpFurnitureMakeHelp = 2, + OfflineOpPlantFlowerActivityGiveFlower = 3, + OfflineOpWinterCampGiveItem = 4, + OfflineOpActivityGiveGift = 5, + OfflineOpVintageActivityDividend = 6, + OfflineOpGcgSettle = 7, +} +impl OfflineOpType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + OfflineOpType::OfflineOpNone => "OFFLINE_OP_NONE", + OfflineOpType::OfflineOpTest => "OFFLINE_OP_TEST", + OfflineOpType::OfflineOpFurnitureMakeHelp => "OFFLINE_OP_FURNITURE_MAKE_HELP", + OfflineOpType::OfflineOpPlantFlowerActivityGiveFlower => { + "OFFLINE_OP_PLANT_FLOWER_ACTIVITY_GIVE_FLOWER" + } + OfflineOpType::OfflineOpWinterCampGiveItem => { + "OFFLINE_OP_WINTER_CAMP_GIVE_ITEM" + } + OfflineOpType::OfflineOpActivityGiveGift => "OFFLINE_OP_ACTIVITY_GIVE_GIFT", + OfflineOpType::OfflineOpVintageActivityDividend => { + "OFFLINE_OP_VINTAGE_ACTIVITY_DIVIDEND" + } + OfflineOpType::OfflineOpGcgSettle => "OFFLINE_OP_GCG_SETTLE", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "OFFLINE_OP_NONE" => Some(Self::OfflineOpNone), + "OFFLINE_OP_TEST" => Some(Self::OfflineOpTest), + "OFFLINE_OP_FURNITURE_MAKE_HELP" => Some(Self::OfflineOpFurnitureMakeHelp), + "OFFLINE_OP_PLANT_FLOWER_ACTIVITY_GIVE_FLOWER" => { + Some(Self::OfflineOpPlantFlowerActivityGiveFlower) + } + "OFFLINE_OP_WINTER_CAMP_GIVE_ITEM" => Some(Self::OfflineOpWinterCampGiveItem), + "OFFLINE_OP_ACTIVITY_GIVE_GIFT" => Some(Self::OfflineOpActivityGiveGift), + "OFFLINE_OP_VINTAGE_ACTIVITY_DIVIDEND" => { + Some(Self::OfflineOpVintageActivityDividend) + } + "OFFLINE_OP_GCG_SETTLE" => Some(Self::OfflineOpGcgSettle), + _ => None, + } + } +} diff --git a/hk4e_proto/out/cmd.rs b/hk4e_proto/out/cmd.rs new file mode 100644 index 0000000..55df498 --- /dev/null +++ b/hk4e_proto/out/cmd.rs @@ -0,0 +1,69182 @@ +// This file is @generated by prost-build. +#[derive(proto_gen::CmdID)] +#[cmdid(519)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfjefjndgja { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Honabchjglk { + #[prost(uint32, tag = "3")] + pub lgbnfifcpjf: u32, + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(enumeration = "Pjfodmhgoln", tag = "10")] + pub jnmigjhkahe: i32, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "14")] + pub gjlpmfgollm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cojgndddbfg { + #[prost(uint32, repeated, tag = "10")] + pub gcbeeinchka: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngjbiblmckn { + #[prost(uint32, repeated, tag = "3")] + pub bmbfdbodhnd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub jnkddfcnlii: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub akghegcnmjm: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub nafoifkfeko: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "14")] + pub abpjibdjipa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23529)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkadonpeaek { + #[prost(message, repeated, tag = "1")] + pub pmjbhmkoceg: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24582)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpmpmadlcao {} +#[derive(proto_gen::CmdID)] +#[cmdid(26225)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbcglagdapo { + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25177)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdgogiinacf { + #[prost(string, tag = "5")] + pub dppibjfomoc: ::prost::alloc::string::String, + #[prost(message, optional, tag = "9")] + pub phbpfonlgfb: ::core::option::Option, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhaiacbojop { + #[prost(uint32, tag = "8")] + pub pdfhfnpadnp: u32, + #[prost(uint32, tag = "13")] + pub nhalfdgllpb: u32, + #[prost(uint32, tag = "15")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27545)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cangfnbgffn { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6552)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnhfmgghchj { + #[prost(message, repeated, tag = "10")] + pub dmapdpgjpib: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "14")] + pub naamimdommn: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jljbpfmegpc { + #[prost(message, repeated, tag = "4")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpkhdnpijmi { + #[prost(uint32, tag = "5")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "13")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcbhgpljlno { + #[prost(message, optional, tag = "13")] + pub jajnmbllabi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9227)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ianhplfbffc { + #[prost(message, repeated, tag = "6")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbmbmhlcipg { + #[prost(uint32, tag = "1")] + pub hfjilncpakl: u32, + #[prost(uint32, tag = "3")] + pub hgolpkdkomk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21066)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dghagbnggeh {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddenlidhjah { + #[prost(bool, tag = "2")] + pub gboboljpagm: bool, + #[prost(uint32, repeated, tag = "8")] + pub oijfpglhnnn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub group_id: u32, + #[prost(uint32, tag = "13")] + pub gpaeljhnaek: u32, + #[prost(uint32, tag = "14")] + pub ojoapinglno: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29038)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkgjifmifji { + #[prost(uint32, tag = "6")] + pub jlhfgabkeoi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4003)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jifdlianamn { + #[prost(string, tag = "3")] + pub mmghddnmpgj: ::prost::alloc::string::String, + #[prost(uint32, tag = "15")] + pub kpidllgnojf: u32, + #[prost(uint32, tag = "6")] + pub khdgppfkkoi: u32, + #[prost(uint32, tag = "13")] + pub anhigelnhkp: u32, + #[prost(uint32, tag = "9")] + pub ameoigghhdc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlhanikigah { + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, + #[prost(message, optional, tag = "11")] + pub bepfmdkmfic: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4369)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpkmeemfban { + #[prost(message, optional, tag = "3")] + pub alholnopbfp: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25552)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekdciancaha { + #[prost(uint32, repeated, tag = "2")] + pub pjkadojneai: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub ciocgfebmgo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4179)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Laadbanmdib { + #[prost(uint32, tag = "4")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "6")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "7")] + pub group_id: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(613)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kogcehfoabe { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(string, tag = "15")] + pub pbigganlbdh: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23513)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfhniogljig { + #[prost(sfixed32, tag = "2")] + pub lgbnfifcpjf: i32, + #[prost(uint32, tag = "3")] + pub pdkifkkmhcn: u32, + #[prost(uint32, tag = "4")] + pub dekhbeooien: u32, + #[prost(bool, tag = "5")] + pub poiggnkedah: bool, + #[prost(uint32, tag = "7")] + pub diggffkgodj: u32, + #[prost(uint32, tag = "8")] + pub bknplfikkfg: u32, + #[prost(message, repeated, tag = "10")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "11")] + pub midheclibbo: bool, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "14")] + pub fpedhedekpe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7057)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acpnofnlpeg { + #[prost(uint32, repeated, tag = "15")] + pub neoadbjbkoh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub clogcdcahei: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20185)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmnjjcoelfh { + #[prost(enumeration = "StoreType", tag = "1")] + pub store_type: i32, + #[prost(message, repeated, tag = "5")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23569)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmgbdbogied { + #[prost(uint32, tag = "4")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6581)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aleipfmkiie { + #[prost(uint32, tag = "2")] + pub khcdhfjgkad: u32, + #[prost(uint32, tag = "4")] + pub uid: u32, + #[prost(uint32, tag = "5")] + pub mbkaongpdcn: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub acnagipbchp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7488)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llhnpdcbcbf { + #[prost(uint32, tag = "1")] + pub mbcalmmjafa: u32, + #[prost(uint32, tag = "14")] + pub pjjlmhgjkdg: u32, + #[prost(uint32, tag = "4")] + pub ohgaghpnjfa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfjklhjegoo { + #[prost(message, repeated, tag = "9")] + pub lecjfbijmoo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2468)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cocjadohikl { + #[prost(uint32, tag = "2")] + pub jofbeiaclof: u32, + #[prost(message, repeated, tag = "3")] + pub denpikhpehl: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub kbnhkamgpji: bool, + #[prost(uint32, tag = "7")] + pub aaopmgielok: u32, + #[prost(uint32, tag = "9")] + pub iehlhaogkpj: u32, + #[prost(message, repeated, tag = "14")] + pub jnnhhdkpaec: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9536)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clclicjhhgm { + #[prost(message, repeated, tag = "1")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "6")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4254)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oamijklpabm { + #[prost(uint32, tag = "1")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "4")] + pub jefildjebaj: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub ibadlnmjbii: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Niniomhikbg { + #[prost(uint32, tag = "5")] + pub phpfppidjkj: u32, + #[prost(message, optional, tag = "9")] + pub epcoelijppl: ::core::option::Option, + #[prost(bool, tag = "11")] + pub mhcimhgeapb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20606)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chljcdhkmfk { + #[prost(uint32, tag = "2")] + pub lhdahdneppl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(776)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Foodocabbhb { + #[prost(bytes = "vec", tag = "9")] + pub mlongfelfia: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25810)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmjepofeomm { + #[prost(uint32, repeated, tag = "6")] + pub fdjpppfghne: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecojklifikm { + #[prost(bool, tag = "7")] + pub oancfejapno: bool, + #[prost(message, repeated, tag = "10")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26287)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnillgfkapi { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgjkkeijhpd { + #[prost(int32, repeated, tag = "6")] + pub hogfdpaofom: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub key: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgoobmnkiki { + #[prost(string, tag = "2")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(map = "uint32, uint32", tag = "6")] + pub onhblidiphk: ::std::collections::HashMap, + #[prost(message, optional, tag = "7")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Neekalifdbh { + #[prost(message, optional, tag = "2")] + pub nbaidhhdpmd: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3465)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfpcefkfmlc { + #[prost(uint32, tag = "8")] + pub agienjjkpbe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3413)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Baendecaami { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub dknmbapfjkb: u32, + #[prost(uint32, tag = "13")] + pub bkoecphphej: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28161)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lecfiajjjck { + #[prost(uint32, tag = "1")] + pub ooflahmeleo: u32, + #[prost(enumeration = "Hocjfidgkjm", tag = "5")] + pub reason: i32, + #[prost(uint32, tag = "8")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4115)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opghpakmcgf { + #[prost(uint64, tag = "11")] + pub hodolkcoplg: u64, + #[prost(enumeration = "Jmhjpmmamdc", tag = "13")] + pub hjplelofahp: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7851)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akffhdhpbnf { + #[prost(uint64, tag = "15")] + pub avatar_guid: u64, + #[prost(bool, tag = "9")] + pub is_focus: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26043)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pipaejlpamp { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "14")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27511)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Keabkhpdoei { + #[prost(bool, tag = "2")] + pub pfokfhlokej: bool, + #[prost(uint32, repeated, tag = "7")] + pub ecnjmcganlf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlgphhhppoa { + #[prost(uint32, tag = "3")] + pub room_id: u32, + #[prost(message, optional, tag = "5")] + pub ffbhoijkmpm: ::core::option::Option, + #[prost(bool, tag = "6")] + pub is_add: bool, + #[prost(message, optional, tag = "7")] + pub cfajbdbnmjp: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub aoonjjoanje: u32, + #[prost(uint32, tag = "11")] + pub klajfkjdlfl: u32, + #[prost(uint32, tag = "12")] + pub djegcipdocl: u32, + #[prost(message, optional, tag = "15")] + pub hdpckfcciaj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25859)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbpjdepdbib { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "3")] + pub jdhlmigkddg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7225)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bknppefpcgn { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdagekbljhc { + #[prost(uint32, tag = "4")] + pub gpejlgheomg: u32, + #[prost(uint32, tag = "11")] + pub hmjbphppjdb: u32, + #[prost(uint32, tag = "12")] + pub dlflcjkabfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2327)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oecoamhhbnb { + #[prost(enumeration = "Iailmjppbfe", tag = "2")] + pub bgpjniihanj: i32, + #[prost(message, repeated, tag = "4")] + pub dkkkacebedj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub jjfpfmpjema: i32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(message, repeated, tag = "10")] + pub aepbmmidoja: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub gofmaapeimc: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub fbnoknjkhdm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23321)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fddclgnkgpn { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub bbojfnnbghk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjdhjkbpcfj { + #[prost(uint32, tag = "7")] + pub group_id: u32, + #[prost(uint32, tag = "15")] + pub gadget_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpkokhlenmo { + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "11")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "14")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1186)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkhffdglodj { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub lpahjgdbepe: u32, + #[prost(uint32, tag = "9")] + pub meekejeideh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afaknamocam { + #[prost(uint32, tag = "8")] + pub gpaeljhnaek: u32, + #[prost(uint32, tag = "14")] + pub ojoapinglno: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20394)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfcnfglpkib { + #[prost(string, tag = "8")] + pub msg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23323)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdbacalhhln { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, optional, tag = "5")] + pub ciflegckjei: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkpldhknbmk { + #[prost(uint32, repeated, tag = "9")] + pub plflnepmdjj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojebkfcpnii { + #[prost(message, repeated, tag = "12")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6064)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nihnjmcibbf { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, repeated, tag = "5")] + pub nbiglfhejbe: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub gbepkglfbfd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub mkmhpomeahp: ::prost::alloc::vec::Vec, + #[prost(int32, repeated, tag = "10")] + pub dekiihdlaoi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nplfigehhde { + #[prost(bool, tag = "1")] + pub hgckpckiiom: bool, + #[prost(bool, tag = "5")] + pub kplnmnbogjo: bool, + #[prost(uint32, repeated, tag = "6")] + pub buff_id_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub bdcphhcefhi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub hamgdfacogg: u32, + #[prost(uint32, tag = "11")] + pub hfghhohclfi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6115)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plifjkpipik { + #[prost(int32, tag = "9")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnhgjaiimgj { + #[prost(uint32, tag = "1")] + pub nelhkeoljci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Haklmlnjloa { + #[prost(message, optional, tag = "1")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfjfbhbcoma { + #[prost(message, repeated, tag = "15")] + pub gabljanjlaf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6626)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khfngoajhnc { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "2")] + pub emlilmhjhog: bool, + #[prost(uint32, tag = "12")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjnobdelmlf { + #[prost(uint32, tag = "1")] + pub kcecjdkpofb: u32, + #[prost(message, optional, tag = "4")] + pub galjcimkfch: ::core::option::Option, + #[prost(uint32, repeated, tag = "11")] + pub scene_tag_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9929)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbafiglgjke { + #[prost(uint32, tag = "11")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21845)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlnnncidphd { + #[prost(string, tag = "1")] + pub plkolhgcdgc: ::prost::alloc::string::String, + #[prost(uint32, tag = "8")] + pub target_uid: u32, + #[prost(bool, tag = "10")] + pub mcpkkmhkcpd: bool, + #[prost(enumeration = "Inmchndeiah", tag = "14")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23654)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fbcafjjlalc { + #[prost(uint32, tag = "2")] + pub prop_type: u32, + #[prost(uint32, tag = "9")] + pub edhbecmmhjc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dohgbdaamaj { + #[prost(fixed32, tag = "2")] + pub mhghinogbgd: u32, + #[prost(message, repeated, tag = "3")] + pub lbdghbheoeh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub oboopjlpdni: u32, + #[prost(bool, tag = "8")] + pub mjeofikhfem: bool, + #[prost(uint32, tag = "9")] + pub phnjpmeeibj: u32, + #[prost(uint32, tag = "10")] + pub fbpgimlmdnj: u32, + #[prost(fixed32, tag = "11")] + pub ohdfeiceled: u32, + #[prost(message, repeated, tag = "12")] + pub aiaocfebnkj: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Hkkcdiccimi", tag = "13")] + pub nkiolhkgjco: i32, + #[prost(uint32, tag = "15")] + pub kafapfjllgp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27996)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejcagpboghi { + #[prost(bool, tag = "3")] + pub dmedoehomkh: bool, + #[prost(bool, tag = "4")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "6")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "14")] + pub jdhlmigkddg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbpfbnmilia { + #[prost(uint64, repeated, tag = "3")] + pub cghhepepdca: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "8")] + pub caeopokgdpl: u32, + #[prost(uint32, tag = "12")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cellldfboop { + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(bool, tag = "12")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7506)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jadfegcfeek { + #[prost(message, optional, tag = "10")] + pub data: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28800)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fabehfbjkcb { + #[prost(message, repeated, tag = "1")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcfhkhjfiap { + #[prost(enumeration = "Ihacnpjbldi", tag = "1")] + pub hcdbekjpngd: i32, + #[prost(enumeration = "Eegmnipnkmj", tag = "2")] + pub reason: i32, + #[prost(message, repeated, tag = "15")] + pub pilpfncicli: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcpnnogipgj { + #[prost(uint32, tag = "6")] + pub agibomgaddk: u32, + #[prost(uint32, tag = "8")] + pub jefildjebaj: u32, + #[prost(uint32, tag = "10")] + pub pcaobbjlffm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4010)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igeckhcnken { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5944)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdjpflegkjd { + #[prost(enumeration = "Pfbjfdjflpp", tag = "12")] + pub agppgljpijd: i32, + #[prost(uint32, tag = "14")] + pub gfcjgekgnje: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24113)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifinknhmmac { + #[prost(map = "uint32, float", tag = "4")] + pub cgldffgmbai: ::std::collections::HashMap, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27434)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhhpnfmgjhn { + #[prost(message, repeated, tag = "4")] + pub offnadbpdjb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2049)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igbbipejooh { + #[prost(uint32, tag = "5")] + pub gblenhcpkcp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25125)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnmjanppfob { + #[prost(uint32, tag = "12")] + pub hfjilncpakl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(875)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibpbkjbfblk { + #[prost(uint32, tag = "11")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20566)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogebhfhkgbk { + #[prost(bool, tag = "1")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "3")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, + #[prost(bool, tag = "9")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "13")] + pub gmninljgfkg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eamdljipldj {} +#[derive(proto_gen::CmdID)] +#[cmdid(5725)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdbnalhndni { + #[prost(string, repeated, tag = "9")] + pub dnbgclgekni: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24207)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poddhnlbpbd { + #[prost(uint32, tag = "1")] + pub cjfpcbalbid: u32, + #[prost(uint32, tag = "4")] + pub felhefmfaip: u32, + #[prost(uint32, tag = "7")] + pub ifmfeecemjh: u32, + #[prost(uint32, tag = "15")] + pub apokpknjnlk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8330)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aghdheionaa { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27098)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kopiflkgceb { + #[prost(uint32, repeated, tag = "7")] + pub hmlmbjkocmm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8273)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nglbnchjmmg { + #[prost(uint32, tag = "7")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6644)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkiemdkbeif { + #[prost(uint32, tag = "2")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9892)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hccldeamdei { + #[prost(bool, tag = "1")] + pub hkdhoncfgoj: bool, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(enumeration = "Hibhhjenmpp", tag = "12")] + pub pipmddflkmo: i32, + #[prost(uint32, tag = "14")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, + #[prost(oneof = "hccldeamdei::Detail", tags = "168, 263, 716, 1009")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `HCCLDEAMDEI`. +pub mod hccldeamdei { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "168")] + BirdBallInfo(super::Jijinciihcn), + #[prost(message, tag = "263")] + FilmfestShootingInfo(super::Gbhcoidiijh), + #[prost(message, tag = "716")] + GreatFestivalV2SheetRestoreInfo(super::Kcagnbmdjmh), + #[prost(message, tag = "1009")] + FairyTalesFlyppyHatInfo(super::Ppcnlmmomoe), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(26643)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhocpplhbod { + #[prost(uint32, repeated, tag = "7")] + pub himcbbodhcj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emfodjeppmk { + #[prost(bool, tag = "4")] + pub eippeiilmdp: bool, + #[prost(uint32, tag = "8")] + pub uid: u32, + #[prost(bool, tag = "9")] + pub hjfopbhakde: bool, + #[prost(uint32, repeated, tag = "10")] + pub cnfodgeooef: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub avatar_id: ::prost::alloc::vec::Vec, + #[prost(string, tag = "12")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "15")] + pub costume_id: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24456)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kialanhpfbg { + #[prost(uint32, tag = "3")] + pub oboopjlpdni: u32, + #[prost(uint32, repeated, tag = "6")] + pub dobnnmfigih: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6593)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmbpkdnoane { + #[prost(bool, tag = "11")] + pub aoghddjpbbj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26730)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lodpfcafdhb { + #[prost(uint32, tag = "1")] + pub lbclghbmdaf: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8428)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kiokoplcmff {} +#[derive(proto_gen::CmdID)] +#[cmdid(4188)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnkhhpklbih { + #[prost(uint32, tag = "12")] + pub acohjbclcjd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27069)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Engilahnbec { + #[prost(bool, tag = "5")] + pub ankcbommojb: bool, + #[prost(enumeration = "Nnlmonnhamd", tag = "10")] + pub reason: i32, + #[prost(uint32, tag = "13")] + pub mpbhhdjjlpe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25045)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmlagghikai { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6922)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmdkjddniib { + #[prost(enumeration = "Himmemhogfb", tag = "12")] + pub mfmlakbiaed: i32, + #[prost(uint64, tag = "14")] + pub dcompdppdpo: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23605)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkbckhkcnec { + #[prost(uint32, tag = "12")] + pub ahidnmjdejf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7619)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ighmbjenbji { + #[prost(message, optional, tag = "5")] + pub jblofgolbdg: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub inenjabakgj: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub ccpigccdboi: u32, + #[prost(enumeration = "Kdjjjaogjfj", tag = "14")] + pub ogbgchojnki: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfkpknlfiki { + #[prost(uint32, tag = "9")] + pub npoddommlgn: u32, + #[prost(bool, tag = "13")] + pub nnmlhbjdjed: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddhalcngpnf { + #[prost(uint32, tag = "12")] + pub ladgflmmgba: u32, + #[prost(bool, tag = "13")] + pub nnmlhbjdjed: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28737)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Empepffjnan { + #[prost(bool, tag = "13")] + pub nnfaclkngae: bool, + #[prost(bool, tag = "12")] + pub mpgafimhbja: bool, + #[prost(uint32, tag = "10")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29307)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmggaikimgm { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "12")] + pub skill_id: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hffhkkmpbfj { + #[prost(uint32, repeated, tag = "1")] + pub koddemmpdfi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpeemmpbkmk { + #[prost(message, repeated, tag = "2")] + pub pigofiofjid: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22421)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpjgljelmjp { + #[prost(uint32, tag = "1")] + pub acnagipbchp: u32, + #[prost(uint32, tag = "5")] + pub khcdhfjgkad: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21578)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikinhdefbci {} +#[derive(proto_gen::CmdID)] +#[cmdid(3521)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jimkbejlchf { + #[prost(uint32, tag = "6")] + pub ohkidhnabib: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1770)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdibhliincn { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ildjcdpgjlc { + #[prost(uint64, tag = "1")] + pub mojeffjpnbn: u64, + #[prost(uint64, tag = "3")] + pub ciiigcjkpoj: u64, + #[prost(uint32, tag = "4")] + pub adocpjafioh: u32, + #[prost(uint32, tag = "5")] + pub cmdnkflfhia: u32, + #[prost(uint32, tag = "9")] + pub lanbakkbbgh: u32, + #[prost(uint32, tag = "14")] + pub hcemimjkcpi: u32, + #[prost(uint32, tag = "15")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6014)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcangliagca { + #[prost(string, tag = "14")] + pub msg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oohiibfcaje { + #[prost(uint32, tag = "3")] + pub cenhkjdffda: u32, + #[prost(bool, tag = "11")] + pub poiggnkedah: bool, + #[prost(uint32, tag = "13")] + pub mcmbofifbcp: u32, + #[prost(uint32, repeated, tag = "14")] + pub jbadgiahpgc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmfhahlmpfk { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(string, tag = "5")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "9")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub djcfmfedncg: u32, + #[prost(string, tag = "14")] + pub kamjijolfkj: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1170)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlenphpkihn { + #[prost(map = "uint32, uint32", tag = "13")] + pub dnjdkhdfhop: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Deiffhncbef { + #[prost(uint32, repeated, tag = "2")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25456)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijnkemdndbn { + #[prost(uint32, tag = "6")] + pub pbbnhbnapon: u32, + #[prost(uint32, tag = "12")] + pub group_id: u32, + #[prost(uint32, tag = "13")] + pub lgbmbjcjmka: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhheednholi { + #[prost(bool, tag = "9")] + pub dblpjbbpnic: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbfbjmpcfhm { + #[prost(message, repeated, tag = "1")] + pub mdpmacocmfb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub ilhjjfhkbde: u32, + #[prost(uint32, tag = "9")] + pub ljdmbidhpji: u32, + #[prost(map = "uint32, uint32", tag = "11")] + pub hamkmbeihaf: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27426)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Danipckiilg { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2846)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fdookkjeipn {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmdngkgcopo { + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneEntityInfo { + #[prost(enumeration = "ProtEntityType", tag = "1")] + pub entity_type: i32, + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(string, tag = "3")] + pub name: ::prost::alloc::string::String, + #[prost(message, optional, tag = "4")] + pub motion_info: ::core::option::Option, + #[prost(message, repeated, tag = "5")] + pub prop_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub fight_prop_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub life_state: u32, + #[prost(message, repeated, tag = "9")] + pub animator_para_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "17")] + pub last_move_scene_time_ms: u32, + #[prost(uint32, tag = "18")] + pub last_move_reliable_seq: u32, + #[prost(message, optional, tag = "19")] + pub entity_client_data: ::core::option::Option, + #[prost(message, repeated, tag = "20")] + pub entity_environment_info_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "21")] + pub entity_authority_info: ::core::option::Option, + #[prost(string, repeated, tag = "22")] + pub tag_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, repeated, tag = "23")] + pub server_buff_list: ::prost::alloc::vec::Vec, + #[prost(oneof = "scene_entity_info::Entity", tags = "10, 11, 12, 13")] + pub entity: ::core::option::Option, +} +/// Nested message and enum types in `SceneEntityInfo`. +pub mod scene_entity_info { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Entity { + #[prost(message, tag = "10")] + Avatar(super::SceneAvatarInfo), + #[prost(message, tag = "11")] + Monster(super::SceneMonsterInfo), + #[prost(message, tag = "12")] + Npc(super::SceneNpcInfo), + #[prost(message, tag = "13")] + Gadget(super::SceneGadgetInfo), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(3396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecijedpgkff { + #[prost(uint32, tag = "8")] + pub agloejebcdf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ademkipfknf { + #[prost(enumeration = "Jmeollkiong", tag = "9")] + pub onnchkcbpmk: i32, + #[prost(uint32, tag = "10")] + pub phnjpmeeibj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(447)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egfcjhfhjnd { + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(message, repeated, tag = "3")] + pub gdfhficjpcj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "8")] + pub akclibaijcn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3785)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggifcblemnd { + #[prost(enumeration = "Bieolmjpked", tag = "13")] + pub r#type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3936)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adcnkcdemce {} +#[derive(proto_gen::CmdID)] +#[cmdid(24811)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibgccpmchff { + #[prost(map = "uint32, uint32", tag = "14")] + pub onhblidiphk: ::std::collections::HashMap, + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StopServerInfo { + #[prost(uint32, tag = "1")] + pub stop_begin_time: u32, + #[prost(uint32, tag = "2")] + pub stop_end_time: u32, + #[prost(string, tag = "3")] + pub url: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub content_msg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24144)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alcmaoaeiak { + #[prost(uint32, repeated, tag = "15")] + pub aipamkaahej: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27134)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Endomaicplc { + #[prost(uint32, tag = "3")] + pub icjfcaklnfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21876)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerForceExitReq {} +#[derive(proto_gen::CmdID)] +#[cmdid(21966)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bepmhfobhin { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llidcbkbpjh { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "5")] + pub jbadgiahpgc: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub poiggnkedah: bool, + #[prost(message, repeated, tag = "11")] + pub cjplonjkcce: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "15")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7539)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aalckdhdoap { + #[prost(message, repeated, tag = "5")] + pub jliandnbcfn: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25638)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnninbpjdle { + #[prost(uint32, tag = "1")] + pub aaopmgielok: u32, + #[prost(uint32, repeated, tag = "2")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub laicdpfdimh: u32, + #[prost(string, tag = "9")] + pub ceelgoogbec: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28429)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcafgamhfoa { + #[prost(uint32, tag = "8")] + pub team_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onfleneinob { + #[prost(uint32, repeated, tag = "2")] + pub iplkghdcgfj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(bool, tag = "10")] + pub cfhjbflhanh: bool, + #[prost(uint32, tag = "11")] + pub pkkkijalpnm: u32, + #[prost(uint32, tag = "12")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27460)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohemjfmkocg { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, optional, tag = "8")] + pub kjnbdciaenf: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghflhlfmfpl { + #[prost(uint32, tag = "1")] + pub bbmnomhbkln: u32, + #[prost(uint32, tag = "2")] + pub hogndighhon: u32, + #[prost(uint32, tag = "4")] + pub nhijndjjnpa: u32, + #[prost(uint32, tag = "7")] + pub ebabpeldogg: u32, + #[prost(uint32, tag = "8")] + pub cpkjcanhkmd: u32, + #[prost(uint32, tag = "10")] + pub kmdgcndjpol: u32, + #[prost(uint32, tag = "11")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23705)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ickhgjlkena { + #[prost(uint32, tag = "4")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "12")] + pub lbclghbmdaf: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kilekbkpfpc { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aofglkpajen { + #[prost(message, repeated, tag = "1")] + pub efidpkhfkee: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub cogcngelhom: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8286)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekmhpologha { + #[prost(uint64, tag = "6")] + pub dcompdppdpo: u64, + #[prost(bool, tag = "11")] + pub akdgmpmndfc: bool, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "15")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3884)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hoonmeplnan { + #[prost(message, repeated, tag = "2")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4940)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhpphlnhlbh { + #[prost(uint32, repeated, tag = "1")] + pub ijnacjmnojm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub kanpemecoof: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8137)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obonbfmoibk { + #[prost(uint32, tag = "2")] + pub pjgfapekfbc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneFishInfo { + #[prost(uint32, tag = "1")] + pub fish_id: u32, + #[prost(uint32, tag = "2")] + pub fish_pool_entity_id: u32, + #[prost(message, optional, tag = "3")] + pub fish_pool_pos: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub fish_pool_gadget_id: u32, + #[prost(uint32, tag = "5")] + pub last_shock_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5423)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnlnkcfehdc { + #[prost(enumeration = "Hbcjgnlbden", tag = "6")] + pub mcdfojkmidb: i32, + #[prost(uint32, tag = "15")] + pub config_id: u32, + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joeikafcice { + #[prost(bool, tag = "3")] + pub hppmegldgkf: bool, + #[prost(uint32, tag = "5")] + pub count: u32, + #[prost(uint32, tag = "14")] + pub item_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2503)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahhfdomfcpp { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28198)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kenecbpipgd { + #[prost(map = "uint32, message", tag = "2")] + pub gjpfkocopcp: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4387)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jghobddocgi { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub pghgefmpgdc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3482)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmembbbepdo { + #[prost(bool, tag = "4")] + pub dmedoehomkh: bool, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25871)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmoifomgcdf { + #[prost(uint32, tag = "7")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hceiolpklmh {} +#[derive(proto_gen::CmdID)] +#[cmdid(7589)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dabplmckneb { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22360)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnhdncleiop { + #[prost(uint32, tag = "4")] + pub fchfakepinp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27441)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kancmgodpea { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "5")] + pub hdgejhamanp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(55)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmpbfefkamp { + #[prost(uint32, tag = "10")] + pub parent_quest_id: u32, + #[prost(map = "uint32, uint32", tag = "12")] + pub epfngpmmhme: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpbafodfmia { + #[prost(message, repeated, tag = "12")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lppgljekmkg { + #[prost(uint32, tag = "1")] + pub hklkmbmgake: u32, + #[prost(uint32, repeated, tag = "14")] + pub apbmoddnkje: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8968)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eooaionopkd { + #[prost(uint64, repeated, tag = "5")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "4")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23084)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Innmpjfpgcb { + #[prost(uint32, tag = "1")] + pub pghgefmpgdc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23745)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Papaikojemg { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, optional, tag = "6")] + pub eiifhbcbbak: ::core::option::Option, + #[prost(enumeration = "Kckmmddjpce", tag = "14")] + pub phfalpgfgkn: i32, + #[prost(oneof = "papaikojemg::Detail", tags = "13, 15")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `PAPAIKOJEMG`. +pub mod papaikojemg { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(uint32, tag = "13")] + ExamId(u32), + #[prost(message, tag = "15")] + TemplatePotionInfo(super::Dofemmfnnng), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(6121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ioaojdiablo { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22337)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njmlhpipdnk { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icppbdkpnal { + #[prost(uint64, tag = "10")] + pub avatar_id: u64, + #[prost(bool, tag = "11")] + pub dohhenfngpe: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29604)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpacjmnblan { + #[prost(uint32, tag = "11")] + pub omgchbachci: u32, + #[prost(message, optional, tag = "13")] + pub bepfmdkmfic: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28870)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klflhnmkicf { + #[prost(uint32, repeated, tag = "9")] + pub ecdaefbojof: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub ndplpgegece: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27971)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebphonelfcc { + #[prost(message, repeated, tag = "3")] + pub dohiocbemma: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8990)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obnojebofla { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25745)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Coaakmcjmad { + #[prost(message, optional, tag = "3")] + pub next_res_version_config: ::core::option::Option, + #[prost(string, tag = "11")] + pub next_resource_url: ::prost::alloc::string::String, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23563)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijfpfjbnpna { + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibjnmadiopc { + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(string, tag = "2")] + pub name: ::prost::alloc::string::String, + #[prost(message, optional, tag = "3")] + pub pos: ::core::option::Option, + #[prost(enumeration = "Lfieakhooal", tag = "4")] + pub nhjcmjjbegp: i32, + #[prost(uint32, tag = "5")] + pub monster_id: u32, + #[prost(enumeration = "Gohambnlbdi", tag = "6")] + pub ligfllbndlm: i32, + #[prost(uint32, tag = "7")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "8")] + pub agienjjkpbe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4620)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjgkeakacjk { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "2")] + pub nfjohaldgdn: u32, + #[prost(uint32, tag = "3")] + pub jgihcibojpn: u32, + #[prost(uint64, tag = "7")] + pub avatar_guid: u64, + #[prost(uint32, tag = "14")] + pub jmlppgefbpf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8769)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcpcicidpca { + #[prost(bool, tag = "2")] + pub is_focus: bool, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint64, tag = "5")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8339)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aagpedkblep { + #[prost(uint32, tag = "1")] + pub target_uid: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(message, optional, tag = "15")] + pub glmklipeldi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PropValue { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(int64, tag = "4")] + pub val: i64, + #[prost(oneof = "prop_value::Value", tags = "2, 3")] + pub value: ::core::option::Option, +} +/// Nested message and enum types in `PropValue`. +pub mod prop_value { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Value { + #[prost(int64, tag = "2")] + Ival(i64), + #[prost(float, tag = "3")] + Fval(f32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jijinciihcn { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "4")] + pub ehnijbnnhkd: u32, + #[prost(bool, tag = "6")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "7")] + pub pgknjbimiej: u32, + #[prost(uint32, tag = "8")] + pub fjhhikoihka: u32, + #[prost(bool, tag = "9")] + pub hkdhoncfgoj: bool, + #[prost(uint32, tag = "11")] + pub ohhpffamheh: u32, + #[prost(message, repeated, tag = "13")] + pub kafokippiap: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9181)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Foblmafnjfh {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Laojlgmbaee { + #[prost(uint32, repeated, tag = "11")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8553)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljcilffjppb { + #[prost(uint64, tag = "13")] + pub gedmdocolfj: u64, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ioghhfjjkpg { + #[prost(bool, tag = "3")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "8")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(267)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imoomjnpeeo { + #[prost(message, repeated, tag = "6")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "14")] + pub hljohdkcbjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aiplpdiijbp { + #[prost(uint32, tag = "2")] + pub hihdbbmpioa: u32, + #[prost(map = "uint64, uint32", tag = "3")] + pub hgfplekfend: ::std::collections::HashMap, + #[prost(uint64, tag = "5")] + pub njcbgpiikhe: u64, + #[prost(message, repeated, tag = "6")] + pub ocfklknflgp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pamhiikdcma: u32, + #[prost(uint32, tag = "8")] + pub jbmlhdfkchp: u32, + #[prost(uint32, tag = "9")] + pub fddengblehn: u32, + #[prost(uint64, tag = "10")] + pub iboddlmfnlb: u64, + #[prost(uint32, repeated, tag = "11")] + pub goajdhhkeee: ::prost::alloc::vec::Vec, + #[prost(map = "uint64, uint32", tag = "14")] + pub ndippbaibph: ::std::collections::HashMap, + #[prost(uint32, tag = "15")] + pub lmemhmnpmpf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6716)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbfefbecpfh { + #[prost(uint32, repeated, tag = "5")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub uid: u32, + #[prost(uint32, repeated, tag = "11")] + pub ieaopminpen: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5471)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbmkgdjndae { + #[prost(uint64, tag = "11")] + pub avatar_guid: u64, + #[prost(uint32, tag = "8")] + pub bifofbnfpmo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20190)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aenidjldglh { + #[prost(enumeration = "Hbcjgnlbden", tag = "6")] + pub mcdfojkmidb: i32, + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "1")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8091)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerEnterSceneNotify { + #[prost(uint32, repeated, tag = "1")] + pub scene_tag_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub obfcjpojmom: u32, + #[prost(uint32, tag = "4")] + pub target_uid: u32, + #[prost(enumeration = "EnterType", tag = "7")] + pub r#type: i32, + #[prost(uint32, tag = "8")] + pub enter_scene_token: u32, + #[prost(uint64, tag = "9")] + pub scene_begin_time: u64, + #[prost(bool, tag = "11")] + pub jdngepmpfoh: bool, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "13")] + pub scene_id: u32, + #[prost(message, optional, tag = "14")] + pub mbfonblmnbl: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub gpjhaeemcbk: u32, + #[prost(message, optional, tag = "24")] + pub bfpgbndfgbo: ::core::option::Option, + #[prost(uint32, tag = "172")] + pub aljnjkpmopb: u32, + #[prost(message, optional, tag = "439")] + pub dfndkdafejo: ::core::option::Option, + #[prost(uint32, tag = "722")] + pub ekibacgbhcj: u32, + #[prost(uint32, tag = "819")] + pub ddgbkgdecme: u32, + #[prost(message, optional, tag = "1098")] + pub kmdlmkgjihh: ::core::option::Option, + #[prost(bool, tag = "1249")] + pub gbhgablfdme: bool, + #[prost(uint32, tag = "1461")] + pub kdhndlankni: u32, + #[prost(uint32, tag = "1512")] + pub okcagdndejn: u32, + #[prost(string, tag = "1559")] + pub scene_transaction: ::prost::alloc::string::String, + #[prost(message, optional, tag = "1754")] + pub galjcimkfch: ::core::option::Option, + #[prost(uint32, tag = "1756")] + pub kkladmflaoe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27922)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpopihboekm { + #[prost(uint32, repeated, tag = "9")] + pub pgdaobfgkoj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3308)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjcfkhbljlp { + #[prost(uint32, tag = "13")] + pub iidhpkefhpm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knajkflbflp { + #[prost(uint32, tag = "1")] + pub state: u32, + #[prost(uint32, tag = "2")] + pub jkhigmkcbhp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5281)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ackplllfbic { + #[prost(bool, tag = "10")] + pub iknbinfmiid: bool, + #[prost(bool, tag = "12")] + pub piockldlcjd: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jojdjopieag { + #[prost(bool, tag = "8")] + pub bakhlpgcimd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(621)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpbnfohalgc { + #[prost(bool, tag = "6")] + pub gclfhjekbon: bool, + #[prost(message, repeated, tag = "7")] + pub region_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gieecoicpgl { + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(message, repeated, tag = "15")] + pub fmihgnhgndm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9315)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpjmkebgmae {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adhbmblcbog { + #[prost(message, optional, tag = "3")] + pub abpjibdjipa: ::core::option::Option, + #[prost(message, repeated, tag = "10")] + pub eelabiblbia: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21677)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpdpaebnkig { + #[prost(uint32, tag = "5")] + pub parent_quest_id: u32, + #[prost(message, repeated, tag = "12")] + pub ebjeadiigig: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20054)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghpknlolbgl { + #[prost(uint32, tag = "13")] + pub nhakdoloeka: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8793)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gajnbkeckcp { + #[prost(message, optional, tag = "1")] + pub rot: ::core::option::Option, + #[prost(bool, tag = "8")] + pub ngofdmbiilf: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnchgnjihbk { + #[prost(message, optional, tag = "1")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(float, tag = "2")] + pub fncogclpgnc: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29540)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Henkjjcghlk { + #[prost(uint32, tag = "2")] + pub cjmhjhijmjn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3466)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akfdkdkfmkd { + #[prost(uint32, tag = "11")] + pub ocnjnmhllhi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4088)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpjbhkibpii { + #[prost(message, repeated, tag = "3")] + pub geeidcbpoce: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "5")] + pub ldnkabndpbg: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phpjijiehee { + #[prost(message, repeated, tag = "3")] + pub pigofiofjid: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nigeelgppgh { + #[prost(uint32, tag = "10")] + pub egilpllmlho: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4635)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnnodclpide { + #[prost(message, repeated, tag = "5")] + pub appmhmkgcof: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjbnlakaiad { + #[prost(message, optional, tag = "1")] + pub pglajfafgai: ::core::option::Option, + #[prost(bool, tag = "5")] + pub jpinaohpbbk: bool, + #[prost(message, repeated, tag = "7")] + pub oplajnckefn: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "12")] + pub dphdagagbii: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhpedipldlb { + #[prost(uint64, tag = "2")] + pub ceaocnkhnoe: u64, + #[prost(uint32, tag = "10")] + pub bohfcfcmbkd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20068)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehldemcogfd { + #[prost(bool, tag = "3")] + pub jdhmnkimoag: bool, + #[prost(bool, tag = "12")] + pub hghcabacdpl: bool, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bapabnfmoic { + #[prost(uint32, tag = "3")] + pub ldkgglbbjge: u32, + #[prost(bool, tag = "12")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "13")] + pub pphplchinjo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aehkdmfhnop { + #[prost(uint32, tag = "3")] + pub monster_id: u32, + #[prost(uint32, repeated, tag = "6")] + pub affix_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Figcmddmdgf { + #[prost(string, tag = "1")] + pub fjgjagcecjg: ::prost::alloc::string::String, + #[prost(bool, tag = "3")] + pub cgjoghablff: bool, + #[prost(float, tag = "4")] + pub nkcjicgiodo: f32, + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(float, tag = "9")] + pub speed: f32, + #[prost(message, optional, tag = "10")] + pub iaknhjgcpgl: ::core::option::Option, + #[prost(float, tag = "11")] + pub feppdomopld: f32, + #[prost(bool, tag = "12")] + pub dcmiecgogpb: bool, + #[prost(int32, tag = "13")] + pub pdlkmpbkane: i32, + #[prost(uint32, repeated, tag = "14")] + pub lncigfcjcaa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24049)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eeppnomecki { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flhcnjgdnha { + #[prost(message, repeated, tag = "8")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pejpkebbdni {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bamgkbjngip { + #[prost(message, repeated, tag = "11")] + pub mcggijfgnfh: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "12")] + pub hdhfopehioo: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egjjdihliko { + #[prost(uint32, tag = "1")] + pub nnaalgjoaio: u32, + #[prost(uint32, tag = "2")] + pub fhcgkpipcic: u32, + #[prost(uint32, repeated, tag = "7")] + pub buff_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub cebikbgojjn: u32, + #[prost(string, tag = "10")] + pub heamlfeclnd: ::prost::alloc::string::String, + #[prost(uint32, tag = "11")] + pub jjemkpefdac: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bffpjgkioil { + #[prost(message, repeated, tag = "9")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdoijnamchi { + #[prost(uint32, tag = "1")] + pub fbpgimlmdnj: u32, + #[prost(uint32, tag = "4")] + pub pjnojdoaaip: u32, + #[prost(uint32, tag = "5")] + pub mihmgcojgob: u32, + #[prost(uint32, tag = "9")] + pub kdknoocoebm: u32, + #[prost(uint32, tag = "10")] + pub phpfppidjkj: u32, + #[prost(enumeration = "Ihacnpjbldi", tag = "12")] + pub hcdbekjpngd: i32, + #[prost(uint32, tag = "15")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneNpcInfo { + #[prost(uint32, tag = "1")] + pub npc_id: u32, + #[prost(uint32, tag = "2")] + pub room_id: u32, + #[prost(uint32, tag = "3")] + pub parent_quest_id: u32, + #[prost(uint32, tag = "4")] + pub block_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnmfkienmgl { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(enumeration = "Mbmckhfkokf", tag = "5")] + pub akaecgkdaek: i32, + #[prost(uint32, tag = "8")] + pub omccjjohdoi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2039)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Komjkaobpni { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6993)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcbpnbbikag { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, repeated, tag = "12")] + pub aphkopalnlj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbabookfogn { + #[prost(uint32, repeated, tag = "2")] + pub oigllhajnfg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub hbgmiloaklk: u32, + #[prost(uint32, tag = "11")] + pub fbmcnpillbh: u32, + #[prost(fixed32, tag = "14")] + pub end_time: u32, + #[prost(enumeration = "Lgcbogajdfb", tag = "15")] + pub gfcfcmaccnc: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iikgbjdldjl { + #[prost(uint32, tag = "7")] + pub config_id: u32, + #[prost(oneof = "iikgbjdldjl::Adebpdlaojp", tags = "1, 2, 4, 5, 15, 1974")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `IIKGBJDLDJL`. +pub mod iikgbjdldjl { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(message, tag = "1")] + ChangeGadgetState(super::Cmaoknpacfh), + #[prost(message, tag = "2")] + DeactiveGadget(super::Fgeenjnkegb), + #[prost(message, tag = "4")] + ActiveMonsterWave(super::Khbjihjoeom), + #[prost(message, tag = "5")] + ActiveMonsterGroup(super::Kcjebliehlm), + #[prost(message, tag = "15")] + ActiveGadget(super::Bojambjmcnp), + #[prost(message, tag = "1974")] + DeactiveMonsterWaveCurrentGroup(super::Nigeelgppgh), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(21291)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olhlnojgpkg { + #[prost(bool, tag = "1")] + pub gjpeomabhgf: bool, + #[prost(bool, tag = "14")] + pub inbenefpkmk: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6597)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jikmigjjcee {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nplnegaklni { + #[prost(message, optional, tag = "1")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24132)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmaglnmlpfd { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6507)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikbncihjohj { + #[prost(bool, tag = "5")] + pub nfnlokmpili: bool, + #[prost(uint32, tag = "7")] + pub jchhllebmja: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4312)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hocaeapgjib { + #[prost(uint32, tag = "3")] + pub iehlhaogkpj: u32, + #[prost(bool, tag = "11")] + pub kcmjhjeomoa: bool, + #[prost(uint32, tag = "15")] + pub bpkbdcjgfol: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24793)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jncjmidegao { + #[prost(uint32, tag = "3")] + pub gcoahedllka: u32, + #[prost(bool, tag = "5")] + pub gnennchgpda: bool, + #[prost(uint32, tag = "8")] + pub dllbkeeoean: u32, + #[prost(uint32, tag = "11")] + pub ihpmbbejajp: u32, + #[prost(uint32, tag = "15")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipfjmbgnaio { + #[prost(string, tag = "1")] + pub bmljclenhmh: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub llgjemmhion: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub cbmfbkaicap: u32, + #[prost(uint32, tag = "4")] + pub eiklgfnefmf: u32, + #[prost(uint32, tag = "5")] + pub ekkfajjdnkb: u32, + #[prost(uint32, tag = "6")] + pub hhhbnhdnlfe: u32, + #[prost(uint32, tag = "7")] + pub lemmfogkhfn: u32, + #[prost(oneof = "ipfjmbgnaio::Hlaofkpengi", tags = "101")] + pub hlaofkpengi: ::core::option::Option, +} +/// Nested message and enum types in `IPFJMBGNAIO`. +pub mod ipfjmbgnaio { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Hlaofkpengi { + #[prost(message, tag = "101")] + ResinCard(super::Giechebdejh), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Giechebdejh { + #[prost(message, repeated, tag = "1")] + pub ggkclffjhjd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub hgbiiohgmmd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onkijklnahe { + #[prost(message, repeated, tag = "1")] + pub ogamdmanafo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub lmjnokajeki: u32, + #[prost(float, tag = "3")] + pub ocoplkhnhel: f32, + #[prost(uint32, tag = "4")] + pub gpmpaegbeje: u32, + #[prost(float, tag = "5")] + pub llgkenmienl: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(311)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmcknhaegkp { + #[prost(bool, tag = "8")] + pub is_add: bool, + #[prost(uint32, repeated, tag = "13")] + pub mkfgfgehlpi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27671)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmopdolebpd { + #[prost(uint32, tag = "1")] + pub prop_type: u32, + #[prost(enumeration = "Bnmoikfjfaj", tag = "2")] + pub aldjefgcbfm: i32, + #[prost(uint32, repeated, tag = "5")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "6")] + pub gobchdjolnb: ::core::option::Option, + #[prost(enumeration = "Bnnpldljknj", tag = "7")] + pub kabmkdfcgik: i32, + #[prost(enumeration = "Mjihakkdbnn", tag = "8")] + pub dbhpnlfkjgl: i32, + #[prost(float, tag = "10")] + pub edhbecmmhjc: f32, + #[prost(enumeration = "Bbbemdapogh", tag = "11")] + pub reason: i32, + #[prost(float, tag = "12")] + pub nnfoneohghe: f32, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29199)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhpokejhdfm { + #[prost(bool, tag = "2")] + pub ankcbommojb: bool, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "10")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "11")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "13")] + pub ljejebelkmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24099)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iedcicfgcnn { + #[prost(message, optional, tag = "2")] + pub jenfdhkcmml: ::core::option::Option, + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fllfbmehbij { + #[prost(uint32, tag = "4")] + pub ogpmhoecddj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hencecbjihj { + #[prost(uint32, tag = "7")] + pub avatar_id: u32, + #[prost(bool, tag = "12")] + pub hblihlkjeda: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4550)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gceigknapdc { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(map = "uint32, uint32", tag = "13")] + pub eagdogklfcf: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4937)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnohhbaafjf { + #[prost(uint32, tag = "7")] + pub bbfplmbggjp: u32, + #[prost(bool, tag = "8")] + pub hlajmgapkij: bool, + #[prost(message, optional, tag = "12")] + pub dejoimafmck: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub pgkedialloa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3379)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edcocoaclff { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1483)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Paokloepdha { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub cjgofffhdco: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldnkdldiicd { + #[prost(uint32, tag = "5")] + pub peblohahpmm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljedifpdafn { + #[prost(uint32, tag = "2")] + pub nipaakapgag: u32, + #[prost(uint32, tag = "4")] + pub kigfpeikeio: u32, + #[prost(uint32, tag = "7")] + pub pdpnhmehbic: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25296)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekmdoocjehn {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mihcoabpjni {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcfobcaialk { + #[prost(message, repeated, tag = "2")] + pub gpkgfemnkon: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub dfbcgfmohfp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub fdocmgobdnd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub njmnnmcdmik: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub icgpacelhon: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub jfpdolnlehb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub ojjchodachd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2372)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ankjlckginh { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, repeated, tag = "9")] + pub fdmgpmkglcd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5738)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icnmcmoollp { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3463)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojmpaaiepjo { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(uint32, tag = "4")] + pub okicoglejec: u32, + #[prost(enumeration = "Eicnfjmdenp", tag = "8")] + pub coeagpihlhh: i32, + #[prost(message, optional, tag = "12")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3646)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhhgdcfpfmi { + #[prost(enumeration = "Gmbpglnggli", tag = "3")] + pub ipobdekllje: i32, + #[prost(enumeration = "Noipnepdipn", tag = "5")] + pub epcbaobgodi: i32, + #[prost(message, optional, tag = "7")] + pub jilfekjaimc: ::core::option::Option, + #[prost(uint32, repeated, tag = "15")] + pub mbjelcmkflh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahgaggngbbm { + #[prost(message, repeated, tag = "6")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub idehoepmakd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idojncgghak { + #[prost(message, optional, tag = "2")] + pub bokhjookahc: ::core::option::Option, + #[prost(int32, tag = "7")] + pub foecapjdakj: i32, + #[prost(message, optional, tag = "10")] + pub gpbnffjbomn: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(enumeration = "Epnikabpigp", tag = "15")] + pub jpioceplhcm: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cihbkdlceil { + #[prost(uint32, tag = "1")] + pub bkclmicechc: u32, + #[prost(bool, tag = "4")] + pub pphaobldfcf: bool, + #[prost(uint32, repeated, tag = "15")] + pub ijhcmcfacbi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kciopeiokbb { + #[prost(uint32, tag = "3")] + pub nidijfnmpmi: u32, + #[prost(uint32, tag = "5")] + pub ikghabpnmjc: u32, + #[prost(uint32, tag = "8")] + pub group_id: u32, + #[prost(uint32, tag = "9")] + pub config_id: u32, + #[prost(uint32, tag = "15")] + pub bgofjcdmegm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpojmbghhbj { + #[prost(uint32, repeated, tag = "4")] + pub ilcgedomomo: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub ebnnlfnjgpe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chmhiacppde { + #[prost(float, tag = "14")] + pub kmamahcapee: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28347)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emognfionfj { + #[prost(uint32, tag = "3")] + pub avatar_id: u32, + #[prost(uint32, tag = "14")] + pub r#type: u32, + #[prost( + oneof = "emognfionfj::Detail", + tags = "1620, 1431, 197, 909, 1871, 1499, 1514" + )] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `EMOGNFIONFJ`. +pub mod emognfionfj { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "1620")] + ElementReliquarySetRequest(super::Ldnkdldiicd), + #[prost(message, tag = "1431")] + ElementWeaponRequest(super::Nmhlbngkmpm), + #[prost(message, tag = "197")] + ReliquarySetRequest(super::Acbclkofkdj), + #[prost(message, tag = "909")] + ReliquaryRequest(super::Afakiiojani), + #[prost(message, tag = "1871")] + WeaponRequest(super::Mmenhikocmf), + #[prost(message, tag = "1499")] + SkillRequest(super::Dfbalngnhfa), + #[prost(message, tag = "1514")] + ElementReliquaryRequest(super::Cjnkamcmnpf), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(27373)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbfcjfafggc { + #[prost(message, repeated, tag = "7")] + pub hogfdpaofom: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29091)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfeemmjkbdb { + #[prost(enumeration = "Djpkemoickc", tag = "9")] + pub reason: i32, + #[prost(uint32, tag = "11")] + pub player_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6464)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfkpgcigced { + #[prost(bool, tag = "2")] + pub pmgaholeknf: bool, + #[prost(uint32, tag = "3")] + pub neipflioolk: u32, + #[prost(message, repeated, tag = "13")] + pub jiphaoflhch: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4484)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieekdknomeb { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6019)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgegpkolfid { + #[prost(message, repeated, tag = "15")] + pub cgkfmgmiojb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7348)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcjleagcimi { + #[prost(uint32, tag = "11")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6657)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkdhibjpjpc { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnacbmifkcm { + #[prost(uint32, tag = "6")] + pub ndehkhcalmf: u32, + #[prost(uint32, tag = "8")] + pub param: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22612)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnbmljpipgp { + #[prost(uint32, tag = "7")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27973)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhlmfokejak { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20688)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkbchbncapi { + #[prost(message, repeated, tag = "3")] + pub enjkoofdnio: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub eefmhkemfej: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghkkiibipdj { + #[prost(uint32, tag = "3")] + pub kfjipmfkjna: u32, + #[prost(uint32, repeated, tag = "8")] + pub fikgdofabee: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amnbijhobbi { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(message, repeated, tag = "3")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub djcfmfedncg: u32, + #[prost(string, tag = "10")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(message, optional, tag = "13")] + pub blfkojlccoo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epfhmonljoh { + #[prost(uint32, tag = "4")] + pub dflidlnnogo: u32, + #[prost(bool, tag = "9")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "11")] + pub afjclenhanc: u32, + #[prost(uint32, tag = "13")] + pub gbgocpcehmh: u32, + #[prost(message, repeated, tag = "14")] + pub oopopjofcgm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub fbkghiopene: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(495)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihjnagekkph { + #[prost(message, repeated, tag = "8")] + pub npfglajlhil: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub kkfhbldeaba: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(163)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdbohbdmaga { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lieinhahjea { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8806)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifgkmhlinip { + #[prost(uint32, tag = "2")] + pub kenikecfflm: u32, + #[prost(uint32, repeated, tag = "14")] + pub mlhfbafckip: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aokfcphjceh { + #[prost(uint32, tag = "1")] + pub gbamhbbfpkn: u32, + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(uint32, tag = "6")] + pub hepabnmgeda: u32, + #[prost(uint32, tag = "8")] + pub guid: u32, + #[prost(uint32, tag = "11")] + pub fiknlhojfkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23151)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccnhmifhggf {} +#[derive(proto_gen::CmdID)] +#[cmdid(9993)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgolgkicikk { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22522)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbaeiddgkol { + #[prost(uint32, tag = "10")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(54)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogllkmpdhaf { + #[prost(uint32, tag = "4")] + pub gaplfmmgbfa: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28324)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnpmcefifgd { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opikhaiokbb { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, tag = "3")] + pub costume_id: u32, + #[prost(uint32, tag = "4")] + pub aepnhmcdbfl: u32, + #[prost(uint32, tag = "5")] + pub cmafekgpacg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Minompgflei { + #[prost(uint32, tag = "7")] + pub degakeklgem: u32, + #[prost(uint32, repeated, tag = "8")] + pub peebehmccbb: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Felddalafpe { + #[prost(enumeration = "Bkkkfljbpmi", tag = "1")] + pub state: i32, + #[prost(uint32, tag = "3")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "5")] + pub ilpjbepjdlp: u32, + #[prost(uint32, tag = "11")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9766)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bijffmpiifb { + #[prost(uint32, tag = "7")] + pub eaflfgdfphc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Item { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint64, tag = "2")] + pub guid: u64, + #[prost(oneof = "item::Detail", tags = "5, 6, 7")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `Item`. +pub mod item { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "5")] + Material(super::Material), + #[prost(message, tag = "6")] + Equip(super::Equip), + #[prost(message, tag = "7")] + Furniture(super::Furniture), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(20528)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgcijdoknmf { + #[prost(uint32, tag = "2")] + pub afpkljbmobb: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9980)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dedommbmdco { + #[prost(uint32, tag = "7")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21110)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fbjcpafbfdp {} +#[derive(proto_gen::CmdID)] +#[cmdid(5380)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlikiaihjdm {} +#[derive(proto_gen::CmdID)] +#[cmdid(6099)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eefmombkcij { + #[prost(uint32, tag = "8")] + pub kfpegnaadlo: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6124)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnmiifmhfhp { + #[prost(message, repeated, tag = "1")] + pub nhbiflefbeb: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23291)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebjejflkjhk { + #[prost(bool, tag = "5")] + pub fdgoboihcbp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(667)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnognidjgmg { + #[prost(message, repeated, tag = "2")] + pub baofgoakgan: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29865)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilkjaagflah { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "14")] + pub bdgphdbflkm: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhmaobjbidh { + #[prost(uint32, repeated, tag = "12")] + pub jhlpnkebina: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28999)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nopcmmbliod { + #[prost(uint32, tag = "7")] + pub padclipinad: u32, + #[prost(uint32, tag = "10")] + pub game_time: u32, + #[prost(bool, tag = "2")] + pub hdcglelhabn: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcgcnlcjmfd { + #[prost(uint32, tag = "5")] + pub end_time: u32, + #[prost(uint32, tag = "11")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "12")] + pub pkhodhipjbb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1030)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmjbndgoiio { + #[prost(uint64, tag = "13")] + pub avatar_guid: u64, + #[prost(uint32, tag = "12")] + pub promote_level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oplkooibkbp { + #[prost(message, repeated, tag = "1")] + pub pfggigkagmb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub dgeakofngdn: u32, + #[prost(uint32, tag = "6")] + pub eopffipdkgn: u32, + #[prost(message, repeated, tag = "8")] + pub hhgglfaikfo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub gabljanjlaf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub djhfjffkppl: u32, + #[prost(uint32, tag = "13")] + pub gghkdjlgfpb: u32, + #[prost(message, repeated, tag = "14")] + pub jhpikakigba: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub fkhohkelkoe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27944)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gaefmmfaldp { + #[prost(message, repeated, tag = "1")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub jofhnoemekc: bool, + #[prost(enumeration = "Himmemhogfb", tag = "9")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27965)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcmecbembkd { + #[prost(uint32, tag = "5")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgohffichla { + #[prost(uint32, repeated, tag = "1")] + pub lpajhegaggf: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub ickglanngem: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub anlmmkppaaj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub kahlkipakif: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub knmakhmlknp: bool, + #[prost(bool, tag = "6")] + pub hbdpdojlcia: bool, + #[prost(bool, tag = "7")] + pub ehjkleobdol: bool, + #[prost(uint32, repeated, tag = "8")] + pub hcfciioklkb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub cnnfgppidaf: u32, + #[prost(message, optional, tag = "10")] + pub ejegddbplkg: ::core::option::Option, + #[prost(bool, tag = "11")] + pub fiehbpmebni: bool, + #[prost(map = "uint32, bool", tag = "12")] + pub fmdigckifdf: ::std::collections::HashMap, + #[prost(uint32, tag = "13")] + pub cbmemiojbgh: u32, + #[prost(bool, tag = "14")] + pub eijclnncidh: bool, + #[prost(uint32, tag = "15")] + pub kkfhbldeaba: u32, + #[prost(uint32, repeated, tag = "155")] + pub khbngaihnjb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "573")] + pub ihmplcmngei: u32, + #[prost(bool, tag = "1481")] + pub golonakegho: bool, + #[prost(uint32, tag = "1739")] + pub minfkilgjle: u32, + #[prost(bool, tag = "1811")] + pub jcljifocabi: bool, + #[prost(bool, tag = "1843")] + pub fbfjffgdkeh: bool, + #[prost(uint32, tag = "1880")] + pub nobegfabgil: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23648)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elgopnfbibj { + #[prost(uint32, tag = "6")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "5")] + pub dglcdjnmnkh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajpfelopfce { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24563)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geeehfplpng {} +#[derive(proto_gen::CmdID)] +#[cmdid(7599)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkklaoljgmi { + #[prost(uint32, tag = "13")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24844)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhanimapaoh { + #[prost(uint32, tag = "3")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8610)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcfajlnblpj { + #[prost(uint32, tag = "1")] + pub kcinbomoigl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9734)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geeihplplmb { + #[prost(uint32, tag = "2")] + pub skill_id: u32, + #[prost(float, tag = "4")] + pub lecapbhnapf: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29430)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adcknfkemem { + #[prost(bool, tag = "13")] + pub is_active: bool, + #[prost(uint32, tag = "15")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6575)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpkpohmhbki { + #[prost(string, tag = "2")] + pub lgnfafmphkd: ::prost::alloc::string::String, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkhgekdmfap { + #[prost(uint32, tag = "8")] + pub bjjjdldclll: u32, + #[prost(uint32, tag = "9")] + pub necgmakacdi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23930)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofgfjajchnp { + #[prost(bool, tag = "6")] + pub bhhcjikkibo: bool, + #[prost(uint32, tag = "9")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbidnghlmlo { + #[prost(message, repeated, tag = "1")] + pub route_points: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub route_type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcofjddboca {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jeajdmhfggh { + #[prost(message, repeated, tag = "15")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejjichpjdbm { + #[prost(uint32, tag = "1")] + pub diggffkgodj: u32, + #[prost(bool, tag = "2")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "5")] + pub peajinifghm: u32, + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7152)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DoSetPlayerBornDataNotify {} +#[derive(proto_gen::CmdID)] +#[cmdid(29726)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iagjfhkfppm { + #[prost(uint32, tag = "12")] + pub badoiojgdbb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpoiobjkhok { + #[prost(bool, tag = "1")] + pub ngdokajiafh: bool, + #[prost(bool, tag = "3")] + pub mdjjmemcpam: bool, + #[prost(bool, tag = "4")] + pub olfpblplgio: bool, + #[prost(uint32, tag = "5")] + pub hiifgaeaokd: u32, + #[prost(uint32, tag = "9")] + pub lldgieidcgm: u32, + #[prost(message, optional, tag = "11")] + pub abpjibdjipa: ::core::option::Option, + #[prost(uint32, repeated, tag = "15")] + pub akghegcnmjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23946)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmddenpgbjg { + #[prost(uint32, tag = "12")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2094)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aiibkjndiah {} +#[derive(proto_gen::CmdID)] +#[cmdid(6199)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oicmpjffpbl { + #[prost(message, optional, tag = "3")] + pub ebobpnfjdoi: ::core::option::Option, + #[prost(int32, tag = "4")] + pub jjfpfmpjema: i32, + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(210)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofhpddlpidn { + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(message, repeated, tag = "12")] + pub oiglgmmmfpg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6526)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdahjmfllhe { + #[prost(bool, tag = "7")] + pub djoclokdkae: bool, + #[prost(uint32, tag = "15")] + pub iehlhaogkpj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27310)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmoikpoognf { + #[prost(uint32, tag = "2")] + pub ofkkckccgjc: u32, + #[prost(uint32, tag = "4")] + pub player_uid: u32, + #[prost(uint32, tag = "8")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8995)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pinemfjjjnh { + #[prost(enumeration = "Himmemhogfb", tag = "1")] + pub mfmlakbiaed: i32, + #[prost(int32, tag = "15")] + pub retcode: i32, + #[prost(oneof = "pinemfjjjnh::Gcbckcbnpmn", tags = "4")] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `PINEMFJJJNH`. +pub mod pinemfjjjnh { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "4")] + MusicInfo(super::Gdljljihmfo), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(3972)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdllekjonce { + #[prost(message, optional, tag = "9")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub mpbhhdjjlpe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27506)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfnilpbbkpi { + #[prost(message, repeated, tag = "5")] + pub jgklnnoofnd: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, repeated, tag = "11")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2108)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnofnldpnif { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, optional, tag = "6")] + pub dcokhkbojep: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23845)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gadmmelakni { + #[prost(map = "uint32, message", tag = "13")] + pub prop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Keejnolinba { + #[prost(bool, tag = "1")] + pub ngfhdfndlpg: bool, + #[prost(bool, tag = "4")] + pub geggcnephdi: bool, + #[prost(message, repeated, tag = "15")] + pub iminibckghd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22558)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Danbdlckjpp { + #[prost(uint32, tag = "3")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29399)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbfgmmhnhbk { + #[prost(uint32, tag = "5")] + pub jkhigmkcbhp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9808)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eihmbdmbjgo { + #[prost(uint32, tag = "1")] + pub ifhechfemdn: u32, + #[prost(message, repeated, tag = "2")] + pub kmbampphcni: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub fnnhlpfgpin: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub dalmffloamd: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint64, tag = "8")] + pub avatar_guid: u64, + #[prost(message, repeated, tag = "10")] + pub llojhceibgo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub ihgolmohhnj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub dipipcanmfm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub elnamccoijl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6109)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Podkpochhpb { + #[prost(message, repeated, tag = "15")] + pub plapcgkeiea: ::prost::alloc::vec::Vec, + #[prost(int32, repeated, tag = "11")] + pub phbkedkchnh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub pngmclgdcpc: bool, + #[prost(uint32, tag = "6")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4616)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfdlmdcenom { + #[prost(uint32, tag = "2")] + pub pcaobbjlffm: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "12")] + pub jefildjebaj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bclmhallkei { + #[prost(message, optional, tag = "4")] + pub hopjkplbdji: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub mfhlcapdnmm: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub dfgiofhbibl: ::core::option::Option, + #[prost(message, repeated, tag = "8")] + pub mofodpdidmb: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub ipfolmojdie: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub gjbdhbdjged: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1878)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bplofhpehnf { + #[prost(uint32, repeated, tag = "7")] + pub mjnnjkeilfm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub gaplfmmgbfa: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikmniipgjae { + #[prost(bool, tag = "2")] + pub ecihdijcled: bool, + #[prost(bool, tag = "5")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28662)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pckmfkgafnc { + #[prost(uint32, repeated, tag = "1")] + pub oepccikngci: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7548)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nplejklgigl { + #[prost(bool, tag = "2")] + pub inbenefpkmk: bool, + #[prost(bool, tag = "7")] + pub gjpeomabhgf: bool, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3366)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgajcpidhhk { + #[prost(uint32, tag = "15")] + pub egmbajdjcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8414)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmeieekbogb { + #[prost(message, optional, tag = "14")] + pub ajlhhkmaodn: ::core::option::Option, + #[prost(uint64, tag = "8")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iiolobmjbae { + #[prost(message, optional, tag = "3")] + pub ejihmolhfba: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub jiaknpccjdk: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub kafbjcphdmc: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub niedeghkbnn: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3643)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ooefgbghbaj { + #[prost(uint32, tag = "4")] + pub cifccoabakm: u32, + #[prost(uint32, tag = "7")] + pub weight_limit: u32, + #[prost(uint32, tag = "9")] + pub fnpeahfkefh: u32, + #[prost(enumeration = "StoreType", tag = "10")] + pub store_type: i32, + #[prost(uint32, tag = "11")] + pub ikahjndhekl: u32, + #[prost(uint32, tag = "12")] + pub lbfhgkocopb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7968)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcmpkbabbbf { + #[prost(uint32, tag = "9")] + pub hgaaipejflh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28692)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mffeklbnogh { + #[prost(message, repeated, tag = "4")] + pub hnlaijnkhng: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "8")] + pub dmedoehomkh: bool, + #[prost(bool, tag = "14")] + pub kpdfalbjano: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjjbbajdnfl { + #[prost(uint32, tag = "1")] + pub gfehiopkcee: u32, + #[prost(uint32, tag = "3")] + pub lnbklocgfpe: u32, + #[prost(message, optional, tag = "4")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub fknpcafmpgh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iokglhnecgf { + #[prost(string, tag = "2")] + pub bmedkoljhep: ::prost::alloc::string::String, + #[prost(uint32, tag = "8")] + pub fncogclpgnc: u32, + #[prost(uint32, tag = "9")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28590)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Enflapimdee { + #[prost(float, tag = "1")] + pub heghiolionf: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghlgjfdiakn { + #[prost(message, repeated, tag = "4")] + pub eloilboekpk: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub dhaomgmmdpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24705)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmcajkodgak { + #[prost(uint32, tag = "6")] + pub jinjlbemjnc: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Faaggnkgfao { + #[prost(message, repeated, tag = "5")] + pub oopopjofcgm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "11")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cekoadfnohp { + #[prost(bool, tag = "5")] + pub ibeikeigmko: bool, + #[prost(message, optional, tag = "10")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agcfkkcgeme { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elbiiappcfe { + #[prost(map = "string, string", tag = "13")] + pub bfgbkaeafoh: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkaekoakool { + #[prost(uint32, tag = "2")] + pub dekhbeooien: u32, + #[prost(message, repeated, tag = "8")] + pub kgimmencgmj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eobgpecdjaf { + #[prost(message, repeated, tag = "8")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29978)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfjahbjgnnj {} +#[derive(proto_gen::CmdID)] +#[cmdid(21774)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmkfhbkanjm { + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "1")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5354)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgcpegeoomo { + #[prost(uint32, tag = "4")] + pub phmkpnkmooe: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(message, optional, tag = "10")] + pub lapiciijckl: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2262)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fclhncboegj { + #[prost(uint32, tag = "2")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1190)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npkpiahbaff { + #[prost(bool, tag = "12")] + pub konbknmhgdc: bool, + #[prost(uint32, repeated, tag = "13")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20178)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npjbgbnofch { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1601)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajbjmfhpblo { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpbaopbmfan { + #[prost(int64, tag = "1")] + pub oboopjlpdni: i64, + #[prost(message, repeated, tag = "2")] + pub prop_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mopdganfkaf { + #[prost(uint32, tag = "2")] + pub llmjiojfmbj: u32, + #[prost(uint32, tag = "4")] + pub jmlmgoappin: u32, + #[prost(uint32, repeated, tag = "5")] + pub gmjlelbfepn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub dnigocnomaj: u32, + #[prost(uint32, tag = "12")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "13")] + pub ikdomkbjagd: u32, + #[prost(uint32, repeated, tag = "14")] + pub famfhbjlhai: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bogappbnkcd { + #[prost(message, optional, tag = "3")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7873)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfadjmcebgn { + #[prost(uint32, tag = "3")] + pub skill_id: u32, + #[prost(uint32, tag = "4")] + pub max_charge_count: u32, + #[prost(uint64, tag = "12")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(125)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfecjjgpame { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(uint32, tag = "5")] + pub ghiaogllldi: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub promote_level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26101)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fffliagbapj { + #[prost(message, repeated, tag = "1")] + pub kepilllghkd: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2118)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onilcbemhkj { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28059)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lopapaeiaep { + #[prost(uint32, tag = "11")] + pub jchjpafcofh: u32, + #[prost(uint32, tag = "6")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5948)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdifcoplfak {} +#[derive(proto_gen::CmdID)] +#[cmdid(26531)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jppaddiabka { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25712)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmaeomdhpep { + #[prost(uint32, tag = "2")] + pub iehlhaogkpj: u32, + #[prost(uint32, tag = "7")] + pub aaopmgielok: u32, + #[prost(uint32, tag = "15")] + pub eoaobkmelpp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhfhdbnjgcp { + #[prost(float, tag = "7")] + pub fmohpocagme: f32, + #[prost(float, tag = "9")] + pub dmdkffajgmh: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8190)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jihekminaeb { + #[prost(bool, tag = "14")] + pub mbfllhnligd: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PropPair { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(message, optional, tag = "2")] + pub prop_value: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29018)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhjihfehlmc { + #[prost(uint32, repeated, tag = "5")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20736)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecibfddlbbb { + #[prost(message, repeated, tag = "7")] + pub apndffijkdm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24288)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbacmjeongf { + #[prost(uint32, tag = "6")] + pub uid: u32, + #[prost(uint32, tag = "12")] + pub jdhfhcfeonf: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgicjpeckpm { + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "11")] + pub aeniipfkmhh: u32, + #[prost(bool, tag = "12")] + pub dklgbfpccen: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24478)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmcjpalhmeb { + #[prost(message, repeated, tag = "7")] + pub hdnmiejjdbg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phacoocngkj { + #[prost(string, tag = "1")] + pub title: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub dmmfjmbmjha: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub akakgobdmip: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfbgehaaljm { + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, + #[prost(message, repeated, tag = "10")] + pub cbkmlacnmik: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kffdjghkgpn { + #[prost(message, repeated, tag = "2")] + pub dnpebapalek: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20087)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlnjcjgpbcc { + #[prost(uint32, tag = "3")] + pub oboopjlpdni: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20327)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfaloomjheo { + #[prost(enumeration = "Igohjibcdfa", tag = "2")] + pub lkidbhiooog: i32, + #[prost(message, optional, tag = "3")] + pub iheagccefnd: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8482)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhnjmdndbfb { + #[prost(uint32, tag = "4")] + pub dknkfkdabla: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub kejahifpbbb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6129)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eiojfihakhp { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(int32, repeated, tag = "8")] + pub dncfmfnglfa: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub cbdjnkepeaj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4348)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nafnphfjdhm { + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "3")] + pub ecamacigjap: u32, + #[prost(uint32, tag = "5")] + pub config_id: u32, + #[prost(uint32, tag = "9")] + pub cammfnmahek: u32, + #[prost(uint32, tag = "11")] + pub agienjjkpbe: u32, + #[prost(uint32, tag = "13")] + pub lhdahdneppl: u32, + #[prost(message, optional, tag = "14")] + pub kdhjlmkfman: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27114)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hplkioenfnm { + #[prost(uint32, repeated, tag = "2")] + pub ijnacjmnojm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6165)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dekimgeehap { + #[prost(message, optional, tag = "6")] + pub bojcnnpkmkj: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(int32, tag = "9")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(769)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akemhlhgcbj { + #[prost(uint32, repeated, tag = "1")] + pub jnfpmeijenp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgffmjcgjid { + #[prost(uint32, tag = "1")] + pub jlkidpehpjc: u32, + #[prost(uint32, tag = "15")] + pub ndlgihehpam: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jadligcbpia { + #[prost(uint32, tag = "4")] + pub lcihljpmgjd: u32, + #[prost(bool, tag = "6")] + pub cajhcpipboo: bool, + #[prost(uint32, tag = "7")] + pub kajcndjlkfi: u32, + #[prost(bool, tag = "12")] + pub dhbpebdbmnk: bool, + #[prost(bool, tag = "14")] + pub enfpkopnhkk: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9966)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccggbngkobe { + #[prost(enumeration = "VisionType", tag = "1")] + pub appear_type: i32, + #[prost(uint32, tag = "6")] + pub param: u32, + #[prost(message, repeated, tag = "8")] + pub entity_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23963)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poefchkgkae { + #[prost(message, optional, tag = "11")] + pub plbdagkfmbi: ::core::option::Option, + #[prost(bool, tag = "10")] + pub necndmmppli: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgjjldmokhg { + #[prost(uint32, tag = "1")] + pub state: u32, + #[prost(uint32, tag = "15")] + pub mnganmnnmjg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gddakolohkl { + #[prost(uint32, tag = "1")] + pub iamcnilplco: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1980)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct HostPlayerNotify { + #[prost(uint32, tag = "10")] + pub host_uid: u32, + #[prost(uint32, tag = "14")] + pub host_peer_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8072)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhapdgidhpc { + #[prost(uint32, tag = "5")] + pub gnlfclggagl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8164)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihanpaefpki { + #[prost(uint32, tag = "8")] + pub ogginldndec: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5920)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Diafcpcdcpo { + #[prost(uint32, tag = "8")] + pub obcdoibijem: u32, + #[prost(uint64, tag = "9")] + pub avatar_guid: u64, + #[prost(uint32, tag = "14")] + pub plngojenaic: u32, + #[prost(uint32, tag = "15")] + pub ocgobbalhme: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(906)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkgjoabbaie { + #[prost(uint64, repeated, tag = "8")] + pub njlkafbffcn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2990)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfoohlhbbog { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21044)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihmjigjjagj { + #[prost(bool, tag = "3")] + pub lenoapicdce: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oeohncnkhip { + #[prost(bool, tag = "5")] + pub lfnfjighdee: bool, + #[prost(bool, tag = "6")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "7")] + pub cmgfmdlfcfk: u32, + #[prost(uint32, tag = "9")] + pub bnblmfkkfgg: u32, + #[prost(uint32, tag = "14")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28790)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afmpemnppno { + #[prost(uint32, tag = "9")] + pub lhdahdneppl: u32, + #[prost(uint32, tag = "3")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21234)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmjmmkiklbo { + #[prost(message, repeated, tag = "4")] + pub ahkjlpldped: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27850)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kckgmifcpdp {} +#[derive(proto_gen::CmdID)] +#[cmdid(3267)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcleikanico { + #[prost(uint32, tag = "2")] + pub aejdamljojf: u32, + #[prost(message, optional, tag = "11")] + pub onmpgidpgpl: ::core::option::Option, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3807)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfmgkhkjkom { + #[prost(message, repeated, tag = "3")] + pub lgjkhpabejc: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjploceginb { + #[prost(message, repeated, tag = "10")] + pub pigofiofjid: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28015)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbamcbopjlb { + #[prost(message, optional, tag = "1")] + pub cifpnbbnbcg: ::core::option::Option, + #[prost(uint64, tag = "12")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29768)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oclohbofkco { + #[prost(uint32, tag = "11")] + pub avatar_id: u32, + #[prost(uint32, tag = "4")] + pub fiknlhojfkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24652)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgibijdlbji { + #[prost(message, repeated, tag = "5")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub lhdahdneppl: u32, + #[prost(uint32, tag = "15")] + pub kbgpbkhnkdf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olonlcggboj { + #[prost(string, tag = "1")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(message, optional, tag = "9")] + pub blfkojlccoo: ::core::option::Option, + #[prost(map = "uint32, uint32", tag = "13")] + pub onhblidiphk: ::std::collections::HashMap, + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffchepkenel { + #[prost(uint32, tag = "5")] + pub gadget_state: u32, + #[prost(uint32, tag = "13")] + pub iejhhmbobmj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppgkjakmggb { + #[prost(enumeration = "Njgjfmecpka", tag = "1")] + pub bpelaiajjkj: i32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(oneof = "ppgkjakmggb::Neokfhfmgho", tags = "2, 3, 5, 8, 13")] + pub neokfhfmgho: ::core::option::Option, +} +/// Nested message and enum types in `PPGKJAKMGGB`. +pub mod ppgkjakmggb { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Neokfhfmgho { + #[prost(message, tag = "2")] + SyncAction(super::Eoogcodklon), + #[prost(message, tag = "3")] + SyncCreateConnect(super::Oofgopfmkco), + #[prost(message, tag = "5")] + SyncPing(super::Kjiklbipjij), + #[prost(message, tag = "8")] + SyncFinishGame(super::Ecgonilibpf), + #[prost(message, tag = "13")] + SyncSnapShot(super::Bagmciddfgk), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(104)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obpnjhofbed { + #[prost(uint32, tag = "6")] + pub gmemgdllpnj: u32, + #[prost(uint32, tag = "11")] + pub echfghanmpb: u32, + #[prost(uint32, tag = "9")] + pub lpddmnemjlg: u32, + #[prost(uint32, tag = "3")] + pub ejcpfnngjkh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4450)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneTeamUpdateNotify { + #[prost(message, repeated, tag = "4")] + pub scene_team_avatar_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub is_in_mp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4075)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clggnihdjnj { + #[prost(uint32, tag = "2")] + pub oehkjpbepkb: u32, + #[prost(uint32, tag = "6")] + pub ohkidhnabib: u32, + #[prost(bool, tag = "12")] + pub djoclokdkae: bool, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggdbpdilaof { + #[prost(uint32, tag = "3")] + pub oinifipdjph: u32, + #[prost(uint32, tag = "4")] + pub kgedpgankpc: u32, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub entity_id: u32, + #[prost(int32, tag = "15")] + pub bedacoieima: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Miphfpdbegi { + #[prost(uint32, tag = "2")] + pub aiphnbmbhlg: u32, + #[prost(uint32, tag = "4")] + pub igmghfejahe: u32, + #[prost(message, optional, tag = "5")] + pub iaknhjgcpgl: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29511)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fioiinhfjbf {} +#[derive(proto_gen::CmdID)] +#[cmdid(5371)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmhckipelfg { + #[prost(bool, tag = "10")] + pub hppmegldgkf: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26960)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpimmpjilmj { + #[prost(uint32, tag = "3")] + pub ogccdacjjig: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(enumeration = "Hnncclmhcla", tag = "8")] + pub bkidnkcmail: i32, + #[prost(uint32, tag = "11")] + pub jinjlbemjnc: u32, + #[prost(message, optional, tag = "13")] + pub mdkkpmiicae: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21501)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgikhpbmlel { + #[prost(uint32, tag = "8")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9166)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gojipchiahp { + #[prost(message, optional, tag = "14")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28019)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjbmoeikegd { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opcdapccooc { + #[prost(uint32, tag = "3")] + pub oboopjlpdni: u32, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(bool, tag = "8")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "9")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "11")] + pub ilpjbepjdlp: u32, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneWeaponInfo { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(uint32, tag = "2")] + pub gadget_id: u32, + #[prost(uint32, tag = "3")] + pub item_id: u32, + #[prost(uint64, tag = "4")] + pub guid: u64, + #[prost(uint32, tag = "5")] + pub level: u32, + #[prost(uint32, tag = "6")] + pub promote_level: u32, + #[prost(message, optional, tag = "7")] + pub ability_info: ::core::option::Option, + #[prost(map = "uint32, uint32", tag = "8")] + pub affix_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "9")] + pub renderer_changed_info: ::core::option::Option, + #[prost(bool, tag = "10")] + pub hhlnnpoildl: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29322)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfedjodhcok { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(uint32, tag = "3")] + pub knclkkifaoc: u32, + #[prost(uint32, tag = "7")] + pub hmbhihbflca: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7457)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olpajemdoof { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9813)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njinjclddhf { + #[prost(uint32, tag = "15")] + pub jklafeigolc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21751)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pohdcfnfbjb { + #[prost(enumeration = "Himmemhogfb", tag = "12")] + pub mfmlakbiaed: i32, + #[prost(uint32, tag = "7")] + pub khhibkpbkpn: u32, + #[prost(oneof = "pohdcfnfbjb::Koghknfabpa", tags = "6")] + pub koghknfabpa: ::core::option::Option, + #[prost(oneof = "pohdcfnfbjb::Gcmkmeijkhj", tags = "193")] + pub gcmkmeijkhj: ::core::option::Option, +} +/// Nested message and enum types in `POHDCFNFBJB`. +pub mod pohdcfnfbjb { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Koghknfabpa { + #[prost(message, tag = "6")] + MusicRecord(super::Mhfikahpbmm), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcmkmeijkhj { + #[prost(message, tag = "193")] + MusicBriefInfo(super::Pcdlglmdhai), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dobjbedikmi { + #[prost(uint32, tag = "3")] + pub nnnlnpfieeg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3246)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mogpapofdkk { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "8")] + pub avatar_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub pikpodegkck: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub kkfakeigcic: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27540)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejloldhlmhp { + #[prost(bool, tag = "4")] + pub mcpkkmhkcpd: bool, + #[prost(uint32, tag = "5")] + pub param: u32, + #[prost(uint32, tag = "6")] + pub homgpjjmldg: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8166)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpgphlgabpb { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(enumeration = "Gepcikpiepn", tag = "7")] + pub hnjdddnoook: i32, + #[prost(message, repeated, tag = "10")] + pub mpdmbkelamk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub fchfakepinp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26697)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkfhiicckcg { + #[prost(uint32, tag = "3")] + pub jamdpllpknp: u32, + #[prost(uint32, tag = "7")] + pub mdonemkpmbk: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjljeljjdkm { + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "6")] + pub peajinifghm: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29979)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnfapbmbmip { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint64, tag = "3")] + pub avatar_guid: u64, + #[prost(uint32, tag = "15")] + pub anim_hash: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmnoilkhcap { + #[prost(uint32, tag = "11")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "12")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(40)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhkfcpajalf { + #[prost(message, repeated, tag = "13")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, + #[prost(map = "uint64, uint32", tag = "14")] + pub edabjcnfini: ::std::collections::HashMap, + #[prost(uint32, tag = "9")] + pub lgcopnjbcnf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekjpinhelhc { + #[prost(message, optional, tag = "9")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgplnekjdch { + #[prost(message, repeated, tag = "11")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmflfdcgpni { + #[prost(uint32, tag = "10")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbkebempkam { + #[prost(message, repeated, tag = "9")] + pub ehcoglilggh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9941)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iihemcmlidh {} +#[derive(proto_gen::CmdID)] +#[cmdid(22649)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfglfpkiipa { + #[prost(uint32, tag = "6")] + pub cafefeabnec: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint64, tag = "14")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlgjkkpocpj { + #[prost(message, optional, tag = "6")] + pub abpjibdjipa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1658)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kacndimhiaf { + #[prost(message, optional, tag = "1")] + pub edobonhaehp: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub fflgcbbliao: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4916)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Foplapchcoi { + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29036)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbpkpaejfib { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5630)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opcmilinhek { + #[prost(uint32, tag = "14")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okfjlkkfnni { + #[prost(message, repeated, tag = "2")] + pub hkajmjljoeg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22811)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgnlaclonkk { + #[prost(uint64, repeated, tag = "6")] + pub edabeidcffo: ::prost::alloc::vec::Vec, + #[prost(enumeration = "StoreType", tag = "7")] + pub store_type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29595)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnhfpodjbnk { + #[prost(uint32, tag = "1")] + pub inpbhajdpgc: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub dhebaohccae: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub fnppfkkpaca: u32, + #[prost(message, optional, tag = "4")] + pub nbeolenhmfm: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub pcgmkeajkeh: u32, + #[prost(uint32, tag = "6")] + pub abpdhmjnbkd: u32, + #[prost(map = "uint32, uint32", tag = "7")] + pub epncphcfnba: ::std::collections::HashMap, + #[prost(uint32, tag = "8")] + pub cfeclkmehme: u32, + #[prost(uint32, tag = "9")] + pub licmpidmcoi: u32, + #[prost(bool, tag = "10")] + pub naamimdommn: bool, + #[prost(uint32, tag = "11")] + pub ahpaoepcoml: u32, + #[prost(message, optional, tag = "12")] + pub kgjnkfnpoib: ::core::option::Option, + #[prost(message, repeated, tag = "13")] + pub dmapdpgjpib: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(bool, tag = "15")] + pub mibjmkdnlfh: bool, + #[prost(message, optional, tag = "447")] + pub oecjcimbpfi: ::core::option::Option, + #[prost(uint32, tag = "1009")] + pub hkdcibpofoc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6054)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Konolmobola { + #[prost(uint32, tag = "11")] + pub ehgnmadgjoc: u32, + #[prost(uint32, tag = "14")] + pub kfpegnaadlo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8236)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpdodfpmbke { + #[prost(message, repeated, tag = "1")] + pub nbhomdnidmi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbihdalpknd { + #[prost(message, optional, tag = "2")] + pub jajnmbllabi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obolihanncf { + #[prost(uint32, repeated, tag = "5")] + pub fnaoacpmmkd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub efjobkkjgdc: u32, + #[prost(uint32, repeated, tag = "11")] + pub obcnnbickdc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub ihmplcmngei: u32, + #[prost(uint32, tag = "14")] + pub goakcbglbmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1560)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mibhhcigoeg { + #[prost(uint32, tag = "9")] + pub mgcmnplnjkl: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryCurrRegionHttpRsp { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(string, tag = "2")] + pub msg: ::prost::alloc::string::String, + #[prost(message, optional, tag = "3")] + pub region_info: ::core::option::Option, + #[prost(bytes = "vec", tag = "11")] + pub client_secret_key: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "12")] + pub region_custom_config_encrypted: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "13")] + pub client_region_custom_config_encrypted: ::prost::alloc::vec::Vec, + #[prost(string, tag = "14")] + pub gate_ticket: ::prost::alloc::string::String, + #[prost(oneof = "query_curr_region_http_rsp::Detail", tags = "4, 5")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `QueryCurrRegionHttpRsp`. +pub mod query_curr_region_http_rsp { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "4")] + ForceUpdate(super::ForceUpdateInfo), + #[prost(message, tag = "5")] + StopServer(super::StopServerInfo), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gomgejhckoa { + #[prost(message, repeated, tag = "3")] + pub kpfkgkfiima: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub clogcdcahei: u32, + #[prost(uint32, repeated, tag = "14")] + pub gnedhchodml: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27062)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Negkildjdbb { + #[prost(uint32, tag = "3")] + pub cdmjgifefmd: u32, + #[prost(uint32, tag = "7")] + pub jmldgkcbcbo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Digpmlgliln { + #[prost(uint64, tag = "1")] + pub padclipinad: u64, + #[prost(uint64, tag = "2")] + pub cgammlododp: u64, + #[prost(message, repeated, tag = "3")] + pub entity_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub dgmekiilhgp: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub jhfmeficaal: bool, + #[prost(uint32, repeated, tag = "6")] + pub bdnllapjcic: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub geieddfnlmp: i32, + #[prost(message, repeated, tag = "8")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "9")] + pub ohajpgjeffb: i32, + #[prost(message, optional, tag = "10")] + pub lfmdnbaookk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3233)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Digfkdcdime { + #[prost(uint32, tag = "12")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "14")] + pub gadget_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20619)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbkeljafmhd { + #[prost(uint32, tag = "1")] + pub cnomanmjnbo: u32, + #[prost(uint32, tag = "5")] + pub jodcjcpenna: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub kkfhbldeaba: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5616)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pahkpggeohf { + #[prost(uint32, tag = "1")] + pub ocfbngkjgca: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9647)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hocnhfogole { + #[prost(uint32, tag = "14")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4226)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmehdnblkag { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub jieakemolai: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glacehkejmf { + #[prost(bool, tag = "1")] + pub fbijjnnkele: bool, + #[prost(message, repeated, tag = "4")] + pub dlgmlfembmg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub gfbkakoonhm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub opejfpcfjfi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1623)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnddhogboid {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mngofpdhbpg { + #[prost(uint32, tag = "1")] + pub costume_id: u32, + #[prost(uint32, tag = "5")] + pub avatar_id: u32, + #[prost(bool, tag = "12")] + pub hjfopbhakde: bool, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2878)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbijnjopfma { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(uint32, tag = "2")] + pub pjagpbalimk: u32, + #[prost(uint32, tag = "3")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "6")] + pub mkfidapckmf: u32, + #[prost(uint32, tag = "7")] + pub leijpnjklim: u32, + #[prost(uint32, tag = "8")] + pub cldfheopigb: u32, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, + #[prost(bool, tag = "15")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5568)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lldkoimkmoh {} +#[derive(proto_gen::CmdID)] +#[cmdid(3440)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efpkgpegpho { + #[prost(bool, tag = "6")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "8")] + pub kefcikpngjc: u32, + #[prost(uint32, tag = "9")] + pub ogopbmamfma: u32, + #[prost(uint32, tag = "12")] + pub hckcjifhkdb: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cggcfcgpell { + #[prost(string, tag = "1")] + pub bmljclenhmh: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub llgjemmhion: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29645)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpecfncdhdn { + #[prost(uint32, tag = "10")] + pub pdlmkflekdl: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7543)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnilonchcld { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcaahgkkmla { + #[prost(message, optional, tag = "5")] + pub jfdaekllkkn: ::core::option::Option, + #[prost(bool, tag = "6")] + pub cmadplggjih: bool, + #[prost(uint32, tag = "7")] + pub scene_id: u32, + #[prost(uint32, tag = "9")] + pub peer_id: u32, + #[prost(uint32, tag = "10")] + pub uid: u32, + #[prost(string, tag = "11")] + pub name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28125)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbkpkjejplk { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub pdlmkflekdl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8343)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndjagbcnidh {} +#[derive(proto_gen::CmdID)] +#[cmdid(25875)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Paegimelngb { + #[prost(message, optional, tag = "2")] + pub bnhbapdikoj: ::core::option::Option, + #[prost(enumeration = "Igohjibcdfa", tag = "10")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5820)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdonmlhdjgi { + #[prost(bool, tag = "5")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "12")] + pub ohkidhnabib: u32, + #[prost(uint32, tag = "13")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26072)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkknjgmdjfi { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25385)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inmhkjfeojm {} +#[derive(proto_gen::CmdID)] +#[cmdid(25099)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhfggfpdcbk {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mncddaedmpp { + #[prost(message, optional, tag = "1")] + pub abpjibdjipa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2090)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llknofonjfb {} +#[derive(proto_gen::CmdID)] +#[cmdid(20025)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ooenphbhfen { + #[prost(uint32, tag = "4")] + pub onabdgfcpih: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub epjoaallggd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcmjaiogkpo { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "8")] + pub ijffkcgiaoj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2358)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkhlcedgekh { + #[prost(message, optional, tag = "12")] + pub aeianmankof: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub jjeepbcifcp: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub ffdebpeddmd: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub odfifckdodj: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub dnfdjphiobd: ::core::option::Option, + #[prost(int32, tag = "13")] + pub jjfpfmpjema: i32, + #[prost(uint32, tag = "7")] + pub scene_id: u32, + #[prost(int32, tag = "2")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(176)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Checkdialhe {} +#[derive(proto_gen::CmdID)] +#[cmdid(21432)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eehimdppadp { + #[prost(message, repeated, tag = "8")] + pub mdpdlcndkmo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub egmbajdjcop: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hapcmpeonjl { + #[prost(int32, tag = "2")] + pub mpgkoihcfim: i32, + #[prost(message, optional, tag = "7")] + pub hfedopicbpn: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub pofkmpbggdl: ::core::option::Option, + #[prost(int32, repeated, tag = "10")] + pub alkgminnaml: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlaiepdekjh { + #[prost(enumeration = "Hjaaammhghn", tag = "8")] + pub aiigjkjlbal: i32, + #[prost(message, repeated, tag = "12")] + pub afbfpehoedg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hghmaooikpe { + #[prost(string, tag = "4")] + pub aeomgddoncc: ::prost::alloc::string::String, + #[prost(uint32, tag = "6")] + pub costume_id: u32, + #[prost(uint32, tag = "7")] + pub avatar_id: u32, + #[prost(uint32, tag = "8")] + pub iaomoifpbkj: u32, + #[prost(string, tag = "13")] + pub kamjijolfkj: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lenjkdipebg { + #[prost(bool, tag = "2")] + pub hblihlkjeda: bool, + #[prost(uint32, tag = "14")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27187)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgeahoncdab { + #[prost(message, repeated, tag = "6")] + pub ncfkjkijmkd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22412)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Caifeoffhbh { + #[prost(uint32, repeated, tag = "13")] + pub ldedoinniok: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocjneamjapc { + #[prost(bool, tag = "5")] + pub kgipbhibobd: bool, + #[prost(message, repeated, tag = "12")] + pub gocbhmdladb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igbbfnjfahk { + #[prost(map = "uint32, message", tag = "6")] + pub cilfdmfadlg: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iglhbjpbbda { + #[prost(uint32, tag = "6")] + pub ljfafdhikjd: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, + #[prost(bool, tag = "14")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27806)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcmjljmfcbl { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub group_id: u32, + #[prost(uint32, tag = "14")] + pub fgedppoccke: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lknialgdpbj { + #[prost(uint32, tag = "2")] + pub lekfejhkppe: u32, + #[prost(uint32, tag = "12")] + pub hpkjcbecfgb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8172)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icgcocljale { + #[prost(message, optional, tag = "4")] + pub ibjhbimbaim: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20970)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpplgkggjjj { + #[prost(message, repeated, tag = "4")] + pub fcdagighnmd: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub gilnofipmjb: bool, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub gblenhcpkcp: u32, + #[prost(message, optional, tag = "14")] + pub kldbnldjgfi: ::core::option::Option, + #[prost(bool, tag = "15")] + pub nolfdoblhbn: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgabkejdeom { + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "14")] + pub hbfipkbclhk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27648)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppgajfbjnnn { + #[prost(message, optional, tag = "8")] + pub position: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub owner_entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fenihpadojf { + #[prost(map = "uint32, uint32", tag = "4")] + pub njhiojnmkcb: ::std::collections::HashMap, + #[prost(string, tag = "5")] + pub nick_name: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub mmdpdoococo: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "8")] + pub ggbmhjflahd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub fbpgimlmdnj: u32, + #[prost(message, optional, tag = "12")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2409)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fffmbbhpkpi { + #[prost(uint32, tag = "7")] + pub guid: u32, + #[prost(bool, tag = "14")] + pub ddeejmjomcl: bool, + #[prost(bool, tag = "12")] + pub ghnkompjkci: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dianbpejpij { + #[prost(bool, tag = "2")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "6")] + pub ajhkdlcaphg: u32, + #[prost(uint32, tag = "10")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "11")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6440)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ceainpmmjaa { + #[prost(bool, tag = "5")] + pub bhhcjikkibo: bool, + #[prost(uint32, tag = "8")] + pub iehlhaogkpj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkbcjpopogi { + #[prost(uint32, tag = "2")] + pub item_id: u32, + #[prost(bool, tag = "6")] + pub hppmegldgkf: bool, + #[prost(uint32, tag = "7")] + pub count: u32, + #[prost(uint64, tag = "8")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdghdalggal { + #[prost(message, optional, tag = "10")] + pub hnjiidamchp: ::core::option::Option, + #[prost(enumeration = "Ialdlppfide", tag = "12")] + pub epcbaobgodi: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21075)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhhenalolib { + #[prost(uint64, tag = "4")] + pub avatar_guid: u64, + #[prost(uint32, tag = "6")] + pub omnkhjbmgkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6671)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlpnmhmiofd { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21295)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gaepdhejomg { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub iimdjnnjiep: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20887)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akgkpnieonn { + #[prost(message, repeated, tag = "3")] + pub enehegnabil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27265)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jijgjgpalah { + #[prost(uint32, repeated, tag = "2")] + pub nkaichlodle: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24042)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjagghlidda { + #[prost(uint64, repeated, tag = "2")] + pub dlkmfcjekal: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "9")] + pub opbnfdpdjgd: u64, + #[prost(uint32, tag = "12")] + pub emggcbpmcpd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpbojeclhpa { + #[prost(map = "uint32, message", tag = "5")] + pub ejeppajkaob: ::std::collections::HashMap, + #[prost(message, repeated, tag = "11")] + pub lbjcobndkbd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub pogdnklbfjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4683)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncbeddngcnf { + #[prost(uint32, tag = "4")] + pub kihigcbbali: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(821)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbhkabmfhia { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "9")] + pub fhoejdgpncd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(69)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epidfojkkkp { + #[prost(uint32, tag = "6")] + pub cpjofigjdgp: u32, + #[prost(uint64, repeated, tag = "10")] + pub hhmflfigild: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25833)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Haoljbdhbmd {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghabjoheaga { + #[prost(bool, tag = "4")] + pub pfokfhlokej: bool, + #[prost(uint32, repeated, tag = "5")] + pub mdmfajhfibd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub ofbcbogfcej: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub fmnffnnobih: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub cmafekgpacg: u32, + #[prost(uint32, repeated, tag = "14")] + pub jphhgapgmbm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfbjkoangjo { + #[prost(uint32, tag = "1")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "2")] + pub okicoglejec: u32, + #[prost(bool, tag = "3")] + pub is_active: bool, + #[prost(message, optional, tag = "4")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub nbaidhhdpmd: ::core::option::Option, + #[prost(int32, tag = "6")] + pub speed: i32, + #[prost(uint32, tag = "7")] + pub odilegfjbok: u32, + #[prost(uint32, tag = "8")] + pub state: u32, + #[prost(uint32, tag = "9")] + pub peblohahpmm: u32, + #[prost(uint32, tag = "10")] + pub jkgafnnlifh: u32, + #[prost(message, repeated, tag = "11")] + pub aabaecaakeg: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "12")] + pub ddmmdbeooml: i32, + #[prost(message, repeated, tag = "13")] + pub info_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub hdkpmodacmp: u32, + #[prost(uint32, tag = "15")] + pub njfflkndlke: u32, + #[prost(int32, tag = "16")] + pub kigfpeikeio: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahnndhpffij { + #[prost(uint32, repeated, tag = "2")] + pub jcpopmkjdgl: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "7")] + pub ahhpnefbelf: ::std::collections::HashMap, + #[prost(message, repeated, tag = "8")] + pub gnomiomenpe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub ccemdhcgkpl: u32, + #[prost(uint32, tag = "11")] + pub bohciopclja: u32, + #[prost(map = "uint32, uint32", tag = "13")] + pub pgcmpkmhllo: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfohafaojfa { + #[prost(uint64, tag = "1")] + pub padclipinad: u64, + #[prost(uint64, tag = "2")] + pub cgammlododp: u64, + #[prost(message, repeated, tag = "3")] + pub ndeljoaekff: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub afelflnmohm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub dgmekiilhgp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub ohajpgjeffb: u32, + #[prost(bool, tag = "7")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "8")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "9")] + pub pcklffnfnge: u32, + #[prost(uint32, tag = "10")] + pub ejnglcjnapn: u32, + #[prost(uint32, tag = "11")] + pub pkdnedainpl: u32, + #[prost(uint32, tag = "12")] + pub pnicfjonlde: u32, + #[prost(message, repeated, tag = "13")] + pub omhoeclbobi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub hpempjlfgco: u32, + #[prost(message, repeated, tag = "15")] + pub hafimfjblfg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "16")] + pub nfbkfndnaai: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "17")] + pub bcogkegagnp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "18")] + pub gnmpklahjcb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "19")] + pub bdnllapjcic: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "20")] + pub geieddfnlmp: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26506)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmggmlcfhah { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(message, optional, tag = "12")] + pub jcimgdhmmln: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Micamkkbkmm { + #[prost(uint32, tag = "1")] + pub ombhpmmomla: u32, + #[prost(uint32, repeated, tag = "10")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub bbmeenimmeh: u32, + #[prost(string, repeated, tag = "15")] + pub knchdpbaage: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23355)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmiihieldip { + #[prost(message, repeated, tag = "7")] + pub bnlkkidlbme: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarEquipAffixInfo { + #[prost(uint32, tag = "1")] + pub equip_affix_id: u32, + #[prost(uint32, tag = "2")] + pub left_cd_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27639)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dodfjbhnfil { + #[prost(message, repeated, tag = "2")] + pub hhegbiiibeo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub ohlhefnmkfo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "5")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "15")] + pub hmgabgobnla: u32, + #[prost(uint32, tag = "8")] + pub aigakboajgj: u32, + #[prost(uint32, tag = "14")] + pub bilnineaaoi: u32, + #[prost(uint32, tag = "13")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3422)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clloapindmm { + #[prost(uint32, tag = "1")] + pub abkjocjkdfh: u32, + #[prost(uint32, repeated, tag = "7")] + pub elggbgahpbc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub hcpkdcnkpgd: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub mgijfmcbjke: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9119)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aicbehigdob { + #[prost(uint32, tag = "9")] + pub npc_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(870)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npfkgikckij { + #[prost(uint64, tag = "2")] + pub dcompdppdpo: u64, + #[prost(bool, tag = "12")] + pub fojakdnohaf: bool, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "15")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9236)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oapooaklkbi { + #[prost(message, repeated, tag = "11")] + pub gjnffcfmoha: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcpkpnobjfm { + #[prost(uint32, tag = "4")] + pub level: u32, + #[prost(uint32, tag = "6")] + pub ckjgfceepok: u32, + #[prost(uint32, tag = "9")] + pub ifgpnankeaj: u32, + #[prost(uint32, tag = "13")] + pub dmcjbimfkci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Delamilmdgl { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(message, optional, tag = "3")] + pub mhfdgagiepa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epopbokbcfd { + #[prost(enumeration = "Dabhikgpaie", tag = "3")] + pub platform_type: i32, + #[prost(uint32, tag = "6")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "7")] + pub jbghbcnlkhp: u32, + #[prost(bool, tag = "9")] + pub jookmiedbie: bool, + #[prost(uint32, tag = "13")] + pub ilffggjakaj: u32, + #[prost(uint32, tag = "14")] + pub pjmhkgkfahk: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfdnmbbmogm { + #[prost(bool, tag = "1")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "9")] + pub fjhhikoihka: u32, + #[prost(bool, tag = "12")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofjffjddake { + #[prost(int32, tag = "1")] + pub pagninbknfj: i32, + #[prost(uint32, tag = "2")] + pub bfhecakoocn: u32, + #[prost(uint32, tag = "3")] + pub hjcdicmbdke: u32, + #[prost(uint32, tag = "4")] + pub entity_id: u32, + #[prost(bool, tag = "5")] + pub oabnnledcai: bool, + #[prost(int32, tag = "6")] + pub bedacoieima: i32, + #[prost(float, tag = "7")] + pub pkjibefejon: f32, + #[prost(uint32, tag = "8")] + pub ref_id: u32, + #[prost(int32, tag = "9")] + pub bpelaiajjkj: i32, + #[prost(bool, tag = "10")] + pub gpihdklihkg: bool, + #[prost(message, optional, tag = "12")] + pub ref_pos: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub kgedpgankpc: u32, + #[prost(uint32, tag = "14")] + pub nbodgmdfafp: u32, + #[prost(message, optional, tag = "15")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25857)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogeklkkfmge { + #[prost(uint32, tag = "3")] + pub hnijmehbebp: u32, + #[prost(uint32, tag = "6")] + pub ogopopjbobp: u32, + #[prost(bool, tag = "7")] + pub cpknlalfoac: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6829)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmpilopgkco { + #[prost(message, optional, tag = "2")] + pub ddpgemgdhel: ::core::option::Option, + #[prost(bool, tag = "5")] + pub nfbifipddad: bool, + #[prost(uint32, tag = "15")] + pub ocinfhojcea: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24267)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbenmcflbmi { + #[prost(uint32, tag = "15")] + pub bmbbdjpdjnd: u32, + #[prost(uint32, tag = "14")] + pub ejhaopdpjak: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4552)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppolmjjgoac { + #[prost(message, optional, tag = "1")] + pub kgjnkfnpoib: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amimnlmegea { + #[prost(message, repeated, tag = "1")] + pub hegnigachmi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub apnlofpnahn: u32, + #[prost(uint32, tag = "13")] + pub peblohahpmm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igojpadbhln { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(bool, tag = "14")] + pub eialjbaengj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5641)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogolaepipdm { + #[prost(message, repeated, tag = "6")] + pub aphkopalnlj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfbalngnhfa { + #[prost(uint32, tag = "7")] + pub skill_depot_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjdgpmeojip { + #[prost(message, repeated, tag = "10")] + pub cpglefgbnpg: ::prost::alloc::vec::Vec, + #[prost(string, tag = "15")] + pub title: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21822)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hicpmlhdace { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fphbhofgjnp { + #[prost(message, repeated, tag = "9")] + pub gocbhmdladb: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25478)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lingkndpeah { + #[prost(uint32, tag = "4")] + pub gldnnfocdem: u32, + #[prost(uint32, tag = "5")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pggpfnpdpln { + #[prost(uint32, tag = "2")] + pub ojoapinglno: u32, + #[prost(uint32, tag = "6")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "9")] + pub lekfejhkppe: u32, + #[prost(uint32, tag = "15")] + pub clocegaahjn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8785)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkcljjkhebj {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aonhlnjidif { + #[prost(uint32, tag = "4")] + pub name_id: u32, + #[prost(uint32, tag = "5")] + pub dmlcigbdpii: u32, + #[prost(bool, tag = "10")] + pub necliphhkng: bool, + #[prost(uint32, tag = "11")] + pub mdffajlbgjj: u32, + #[prost(uint32, tag = "13")] + pub jpjampmnpoj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9788)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ompmmiadlca { + #[prost(uint32, tag = "1")] + pub cbfmilloboo: u32, + #[prost(uint32, tag = "3")] + pub ccdgnfpmobd: u32, + #[prost(uint32, tag = "4")] + pub cmdnkflfhia: u32, + #[prost(uint32, tag = "5")] + pub ddclebhphhb: u32, + #[prost(uint32, tag = "8")] + pub amnljmbjnkg: u32, + #[prost(uint32, tag = "10")] + pub fdjakfibmml: u32, + #[prost(uint32, tag = "15")] + pub kffhibefmpp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3869)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmokniiinch { + #[prost(uint32, tag = "1")] + pub afpkljbmobb: u32, + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlkkibocgco { + #[prost(message, optional, tag = "13")] + pub jajnmbllabi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29632)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Koikaijkhak { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20780)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lclomdgdchb { + #[prost(uint32, tag = "2")] + pub hkejlenogln: u32, + #[prost(uint32, tag = "3")] + pub ilieopgmdgo: u32, + #[prost(uint32, tag = "4")] + pub param: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhhpbcfpjkk { + #[prost(uint32, repeated, tag = "6")] + pub apbmoddnkje: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1078)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agkldekndac { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub hklkmbmgake: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7773)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iedkiiicddf { + #[prost(message, optional, tag = "5")] + pub mjghgbhcfil: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "9")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "4")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4716)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbpljgfkcaj { + #[prost(uint32, tag = "3")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "14")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27592)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcefokjfbnd { + #[prost(uint32, tag = "11")] + pub enfbngolblo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhgiikmjebp { + #[prost(enumeration = "Pbjbnapeoed", tag = "1")] + pub state: i32, + #[prost(uint32, repeated, tag = "3")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(float, tag = "4")] + pub hgkbfkjlkao: f32, + #[prost(uint32, tag = "5")] + pub mhjeokngcdf: u32, + #[prost(uint32, tag = "8")] + pub ojoapinglno: u32, + #[prost(uint32, tag = "9")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "11")] + pub bkkdbgcoenn: u32, + #[prost(uint32, tag = "12")] + pub dibjhdjhhlo: u32, + #[prost(uint32, tag = "14")] + pub eibhpahcjbg: u32, + #[prost(uint32, tag = "15")] + pub cngjenenjih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lamahkpfkln {} +#[derive(proto_gen::CmdID)] +#[cmdid(2718)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckikijpckpp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Keoabmhgede { + #[prost(uint32, repeated, tag = "5")] + pub kehdbaphjig: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26018)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihcjcbgcncj { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22498)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aaeohbakffl { + #[prost(bool, tag = "1")] + pub jiglgehaajk: bool, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(bool, tag = "3")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "7")] + pub jlfheeipddp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28614)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkeagpbfcic { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21633)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmcflnjpcek { + #[prost(uint32, tag = "4")] + pub omgchbachci: u32, + #[prost(uint32, tag = "5")] + pub admokadnfhh: u32, + #[prost(uint32, tag = "9")] + pub icmgfgejcjk: u32, + #[prost(uint32, tag = "10")] + pub kpampgdjdhe: u32, + #[prost(bool, tag = "11")] + pub iicidnmoebc: bool, + #[prost(map = "uint32, uint32", tag = "14")] + pub jclilkdklgf: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29484)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmgfjjpppdl { + #[prost(uint32, tag = "9")] + pub badoiojgdbb: u32, + #[prost(uint32, tag = "11")] + pub ialkblcgcil: u32, + #[prost(enumeration = "Kckmmddjpce", tag = "7")] + pub phfalpgfgkn: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4730)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgfiggodhib { + #[prost(uint32, tag = "6")] + pub r#type: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub avatar_id: u32, + #[prost( + oneof = "cgfiggodhib::Detail", + tags = "144, 493, 677, 996, 1434, 1451, 1986" + )] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `CGFIGGODHIB`. +pub mod cgfiggodhib { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "144")] + ElementWeaponResponse(super::Cachhpniabc), + #[prost(message, tag = "493")] + ElementReliquarySetResponse(super::Dlggmgomego), + #[prost(message, tag = "677")] + ReliquaryResponse(super::Jgdlhlghiib), + #[prost(message, tag = "996")] + SkillResponse(super::Joapclnjbca), + #[prost(message, tag = "1434")] + ElementReliquaryResponse(super::Amimnlmegea), + #[prost(message, tag = "1451")] + ReliquarySetResponse(super::Admfdgokbag), + #[prost(message, tag = "1986")] + WeaponResponse(super::Codlghbfmll), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(9410)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hphknegjanc { + #[prost(message, repeated, tag = "15")] + pub ogifpolbhep: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khfpkkbignc { + #[prost(uint32, tag = "7")] + pub pglajfafgai: u32, + #[prost(bool, tag = "8")] + pub ddjdafhloef: bool, + #[prost(uint32, tag = "9")] + pub cjcjonhpiio: u32, + #[prost(uint32, tag = "14")] + pub ilpjbepjdlp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdcdlnldcdp { + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(float, tag = "9")] + pub cpimbckmlfc: f32, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "13")] + pub bngpnmobohj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8479)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojogchcdopj { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9303)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okejfheiipa { + #[prost(message, optional, tag = "12")] + pub hjikegifecd: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23643)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgmjclkanjf { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, repeated, tag = "10")] + pub nbjchnblalf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5042)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fegdekekpbb { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6469)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Apgbcbbnfka { + #[prost(uint32, tag = "5")] + pub homgpjjmldg: u32, + #[prost(bool, tag = "15")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20574)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpnghkiomde { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(764)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggihkodokaj { + #[prost(uint32, tag = "11")] + pub kfpegnaadlo: u32, + #[prost(uint32, tag = "5")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2985)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkafmnogogn { + #[prost(bool, tag = "3")] + pub jgjkhbobffj: bool, + #[prost(uint32, tag = "12")] + pub hoipfdomipj: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6194)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkdajcmckme {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpkohplnioa { + #[prost(message, repeated, tag = "1")] + pub cbdjnkepeaj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub level: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmifahcngao { + #[prost(message, repeated, tag = "3")] + pub mgilpohhoem: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub fbdgobjhilf: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub iebgeeomoig: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhikeicgonl { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "4")] + pub okicoglejec: u32, + #[prost(uint32, tag = "5")] + pub dingfnceiab: u32, + #[prost(uint32, tag = "6")] + pub manncafbime: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChangeAvatarRsp { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint64, tag = "9")] + pub cur_guid: u64, + #[prost(uint32, tag = "14")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acbclkofkdj {} +#[derive(proto_gen::CmdID)] +#[cmdid(26787)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkkjmodglbe { + #[prost(uint32, tag = "2")] + pub jinjlbemjnc: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(oneof = "pkkjmodglbe::Adebpdlaojp", tags = "4, 10")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `PKKJMODGLBE`. +pub mod pkkjmodglbe { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(message, tag = "4")] + DetectorData(super::Pkgbfmjbbia), + #[prost(message, tag = "10")] + ClientCollectorData(super::Jhaiacbojop), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(2026)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnapeolclni { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "3")] + pub ebeecdalmkm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bibgelojilj { + #[prost(uint32, tag = "8")] + pub entity_id: u32, + #[prost(message, optional, tag = "10")] + pub ffioldkchck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jenbhhgnlmb { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(map = "uint32, message", tag = "2")] + pub prop_map: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "3")] + pub talent_id_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, float", tag = "4")] + pub fight_prop_map: ::std::collections::HashMap, + #[prost(uint32, tag = "5")] + pub skill_depot_id: u32, + #[prost(uint32, tag = "6")] + pub core_proud_skill_level: u32, + #[prost(uint32, repeated, tag = "7")] + pub inherent_proud_skill_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "8")] + pub skill_level_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "9")] + pub proud_skill_extra_level_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "10")] + pub aleijmnifgk: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub fetter_info: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub costume_id: u32, + #[prost(message, optional, tag = "13")] + pub excel_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27758)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjpcdciejej { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(enumeration = "Ialdlppfide", tag = "5")] + pub epcbaobgodi: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8884)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfpajihlnmk { + #[prost(message, repeated, tag = "12")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub gaplfmmgbfa: u32, + #[prost(enumeration = "Ialdlppfide", tag = "2")] + pub epcbaobgodi: i32, + #[prost(uint32, tag = "4")] + pub room_id: u32, + #[prost(uint64, tag = "5")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojafhoohbio { + #[prost(uint32, repeated, tag = "3")] + pub bpbolafchcl: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub fhiddcjdchl: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub npldfkninho: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub dekhbeooien: u32, + #[prost(bool, tag = "8")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "12")] + pub hdpbogfdien: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8745)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbhogbccami { + #[prost(uint32, tag = "7")] + pub lgeoebdjdfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4375)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnpcjflpodd { + #[prost(bool, tag = "13")] + pub fojakdnohaf: bool, + #[prost(uint64, tag = "15")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(177)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohbiepbkhij { + #[prost(uint32, tag = "7")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhobnflmfbb {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmefnjaiodo { + #[prost(bool, tag = "15")] + pub cdjgkclkppj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(626)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fdceidhlgom { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Heffhmdipai { + #[prost(uint32, repeated, tag = "1")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khnihkaiecp { + #[prost(uint32, repeated, tag = "2")] + pub dhiofcabkhe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub kdknoocoebm: u32, + #[prost(uint32, tag = "8")] + pub icjfcaklnfg: u32, + #[prost(uint32, tag = "9")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "10")] + pub joijhcopeng: u32, + #[prost(uint32, repeated, tag = "13")] + pub fllbnagkfkp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfmholfmedp { + #[prost(uint32, tag = "1")] + pub necgmakacdi: u32, + #[prost(uint32, tag = "2")] + pub ombmigpcoaa: u32, + #[prost(uint32, repeated, tag = "3")] + pub jgakggcibge: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub hpjadbmcnkb: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "5")] + pub picddpncjmf: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26441)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dblckahanob { + #[prost(message, optional, tag = "10")] + pub pfogokingmb: ::core::option::Option, + #[prost(enumeration = "Ppllgnghlmb", tag = "1")] + pub reason: i32, + #[prost(bool, tag = "12")] + pub lgeoldehabg: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnkelomnhjd { + #[prost(uint32, tag = "9")] + pub jkpfiblbghh: u32, + #[prost(uint32, tag = "13")] + pub bghdjjooiik: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25094)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dndiljmhlim { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7100)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmhmmdfoimb { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2903)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghadbcgpcde { + #[prost(message, optional, tag = "2")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgifokanndk { + #[prost(message, repeated, tag = "7")] + pub cocolcgnccm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub pelpbfiemdk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub iiahcagpboo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(175)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijaeolmjejg { + #[prost(message, optional, tag = "2")] + pub fdhagoenhac: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23955)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbfkhemaeag { + #[prost(uint32, repeated, tag = "5")] + pub mjnnjkeilfm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26132)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dihnpgepgge { + #[prost(message, repeated, tag = "8")] + pub bcdecbeoklf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27733)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kknpoiedgdi { + #[prost(uint32, tag = "2")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28545)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Doehhhdemmc { + #[prost(uint32, tag = "4")] + pub jinjlbemjnc: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kochdlaofpc { + #[prost(message, optional, tag = "1")] + pub admfbdmolmf: ::core::option::Option, + #[prost(uint32, repeated, tag = "3")] + pub coppgcjjbem: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub apiajepbkak: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub negbondceej: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub llnppammaka: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub aiagdpedgki: ::core::option::Option, + #[prost(bool, tag = "11")] + pub dphdagagbii: bool, + #[prost(uint32, repeated, tag = "12")] + pub ngbpeiehcop: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4253)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjjccdhiike { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub cdmjgifefmd: u32, + #[prost(uint32, tag = "13")] + pub ejgkapalfjb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1594)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fplpegmbdpe { + #[prost(message, repeated, tag = "1")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3929)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneForceLockNotify { + #[prost(uint32, repeated, tag = "11")] + pub force_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23171)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Melikbggphd { + #[prost(bool, tag = "15")] + pub ankcbommojb: bool, + #[prost(uint32, tag = "7")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "1")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27726)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgifmbgnkag { + #[prost(oneof = "hgifmbgnkag::Icmnfpacfjf", tags = "4, 11, 12")] + pub icmnfpacfjf: ::core::option::Option, +} +/// Nested message and enum types in `HGIFMBGNKAG`. +pub mod hgifmbgnkag { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Icmnfpacfjf { + #[prost(message, tag = "4")] + AddWindBulletNotify(super::Opbcjbpbbcb), + #[prost(message, tag = "11")] + AreaNotify(super::Jkhafpfeoce), + #[prost(message, tag = "12")] + RefreshNotify(super::Gfhajkpfmdo), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfhajkpfmdo { + #[prost(uint32, tag = "6")] + pub hbepbaeocpj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opbcjbpbbcb { + #[prost(uint32, tag = "1")] + pub mnblecldhnn: u32, + #[prost(message, optional, tag = "7")] + pub nancojecgko: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub mmaklnhalkn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkhafpfeoce { + #[prost(bytes = "vec", tag = "3")] + pub hjjamclblad: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub fchfakepinp: u32, + #[prost(uint32, tag = "11")] + pub area_type: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27555)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcajoopjlim { + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6265)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngmfobegffe { + #[prost(uint64, tag = "11")] + pub gedmdocolfj: u64, + #[prost(uint32, tag = "2")] + pub gaplfmmgbfa: u32, + #[prost(enumeration = "Ialdlppfide", tag = "10")] + pub epcbaobgodi: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3150)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clkknoeanan {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dopecjnioeg { + #[prost(string, tag = "2")] + pub dcfhklamehj: ::prost::alloc::string::String, + #[prost(bool, tag = "5")] + pub nlnghndakhd: bool, + #[prost(float, tag = "10")] + pub cdjmjlahfgk: f32, + #[prost(float, tag = "12")] + pub effphdcldjb: f32, + #[prost(float, tag = "13")] + pub agidomnebcj: f32, + #[prost(uint32, tag = "15")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28139)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Heehjoefell { + #[prost(message, repeated, tag = "1")] + pub dohiocbemma: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub pnopncldgkh: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "7")] + pub iibaeddpdjd: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub fflgcbbliao: ::core::option::Option, + #[prost(message, repeated, tag = "10")] + pub mbmpjjfeiim: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub lpnkmdeakpc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdaadhnagcj { + #[prost(bool, tag = "3")] + pub lejlmjjdedc: bool, + #[prost(string, tag = "12")] + pub lgnfafmphkd: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3030)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onalakbofpl { + #[prost(enumeration = "Himmemhogfb", tag = "14")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20086)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njmnlogdoia { + #[prost(uint64, repeated, tag = "13")] + pub avatar_guid: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8126)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glbdfpchkcd { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbenliafbcp { + #[prost(message, repeated, tag = "5")] + pub ebldmcjpkja: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "11")] + pub dphdagagbii: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkmfjkcpipg { + #[prost(uint32, tag = "1")] + pub fabceoggkjk: u32, + #[prost(uint32, tag = "8")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "10")] + pub uid: u32, + #[prost(message, optional, tag = "11")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub ejnglcjnapn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bikidclpeop { + #[prost(uint32, repeated, tag = "1")] + pub gdaipfjdeff: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub ijlhnhojkkl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub emohjkimafd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25001)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Loadfnmlahe { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fbjodjmofbk { + #[prost(message, repeated, tag = "1")] + pub ilnagigifdj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub mmfhiifgkbb: u32, + #[prost(message, repeated, tag = "3")] + pub kdnomlkhaeg: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub llhnlhfibhk: bool, + #[prost(message, repeated, tag = "6")] + pub ohpfgcabfjg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub inmhhpijfhb: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub gjbaokjbfkj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub ooakfcehabe: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub ncfkjkijmkd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub block_id: u32, + #[prost(message, repeated, tag = "13")] + pub dnchgilkbfh: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub njjdmfmnlhn: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub gckknghdlpn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(911)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpnmodnpacm { + #[prost(string, tag = "10")] + pub mdldojhmcko: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23474)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlffgliopkf { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlabobklbck { + #[prost(uint32, tag = "1")] + pub ombmigpcoaa: u32, + #[prost(uint32, repeated, tag = "2")] + pub hpjadbmcnkb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub jgakggcibge: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub gidpaabdmfl: u32, + #[prost(uint32, tag = "5")] + pub eghpnedhaem: u32, + #[prost(uint32, tag = "6")] + pub bjjjdldclll: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29340)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knmlocmkacj { + #[prost(uint32, tag = "1")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "2")] + pub kdknoocoebm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6309)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmommgooppg { + #[prost(enumeration = "Iohpcjajppo", tag = "14")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "5")] + pub efniikefdpo: u32, + #[prost(uint32, tag = "3")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "15")] + pub dmcjbimfkci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhlbkbinian { + #[prost(uint32, tag = "3")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "5")] + pub lidgejjlfmc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4230)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obfkjoggeok {} +#[derive(proto_gen::CmdID)] +#[cmdid(7518)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agcfhomkfhn { + #[prost(message, repeated, tag = "12")] + pub info_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "134")] + pub knfokjbgbei: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26308)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnepljfoiha {} +#[derive(proto_gen::CmdID)] +#[cmdid(24236)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipiglkhohfk { + #[prost(bool, tag = "1")] + pub imhnjlnpgcj: bool, + #[prost(uint32, tag = "2")] + pub mhjeokngcdf: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub gapcklplnpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjhmjknbelh { + #[prost(uint32, tag = "1")] + pub mihmgcojgob: u32, + #[prost(uint32, tag = "3")] + pub pos: u32, + #[prost(uint32, repeated, tag = "7")] + pub gcbeeinchka: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub fbpgimlmdnj: u32, + #[prost(enumeration = "Eegmnipnkmj", tag = "13")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23575)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkgoebbmila { + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(message, repeated, tag = "13")] + pub dhcedicbjam: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aplcjhpdooa { + #[prost(uint32, tag = "1")] + pub afjclenhanc: u32, + #[prost(message, repeated, tag = "3")] + pub nphlhaeliam: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub dphdagagbii: bool, + #[prost(map = "uint32, message", tag = "6")] + pub hjjikniehdk: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "8")] + pub ikakikjliig: ::std::collections::HashMap, + #[prost(bool, tag = "11")] + pub ihoafkkloom: bool, + #[prost(uint32, tag = "12")] + pub iaahhnbgbah: u32, + #[prost(uint32, tag = "13")] + pub mmpocfbcdoi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23438)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Helheaejnlo { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "5")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, float", tag = "11")] + pub mlnpmgnlhmp: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9897)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajklhfiihdb { + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "5")] + pub pebgmemnknf: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(message, repeated, tag = "11")] + pub pbpakbcpjkj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9627)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njbljlccleb { + #[prost(message, optional, tag = "6")] + pub boajmooggij: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21049)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbjikhplacp { + #[prost(message, repeated, tag = "4")] + pub okilmhjjbpp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cachhpniabc { + #[prost(uint32, tag = "4")] + pub peblohahpmm: u32, + #[prost(message, repeated, tag = "14")] + pub weapon_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9202)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdmfhpigmko { + #[prost(uint32, tag = "10")] + pub afeikfcjneo: u32, + #[prost(uint32, tag = "4")] + pub dkiolkfdflp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27230)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egnincfoeok { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlfonaionco { + #[prost(message, repeated, tag = "14")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29346)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igngpljofbj { + #[prost(message, repeated, tag = "7")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub fiknlhojfkl: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9881)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibimehlbjem { + #[prost(uint32, repeated, tag = "2")] + pub iejfclmnfea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7784)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgbfnaadokh {} +#[derive(proto_gen::CmdID)] +#[cmdid(21319)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcnmbklfffd { + #[prost(uint64, tag = "9")] + pub avatar_guid: u64, + #[prost(uint32, tag = "12")] + pub bifofbnfpmo: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlldfoclanc { + #[prost(uint32, tag = "1")] + pub kaioccbnppa: u32, + #[prost(uint32, tag = "2")] + pub adoapmblfaa: u32, + #[prost(uint32, tag = "3")] + pub jddamhceape: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmlmhfcgdgl { + #[prost(uint32, tag = "1")] + pub pdpcieiolln: u32, + #[prost(uint32, tag = "8")] + pub pheddgpdkep: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pneoikpagam { + #[prost(uint32, tag = "11")] + pub ncnkmdbafeh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjmleooojlj { + #[prost(message, optional, tag = "3")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(enumeration = "Epnikabpigp", tag = "5")] + pub jpioceplhcm: i32, + #[prost(int32, tag = "7")] + pub foecapjdakj: i32, + #[prost(message, optional, tag = "10")] + pub bokhjookahc: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub gpbnffjbomn: ::core::option::Option, + #[prost(int64, tag = "15")] + pub ncnkmdbafeh: i64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1420)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcobgfhmhkn { + #[prost(uint32, tag = "14")] + pub fkhohkelkoe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22894)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egbbkgdcomf { + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27631)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppcfakhebjf { + #[prost(uint32, repeated, tag = "6")] + pub clgpppohdgd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29066)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Behafjlphja { + #[prost(message, optional, tag = "3")] + pub nlkgmjnajhg: ::core::option::Option, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27780)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ociicnfagpg { + #[prost(uint32, tag = "12")] + pub jchhllebmja: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22554)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgmpphhbpkb { + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8661)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dllnpogpoij { + #[prost(uint32, tag = "5")] + pub ogccdacjjig: u32, + #[prost(uint32, tag = "13")] + pub jinjlbemjnc: u32, + #[prost(enumeration = "Hnncclmhcla", tag = "15")] + pub bkidnkcmail: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1055)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emdnpadkohj { + #[prost(enumeration = "Himmemhogfb", tag = "6")] + pub mfmlakbiaed: i32, + #[prost(uint64, tag = "10")] + pub dcompdppdpo: u64, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(oneof = "emdnpadkohj::Gcmkmeijkhj", tags = "3")] + pub gcmkmeijkhj: ::core::option::Option, +} +/// Nested message and enum types in `EMDNPADKOHJ`. +pub mod emdnpadkohj { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcmkmeijkhj { + #[prost(message, tag = "3")] + MusicBriefInfo(super::Pcdlglmdhai), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aloiaoejmck { + #[prost(string, tag = "3")] + pub name: ::prost::alloc::string::String, + #[prost(int32, tag = "7")] + pub gnjcidhobia: i32, + #[prost(uint32, tag = "15")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22338)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjilkjbgobm { + #[prost(uint32, tag = "10")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ennabdgogof { + #[prost(uint32, tag = "4")] + pub fbidmkkflhe: u32, + #[prost(uint64, tag = "7")] + pub hodolkcoplg: u64, + #[prost(uint32, tag = "8")] + pub ilmfkefpege: u32, + #[prost(bool, tag = "11")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "13")] + pub mcmgodlfnjo: u32, + #[prost(message, repeated, tag = "14")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub jklmgmdfipk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgalcicmpok { + #[prost(uint32, tag = "3")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "7")] + pub dmnldppgokg: u32, + #[prost(message, repeated, tag = "9")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "15")] + pub amblldmipfp: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geookffkpok { + #[prost(uint32, repeated, tag = "4")] + pub oeihebpjcjc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "13")] + pub enmmkpchpnd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub jmlhmojmmpm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2097)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Noddcmimoko { + #[prost(enumeration = "Oeaoccjeope", tag = "9")] + pub ddiaamkbfda: i32, + #[prost(bool, tag = "4")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22801)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldebbbcjejb { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, optional, tag = "6")] + pub fflgcbbliao: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub gldnnfocdem: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5058)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Impoihelnbd { + #[prost(message, optional, tag = "12")] + pub jieakemolai: ::core::option::Option, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgmkmgmicfj { + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "7")] + pub endimmnlaad: u32, + #[prost(uint32, tag = "14")] + pub pimkfeicmek: u32, + #[prost(uint32, tag = "15")] + pub hgljfadloeb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1757)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Likapgpdgjp { + #[prost(uint32, tag = "10")] + pub mbcalmmjafa: u32, + #[prost(uint32, tag = "12")] + pub pjjlmhgjkdg: u32, + #[prost(uint32, tag = "13")] + pub ohgaghpnjfa: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odbehiednfd { + #[prost(uint32, tag = "2")] + pub ljfafdhikjd: u32, + #[prost(bool, tag = "5")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7551)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egbjbgjjdfe { + #[prost(message, repeated, tag = "8")] + pub kgimmencgmj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub fpiplmfcdod: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub mhhcoedmpdp: u32, + #[prost(uint32, tag = "2")] + pub fjhhikoihka: u32, + #[prost(bool, tag = "10")] + pub bmneoaaabje: bool, + #[prost(bool, tag = "14")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "15")] + pub game_time: u32, + #[prost(uint32, tag = "6")] + pub akgidlcecpk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2799)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Naegmjplfgk { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, optional, tag = "3")] + pub position: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(uint64, tag = "9")] + pub kfnbcklkeib: u64, + #[prost(int32, tag = "11")] + pub pbhchamjkhb: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbbpjpobalj { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "5")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "7")] + pub dekhbeooien: u32, + #[prost(bool, tag = "8")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dknkkmemnec { + #[prost(uint32, tag = "1")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "2")] + pub param: u32, + #[prost(uint32, tag = "3")] + pub knfgkmecadn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nophpgmjakd { + #[prost(uint32, tag = "1")] + pub lanbakkbbgh: u32, + #[prost(uint32, tag = "3")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "8")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "13")] + pub nmchkcijhhg: u32, + #[prost(message, repeated, tag = "15")] + pub fohhpjbefjb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21662)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnjlmaiammm { + #[prost(message, repeated, tag = "7")] + pub nmgkpdjbbbp: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26199)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpphjmploii { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1940)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhbladhonlo { + #[prost(bool, tag = "8")] + pub ljmfgajfian: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8852)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbinomjighp { + #[prost(uint64, tag = "3")] + pub cur_avatar_guid: u64, + #[prost(uint64, repeated, tag = "12")] + pub avatar_team_guid_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgifoneoahc { + #[prost(message, repeated, tag = "2")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bghkjfdggbe { + #[prost(bool, tag = "1")] + pub ncegkbanobp: bool, + #[prost(float, tag = "3")] + pub adcniaaidpc: f32, + #[prost(float, tag = "9")] + pub okfdgficjcn: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8586)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aknjimdfafn { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28884)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oppdhinlnkf { + #[prost(message, optional, tag = "1")] + pub ihgidghgknh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22979)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaffamkmpii { + #[prost(uint32, tag = "10")] + pub onabdgfcpih: u32, + #[prost(message, optional, tag = "13")] + pub nmklkgccmie: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhfdmampgog { + #[prost(fixed32, tag = "7")] + pub end_time: u32, + #[prost(fixed32, tag = "9")] + pub lgbnfifcpjf: u32, + #[prost(uint32, repeated, tag = "10")] + pub fikgdofabee: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eaahlpkjjmc { + #[prost(uint32, tag = "2")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "9")] + pub hojjlblkohj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22329)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfiikcfpdmb {} +#[derive(proto_gen::CmdID)] +#[cmdid(9408)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejmlhiolamo { + #[prost(uint32, tag = "1")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2766)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edhedmdpoan { + #[prost(uint32, tag = "1")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29185)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcheebcojce {} +#[derive(proto_gen::CmdID)] +#[cmdid(20773)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kiabpmcjhdi { + #[prost(uint32, tag = "12")] + pub gdjklhgohif: u32, + #[prost(uint32, tag = "11")] + pub hajbdmhdgig: u32, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21575)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkjdbfkcgak { + #[prost(uint32, tag = "2")] + pub pgmifndnkee: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27151)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akjhagaamnh { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26009)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifhbhdhiiih { + #[prost(message, repeated, tag = "2")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "5")] + pub bknplfikkfg: u32, + #[prost(bool, tag = "7")] + pub ankcbommojb: bool, + #[prost(uint32, repeated, tag = "8")] + pub cdidjfpemmi: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub fpedhedekpe: u32, + #[prost(bool, tag = "14")] + pub mjaoipldjmc: bool, + #[prost(uint32, tag = "15")] + pub pdlmkflekdl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5931)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhhobcibnpm { + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(135)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfbjmlgogoj { + #[prost(message, repeated, tag = "14")] + pub eloilboekpk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlghkgkchjp { + #[prost(float, tag = "1")] + pub gnjcidhobia: f32, + #[prost(message, optional, tag = "5")] + pub key: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgjmoplpbeh { + #[prost(float, tag = "8")] + pub pmlkmklehkk: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgjollohfno { + #[prost(uint32, tag = "12")] + pub djmaimmmmfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7946)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knchfggbamh { + #[prost(message, optional, tag = "1")] + pub admfbdmolmf: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub aiagdpedgki: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20339)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieobffhmong { + #[prost(bool, tag = "1")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "2")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "9")] + pub ibeggcdmjli: u32, + #[prost(uint32, tag = "10")] + pub hmelbfcbinf: u32, + #[prost(uint32, tag = "11")] + pub omgchbachci: u32, + #[prost(uint32, tag = "14")] + pub ldfehofhdfc: u32, + #[prost(bool, tag = "15")] + pub ocibddefjmb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22968)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pifommneajj { + #[prost(uint32, tag = "9")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfphpfofnnm { + #[prost(uint32, tag = "2")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhbhijlelij { + #[prost(message, optional, tag = "4")] + pub dejoimafmck: ::core::option::Option, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Niabidedmfl { + #[prost(uint32, tag = "3")] + pub skill_id: u32, + #[prost(uint32, tag = "5")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27400)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdlckmlhmhj { + #[prost(message, optional, tag = "7")] + pub fpojglaneco: ::core::option::Option, + #[prost(message, repeated, tag = "5")] + pub ceihipahgnh: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "6")] + pub guid: u64, + #[prost(bool, tag = "8")] + pub oldfklfoanf: bool, + #[prost(bool, tag = "14")] + pub idiklageldn: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2937)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddomimcoone { + #[prost(uint32, tag = "5")] + pub lbclghbmdaf: u32, + #[prost(bool, tag = "9")] + pub ghjmcffdfdd: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fomenikamhi { + #[prost(uint32, tag = "1")] + pub ablccnkmenf: u32, + #[prost(float, tag = "6")] + pub odmapjkhdcp: f32, + #[prost(float, tag = "8")] + pub ngnkpbemfob: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9759)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjojhibahoi { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhneedmelmk { + #[prost(bool, tag = "3")] + pub eialjbaengj: bool, + #[prost(bool, tag = "4")] + pub mdgjjofokap: bool, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "10")] + pub gpaeljhnaek: u32, + #[prost(uint64, tag = "11")] + pub behhgcfpklp: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23717)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jojefoeikmi {} +#[derive(proto_gen::CmdID)] +#[cmdid(29282)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Meobgckljkc {} +#[derive(proto_gen::CmdID)] +#[cmdid(3724)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpddaklokjh { + #[prost(uint32, tag = "6")] + pub cghhpcmdemi: u32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8998)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmamenjbhlk { + #[prost(uint32, tag = "15")] + pub lanbakkbbgh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1150)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhpdofmkaej { + #[prost(uint32, tag = "10")] + pub cmafekgpacg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olljomaddck { + #[prost(bool, tag = "6")] + pub phpemoenbim: bool, + #[prost(message, repeated, tag = "15")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjnoajhjkoj { + #[prost(uint32, tag = "1")] + pub clocegaahjn: u32, + #[prost(bool, tag = "5")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "7")] + pub lekfejhkppe: u32, + #[prost(uint32, tag = "13")] + pub kmaehpagkfk: u32, + #[prost(enumeration = "Paibiheifka", tag = "14")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27471)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joofoaagopb { + #[prost(message, optional, tag = "8")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub jinjlbemjnc: u32, + #[prost(uint32, tag = "2")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22510)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khjkcjdeaho { + #[prost(uint32, tag = "1")] + pub peblohahpmm: u32, + #[prost(uint32, tag = "3")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "5")] + pub hklkmbmgake: u32, + #[prost(uint32, tag = "6")] + pub avatar_id: u32, + #[prost(bool, tag = "9")] + pub elppgecieaf: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "13")] + pub hjoachmoekb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20446)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecfimaienal { + #[prost(uint32, repeated, tag = "6")] + pub bdeombceoea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24956)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flfbembakjb { + #[prost(uint64, repeated, tag = "13")] + pub dlkmfcjekal: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "12")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1357)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgokocilopa { + #[prost(float, tag = "1")] + pub eemanlfmmdp: f32, + #[prost(enumeration = "Llmdbkhcleb", tag = "5")] + pub dhnkaedgpml: i32, + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(uint32, tag = "14")] + pub aaaohhgbhab: u32, + #[prost(float, tag = "15")] + pub gnjcidhobia: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25393)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfiakfojjhf { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "12")] + pub idlacekofkp: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpbeaccgdbj { + #[prost(uint32, tag = "4")] + pub iebldpnalkb: u32, + #[prost(uint32, tag = "15")] + pub pkkbcnacmnd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25173)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aonlbmcmihh { + #[prost(uint32, repeated, tag = "12")] + pub hnpbppdijpp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpgkmhknhdk { + #[prost(map = "uint32, message", tag = "2")] + pub amaemdjockj: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21742)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hndahamkfdk { + #[prost(uint32, tag = "3")] + pub dbkoiphedke: u32, + #[prost(uint32, tag = "9")] + pub group_id: u32, + #[prost(uint32, tag = "13")] + pub lkigjmjnmbj: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub lgbmbjcjmka: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfbejhagodb { + #[prost(uint32, tag = "3")] + pub skill_id: u32, + #[prost(message, repeated, tag = "4")] + pub eojfococbcj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28807)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oejjpjoileo { + #[prost(bool, tag = "14")] + pub ffahbhonnnd: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcbmbgacjph { + #[prost(string, tag = "8")] + pub name: ::prost::alloc::string::String, + #[prost(bool, tag = "9")] + pub olhcoklbchp: bool, + #[prost(uint32, repeated, tag = "10")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub hoepcmhjbhe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20192)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inomjjlpeob { + #[prost(message, repeated, tag = "7")] + pub cigkldhkmfa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9243)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmiecklkfno { + #[prost(message, optional, tag = "10")] + pub glilgfhhhhm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8531)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlkedimhlck { + #[prost(uint32, tag = "3")] + pub ijffkcgiaoj: u32, + #[prost(bool, tag = "12")] + pub dggckmikbmo: bool, + #[prost(bool, tag = "13")] + pub ankcbommojb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1143)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fekikoeidnc { + #[prost(uint64, tag = "8")] + pub dcompdppdpo: u64, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "14")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7432)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oecaajilded { + #[prost(message, optional, tag = "1")] + pub mibgejfdeki: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djjegldmnag { + #[prost(uint32, tag = "1")] + pub ifpcihenjnl: u32, + #[prost(bool, tag = "6")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "9")] + pub hhpibdggljf: u32, + #[prost(uint32, tag = "12")] + pub ghkeojdcmnp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24829)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chgjnaehhef { + #[prost(uint32, repeated, tag = "15")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3561)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hclheginmho { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "11")] + pub caknfaoiikk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlgjjaoijmp { + #[prost(message, optional, tag = "11")] + pub bnejocdiffh: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub pfceefmijeh: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub fmnnhdmjcfo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aloijpmffol { + #[prost(uint32, tag = "3")] + pub ncnkmdbafeh: u32, + #[prost(message, repeated, tag = "12")] + pub fhmfkcicfkd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(756)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpomphelafj { + #[prost(uint32, tag = "3")] + pub hfjbndpdlbe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22495)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmfgdmdedbc { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjeglidfjne {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgfjapchgnl { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "4")] + pub pmpobfdjgmg: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "6")] + pub mopafocgakm: u32, + #[prost(bool, tag = "11")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "13")] + pub gpaeljhnaek: u32, + #[prost(uint32, tag = "14")] + pub ondajkggmah: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22682)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgcmdldlpah { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub cipplpaegkn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iheknmlmonc { + #[prost(message, repeated, tag = "1")] + pub gkbjeekccgm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub pbkeaocbpmn: u32, + #[prost(message, repeated, tag = "3")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "4")] + pub cmnkkdbhijg: ::core::option::Option, + #[prost(uint32, repeated, tag = "5")] + pub ggbmhjflahd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub ooflahmeleo: u32, + #[prost(message, repeated, tag = "7")] + pub ncfkjkijmkd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub oegnopodlkj: u32, + #[prost(enumeration = "Hkkcdiccimi", tag = "9")] + pub nkiolhkgjco: i32, + #[prost(uint32, tag = "10")] + pub fbpgimlmdnj: u32, + #[prost(message, optional, tag = "11")] + pub figfpencngd: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub kafapfjllgp: u32, + #[prost(uint32, tag = "14")] + pub jpdlmmgfdec: u32, + #[prost(message, repeated, tag = "15")] + pub joinmkjpbna: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "823")] + pub ammljpgpibo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1056")] + pub ngfannnbmac: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "1077")] + pub bekiakdceen: ::std::collections::HashMap, + #[prost(message, repeated, tag = "1294")] + pub bgbjekelijl: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1404")] + pub dcmhhgoipnh: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1631")] + pub nkogclndhhi: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1834")] + pub behelimipnp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "1901")] + pub abjmkdogamk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6286)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjbonploeag { + #[prost(uint32, tag = "5")] + pub pjjlmhgjkdg: u32, + #[prost(uint32, tag = "6")] + pub kajcndjlkfi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27896)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbajdegfkfd { + #[prost(uint32, tag = "6")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obpabmgdahj { + #[prost(message, optional, tag = "1")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub jpioceplhcm: u32, + #[prost(uint32, tag = "12")] + pub config_id: u32, + #[prost(uint32, tag = "14")] + pub group_id: u32, + #[prost(oneof = "obpabmgdahj::Baokdjelelh", tags = "747, 943, 1155, 1216")] + pub baokdjelelh: ::core::option::Option, +} +/// Nested message and enum types in `OBPABMGDAHJ`. +pub mod obpabmgdahj { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Baokdjelelh { + #[prost(message, tag = "747")] + CylinderSize(super::Heokefpjikf), + #[prost(message, tag = "943")] + PolygonSize(super::Hkinnehlnac), + #[prost(float, tag = "1155")] + SphereRadius(f32), + #[prost(message, tag = "1216")] + CubicSize(super::Vector), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(20663)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfddngnmbae {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okbcfgfpbkm { + #[prost(uint32, tag = "1")] + pub bkoecphphej: u32, + #[prost(uint32, tag = "2")] + pub dknmbapfjkb: u32, + #[prost(uint32, tag = "3")] + pub ankfglccklm: u32, + #[prost(uint32, tag = "4")] + pub ofmnimmopgd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20583)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dicdcbkpbol { + #[prost(uint32, tag = "9")] + pub dknkfkdabla: u32, + #[prost(uint32, tag = "6")] + pub kejahifpbbb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpkhmchidin { + #[prost(uint32, tag = "7")] + pub pbkeaocbpmn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2131)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eebhegfhmml {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfbdjlogkpc { + #[prost(uint32, tag = "1")] + pub npc_id: u32, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21705)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkcdnkdcljj { + #[prost(uint32, tag = "2")] + pub ncffdckbeli: u32, + #[prost(bool, tag = "7")] + pub hnlmmobiobe: bool, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(bool, tag = "9")] + pub jdaefkhfkka: bool, + #[prost(uint32, tag = "12")] + pub ameoigghhdc: u32, + #[prost(message, repeated, tag = "14")] + pub gbddcckiafk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmhchkndpof { + #[prost(uint32, tag = "2")] + pub fbpgimlmdnj: u32, + #[prost(uint32, tag = "13")] + pub epkjfpiiigp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bedilpdclim { + #[prost(uint32, tag = "14")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1671)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarTeamUpdateNotify { + #[prost(uint64, repeated, tag = "5")] + pub temp_avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "10")] + pub avatar_team_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6985)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldbfndjebli { + #[prost(uint32, tag = "1")] + pub parent_quest_id: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, optional, tag = "4")] + pub pfogokingmb: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub kenikecfflm: u32, + #[prost(bool, tag = "8")] + pub djoafmpojah: bool, + #[prost(uint32, tag = "13")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdminfonnjg { + #[prost(uint32, tag = "6")] + pub eepfjadodpa: u32, + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, + #[prost(message, repeated, tag = "13")] + pub eejljkgmgek: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub dbppmchlbjg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2015)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlajcmdfapn { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20419)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odhfnnillha { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24053)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmnibnfmfab { + #[prost(message, optional, tag = "5")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7232)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gokpmkkjkgn { + #[prost(uint32, tag = "2")] + pub target_uid: u32, + #[prost(bool, tag = "4")] + pub midfpdcbphk: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiominajabo { + #[prost(uint32, tag = "12")] + pub draft_id: u32, + #[prost(bool, tag = "4")] + pub bgaoacgaldg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27517)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlfegoogdaj { + #[prost(message, repeated, tag = "6")] + pub lcfpdkicjph: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26006)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfnkiejfmdh { + #[prost(uint32, tag = "4")] + pub jlhfgabkeoi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27741)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bemeaglgoja { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27946)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npdpcmgkedo { + #[prost(message, repeated, tag = "5")] + pub olpnnlgabbg: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, repeated, tag = "11")] + pub mlbpenmicli: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub jfpjmbolngm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25752)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hodgndhaefp { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20863)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejljdnjaopj { + #[prost(bytes = "vec", tag = "5")] + pub oincfcjknha: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24068)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnhkfpooncj { + #[prost(uint64, repeated, tag = "1")] + pub avatar_team_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "10")] + pub cur_avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjfddhegeeo { + #[prost(map = "uint32, uint32", tag = "3")] + pub bijhlibinod: ::std::collections::HashMap, + #[prost(message, optional, tag = "4")] + pub obljpapeamc: ::core::option::Option, + #[prost(map = "uint32, uint32", tag = "5")] + pub lnmbfedflkc: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "6")] + pub hipkgdhphla: ::std::collections::HashMap, + #[prost(uint32, tag = "7")] + pub ajfkkocigha: u32, + #[prost(bool, tag = "8")] + pub aadjdkifenl: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2743)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bidjkllllae { + #[prost(uint32, tag = "8")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22260)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cocbbjgaemb { + #[prost(message, repeated, tag = "15")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "4")] + pub kkagfcfmhmm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub gadget_id: u32, + #[prost(enumeration = "Hhnoenmdggg", tag = "9")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "14")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9148)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnjlkinihci { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6476)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmllnohhedl { + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(bool, tag = "11")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjbdpmneipc { + #[prost(uint32, tag = "5")] + pub count: u32, + #[prost(uint32, tag = "7")] + pub hbemijmkbmh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24063)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icnidlkdjhb {} +#[derive(proto_gen::CmdID)] +#[cmdid(22752)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edkconenpge {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldcdehpemkp { + #[prost(uint32, tag = "4")] + pub doebcoaonhk: u32, + #[prost(uint32, tag = "5")] + pub dlpjaaapkkl: u32, + #[prost(uint32, tag = "6")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(uint32, tag = "10")] + pub nikbfddehdf: u32, + #[prost(uint32, tag = "11")] + pub cnkddkikglg: u32, + #[prost(uint32, tag = "13")] + pub bkgngmdjnhp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiedeofbgdj { + #[prost(message, optional, tag = "2")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub block_id: u32, + #[prost(uint32, tag = "9")] + pub guid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfggicfddfj { + #[prost(bool, tag = "3")] + pub hdcagpjlidi: bool, + #[prost(bool, tag = "12")] + pub jhijpailmjg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22830)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijbeimlnngl { + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22718)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ianlhndlbag { + #[prost(uint32, repeated, tag = "11")] + pub bdeombceoea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22112)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndpjpafcbbn {} +#[derive(proto_gen::CmdID)] +#[cmdid(9504)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecobjjfonaf { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "2")] + pub hbnafkomajo: bool, + #[prost(uint32, tag = "13")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmcibogjcbb { + #[prost(uint32, tag = "4")] + pub bgflnmgcanj: u32, + #[prost(uint32, tag = "8")] + pub entity_id: u32, + #[prost(uint32, tag = "15")] + pub ijilgbbpghe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20929)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpjkegmpodm { + #[prost(uint32, tag = "5")] + pub kdfgdjcfhcf: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub ilieopgmdgo: u32, + #[prost(uint32, tag = "14")] + pub aiiggmglbmg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2530)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhgkcggncfb {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nppphkhnboo { + #[prost(bool, tag = "8")] + pub hblihlkjeda: bool, + #[prost(uint32, tag = "12")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jccfiojlogg { + #[prost(uint32, repeated, tag = "6")] + pub lgbipehfabc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub fbpgimlmdnj: u32, + #[prost(enumeration = "Cmdeepdjoga", repeated, tag = "10")] + pub ebhcablnklp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23521)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpemclnmoek { + #[prost(message, optional, tag = "7")] + pub ajfefdidfel: ::core::option::Option, + #[prost(enumeration = "Igohjibcdfa", tag = "10")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hodjcbpphji { + #[prost(uint64, tag = "6")] + pub mojeffjpnbn: u64, + #[prost(uint32, tag = "10")] + pub cmdnkflfhia: u32, + #[prost(uint64, tag = "11")] + pub eplfnnhempi: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhfplbmemed { + #[prost(uint32, tag = "4")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "11")] + pub kdplcbjgbaf: u32, + #[prost(uint32, tag = "12")] + pub ljejebelkmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6912)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aplogghjbod { + #[prost(uint32, tag = "11")] + pub group_id: u32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23550)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcjjcmakooc { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmljkimlcjp { + #[prost(uint32, tag = "3")] + pub apply_entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfcnchpphka { + #[prost(int32, tag = "1")] + pub x: i32, + #[prost(int32, tag = "2")] + pub y: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1309)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldfppfobnfp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdlknjjkdmn { + #[prost(float, tag = "2")] + pub ddlienjbakb: f32, + #[prost(int32, tag = "4")] + pub blhlceeohhd: i32, + #[prost(float, tag = "6")] + pub gghmahbomke: f32, + #[prost(message, optional, tag = "9")] + pub emignngobod: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub edoeeceachh: ::core::option::Option, + #[prost(enumeration = "Ohgcdmmlnok", tag = "12")] + pub bcdelafdiog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7132)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnhimkmmiih { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(float, tag = "2")] + pub llgkenmienl: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1087)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nohmgplmbfk { + #[prost(uint32, tag = "7")] + pub olikaoabpjm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21247)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ociiodgbjdp { + #[prost(uint32, tag = "14")] + pub njekbpkeloh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppcnlmmomoe { + #[prost(uint32, tag = "2")] + pub ejpgldgfkad: u32, + #[prost(uint32, tag = "3")] + pub nlomoeocpjf: u32, + #[prost(bool, tag = "4")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "5")] + pub dbfpjfmkmgh: u32, + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "7")] + pub hlncoconmgf: u32, + #[prost(uint32, repeated, tag = "8")] + pub dmfdeibbiem: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub hdbhpbhokcb: u32, + #[prost(uint32, tag = "10")] + pub lmehamojall: u32, + #[prost(uint32, tag = "11")] + pub jpoheacajla: u32, + #[prost(uint32, repeated, tag = "12")] + pub hpeeojjfmip: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub jofbeiaclof: u32, + #[prost(uint32, repeated, tag = "14")] + pub dbdmlpaoomm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9416)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Offallfncfi { + #[prost(message, repeated, tag = "7")] + pub mfakdobmfim: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Innefldgbap { + #[prost(float, tag = "1")] + pub cpimbckmlfc: f32, + #[prost(uint32, tag = "2")] + pub bngpnmobohj: u32, + #[prost(uint32, tag = "6")] + pub apafipofloj: u32, + #[prost(uint32, tag = "8")] + pub capaepnmgpb: u32, + #[prost(bool, tag = "11")] + pub apbhdllancp: bool, + #[prost(uint32, tag = "15")] + pub loniebhkkgp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20056)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffjdgmagcco { + #[prost(uint32, tag = "2")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21472)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpbjhhjiofm { + #[prost(uint32, tag = "2")] + pub fchfakepinp: u32, + #[prost(uint32, tag = "3")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlggmgomego { + #[prost(uint32, tag = "3")] + pub peblohahpmm: u32, + #[prost(message, repeated, tag = "13")] + pub mnfiibjlkll: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdlbokjkjed { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, repeated, tag = "2")] + pub ogjodgflein: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub flihobkofld: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7039)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecbhfkpgbhm { + #[prost(enumeration = "Dbkkepahcpe", tag = "3")] + pub fbbbjnhiplf: i32, + #[prost(uint32, tag = "7")] + pub egbmifdjdih: u32, + #[prost(uint32, tag = "13")] + pub nikbfddehdf: u32, + #[prost(uint32, tag = "15")] + pub geihmkhcije: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Noclalbhlgc { + #[prost(uint32, tag = "3")] + pub ecmcilnnnkl: u32, + #[prost(uint32, tag = "7")] + pub ocnjnmhllhi: u32, + #[prost(uint32, tag = "10")] + pub iknfnnfkagf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25038)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eokjcmfjfme { + #[prost(uint32, tag = "12")] + pub costume_id: u32, + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ceinfknnhbl { + #[prost(uint32, tag = "4")] + pub uid: u32, + #[prost(message, optional, tag = "9")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poalogaejaf { + #[prost(uint64, tag = "8")] + pub avatar_guid: u64, + #[prost(bool, tag = "14")] + pub dohhenfngpe: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1608)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmkeffddlih { + #[prost(message, repeated, tag = "3")] + pub ojocipgaldi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkinnehlnac { + #[prost(message, repeated, tag = "3")] + pub gooonmahlnl: ::prost::alloc::vec::Vec, + #[prost(float, tag = "12")] + pub dkkgfphnknb: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egeekpapbgj { + #[prost(uint32, tag = "3")] + pub hgaoafpjogo: u32, + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(uint32, tag = "7")] + pub cammfnmahek: u32, + #[prost(message, optional, tag = "8")] + pub position: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub agienjjkpbe: u32, + #[prost(uint32, tag = "11")] + pub kfmiioohoah: u32, + #[prost(uint32, tag = "14")] + pub scene_id: u32, + #[prost(uint32, tag = "15")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25727)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghfilmiibap { + #[prost(uint32, tag = "11")] + pub agloejebcdf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijncodaicnj { + #[prost(uint32, tag = "2")] + pub key_id: u32, + #[prost(bool, tag = "8")] + pub icjdfmeaofb: bool, + #[prost(bool, tag = "9")] + pub eialjbaengj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(101)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhjlgodgljo { + #[prost(bool, tag = "11")] + pub mbfllhnligd: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fchnnkfbmlc { + #[prost(uint32, tag = "10")] + pub scene_id: u32, + #[prost(message, optional, tag = "15")] + pub glbcidcfhep: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhejeckncld { + #[prost(message, repeated, tag = "6")] + pub bgkfngfmcmm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22482)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nclmfghbhil {} +#[derive(proto_gen::CmdID)] +#[cmdid(22809)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epkambgncko { + #[prost(uint32, tag = "12")] + pub hkeeinbhfhm: u32, + #[prost(uint32, tag = "9")] + pub cjcjonhpiio: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mehpdegadgm { + #[prost(uint32, tag = "1")] + pub ffmphbaokjc: u32, + #[prost(uint32, tag = "2")] + pub cbdgfeomfig: u32, + #[prost(uint32, tag = "5")] + pub pbpehhpghpo: u32, + #[prost(uint32, tag = "6")] + pub dfdajmdfked: u32, + #[prost(uint32, tag = "7")] + pub skill_id: u32, + #[prost(message, repeated, tag = "8")] + pub mncimgkbckh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub eclpjkhfdne: u32, + #[prost(uint32, tag = "11")] + pub ehejdjoeind: u32, + #[prost(uint32, tag = "12")] + pub jnlfhoaaoop: u32, + #[prost(uint32, tag = "13")] + pub njmeoanobdd: u32, + #[prost(uint32, tag = "15")] + pub mjpdbgbpbel: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3714)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjabkbgnilj { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "12")] + pub emlilmhjhog: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Manbbaokdpc { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub ppbamnfheje: u32, + #[prost(bool, tag = "15")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22622)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpfmjhioblh { + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "9")] + pub player_uid: u32, + #[prost(uint32, tag = "12")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "15")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9017)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhhiapolpjj { + #[prost(uint32, tag = "2")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9510)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hohniaidcmh { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub lpnkmdeakpc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djjhecaogbo { + #[prost(float, tag = "3")] + pub cogjlpkokmn: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23665)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnebbcfcifj { + #[prost(uint32, tag = "10")] + pub lpjakjllemi: u32, + #[prost(uint32, tag = "9")] + pub elnoaapjmcf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(131)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hogbegldnnk { + #[prost(uint32, tag = "14")] + pub jddamhceape: u32, + #[prost(uint32, tag = "11")] + pub kjlbepdnldm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7007)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijfknlighla { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1372)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbljogjmoeh { + #[prost(message, optional, tag = "6")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8042)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnfhdgdcgpn { + #[prost(message, repeated, tag = "9")] + pub bdcphhcefhi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub ljdmbidhpji: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpknppfipnd { + #[prost(bool, tag = "9")] + pub lbdfakfhpmi: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6397)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olgbkhklhjb { + #[prost(uint32, tag = "1")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8917)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gokojifkdcl { + #[prost(message, repeated, tag = "9")] + pub dacalpkibbi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmcoefebang { + #[prost(uint32, tag = "1")] + pub cpjofigjdgp: u32, + #[prost(uint32, tag = "3")] + pub uid: u32, + #[prost(bool, tag = "11")] + pub ibeikeigmko: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22470)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbcpoiapefb { + #[prost(bool, tag = "9")] + pub jofhnoemekc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8879)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aahlabcbaig { + #[prost(uint32, tag = "1")] + pub deifmdkjahf: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjimahmopcg { + #[prost(map = "uint32, uint32", tag = "8")] + pub kdameaodohp: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dofemmfnnng { + #[prost(uint32, tag = "1")] + pub guid: u32, + #[prost(uint32, repeated, tag = "2")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub nokebcooncg: bool, + #[prost(uint32, repeated, tag = "4")] + pub nklnidikhfp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub oeaalpjbkae: u32, + #[prost(uint32, tag = "6")] + pub level: u32, + #[prost(uint32, tag = "7")] + pub kgffekdhkga: u32, + #[prost(uint32, tag = "8")] + pub onpfimkkjdf: u32, + #[prost(uint32, repeated, tag = "9")] + pub amhdkmcjplb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub nfdlgdbcnhe: u32, + #[prost(bool, tag = "11")] + pub deejedoiaid: bool, + #[prost(bool, tag = "12")] + pub idefckpaoaf: bool, + #[prost(uint32, tag = "13")] + pub ckoccfdgcol: u32, + #[prost(message, repeated, tag = "15")] + pub ddbdokonakg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21907)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjafjpllhfk { + #[prost(uint32, tag = "13")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "12")] + pub group_id: u32, + #[prost(uint32, tag = "5")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1733)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oinpcplohcp { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "4")] + pub eloilboekpk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5424)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpgmdchapbk { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(map = "uint32, message", tag = "10")] + pub prop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdkbolglafb { + #[prost(uint32, tag = "12")] + pub peajinifghm: u32, + #[prost(uint32, tag = "14")] + pub jhidonemjjc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Locachpgjph { + #[prost(uint32, tag = "2")] + pub hiplmeoicbg: u32, + #[prost(uint32, repeated, tag = "6")] + pub aipamkaahej: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Fblkbbkfenl", tag = "9")] + pub bdngjlaacgl: i32, + #[prost(uint32, tag = "11")] + pub oboopjlpdni: u32, + #[prost(bool, tag = "13")] + pub galmkiodanm: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljocpdmincm { + #[prost(message, repeated, tag = "7")] + pub ehgnabkaach: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub dnflbgnadnk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7918)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipfhidfejaa { + #[prost(bool, tag = "15")] + pub biogccnggcf: bool, + #[prost(oneof = "ipfhidfejaa::Kldjmobgbba", tags = "8, 4, 6")] + pub kldjmobgbba: ::core::option::Option, +} +/// Nested message and enum types in `IPFHIDFEJAA`. +pub mod ipfhidfejaa { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Kldjmobgbba { + #[prost(string, tag = "8")] + OnlineId(::prost::alloc::string::String), + #[prost(string, tag = "4")] + PsnId(::prost::alloc::string::String), + #[prost(uint32, tag = "6")] + TargetUid(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(29050)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khmobkbnldp { + #[prost(uint32, tag = "6")] + pub param: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(string, tag = "11")] + pub mdldojhmcko: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5886)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pihmklgekcd { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "6")] + pub fmihgnhgndm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27436)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Conekbncijm { + #[prost(uint32, tag = "8")] + pub kihigcbbali: u32, + #[prost(string, tag = "10")] + pub ieielbdkhbf: ::prost::alloc::string::String, + #[prost(string, tag = "13")] + pub jdlciiakgji: ::prost::alloc::string::String, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkalmmgnkoo { + #[prost(uint32, tag = "1")] + pub key: u32, + #[prost(uint32, tag = "2")] + pub gnjcidhobia: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20565)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Enckadkpnii { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "11")] + pub mfmlakbiaed: i32, + #[prost(oneof = "enckadkpnii::Jenbhgoiekm", tags = "8")] + pub jenbhgoiekm: ::core::option::Option, +} +/// Nested message and enum types in `ENCKADKPNII`. +pub mod enckadkpnii { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Jenbhgoiekm { + #[prost(message, tag = "8")] + MusicBriefInfo(super::Oolbipgmpjb), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bajhgoimcce { + #[prost(uint32, tag = "6")] + pub pimcmamenci: u32, + #[prost(enumeration = "Kdioojinlkg", tag = "7")] + pub hgkoegebhfo: i32, + #[prost(uint32, tag = "10")] + pub belhflpnegd: u32, + #[prost(uint32, tag = "11")] + pub egbmifdjdih: u32, + #[prost(uint32, tag = "12")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "15")] + pub cnebhlcgnij: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25601)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpnjpkaomaa { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1088)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfbnkemmnab { + #[prost(uint32, tag = "6")] + pub gdjklhgohif: u32, + #[prost(uint32, tag = "11")] + pub linlhilphma: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9676)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iampfpgjmib { + #[prost(message, optional, tag = "3")] + pub avatar_info: ::core::option::Option, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "7")] + pub cepimedmkpi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6513)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfkomamploh { + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21685)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojkneindhpa { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28538)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldlcbknglkf { + #[prost(uint32, tag = "4")] + pub player_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29914)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iijdhajkjmk { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9023)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngocbcebbno { + #[prost(bool, tag = "7")] + pub nkggdpgpghk: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27603)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgmlodcmbmj { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21951)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lamihbfkdom { + #[prost(bool, tag = "1")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "5")] + pub cenhkjdffda: u32, + #[prost(uint32, tag = "13")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpblfcnddah { + #[prost(bool, tag = "2")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "4")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "5")] + pub mppeiehoclp: u32, + #[prost(uint32, tag = "10")] + pub pnkbdklljbp: u32, + #[prost(uint32, tag = "11")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20208)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adeglmglldb { + #[prost(message, optional, tag = "6")] + pub fknojfjgdlm: ::core::option::Option, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20431)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojablipmkii { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4690)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikckginncbb { + #[prost(uint64, tag = "9")] + pub avatar_guid: u64, + #[prost(uint32, tag = "13")] + pub dalmffloamd: u32, + #[prost(uint32, tag = "14")] + pub ifhechfemdn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3274)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Heiidiojofm {} +#[derive(proto_gen::CmdID)] +#[cmdid(29871)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbeibckhhgh { + #[prost(message, repeated, tag = "15")] + pub almbifelkaa: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "14")] + pub njlkafbffcn: ::prost::alloc::vec::Vec, + #[prost(oneof = "jbeibckhhgh::Bnpjpjlnfbe", tags = "276, 1515")] + pub bnpjpjlnfbe: ::core::option::Option, +} +/// Nested message and enum types in `JBEIBCKHHGH`. +pub mod jbeibckhhgh { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Bnpjpjlnfbe { + #[prost(uint32, tag = "276")] + SlotId(u32), + #[prost(uint32, tag = "1515")] + FurnitureSuiteId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(3744)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cakpiemohoe {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Giielhhjnhm { + #[prost(uint32, tag = "5")] + pub ejoamahccmj: u32, + #[prost(message, repeated, tag = "11")] + pub dhdignmhjnb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1045)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blmhcgmpgcc { + #[prost(uint32, repeated, tag = "11")] + pub fnaoacpmmkd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub npfglajlhil: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub goakcbglbmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21032)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oblacacdkke { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dghbmhoaeld { + #[prost(message, repeated, tag = "2")] + pub ebldmcjpkja: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20009)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eiobhckoemd { + #[prost(enumeration = "Aagpkjdpblk", tag = "1")] + pub ajmkoiopdgc: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afchppfejef { + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(message, repeated, tag = "6")] + pub gfpibaaljjp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "11")] + pub plaipmojmeo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdcmbokbhha { + #[prost(bool, tag = "1")] + pub njadpplkkci: bool, + #[prost(enumeration = "Nmbjfbodlke", tag = "2")] + pub mhhcoedmpdp: i32, + #[prost(bool, tag = "3")] + pub dggckmikbmo: bool, + #[prost(string, tag = "4")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "9")] + pub ohhpffamheh: u32, + #[prost(string, tag = "11")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub ehnijbnnhkd: u32, + #[prost(message, repeated, tag = "13")] + pub kafokippiap: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "14")] + pub blfkojlccoo: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub mhfdgagiepa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8929)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmjgeahlaib { + #[prost(message, optional, tag = "9")] + pub dejoimafmck: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2807)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnncglomcek { + #[prost(message, optional, tag = "2")] + pub oaiiomnbidi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20154)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gibapmpnopa { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjjbhegfbdi { + #[prost(bool, tag = "1")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "3")] + pub gpaeljhnaek: u32, + #[prost(uint32, tag = "10")] + pub alfekgpgmoa: u32, + #[prost(bool, tag = "15")] + pub gbfjikeegfg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27829)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecilgphiohk { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "9")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4008)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inekfalkdal { + #[prost(uint32, repeated, tag = "11")] + pub hljohdkcbjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nceaknkcgpc { + #[prost(uint32, tag = "1")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "2")] + pub dlpjaaapkkl: u32, + #[prost(uint32, tag = "4")] + pub omgchbachci: u32, + #[prost(uint32, tag = "6")] + pub kmdcklepegp: u32, + #[prost(uint32, tag = "11")] + pub nikbfddehdf: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "15")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcnkeakekib { + #[prost(uint32, tag = "4")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5930)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfdhhhdende { + #[prost(uint32, tag = "1")] + pub fneojppfdhh: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8966)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhjbabopeoh { + #[prost(uint32, tag = "11")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oookdcabmik { + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub dekhbeooien: u32, + #[prost(bool, tag = "12")] + pub ecihdijcled: bool, + #[prost(bool, tag = "15")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntityRendererChangedInfo { + #[prost(map = "string, uint32", tag = "1")] + pub changed_renderers: ::std::collections::HashMap< + ::prost::alloc::string::String, + u32, + >, + #[prost(uint32, tag = "2")] + pub visibility_count: u32, + #[prost(bool, tag = "3")] + pub is_cached: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20769)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nplogcdppan { + #[prost(enumeration = "Oeaoccjeope", tag = "8")] + pub ddiaamkbfda: i32, + #[prost(bool, tag = "10")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6498)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Faijicepbhn { + #[prost(uint32, tag = "6")] + pub player_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1097)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnobgdfefeh { + #[prost(uint32, tag = "13")] + pub iidhpkefhpm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2065)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Deioionogml { + #[prost(message, repeated, tag = "6")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27763)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijcblamalke { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2853)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bneogbnfnmi { + #[prost(bool, tag = "11")] + pub nnkapmcjkbh: bool, + #[prost(message, optional, tag = "15")] + pub hidfcjhlblb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27337)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdmnoenhhoi { + #[prost(string, tag = "1")] + pub hbkocffodil: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub msg: ::prost::alloc::string::String, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9991)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffhlaofnjle { + #[prost(bool, tag = "1")] + pub ebgkbpbkogl: bool, + #[prost(uint32, repeated, tag = "4")] + pub aahnpojgpci: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub jofbeiaclof: u32, + #[prost(enumeration = "Lejcogafncb", tag = "7")] + pub reason: i32, + #[prost(uint32, tag = "8")] + pub bknplfikkfg: u32, + #[prost(message, repeated, tag = "11")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub fpedhedekpe: u32, + #[prost(message, repeated, tag = "15")] + pub knbifccible: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8903)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggiginmbpbn { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddaekajcgok { + #[prost(bool, tag = "12")] + pub kpcnipjndad: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kehhnndneoo { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "2")] + pub jkdamdfjagd: u32, + #[prost(bool, tag = "4")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "7")] + pub amcihnhnoae: u32, + #[prost(uint32, tag = "8")] + pub fohkbcilnmo: u32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdomjpehffj { + #[prost(int32, tag = "2")] + pub koinnjpenfl: i32, + #[prost(bool, tag = "6")] + pub napmcbkmnaa: bool, + #[prost(uint32, tag = "9")] + pub ojoapinglno: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9471)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dimhkgckiac { + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4300)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmefgcglogc { + #[prost(uint32, tag = "5")] + pub mhjeokngcdf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adknhghfjbe { + #[prost(message, repeated, tag = "3")] + pub massive_prop_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub idpjmemjjfj: bool, + #[prost(int64, repeated, tag = "13")] + pub ingfphnpoim: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22323)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmeabiehklm { + #[prost(message, repeated, tag = "2")] + pub ppalbjnlaaa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpoaeidkabj { + #[prost(string, tag = "1")] + pub bmljclenhmh: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub llgjemmhion: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub cbmfbkaicap: u32, + #[prost(uint32, tag = "4")] + pub lbihiohangm: u32, + #[prost(uint32, tag = "5")] + pub eeclaoeipbg: u32, + #[prost(uint32, tag = "6")] + pub ngjiickjnhg: u32, + #[prost(bool, tag = "7")] + pub popjgojfoka: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneTeamAvatar { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(uint64, tag = "2")] + pub weapon_guid: u64, + #[prost(bool, tag = "3")] + pub is_player_cur_avatar: bool, + #[prost(message, optional, tag = "4")] + pub aobhcppmkma: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub scene_avatar_info: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub scene_id: u32, + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(message, repeated, tag = "8")] + pub server_buff_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub avatar_info: ::core::option::Option, + #[prost(bool, tag = "10")] + pub is_reconnect: bool, + #[prost(message, optional, tag = "11")] + pub pnanfpcioko: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub weapon_entity_id: u32, + #[prost(message, optional, tag = "13")] + pub scene_entity_info: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub ability_control_block: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub player_uid: u32, + #[prost(bool, tag = "809")] + pub is_on_scene: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekodcpmloaj { + #[prost(message, repeated, tag = "1")] + pub gbgmcmkibep: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub parent_ability_override: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub apply_entity_id: u32, + #[prost(bool, tag = "4")] + pub is_attached_parent_ability: bool, + #[prost(uint32, tag = "5")] + pub server_buff_uid: u32, + #[prost(bool, tag = "6")] + pub inghbkholmo: bool, + #[prost(message, optional, tag = "7")] + pub parent_ability_name: ::core::option::Option, + #[prost(float, tag = "8")] + pub ldjjjknabgd: f32, + #[prost(uint64, tag = "10")] + pub ebafpmjdpbc: u64, + #[prost(enumeration = "Pemmkckgpcp", tag = "11")] + pub mineooknpig: i32, + #[prost(int32, tag = "13")] + pub modifier_local_id: i32, + #[prost(bool, tag = "14")] + pub fcbfpcnfhla: bool, + #[prost(message, optional, tag = "15")] + pub attached_instanced_modifier: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8151)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iimfaiegkgf { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub egdoglfapci: u32, + #[prost(uint32, tag = "10")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(832)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hajlpgcegpo { + #[prost(uint32, tag = "4")] + pub omgchbachci: u32, + #[prost(uint32, tag = "8")] + pub cmdnkflfhia: u32, + #[prost(bool, tag = "15")] + pub iidgielcajn: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2034)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdhfpflgjhl { + #[prost(uint32, tag = "4")] + pub pkicaibdchd: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20310)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Docfpckgjcg { + #[prost(uint64, repeated, tag = "4")] + pub nmbemjimjob: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "6")] + pub hhbnnbdgfim: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "8")] + pub cur_avatar_guid: u64, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub kfpegnaadlo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfdnlppncpa { + #[prost(bool, tag = "1")] + pub ikabkdhnnkc: bool, + #[prost(bool, tag = "12")] + pub ifblnedldld: bool, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkpjpaomcbc { + #[prost(uint32, repeated, tag = "2")] + pub hnjncahmcmg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub cbdogimgjoc: u32, + #[prost(uint32, repeated, tag = "4")] + pub knlkfkclkag: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub ekkfajjdnkb: u32, + #[prost(uint32, tag = "12")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "13")] + pub dobokkalheh: u32, + #[prost(uint32, tag = "15")] + pub pgmifndnkee: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffggpnbbmkn { + #[prost(uint32, tag = "1")] + pub ohkidhnabib: u32, + #[prost(uint32, tag = "2")] + pub kdclmhbcfnh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkonpoholdi { + #[prost(uint32, repeated, tag = "1")] + pub micbneehgam: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub dggfhpdhgip: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub celfhccbmll: u32, + #[prost(uint32, tag = "4")] + pub ajggjmhngmm: u32, + #[prost(uint32, tag = "7")] + pub hhfpofnahoc: u32, + #[prost(uint32, tag = "9")] + pub kobnjgklcnc: u32, + #[prost(uint32, tag = "10")] + pub ikhholbmdko: u32, + #[prost(uint32, tag = "11")] + pub dikdlccehnm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25065)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gofcblgiajg { + #[prost(uint32, tag = "1")] + pub leonidobchj: u32, + #[prost(uint32, tag = "2")] + pub dddppnmbdap: u32, + #[prost(message, repeated, tag = "3")] + pub hfmnaekikjd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub cnhpajjbbeh: u32, + #[prost(uint32, tag = "5")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub fmpcppnebgo: u32, + #[prost(uint32, tag = "10")] + pub nnebhhfhdcc: u32, + #[prost(message, repeated, tag = "13")] + pub mcimccjmllc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6753)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egkepokkaaa { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25820)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfldmehpbgb { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onfdbheaonh { + #[prost(uint32, tag = "5")] + pub skill_id: u32, + #[prost(uint32, tag = "15")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1113)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfnamgkhfil { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8487)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfdkhfladmp { + #[prost(bool, tag = "4")] + pub omncikffgbo: bool, + #[prost(uint32, tag = "10")] + pub ooflahmeleo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhhfhidliji { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(uint32, tag = "2")] + pub fiknlhojfkl: u32, + #[prost(message, optional, tag = "5")] + pub dnjgbehanln: ::core::option::Option, + #[prost(bool, tag = "6")] + pub enligbfklop: bool, + #[prost(enumeration = "Nkkeodoboej", tag = "7")] + pub pihngiilbfk: i32, + #[prost(double, tag = "9")] + pub total_tick_time: f64, + #[prost(enumeration = "Igohjibcdfa", tag = "11")] + pub lkidbhiooog: i32, + #[prost(bytes = "vec", tag = "13")] + pub ejmncabclpf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub bokfanfefne: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2306)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gaojiflpmof { + #[prost(message, optional, tag = "9")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub bojcnnpkmkj: ::core::option::Option, + #[prost(int32, tag = "1")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(435)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbmkhgcekap {} +#[derive(proto_gen::CmdID)] +#[cmdid(5683)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kailgddaeod { + #[prost(bytes = "vec", tag = "5")] + pub oincfcjknha: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdmffbambgh { + #[prost(message, repeated, tag = "14")] + pub player_data: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opkcpdkghhk {} +#[derive(proto_gen::CmdID)] +#[cmdid(936)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elalijlmhep { + #[prost(message, optional, tag = "4")] + pub jkcakgmjhjf: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihgepkipiml { + #[prost(map = "uint32, uint32", tag = "7")] + pub lnmbfedflkc: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5103)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlhfemamnmm { + #[prost(uint32, tag = "6")] + pub lpahjgdbepe: u32, + #[prost(uint32, tag = "14")] + pub cfidanimegp: u32, + #[prost(string, tag = "15")] + pub bmljclenhmh: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26063)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkhgpojaakb { + #[prost(uint32, tag = "2")] + pub avatar_id: u32, + #[prost(uint32, tag = "7")] + pub cmafekgpacg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27109)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfeahjacjim { + #[prost(uint32, tag = "3")] + pub ikobfndgfmi: u32, + #[prost(uint32, repeated, tag = "4")] + pub bbfakmblpjh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub jpinaohpbbk: bool, + #[prost(message, repeated, tag = "14")] + pub gdnmlpmkcoj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20507)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhhllnekcfb { + #[prost(uint32, tag = "10")] + pub config_id: u32, + #[prost(uint32, tag = "14")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27438)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgmahimpdnd { + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25490)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lomnihkapfp { + #[prost(uint32, tag = "3")] + pub jinjlbemjnc: u32, + #[prost(bool, tag = "14")] + pub bdknkbbehco: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1699)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odkhkoaaeaj { + #[prost(uint32, tag = "5")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "1")] + pub cjcjonhpiio: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afgmkcjeicp { + #[prost(message, repeated, tag = "4")] + pub kjjdfphkfeb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub ecgjaibejeo: u32, + #[prost(uint32, tag = "12")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "13")] + pub gohbljehkba: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nefgclbanjk { + #[prost(bool, tag = "2")] + pub idndmkmecno: bool, + #[prost(uint32, tag = "6")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "10")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "13")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "14")] + pub end_time: u32, + #[prost(oneof = "nefgclbanjk::Detail", tags = "7")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `NEFGCLBANJK`. +pub mod nefgclbanjk { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "7")] + BonusInfo(super::Jdknacipafo), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(5520)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbfahogonmk { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26276)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Paneklblcad { + #[prost(message, repeated, tag = "5")] + pub inlkbddpoio: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27852)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnaohkoehph { + #[prost(bool, tag = "7")] + pub innefhgkaim: bool, + #[prost(bool, tag = "6")] + pub ajlcedmppie: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23255)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Neccpfmbjai {} +#[derive(proto_gen::CmdID)] +#[cmdid(23161)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdbajcgklfj { + #[prost(uint32, tag = "2")] + pub cdplheijfgf: u32, + #[prost(uint32, tag = "7")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "13")] + pub player_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3367)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecmcaejhpdh { + #[prost(message, repeated, tag = "1")] + pub effgcacmhgk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22140)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcphkknpnnd { + #[prost(bool, tag = "1")] + pub aggagpebijf: bool, + #[prost(bool, tag = "10")] + pub kidnjjcjajh: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knigpaknllf { + #[prost(uint32, tag = "1")] + pub ombmigpcoaa: u32, + #[prost(uint32, repeated, tag = "2")] + pub jgakggcibge: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub hpjadbmcnkb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24308)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkckagdogcf { + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub neipflioolk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4298)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gomclhpngpe {} +#[derive(proto_gen::CmdID)] +#[cmdid(22560)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ledehkhcefj { + #[prost(uint64, tag = "4")] + pub avatar_guid: u64, + #[prost(uint64, tag = "9")] + pub baengfiafmf: u64, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abniijcgjgf { + #[prost(uint32, tag = "1")] + pub guid: u32, + #[prost(uint32, tag = "2")] + pub kbjnlbkmedp: u32, + #[prost(uint32, tag = "3")] + pub hmlgdpbcgdm: u32, + #[prost(message, optional, tag = "4")] + pub pos: ::core::option::Option, + #[prost(oneof = "abniijcgjgf::Haiboppbgdc", tags = "6, 7")] + pub haiboppbgdc: ::core::option::Option, +} +/// Nested message and enum types in `ABNIIJCGJGF`. +pub mod abniijcgjgf { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Haiboppbgdc { + #[prost(message, tag = "6")] + NpcData(super::Djjjneiihdk), + #[prost(message, tag = "7")] + SuiteData(super::Ibommpckklg), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Liakfkadbdj { + #[prost(bool, tag = "4")] + pub ecalplmlhkf: bool, + #[prost(uint32, tag = "7")] + pub ifgpnankeaj: u32, + #[prost(uint32, tag = "14")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bngmeankmmk { + #[prost(uint32, tag = "10")] + pub degmghpfhjb: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "14")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbcnhbgkago { + #[prost(uint32, repeated, tag = "1")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9083)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blgjlajfbnn { + #[prost(message, optional, tag = "13")] + pub fodjcjdbfii: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29785)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlhnkbijppk { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(bool, tag = "6")] + pub ienkinonacg: bool, + #[prost(string, tag = "7")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25766)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbmjepjhoff { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24231)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dciopklhhoc {} +#[derive(proto_gen::CmdID)] +#[cmdid(2687)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iojfgiefemp { + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ioilcoenabe { + #[prost(message, repeated, tag = "2")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "7")] + pub jmgaaohpmmf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2386)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgfjoaihppp { + #[prost(message, optional, tag = "5")] + pub aeianmankof: ::core::option::Option, + #[prost(message, repeated, tag = "15")] + pub jjeepbcifcp: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub dnfdjphiobd: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub ffdebpeddmd: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub odfifckdodj: ::core::option::Option, + #[prost(enumeration = "Hhgielikjhb", tag = "1")] + pub jamcgnfbiba: i32, + #[prost(int32, tag = "13")] + pub jjfpfmpjema: i32, + #[prost(uint32, tag = "6")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mocgngkiopj { + #[prost(bool, tag = "1")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "3")] + pub dekhbeooien: u32, + #[prost(message, optional, tag = "6")] + pub gejdoahbape: ::core::option::Option, + #[prost(bool, tag = "8")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmkokbfdodm { + #[prost(int32, tag = "3")] + pub hhhcfhhnbbn: i32, + #[prost(message, optional, tag = "6")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub bokhjookahc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Neeiehiikco { + #[prost(float, tag = "15")] + pub omopaolnnen: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5498)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jijillmgcad { + #[prost(bool, tag = "1")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, + #[prost(uint32, tag = "6")] + pub fjhhikoihka: u32, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "8")] + pub reason: i32, + #[prost(uint32, tag = "11")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "13")] + pub bihammoadbg: u32, + #[prost(bool, tag = "14")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24569)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiakjceloem { + #[prost(uint32, repeated, tag = "5")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub noffeobibfp: u32, + #[prost(uint32, tag = "6")] + pub ilieopgmdgo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9115)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkbccccepka { + #[prost(bool, tag = "13")] + pub djoclokdkae: bool, + #[prost(uint32, tag = "8")] + pub ohkidhnabib: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4892)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Boehdccdfkp { + #[prost(message, optional, tag = "2")] + pub ihaeelocofk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4104)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbficjkjihf { + #[prost(uint32, tag = "10")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mekfaehenan { + #[prost(uint32, tag = "1")] + pub affklogicmo: u32, + #[prost(uint32, tag = "3")] + pub khmdgkajflc: u32, + #[prost(bool, tag = "4")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "7")] + pub oomlalimkpc: u32, + #[prost(uint32, tag = "8")] + pub afjclenhanc: u32, + #[prost(bool, tag = "9")] + pub ahdbnklfllc: bool, + #[prost(message, repeated, tag = "11")] + pub pgfomdkjkea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28074)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdglabdbbop { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "10")] + pub jefildjebaj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1085)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdpfmfbbfjp { + #[prost(uint32, tag = "8")] + pub dagnblkkjli: u32, + #[prost(bool, tag = "6")] + pub hdcglelhabn: bool, + #[prost(uint32, tag = "3")] + pub game_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8016)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnfldcnokgo { + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oincodobaho { + #[prost(uint64, tag = "1")] + pub pjfpehfamal: u64, + #[prost(uint32, tag = "3")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "4")] + pub pcklffnfnge: u32, + #[prost(int32, tag = "6")] + pub admokadnfhh: i32, + #[prost(uint32, tag = "8")] + pub omgchbachci: u32, + #[prost(uint32, tag = "13")] + pub bcggiogbock: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9450)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ommfigkbkoo { + #[prost(message, repeated, tag = "11")] + pub jgklnnoofnd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onelpglkohj { + #[prost(enumeration = "Eegmnipnkmj", tag = "1")] + pub reason: i32, + #[prost(uint32, repeated, tag = "2")] + pub klhpmjghmpc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub fbpgimlmdnj: u32, + #[prost(enumeration = "Ihacnpjbldi", tag = "6")] + pub mmopbleppcg: i32, + #[prost(uint32, repeated, tag = "8")] + pub gcbeeinchka: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Ihacnpjbldi", tag = "15")] + pub dlgopgkebhd: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7634)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljajcpfmelp { + #[prost(message, optional, tag = "7")] + pub kkaccpnohcg: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub gejgkajfdcd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjfoabaehad { + #[prost(enumeration = "Ihacnpjbldi", tag = "2")] + pub hcdbekjpngd: i32, + #[prost(uint32, tag = "9")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkbeceliemo { + #[prost(uint32, tag = "3")] + pub padggjnegmb: u32, + #[prost(uint32, tag = "10")] + pub chfombihmlf: u32, + #[prost(uint32, tag = "13")] + pub aaecbhcckbo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20829)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okbeocoagjc { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1151)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikngigpcbkc { + #[prost(bool, tag = "1")] + pub omncikffgbo: bool, + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6654)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fibjndiljbn { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub khhibkpbkpn: u32, + #[prost(message, repeated, tag = "13")] + pub cfmheecihfo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imbhagfdood { + #[prost(uint32, tag = "4")] + pub kbjnlbkmedp: u32, + #[prost(uint32, tag = "13")] + pub gbbpigpnpgd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kelllefkofc { + #[prost(uint32, repeated, tag = "1")] + pub kinknompgdn: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub mneabebjcga: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub pkfamdjcnma: bool, + #[prost(message, repeated, tag = "8")] + pub fhpheglknid: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub dpdfcjankjm: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub omnacmcakcp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub mfmiopnkbdp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub djdnfgbnjkl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7952)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkpekpfocee { + #[prost(uint32, tag = "1")] + pub jlfheeipddp: u32, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(bool, tag = "3")] + pub dggckmikbmo: bool, + #[prost(bool, tag = "4")] + pub gblhfaeonkm: bool, + #[prost(uint64, tag = "8")] + pub dcompdppdpo: u64, + #[prost(bool, tag = "14")] + pub folikaaikie: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3594)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odpadhfjobj { + #[prost(message, optional, tag = "5")] + pub oejcejogmoe: ::core::option::Option, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2316)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eagjbighaeg { + #[prost(int32, repeated, tag = "3")] + pub ehfgkolbomk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(int32, repeated, tag = "5")] + pub phbkedkchnh: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub plapcgkeiea: ::prost::alloc::vec::Vec, + #[prost(int32, repeated, tag = "11")] + pub pbgeekldike: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3324)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbodbcfbjom { + #[prost(uint32, tag = "9")] + pub ocmhgmlnhjd: u32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3364)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgoedpmkapc { + #[prost(uint32, tag = "1")] + pub nigljbfincd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gomcihemnmk { + #[prost(message, repeated, tag = "1")] + pub feecgjbpdfa: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Bplklkdbogp", tag = "2")] + pub elddldbkbfb: i32, + #[prost(uint32, tag = "10")] + pub uid: u32, + #[prost(message, repeated, tag = "12")] + pub bpfflklbgod: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25234)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmapncekbgh { + #[prost(uint32, repeated, tag = "6")] + pub jicefgnaloh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "1")] + pub okicoglejec: u32, + #[prost(uint32, tag = "3")] + pub kdefnpgadfb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hohojpfafoj { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "11")] + pub mkpoijfcemp: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "15")] + pub aghmegibfcd: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20719)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ildpcpmenih { + #[prost(message, optional, tag = "15")] + pub oplhbcnkifm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3131)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjcaoihmpam { + #[prost(uint64, repeated, tag = "1")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Edgibjbaong", tag = "4")] + pub fnimniahfja: i32, + #[prost(message, repeated, tag = "5")] + pub server_buff_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub oigllhajnfg: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "11")] + pub gifninkcidl: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22864)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Objhiclojdk { + #[prost(message, repeated, tag = "13")] + pub eloilboekpk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24671)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmckllchfej { + #[prost(message, repeated, tag = "6")] + pub kjjdfphkfeb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "10")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5791)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdggbpbfmpb { + #[prost(map = "uint32, uint32", tag = "3")] + pub ngfeoeapbjc: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub emdjlfdjoec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Facjdkhmmib { + #[prost(int32, tag = "1")] + pub iheignbbhdn: i32, + #[prost(int32, tag = "7")] + pub mklhkfncdib: i32, + #[prost(int32, tag = "11")] + pub ifcocghlgla: i32, + #[prost(int32, tag = "14")] + pub jfijmahafff: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8932)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kiblflpnben { + #[prost(uint64, tag = "11")] + pub opbnfdpdjgd: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pajpiihpail { + #[prost(message, optional, tag = "1")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub uid: u32, + #[prost(message, optional, tag = "12")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4470)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oeinpddpgej { + #[prost(uint32, tag = "11")] + pub gaplfmmgbfa: u32, + #[prost(enumeration = "PlayerDieType", tag = "9")] + pub jdfbfdifmmj: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20805)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpfemoomlji { + #[prost(uint32, tag = "7")] + pub ondajkggmah: u32, + #[prost(bool, tag = "8")] + pub lmgaegakake: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7040)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmcbbolempc { + #[prost(uint32, tag = "3")] + pub lihibgchlhc: u32, + #[prost(uint32, tag = "10")] + pub eanlkgldnga: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8270)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inkijkpknae {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgdegdpalbp { + #[prost(message, repeated, tag = "6")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Deciiailkbh { + #[prost(uint32, tag = "1")] + pub goakcbglbmj: u32, + #[prost(uint32, tag = "6")] + pub ljjbkffffmc: u32, + #[prost(uint32, repeated, tag = "7")] + pub oemlaiinbhi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub emdpfhfhefp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub fnaoacpmmkd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(490)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbhnjgepjhe { + #[prost(message, optional, tag = "10")] + pub llcmiiekjlk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28565)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmojlgleicd { + #[prost(message, repeated, tag = "3")] + pub dclmgcfikab: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25682)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chcblghkkfp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkjdmhiamkb { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "8")] + pub hnafkfmbipf: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub ahakghlenmf: bool, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8147)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aldnpidlkha { + #[prost(message, repeated, tag = "2")] + pub ijdapiajheg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26598)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Boenaldkold { + #[prost(message, repeated, tag = "7")] + pub npjdmleimgc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub iknfnnfkagf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckdgkenjllp { + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "8")] + pub iehlhaogkpj: u32, + #[prost(uint32, tag = "10")] + pub mihbgpigbkb: u32, + #[prost(uint32, tag = "15")] + pub aaopmgielok: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lficlnpilho { + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(uint32, tag = "14")] + pub gchglannhmc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3043)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijogaomknof { + #[prost(message, repeated, tag = "1")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23075)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcligncmkae { + #[prost(uint32, tag = "3")] + pub homgpjjmldg: u32, + #[prost(bool, tag = "9")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20382)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhbechbenan { + #[prost(message, repeated, tag = "8")] + pub doljcbcogni: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub dloijeggjoe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21842)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffilolmcece { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub maejdfjekdf: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpbmmomlkkn { + #[prost(uint32, tag = "4")] + pub guid: u32, + #[prost(message, optional, tag = "7")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20957)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njojocaknih { + #[prost(message, repeated, tag = "13")] + pub ipkbmajidjl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbpfnfnbgem { + #[prost(string, tag = "2")] + pub llgjemmhion: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub bmljclenhmh: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6174)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Neepomlbnch { + #[prost(message, optional, tag = "8")] + pub jjeepbcifcp: ::core::option::Option, + #[prost(int32, repeated, tag = "2")] + pub alkgminnaml: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "12")] + pub ffdebpeddmd: ::core::option::Option, + #[prost(int32, tag = "7")] + pub jjfpfmpjema: i32, + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(int32, tag = "11")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iefofbpibgk { + #[prost(bool, tag = "2")] + pub keonjkilagp: bool, + #[prost(uint32, tag = "3")] + pub mjooaanbpbg: u32, + #[prost(bool, tag = "5")] + pub chgakfcpjkh: bool, + #[prost(bool, tag = "8")] + pub ejoocgcbojm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3985)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Podiclokimj { + #[prost(uint32, tag = "13")] + pub akmdkfbgdlb: u32, + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21513)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Honaillfgbd { + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7881)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpfgbndkcbl { + #[prost(uint32, tag = "1")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "5")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27621)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clakpcffbom { + #[prost(uint32, tag = "3")] + pub lgooidciaag: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "15")] + pub emlilmhjhog: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3204)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjmnofedmcf {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djjjneiihdk { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlmepnkfocj { + #[prost(uint32, tag = "9")] + pub apfoogpjala: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgmnefbckgk { + #[prost(message, repeated, tag = "13")] + pub gocbhmdladb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phfpfbologf { + #[prost(message, repeated, tag = "4")] + pub nngnoplgjjf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub uid: u32, + #[prost(message, repeated, tag = "13")] + pub llgijchelia: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmajiggcebj { + #[prost(uint32, tag = "1")] + pub pjegodebmjc: u32, + #[prost(map = "uint32, uint32", tag = "2")] + pub jnhpjifbmoj: ::std::collections::HashMap, + #[prost(uint32, tag = "6")] + pub bajbbdmonka: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22448)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieepapccacc { + #[prost(message, repeated, tag = "7")] + pub avatar_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4360)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjibmncmggn { + #[prost(message, repeated, tag = "15")] + pub cpbfljagpic: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2340)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpdfgakcidn { + #[prost(message, repeated, tag = "9")] + pub nlnlbaikbki: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3152)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klepbbnmpll { + #[prost(uint32, tag = "11")] + pub epjoaallggd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22147)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnmhmkanpfj {} +#[derive(proto_gen::CmdID)] +#[cmdid(28832)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plnjcjbebfo { + #[prost(uint64, tag = "7")] + pub pekdnkgbefe: u64, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lndmeehgmjn { + #[prost(uint32, repeated, tag = "11")] + pub bghndipkjhp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub hhiacciikga: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20602)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgoibbggjkd {} +#[derive(proto_gen::CmdID)] +#[cmdid(28666)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehpbbddfpfl { + #[prost(message, optional, tag = "1")] + pub oomnoofgino: ::core::option::Option, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, repeated, tag = "10")] + pub kjfmdlmnfam: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2169)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpkpdoaddag { + #[prost(uint32, repeated, tag = "12")] + pub mkelecopffb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2999)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Medahiacmbk { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(268)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddjcodjobke { + #[prost(bool, tag = "9")] + pub dbjoiecgkah: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22327)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cchjahlkjja { + #[prost(message, optional, tag = "11")] + pub glmklipeldi: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28846)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifhmbhpdpel { + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(uint32, tag = "5")] + pub scene_time: u32, + #[prost(message, optional, tag = "6")] + pub motion_info: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub fggmoakinfd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27459)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oickgjgddbb { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4841)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnbcbgbcmea { + #[prost(uint32, tag = "13")] + pub jlfheeipddp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aalcndngghe { + #[prost(bool, tag = "1")] + pub dohhenfngpe: bool, + #[prost(uint64, tag = "15")] + pub avatar_id: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23704)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfnenlgeneg { + #[prost(uint32, tag = "1")] + pub idnmkokhjcb: u32, + #[prost(uint32, tag = "2")] + pub jahipcehnib: u32, + #[prost(uint32, tag = "5")] + pub ppmpfmbfmbb: u32, + #[prost(enumeration = "Djnpamlnjgc", tag = "13")] + pub ohhmbehbbmc: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21502)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppfmepahdld { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2864)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpgcpfglbke { + #[prost(uint32, tag = "6")] + pub ghdjjmikfpi: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "15")] + pub jkilokiaeff: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22678)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbaenifcjbc { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22201)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odlfpokgiki { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(uint32, tag = "6")] + pub ablfjpmkkda: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgobmmnhpfk { + #[prost(message, repeated, tag = "14")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmcbcmnbifa { + #[prost(message, repeated, tag = "8")] + pub fmmjciekibm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "9")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "12")] + pub hkogkepkcng: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(213)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpgboiclank { + #[prost(uint32, tag = "3")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20298)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjnmkmllacl { + #[prost(uint32, tag = "10")] + pub pkicaibdchd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kehagdincac { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3995)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cphlkodbajj { + #[prost(uint32, tag = "6")] + pub entity_id: u32, + #[prost(uint32, tag = "10")] + pub ajfkkocigha: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9011)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihbnaehbcbp { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(bool, tag = "3")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "8")] + pub iehlhaogkpj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26459)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kealaiicagl { + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8248)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aibpadmbkfo { + #[prost(uint32, tag = "6")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(394)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmghlbmhgod { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5514)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Enkobnihcml { + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(bool, tag = "6")] + pub lkcaeopcfoc: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eegmnmgojjo { + #[prost(uint32, tag = "5")] + pub ohenhnjjken: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1663)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mimfbkcdiak { + #[prost(bool, tag = "14")] + pub mfblihcpijn: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhanhemamgo { + #[prost(bool, tag = "2")] + pub eialjbaengj: bool, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "11")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9568)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mknieicfbde { + #[prost(uint32, tag = "4")] + pub plicgiinkfi: u32, + #[prost(bool, tag = "6")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "7")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(908)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmakhkclhii { + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(767)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hegdckbbddl { + #[prost(uint32, tag = "9")] + pub edgckljkadm: u32, + #[prost(uint32, tag = "1")] + pub hjnkccnnhdn: u32, + #[prost(uint64, tag = "3")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7697)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plidoalcgdc { + #[prost(bool, tag = "4")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "11")] + pub dggckmikbmo: bool, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29850)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkcelacfpch { + #[prost(uint32, tag = "15")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1385)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkbjehfiekl { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21489)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlphbocamfk { + #[prost(string, tag = "6")] + pub papemocbgeo: ::prost::alloc::string::String, + #[prost(enumeration = "Mnpapanlkkg", tag = "8")] + pub fhanjkplcfl: i32, + #[prost(enumeration = "Jibfhhklaoj", tag = "11")] + pub gogamckkcco: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9319)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eahdnpfeolp { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28918)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iabaanilccj { + #[prost(string, tag = "7")] + pub bmljclenhmh: ::prost::alloc::string::String, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(bool, tag = "12")] + pub dpijhmnfbam: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmjefmbijid { + #[prost(uint32, tag = "13")] + pub apply_entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eafjlampfhi { + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(232)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjnfjpcdlpl { + #[prost(uint32, tag = "10")] + pub hdkdgijfmpc: u32, + #[prost(uint32, tag = "12")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8543)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccpjfpkcihi { + #[prost(message, optional, tag = "6")] + pub bhjhagccpib: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4908)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcidenojikc { + #[prost(uint32, tag = "11")] + pub hkejlenogln: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9003)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbbbfclepjf { + #[prost(message, optional, tag = "1")] + pub pnkplpdbocg: ::core::option::Option, + #[prost(float, tag = "2")] + pub pdkifkkmhcn: f32, + #[prost(message, optional, tag = "3")] + pub bmammckamlj: ::core::option::Option, + #[prost(enumeration = "Dpnjdpjgdop", tag = "4")] + pub nkfeikljhhk: i32, + #[prost(string, repeated, tag = "5")] + pub diiiihmdpnc: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(bool, tag = "6")] + pub gaklgdgicdn: bool, + #[prost(float, tag = "7")] + pub nllkhncamgg: f32, + #[prost(uint32, tag = "8")] + pub amhhcbfflpl: u32, + #[prost(bool, tag = "9")] + pub ogjikflmpdj: bool, + #[prost(float, tag = "10")] + pub kkkmbmmhijf: f32, + #[prost(message, optional, tag = "11")] + pub mddabonfbej: ::core::option::Option, + #[prost(bool, tag = "13")] + pub gncjhdkpona: bool, + #[prost(message, optional, tag = "14")] + pub hhfkofgghkg: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2433)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkmbpjdogbp { + #[prost(message, repeated, tag = "5")] + pub jbhaijfnnck: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21212)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnldbfhbomp { + #[prost(uint32, tag = "3")] + pub mkelffhppog: u32, + #[prost(message, optional, tag = "9")] + pub dejoimafmck: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub odnfameopbg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kphndgacfdn { + #[prost(uint32, tag = "7")] + pub scene_id: u32, + #[prost(uint32, tag = "10")] + pub enekacdhjgh: u32, + #[prost(uint32, repeated, tag = "11")] + pub ilmniplkenp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5334)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkkjklcpmbp { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3299)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkdolinebck { + #[prost(uint32, tag = "7")] + pub gaplfmmgbfa: u32, + #[prost(message, optional, tag = "9")] + pub ddpgemgdhel: ::core::option::Option, + #[prost(bool, tag = "11")] + pub nfbifipddad: bool, + #[prost(uint32, tag = "14")] + pub ocinfhojcea: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22588)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcnciidjlif { + #[prost(uint32, tag = "3")] + pub kjlbepdnldm: u32, + #[prost(int32, tag = "15")] + pub gbaglgmgjhj: i32, + #[prost(int32, tag = "12")] + pub acjpdgmfgnl: i32, + #[prost(int32, tag = "2")] + pub peagfmgmeah: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29671)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akidcgkpcep { + #[prost(string, tag = "4")] + pub epfpbkmomca: ::prost::alloc::string::String, + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8041)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fikojpdchcj { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "12")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpjneojfiga { + #[prost(message, optional, tag = "1")] + pub fobongihgmj: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub piijgofjiin: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub piiapjjelod: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub eonffbcghih: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub mdpabhfmgho: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcmcgonmpho { + #[prost(uint32, tag = "1")] + pub ejngailfghf: u32, + #[prost(uint32, repeated, tag = "2")] + pub oibodamegbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub jfcefgehkpg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29294)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjegekpndin { + #[prost(uint32, tag = "11")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohjdhpdpkng { + #[prost(uint64, repeated, tag = "11")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub odeipclofkn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8054)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbfakcignjm { + #[prost(uint32, tag = "1")] + pub gaplfmmgbfa: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhohohmibel { + #[prost(uint32, tag = "8")] + pub hmjbphppjdb: u32, + #[prost(uint32, tag = "11")] + pub olongpplcmg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21021)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofafgmagnjl { + #[prost(uint32, tag = "10")] + pub feccpddaagm: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aaffbgefkbf { + #[prost(bool, tag = "8")] + pub eialjbaengj: bool, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "12")] + pub peajinifghm: u32, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(771)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nggpdcihong { + #[prost(uint32, tag = "9")] + pub fecmlpmpopc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23306)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdckcggelii { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25849)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbfjmgljnbh { + #[prost(uint32, tag = "1")] + pub jefildjebaj: u32, + #[prost(uint32, tag = "5")] + pub jiahjojcpfe: u32, + #[prost(uint32, tag = "7")] + pub level: u32, + #[prost(uint32, tag = "8")] + pub exp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpojjlbmlpa { + #[prost(uint64, tag = "1")] + pub gedmdocolfj: u64, + #[prost(uint32, tag = "2")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5776)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhdnhgjpgif { + #[prost(uint32, tag = "13")] + pub ccpigccdboi: u32, + #[prost(uint32, tag = "15")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbimmjpoeba { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "5")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23238)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejclecpbfho { + #[prost(uint32, tag = "14")] + pub kdknoocoebm: u32, + #[prost(uint32, tag = "1")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(169)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aegpjofgnhn {} +#[derive(proto_gen::CmdID)] +#[cmdid(24718)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obnpiajffda { + #[prost(message, optional, tag = "4")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub item_id: u32, + #[prost(int32, tag = "7")] + pub param: i32, + #[prost(uint32, tag = "12")] + pub gfppmnlpoek: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jljgjgahinl { + #[prost(message, repeated, tag = "6")] + pub niomengdmaj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub gfgcncpnoig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7275)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfihlfanmkl { + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(uint32, tag = "4")] + pub nndjeepmche: u32, + #[prost(bool, tag = "7")] + pub apgnbjkgeel: bool, + #[prost(enumeration = "Igohjibcdfa", tag = "14")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29598)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idfmgmpofoe { + #[prost(uint64, repeated, tag = "12")] + pub fikgdofabee: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2941)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khhgolfmeka { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bodnniikbgj { + #[prost(message, repeated, tag = "1")] + pub kkfcpkefigk: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "4")] + pub oimebnjcfli: ::core::option::Option, + #[prost(bool, tag = "9")] + pub fjnebbedmce: bool, + #[prost(uint32, repeated, tag = "13")] + pub hbgkefoepch: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub ojhimnjgcio: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub abhkfnbnjgn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edbieojnbaf { + #[prost(uint32, tag = "2")] + pub ngjiickjnhg: u32, + #[prost(message, optional, tag = "5")] + pub hpkdnceehfn: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub cjmmgkpfmof: u32, + #[prost(uint32, tag = "10")] + pub hdhjdcphfmk: u32, + #[prost(uint32, tag = "12")] + pub njccempmhdi: u32, + #[prost(message, repeated, tag = "14")] + pub kmbampphcni: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29025)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkhmiopeiaf { + #[prost(uint32, tag = "3")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3444)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljpfhhlmfgm { + #[prost(uint32, tag = "12")] + pub ohkidhnabib: u32, + #[prost(bool, tag = "14")] + pub djoclokdkae: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipdlldfnkle { + #[prost(message, repeated, tag = "3")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27433)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odefamdiiib { + #[prost(uint64, repeated, tag = "6")] + pub equip_guid_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "9")] + pub is_locked: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlimejildca { + #[prost(uint32, tag = "7")] + pub bcgeoglhkan: u32, + #[prost(bool, tag = "10")] + pub lhhbinhjaoe: bool, + #[prost(oneof = "dlimejildca::Naohdahdiog", tags = "3, 12, 15")] + pub naohdahdiog: ::core::option::Option, +} +/// Nested message and enum types in `DLIMEJILDCA`. +pub mod dlimejildca { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Naohdahdiog { + #[prost(message, tag = "3")] + ScoreChallengeInfo(super::Bdkbolglafb), + #[prost(message, tag = "12")] + BundleInfo(super::Klclhnbepho), + #[prost(uint32, tag = "15")] + BossChallengeId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(29498)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnimedeobmj { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20539)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljbohilakal { + #[prost(uint32, repeated, tag = "3")] + pub amfkehphneb: ::prost::alloc::vec::Vec, + #[prost(string, tag = "4")] + pub version: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpfdbhicfac { + #[prost(enumeration = "Momgbciboei", tag = "1")] + pub hjghlapidhd: i32, + #[prost(bool, tag = "5")] + pub admdogdiofh: bool, + #[prost(uint32, repeated, tag = "7")] + pub kaajdbhocho: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub plhjoghbael: u32, + #[prost(uint32, tag = "10")] + pub pfabkdkfgdg: u32, + #[prost(uint32, tag = "11")] + pub pjmkkemigbg: u32, + #[prost(uint32, tag = "14")] + pub ngbgogoppcc: u32, + #[prost(uint32, tag = "15")] + pub iefjccibkja: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25400)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geipkcfnggk { + #[prost(uint32, tag = "13")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "1")] + pub kfpegnaadlo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5246)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flafohpnjao { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "2")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "3")] + pub blnbjflpefp: u32, + #[prost(uint32, tag = "9")] + pub mlmifecfpoj: u32, + #[prost(uint32, tag = "10")] + pub ckinhoeoecf: u32, + #[prost(bool, tag = "12")] + pub dmedoehomkh: bool, + #[prost(message, repeated, tag = "13")] + pub olpbbgienff: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "15")] + pub hodolkcoplg: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22826)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oeghicehgod { + #[prost(enumeration = "Cegmlmcfcpm", repeated, tag = "4")] + pub bppepdepjdk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub bdeombceoea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneReliquaryInfo { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint64, tag = "2")] + pub guid: u64, + #[prost(uint32, tag = "3")] + pub level: u32, + #[prost(uint32, tag = "4")] + pub promote_level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22215)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nedjhngnekc { + #[prost(uint32, tag = "11")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4376)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eoodhkcamja { + #[prost(uint32, tag = "3")] + pub dfjmenlmiii: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7628)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffkjaiphiad { + #[prost(uint32, tag = "1")] + pub bimcajgddoi: u32, + #[prost(float, tag = "5")] + pub speed: f32, + #[prost(uint32, tag = "8")] + pub lbclghbmdaf: u32, + #[prost(enumeration = "Hdjecbnmhli", tag = "9")] + pub cdooiopekkl: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3787)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mddhjeminci { + #[prost(enumeration = "Dmbnnbhbpbi", tag = "1")] + pub hkmhenoepkp: i32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2533)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggfhoeccejd { + #[prost(message, repeated, tag = "13")] + pub bdobhhhjkma: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21195)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgodlafclhi { + #[prost(bool, tag = "1")] + pub emlilmhjhog: bool, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "12")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8174)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afkdmcfkfih { + #[prost(int32, tag = "2")] + pub pbhchamjkhb: i32, + #[prost(int32, tag = "9")] + pub ckjpgidhkoi: i32, + #[prost(uint32, tag = "10")] + pub entity_id: u32, + #[prost(uint64, tag = "13")] + pub kfnbcklkeib: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcpamcoeiem { + #[prost(uint32, tag = "5")] + pub gadget_id: u32, + #[prost(uint32, tag = "6")] + pub config_id: u32, + #[prost(uint32, tag = "9")] + pub r#type: u32, + #[prost(uint32, tag = "10")] + pub group_id: u32, + #[prost(message, optional, tag = "15")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23518)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmjpfbdepgo { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub eddfmjmpnjp: u32, + #[prost(uint32, tag = "15")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngkfhkbbebi { + #[prost(uint32, tag = "5")] + pub afkmpjjegjj: u32, + #[prost(uint32, tag = "15")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojkdmahfelc { + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(uint32, tag = "10")] + pub jbghbcnlkhp: u32, + #[prost(uint32, repeated, tag = "15")] + pub mcnjnpmgijg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4951)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nclfinccbgf { + #[prost(message, optional, tag = "7")] + pub ohoaamnllce: ::core::option::Option, + #[prost(bool, tag = "13")] + pub ofbpbiomcjd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8266)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fffjdnjoabc { + #[prost(uint32, tag = "5")] + pub jgihcibojpn: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint64, tag = "12")] + pub opbnfdpdjgd: u64, + #[prost(uint32, tag = "13")] + pub nfjohaldgdn: u32, + #[prost(message, repeated, tag = "15")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4942)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmemedngbca { + #[prost(uint32, tag = "10")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26252)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndemlajjpig { + #[prost(uint32, tag = "1")] + pub mcmbofifbcp: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljndecjabef { + #[prost(message, optional, tag = "2")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpnjobfakgf { + #[prost(message, optional, tag = "5")] + pub kjiogfgnmeo: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub jaeidddmihj: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub aiagdpedgki: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(614)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anidmdgokol { + #[prost(string, tag = "13")] + pub oinhnddpfli: ::prost::alloc::string::String, + #[prost(int32, tag = "11")] + pub peagfmgmeah: i32, + #[prost(uint32, tag = "7")] + pub jddamhceape: u32, + #[prost(uint32, tag = "4")] + pub kjlbepdnldm: u32, + #[prost(int32, tag = "12")] + pub acjpdgmfgnl: i32, + #[prost(int32, tag = "1")] + pub gbaglgmgjhj: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26368)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarDataNotify { + #[prost(uint32, repeated, tag = "1")] + pub onaodhdmili: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "2")] + pub avatar_team_map: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "3")] + pub owned_costume_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub owned_flycloak_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub backup_avatar_team_order_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub avatar_rename_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub avatar_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "12")] + pub choose_avatar_guid: u64, + #[prost(uint32, tag = "13")] + pub cur_avatar_team_id: u32, + #[prost(uint64, repeated, tag = "14")] + pub temp_avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cndpncjolgf { + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, tag = "7")] + pub count: u32, + #[prost(uint32, tag = "14")] + pub monster_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25196)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbehijlkpdn { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26447)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iojphhaopbc {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olbjnpgiiaf { + #[prost(enumeration = "Cmdeepdjoga", repeated, tag = "8")] + pub ebhcablnklp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub fbpgimlmdnj: u32, + #[prost(uint32, tag = "11")] + pub migldagkhlb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkndmgdpebl { + #[prost(message, optional, tag = "1")] + pub lkllhllleeg: ::core::option::Option, + #[prost(map = "uint32, message", tag = "2")] + pub opmmbdkolli: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "3")] + pub djemoadbdnd: ::std::collections::HashMap, + #[prost(map = "uint32, message", tag = "4")] + pub bnmfbjmnkba: ::std::collections::HashMap, + #[prost(message, repeated, tag = "5")] + pub enelnognnlp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub amkmghmlhce: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub lpioegcdkao: u32, + #[prost(map = "uint32, message", tag = "12")] + pub ngmmicpmicl: ::std::collections::HashMap, + #[prost(uint32, tag = "14")] + pub skill_id: u32, + #[prost(message, repeated, tag = "15")] + pub lkcabblcohg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bilbkkohdab { + #[prost(message, repeated, tag = "3")] + pub dahkfdaacll: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(uint32, repeated, tag = "9")] + pub emeppkabbge: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, repeated, tag = "13")] + pub lilembeihai: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fchnoohlplb { + #[prost(uint32, repeated, tag = "2")] + pub lcdcikjikgh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkadipldpdp { + #[prost(bool, tag = "7")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "11")] + pub mdgjjofokap: bool, + #[prost(uint32, tag = "13")] + pub ppbamnfheje: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20960)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glpdbkoaoje { + #[prost(uint32, tag = "3")] + pub guid: u32, + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "14")] + pub pghipcmlekh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26834)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkbiojdibfp { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(bool, tag = "5")] + pub dhaomgmmdpd: bool, + #[prost(uint64, tag = "15")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phmcfehgaki { + #[prost(message, optional, tag = "1")] + pub bleckdpdapi: ::core::option::Option, + #[prost(bool, tag = "6")] + pub cccdcfoiide: bool, + #[prost(message, optional, tag = "7")] + pub oomnoofgino: ::core::option::Option, + #[prost(bool, tag = "11")] + pub omncikffgbo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(520)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkfplcpicnp { + #[prost(uint32, tag = "10")] + pub giilnmoloni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djhoakcipbk { + #[prost(bool, tag = "2")] + pub eialjbaengj: bool, + #[prost(bool, tag = "6")] + pub mdgjjofokap: bool, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "10")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24813)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggfonbhpnko { + #[prost(bool, tag = "9")] + pub pekdmminloa: bool, + #[prost(enumeration = "Himmemhogfb", tag = "13")] + pub mfmlakbiaed: i32, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint64, tag = "15")] + pub dcompdppdpo: u64, + #[prost(oneof = "ggfonbhpnko::Gcmkmeijkhj", tags = "11")] + pub gcmkmeijkhj: ::core::option::Option, +} +/// Nested message and enum types in `GGFONBHPNKO`. +pub mod ggfonbhpnko { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcmkmeijkhj { + #[prost(message, tag = "11")] + MusicBriefInfo(super::Pcdlglmdhai), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(20426)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljffeblmlkk { + #[prost(message, repeated, tag = "6")] + pub kebdimiadlm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20748)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfifolidgid { + #[prost(uint32, tag = "2")] + pub iehlhaogkpj: u32, + #[prost(bool, tag = "11")] + pub djoclokdkae: bool, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djeeojbgdjf { + #[prost(message, repeated, tag = "4")] + pub offnadbpdjb: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub ohbephikojo: u32, + #[prost(uint32, tag = "15")] + pub lgbnfifcpjf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aagojgecebp { + #[prost(uint32, tag = "4")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "7")] + pub lbhaeehgdom: u32, + #[prost(uint32, tag = "11")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "12")] + pub ilpjbepjdlp: u32, + #[prost(enumeration = "Popdhnkgoec", tag = "13")] + pub lmgnncgppcg: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nohdomiiohf { + #[prost(message, repeated, tag = "13")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlnkgoikajk { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, repeated, tag = "13")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Laicgchcmch { + #[prost(message, optional, tag = "3")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(message, repeated, tag = "14")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29384)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nojndkfjfhm { + #[prost(uint32, tag = "1")] + pub hjnkccnnhdn: u32, + #[prost(uint64, tag = "11")] + pub avatar_guid: u64, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5005)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfmbbeknbol { + #[prost(uint32, tag = "2")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(791)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Foablkkeboh { + #[prost(string, tag = "12")] + pub dppibjfomoc: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23450)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chafghjdmnm { + #[prost(uint32, tag = "3")] + pub room_id: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjmbkpahhmi { + #[prost(uint32, tag = "3")] + pub lmcihlbfanh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aibmjdjkbfe { + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29573)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjpndidlben { + #[prost(uint32, tag = "12")] + pub phmkpnkmooe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4927)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfhogffgpdn { + #[prost(message, optional, tag = "7")] + pub fflgcbbliao: ::core::option::Option, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8340)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofhjlamdmeb { + #[prost(message, repeated, tag = "6")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Deofdeaodnn { + #[prost(float, tag = "2")] + pub fbgnmebjncf: f32, + #[prost(uint32, tag = "3")] + pub diefnllchmn: u32, + #[prost(uint32, tag = "7")] + pub rot: u32, + #[prost(float, tag = "9")] + pub fkfjpjmmpim: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcjebliehlm { + #[prost(uint32, tag = "3")] + pub imohcnccofg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25821)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jggiohpglkf { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "12")] + pub akfopjphjio: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4656)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgjfbfnailp { + #[prost(bool, tag = "2")] + pub nlhjigegiin: bool, + #[prost(uint32, tag = "3")] + pub gkkgomdfkml: u32, + #[prost(uint32, tag = "5")] + pub amhhcbfflpl: u32, + #[prost(uint32, tag = "6")] + pub lbclghbmdaf: u32, + #[prost(float, tag = "9")] + pub speed: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5332)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jignegchaml { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20867)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Daikdknpcbi { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9529)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddookhhmbdj { + #[prost(uint32, repeated, tag = "2")] + pub pbheabpkhab: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub bjjjdldclll: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1774)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Giegoipcjec { + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8053)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bceknicfjdh { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25140)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ciehphijpop { + #[prost(uint32, tag = "14")] + pub mgcmnplnjkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6821)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klmemliikbn { + #[prost(message, repeated, tag = "3")] + pub aahmmhijbia: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub filhmhegccb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6283)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjgkcimdkhd { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub lbklfcdfpdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29883)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bahdfmcpjlg { + #[prost(uint32, tag = "8")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub dejoimafmck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8506)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emaaioilapf { + #[prost(message, optional, tag = "9")] + pub nokafmencih: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkfkdkboofp { + #[prost(message, repeated, tag = "15")] + pub gocbhmdladb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oedbnoadgjj { + #[prost(string, tag = "5")] + pub name: ::prost::alloc::string::String, + #[prost(uint32, tag = "6")] + pub jjlpijkgkon: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4264)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhlcokcmeif { + #[prost(uint32, tag = "4")] + pub pjjlmhgjkdg: u32, + #[prost(uint32, tag = "5")] + pub kajcndjlkfi: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29583)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhnnociooka { + #[prost(uint32, tag = "2")] + pub egbmifdjdih: u32, + #[prost(uint32, tag = "3")] + pub dekhbeooien: u32, + #[prost(bool, tag = "5")] + pub dggckmikbmo: bool, + #[prost(bool, tag = "6")] + pub ankcbommojb: bool, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "12")] + pub reason: i32, + #[prost(uint32, tag = "14")] + pub ljfafdhikjd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4373)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihgjkhbpheb { + #[prost(map = "uint32, float", tag = "2")] + pub fight_prop_map: ::std::collections::HashMap, + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4774)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Neoeijneceh { + #[prost(uint32, tag = "15")] + pub avatar_id: u32, + #[prost(uint32, tag = "3")] + pub dlphdipgphf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25379)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnbfgdlhhpc { + #[prost(uint32, repeated, tag = "4")] + pub akgnhibbcja: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "14")] + pub iljgpojfhdo: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub cehbmhaanil: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6933)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jafkkpepgbk { + #[prost(enumeration = "Ckijcdmelnh", tag = "1")] + pub oaahhnmhafh: i32, + #[prost(uint32, tag = "3")] + pub gadget_id: u32, + #[prost(message, optional, tag = "4")] + pub niblmceoflg: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub giickaofkdb: u32, + #[prost(message, optional, tag = "8")] + pub bndocllebea: ::core::option::Option, + #[prost(enumeration = "Hdpdhdlphae", tag = "10")] + pub iifdbepldke: i32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub beliokmdlgb: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1809)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnghbfakfga { + #[prost(message, repeated, tag = "4")] + pub nmioeeppfgj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgaofojfdnn { + #[prost(bool, tag = "1")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "14")] + pub ecihdijcled: bool, + #[prost(message, repeated, tag = "15")] + pub jnihnacehdl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adifnoplaik { + #[prost(int32, tag = "1")] + pub local_id: i32, + #[prost(uint32, tag = "3")] + pub instanced_modifier_id: u32, + #[prost(uint32, tag = "4")] + pub instanced_ability_id: u32, + #[prost(message, optional, tag = "8")] + pub parent_ability_name: ::core::option::Option, + #[prost(int32, tag = "11")] + pub modifier_local_id: i32, + #[prost(uint32, tag = "13")] + pub miagfdldmph: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20176)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jakfknkiofi { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20582)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkagdmcnbio { + #[prost(uint32, repeated, tag = "1")] + pub buff_id_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2489)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkfehgadhof { + #[prost(uint32, tag = "5")] + pub mcjiecacmld: u32, + #[prost(uint32, tag = "15")] + pub kfaghbdnfca: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2994)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpiofcfgeke { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "15")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9629)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfejcmichna { + #[prost(uint32, tag = "5")] + pub pdlmkflekdl: u32, + #[prost(string, tag = "12")] + pub dmmfjmbmjha: ::prost::alloc::string::String, + #[prost(string, tag = "13")] + pub title: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23670)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ennoahojfli {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pabbccknldf { + #[prost(uint32, tag = "10")] + pub uid: u32, + #[prost(message, repeated, tag = "15")] + pub niomengdmaj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njpabknndfo { + #[prost(int32, tag = "3")] + pub noljbnbnlml: i32, + #[prost(int32, tag = "12")] + pub mjeflbpjbkm: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27562)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncjglhekbap { + #[prost(bool, tag = "14")] + pub kkopdpjdjcm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29126)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jphefdedock { + #[prost(uint32, repeated, tag = "6")] + pub ffpfapmgfhe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23633)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llhiboombnn { + #[prost(uint32, tag = "10")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkpgbeblmie { + #[prost(message, repeated, tag = "2")] + pub avatar_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dadokgjpmid { + #[prost(map = "uint32, uint32", tag = "1")] + pub aogomcielpm: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9655)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Endbahpohmp { + #[prost(uint32, repeated, tag = "14")] + pub lfbghoahkfn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9990)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfkiggckaii { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6482)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfolkicamej { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21971)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmdnkaijcee { + #[prost(uint64, tag = "4")] + pub avatar_guid: u64, + #[prost(map = "uint32, int64", tag = "15")] + pub prop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbilityControlBlock { + #[prost(message, repeated, tag = "1")] + pub ability_embryo_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24194)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opflfacgich { + #[prost(uint32, tag = "7")] + pub pjegodebmjc: u32, + #[prost(uint32, tag = "10")] + pub jcejajfndhm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkobnfpenpd { + #[prost(message, repeated, tag = "11")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6409)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oapijkccaac {} +#[derive(proto_gen::CmdID)] +#[cmdid(5207)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plbchblllma { + #[prost(message, repeated, tag = "6")] + pub fmojameeohn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub scene_time: u32, + #[prost(uint32, tag = "14")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26942)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Logimffdcea { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(652)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifaplagelpl { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25877)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpepjlfblmh { + #[prost(message, repeated, tag = "11")] + pub kjjdfphkfeb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "5")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4959)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eeibpedmgjl { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24765)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kobabkallca { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imagdmeigik { + #[prost(enumeration = "Gacainioald", tag = "6")] + pub state: i32, + #[prost(message, optional, tag = "7")] + pub dejoimafmck: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aagpcdjpgdk { + #[prost(uint32, repeated, tag = "1")] + pub cefkegaagll: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2457)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfnlcljbipd { + #[prost(uint32, tag = "10")] + pub iijkccimjgj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2446)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhgemebbccc { + #[prost(uint32, tag = "1")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbbpnmgjaog { + #[prost(float, tag = "6")] + pub jjpcpmfdneh: f32, + #[prost(int32, tag = "15")] + pub oaagmpkikgi: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28522)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obbkhedcjkh {} +#[derive(proto_gen::CmdID)] +#[cmdid(5969)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfkhokhopee { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20538)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpnnhiianfo { + #[prost(uint32, repeated, tag = "7")] + pub adcjcjeiomk: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "15")] + pub akclibaijcn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9361)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajdfklkcndj { + #[prost(uint32, tag = "6")] + pub belhflpnegd: u32, + #[prost(uint32, tag = "10")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "11")] + pub egbmifdjdih: u32, + #[prost(uint32, tag = "14")] + pub cnebhlcgnij: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21961)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbclehnomoa { + #[prost(uint32, repeated, tag = "2")] + pub hfgcnhedapn: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub cdjlgcopfai: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Cmdeepdjoga", repeated, tag = "14")] + pub ebhcablnklp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Enhienoghhd { + #[prost(uint32, tag = "1")] + pub nhgniieaogi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jelbmdnlkpm { + #[prost(uint64, tag = "3")] + pub amiilbjpola: u64, + #[prost(uint64, tag = "6")] + pub avatar_guid: u64, + #[prost(uint32, tag = "9")] + pub mmndomkgebh: u32, + #[prost(bool, tag = "10")] + pub imhnjlnpgcj: bool, + #[prost(uint32, tag = "11")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "13")] + pub gggijlcjeea: u32, + #[prost(bool, tag = "15")] + pub lfncdokdfhh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28156)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgibbegdode { + #[prost(uint32, tag = "2")] + pub dglcdjnmnkh: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Echegkdjnol { + #[prost(bool, tag = "5")] + pub ipkoiinhcjp: bool, + #[prost(uint32, tag = "15")] + pub mabcoknipdb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6625)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneEntityDisappearNotify { + #[prost(uint32, repeated, tag = "7")] + pub entity_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub param: u32, + #[prost(enumeration = "VisionType", tag = "15")] + pub disappear_type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2730)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdfdaifpbmi {} +#[derive(proto_gen::CmdID)] +#[cmdid(8686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ioifppmhmka {} +#[derive(proto_gen::CmdID)] +#[cmdid(23531)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Daijffibejf { + #[prost(uint32, repeated, tag = "2")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "4")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "15")] + pub pkkkijalpnm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9000)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndebjndhiec { + #[prost(uint32, tag = "3")] + pub eeddllecdle: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntityClientData { + #[prost(uint32, tag = "1")] + pub wind_change_scene_time: u32, + #[prost(float, tag = "2")] + pub windmill_sync_angle: f32, + #[prost(int32, tag = "3")] + pub wind_change_target_level: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idmjlclifla { + #[prost(uint32, tag = "3")] + pub iiicbihodjb: u32, + #[prost(uint32, tag = "4")] + pub kjoinehljnp: u32, + #[prost(uint32, tag = "6")] + pub eopffipdkgn: u32, + #[prost(message, optional, tag = "7")] + pub hdofjefkgkb: ::core::option::Option, + #[prost(bool, tag = "10")] + pub hjeilabenak: bool, + #[prost(uint32, tag = "15")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8703)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpklldpfmok { + #[prost(map = "uint32, uint32", tag = "8")] + pub fdlkfiekcdk: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "12")] + pub fjokilkfakh: ::std::collections::HashMap, + #[prost(enumeration = "Bieolmjpked", tag = "13")] + pub r#type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3108)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjomcoemddl { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub afeikfcjneo: u32, + #[prost(uint32, tag = "12")] + pub dkiolkfdflp: u32, + #[prost(uint32, repeated, tag = "14")] + pub mnafpkdandj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhbpbciajbm { + #[prost(bool, tag = "15")] + pub ekeikdijabm: bool, + #[prost(oneof = "bhbpbciajbm::Detail", tags = "1, 12, 13")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `BHBPBCIAJBM`. +pub mod bhbpbciajbm { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(uint32, tag = "1")] + TrialConfigId(u32), + #[prost(uint32, tag = "12")] + AvatarId(u32), + #[prost(uint32, tag = "13")] + RentAvatarId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(28486)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifbfgaklmbb {} +#[derive(proto_gen::CmdID)] +#[cmdid(29453)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hoeljjhehon { + #[prost(string, tag = "2")] + pub jhlcikookmo: ::prost::alloc::string::String, + #[prost(uint32, tag = "4")] + pub gadget_id: u32, + #[prost(uint32, tag = "13")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27699)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Japbmmjcfkh { + #[prost(map = "uint32, uint32", tag = "6")] + pub fddebckigge: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dngnakadcba { + #[prost(message, repeated, tag = "11")] + pub pigofiofjid: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1730)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dapifhbkpoo { + #[prost(map = "uint32, message", tag = "1")] + pub fkempcfeeoi: ::std::collections::HashMap, + #[prost(enumeration = "PlayerDieType", tag = "3")] + pub jdfbfdifmmj: i32, + #[prost(message, optional, tag = "7")] + pub goeachamiaf: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "9")] + pub hjbeggjocdn: u32, + #[prost(uint32, tag = "11")] + pub omccjjohdoi: u32, + #[prost(uint32, tag = "14")] + pub ngnkpbemfob: u32, + #[prost(uint32, tag = "15")] + pub gkhnlkaadng: u32, + #[prost(oneof = "dapifhbkpoo::Entity", tags = "2, 5")] + pub entity: ::core::option::Option, +} +/// Nested message and enum types in `DAPIFHBKPOO`. +pub mod dapifhbkpoo { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Entity { + #[prost(uint32, tag = "2")] + MonsterId(u32), + #[prost(uint32, tag = "5")] + GadgetId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbbcjinhnjc { + #[prost(message, repeated, tag = "2")] + pub oplajnckefn: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub openmcebgef: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub eheimdfmhhk: u32, + #[prost(message, optional, tag = "14")] + pub ifneldhkaei: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28300)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cndficlddec { + #[prost(uint32, repeated, tag = "12")] + pub hpckdgemldn: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub bepnjolipfg: bool, + #[prost(bool, tag = "11")] + pub bbfhpffigai: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20702)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glggmpokpmi { + #[prost(uint32, repeated, tag = "9")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "1")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20380)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipbcdnbngep { + #[prost(uint32, tag = "2")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "3")] + pub mngmfjcfmbc: u32, + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "11")] + pub lolmnhaooec: u32, + #[prost(uint32, tag = "13")] + pub dikiefcchpa: u32, + #[prost(message, repeated, tag = "15")] + pub dfdkbiadlnm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghhnbbloaia { + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(uint32, tag = "8")] + pub jahjojochom: u32, + #[prost(message, repeated, tag = "11")] + pub pbebcpgdlco: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub jcbdaeeddcf: u32, + #[prost(bool, tag = "13")] + pub kmbemmpckii: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9690)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofgeiofedak { + #[prost(uint32, repeated, tag = "14")] + pub cnfodgeooef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8282)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhlmdieefmm { + #[prost(uint32, repeated, tag = "9")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub bnblmfkkfgg: u32, + #[prost(uint32, tag = "12")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "14")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8809)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnhebpkchlb { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27053)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhfapobhgih { + #[prost(uint32, tag = "1")] + pub gollekhhdgh: u32, + #[prost(uint32, tag = "2")] + pub pjegodebmjc: u32, + #[prost(uint32, tag = "3")] + pub miildbcnekl: u32, + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(uint32, tag = "9")] + pub dekhbeooien: u32, + #[prost(bool, tag = "10")] + pub dmedoehomkh: bool, + #[prost(bool, tag = "11")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub ljfafdhikjd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7393)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlgfgjfafdi { + #[prost(uint32, tag = "2")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24691)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpekdpfhgko { + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "11")] + pub hjlpileemeb: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onnkfjdgilj { + #[prost(uint32, tag = "1")] + pub fjhhikoihka: u32, + #[prost(uint32, repeated, tag = "3")] + pub jkkkhfekekd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub bdeombceoea: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub peajinifghm: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(uint64, repeated, tag = "15")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2974)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmcpplaodnl { + #[prost(uint64, tag = "7")] + pub avatar_guid: u64, + #[prost(uint32, tag = "9")] + pub nfjohaldgdn: u32, + #[prost(uint32, tag = "11")] + pub jmlppgefbpf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgiahghgajd { + #[prost(message, repeated, tag = "8")] + pub bcdpialogha: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub dflplbjknea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(488)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgmnhjjighk { + #[prost(message, repeated, tag = "9")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub buff_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub kdplcbjgbaf: u32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "10")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olmjnbalkgh { + #[prost(uint32, tag = "3")] + pub bppjaboncjl: u32, + #[prost(uint32, tag = "7")] + pub costume_id: u32, + #[prost(enumeration = "Jailcnefodi", tag = "11")] + pub avatar_type: i32, + #[prost(uint32, tag = "12")] + pub avatar_id: u32, + #[prost(uint32, tag = "15")] + pub cmafekgpacg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjhhimcnoci { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "5")] + pub djfeomjfkgc: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub nkchbiafpom: bool, + #[prost(bool, tag = "8")] + pub lhhbinhjaoe: bool, + #[prost(uint32, tag = "9")] + pub nfllcpmnihn: u32, + #[prost(bool, tag = "11")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "12")] + pub lenmgnmfnnm: u32, + #[prost(uint32, tag = "14")] + pub lflbhacobeo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6921)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fejkledlhja { + #[prost(uint32, tag = "3")] + pub dfjmenlmiii: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8128)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knedhdhihbb { + #[prost(message, optional, tag = "12")] + pub blfkojlccoo: ::core::option::Option, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fncpdglgobc { + #[prost(bool, tag = "2")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub ilffggjakaj: u32, + #[prost(bool, tag = "6")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(576)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aclcphklmof { + #[prost(message, optional, tag = "4")] + pub ocacindeham: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub neoilleiibo: ::core::option::Option, + #[prost(enumeration = "Obidodcpegg", tag = "9")] + pub laicdpfdimh: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26011)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Decbipnpbia {} +#[derive(proto_gen::CmdID)] +#[cmdid(4678)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpaghmdjclf { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27198)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Baniobfiioc { + #[prost(message, repeated, tag = "4")] + pub nohabamidad: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub pmhiiliieig: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub pogdnklbfjm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub lbjcobndkbd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1510)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dekekhbijfn { + #[prost(uint32, tag = "3")] + pub pkicaibdchd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4342)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdljhnolpal {} +#[derive(proto_gen::CmdID)] +#[cmdid(23048)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjfoafnkglk { + #[prost(bool, tag = "7")] + pub eiilpbbllpi: bool, + #[prost(uint32, tag = "14")] + pub entity_id: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "2")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5223)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerLoginReq { + #[prost(string, tag = "1825")] + pub llimbpceabn: ::prost::alloc::string::String, + #[prost(string, tag = "15")] + pub nnbgjpgdgcp: ::prost::alloc::string::String, + #[prost(string, tag = "1174")] + pub lpfpajbhjmh: ::prost::alloc::string::String, + #[prost(string, tag = "8")] + pub jjiohijngfp: ::prost::alloc::string::String, + #[prost(string, tag = "612")] + pub pecpgfpbjeb: ::prost::alloc::string::String, + #[prost(message, optional, tag = "1673")] + pub kofgdjgjplh: ::core::option::Option, + #[prost(string, tag = "879")] + pub country_code: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "986")] + pub extra_bin_data: ::prost::alloc::vec::Vec, + #[prost(string, tag = "2")] + pub mdikihjhhjj: ::prost::alloc::string::String, + #[prost(string, tag = "606")] + pub jcimgdhmmln: ::prost::alloc::string::String, + #[prost(string, tag = "1330")] + pub fbkhednnfif: ::prost::alloc::string::String, + #[prost(string, tag = "12")] + pub token: ::prost::alloc::string::String, + #[prost(string, tag = "487")] + pub cddbbpkkopm: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "460")] + pub pfdfhpkihmo: ::prost::alloc::vec::Vec, + #[prost(string, tag = "7")] + pub keodmfokngh: ::prost::alloc::string::String, + #[prost(string, tag = "519")] + pub cbiehlmfbhi: ::prost::alloc::string::String, + #[prost(string, tag = "13")] + pub account_uid: ::prost::alloc::string::String, + #[prost(message, optional, tag = "1144")] + pub fdnodkobnfh: ::core::option::Option, + #[prost(string, tag = "1351")] + pub imcmlaglodl: ::prost::alloc::string::String, + #[prost(string, tag = "1017")] + pub meegoicdefg: ::prost::alloc::string::String, + #[prost(string, tag = "1495")] + pub hcjgllhfcma: ::prost::alloc::string::String, + #[prost(string, tag = "1544")] + pub jiphknnhbie: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "1008")] + pub ofmihdngfnm: ::prost::alloc::vec::Vec, + #[prost(string, tag = "1842")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "1")] + pub platform: ::prost::alloc::string::String, + #[prost(string, tag = "10")] + pub imaciigiogc: ::prost::alloc::string::String, + #[prost(string, tag = "1272")] + pub mmdpdoococo: ::prost::alloc::string::String, + #[prost(uint32, tag = "1866")] + pub plnnjpfppam: u32, + #[prost(uint32, tag = "1897")] + pub target_home_owner_uid: u32, + #[prost(uint32, tag = "236")] + pub ocinfhojcea: u32, + #[prost(uint32, tag = "4")] + pub platform_type: u32, + #[prost(uint32, tag = "1249")] + pub mckeonlbaoa: u32, + #[prost(uint32, tag = "144")] + pub fnpppmbibem: u32, + #[prost(uint32, tag = "1793")] + pub kpcgbpchbmj: u32, + #[prost(uint32, tag = "5")] + pub account_type: u32, + #[prost(uint32, tag = "1303")] + pub gm_uid: u32, + #[prost(uint32, tag = "333")] + pub epagbflkjbn: u32, + #[prost(uint32, tag = "3")] + pub target_uid: u32, + #[prost(uint32, tag = "6")] + pub bfpjpdclfnm: u32, + #[prost(uint32, tag = "902")] + pub ikkklhicpmf: u32, + #[prost(uint32, tag = "1879")] + pub dkgaonkkoha: u32, + #[prost(uint32, tag = "191")] + pub tag: u32, + #[prost(uint64, tag = "11")] + pub login_rand: u64, + #[prost(bool, tag = "1338")] + pub jagelbdjfjh: bool, + #[prost(bool, tag = "14")] + pub is_guest: bool, + #[prost(bool, tag = "9")] + pub haaggonehch: bool, + #[prost(uint32, tag = "155")] + pub ncnkmdbafeh: u32, + #[prost(uint32, tag = "906")] + pub kekhakapmin: u32, + #[prost(uint32, tag = "43")] + pub client_data_version: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8033)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlbloedhdna { + #[prost(message, repeated, tag = "15")] + pub eloilboekpk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27503)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljomjdecllc {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hajbjkcbfgf { + #[prost(uint32, repeated, tag = "15")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25104)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdhbgcgmfop { + #[prost(uint32, tag = "1")] + pub end_time: u32, + #[prost(uint32, tag = "6")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "7")] + pub llmjiojfmbj: u32, + #[prost(uint32, tag = "11")] + pub jahipcehnib: u32, + #[prost(uint32, tag = "15")] + pub ppmpfmbfmbb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27192)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Keihkjpmnhh { + #[prost(uint32, tag = "6")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "8")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1259)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phfdkolmggi { + #[prost(uint32, tag = "15")] + pub dglcdjnmnkh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlgblaibmng { + #[prost(message, repeated, tag = "13")] + pub lioebadblca: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3073)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifeefmhnemp { + #[prost(uint32, tag = "14")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oildjfmlmjl { + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(uint32, tag = "10")] + pub data: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2012)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjnpcicjeeb { + #[prost(message, optional, tag = "3")] + pub dejoimafmck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojhnhnnepip { + #[prost(message, repeated, tag = "1")] + pub avatar_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub oebibbfhikd: u32, + #[prost(uint32, tag = "10")] + pub glffdomajdd: u32, + #[prost(uint32, tag = "13")] + pub ledgjdcjimk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27931)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbhhlcnghco { + #[prost(message, optional, tag = "2")] + pub aebglfmjfhm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27641)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnklangghgk { + #[prost(uint32, tag = "12")] + pub ohkidhnabib: u32, + #[prost(bool, tag = "7")] + pub bgaoacgaldg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26432)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chajoinpleh { + #[prost(uint32, tag = "2")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "8")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3023)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klbaameglha { + #[prost(uint32, tag = "10")] + pub omgchbachci: u32, + #[prost(message, optional, tag = "13")] + pub bepfmdkmfic: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9729)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpicjjonljd { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9624)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofoaamimbho { + #[prost(bool, tag = "3")] + pub npodkpfblpo: bool, + #[prost(bool, tag = "6")] + pub lhhbinhjaoe: bool, + #[prost(uint32, tag = "8")] + pub bimcajgddoi: u32, + #[prost(bool, tag = "15")] + pub miopoohgdpm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28560)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ginplfinfcp { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29081)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gblnhbfhanf { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjcljleknek { + #[prost(map = "uint32, uint32", tag = "5")] + pub maijpomopne: ::std::collections::HashMap, + #[prost(uint32, tag = "10")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "12")] + pub eagoggjecjc: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgbbfognlkn { + #[prost(uint32, repeated, tag = "1")] + pub oohggbkfell: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub pgnloogfeke: u32, + #[prost(uint32, tag = "5")] + pub gnegaogjlbd: u32, + #[prost(uint32, tag = "6")] + pub lhlgjeonmdl: u32, + #[prost(uint32, repeated, tag = "10")] + pub hmedfeamnba: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23351)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Depchmjdmei { + #[prost(uint32, tag = "6")] + pub lgooidciaag: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub kdknoocoebm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25170)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jimeehbhghk { + #[prost(uint32, tag = "1")] + pub blbccmphapa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6990)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ServerDisconnectClientNotify { + #[prost(uint32, tag = "10")] + pub data: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20090)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnldbgenonp { + #[prost(uint32, tag = "13")] + pub scene_id: u32, + #[prost(uint32, tag = "4")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elebhcpkcmj { + #[prost(message, repeated, tag = "4")] + pub mneogibkoon: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifmkomlekpf { + #[prost(uint32, tag = "2")] + pub klnoghllfpl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2875)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfaaldlndnc { + #[prost(uint64, tag = "4")] + pub gedmdocolfj: u64, + #[prost(bool, tag = "7")] + pub is_add: bool, + #[prost(uint32, tag = "1")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26460)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgcfljeajie { + #[prost(bool, tag = "2")] + pub bhhcjikkibo: bool, + #[prost(uint32, tag = "14")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(951)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcednoegdog { + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7244)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmpblacdaje { + #[prost(uint32, repeated, tag = "374")] + pub cdoeckccgdp: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "1225")] + pub ability_name: ::core::option::Option, + #[prost(uint32, repeated, tag = "1312")] + pub eahfiofcond: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub ebapjpnlcib: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub pdfdckhldok: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub owner_entity_id: u32, + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(int32, tag = "1578")] + pub local_id: i32, + #[prost(uint32, tag = "14")] + pub jbllllojnlp: u32, + #[prost(uint32, tag = "1301")] + pub lkhkmkmkmjc: u32, + #[prost(uint32, tag = "12")] + pub kaioccbnppa: u32, + #[prost(uint32, tag = "5")] + pub prop_owner_entity_id: u32, + #[prost(uint32, tag = "758")] + pub init_pose_id: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "13")] + pub lkidbhiooog: i32, + #[prost(uint32, tag = "4")] + pub ghogbhlmckl: u32, + #[prost(uint32, tag = "1")] + pub jddamhceape: u32, + #[prost(bool, tag = "7")] + pub mbhbbjhmleh: bool, + #[prost(bool, tag = "1188")] + pub nplkhloppjg: bool, + #[prost(bool, tag = "1620")] + pub ahpaefcodfk: bool, + #[prost(bool, tag = "9")] + pub phfepgidogi: bool, + #[prost(uint32, tag = "8")] + pub room_id: u32, + #[prost(uint32, tag = "15")] + pub config_id: u32, + #[prost(uint64, tag = "10")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1092)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oagcnkgfdhn { + #[prost(uint32, repeated, tag = "8")] + pub dlfdfcfeifb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcmmiknlcjb { + #[prost(message, repeated, tag = "15")] + pub cclgckhpcjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27576)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hklbheaioal { + #[prost(uint32, tag = "5")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub ffhembokbef: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20634)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpgpcdcalpc { + #[prost(float, tag = "1")] + pub gnjcidhobia: f32, + #[prost(uint32, tag = "2")] + pub aaaohhgbhab: u32, + #[prost(uint32, tag = "13")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8541)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clfgclinhfc { + #[prost(uint32, tag = "15")] + pub bpflddihccg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1970)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmboaldgfjf { + #[prost(message, repeated, tag = "2")] + pub bnmfbfkglbe: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(448)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmaapdnkgpj { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccgfkeglihc { + #[prost(string, tag = "4")] + pub ppcokjjocoi: ::prost::alloc::string::String, + #[prost(uint32, tag = "6")] + pub dppfeemfnmn: u32, + #[prost(uint32, tag = "9")] + pub uid: u32, + #[prost(fixed32, tag = "13")] + pub ghdjjmikfpi: u32, + #[prost(message, optional, tag = "15")] + pub blfkojlccoo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1852)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oegndfenmkp { + #[prost(message, repeated, tag = "14")] + pub acemalekhld: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "8")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29289)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flekobdjmfc { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20015)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jklpdbaanpe { + #[prost(uint32, tag = "7")] + pub key: u32, + #[prost(uint32, tag = "6")] + pub gnjcidhobia: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29203)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lioomdeongk { + #[prost(uint32, tag = "7")] + pub kenikecfflm: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2590)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetUpAvatarTeamRsp { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub team_id: u32, + #[prost(uint64, tag = "7")] + pub cur_avatar_guid: u64, + #[prost(uint64, repeated, tag = "11")] + pub avatar_team_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkhbfjiembg { + #[prost(uint32, tag = "12")] + pub fhhjghkngfg: u32, + #[prost(message, repeated, tag = "14")] + pub mllipapceaf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfdhmkdcobl { + #[prost(message, optional, tag = "3")] + pub gcobkcepimj: ::core::option::Option, + #[prost(message, repeated, tag = "4")] + pub djhnhpipfba: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub buff_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "13")] + pub pakcabfdked: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckbocoihknc { + #[prost(uint32, tag = "3")] + pub oboopjlpdni: u32, + #[prost(enumeration = "Bdkppllibff", tag = "8")] + pub state: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25277)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebepobekkdl { + #[prost(uint32, tag = "14")] + pub gknplcafbmb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28529)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cekhmbpemda { + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "10")] + pub lejlmjjdedc: bool, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmecifnikhf { + #[prost(uint32, tag = "1")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "7")] + pub npfipfpfini: u32, + #[prost(bool, tag = "9")] + pub galmkiodanm: bool, + #[prost(uint32, repeated, tag = "10")] + pub lejcfafgmbh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub hiplmeoicbg: u32, + #[prost(enumeration = "Fblkbbkfenl", tag = "12")] + pub bdngjlaacgl: i32, + #[prost(bool, tag = "13")] + pub bkilicajhpj: bool, + #[prost(uint32, repeated, tag = "15")] + pub aipamkaahej: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmfekgahdgc { + #[prost(bool, tag = "14")] + pub fpgmpdhhfbe: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7005)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfpkjcooddh { + #[prost(message, repeated, tag = "7")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7921)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbgkjeckalp { + #[prost(bool, tag = "2")] + pub bhffjlaachb: bool, + #[prost(bool, tag = "6")] + pub pkikljpbfld: bool, + #[prost(uint32, tag = "9")] + pub iidhpkefhpm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3661)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okafjfpcine { + #[prost(message, repeated, tag = "8")] + pub fhancekjeoi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub fkhohkelkoe: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmfilhpjlki { + #[prost(bool, tag = "6")] + pub dklgbfpccen: bool, + #[prost(uint32, tag = "8")] + pub fndeickokmo: u32, + #[prost(uint32, tag = "15")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23101)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmfbblggdeb { + #[prost(message, optional, tag = "11")] + pub abpjibdjipa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1711)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klhpnkepaoa { + #[prost(uint64, tag = "4")] + pub avatar_guid: u64, + #[prost(uint32, tag = "7")] + pub skill_depot_id: u32, + #[prost(uint32, tag = "9")] + pub jgihcibojpn: u32, + #[prost(uint32, tag = "10")] + pub jmlppgefbpf: u32, + #[prost(uint32, tag = "11")] + pub nfjohaldgdn: u32, + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23976)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfehppbnick {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppgpjddiehm { + #[prost(uint32, repeated, tag = "4")] + pub ogjodgflein: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7004)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetPlayerBornDataRsp { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27445)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmnemmdboib { + #[prost(bool, tag = "7")] + pub ebhfibehjge: bool, + #[prost(uint32, tag = "12")] + pub jchhllebmja: u32, + #[prost(uint32, tag = "3")] + pub cmdnkflfhia: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7110)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmpdfjjmoco {} +#[derive(proto_gen::CmdID)] +#[cmdid(26671)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfjmgjficej { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmennamcmhc { + #[prost(message, optional, tag = "6")] + pub ohlahiokhod: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub nbeolenhmfm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9379)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbmblelgdjk { + #[prost(uint32, tag = "8")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29128)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmajaffjkfj { + #[prost(message, repeated, tag = "9")] + pub jfnnnipocbj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9542)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocjdmgldeik { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22714)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbeidogfbln { + #[prost(uint32, tag = "7")] + pub mgcmnplnjkl: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20130)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgokcfgepnj { + #[prost(message, optional, tag = "5")] + pub agllfjbkmjk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njhegccdbbc { + #[prost(uint32, tag = "2")] + pub pefplnjheli: u32, + #[prost(uint32, tag = "5")] + pub dmnldppgokg: u32, + #[prost(uint32, repeated, tag = "6")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1547)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjpjeaobcpn { + #[prost(uint64, tag = "10")] + pub baengfiafmf: u64, + #[prost(uint64, tag = "7")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22970)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbhalafbcci { + #[prost(uint32, tag = "6")] + pub ejgkapalfjb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9597)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkgjplklbbi { + #[prost(uint32, repeated, tag = "13")] + pub belmemdfepn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pkmjlonieco: u32, + #[prost(uint32, tag = "5")] + pub lpganhofjoa: u32, + #[prost(uint32, tag = "1")] + pub oiphhklaibf: u32, + #[prost(uint32, tag = "10")] + pub ploahdfgdfe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(732)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkampdopdib { + #[prost(uint32, tag = "13")] + pub aaecbhcckbo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(384)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhpbpgfedcb { + #[prost(message, repeated, tag = "4")] + pub pilhdlllcai: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4303)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpkkiponhck { + #[prost(uint32, repeated, tag = "7")] + pub mdcdgkclnfl: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "14")] + pub pfokfhlokej: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2008)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aieacakimgm { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22447)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhilepniaoo {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjnkamcmnpf { + #[prost(uint32, tag = "5")] + pub peblohahpmm: u32, + #[prost(uint32, tag = "6")] + pub apnlofpnahn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkobcnpgkbn { + #[prost(message, optional, tag = "6")] + pub ebndeihoeom: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub ehejdjoeind: u32, + #[prost(uint32, tag = "14")] + pub eobkdkgocgo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28290)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Benikinjdjc { + #[prost(uint32, repeated, tag = "2")] + pub geeddoemcfo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RegionInfo { + #[prost(string, tag = "1")] + pub gateserver_ip: ::prost::alloc::string::String, + #[prost(uint32, tag = "2")] + pub gateserver_port: u32, + #[prost(string, tag = "3")] + pub pay_callback_url: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub area_type: ::prost::alloc::string::String, + #[prost(string, tag = "8")] + pub resource_url: ::prost::alloc::string::String, + #[prost(string, tag = "9")] + pub data_url: ::prost::alloc::string::String, + #[prost(string, tag = "10")] + pub feedback_url: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub bulletin_url: ::prost::alloc::string::String, + #[prost(string, tag = "12")] + pub resource_url_bak: ::prost::alloc::string::String, + #[prost(string, tag = "13")] + pub data_url_bak: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub client_data_version: u32, + #[prost(string, tag = "16")] + pub handbook_url: ::prost::alloc::string::String, + #[prost(uint32, tag = "18")] + pub client_silence_data_version: u32, + #[prost(string, tag = "19")] + pub client_data_md5: ::prost::alloc::string::String, + #[prost(string, tag = "20")] + pub client_silence_data_md5: ::prost::alloc::string::String, + #[prost(message, optional, tag = "22")] + pub res_version_config: ::core::option::Option, + #[prost(bytes = "vec", tag = "23")] + pub secret_key: ::prost::alloc::vec::Vec, + #[prost(string, tag = "24")] + pub official_community_url: ::prost::alloc::string::String, + #[prost(string, tag = "26")] + pub client_version_suffix: ::prost::alloc::string::String, + #[prost(string, tag = "27")] + pub client_silence_version_suffix: ::prost::alloc::string::String, + #[prost(bool, tag = "28")] + pub use_gateserver_domain_name: bool, + #[prost(string, tag = "29")] + pub gateserver_domain_name: ::prost::alloc::string::String, + #[prost(string, tag = "30")] + pub user_center_url: ::prost::alloc::string::String, + #[prost(string, tag = "31")] + pub account_bind_url: ::prost::alloc::string::String, + #[prost(string, tag = "32")] + pub cdkey_url: ::prost::alloc::string::String, + #[prost(string, tag = "33")] + pub privacy_policy_url: ::prost::alloc::string::String, + #[prost(string, tag = "34")] + pub next_resource_url: ::prost::alloc::string::String, + #[prost(message, optional, tag = "35")] + pub next_res_version_config: ::core::option::Option, + #[prost(string, tag = "36")] + pub game_biz: ::prost::alloc::string::String, + #[prost(string, tag = "37")] + pub gateserver_ipv6_ip: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnifdnmikif { + #[prost(string, tag = "1")] + pub mgdjmemfbcd: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub jfambdkkdhe: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub bdofcococph: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub lgmpogacdha: ::prost::alloc::string::String, + #[prost(string, tag = "12")] + pub jlkfdddpphd: ::prost::alloc::string::String, + #[prost(string, tag = "13")] + pub kibfinhdcko: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jblomepmfin { + #[prost(uint32, tag = "3")] + pub phmkpnkmooe: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6180)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnnnmhaacok { + #[prost(message, optional, tag = "2")] + pub jjeepbcifcp: ::core::option::Option, + #[prost(int32, repeated, tag = "5")] + pub alkgminnaml: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "13")] + pub ffdebpeddmd: ::core::option::Option, + #[prost(message, repeated, tag = "6")] + pub cachpghfffc: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Afbfhonpigc", tag = "8")] + pub ipnbijodglg: i32, + #[prost(int32, tag = "15")] + pub jjfpfmpjema: i32, + #[prost(enumeration = "Icbodpognhd", tag = "10")] + pub jamcgnfbiba: i32, + #[prost(uint32, tag = "9")] + pub scene_id: u32, + #[prost(int32, tag = "1")] + pub kfmjnmglkee: i32, + #[prost(enumeration = "Lppfedcjjap", tag = "12")] + pub chelnbllfkb: i32, + #[prost(bool, tag = "3")] + pub bkiknhbodkb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25663)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbaiaflkhaj { + #[prost(uint32, tag = "3")] + pub onabdgfcpih: u32, + #[prost(bool, tag = "12")] + pub hkdhoncfgoj: bool, + #[prost(enumeration = "Hibhhjenmpp", tag = "9")] + pub pipmddflkmo: i32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(oneof = "gbaiaflkhaj::Detail", tags = "2043, 1860, 1989, 784, 1307")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `GBAIAFLKHAJ`. +pub mod gbaiaflkhaj { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "2043")] + BirdBallClientInfo(super::Iddikhfdhog), + #[prost(message, tag = "1860")] + GreatFestivalV2SheetRestoreInfo(super::Kcagnbmdjmh), + #[prost(message, tag = "1989")] + CookGameInfo(super::Gkomdabhopi), + #[prost(message, tag = "784")] + FairyTalesFlyppyHatInfo(super::Ppcnlmmomoe), + #[prost(message, tag = "1307")] + CatcafeInfo(super::Mhobdfhbloi), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(4799)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaopbagebbf { + #[prost(uint32, tag = "9")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hackpihcioi { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(bool, tag = "3")] + pub jkejaoohbjb: bool, + #[prost(bool, tag = "11")] + pub dohhenfngpe: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2751)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dadllpgicpa { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub oehkjpbepkb: u32, + #[prost(uint32, repeated, tag = "7")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub iehlhaogkpj: u32, + #[prost(bool, tag = "11")] + pub djoclokdkae: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mknkblppjmi { + #[prost(bool, tag = "1")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "7")] + pub peajinifghm: u32, + #[prost(uint32, tag = "10")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20108)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abefjahnfjm { + #[prost(message, repeated, tag = "5")] + pub bnlkkidlbme: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "13")] + pub mjaoipldjmc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4723)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjpkopiiggl { + #[prost(uint32, tag = "1")] + pub kepfcpaljgn: u32, + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(enumeration = "Ohgcdmmlnok", tag = "4")] + pub bcdelafdiog: i32, + #[prost(int32, tag = "5")] + pub blhlceeohhd: i32, + #[prost(message, optional, tag = "6")] + pub emignngobod: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub ldbdifabgce: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub bokfanfefne: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "11")] + pub lkidbhiooog: i32, + #[prost(uint32, tag = "14")] + pub cojbpkdfnch: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pndpbppmkid { + #[prost(uint32, repeated, tag = "2")] + pub fkgbkfahefk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub level: u32, + #[prost(bool, tag = "5")] + pub dfngomailbc: bool, + #[prost(bool, tag = "6")] + pub mibjmkdnlfh: bool, + #[prost(uint32, tag = "7")] + pub lhdahdneppl: u32, + #[prost(map = "uint32, uint32", tag = "10")] + pub nkdlecndepa: ::std::collections::HashMap, + #[prost(oneof = "pndpbppmkid::Detail", tags = "1515")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `PNDPBPPMKID`. +pub mod pndpbppmkid { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "1515")] + OfferingPariDetailData(super::Aekanihggbl), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hikiafmnklo { + #[prost(message, optional, tag = "1")] + pub blfkojlccoo: ::core::option::Option, + #[prost(bool, tag = "3")] + pub gfpgmmefpgb: bool, + #[prost(uint32, tag = "5")] + pub jdhfhcfeonf: u32, + #[prost(uint32, tag = "6")] + pub okicoglejec: u32, + #[prost(string, tag = "9")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(string, tag = "10")] + pub pbigganlbdh: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "13")] + pub avatar_id: u32, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Babeofpjijn { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(uint32, tag = "4")] + pub costume_id: u32, + #[prost(uint32, tag = "7")] + pub avatar_id: u32, + #[prost(string, tag = "12")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(bool, tag = "14")] + pub hjfopbhakde: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jakkockddop { + #[prost(uint32, tag = "5")] + pub pfbhahgjgfh: u32, + #[prost(uint32, repeated, tag = "7")] + pub neebbadgimn: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub pegadobnfje: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8688)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjblhmbafid { + #[prost(uint32, tag = "11")] + pub scene_id: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idalmaljcao {} +#[derive(proto_gen::CmdID)] +#[cmdid(4697)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phmbdnhhebi {} +#[derive(proto_gen::CmdID)] +#[cmdid(28995)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdbffadhfae { + #[prost(message, repeated, tag = "1")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Paahdfjmicd", tag = "10")] + pub reason: i32, + #[prost(bool, tag = "11")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub lappelekahp: u32, + #[prost(message, repeated, tag = "14")] + pub filhggiljln: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20398)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ooajpkpnekc { + #[prost(message, optional, tag = "14")] + pub ckibhdfljfg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onjiengbdip { + #[prost(bool, tag = "5")] + pub nfolocgbffg: bool, + #[prost(uint32, tag = "8")] + pub comefdoonhd: u32, + #[prost(enumeration = "Jdfkbdohhni", tag = "11")] + pub state: i32, + #[prost(uint32, tag = "13")] + pub geihmkhcije: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdpinkbncbo { + #[prost(bool, tag = "1")] + pub dpiijegocoi: bool, + #[prost(uint32, tag = "7")] + pub skill_id: u32, + #[prost(bool, tag = "11")] + pub jkpfoepekil: bool, + #[prost(bool, tag = "12")] + pub ininkkmfhmf: bool, + #[prost(bool, tag = "15")] + pub ognmmkkcadi: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6223)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgpijfablgk { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29861)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iadacdinfha {} +#[derive(proto_gen::CmdID)] +#[cmdid(29317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nofpjbmcbbi { + #[prost(uint32, repeated, tag = "13")] + pub lfbghoahkfn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29135)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aldlgpdfcfh { + #[prost(uint64, tag = "14")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28753)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eaojbocppdd { + #[prost(uint32, tag = "6")] + pub ddkjchigmek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3651)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cabnmhdheng { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olbakomobei { + #[prost(uint32, tag = "2")] + pub bhkedlmdgpm: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "3")] + pub reason: i32, + #[prost(uint32, tag = "5")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "13")] + pub lmjnokajeki: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjghbgiimdd { + #[prost(uint32, repeated, tag = "13")] + pub ebeecdalmkm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8663)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmonfgpdgmh { + #[prost(uint32, tag = "7")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29493)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfenigbpgam { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25135)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbkihhhkmbg { + #[prost(bool, tag = "1")] + pub cjmkaiplkpp: bool, + #[prost(uint32, tag = "10")] + pub gadget_id: u32, + #[prost(enumeration = "Aefkhogcdoe", tag = "2")] + pub eaggojpmmbp: i32, + #[prost(uint32, tag = "5")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "3")] + pub jngedmophfe: u32, + #[prost(uint32, tag = "4")] + pub chddofmlblm: u32, + #[prost(enumeration = "Hhnoenmdggg", tag = "14")] + pub kfmglfjdodo: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7434)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pibalnkgbcn {} +#[derive(proto_gen::CmdID)] +#[cmdid(3400)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Almajjbdnen { + #[prost(uint32, tag = "2")] + pub ccpigccdboi: u32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "15")] + pub nlanefnjdmn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mllbffmeemp { + #[prost(uint32, tag = "2")] + pub nldmdecjcmg: u32, + #[prost(float, tag = "7")] + pub fgidaldomaf: f32, + #[prost(uint32, tag = "12")] + pub gcbhmfenena: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3057)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbhfpalihak { + #[prost(uint32, tag = "4")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7742)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfhdboepbmn { + #[prost(message, repeated, tag = "9")] + pub bihiklaiolg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eiblpcaajkb { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "9")] + pub avatar_id: u32, + #[prost(uint32, tag = "12")] + pub bppjaboncjl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkbnodnakip { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, optional, tag = "9")] + pub fflgcbbliao: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5327)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llcoobjbndf {} +#[derive(proto_gen::CmdID)] +#[cmdid(20435)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olkkljfihbh { + #[prost(uint32, tag = "8")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8647)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mflijjicknj { + #[prost(uint32, repeated, tag = "3")] + pub ghkkndmnogo: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "4")] + pub oegmmdljkdm: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmgekoamleo { + #[prost(message, repeated, tag = "11")] + pub pigkifkkjfe: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub donnenpiddb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28480)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gimoifamicm { + #[prost(enumeration = "Eclbipadhbl", tag = "2")] + pub ffmcekmjclc: i32, + #[prost(string, tag = "10")] + pub mbjkkmlplbc: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23637)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfheeegcppa { + #[prost(uint32, tag = "1")] + pub obdconjmpfn: u32, + #[prost(bool, tag = "6")] + pub jhfmeficaal: bool, + #[prost(bool, tag = "7")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhpcnemciia { + #[prost(map = "uint32, uint32", tag = "2")] + pub hipkgdhphla: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "12")] + pub bijhlibinod: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(755)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Annbjgndcjp { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29936)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhlkobhdmcp { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23824)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbbehaolmmc { + #[prost(uint64, tag = "5")] + pub guid: u64, + #[prost(bool, tag = "10")] + pub dhaomgmmdpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8214)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jomojbpdahe { + #[prost(string, tag = "14")] + pub epfpbkmomca: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26795)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imdlpjkaigl { + #[prost(uint32, tag = "1")] + pub ndehkhcalmf: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub param: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfmhncmkoaf { + #[prost(message, repeated, tag = "3")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "11")] + pub jbplgbkldlp: u32, + #[prost(uint32, tag = "13")] + pub ppbamnfheje: u32, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plhljcaljhn { + #[prost(message, repeated, tag = "1")] + pub lklifpnkclf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "5")] + pub jhfmeficaal: bool, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(552)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clcndfccbeg { + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub jjpcpmfdneh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7430)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Koljgbkcdfe { + #[prost(uint32, tag = "6")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nheipeoofhn { + #[prost(uint32, tag = "3")] + pub kbjnlbkmedp: u32, + #[prost(uint32, tag = "6")] + pub kdefnpgadfb: u32, + #[prost(message, repeated, tag = "8")] + pub iecgngfmoip: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub kpbecglgibm: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncgjebljecf { + #[prost(message, repeated, tag = "3")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28543)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkemmlahhek { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3432)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdcddploklc { + #[prost(uint64, tag = "11")] + pub avatar_guid: u64, + #[prost(uint32, tag = "7")] + pub item_id: u32, + #[prost(uint32, tag = "10")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8089)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihdldcfpkaa { + #[prost(bool, tag = "3")] + pub mbfllhnligd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24558)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oggmapcgjpg { + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(message, optional, tag = "15")] + pub oomnoofgino: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4537)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gebofmoadnc { + #[prost(message, optional, tag = "1")] + pub nlkgmjnajhg: ::core::option::Option, + #[prost(uint32, repeated, tag = "9")] + pub apdfabcoghk: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "14")] + pub keebgpjmcmb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hofgfncfkbc { + #[prost(uint32, tag = "3")] + pub gbaglgmgjhj: u32, + #[prost(uint32, tag = "4")] + pub epcpnhjnkbn: u32, + #[prost(uint32, tag = "7")] + pub acjpdgmfgnl: u32, + #[prost(uint32, tag = "8")] + pub peagfmgmeah: u32, + #[prost(uint32, tag = "10")] + pub omgchbachci: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "11")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27725)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekncdhckigd { + #[prost(uint32, tag = "1")] + pub ooflahmeleo: u32, + #[prost(message, repeated, tag = "11")] + pub kjfmdlmnfam: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21615)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iocgpkahppd { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1698)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnnmdljjofa { + #[prost(message, optional, tag = "1")] + pub glmklipeldi: ::core::option::Option, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(959)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Defiogbongl { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1286)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfkcpfjbiid { + #[prost(uint32, tag = "6")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbilitySyncStateInfo { + #[prost(bool, tag = "1")] + pub is_inited: bool, + #[prost(message, repeated, tag = "2")] + pub dynamic_value_map: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub applied_abilities: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub applied_modifiers: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub mixin_recover_infos: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub sgv_dynamic_value_map: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9894)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ioladinjkka { + #[prost(message, repeated, tag = "6")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23567)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khfaimhknnb { + #[prost(enumeration = "Jlopibknegm", tag = "1")] + pub dmnldppgokg: i32, + #[prost(uint32, tag = "15")] + pub kfpegnaadlo: u32, + #[prost(uint32, tag = "14")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4906)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Domjedhpfai { + #[prost(uint32, tag = "3")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22405)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnempfbeajo { + #[prost(uint32, tag = "7")] + pub ddnpgfanekk: u32, + #[prost(message, repeated, tag = "10")] + pub nicodpphlgi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub fhdnmihoabj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub acddkljhcia: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aonnihmpech { + #[prost(uint32, tag = "4")] + pub count: u32, + #[prost(uint32, tag = "7")] + pub hfpboeeopbf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8774)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lohbgcclmho { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5816)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmgolohmbji { + #[prost(enumeration = "Jbacjjpknga", tag = "10")] + pub reason: i32, + #[prost(string, tag = "15")] + pub bkdilgijpeg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcmpeogagca { + #[prost(bool, tag = "10")] + pub oejhkfpoege: bool, + #[prost(uint32, tag = "12")] + pub cknbekpnhli: u32, + #[prost(uint32, tag = "15")] + pub amhhcbfflpl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22539)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omnejighkah { + #[prost(bool, tag = "6")] + pub ejaiaekgmbc: bool, + #[prost(message, optional, tag = "14")] + pub nppeicdfdpk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekiahognhgg { + #[prost(enumeration = "Eegmnipnkmj", tag = "5")] + pub reason: i32, + #[prost(uint32, tag = "9")] + pub fbpgimlmdnj: u32, + #[prost(uint32, repeated, tag = "15")] + pub lgbipehfabc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26232)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdonjabkcec { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub phmkpnkmooe: u32, + #[prost(uint32, tag = "11")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27297)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpkhcmgndpi {} +#[derive(proto_gen::CmdID)] +#[cmdid(4309)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcmbbieohjp { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbaokamjhpd { + #[prost(message, optional, tag = "1")] + pub bhjhagccpib: ::core::option::Option, + #[prost(bool, tag = "9")] + pub ekjmdindggg: bool, + #[prost(bool, tag = "13")] + pub is_reconnect: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkkanfffpkd { + #[prost(uint32, tag = "3")] + pub mempkcgnnmf: u32, + #[prost(oneof = "dkkanfffpkd::Gcbckcbnpmn", tags = "4, 5, 12")] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `DKKANFFFPKD`. +pub mod dkkanfffpkd { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "4")] + SecondStageInfo(super::Mkjipiajnmf), + #[prost(message, tag = "5")] + ThirdStageInfo(super::Bjeglidfjne), + #[prost(message, tag = "12")] + FirstStageInfo(super::Kgmkmgmicfj), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(25353)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Loglbjpomfj { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20802)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jilkgbccnab { + #[prost(uint32, tag = "2")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9126)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aaldgjpngco { + #[prost(string, tag = "6")] + pub kadfmamhgbg: ::prost::alloc::string::String, + #[prost(uint32, tag = "8")] + pub item_id: u32, + #[prost(message, repeated, tag = "9")] + pub neclanajkjj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21326)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkcgooakipn { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3510)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahcgdhdmpla { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7280)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iclglbehdng { + #[prost(uint32, repeated, tag = "4")] + pub pnomgdmcpjh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20065)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmdnljpkdhe { + #[prost(message, repeated, tag = "5")] + pub bcmlddcnadf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "1")] + pub fhhjghkngfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1360)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfdffnemaed { + #[prost(uint32, repeated, tag = "7")] + pub hljohdkcbjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1302)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgajjpbpfkc { + #[prost(message, repeated, tag = "1")] + pub gbhoolgcene: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5458)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ameceffdoda { + #[prost(uint32, tag = "4")] + pub jlmkcinpcgf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28955)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmecaahdiho { + #[prost(uint32, tag = "2")] + pub ckbciahglmi: u32, + #[prost(uint32, tag = "7")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29747)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjielohbfpm { + #[prost(uint32, repeated, tag = "14")] + pub jabmphlokni: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8457)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlifcllhkij { + #[prost(uint64, repeated, tag = "9")] + pub hhbnnbdgfim: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub kfpegnaadlo: u32, + #[prost(uint32, tag = "13")] + pub gaplfmmgbfa: u32, + #[prost(uint64, tag = "14")] + pub cur_avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22909)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iohbpdcincb { + #[prost(string, tag = "3")] + pub oiekbajlmoo: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub gdgefdbjffd: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22763)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opjjabniggh { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(message, optional, tag = "8")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abegkkekjmi { + #[prost(uint32, tag = "2")] + pub lnbbmiahhnd: u32, + #[prost(uint32, tag = "5")] + pub fenjhmlgkie: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(558)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkbkbpmlcdm { + #[prost(uint32, tag = "9")] + pub ocinfhojcea: u32, + #[prost(message, optional, tag = "15")] + pub ilnbhpkjkmg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22946)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iekmnkbhpfa { + #[prost(bool, tag = "4")] + pub fofbkdlgime: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dappcggbonm { + #[prost(enumeration = "Lekkkbafdam", tag = "1")] + pub lmgnncgppcg: i32, + #[prost(uint32, repeated, tag = "2")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub bbcmbaoakfi: u32, + #[prost(uint32, tag = "4")] + pub jidoclgijbp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6663)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poheegcndke { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27832)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjdeeciglpp { + #[prost(message, optional, tag = "2")] + pub eaihkeigiio: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "11")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Meigmjnljjf { + #[prost(bool, tag = "1")] + pub aiopioomehb: bool, + #[prost(uint32, tag = "5")] + pub pplchpohjal: u32, + #[prost(enumeration = "Ibfpdnnekli", tag = "6")] + pub lmgnncgppcg: i32, + #[prost(uint32, tag = "7")] + pub icblkpkanmk: u32, + #[prost(uint32, tag = "8")] + pub affklogicmo: u32, + #[prost(uint32, tag = "9")] + pub boadnakmfif: u32, + #[prost(map = "uint32, uint32", tag = "10")] + pub hoeofipcgbg: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub himacdielmk: u32, + #[prost(bool, tag = "12")] + pub pmgbpkdgjok: bool, + #[prost(uint32, tag = "13")] + pub llpnnpkkchc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4843)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbjplekogkl { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27329)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhmfbndllmm { + #[prost(message, repeated, tag = "2")] + pub fpdbhhdageb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub hfjpmhfffjc: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "13")] + pub gaahojippjo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjhjfeiojmh { + #[prost(message, repeated, tag = "1")] + pub ningbfipjpd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub jpanpdjfhjk: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "5")] + pub mbkkphciiai: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub igkjoombffm: u32, + #[prost(uint32, repeated, tag = "7")] + pub dhnaoljdkmd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub ampcnpfpbel: u32, + #[prost(uint32, tag = "9")] + pub hbkdflgipmg: u32, + #[prost(uint32, repeated, tag = "10")] + pub jkodffffkcb: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub ailoghkfhko: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "12")] + pub hfipaljkada: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub eakgoadiemj: u32, + #[prost(message, optional, tag = "14")] + pub folnenedfig: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oaoglgbpbdm { + #[prost(uint32, repeated, tag = "7")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub pdpcieiolln: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Podpbjoalmc { + #[prost(uint64, tag = "7")] + pub hciiahlmpjj: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9942)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kipcahcfmnc { + #[prost(uint32, repeated, tag = "5")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pdlkmpbkane: u32, + #[prost(uint32, repeated, tag = "14")] + pub neojjndlfff: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub pdkifkkmhcn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24458)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikmleendcoe {} +#[derive(proto_gen::CmdID)] +#[cmdid(4023)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmfgpdedpml { + #[prost(uint32, tag = "6")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "3")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23064)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akdebohjmhe { + #[prost(message, repeated, tag = "2")] + pub eloggecdgnl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25430)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imnbbikebmh { + #[prost(uint32, tag = "1")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "11")] + pub aljnjkpmopb: u32, + #[prost(uint32, tag = "14")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29619)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkbejoijlee {} +#[derive(proto_gen::CmdID)] +#[cmdid(24961)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Milbjpinaaa { + #[prost(message, repeated, tag = "12")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26777)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gndcebdapoe { + #[prost(uint32, tag = "6")] + pub hogpdlghglm: u32, + #[prost(uint32, tag = "11")] + pub bjjjdldclll: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23006)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijehibbmdfh { + #[prost(uint64, tag = "1")] + pub dcompdppdpo: u64, + #[prost(uint32, tag = "11")] + pub jlfheeipddp: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28506)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akhconkelmo { + #[prost(uint32, tag = "4")] + pub aaopmgielok: u32, + #[prost(bool, tag = "5")] + pub mllbdapbhel: bool, + #[prost(bool, tag = "7")] + pub mjpcdckofeg: bool, + #[prost(string, tag = "10")] + pub gepiddnccpl: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "13")] + pub appmhmkgcof: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2084)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lodpcinkmne { + #[prost(uint32, tag = "1")] + pub dalbepbfmfb: u32, + #[prost(uint32, tag = "2")] + pub fkhohkelkoe: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, optional, tag = "7")] + pub kiolegbhkbk: ::core::option::Option, + #[prost(message, repeated, tag = "10")] + pub gabljanjlaf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2385)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjfhbeoaalh { + #[prost(int32, repeated, tag = "10")] + pub hdfcdncgbbh: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub nlnlbaikbki: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub version: u32, + #[prost(uint32, tag = "12")] + pub cddphgddccn: u32, + #[prost(uint32, tag = "5")] + pub dkeobfmafpk: u32, + #[prost(uint32, tag = "14")] + pub scene_id: u32, + #[prost(bool, tag = "8")] + pub haaggonehch: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpfgiaflebm { + #[prost(fixed64, tag = "2")] + pub lgbnfifcpjf: u64, + #[prost(fixed64, tag = "8")] + pub ohdfeiceled: u64, + #[prost(uint32, tag = "10")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjdhoaafmpg { + #[prost(message, optional, tag = "3")] + pub aiagdpedgki: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub omdchnkniko: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub level: u32, + #[prost(uint32, repeated, tag = "8")] + pub fkgbkfahefk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub mmfkdhalglg: u32, + #[prost(message, optional, tag = "10")] + pub oglnpbnceco: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub eopffipdkgn: u32, + #[prost(message, optional, tag = "12")] + pub elllcmjmhic: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub exp: u32, + #[prost(uint32, tag = "15")] + pub neijigcohad: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lelgcmgopli { + #[prost(bool, tag = "3")] + pub dblpjbbpnic: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jobimalcphl { + #[prost(bool, tag = "4")] + pub fcikeoiacdg: bool, + #[prost(uint32, tag = "10")] + pub jdmjngdhdfh: u32, + #[prost(uint32, tag = "11")] + pub adejngmkinh: u32, + #[prost(uint32, tag = "12")] + pub phajgbbpmpm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23774)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hegbomgkekm { + #[prost(enumeration = "Igohjibcdfa", tag = "14")] + pub lkidbhiooog: i32, + #[prost(message, optional, tag = "15")] + pub bocfeileaki: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23394)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Giedfmgeccc { + #[prost(message, repeated, tag = "6")] + pub gfoibopdlgj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub pbhmclnfoeh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "9")] + pub dkcieiglfei: bool, + #[prost(enumeration = "Hocjffhhjne", tag = "12")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9577)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohpkgibdkmo { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24549)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfhdjkahkdc { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28948)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetPlayerBornDataReq { + #[prost(string, tag = "7")] + pub nick_name: ::prost::alloc::string::String, + #[prost(uint32, tag = "11")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgehiibllmc { + #[prost(uint32, tag = "3")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6789)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Becmdkinlka { + #[prost(message, optional, tag = "6")] + pub baimabkjkdd: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub panikdlniia: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub mmkamelgmoa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarFetterInfo { + #[prost(uint32, tag = "1")] + pub exp_number: u32, + #[prost(uint32, tag = "2")] + pub exp_level: u32, + #[prost(uint32, repeated, tag = "3")] + pub open_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub finish_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub rewarded_fetter_level_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub fetter_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4707)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkbkijjgdmn { + #[prost(uint32, repeated, tag = "2")] + pub pgkajdadhpo: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2375)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkhopclbmea {} +#[derive(proto_gen::CmdID)] +#[cmdid(23183)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcnacggjpcm { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27655)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbfffkjlanf { + #[prost(message, repeated, tag = "8")] + pub baobhjbdacm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29680)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfoofdpkfoc { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1128)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgmjffblbml { + #[prost(bool, tag = "5")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "7")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "10")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Naikfmefkij { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "6")] + pub oicebegencm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdeilbndlfb { + #[prost(uint32, tag = "2")] + pub instanced_modifier_id: u32, + #[prost(int32, tag = "3")] + pub migmcamiepp: i32, + #[prost(uint32, tag = "4")] + pub instanced_ability_id: u32, + #[prost(int32, tag = "7")] + pub local_id: i32, + #[prost(uint32, tag = "8")] + pub nldmdecjcmg: u32, + #[prost(uint32, tag = "10")] + pub server_buff_uid: u32, + #[prost(bool, tag = "12")] + pub is_serverbuff_modifier: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5394)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnnnmjiomig { + #[prost(message, optional, tag = "13")] + pub nlmdbcacpfg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgmkohplkie { + #[prost(uint32, tag = "1")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "2")] + pub state: u32, + #[prost(uint32, tag = "4")] + pub ojoapinglno: u32, + #[prost(bool, tag = "5")] + pub dkbjpnmclhi: bool, + #[prost(uint32, tag = "6")] + pub parent_quest_id: u32, + #[prost(uint32, tag = "7")] + pub ifnjcelnabn: u32, + #[prost(uint32, tag = "8")] + pub eldhjpmklkg: u32, + #[prost(uint32, tag = "9")] + pub mepomjbblhd: u32, + #[prost(uint32, repeated, tag = "10")] + pub poceifcmgap: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub ecancphkloc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub mlhfbafckip: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "13")] + pub ebpoibhnpnh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofnjgncoifk { + #[prost(uint32, tag = "1")] + pub ombmigpcoaa: u32, + #[prost(uint32, tag = "2")] + pub gidpaabdmfl: u32, + #[prost(uint32, repeated, tag = "3")] + pub jgakggcibge: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub hpjadbmcnkb: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "5")] + pub fodgafibgjb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkfobmpmgbi { + #[prost(message, repeated, tag = "5")] + pub olpbbgienff: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub ckinhoeoecf: u32, + #[prost(uint64, tag = "9")] + pub hodolkcoplg: u64, + #[prost(bool, tag = "10")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "11")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "12")] + pub group_id: u32, + #[prost(uint32, tag = "13")] + pub blnbjflpefp: u32, + #[prost(uint32, tag = "14")] + pub mlmifecfpoj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knpbbbdnlje { + #[prost(message, repeated, tag = "12")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edfpkjkfdhb { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(message, optional, tag = "2")] + pub motion_info: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub scene_time: u32, + #[prost(uint32, tag = "4")] + pub fggmoakinfd: u32, + #[prost(bool, tag = "5")] + pub epbncfhddah: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jafnchnpado { + #[prost(int32, repeated, tag = "2")] + pub ohdihophcld: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "5")] + pub kpbecglgibm: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub guid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22518)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcamgkdfafn { + #[prost(uint32, tag = "4")] + pub omnkhjbmgkl: u32, + #[prost(uint64, tag = "8")] + pub avatar_guid: u64, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3824)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfbpmjbpfpp { + #[prost(uint32, tag = "1")] + pub kpampgdjdhe: u32, + #[prost(message, optional, tag = "7")] + pub hnjiidamchp: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub cehbmhaanil: u32, + #[prost(message, optional, tag = "10")] + pub iljgpojfhdo: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub ffafbeafihe: u32, + #[prost(uint32, tag = "14")] + pub epcbaobgodi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elapnkhihbj { + #[prost(enumeration = "Eegmnipnkmj", tag = "10")] + pub reason: i32, + #[prost(uint32, tag = "11")] + pub fbpgimlmdnj: u32, + #[prost(message, repeated, tag = "13")] + pub bapkpfhfeie: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8572)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gafbcfikdkg { + #[prost(message, repeated, tag = "1")] + pub kjjdfphkfeb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "9")] + pub dfpnkfekiig: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlclekeebgj { + #[prost(message, repeated, tag = "15")] + pub dnpebapalek: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28422)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpgflbgbajl { + #[prost(enumeration = "Jhhbgbphnkf", tag = "14")] + pub ffbojfojagd: i32, + #[prost(uint32, tag = "5")] + pub fgdnkjchnki: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20461)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggibcnfpckn { + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26145)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eaabmmfcmff { + #[prost(uint32, repeated, tag = "3")] + pub hjhpfacphjf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "1")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28530)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjdddcginkh { + #[prost(bytes = "vec", tag = "2")] + pub pflfeiiljdk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25929)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lndfnhlhiem { + #[prost(message, optional, tag = "9")] + pub hlfodgeaham: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8888)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nikjbkdolml { + #[prost(uint32, tag = "1")] + pub bnblmfkkfgg: u32, + #[prost(bool, tag = "3")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "5")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "12")] + pub cmgfmdlfcfk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5261)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfbmcfambbm { + #[prost(message, optional, tag = "3")] + pub iljgpojfhdo: ::core::option::Option, + #[prost(uint32, repeated, tag = "13")] + pub akgnhibbcja: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkomdabhopi { + #[prost(uint32, tag = "2")] + pub coimemmjdcf: u32, + #[prost(uint32, tag = "3")] + pub okgngninnmi: u32, + #[prost(uint32, tag = "6")] + pub abiokbbaeck: u32, + #[prost(uint32, tag = "7")] + pub pjgeledijhd: u32, + #[prost(uint32, tag = "8")] + pub dfbibmmpjfp: u32, + #[prost(uint32, tag = "9")] + pub pgelkgkhppc: u32, + #[prost(uint32, tag = "10")] + pub lpoiolhlimp: u32, + #[prost(uint32, tag = "12")] + pub jfclhnofbbo: u32, + #[prost(uint32, tag = "15")] + pub phkelffaoon: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ooamlhchlnm { + #[prost(uint32, tag = "11")] + pub avatar_id: u32, + #[prost(uint32, repeated, tag = "12")] + pub ndlpimjdedl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4020)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cklndalmlhj { + #[prost(uint32, repeated, tag = "10")] + pub lfodeagdimj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9140)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oaoemiafpac { + #[prost(bool, tag = "5")] + pub ekpcfffnphg: bool, + #[prost(message, optional, tag = "6")] + pub glekhbclijf: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "12")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1749)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eiaimikhjad { + #[prost(uint32, tag = "3")] + pub uid: u32, + #[prost(uint32, tag = "14")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28639)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amnnnbfalfl { + #[prost(message, optional, tag = "2")] + pub helfhpnajpb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfghiphhkmj { + #[prost(uint32, tag = "2")] + pub affklogicmo: u32, + #[prost(bool, tag = "3")] + pub eiefmemfonh: bool, + #[prost(bool, tag = "5")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "7")] + pub fgbjejcehdd: u32, + #[prost(map = "uint32, uint32", tag = "12")] + pub ofbinopgiab: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "14")] + pub nbbjmakhifm: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20491)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Laepoippigf { + #[prost(message, repeated, tag = "6")] + pub aeoadoklkck: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub pgbaikhnkdc: u32, + #[prost(bool, tag = "11")] + pub ekiggmkhlpl: bool, + #[prost(uint32, tag = "14")] + pub fibdeagplao: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22605)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cekgnmedbao {} +#[derive(proto_gen::CmdID)] +#[cmdid(7909)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnkdffhcini { + #[prost(uint32, tag = "1")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "2")] + pub ocibddefjmb: bool, + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, + #[prost(bool, tag = "7")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "14")] + pub djkhfndphjg: u32, + #[prost(uint32, tag = "15")] + pub hnhgkplcknj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3254)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifbfchjfchd { + #[prost(string, tag = "9")] + pub team_name: ::prost::alloc::string::String, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(int32, tag = "13")] + pub team_id: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5151)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnhjcfoeoad { + #[prost(string, tag = "15")] + pub pbigganlbdh: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1643)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lapnldoajki { + #[prost(uint32, tag = "8")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "13")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7759)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afhgggfcbnf { + #[prost(message, repeated, tag = "3")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "7")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgakelddlam { + #[prost(uint32, tag = "2")] + pub config_id: u32, + #[prost(uint32, tag = "4")] + pub agienjjkpbe: u32, + #[prost(uint32, tag = "7")] + pub group_id: u32, + #[prost(message, optional, tag = "12")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3186)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppbjpnnggkn { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgmaokbgoho { + #[prost(uint32, repeated, tag = "7")] + pub dhnkodbjkhl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmaagoabgnj { + #[prost(uint32, tag = "2")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26406)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmmeadaofeh { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndbiilbamgh { + #[prost(message, repeated, tag = "12")] + pub kdadmgfchjm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "14")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfbpmenbcbo { + #[prost(uint32, tag = "2")] + pub ffhembokbef: u32, + #[prost(uint32, tag = "4")] + pub kenikecfflm: u32, + #[prost(bool, tag = "12")] + pub lbmialpeoba: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7957)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fckpjjofkki { + #[prost(message, repeated, tag = "4")] + pub dahkfdaacll: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub hecfbahgcpc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub lpppojjieoi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olodkmpinmp { + #[prost(uint32, tag = "1")] + pub kihigcbbali: u32, + #[prost(uint32, tag = "2")] + pub jdpmifpjnec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggkigjcgijn { + #[prost(bool, tag = "3")] + pub ecihdijcled: bool, + #[prost(bool, tag = "6")] + pub egclhkeilhk: bool, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "15")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2552)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Legdjlcjdjd { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(map = "uint32, uint32", tag = "14")] + pub eifchjhikhi: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5236)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdchoikjcdc {} +#[derive(proto_gen::CmdID)] +#[cmdid(7709)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejlhpdmnjme { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1271)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Likkcfljeed { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(682)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pchkcdgfjgc { + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27918)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmaigbmamll { + #[prost(uint32, tag = "2")] + pub mkelffhppog: u32, + #[prost(uint32, tag = "3")] + pub bhfdigmgmgi: u32, + #[prost(message, optional, tag = "6")] + pub dejoimafmck: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub pgkedialloa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23775)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jakaldnimnf { + #[prost(uint32, tag = "2")] + pub room_id: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27274)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klealcoodkg { + #[prost(map = "uint32, uint32", tag = "6")] + pub skill_level_map: ::std::collections::HashMap, + #[prost(uint32, tag = "7")] + pub skill_depot_id: u32, + #[prost(map = "uint32, uint32", tag = "8")] + pub proud_skill_extra_level_map: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub core_proud_skill_level: u32, + #[prost(uint64, tag = "12")] + pub avatar_guid: u64, + #[prost(uint32, repeated, tag = "13")] + pub talent_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub lobogppeppf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7649)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpjaielmeop { + #[prost(map = "uint32, uint32", tag = "5")] + pub fdocpgobhnm: ::std::collections::HashMap, + #[prost(uint32, tag = "8")] + pub kfiineejnpn: u32, + #[prost(uint32, tag = "9")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "11")] + pub group_id: u32, + #[prost(uint64, tag = "12")] + pub ndfchldidpf: u64, + #[prost(message, repeated, tag = "14")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27972)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojjnpfellpk { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "2")] + pub ocbdiolapob: u32, + #[prost(uint32, tag = "5")] + pub kajcndjlkfi: u32, + #[prost(uint32, tag = "9")] + pub pjjlmhgjkdg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27281)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndccfbglanh { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub gfppmnlpoek: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mamjnjhcdap { + #[prost(enumeration = "Eaebejoppcg", tag = "1")] + pub cdjamnmdmcj: i32, + #[prost(uint32, tag = "15")] + pub acjpdgmfgnl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(138)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibhonfgapob { + #[prost(enumeration = "WidgetSlotTag", repeated, tag = "13")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Gfilbkbgmaf", tag = "6")] + pub laicdpfdimh: i32, + #[prost(uint32, tag = "2")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bianhbhdlpc { + #[prost(uint32, repeated, tag = "3")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Adfnpmillop", tag = "5")] + pub ddojihipggp: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27831)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlfadilgghd { + #[prost(uint32, repeated, tag = "1")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "4")] + pub amblldmipfp: bool, + #[prost(uint32, tag = "8")] + pub dmnldppgokg: u32, + #[prost(bool, tag = "9")] + pub ommfipehlof: bool, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "15")] + pub pbkeaocbpmn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28269)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbeaglkamkd { + #[prost(int32, tag = "2")] + pub haojjffipml: i32, + #[prost(uint32, tag = "10")] + pub ihpmbbejajp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fflaijjojfn { + #[prost(bool, tag = "12")] + pub dohhenfngpe: bool, + #[prost(uint32, tag = "14")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hanilmjmmgm { + #[prost(bool, tag = "3")] + pub lpcfaggknen: bool, + #[prost(uint32, tag = "4")] + pub epjoaallggd: u32, + #[prost(uint32, tag = "5")] + pub ghiaogllldi: u32, + #[prost(bool, tag = "6")] + pub kelmamlgeoo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8408)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnpiinibjmi { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "11")] + pub group_id: u32, + #[prost(uint32, tag = "14")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5815)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcbphnmbehj { + #[prost(uint32, tag = "12")] + pub meekejeideh: u32, + #[prost(uint32, tag = "5")] + pub lpahjgdbepe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8722)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hickngpjokd { + #[prost(uint64, tag = "15")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21375)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nclkdlijppb { + #[prost(uint32, tag = "3")] + pub fchfakepinp: u32, + #[prost(uint32, tag = "11")] + pub area_type: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edeinfiobee { + #[prost(uint32, tag = "12")] + pub cmdnkflfhia: u32, + #[prost(uint32, tag = "13")] + pub ghdjjmikfpi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27675)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfaicdkfpkh { + #[prost(uint32, tag = "7")] + pub jkbgakmpclf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25778)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlgmphlkmhg { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, repeated, tag = "8")] + pub ncfkjkijmkd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Badjadmdpgh { + #[prost(message, optional, tag = "2")] + pub hemkhkocddh: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub iccekffajhk: ::core::option::Option, + #[prost(message, repeated, tag = "11")] + pub kjifldoafjh: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "14")] + pub naakafcnggp: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4066)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gniffjcppol { + #[prost(uint32, tag = "5")] + pub jjlpijkgkon: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub oeapfmfefge: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ServerBuff { + #[prost(uint32, tag = "1")] + pub server_buff_uid: u32, + #[prost(uint32, tag = "2")] + pub server_buff_id: u32, + #[prost(uint32, tag = "3")] + pub server_buff_type: u32, + #[prost(uint32, tag = "4")] + pub instanced_modifier_id: u32, + #[prost(bool, tag = "5")] + pub is_modifier_added: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24316)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnpjfppacpk { + #[prost(uint32, tag = "13")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpkihlghogc { + #[prost(bool, tag = "5")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "12")] + pub afjclenhanc: u32, + #[prost(message, repeated, tag = "15")] + pub nphlhaeliam: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21777)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndnlfhmpbii {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npankifllmm { + #[prost(uint32, tag = "1")] + pub elhpdaeimpj: u32, + #[prost(uint32, tag = "3")] + pub hbinbdbmoed: u32, + #[prost(map = "uint32, message", tag = "7")] + pub cdniiblifii: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "12")] + pub pkoellipbhp: bool, + #[prost(uint32, tag = "14")] + pub jgihcibojpn: u32, + #[prost(bool, tag = "15")] + pub cmfpjhffhbi: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29186)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bikbdoollop { + #[prost(message, repeated, tag = "12")] + pub elokjjingmc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9424)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dliomacgajc { + #[prost(uint32, tag = "1")] + pub mhhcoedmpdp: u32, + #[prost(bool, tag = "2")] + pub dbolhbghmaj: bool, + #[prost(uint64, tag = "11")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20650)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbojgdcdgab { + #[prost(uint64, tag = "2")] + pub opbnfdpdjgd: u64, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub hcojcafbpel: u32, + #[prost(map = "uint32, uint32", tag = "10")] + pub clpjgancnhc: ::std::collections::HashMap, + #[prost(uint64, tag = "11")] + pub avatar_guid: u64, + #[prost(map = "uint32, uint32", tag = "13")] + pub chbfmmglihg: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22793)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mipmpjmgkjh { + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfmjfilicop { + #[prost(uint32, tag = "1")] + pub geihmkhcije: u32, + #[prost(uint32, repeated, tag = "3")] + pub gmldnleodoh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub hojmlpjhhpj: u32, + #[prost(uint32, tag = "5")] + pub pdkifkkmhcn: u32, + #[prost(uint32, tag = "7")] + pub iehlhaogkpj: u32, + #[prost(uint32, tag = "8")] + pub r#type: u32, + #[prost(uint32, tag = "11")] + pub ojoapinglno: u32, + #[prost(uint32, tag = "12")] + pub aaopmgielok: u32, + #[prost(uint32, tag = "13")] + pub kdclmhbcfnh: u32, + #[prost(uint32, tag = "14")] + pub state: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26993)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olaiemeehfh { + #[prost(uint32, tag = "4")] + pub phmkpnkmooe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2230)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgdaehmeooj { + #[prost(uint64, repeated, tag = "13")] + pub fljlpghegem: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "9")] + pub fafobhabbkn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4589)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbhbhcbcgok { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20043)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Belhanmihjp { + #[prost(message, repeated, tag = "10")] + pub ncohdkjjpkf: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cccagkhmnag { + #[prost(bool, tag = "1")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "3")] + pub gpaeljhnaek: u32, + #[prost(bool, tag = "14")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27553)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aamkffhnonf { + #[prost(bool, tag = "12")] + pub mpccmbdpckc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(921)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgemlcaapgb { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "3")] + pub omgchbachci: u32, + #[prost(uint32, tag = "4")] + pub pcklffnfnge: u32, + #[prost(message, repeated, tag = "5")] + pub pldfkdklmej: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub aiokpjbdobb: bool, + #[prost(uint32, tag = "9")] + pub ghdjjmikfpi: u32, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, + #[prost(enumeration = "Jagnmbobgnk", tag = "12")] + pub reason: i32, + #[prost(bool, tag = "14")] + pub bdgphdbflkm: bool, + #[prost(uint32, tag = "15")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmgmdhpjbfa { + #[prost(bool, tag = "1")] + pub eibgiijboch: bool, + #[prost(bool, tag = "2")] + pub eoeaacpnpkk: bool, + #[prost(bool, tag = "3")] + pub pampgjbhffc: bool, + #[prost(message, repeated, tag = "9")] + pub jhpaihaohcc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub jkkkhfekekd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub cjbckciadcl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ForceUpdateInfo { + #[prost(string, tag = "1")] + pub force_update_url: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1790)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gimfhhnbffa { + #[prost(uint32, tag = "5")] + pub bobnlkdjoka: u32, + #[prost(bool, tag = "6")] + pub kndhnelheha: bool, + #[prost(message, repeated, tag = "7")] + pub oaakbkbonjk: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "11")] + pub hnfbbakfomm: u32, + #[prost(uint32, tag = "12")] + pub ijffkcgiaoj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CurVehicleInfo { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(uint32, tag = "2")] + pub pos: u32, + #[prost(uint32, tag = "3")] + pub gadget_id: u32, + #[prost(message, optional, tag = "4")] + pub bndocllebea: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub giickaofkdb: u32, + #[prost(message, optional, tag = "6")] + pub beliokmdlgb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(617)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flmlcjbbjkd { + #[prost(uint32, tag = "8")] + pub uid: u32, + #[prost(uint32, tag = "10")] + pub avatar_id: u32, + #[prost(uint32, tag = "13")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adljglobkbl { + #[prost(uint32, tag = "12")] + pub bobnlkdjoka: u32, + #[prost(uint32, tag = "13")] + pub hnfbbakfomm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26421)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpobfkanhea { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(message, repeated, tag = "11")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23012)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Enmhegjdahl { + #[prost(uint32, tag = "9")] + pub bkngnhmgldg: u32, + #[prost(uint32, tag = "10")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "11")] + pub gcfedfajgah: u32, + #[prost(uint32, tag = "15")] + pub jibfgckjpbe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21992)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbbphpmhemb { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omlmlmjkenc { + #[prost(int32, tag = "4")] + pub oaagmpkikgi: i32, + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(uint32, tag = "12")] + pub mmldgpbiecc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(451)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eonlhahgank { + #[prost(uint32, tag = "1")] + pub aaopmgielok: u32, + #[prost(uint32, tag = "2")] + pub ojoapinglno: u32, + #[prost(uint32, tag = "7")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhajgbfhbkf { + #[prost(uint32, tag = "10")] + pub hmlgdpbcgdm: u32, + #[prost(uint32, tag = "11")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27840)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcacgpnlaji { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "13")] + pub mjgcfcfkpke: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub ngghbimceog: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhadjjanalk { + #[prost(uint32, tag = "1")] + pub icmllghcfgn: u32, + #[prost(uint32, tag = "10")] + pub config_id: u32, + #[prost(uint32, tag = "14")] + pub ljagcbbkkpj: u32, + #[prost(string, tag = "15")] + pub gdlecopfjcf: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abhpgdeogag { + #[prost(uint32, repeated, tag = "2")] + pub kahoagpanbe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub onhojobnapm: u32, + #[prost(uint32, tag = "13")] + pub dpmdgmebgii: u32, + #[prost(uint32, tag = "14")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23344)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbglpdkkaak { + #[prost(uint32, tag = "15")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "3")] + pub hnfbbakfomm: u32, + #[prost(uint32, tag = "11")] + pub bobnlkdjoka: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7202)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nchjohnbjke { + #[prost(uint32, tag = "9")] + pub infgbpalamc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20751)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agmiagnohbl {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkaaljkpflf { + #[prost(uint32, repeated, tag = "2")] + pub mgnjfnamhbe: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub gfhfkcmpehj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bedogakkgme { + #[prost(message, repeated, tag = "1")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub gpaeljhnaek: u32, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adbnjeemdam { + #[prost(bool, tag = "1")] + pub bgmkcjonfkl: bool, + #[prost(bool, tag = "5")] + pub ihflckjfmck: bool, + #[prost(uint32, tag = "6")] + pub lodekgdpijm: u32, + #[prost(message, repeated, tag = "15")] + pub ijnbieljijf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22359)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnpkikbbgll { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njkemdblpgo { + #[prost(float, tag = "1")] + pub gnjcidhobia: f32, + #[prost(uint32, tag = "9")] + pub entity_id: u32, + #[prost(uint32, tag = "14")] + pub aaaohhgbhab: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4374)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khfemkbfjal { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(bool, tag = "14")] + pub mcpkkmhkcpd: bool, + #[prost(uint32, tag = "15")] + pub homgpjjmldg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecmmfbiinoj { + #[prost(uint32, tag = "2")] + pub peajinifghm: u32, + #[prost(message, optional, tag = "9")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22113)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obniepinfeb { + #[prost(uint32, tag = "8")] + pub scene_id: u32, + #[prost(uint32, repeated, tag = "9")] + pub diikdggjbbd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfmllmbiecg { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "2")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "4")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "6")] + pub kill_num: u32, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "11")] + pub fjhhikoihka: u32, + #[prost(uint32, tag = "14")] + pub diggffkgodj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25953)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerLoginRsp { + #[prost(uint32, tag = "1")] + pub client_silence_data_version: u32, + #[prost(uint32, tag = "2")] + pub client_data_version: u32, + #[prost(map = "string, int32", tag = "3")] + pub ability_hash_map: ::std::collections::HashMap< + ::prost::alloc::string::String, + i32, + >, + #[prost(uint32, tag = "4")] + pub target_uid: u32, + #[prost(uint32, tag = "5")] + pub player_data_version: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(bool, tag = "8")] + pub is_new_player: bool, + #[prost(bytes = "vec", tag = "9")] + pub player_data: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub ability_hash_code: i32, + #[prost(bool, tag = "12")] + pub oamcaciicjj: bool, + #[prost(string, tag = "13")] + pub game_biz: ::prost::alloc::string::String, + #[prost(bool, tag = "14")] + pub pcnbcfnbpgf: bool, + #[prost(uint64, tag = "15")] + pub login_rand: u64, + #[prost(message, optional, tag = "63")] + pub abpmaccddjh: ::core::option::Option, + #[prost(string, tag = "87")] + pub jkanelmfgep: ::prost::alloc::string::String, + #[prost(message, optional, tag = "266")] + pub next_res_version_config: ::core::option::Option, + #[prost(message, repeated, tag = "324")] + pub short_ability_hash_map: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "530")] + pub jagelbdjfjh: bool, + #[prost(double, tag = "533")] + pub total_tick_time: f64, + #[prost(uint32, tag = "608")] + pub target_home_owner_uid: u32, + #[prost(string, tag = "681")] + pub client_silence_version_suffix: ::prost::alloc::string::String, + #[prost(bool, tag = "847")] + pub cljbeginenc: bool, + #[prost(string, tag = "931")] + pub msg: ::prost::alloc::string::String, + #[prost(map = "uint32, message", tag = "1074")] + pub block_info_map: ::std::collections::HashMap, + #[prost(bool, tag = "1179")] + pub efphhjikpjg: bool, + #[prost(message, repeated, tag = "1249")] + pub feature_block_info_list: ::prost::alloc::vec::Vec, + #[prost(string, tag = "1309")] + pub pkekleeoljl: ::prost::alloc::string::String, + #[prost(string, tag = "1316")] + pub client_version_suffix: ::prost::alloc::string::String, + #[prost(bool, tag = "1362")] + pub popjgojfoka: bool, + #[prost(bool, tag = "1470")] + pub fgfihnbmjmk: bool, + #[prost(message, optional, tag = "1518")] + pub res_version_config: ::core::option::Option, + #[prost(bytes = "vec", tag = "1630")] + pub sc_info: ::prost::alloc::vec::Vec, + #[prost(string, tag = "1683")] + pub next_resource_url: ::prost::alloc::string::String, + #[prost(string, tag = "1768")] + pub jcimgdhmmln: ::prost::alloc::string::String, + #[prost(bool, tag = "1886")] + pub kllpfnolbho: bool, + #[prost(string, tag = "1893")] + pub kecglokoidc: ::prost::alloc::string::String, + #[prost(string, tag = "2031")] + pub country_code: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dabjaadfkod { + #[prost(uint32, tag = "1")] + pub jdhpiindjla: u32, + #[prost(uint32, tag = "2")] + pub gbdfakgfknn: u32, + #[prost(uint32, tag = "3")] + pub mjgjllhaieg: u32, + #[prost(uint32, tag = "4")] + pub pagebplgfkn: u32, + #[prost(uint32, tag = "11")] + pub lmbbneppopm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9902)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncedkcpljlj { + #[prost(uint32, repeated, tag = "4")] + pub affix_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "5")] + pub kafapfjllgp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5716)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pifjecjdgon { + #[prost(uint64, tag = "11")] + pub dcompdppdpo: u64, + #[prost(uint32, tag = "7")] + pub jlfheeipddp: u32, + #[prost(bool, tag = "15")] + pub jfjdimpcnnf: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8119)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdhkmkbkkjd { + #[prost(message, optional, tag = "9")] + pub kiolegbhkbk: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub dalbepbfmfb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpffekohgdf { + #[prost(uint32, tag = "1")] + pub fccfdjejbif: u32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "10")] + pub ebjfflnfffg: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub lnfdbmfeafg: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29013)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Napgfocimmj { + #[prost(uint32, tag = "2")] + pub pcdcoloempd: u32, + #[prost(enumeration = "Aohjddpeicb", tag = "4")] + pub r#type: i32, + #[prost(uint32, tag = "10")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(319)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikkomakklao { + #[prost(uint32, tag = "6")] + pub ebabpeldogg: u32, + #[prost(bool, tag = "13")] + pub is_locked: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmcfeaaomng { + #[prost(string, tag = "1")] + pub dppibjfomoc: ::prost::alloc::string::String, + #[prost(uint32, tag = "6")] + pub pghgefmpgdc: u32, + #[prost(uint32, tag = "10")] + pub block_id: u32, + #[prost(uint32, tag = "11")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9930)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eadkkbfbjlb { + #[prost(message, optional, tag = "9")] + pub gikcopjaiie: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23887)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mammchekboh { + #[prost(uint32, tag = "9")] + pub iidhpkefhpm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4404)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilafikenlkc { + #[prost(message, optional, tag = "3")] + pub efnfpngeflp: ::core::option::Option, + #[prost(enumeration = "Igohjibcdfa", tag = "15")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Docjnodgpim { + #[prost(uint32, tag = "1")] + pub mhghinogbgd: u32, + #[prost(uint32, tag = "6")] + pub config_id: u32, + #[prost(uint32, tag = "10")] + pub hhhbnhdnlfe: u32, + #[prost(uint32, tag = "13")] + pub idckbnhbmde: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27444)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agbcgancoab { + #[prost(message, repeated, tag = "3")] + pub piknkfonbhj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6253)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ienkcmbjdcj { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28998)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pndnlndkghp { + #[prost(message, optional, tag = "13")] + pub igkcmjmbbml: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23938)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fflaclnmjed { + #[prost(uint32, tag = "3")] + pub blbccmphapa: u32, + #[prost(message, optional, tag = "10")] + pub odemmdjobca: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcojickakml { + #[prost(message, repeated, tag = "6")] + pub hhhgfdooepc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24886)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PostEnterSceneReq { + #[prost(uint32, tag = "4")] + pub enter_scene_token: u32, + #[prost(double, tag = "8")] + pub total_tick_time: f64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4100)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aoggdbkpbed { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(map = "uint32, float", tag = "7")] + pub fight_prop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acohgbfjcdm { + #[prost(uint32, tag = "5")] + pub ohenhnjjken: u32, + #[prost(enumeration = "Agdcpkbnogi", tag = "7")] + pub reason: i32, + #[prost(uint32, tag = "8")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "9")] + pub lappelekahp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25145)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pknipcolofo {} +#[derive(proto_gen::CmdID)] +#[cmdid(29687)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkajhplkkjl { + #[prost(uint32, tag = "10")] + pub mcmbofifbcp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28763)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpiihkfkfef { + #[prost(uint32, tag = "6")] + pub cohkaiacief: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29609)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgidnhjakbn { + #[prost(message, optional, tag = "2")] + pub idlacekofkp: ::core::option::Option, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(bool, tag = "12")] + pub pcnoiejbaph: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgipcpjckoc { + #[prost(uint32, tag = "7")] + pub phpfppidjkj: u32, + #[prost(uint32, tag = "10")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmkdopmpdoj { + #[prost(bool, tag = "3")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "12")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4463)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hojjngapppl { + #[prost(uint32, tag = "2")] + pub pebgmemnknf: u32, + #[prost(uint32, tag = "3")] + pub group_id: u32, + #[prost(message, optional, tag = "5")] + pub blpbljkodia: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21967)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcnooldkopd { + #[prost(uint64, tag = "7")] + pub cur_avatar_guid: u64, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint64, repeated, tag = "14")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(941)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgeeaonkobf { + #[prost(message, repeated, tag = "4")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aohakndcajm { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(uint32, tag = "2")] + pub player_uid: u32, + #[prost(uint32, tag = "3")] + pub authority_peer_id: u32, + #[prost(uint32, tag = "5")] + pub gejdjbggnag: u32, + #[prost(message, optional, tag = "6")] + pub ability_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27697)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oamcljfpmpo { + #[prost(uint32, repeated, tag = "14")] + pub fdjpppfghne: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6957)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iogamedfafa { + #[prost(uint32, tag = "1")] + pub bbfplmbggjp: u32, + #[prost(uint32, tag = "8")] + pub pcaobbjlffm: u32, + #[prost(uint32, tag = "9")] + pub necgmakacdi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23021)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjojglpficj { + #[prost(uint32, tag = "1")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "8")] + pub fheebhppgoa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6007)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfcmkefcjhl { + #[prost(uint32, repeated, tag = "14")] + pub oeifpldonkf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub mgcmnplnjkl: u32, + #[prost(uint32, tag = "5")] + pub fecbncacgbh: u32, + #[prost(bool, tag = "12")] + pub ankcbommojb: bool, + #[prost(bool, tag = "1")] + pub omkbommennj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22791)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogioeoggbgi { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29959)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmlcaljhjjl { + #[prost(message, optional, tag = "4")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(enumeration = "Kckmmddjpce", tag = "5")] + pub phfalpgfgkn: i32, + #[prost(message, optional, tag = "8")] + pub aepafpdiiba: ::core::option::Option, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kijclocbfoj { + #[prost(uint32, tag = "1")] + pub ogaalhdlgep: u32, + #[prost(uint32, repeated, tag = "9")] + pub fbpgkcjgpld: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub hgigoljniio: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23444)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiljkhldgpn { + #[prost(message, repeated, tag = "1")] + pub iibaeddpdjd: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Doapfgnfcco { + #[prost(uint32, tag = "1")] + pub cmclgghakdc: u32, + #[prost(fixed32, tag = "2")] + pub lnpjpiipebc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3116)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fipfjkokici { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22223)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oikgleekain { + #[prost(uint32, tag = "10")] + pub omgchbachci: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23928)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljjmnkoedof { + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(bool, tag = "8")] + pub ahdfcflmacb: bool, + #[prost(message, optional, tag = "9")] + pub motion_info: ::core::option::Option, + #[prost(uint64, tag = "11")] + pub nckjndgeake: u64, + #[prost(uint64, tag = "13")] + pub mobmaekecai: u64, + #[prost(uint32, tag = "15")] + pub scene_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22609)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfimdkocjkg { + #[prost(uint32, tag = "15")] + pub kenikecfflm: u32, + #[prost(bool, tag = "11")] + pub heeahdmiifj: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnbdikijdoj { + #[prost(bool, tag = "1")] + pub nniapphkbop: bool, + #[prost(bool, tag = "2")] + pub nfnlokmpili: bool, + #[prost(uint32, tag = "3")] + pub block_id: u32, + #[prost(uint32, tag = "5")] + pub pghgefmpgdc: u32, + #[prost(uint32, tag = "6")] + pub gcbnfplahld: u32, + #[prost(uint32, tag = "9")] + pub scene_id: u32, + #[prost(uint32, tag = "10")] + pub jchhllebmja: u32, + #[prost(string, tag = "12")] + pub dppibjfomoc: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26898)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohmcleibjon { + #[prost(uint32, tag = "15")] + pub jljnnpbeipg: u32, + #[prost(enumeration = "Dplhebckkgg", tag = "11")] + pub cdebnkchkgm: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22183)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obkgaldpgoa { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "7")] + pub dmedoehomkh: bool, + #[prost(message, repeated, tag = "11")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub bfanfdmpppk: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njkhiljgcbm { + #[prost(uint32, tag = "5")] + pub lgbnfifcpjf: u32, + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Occkkklgdep { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "9")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8024)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glnhgjfmbie { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub costume_id: u32, + #[prost(uint64, tag = "9")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8212)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Peneaalbpdi { + #[prost(uint32, tag = "8")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6229)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmgpfejfcmk { + #[prost(uint32, tag = "1")] + pub pfogokingmb: u32, + #[prost(uint32, tag = "10")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8352)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpbpbkecapd { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbdpjncfeof { + #[prost(oneof = "pbdpjncfeof::Clbbkmnhfio", tags = "12")] + pub clbbkmnhfio: ::core::option::Option, +} +/// Nested message and enum types in `PBDPJNCFEOF`. +pub mod pbdpjncfeof { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Clbbkmnhfio { + #[prost(message, tag = "12")] + DetailAbilityInfo(super::Adifnoplaik), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfbbbejgnfa { + #[prost(uint32, tag = "2")] + pub ibiedgdocea: u32, + #[prost(uint32, tag = "4")] + pub dikniicmolj: u32, + #[prost(uint32, tag = "5")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "6")] + pub mhplokgejgg: u32, + #[prost(uint32, tag = "7")] + pub kdlnlophiib: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5739)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhgmobaomeo { + #[prost(message, optional, tag = "4")] + pub himggkhkgok: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6638)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejflfkbailp {} +#[derive(proto_gen::CmdID)] +#[cmdid(22326)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnnmdbhadam { + #[prost(message, optional, tag = "2")] + pub phbpfonlgfb: ::core::option::Option, + #[prost(string, tag = "12")] + pub ipbjnmlcoaf: ::prost::alloc::string::String, + #[prost(uint32, tag = "9")] + pub ohigdjglilo: u32, + #[prost(uint32, tag = "5")] + pub jchhllebmja: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25569)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omiohlkgnde { + #[prost(message, optional, tag = "7")] + pub ilnbhpkjkmg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28190)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmckefjnigg { + #[prost(uint32, tag = "4")] + pub njekbpkeloh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22275)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipkdkpchgdn { + #[prost(uint32, tag = "6")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gicncpmaoln { + #[prost(uint32, tag = "2")] + pub config_id: u32, + #[prost(oneof = "gicncpmaoln::Adebpdlaojp", tags = "4, 7, 10, 13")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `GICNCPMAOLN`. +pub mod gicncpmaoln { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(message, tag = "4")] + GadgetDeactive(super::Bjjjieknmed), + #[prost(message, tag = "7")] + MonsterGroupDeactive(super::Fncfpiodgmi), + #[prost(message, tag = "10")] + MonsterWaveDeactive(super::Khlgklmjnal), + #[prost(message, tag = "13")] + GadgetStateChange(super::Ffchepkenel), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(24696)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cobeajjckpd { + #[prost(message, repeated, tag = "10")] + pub avatar_rename_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkfblelmpdh { + #[prost(message, repeated, tag = "1")] + pub paejaajcgbe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub kmoeppfhpgj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lffkpkfcjln { + #[prost(uint64, tag = "2")] + pub gedmdocolfj: u64, + #[prost(uint32, tag = "3")] + pub mhghinogbgd: u32, + #[prost(enumeration = "Nncopldhcpb", tag = "7")] + pub joglgbmkmke: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opidilpmmff { + #[prost(uint32, tag = "2")] + pub nhkapceomoe: u32, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4423)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Naeicajcfkj { + #[prost(uint32, tag = "3")] + pub nkipfebkoko: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cohkpbcgfdk { + #[prost(uint32, tag = "2")] + pub kickknaimhn: u32, + #[prost(uint32, tag = "4")] + pub pebmpdabipa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jigdfpfknhi { + #[prost(uint32, repeated, tag = "12")] + pub oigllhajnfg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29355)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bokijmeablb { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "3")] + pub iohpbdgjacm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2669)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmcgpnhemno { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbaddmoplei { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub costume_id: u32, + #[prost(uint32, tag = "3")] + pub ahidnmjdejf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdbcekidaki { + #[prost(map = "uint32, uint32", tag = "4")] + pub jmchogfdmjn: ::std::collections::HashMap, + #[prost(uint32, tag = "5")] + pub mpindcigmpa: u32, + #[prost(uint32, tag = "9")] + pub gohbjdpebaf: u32, + #[prost(uint32, tag = "15")] + pub ccjhbjofjig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(196)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dapfgemcgno { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23862)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkbgoaoejmp { + #[prost(map = "uint32, message", tag = "14")] + pub dlfbogfhajj: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4496)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iepnmgjkhbg { + #[prost(enumeration = "Ohjbejlmdbg", tag = "8")] + pub reason: i32, + #[prost(uint32, tag = "15")] + pub player_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(629)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmicifjecem { + #[prost(uint32, repeated, tag = "12")] + pub napgdlclmef: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcnifbnibhi { + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub ijhkiklpjjn: u32, + #[prost(message, repeated, tag = "9")] + pub bcogkegagnp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bikkipeeknf { + #[prost(uint32, tag = "2")] + pub dpehdgldffg: u32, + #[prost(uint32, tag = "9")] + pub ghnpcmopbip: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpdnnjhcjlk { + #[prost(uint32, tag = "1")] + pub deenpogjlah: u32, + #[prost(uint32, tag = "3")] + pub hdfghjkndic: u32, + #[prost(uint32, tag = "9")] + pub kmaaanmabnj: u32, + #[prost(message, optional, tag = "11")] + pub pmmoglaecfb: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub odepmbdnilm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(290)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljjfbfneina { + #[prost(uint32, tag = "13")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27542)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikaffamcikn { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aelagpgebdl { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22650)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbeldlmfphp { + #[prost(uint32, tag = "13")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6393)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idajkomnhna { + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, + #[prost(uint32, tag = "5")] + pub deoocbakmcj: u32, + #[prost(uint32, tag = "12")] + pub onhojobnapm: u32, + #[prost(uint32, tag = "14")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbhbdhejbih {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Godaclfkpcb { + #[prost(bool, tag = "1")] + pub dkdknfbhcfi: bool, + #[prost(message, repeated, tag = "4")] + pub gooonmahlnl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub ilffggjakaj: u32, + #[prost(uint32, tag = "15")] + pub r#type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjnbabjncoc { + #[prost(uint32, tag = "1")] + pub hlagfhadkcm: u32, + #[prost(uint32, tag = "2")] + pub pfnhcefliip: u32, + #[prost(uint32, tag = "3")] + pub afjclenhanc: u32, + #[prost(bool, tag = "4")] + pub ipjnpmkgbpl: bool, + #[prost(uint32, tag = "8")] + pub level: u32, + #[prost(bool, tag = "10")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "11")] + pub exp: u32, + #[prost(uint32, repeated, tag = "12")] + pub fknmeoaammo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub cmjimcnkbgi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4151)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dagaadihehl { + #[prost(uint32, repeated, tag = "15")] + pub klfeggjccfn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26052)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iakmbhiebnp { + #[prost(uint64, tag = "4")] + pub avatar_guid: u64, + #[prost(bool, tag = "15")] + pub olejpbpbnhc: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phmenaiaofb { + #[prost(uint32, repeated, tag = "6")] + pub hblmbgkdnkk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub jgnphjgecak: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "12")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3056)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogjellhakom { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dagegohaodp { + #[prost(uint32, tag = "2")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gejghfpgjli { + #[prost(uint32, tag = "1")] + pub ocmhgmlnhjd: u32, + #[prost(uint32, repeated, tag = "3")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub ibeikeigmko: bool, + #[prost(uint32, repeated, tag = "12")] + pub mceonpipcni: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub kfldbpmnfpb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub player_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhacjneljmn { + #[prost(string, tag = "2")] + pub gejmeoldgio: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub ifnechppkke: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub hnfgihdngcb: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub njpdgkmnohn: ::prost::alloc::string::String, + #[prost(string, tag = "9")] + pub hbblmfkfpkf: ::prost::alloc::string::String, + #[prost(string, tag = "14")] + pub ofgkpphkbcl: ::prost::alloc::string::String, + #[prost(string, tag = "15")] + pub ehmnefanlgi: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20299)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdecgncemgl { + #[prost(enumeration = "Bplklkdbogp", tag = "10")] + pub lnmlmljlnjh: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4036)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eloiccaefbg { + #[prost(message, repeated, tag = "13")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22285)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcfhalgndel { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20262)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ophgndeiemn { + #[prost(uint32, tag = "3")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "6")] + pub dmmplgdappc: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(message, repeated, tag = "9")] + pub edjiabejnif: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub nkckooligak: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub eopffipdkgn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcekiajcncj { + #[prost(uint32, tag = "3")] + pub bknplfikkfg: u32, + #[prost(message, repeated, tag = "9")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29539)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abonipjiegl { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "10")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7469)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndbghjememh { + #[prost(uint32, tag = "15")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28177)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kelmmihnblf { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27175)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lojmbldclei { + #[prost(uint32, repeated, tag = "10")] + pub mjnnjkeilfm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knhechegjad { + #[prost(message, repeated, tag = "7")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3917)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjbbolmcnpl { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(986)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lloocpimabb { + #[prost(message, optional, tag = "1")] + pub kpmhbfhlaea: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcdlglmdhai { + #[prost(bool, tag = "1")] + pub pflajckehfa: bool, + #[prost(bool, tag = "2")] + pub ingmfkkokhg: bool, + #[prost(string, tag = "3")] + pub ebbpboejjpp: ::prost::alloc::string::String, + #[prost(uint64, tag = "4")] + pub lnemimeiieb: u64, + #[prost(uint32, tag = "5")] + pub pkmjlhlcelo: u32, + #[prost(uint64, tag = "6")] + pub dcompdppdpo: u64, + #[prost(uint32, tag = "7")] + pub kblifmghaki: u32, + #[prost(uint32, tag = "8")] + pub peajinifghm: u32, + #[prost(bool, tag = "9")] + pub nkchbiafpom: bool, + #[prost(uint32, tag = "10")] + pub version: u32, + #[prost(uint32, tag = "11")] + pub ndameclaedh: u32, + #[prost(uint32, tag = "12")] + pub glhjioojeeh: u32, + #[prost(uint32, tag = "13")] + pub oppfabknmmb: u32, + #[prost(bool, tag = "14")] + pub bhahcolocma: bool, + #[prost(uint32, tag = "15")] + pub bkpmhmldihk: u32, + #[prost(uint32, repeated, tag = "299")] + pub hmjnbgdglma: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "386")] + pub ojhglmdjcmk: u32, + #[prost(uint32, repeated, tag = "731")] + pub kilfcmkbhhm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "783")] + pub hkninpejhnp: u32, + #[prost(uint32, tag = "1037")] + pub fkmdginhhnd: u32, + #[prost(message, optional, tag = "1661")] + pub mdmplabaiec: ::core::option::Option, + #[prost(uint32, tag = "1705")] + pub eefjnjegjmj: u32, + #[prost(uint32, tag = "1972")] + pub ngddiacfmik: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22427)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ellhojmlfpi { + #[prost(bool, tag = "2")] + pub lkcaeopcfoc: bool, + #[prost(uint32, tag = "7")] + pub player_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnchbcdjjob { + #[prost(uint32, repeated, tag = "5")] + pub bpkegpmnjbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub pkhodhipjbb: u32, + #[prost(string, tag = "10")] + pub name: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub lppdfjmknbp: u32, + #[prost(enumeration = "Fbmfhlckejl", tag = "15")] + pub r#type: i32, + #[prost(oneof = "cnchbcdjjob::Detail", tags = "410, 621, 1032")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `CNCHBCDJJOB`. +pub mod cnchbcdjjob { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "410")] + Timer(super::Gdomjpehffj), + #[prost(message, tag = "621")] + Normal(super::Bcofjddboca), + #[prost(message, tag = "1032")] + Countdown(super::Gkngbdbkkhe), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(1127)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmdepcgifkn { + #[prost(message, optional, tag = "9")] + pub fpojglaneco: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "5")] + pub aoonjjoanje: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27956)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnggllcpdbo { + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kiffddcgdbd { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "2")] + pub ecmgldcefng: u32, + #[prost(uint32, tag = "4")] + pub dlmgmpmfojm: u32, + #[prost(uint32, tag = "14")] + pub kill_num: u32, + #[prost(uint64, tag = "15")] + pub dfplcbipdmi: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21736)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlmaciengcg { + #[prost(message, repeated, tag = "5")] + pub jfkpmhejmcm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(308)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmdbcfolddg { + #[prost(enumeration = "Himmemhogfb", tag = "3")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5947)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okcjkpnaekf { + #[prost(uint32, tag = "7")] + pub oboopjlpdni: u32, + #[prost(bool, tag = "8")] + pub idfejncmbhp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25290)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnnkbjppbie { + #[prost(uint32, repeated, tag = "1")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eegbpinnfhj { + #[prost(uint32, tag = "1")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "3")] + pub cjcjonhpiio: u32, + #[prost(bool, tag = "11")] + pub lbmialpeoba: bool, + #[prost(uint32, tag = "14")] + pub ilpjbepjdlp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5783)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Depmlmofhle { + #[prost(message, repeated, tag = "11")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "2")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8694)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbaeelniahl { + #[prost(string, tag = "4")] + pub mkjlehnfbeo: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9834)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alddafnnpke { + #[prost(uint32, tag = "11")] + pub anhigelnhkp: u32, + #[prost(uint32, tag = "14")] + pub kpidllgnojf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akogeogfllk { + #[prost(uint32, tag = "2")] + pub bdlmcmkdboe: u32, + #[prost(enumeration = "Hpichailnka", tag = "8")] + pub state: i32, + #[prost(uint32, tag = "9")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppmjiddgdmo { + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "5")] + pub dmeoeciamja: bool, + #[prost(bool, tag = "9")] + pub anjbcfcffop: bool, + #[prost(uint32, tag = "12")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6670)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbmgobmnaid {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mokdffekjpm { + #[prost(message, repeated, tag = "10")] + pub oplajnckefn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28826)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgpglhiibnh {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckgemjgnlgp { + #[prost(uint32, tag = "1")] + pub region_id: u32, + #[prost(uint32, tag = "2")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "6")] + pub hjlpileemeb: bool, + #[prost(uint32, tag = "7")] + pub glhdgfefkni: u32, + #[prost(message, optional, tag = "8")] + pub mjkalbbjipi: ::core::option::Option, + #[prost(float, tag = "9")] + pub pakpalckbaf: f32, + #[prost(uint32, tag = "10")] + pub ligehckdlee: u32, + #[prost(uint32, tag = "11")] + pub podphdgmfbl: u32, + #[prost(uint32, tag = "13")] + pub scene_id: u32, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24876)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffnoljonagb { + #[prost(bool, tag = "1")] + pub obbgbmeploj: bool, + #[prost(uint32, tag = "2")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(bool, tag = "6")] + pub lebdjmdlpdc: bool, + #[prost(uint32, tag = "7")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "11")] + pub kmaehpagkfk: u32, + #[prost(bool, tag = "12")] + pub jandanjkoee: bool, + #[prost(bool, tag = "13")] + pub epoejjpdjhe: bool, + #[prost(bool, tag = "15")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23325)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gafjnhcjkom { + #[prost(uint32, tag = "3")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9314)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hldiemkjekj { + #[prost(message, optional, tag = "9")] + pub lfohfjfjiid: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, + #[prost(message, optional, tag = "15")] + pub nmkmdiogdnk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20345)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneInitFinishRsp { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub enter_scene_token: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bncdmiidoii { + #[prost(uint32, tag = "1")] + pub gpaeljhnaek: u32, + #[prost(bool, tag = "2")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2181)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oakjhcicnhn { + #[prost(message, optional, tag = "2")] + pub kiolegbhkbk: ::core::option::Option, + #[prost(uint32, tag = "1")] + pub dalbepbfmfb: u32, + #[prost(uint32, tag = "13")] + pub fkhohkelkoe: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iedhcchgodg { + #[prost(message, optional, tag = "4")] + pub kpbecglgibm: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub gmolliebbfe: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub costume_id: u32, + #[prost(uint32, tag = "11")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4967)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gibielhmeio { + #[prost(message, optional, tag = "13")] + pub kchcincbldj: ::core::option::Option, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27083)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kncdccnclhl { + #[prost(uint32, tag = "1")] + pub jchhllebmja: u32, + #[prost(bool, tag = "5")] + pub nfnlokmpili: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5466)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfeflmibila { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub njmjbknnoib: u32, + #[prost(uint32, tag = "10")] + pub mjeflbpjbkm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9088)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnchhmegfgc { + #[prost(map = "uint64, message", tag = "5")] + pub hmemhopnbeb: ::std::collections::HashMap, + #[prost(int32, repeated, tag = "8")] + pub dekiihdlaoi: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub blecgenicfa: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1932)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gahmpoeloal {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkcdjjfmhpo { + #[prost(int32, tag = "6")] + pub local_id: i32, + #[prost(uint32, tag = "7")] + pub instanced_ability_id: u32, + #[prost(bool, tag = "8")] + pub is_serverbuff_modifier: bool, + #[prost(uint32, tag = "10")] + pub instanced_modifier_id: u32, + #[prost(uint32, tag = "12")] + pub nkiealgkijd: u32, + #[prost(uint32, tag = "14")] + pub ajaepngnild: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22680)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eadpmffkmbp { + #[prost(uint32, tag = "6")] + pub area_type: u32, + #[prost(uint32, tag = "11")] + pub fchfakepinp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omhacoggfpl { + #[prost(uint32, tag = "1")] + pub pagebplgfkn: u32, + #[prost(uint32, tag = "2")] + pub ljabaofjmcm: u32, + #[prost(uint32, tag = "3")] + pub kniinjkfijc: u32, + #[prost(uint32, tag = "6")] + pub ffhmmbkabjm: u32, + #[prost(uint32, tag = "14")] + pub gbdfakgfknn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cldiameghla { + #[prost(uint32, repeated, tag = "5")] + pub fghofgjoicc: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub anjbcfcffop: bool, + #[prost(uint32, repeated, tag = "8")] + pub jmeiembndhk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "12")] + pub dmeoeciamja: bool, + #[prost(uint32, tag = "15")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhklppaplfo { + #[prost(bool, tag = "1")] + pub oncligbklpf: bool, + #[prost(message, repeated, tag = "3")] + pub ibdjlpippnj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub lgbnfifcpjf: u32, + #[prost(bool, tag = "5")] + pub eialjbaengj: bool, + #[prost(uint32, repeated, tag = "6")] + pub fjepgpkjahk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "8")] + pub end_time: u32, + #[prost(bool, tag = "11")] + pub falglcjdkcl: bool, + #[prost(uint32, tag = "12")] + pub cfdehhepoai: u32, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, + #[prost(uint32, repeated, tag = "15")] + pub eldnocohalm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "263")] + pub lchffkhpjio: bool, + #[prost(uint64, repeated, tag = "503")] + pub gonepfedmel: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "676")] + pub cdbiieipbff: bool, + #[prost(map = "uint32, uint32", tag = "693")] + pub fmhodgopcgj: ::std::collections::HashMap, + #[prost(uint32, tag = "971")] + pub lkodghficbh: u32, + #[prost(uint32, tag = "1073")] + pub kpampgdjdhe: u32, + #[prost(message, optional, tag = "1175")] + pub okbinabfbkp: ::core::option::Option, + #[prost(uint32, repeated, tag = "1191")] + pub gicjhofkgko: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1453")] + pub ceoambhdcng: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "1531")] + pub ilkpgdkeieg: bool, + #[prost(map = "uint32, uint32", tag = "1694")] + pub ehdedbmbhgf: ::std::collections::HashMap, + #[prost(uint32, tag = "1730")] + pub gnakoniijho: u32, + #[prost(bool, tag = "1795")] + pub odmjhpbfiko: bool, + #[prost(uint32, tag = "1805")] + pub mppfclcenap: u32, + #[prost(uint64, tag = "1810")] + pub ciddjfnimpj: u64, + #[prost(uint32, repeated, tag = "1958")] + pub njcgnglkpbj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2023")] + pub ffghmfnfpnl: u32, + #[prost( + oneof = "dhklppaplfo::Detail", + tags = "2, 9, 10, 13, 18, 34, 45, 70, 113, 126, 132, 138, 156, 171, 184, 220, 247, 255, 298, 313, 345, 373, 416, 443, 466, 479, 486, 497, 507, 509, 512, 524, 526, 536, 541, 555, 559, 584, 598, 617, 634, 720, 760, 771, 787, 799, 823, 829, 860, 875, 884, 920, 932, 972, 981, 989, 993, 1004, 1007, 1008, 1033, 1037, 1072, 1101, 1111, 1141, 1142, 1155, 1203, 1233, 1237, 1266, 1288, 1292, 1318, 1327, 1349, 1352, 1385, 1396, 1454, 1477, 1558, 1563, 1573, 1574, 1579, 1582, 1591, 1646, 1649, 1668, 1700, 1722, 1741, 1800, 1807, 1809, 1826, 1845, 1852, 1863, 1886, 1894, 1906, 1907, 1919, 1927, 1929, 1939, 1942, 1959, 2004, 2035, 2041, 2042" + )] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `DHKLPPAPLFO`. +pub mod dhklppaplfo { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "2")] + SamLampInfo(super::Pkpjpaomcbc), + #[prost(message, tag = "9")] + SalesmanInfo(super::Meigmjnljjf), + #[prost(message, tag = "10")] + CrucibleInfo(super::Jcnifbnibhi), + #[prost(message, tag = "13")] + TrialAvatarInfo(super::Idjeofdjkgi), + #[prost(message, tag = "18")] + AlchemySimDetailInfo(super::Gcalocahegi), + #[prost(message, tag = "34")] + ElectroherculesBattleInfo(super::Ecojklifikm), + #[prost(message, tag = "45")] + RockBoardExploreInfo(super::Kffdjghkgpn), + #[prost(message, tag = "70")] + CookGameDetailInfo(super::Eobgpecdjaf), + #[prost(message, tag = "113")] + IslandPartyInfo(super::Dlclekeebgj), + #[prost(message, tag = "126")] + FindHilichurlInfo(super::Mekfaehenan), + #[prost(message, tag = "132")] + NatlanTourDetailInfo(super::Kpnjobfakgf), + #[prost(message, tag = "138")] + DuelHeartInfo(super::Dbeignikeco), + #[prost(message, tag = "156")] + GachaInfo(super::Ahnndhpffij), + #[prost(message, tag = "171")] + BartenderInfo(super::Cepnkdlepbd), + #[prost(message, tag = "184")] + PhotoInfo(super::Jbenliafbcp), + #[prost(message, tag = "220")] + BlitzRushInfo(super::Jhbipkmoccg), + #[prost(message, tag = "247")] + VintageInfo(super::Plfhddfipga), + #[prost(message, tag = "255")] + FishBlasterInfo(super::Focfjfjnjnd), + #[prost(message, tag = "298")] + FairyTalesDetailInfo(super::Bodnniikbgj), + #[prost(message, tag = "313")] + BuoyantCombatInfo(super::Ogkfdmjnofa), + #[prost(message, tag = "345")] + BirdBallDetailInfo(super::Oolbpnpemdk), + #[prost(message, tag = "373")] + IrodoriInfo(super::Badjadmdpgh), + #[prost(message, tag = "416")] + FilmfestDetailInfo(super::Glacehkejmf), + #[prost(message, tag = "443")] + TreasureSeelieInfo(super::Kpeldpaakoc), + #[prost(message, tag = "466")] + WaterSpiritInfo(super::Npjbbeknfbp), + #[prost(message, tag = "479")] + SeaLampV3Info(super::Mlgjjaoijmp), + #[prost(message, tag = "486")] + PenumbraAdventureInfo(super::Dpjneojfiga), + #[prost(message, tag = "497")] + QuickTimeCombatInfo(super::Jkobnfpenpd), + #[prost(message, tag = "507")] + BulletHellDetailInfo(super::Jncachoeepp), + #[prost(message, tag = "509")] + GreatFestivalV2DetailInfo(super::Iiolobmjbae), + #[prost(message, tag = "512")] + DigInfo(super::Meeonahjnje), + #[prost(message, tag = "524")] + CoinCollectInfo(super::Dkfkdkboofp), + #[prost(message, tag = "526")] + PhotoUnderseaInfo(super::Ahgaggngbbm), + #[prost(message, tag = "536")] + RoguelikeDungoenInfo(super::Fifjnbbadkj), + #[prost(message, tag = "541")] + RechargeDiskDetailInfo(super::Jeajdmhfggh), + #[prost(message, tag = "555")] + AcrobaticsBattleDetailInfo(super::Nohdomiiohf), + #[prost(message, tag = "559")] + FungusFighterInfo(super::Bcfobcaialk), + #[prost(message, tag = "584")] + BlessingInfo(super::Adgfpgnggkk), + #[prost(message, tag = "598")] + EffigyChallengeV5DetailInfo(super::Dlfonaionco), + #[prost(message, tag = "617")] + ToyBattleInfo(super::Fkkcacidpna), + #[prost(message, tag = "634")] + LunaRiteInfo(super::Nnpfppjabpa), + #[prost(message, tag = "720")] + BounceConjuringInfo(super::Mpkihlghogc), + #[prost(message, tag = "760")] + GravenInnocenceInfo(super::Ecljpebblno), + #[prost(message, tag = "771")] + EffigyChallengeV4Info(super::Elebhcpkcmj), + #[prost(message, tag = "787")] + HideAndSeekInfo(super::Gkokomhdegi), + #[prost(message, tag = "799")] + EffigyChallengeInfo(super::Phlflgngojj), + #[prost(message, tag = "823")] + LanternRiteActivityInfo(super::Efebijodbnh), + #[prost(message, tag = "829")] + MichiaeMatsuriInfo(super::Dmniaejpkgp), + #[prost(message, tag = "860")] + GcgPveInfiniteInfo(super::Ghlalhdagmp), + #[prost(message, tag = "875")] + FlightInfo(super::Blkghgclobb), + #[prost(message, tag = "884")] + SeaLampInfo(super::Iofnpaieijn), + #[prost(message, tag = "920")] + PlantFlowerInfo(super::Bfghiphhkmj), + #[prost(message, tag = "932")] + InstableSprayInfo(super::Fgoeomkhikk), + #[prost(message, tag = "972")] + ArenaChallengeInfo(super::Amcomlpiebn), + #[prost(message, tag = "981")] + JourneyInfo(super::Bmjiokcbmai), + #[prost(message, tag = "989")] + BlessingV2Info(super::Iojlknpeodb), + #[prost(message, tag = "993")] + GcgPveInfo(super::Ocjneamjapc), + #[prost(message, tag = "1004")] + AkaFesInfo(super::Pckcbpbobpc), + #[prost(message, tag = "1007")] + SandwormCannonDetailInfo(super::Jkfhchedjic), + #[prost(message, tag = "1008")] + BrickBreakerInfo(super::Aineccgepbh), + #[prost(message, tag = "1033")] + SlimeCannonDetailInfo(super::Hheccplejnd), + #[prost(message, tag = "1037")] + AutoTimeStopDetailInfo(super::Ldoicebifmm), + #[prost(message, tag = "1072")] + ChallnelerSlabInfo(super::Hbbcjinhnjc), + #[prost(message, tag = "1101")] + WatergunInfo(super::Ohmjncbaoec), + #[prost(message, tag = "1111")] + HideAndSeekV4DetailInfo(super::Noaifegnkml), + #[prost(message, tag = "1141")] + TreasureMapInfo(super::Mmfabckmaof), + #[prost(message, tag = "1142")] + ExpeditionInfo(super::Epfhmonljoh), + #[prost(message, tag = "1155")] + SummerTimeInfo(super::Dhegfoiaapl), + #[prost(message, tag = "1203")] + MuqadasPotionInfo(super::Genjmanaclb), + #[prost(message, tag = "1233")] + FontaineGatherInfo(super::Fpondjddjda), + #[prost(message, tag = "1237")] + StaminaFightInfo(super::Gjmdmpembnh), + #[prost(message, tag = "1266")] + FleurFairInfo(super::Aplcjhpdooa), + #[prost(message, tag = "1288")] + ChessInfo(super::Cjnbabjncoc), + #[prost(message, tag = "1292")] + AnimalViewInfo(super::Hlgblaibmng), + #[prost(message, tag = "1318")] + GoalChallengeInfo(super::Offcconkfoh), + #[prost(message, tag = "1327")] + CollectUnderwaterInfo(super::Flhcnjgdnha), + #[prost(message, tag = "1349")] + WindFieldInfo(super::Gkcfnjnhlcf), + #[prost(message, tag = "1352")] + MoonfinTrialInfo(super::Fcokgcmnlmo), + #[prost(message, tag = "1385")] + CharAmusementInfo(super::Ahnmcdonjhe), + #[prost(message, tag = "1396")] + MonsterVsMonsterDetailInfo(super::Kbhgaofkfdd), + #[prost(message, tag = "1454")] + RainbowPrinceDetailInfo(super::Jocffcplill), + #[prost(message, tag = "1477")] + TanukiTravelActivityInfo(super::Cmcbcmnbifa), + #[prost(message, tag = "1558")] + EffigyInfo(super::Oohjpmjpakb), + #[prost(message, tag = "1563")] + WinterCampInfo(super::Kochdlaofpc), + #[prost(message, tag = "1573")] + GainBuffDetailInfo(super::Dfkofahkanj), + #[prost(message, tag = "1574")] + MistTrialActivityInfo(super::Gcmmiknlcjb), + #[prost(message, tag = "1579")] + LostSamachurlInfo(super::Aofglkpajen), + #[prost(message, tag = "1582")] + MusicGameInfo(super::Jpbojeclhpa), + #[prost(message, tag = "1591")] + PotionInfo(super::Mokdffekjpm), + #[prost(message, tag = "1646")] + TreasureHuntV4Info(super::Ncgjebljecf), + #[prost(message, tag = "1649")] + BomberDodocoDetailInfo(super::Aajgicjdcmg), + #[prost(message, tag = "1668")] + PoetryFestivalDetailInfo(super::Jnaielhbadh), + #[prost(message, tag = "1700")] + FungusFighterV3Info(super::Dhpnfbffoef), + #[prost(message, tag = "1722")] + SpiceInfo(super::Bedgmdcoeen), + #[prost(message, tag = "1741")] + TeamChainInfo(super::Peheiagofil), + #[prost(message, tag = "1800")] + SummerTimeV2Info(super::Lfiedpgoeme), + #[prost(message, tag = "1807")] + DragonSpineInfo(super::Fjgbnolnfoa), + #[prost(message, tag = "1809")] + LuminanceStoneChallengeInfo(super::Fjjbhegfbdi), + #[prost(message, tag = "1826")] + EchoShellInfo(super::Ojkmppgohfk), + #[prost(message, tag = "1845")] + AsterInfo(super::Cadkjpfbbgh), + #[prost(message, tag = "1852")] + CrystalLinkInfo(super::Knedolcpica), + #[prost(message, tag = "1863")] + ActivityMultiCharacterInfo(super::Dagenklmdhh), + #[prost(message, tag = "1886")] + SumoInfo(super::Menhnbmdedj), + #[prost(message, tag = "1894")] + CatcafeDetailInfo(super::Ljocpdmincm), + #[prost(message, tag = "1906")] + RogueDiaryInfo(super::Mjbnlakaiad), + #[prost(message, tag = "1907")] + LanternRiteV4Info(super::Gpbmneioioa), + #[prost(message, tag = "1919")] + GcgFestivalInfo(super::Npcmlkndene), + #[prost(message, tag = "1927")] + GcgPvePuzzleInfo(super::Flcoinojgil), + #[prost(message, tag = "1929")] + HachiInfo(super::Fmkkailppji), + #[prost(message, tag = "1939")] + SorushTrialInfo(super::Facblonodpo), + #[prost(message, tag = "1942")] + DeliveryInfo(super::Akkecfcjgfn), + #[prost(message, tag = "1959")] + FleurFairV2Info(super::Ikhggpnjgnb), + #[prost(message, tag = "2004")] + FungusFighterV2Info(super::Hgmnefbckgk), + #[prost(message, tag = "2035")] + UgcInfo(super::Adbnjeemdam), + #[prost(message, tag = "2041")] + UgcV2Info(super::Keejnolinba), + #[prost(message, tag = "2042")] + GearInfo(super::Flphjjjlfcm), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(28903)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkcbfgnmcko { + #[prost(enumeration = "Himmemhogfb", tag = "10")] + pub mfmlakbiaed: i32, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(oneof = "hkcbfgnmcko::Gcbckcbnpmn", tags = "11")] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `HKCBFGNMCKO`. +pub mod hkcbfgnmcko { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "11")] + MusicInfo(super::Jnkcdiomjme), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(28231)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Diogfnmkoke {} +#[derive(proto_gen::CmdID)] +#[cmdid(1240)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phhdjdbldmg { + #[prost(uint32, tag = "6")] + pub jigfbecbojb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlidanainaj { + #[prost(bool, tag = "2")] + pub dhfhplnhphm: bool, + #[prost(uint32, tag = "5")] + pub ecgbddkijah: u32, + #[prost(uint32, tag = "7")] + pub fjmabklfmej: u32, + #[prost(uint32, tag = "11")] + pub ffpbdjidled: u32, + #[prost(uint32, tag = "14")] + pub kapdbochmbk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7911)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EnterSceneReadyReq { + #[prost(uint32, tag = "1")] + pub enter_scene_token: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20598)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klcpmmmbmmj { + #[prost(uint32, tag = "15")] + pub akfopjphjio: u32, + #[prost(uint32, tag = "7")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RoutePoint { + #[prost(message, optional, tag = "1")] + pub position: ::core::option::Option, + #[prost(float, tag = "2")] + pub arrive_range: f32, + #[prost(bool, tag = "3")] + pub has_reach_event: bool, + #[prost(enumeration = "Mkkpichlcgl", tag = "24")] + pub nhjcmjjbegp: i32, + #[prost(oneof = "route_point::MoveParams", tags = "11, 12")] + pub move_params: ::core::option::Option, + #[prost(oneof = "route_point::RotateParams", tags = "21, 22, 23")] + pub rotate_params: ::core::option::Option, +} +/// Nested message and enum types in `RoutePoint`. +pub mod route_point { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum MoveParams { + #[prost(float, tag = "11")] + Velocity(f32), + #[prost(float, tag = "12")] + Time(f32), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum RotateParams { + #[prost(message, tag = "21")] + Rotation(super::Vector), + #[prost(message, tag = "22")] + RotationSpeed(super::MathQuaternion), + #[prost(message, tag = "23")] + AxisSpeed(super::MathQuaternion), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkgbfmjbbia { + #[prost(uint32, tag = "3")] + pub scene_id: u32, + #[prost(message, optional, tag = "5")] + pub kdhjlmkfman: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub jinjlbemjnc: u32, + #[prost(uint32, tag = "7")] + pub config_id: u32, + #[prost(bool, tag = "8")] + pub hpdagjjbnfc: bool, + #[prost(uint32, tag = "11")] + pub ecamacigjap: u32, + #[prost(uint32, tag = "12")] + pub agienjjkpbe: u32, + #[prost(uint32, tag = "13")] + pub group_id: u32, + #[prost(uint32, tag = "14")] + pub cammfnmahek: u32, + #[prost(bool, tag = "15")] + pub acnmjldpgga: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7017)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmdhiihfmog { + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "15")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26007)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amnkidjfbof { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub eeddllecdle: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnglimnhlib { + #[prost(uint32, tag = "1")] + pub jiglgkdmmin: u32, + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "3")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "4")] + pub eopffipdkgn: u32, + #[prost(uint32, tag = "5")] + pub iiicbihodjb: u32, + #[prost(enumeration = "Nhchbagcjjg", tag = "6")] + pub lomejaipngi: i32, + #[prost(uint32, tag = "7")] + pub ombmigpcoaa: u32, + #[prost(bool, tag = "8")] + pub nnhljpmhjkp: bool, + #[prost(uint32, tag = "9")] + pub kjoinehljnp: u32, + #[prost(uint32, tag = "10")] + pub scene_id: u32, + #[prost(message, optional, tag = "11")] + pub pos: ::core::option::Option, + #[prost(bool, tag = "12")] + pub okiggnfhlgg: bool, + #[prost(uint32, tag = "13")] + pub level: u32, + #[prost(message, optional, tag = "14")] + pub hdofjefkgkb: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub mkbegmmhjin: u32, + #[prost(uint32, tag = "521")] + pub group_id: u32, + #[prost(bool, tag = "572")] + pub idnkjeedogc: bool, + #[prost(uint32, tag = "1117")] + pub monster_id: u32, + #[prost(uint32, tag = "1304")] + pub agienjjkpbe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(625)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agicnbhiclf { + #[prost(uint32, tag = "6")] + pub dmmplgdappc: u32, + #[prost(message, repeated, tag = "7")] + pub edjiabejnif: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub eopffipdkgn: u32, + #[prost(uint32, tag = "10")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anehjknoogj { + #[prost(message, optional, tag = "2")] + pub gnjcidhobia: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(bool, tag = "5")] + pub ocnngoflpio: bool, + #[prost(int32, tag = "11")] + pub name_id: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3419)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajlbeikaaem {} +#[derive(proto_gen::CmdID)] +#[cmdid(25949)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lafoliacppg { + #[prost(enumeration = "Hjbckhabdkl", tag = "2")] + pub ghcciliehna: i32, + #[prost(message, optional, tag = "8")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23141)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaigabggkcc { + #[prost(uint32, tag = "1")] + pub jjlpijkgkon: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub lnpjpiipebc: u32, + #[prost(message, optional, tag = "12")] + pub oeapfmfefge: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gflgjkghmgo { + #[prost(uint32, tag = "1")] + pub lilfanmipoj: u32, + #[prost(bool, tag = "2")] + pub ockcpkpmpjp: bool, + #[prost(message, optional, tag = "3")] + pub mjkalbbjipi: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub scene_id: u32, + #[prost(uint32, tag = "10")] + pub ojoapinglno: u32, + #[prost(bool, tag = "11")] + pub oeplmkcmlio: bool, + #[prost(uint32, tag = "12")] + pub flimaedaoik: u32, + #[prost(uint32, tag = "14")] + pub region_id: u32, + #[prost(uint32, tag = "15")] + pub pakpalckbaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbciioldmhk { + #[prost(uint32, repeated, tag = "8")] + pub ojhoegcchlb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Feojpikbgpn { + #[prost(uint32, tag = "3")] + pub kaioccbnppa: u32, + #[prost(message, optional, tag = "6")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9649)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oejemhhminf { + #[prost(uint64, tag = "1")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pidnhijcmck { + #[prost(enumeration = "Nacddokhdhd", tag = "1")] + pub fogfhaggcli: i32, + #[prost(uint32, repeated, tag = "2")] + pub mcnjnpmgijg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29730)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Apfaimkiiei { + #[prost(uint32, tag = "5")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24745)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imkjbgflbpd { + #[prost(uint32, tag = "7")] + pub ehjhfencklj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5133)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfbfgacboem { + #[prost(message, repeated, tag = "13")] + pub jnfpmeijenp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub gkpjedkhcif: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24826)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ognlfdmkcdb { + #[prost(uint32, tag = "3")] + pub pnhgpldgokb: u32, + #[prost(bool, tag = "10")] + pub gigjldkopek: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27951)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjlhagbliml { + #[prost(uint32, tag = "12")] + pub region_id: u32, + #[prost(enumeration = "Kmbffanhlbc", tag = "1")] + pub cegailbgkjf: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23008)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjlcdfenojc { + #[prost(uint32, tag = "13")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "15")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmpeeohkimj { + #[prost(bool, tag = "2")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "4")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "5")] + pub cfblfknojik: u32, + #[prost(uint32, tag = "6")] + pub ehgijgcnhkl: u32, + #[prost(uint32, tag = "7")] + pub dhidkflckbf: u32, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1205)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbmgnjngkih { + #[prost(uint32, tag = "1")] + pub pofpehafdif: u32, + #[prost(uint32, tag = "8")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23439)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkoaokknjnp { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "6")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3248)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbmmjmmkneb { + #[prost(enumeration = "Blbmocglooj", tag = "6")] + pub pcfefinaiif: i32, + #[prost(bool, tag = "1")] + pub fljenafhpee: bool, + #[prost(uint32, tag = "12")] + pub emobaloaihm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20523)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgfdjjjbinj { + #[prost(uint32, repeated, tag = "13")] + pub akclibaijcn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8369)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgekekeckjg { + #[prost(uint32, tag = "1")] + pub miildbcnekl: u32, + #[prost(uint32, tag = "3")] + pub group_id: u32, + #[prost(uint32, tag = "4")] + pub gollekhhdgh: u32, + #[prost(uint32, tag = "6")] + pub pjegodebmjc: u32, + #[prost(bool, tag = "7")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "8")] + pub dekhbeooien: u32, + #[prost(bool, tag = "9")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "15")] + pub ljfafdhikjd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3276)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lklgjbnaeka { + #[prost(bool, tag = "7")] + pub peenoiecadc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5717)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anbkmkcmgjm { + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(message, repeated, tag = "13")] + pub ohcpclgmnmc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifbhmlcjfmf { + #[prost(message, repeated, tag = "6")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Codlopejmfa { + #[prost(uint32, tag = "7")] + pub uid: u32, + #[prost(uint32, tag = "13")] + pub nkeonoiklao: u32, + #[prost(uint32, tag = "15")] + pub jahjojochom: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Coonjgkpjkk { + #[prost(message, repeated, tag = "12")] + pub hcdnagjhpcl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Material { + #[prost(uint32, tag = "1")] + pub count: u32, + #[prost(message, optional, tag = "2")] + pub delete_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FeatureBlockInfo { + #[prost(uint32, tag = "1")] + pub feature_type: u32, + #[prost(uint32, tag = "2")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kampkgiegml { + #[prost(message, optional, tag = "5")] + pub egcgobldigo: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub gadget_state: u32, + #[prost(message, optional, tag = "14")] + pub abpjibdjipa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlatformInfo { + #[prost(uint32, tag = "1")] + pub ilffggjakaj: u32, + #[prost(int32, tag = "2")] + pub afppklhkhlm: i32, + #[prost(uint32, tag = "3")] + pub kaeoiakapam: u32, + #[prost(uint32, tag = "4")] + pub nffkijpdlgo: u32, + #[prost(message, optional, tag = "7")] + pub nndkdcjmnpb: ::core::option::Option, + #[prost(bool, tag = "8")] + pub jookmiedbie: bool, + #[prost(message, optional, tag = "9")] + pub mcmdcebidek: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub bgdahamomal: u32, + #[prost(message, optional, tag = "11")] + pub ofdimbdklmc: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub objkiijmkfh: ::core::option::Option, + #[prost(enumeration = "Dabhikgpaie", tag = "13")] + pub bmjpcebmboc: i32, + #[prost(bool, tag = "14")] + pub is_active: bool, + #[prost(message, optional, tag = "15")] + pub icnmchpmcbo: ::core::option::Option, + #[prost(uint32, tag = "16")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnioogdicbo { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26736)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gddhclpkbip { + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfbllccocba { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25131)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cngmicdjalj { + #[prost(bool, tag = "10")] + pub oenhcblfpfc: bool, + #[prost(uint32, tag = "14")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24933)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hphefkmojek { + #[prost(message, repeated, tag = "9")] + pub nhogialmdci: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Doopeadjbgj { + #[prost(enumeration = "Pcdgjmpgnha", tag = "1")] + pub dkehlpgnkcb: i32, + #[prost(uint32, tag = "5")] + pub mdlphgfnjba: u32, + #[prost(uint32, tag = "10")] + pub lanbakkbbgh: u32, + #[prost(bool, tag = "14")] + pub foemlkagipa: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9184)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fapnibgmidi { + #[prost(uint32, tag = "11")] + pub leejkjijegb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6623)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpkmlabahac { + #[prost(uint32, repeated, tag = "4")] + pub kghmeelkekp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29981)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opbpgmbmchm { + #[prost(message, optional, tag = "3")] + pub lnigejebjan: ::core::option::Option, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnnobnkmngh { + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(bool, tag = "9")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "11")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21609)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llbafoekgkc { + #[prost(uint32, tag = "4")] + pub jdbonkeoala: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, repeated, tag = "12")] + pub mpmipjliaga: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pppellgckij {} +#[derive(proto_gen::CmdID)] +#[cmdid(22807)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgdbkcgknfg { + #[prost(uint32, tag = "3")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6478)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lealhmkcojc { + #[prost(message, optional, tag = "4")] + pub cmpjdmmccpj: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21157)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkjcphlnggj { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub mmkbjnciggg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kippmopnaaa { + #[prost(enumeration = "Fjklgegnmpb", repeated, tag = "2")] + pub bkdcbbmkchh: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub amnobjafgpd: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Fjklgegnmpb", repeated, tag = "9")] + pub eoplgdmlmac: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub dahkfdaacll: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9449)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bomnglcbmom { + #[prost(message, optional, tag = "10")] + pub entity_client_data: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20834)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fiehegabijp { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, optional, tag = "12")] + pub iimdjnnjiep: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7850)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmganeaoakm { + #[prost(uint32, repeated, tag = "3")] + pub ecancphkloc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub poceifcmgap: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1819)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aefjekngfcb { + #[prost(uint32, repeated, tag = "5")] + pub lfodeagdimj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25836)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmkdaignenj { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub param: u32, + #[prost(message, repeated, tag = "12")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22616)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbjegobpaik { + #[prost(uint32, tag = "10")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26068)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjgdddhgpmj { + #[prost(uint32, repeated, tag = "2")] + pub jdcapblplna: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub jodpdbpgoab: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5928)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Faebfgilmed { + #[prost(bool, tag = "1")] + pub ifchjfjgmcp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4400)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gicmdckkeib {} +#[derive(proto_gen::CmdID)] +#[cmdid(2033)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjpplbjgjdc { + #[prost(uint32, tag = "6")] + pub poncdmkadoa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6931)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dibjnoophae { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "7")] + pub mfmlakbiaed: i32, + #[prost(oneof = "dibjnoophae::Gcbckcbnpmn", tags = "9")] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `DIBJNOOPHAE`. +pub mod dibjnoophae { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "9")] + MusicInfo(super::Bgiahghgajd), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(5770)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffknnbocfip { + #[prost(uint32, tag = "4")] + pub gejgkajfdcd: u32, + #[prost(message, optional, tag = "9")] + pub kkaccpnohcg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aajgicjdcmg { + #[prost(message, repeated, tag = "15")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkgekadlmpi { + #[prost(message, repeated, tag = "3")] + pub lbfmkdpdebp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "11")] + pub kcnnfefjgmg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipncbonppgb { + #[prost(message, repeated, tag = "3")] + pub ncainepkaap: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21846)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Habpodmabmd { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "14")] + pub ooboklehccd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjdmcnomdnb { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "2")] + pub jhfmeficaal: bool, + #[prost(bool, tag = "9")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub ppbamnfheje: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5682)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojgocmbgpcp { + #[prost(message, repeated, tag = "7")] + pub dmfdnmjjdpc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29287)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Boohhidmlck { + #[prost(message, optional, tag = "1")] + pub glmklipeldi: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22564)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fdmgnglcjjc { + #[prost(message, repeated, tag = "1")] + pub elokjjingmc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpanilcfgob { + #[prost(uint32, tag = "6")] + pub icimaoekkka: u32, + #[prost(uint64, repeated, tag = "13")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6023)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfglikabhle { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub olokldpagoh: u32, + #[prost(enumeration = "Bickfbjhoik", tag = "6")] + pub edioaiaiohi: i32, + #[prost(int32, tag = "14")] + pub jjnhhnfggpa: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1516)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ciacjaknbgg { + #[prost(uint32, tag = "3")] + pub key: u32, + #[prost(uint32, tag = "4")] + pub gnjcidhobia: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pecejflmnde { + #[prost(uint32, tag = "3")] + pub costume_id: u32, + #[prost(uint32, tag = "8")] + pub avatar_id: u32, + #[prost(bool, tag = "10")] + pub hjfopbhakde: bool, + #[prost(uint32, repeated, tag = "14")] + pub cnfodgeooef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26721)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohfdndhdnfm { + #[prost(uint32, tag = "8")] + pub kenikecfflm: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hakghkmmhhj { + #[prost(uint32, tag = "1")] + pub bafajaaibbf: u32, + #[prost(uint32, repeated, tag = "3")] + pub gijimmlhapl: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "6")] + pub bnnmgehjpfb: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub olbbcjeahia: u32, + #[prost(uint32, tag = "15")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mconihljnae { + #[prost(uint32, tag = "4")] + pub hfjbndpdlbe: u32, + #[prost(uint32, tag = "3")] + pub ocfbngkjgca: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25902)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Falekhbhjhh { + #[prost(bool, tag = "71")] + pub hlfdobhefcj: bool, + #[prost(oneof = "falekhbhjhh::Adebpdlaojp", tags = "1605, 406, 904, 526, 1655")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `FALEKHBHJHH`. +pub mod falekhbhjhh { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(message, tag = "1605")] + CameraInfo(super::Ddogijcmgki), + #[prost(message, tag = "406")] + CreatorInfo(super::Oigbjhflkkl), + #[prost(message, tag = "904")] + LocationInfo(super::Fmdngkgcopo), + #[prost(message, tag = "526")] + ThunderBirdFeatherInfo(super::Jigdfpfknhi), + #[prost(message, tag = "1655")] + SorushInfo(super::Ciofcblopdk), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhpmfophjhp { + #[prost(int32, tag = "1")] + pub r#type: i32, + #[prost(uint32, repeated, tag = "2")] + pub agldifmllhg: ::prost::alloc::vec::Vec, + #[prost(float, repeated, tag = "3")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub miihklddfgj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26499)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohkpbhidbia { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9723)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljnklpifjnh { + #[prost(uint32, tag = "4")] + pub uid: u32, + #[prost(enumeration = "Jkejliipfkl", tag = "5")] + pub reason: i32, + #[prost(message, optional, tag = "10")] + pub pos: ::core::option::Option, + #[prost(uint32, repeated, tag = "13")] + pub ilmniplkenp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27218)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpdjaneokco { + #[prost(uint64, tag = "2")] + pub guid: u64, + #[prost(uint32, tag = "3")] + pub costume_id: u32, + #[prost(uint64, tag = "12")] + pub bmgngaabdke: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27720)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dppkojffmnn {} +#[derive(proto_gen::CmdID)] +#[cmdid(23511)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkhojbdlekk { + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(message, repeated, tag = "13")] + pub bdobhhhjkma: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub pnabomagmpl: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4685)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbipagmdphc { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1041)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Peibkdkoobf { + #[prost(uint32, tag = "14")] + pub pgmifndnkee: u32, + #[prost(uint32, tag = "15")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26313)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lihgldknnie {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akkecfcjgfn { + #[prost(bool, tag = "2")] + pub lbmialpeoba: bool, + #[prost(uint32, tag = "12")] + pub affklogicmo: u32, + #[prost(uint32, repeated, tag = "15")] + pub pigbinjahjf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2228)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OpenStateChangeNotify { + #[prost(map = "uint32, uint32", tag = "13")] + pub open_state_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21207)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjibcigjnak { + #[prost(message, repeated, tag = "3")] + pub aahmmhijbia: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20456)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilaimicpbdd { + #[prost(uint32, tag = "3")] + pub hmojpllgmkh: u32, + #[prost(message, repeated, tag = "7")] + pub efbplhdhlpb: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29683)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcnibpleeae {} +#[derive(proto_gen::CmdID)] +#[cmdid(23112)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecibonklgii { + #[prost(uint32, tag = "4")] + pub cngjenenjih: u32, + #[prost(uint32, repeated, tag = "6")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub dibjhdjhhlo: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub mhjeokngcdf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nomcbnkpdfh { + #[prost(message, repeated, tag = "3")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub kgimmencgmj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22965)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Enbainpjkfj { + #[prost(uint32, repeated, tag = "1")] + pub dcimaknlpek: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub bdflbidddme: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub pfdnjopmkec: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub dbkljnmdmdj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub lkiiefaeihe: u32, + #[prost(message, repeated, tag = "14")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcihiegpeai { + #[prost(uint32, tag = "3")] + pub kffhibefmpp: u32, + #[prost(uint32, tag = "5")] + pub cbfmilloboo: u32, + #[prost(uint32, tag = "6")] + pub fdjakfibmml: u32, + #[prost(uint32, tag = "7")] + pub amnljmbjnkg: u32, + #[prost(uint32, tag = "11")] + pub ddclebhphhb: u32, + #[prost(uint32, tag = "12")] + pub cmdnkflfhia: u32, + #[prost(uint32, tag = "13")] + pub ccdgnfpmobd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(459)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejbinbagnlp { + #[prost(uint32, tag = "1")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21525)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbnkhhfgbng { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26461)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Foojgdglepn { + #[prost(uint32, repeated, tag = "12")] + pub npldfkninho: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub fhiddcjdchl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1680)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnbpmjmccdd { + #[prost(uint32, tag = "1")] + pub agoollpkfom: u32, + #[prost(uint32, tag = "3")] + pub pbaakoninkm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28415)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmfbgaoofah { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmhlbngkmpm { + #[prost(uint32, tag = "12")] + pub peblohahpmm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8841)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkhaejhjhce { + #[prost(uint32, tag = "4")] + pub hnijmehbebp: u32, + #[prost(string, tag = "6")] + pub llgjemmhion: ::prost::alloc::string::String, + #[prost(string, tag = "9")] + pub bmljclenhmh: ::prost::alloc::string::String, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub lbjaacebmkj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjcdigfhbdg { + #[prost(uint32, tag = "2")] + pub ajhfccmikdg: u32, + #[prost(message, repeated, tag = "4")] + pub hcdnagjhpcl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29735)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcmafkfjecc { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub kfpegnaadlo: u32, + #[prost(uint32, tag = "13")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1279)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hccfgmmkklg { + #[prost(message, repeated, tag = "15")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbpcanibokn { + #[prost(uint32, tag = "1")] + pub dabljkejoif: u32, + #[prost(uint32, tag = "5")] + pub ghgpjjalleg: u32, + #[prost(bool, tag = "8")] + pub fafgmlajala: bool, + #[prost(message, repeated, tag = "9")] + pub lbfmkdpdebp: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub liaaakbhkgb: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub kcnnfefjgmg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20425)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Napmfgcnkbj { + #[prost(uint32, repeated, tag = "2")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pkkkijalpnm: u32, + #[prost(uint32, tag = "8")] + pub bnblmfkkfgg: u32, + #[prost(uint32, repeated, tag = "10")] + pub caknfaoiikk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2232)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpkloabkllh { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "2")] + pub hajbdmhdgig: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9843)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbmjkgnikbg { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26214)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpknfgllccg { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26685)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikomchmhpck { + #[prost(uint32, tag = "13")] + pub kpidllgnojf: u32, + #[prost(uint32, tag = "9")] + pub anhigelnhkp: u32, + #[prost(uint32, tag = "10")] + pub item_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8464)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahlejoifjoa { + #[prost(uint64, repeated, tag = "8")] + pub nmbemjimjob: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "7")] + pub hhbnnbdgfim: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obhhgacommg { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(uint32, tag = "4")] + pub pcklffnfnge: u32, + #[prost(uint32, tag = "6")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "10")] + pub pjfpehfamal: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(67)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oogmgdjiegj { + #[prost(uint32, tag = "11")] + pub ebabpeldogg: u32, + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "15")] + pub lelhnlhlefe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1865)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bakflajhlfl { + #[prost(message, repeated, tag = "2")] + pub cealfdpamip: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcieobogomj { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "5")] + pub reason: i32, + #[prost(uint32, tag = "13")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5797)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhhcpooanei { + #[prost(map = "uint32, int32", tag = "10")] + pub gbhmagadalj: ::std::collections::HashMap, + #[prost(map = "uint32, int32", tag = "11")] + pub eiaeimkelej: ::std::collections::HashMap, + #[prost(uint32, tag = "1")] + pub poooojlncao: u32, + #[prost(uint32, tag = "8")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "9")] + pub bdlmcmkdboe: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omhekeepfff { + #[prost(message, repeated, tag = "13")] + pub bdloifdnkjl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pniahagbeck {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Noflbmenknc { + #[prost(uint32, tag = "11")] + pub mdkdcjmlflo: u32, + #[prost(bytes = "vec", tag = "14")] + pub okjmeafggdc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ioliklnlgcl { + #[prost(uint32, tag = "1")] + pub dmkfeccmcop: u32, + #[prost(map = "uint32, message", tag = "2")] + pub ckfeffbpdad: ::std::collections::HashMap, + #[prost(bool, tag = "3")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "13")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21352)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igmhfcbcnpn {} +#[derive(proto_gen::CmdID)] +#[cmdid(1266)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Peiddijlolk { + #[prost(uint32, repeated, tag = "3")] + pub ekkkkdcddba: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub gjgoapaaigc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpooncljeai { + #[prost(message, optional, tag = "1")] + pub ofcgnbaaonj: ::core::option::Option, + #[prost(int32, tag = "3")] + pub bedacoieima: i32, + #[prost(float, tag = "4")] + pub ddebgodpmhd: f32, + #[prost(message, optional, tag = "6")] + pub hnaidnldhkk: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub ljmhpglfpon: ::core::option::Option, + #[prost(int32, tag = "9")] + pub fogaolefdmf: i32, + #[prost(message, optional, tag = "11")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jeeinadadjm { + #[prost(int32, tag = "7")] + pub gnjcidhobia: i32, + #[prost(bool, tag = "8")] + pub is_add: bool, + #[prost(uint32, tag = "13")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(218)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Noagbppaadj { + #[prost(uint32, repeated, tag = "5")] + pub njjceijccag: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaalepbpclm { + #[prost(int32, tag = "4")] + pub pjiaolagoai: i32, + #[prost(message, optional, tag = "6")] + pub iemhpjaofcn: ::core::option::Option, + #[prost(int64, tag = "11")] + pub okicoglejec: i64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njeiiebdgjb { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "9")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hchjmocboke { + #[prost(uint32, tag = "10")] + pub group_id: u32, + #[prost(oneof = "hchjmocboke::Detail", tags = "94, 135, 749, 1169, 1938")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `HCHJMOCBOKE`. +pub mod hchjmocboke { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "94")] + SeekFurnitureGalleryInfo(super::Dngnakadcba), + #[prost(message, tag = "135")] + StakePlayInfo(super::Cjploceginb), + #[prost(message, tag = "749")] + ExplosionInfo(super::Miakdjelhdc), + #[prost(message, tag = "1169")] + BalloonGalleryInfo(super::Ekjfibamkei), + #[prost(message, tag = "1938")] + RacingGalleryInfo(super::Phpjijiehee), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(27135)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcbaibhffkj { + #[prost(uint32, tag = "3")] + pub level: u32, + #[prost(uint32, tag = "4")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbilityAppliedModifier { + #[prost(int32, tag = "1")] + pub modifier_local_id: i32, + #[prost(uint32, tag = "2")] + pub parent_ability_entity_id: u32, + #[prost(message, optional, tag = "3")] + pub parent_ability_name: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub parent_ability_override: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub instanced_ability_id: u32, + #[prost(uint32, tag = "6")] + pub instanced_modifier_id: u32, + #[prost(float, tag = "7")] + pub exist_duration: f32, + #[prost(message, optional, tag = "8")] + pub attached_instanced_modifier: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub apply_entity_id: u32, + #[prost(bool, tag = "10")] + pub is_attached_parent_ability: bool, + #[prost(message, optional, tag = "11")] + pub modifier_durability: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub sbuff_uid: u32, + #[prost(bool, tag = "13")] + pub is_serverbuff_modifier: bool, + #[prost(bool, tag = "14")] + pub ncegkbanobp: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcmpihmioph { + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(bool, tag = "10")] + pub hblihlkjeda: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1158)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kplkanodolc { + #[prost(uint32, tag = "11")] + pub epjoaallggd: u32, + #[prost(uint32, tag = "2")] + pub eaflfgdfphc: u32, + #[prost(uint32, tag = "7")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcmdacefjpa { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(string, tag = "3")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "4")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(int64, tag = "5")] + pub param: i64, + #[prost(uint32, tag = "6")] + pub djcfmfedncg: u32, + #[prost(uint32, tag = "7")] + pub ammiaeoigod: u32, + #[prost(message, optional, tag = "9")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "10")] + pub kamjijolfkj: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5406)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpncnpbedkd { + #[prost(uint32, repeated, tag = "12")] + pub pkhadhnafng: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3649)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnclbhpgino { + #[prost(uint32, tag = "6")] + pub kdefnpgadfb: u32, + #[prost(uint32, tag = "3")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21568)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkdkkmmfpfo { + #[prost(uint32, tag = "10")] + pub pebgmemnknf: u32, + #[prost(uint32, tag = "9")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23993)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pegdmpldbgh { + #[prost(enumeration = "Ckbnedpjfdo", tag = "2")] + pub state: i32, + #[prost(uint32, tag = "7")] + pub uid: u32, + #[prost(string, tag = "12")] + pub bkdilgijpeg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnfiacdomng { + #[prost(enumeration = "Donnpjameed", tag = "1")] + pub cmnkkdbhijg: i32, + #[prost(uint32, tag = "2")] + pub fbpgimlmdnj: u32, + #[prost(fixed64, tag = "6")] + pub ohdfeiceled: u64, + #[prost(fixed64, tag = "14")] + pub lgbnfifcpjf: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22072)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hapaefddgil { + #[prost(uint32, tag = "1")] + pub nnebhhfhdcc: u32, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub mempkcgnnmf: u32, + #[prost(message, repeated, tag = "5")] + pub hfmnaekikjd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub cnhpajjbbeh: u32, + #[prost(uint32, tag = "11")] + pub leonidobchj: u32, + #[prost(uint32, tag = "12")] + pub dddppnmbdap: u32, + #[prost(uint32, tag = "13")] + pub fmpcppnebgo: u32, + #[prost(bool, tag = "14")] + pub cdhlmfllcol: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8537)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Figeafjgijb {} +#[derive(proto_gen::CmdID)] +#[cmdid(6133)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akmnpihegfg { + #[prost(message, optional, tag = "14")] + pub bojcnnpkmkj: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(int32, tag = "4")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oigbjhflkkl { + #[prost(message, optional, tag = "1")] + pub ioaniaknphc: ::core::option::Option, + #[prost(enumeration = "Bhefkoojnok", tag = "7")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "9")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2630)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oooagikfmld { + #[prost(fixed32, tag = "2")] + pub gcbnfplahld: u32, + #[prost(uint32, tag = "6")] + pub cdmjgifefmd: u32, + #[prost(bool, tag = "14")] + pub oenhcblfpfc: bool, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(333)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbgjkbjochk { + #[prost(uint32, tag = "11")] + pub param: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9135)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cippmbcjmmc { + #[prost(message, optional, tag = "8")] + pub kjjaoigfjpn: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26290)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epdlhfemfca {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knedolcpica { + #[prost(message, repeated, tag = "2")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ingaohghfmo { + #[prost(bool, tag = "8")] + pub hblihlkjeda: bool, + #[prost(uint32, tag = "11")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8127)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnhneecnhmi { + #[prost(message, optional, tag = "2")] + pub hffikmkijcm: ::core::option::Option, + #[prost(bool, tag = "14")] + pub llcocjhjbme: bool, + #[prost(uint32, tag = "3")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "13")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3721)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjfeecojeam { + #[prost(uint32, tag = "11")] + pub mnganmnnmjg: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjhbjodapmi { + #[prost(uint32, tag = "7")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7564)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbpcjffgjng { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(106)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iojpcfcoinf { + #[prost(uint32, repeated, tag = "7")] + pub pkhadhnafng: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27101)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpcgpmhahbm {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joapclnjbca { + #[prost(uint32, repeated, tag = "5")] + pub ogjodgflein: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub skill_depot_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2564)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gplniamepfd { + #[prost(message, repeated, tag = "1")] + pub neidbaohpfn: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "5")] + pub cjonapommcc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24508)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmonbonilcc { + #[prost(uint32, tag = "3")] + pub gbcebgkbjdm: u32, + #[prost(uint32, repeated, tag = "4")] + pub cmhjnabfhgj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2659)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaolpdoenbb { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(int32, repeated, tag = "11")] + pub dekiihdlaoi: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbbincmibal { + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(bool, tag = "5")] + pub hpdagjjbnfc: bool, + #[prost(uint32, tag = "12")] + pub config_id: u32, + #[prost(message, optional, tag = "13")] + pub kdhjlmkfman: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23405)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaobpdlphln { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub pjegodebmjc: u32, + #[prost(uint32, tag = "5")] + pub cjlmaokmpei: u32, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "12")] + pub dekhbeooien: u32, + #[prost(bool, tag = "15")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kelbfndhnik { + #[prost(message, optional, tag = "4")] + pub abpjibdjipa: ::core::option::Option, + #[prost(bool, tag = "9")] + pub ngdokajiafh: bool, + #[prost(uint32, tag = "12")] + pub jhladdklcfi: u32, + #[prost(oneof = "kelbfndhnik::Adebpdlaojp", tags = "13, 14")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `KELBFNDHNIK`. +pub mod kelbfndhnik { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(message, tag = "13")] + ShopInfo(super::Pdgijgaopfj), + #[prost(message, tag = "14")] + ChestInfo(super::Cocnecpfgje), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbfomllhkkk { + #[prost(bool, tag = "1")] + pub mjeofikhfem: bool, + #[prost(uint32, tag = "2")] + pub owner_entity_id: u32, + #[prost(uint32, tag = "3")] + pub instanced_modifier_id: u32, + #[prost(bool, tag = "4")] + pub is_serverbuff_modifier: bool, + #[prost(int32, tag = "5")] + pub phdilklhgad: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iamcelokjpm { + #[prost(uint32, tag = "2")] + pub avatar_id: u32, + #[prost(bool, tag = "10")] + pub hblihlkjeda: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25557)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aecilhmilao { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2115)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eplfhfiboec { + #[prost(uint32, tag = "13")] + pub kbmklmgchna: u32, + #[prost(uint32, tag = "11")] + pub kpocigpealj: u32, + #[prost(bool, tag = "14")] + pub lgggaifaenk: bool, + #[prost(uint32, tag = "10")] + pub gnfhgjpcdnh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnpnfmdpjfl { + #[prost(string, tag = "5")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "8")] + pub uid: u32, + #[prost(uint32, repeated, tag = "13")] + pub fdjpppfghne: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "15")] + pub blfkojlccoo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26882)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efdpiajailk { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub indikfknkab: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9163)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jieongdphbc { + #[prost(message, repeated, tag = "6")] + pub hmfcfgmgjop: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub afoebhfgfka: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hohjmannnmg { + #[prost(uint32, tag = "1")] + pub nnaalgjoaio: u32, + #[prost(uint32, tag = "4")] + pub njplicfcfjd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21607)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jglfjjohdib { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdffjficdhk { + #[prost(bool, tag = "3")] + pub khhimjnknnn: bool, + #[prost(message, optional, tag = "6")] + pub llnnhdpegef: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpjfpadpfmj { + #[prost(message, repeated, tag = "7")] + pub fckhpeancna: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(704)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbklbgdlmgi { + #[prost(bool, tag = "13")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "14")] + pub iehlhaogkpj: u32, + #[prost(uint32, tag = "15")] + pub plicgiinkfi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3381)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlbbnoafgko { + #[prost(bool, tag = "12")] + pub fdgoboihcbp: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbilityScalarValueEntry { + #[prost(message, optional, tag = "1")] + pub key: ::core::option::Option, + #[prost(float, tag = "3")] + pub float_value: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(957)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaoomhpmaga { + #[prost(uint32, tag = "8")] + pub epjoaallggd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbilityMixinRecoverInfo { + #[prost(uint32, tag = "3")] + pub local_id: u32, + #[prost(uint32, repeated, tag = "4")] + pub data_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub is_serverbuff_modifier: bool, + #[prost(message, repeated, tag = "6")] + pub massive_prop_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "7")] + pub breakout_snap_shot: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub fjbmdphicpf: ::core::option::Option, + #[prost(oneof = "ability_mixin_recover_info::Nkkgedpmjke", tags = "1, 2")] + pub nkkgedpmjke: ::core::option::Option, +} +/// Nested message and enum types in `AbilityMixinRecoverInfo`. +pub mod ability_mixin_recover_info { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Nkkgedpmjke { + #[prost(uint32, tag = "1")] + InstancedAbilityId(u32), + #[prost(uint32, tag = "2")] + InstancedModifierId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adonikgmppl { + #[prost(uint32, tag = "1")] + pub knlilapdkkg: u32, + #[prost(bool, tag = "5")] + pub ffpnmobaknf: bool, + #[prost(uint32, tag = "11")] + pub gigkdjinolg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekpablifilg { + #[prost(uint32, tag = "1")] + pub clonhpkokce: u32, + #[prost(uint32, tag = "10")] + pub ehgpnneefob: u32, + #[prost(uint32, tag = "11")] + pub gigkdjinolg: u32, + #[prost(uint32, tag = "13")] + pub mclncmfnpjd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21935)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jeieicjfebd { + #[prost(uint32, repeated, tag = "13")] + pub jcdfoeebcgn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Moeoafiaijc { + #[prost(message, repeated, tag = "8")] + pub bppncgienig: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjlmhgjkdg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8958)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Liieplfmnai { + #[prost(string, tag = "10")] + pub dmmfjmbmjha: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub cgepcdfidnf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7096)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhnhlebcndk { + #[prost(string, tag = "9")] + pub pcapihekaoo: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpeooopechb { + #[prost(uint32, tag = "5")] + pub jcnhcifmgkj: u32, + #[prost(message, optional, tag = "9")] + pub dpfhlalanae: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub peer_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2013)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okicbjhlhlf { + #[prost(uint32, tag = "4")] + pub game_time: u32, + #[prost(uint32, tag = "9")] + pub padclipinad: u32, + #[prost(uint32, repeated, tag = "11")] + pub aeppkckcibp: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25314)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Megnppjcodb { + #[prost(uint32, tag = "14")] + pub lgbmbjcjmka: u32, + #[prost(uint32, tag = "8")] + pub group_id: u32, + #[prost(uint32, tag = "10")] + pub dbkoiphedke: u32, + #[prost(uint32, tag = "2")] + pub lkigjmjnmbj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cobiiagbpoo { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(float, tag = "2")] + pub jogjekpidih: f32, + #[prost(message, optional, tag = "3")] + pub mnijadclicp: ::core::option::Option, + #[prost(int32, tag = "4")] + pub ehlacbflmdf: i32, + #[prost(message, optional, tag = "5")] + pub dbkfohkalbf: ::core::option::Option, + #[prost(bool, tag = "6")] + pub fbbacpmpgce: bool, + #[prost(float, tag = "7")] + pub jijafhohiaf: f32, + #[prost(int32, tag = "10")] + pub dpokehnmemf: i32, + #[prost(message, optional, tag = "11")] + pub ogloicbjfmk: ::core::option::Option, + #[prost(bool, tag = "13")] + pub mfekinkpikk: bool, + #[prost(message, optional, tag = "14")] + pub foppejekepc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6470)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lllddlnhkhl { + #[prost(message, repeated, tag = "4")] + pub imegmngkdin: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub hcdnphnkbhb: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogflejapleo { + #[prost(float, tag = "1")] + pub x: f32, + #[prost(float, tag = "2")] + pub y: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26075)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cboldjecjpd { + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9804)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Daehleacgcp { + #[prost(uint32, tag = "1")] + pub gdjklhgohif: u32, + #[prost(uint32, tag = "3")] + pub hajbdmhdgig: u32, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9463)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cknpamkcmbg { + #[prost(message, repeated, tag = "12")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epigpippdpk { + #[prost(bool, tag = "1")] + pub dohhenfngpe: bool, + #[prost(uint32, tag = "12")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22908)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pophndoikbi { + #[prost(string, tag = "11")] + pub dmmfjmbmjha: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub ijpbkndjghk: ::prost::alloc::string::String, + #[prost(enumeration = "Nlkboohnhhj", tag = "1")] + pub reason: i32, + #[prost(uint32, tag = "3")] + pub target_uid: u32, + #[prost(uint32, tag = "14")] + pub nbfgkpbcglj: u32, + #[prost(enumeration = "Gecmbiekdnd", tag = "5")] + pub pcdfbnghgal: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghobinfolap { + #[prost(uint32, tag = "3")] + pub kill_num: u32, + #[prost(uint32, tag = "4")] + pub dekhbeooien: u32, + #[prost(bool, tag = "7")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub diggffkgodj: u32, + #[prost(uint32, tag = "13")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afnbgdddoad { + #[prost(float, tag = "12")] + pub emdgkjginac: f32, + #[prost(uint64, tag = "13")] + pub avatar_guid: u64, + #[prost(float, tag = "15")] + pub ijffkcgiaoj: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ooiecfnaamk { + #[prost(message, repeated, tag = "3")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgmifagdokh { + #[prost(map = "uint32, uint32", tag = "1")] + pub ikjjpjccdon: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "3")] + pub ofbcbogfcej: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub jphhgapgmbm: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, message", tag = "9")] + pub khcdchnfglb: ::std::collections::HashMap, + #[prost(uint32, tag = "15")] + pub bfpcnieejmi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6819)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjcpkbnikik { + #[prost(uint32, tag = "11")] + pub iamcnilplco: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2510)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljohlmckhdc { + #[prost(message, optional, tag = "5")] + pub goeachamiaf: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub hjbeggjocdn: u32, + #[prost(uint32, tag = "10")] + pub gkhnlkaadng: u32, + #[prost(enumeration = "PlayerDieType", tag = "14")] + pub jdfbfdifmmj: i32, + #[prost(oneof = "ljohlmckhdc::Entity", tags = "8, 15")] + pub entity: ::core::option::Option, +} +/// Nested message and enum types in `LJOHLMCKHDC`. +pub mod ljohlmckhdc { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Entity { + #[prost(uint32, tag = "8")] + GadgetId(u32), + #[prost(uint32, tag = "15")] + MonsterId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(27005)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olgbcpimphb { + #[prost(uint32, tag = "10")] + pub cenhkjdffda: u32, + #[prost(uint32, repeated, tag = "14")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Nmjpfhhjdan", tag = "15")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22280)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjpmidlfoeo { + #[prost(uint32, tag = "8")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "13")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26220)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Keeboilolji { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26098)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oajglamdcbl { + #[prost(string, tag = "4")] + pub dppibjfomoc: ::prost::alloc::string::String, + #[prost(enumeration = "Edodpnmmkli", tag = "1")] + pub okjdomaeibc: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1719)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibppbggkbbn { + #[prost(uint32, tag = "10")] + pub pelmfdngnfp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24884)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Peiklcinook { + #[prost(uint32, tag = "4")] + pub lhdahdneppl: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhlgcngflaf { + #[prost(uint32, tag = "3")] + pub fepmfinomjl: u32, + #[prost(uint32, tag = "5")] + pub ocedblchfid: u32, + #[prost(uint32, tag = "11")] + pub bgbcfmhofph: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcfgmgnhadp { + #[prost(message, optional, tag = "1")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29907)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djkobapablm {} +#[derive(proto_gen::CmdID)] +#[cmdid(2699)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TeamResonanceChangeNotify { + #[prost(message, repeated, tag = "11")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Genjmanaclb { + #[prost(message, repeated, tag = "13")] + pub ajjgcehclkp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21514)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnjafbpdlkp { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anaepbepalc { + #[prost(uint32, repeated, tag = "3")] + pub ilmniplkenp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub dbdmhkfhekf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24585)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhdgmmbijih { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub gpdogmpijfc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6502)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mehmeknclbi { + #[prost(uint32, tag = "7")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2611)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alakmkplnom { + #[prost(uint32, repeated, tag = "9")] + pub dlkekcdojbj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlkdabblifk { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint64, tag = "2")] + pub avatar_guid: u64, + #[prost(uint32, tag = "3")] + pub pos: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25101)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcedhafadgn { + #[prost(uint32, tag = "3")] + pub mhghinogbgd: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poipababmda { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24016)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejlahoahlhf { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub jlfheeipddp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3033)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kehplkogemf { + #[prost(uint32, tag = "4")] + pub gaplfmmgbfa: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24379)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngbfhpgmcdc {} +#[derive(proto_gen::CmdID)] +#[cmdid(29504)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fblidjmbjjo { + #[prost(uint32, tag = "9")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9186)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbkmfpijanp { + #[prost(uint32, repeated, tag = "15")] + pub napgdlclmef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29273)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojpdnbkpiki { + #[prost(message, repeated, tag = "1")] + pub mphoejbnnbh: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub lpddmnemjlg: u32, + #[prost(message, repeated, tag = "7")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub kpmhbfhlaea: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub ejcpfnngjkh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3718)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfcgceniibe { + #[prost(uint32, repeated, tag = "2")] + pub nnfbhpjcono: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "1890")] + pub cfkplnkhfkn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "1683")] + pub gikjkdblfad: u32, + #[prost(bool, tag = "766")] + pub hkjpcjflnfj: bool, + #[prost(bool, tag = "13")] + pub jfjdimpcnnf: bool, + #[prost(bool, tag = "167")] + pub oedcpfgakam: bool, + #[prost(uint32, tag = "15")] + pub dekhbeooien: u32, + #[prost(float, tag = "1015")] + pub speed: f32, + #[prost(uint32, tag = "1923")] + pub jjkibhbpppo: u32, + #[prost(uint32, tag = "967")] + pub jpeglebnigl: u32, + #[prost(uint32, tag = "7")] + pub aboagokkiea: u32, + #[prost(uint32, tag = "3")] + pub jlfheeipddp: u32, + #[prost(uint32, tag = "8")] + pub bhpgplpcnpl: u32, + #[prost(uint32, tag = "14")] + pub clcabcnlgfm: u32, + #[prost(uint32, tag = "11")] + pub pcklffnfnge: u32, + #[prost(uint64, tag = "9")] + pub dcompdppdpo: u64, + #[prost(uint32, tag = "6")] + pub cjbckcobhff: u32, + #[prost(uint32, tag = "1")] + pub ejnglcjnapn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Immkojealha { + #[prost(uint32, tag = "4")] + pub gldnnfocdem: u32, + #[prost(uint32, tag = "10")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5500)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdommnpffdc { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub caibdankdon: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20623)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kocmfnhpiel { + #[prost(message, optional, tag = "7")] + pub pfacbmgkkep: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub hfhepkakhmn: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub ebagamdkggd: ::core::option::Option, + #[prost(message, optional, tag = "1")] + pub egchgonpakb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8228)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpghankihig { + #[prost(uint32, tag = "2")] + pub pjegodebmjc: u32, + #[prost(uint32, tag = "13")] + pub jcejajfndhm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4114)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pieeokhjoec { + #[prost(uint32, tag = "3")] + pub omgchbachci: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajkdchjakid { + #[prost(message, optional, tag = "7")] + pub abpjibdjipa: ::core::option::Option, + #[prost(message, repeated, tag = "11")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub dllfgdhcalb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(937)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcanlihbmpm {} +#[derive(proto_gen::CmdID)] +#[cmdid(28419)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngeahblccbn {} +#[derive(proto_gen::CmdID)] +#[cmdid(1580)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eomchklooce {} +#[derive(proto_gen::CmdID)] +#[cmdid(376)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkjjjbbncep { + #[prost(int32, tag = "2")] + pub oaagmpkikgi: i32, + #[prost(uint32, tag = "7")] + pub mmldgpbiecc: u32, + #[prost(uint32, tag = "3")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26278)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppmbleciadk { + #[prost(uint64, tag = "3")] + pub avatar_guid: u64, + #[prost(uint32, tag = "8")] + pub entity_id: u32, + #[prost(uint32, tag = "9")] + pub ablfjpmkkda: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieoeihipalb { + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, + #[prost(message, repeated, tag = "10")] + pub oopopjofcgm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "11")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29308)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iopbodojola { + #[prost(message, repeated, tag = "1")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub jbadgiahpgc: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub piknkfonbhj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfimhkhfcok { + #[prost(uint32, tag = "6")] + pub ifnjcelnabn: u32, + #[prost(uint32, tag = "14")] + pub state: u32, + #[prost(uint32, tag = "15")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6273)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Maamibblgmk { + #[prost(map = "uint32, message", tag = "7")] + pub prop_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "14")] + pub mcgfnjlcedm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4262)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pneaheegopi { + #[prost(string, tag = "6")] + pub dppibjfomoc: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25238)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgpknenkphm { + #[prost(uint32, tag = "13")] + pub fchfakepinp: u32, + #[prost(uint32, tag = "15")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhjhjbonaka { + #[prost(message, optional, tag = "1")] + pub kmgkacaalcl: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub delete_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpaamemplbp { + #[prost(uint32, repeated, tag = "7")] + pub iaiigfiphem: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub konboaobchp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub knchdpbaage: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "14")] + pub heaabglojhh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1579)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jicdjaockja { + #[prost(uint32, tag = "4")] + pub lplhaeppnlh: u32, + #[prost(uint32, tag = "8")] + pub bigfelpplae: u32, + #[prost(uint32, repeated, tag = "12")] + pub nceldlhfoii: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub mdbppoihcnm: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlmkgdnbhel { + #[prost(uint32, tag = "5")] + pub pbocochgfja: u32, + #[prost(bool, tag = "7")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "11")] + pub fmjigfmbjpj: u32, + #[prost(uint32, tag = "13")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "15")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdigdpejfbf { + #[prost(uint32, tag = "6")] + pub bcgeoglhkan: u32, + #[prost(uint32, tag = "7")] + pub nnebhhfhdcc: u32, + #[prost(bool, tag = "9")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "10")] + pub ihlceedfind: u32, + #[prost(bool, tag = "12")] + pub ahpppoloeno: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6855)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abehebcbieo { + #[prost(message, repeated, tag = "1")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub poiggnkedah: bool, + #[prost(uint32, tag = "4")] + pub pdkifkkmhcn: u32, + #[prost(uint32, repeated, tag = "5")] + pub cdidjfpemmi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub bknplfikkfg: u32, + #[prost(message, repeated, tag = "7")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub lgbnfifcpjf: u32, + #[prost(bool, tag = "12")] + pub midheclibbo: bool, + #[prost(uint32, tag = "15")] + pub fpedhedekpe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28083)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpphfmhegkj { + #[prost(enumeration = "Eoniaegppec", tag = "6")] + pub ogicmfigkpm: i32, + #[prost(message, repeated, tag = "12")] + pub params: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekpabgijlbo { + #[prost(message, repeated, tag = "6")] + pub gjnnddahmcc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1748)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iknjpddcmmp { + #[prost(uint32, tag = "2")] + pub lioojoaiamc: u32, + #[prost(message, optional, tag = "5")] + pub kkaccpnohcg: ::core::option::Option, + #[prost(enumeration = "Oeaoccjeope", tag = "11")] + pub ddiaamkbfda: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26981)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjbbiahcham { + #[prost(message, optional, tag = "7")] + pub nnfpnodfkob: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8292)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbdfoljdmgo { + #[prost(message, optional, tag = "12")] + pub ddpgemgdhel: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgeenjnkegb { + #[prost(uint32, tag = "9")] + pub iejhhmbobmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23980)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anlpjlbmhfi { + #[prost(message, repeated, tag = "8")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22394)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inbpkaehjpc { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(bool, tag = "12")] + pub nkgbaemaplp: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkibkgpgakj { + #[prost(message, repeated, tag = "4")] + pub fhpgbcfaake: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "5")] + pub mkjgkkilehi: i32, + #[prost(message, repeated, tag = "10")] + pub hhfokbpdnlg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub hkaaoaeamkk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6230)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjchdbccpkn { + #[prost(uint32, tag = "5")] + pub pdgnedcpoch: u32, + #[prost(map = "uint32, message", tag = "9")] + pub oegmmdljkdm: ::std::collections::HashMap, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28894)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iiohdchmcep { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26714)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmjahahafbo { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5927)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnebhnakkme { + #[prost(uint32, tag = "10")] + pub ooflahmeleo: u32, + #[prost(message, optional, tag = "14")] + pub aphjkdfbajk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21446)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldaoenejokp { + #[prost(message, repeated, tag = "2")] + pub faclcdohbgd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub ccpmkfadobi: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(string, tag = "9")] + pub lgnfafmphkd: ::prost::alloc::string::String, + #[prost(uint32, tag = "11")] + pub ndddmkodibp: u32, + #[prost(bool, tag = "13")] + pub ljmfgajfian: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Codlghbfmll { + #[prost(message, repeated, tag = "14")] + pub weapon_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29042)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Majaeedoaeo { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "12")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjgbnolnfoa { + #[prost(uint32, tag = "1")] + pub gcfedfajgah: u32, + #[prost(message, repeated, tag = "3")] + pub nphlhaeliam: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "6")] + pub nlanefnjdmn: u32, + #[prost(uint32, tag = "8")] + pub bkngnhmgldg: u32, + #[prost(uint32, tag = "12")] + pub jibfgckjpbe: u32, + #[prost(uint32, tag = "14")] + pub bhbkmaofggi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29189)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Minndmnahkj { + #[prost(uint32, tag = "2")] + pub mndlpmlcjhe: u32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "9")] + pub bejambjbgih: bool, + #[prost(uint32, tag = "10")] + pub jnkgigdjilk: u32, + #[prost(bool, tag = "11")] + pub dggckmikbmo: bool, + #[prost(oneof = "minndmnahkj::Gcbckcbnpmn", tags = "4, 7, 15")] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `MINNDMNAHKJ`. +pub mod minndmnahkj { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "4")] + FirstStageInfo(super::Jfbjeiphadm), + #[prost(message, tag = "7")] + SecondStageInfo(super::Hmajiggcebj), + #[prost(message, tag = "15")] + ThirdStageInfo(super::Odbehiednfd), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(25161)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcchjgegfak { + #[prost(message, repeated, tag = "5")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eimpejmlmoa {} +#[derive(proto_gen::CmdID)] +#[cmdid(29953)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikenedkcigc { + #[prost(bool, tag = "3")] + pub inbenefpkmk: bool, + #[prost(bool, tag = "4")] + pub gjpeomabhgf: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2264)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jldlokgjcip { + #[prost(uint32, tag = "7")] + pub nobdoodohki: u32, + #[prost(uint32, tag = "2")] + pub nnpgbampcjl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(794)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmnminhobgp { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Doapbihibha { + #[prost(uint32, tag = "3")] + pub pcaobbjlffm: u32, + #[prost(uint32, tag = "4")] + pub jefildjebaj: u32, + #[prost(uint32, tag = "5")] + pub djllibidbgn: u32, + #[prost(uint32, tag = "11")] + pub agibomgaddk: u32, + #[prost(enumeration = "Gacainioald", tag = "15")] + pub state: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28495)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obbafclgjaa { + #[prost(uint32, tag = "10")] + pub gaplfmmgbfa: u32, + #[prost(enumeration = "Noipnepdipn", tag = "2")] + pub epcbaobgodi: i32, + #[prost(uint64, tag = "4")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27908)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmbbmgnhbbf { + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(uint32, tag = "7")] + pub okkapkjihjb: u32, + #[prost(uint32, tag = "15")] + pub ijagllbjkda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6146)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pichiaopplj { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22227)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccidndchjcm { + #[prost(message, repeated, tag = "11")] + pub bgpfbbghdka: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26249)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikgafgeakak { + #[prost(uint32, tag = "2")] + pub gbcebgkbjdm: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(enumeration = "Hhnoenmdggg", tag = "6")] + pub kfmglfjdodo: i32, + #[prost(enumeration = "Nmfdmilhgpo", tag = "8")] + pub oaahhnmhafh: i32, + #[prost(uint32, tag = "13")] + pub gadget_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7483)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obomdlilbik { + #[prost(message, optional, tag = "4")] + pub aebglfmjfhm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Biijlkkmppi { + #[prost(enumeration = "Bkhklfcblfj", tag = "2")] + pub lmgnncgppcg: i32, + #[prost(uint32, repeated, tag = "3")] + pub dobnnmfigih: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "7")] + pub bdlmcmkdboe: u32, + #[prost(map = "uint32, int32", tag = "10")] + pub gbhmagadalj: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "13")] + pub ifdieidjpoh: ::std::collections::HashMap, + #[prost(map = "uint32, int32", tag = "15")] + pub eiaeimkelej: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryRegionListHttpRsp { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "2")] + pub region_list: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "5")] + pub client_secret_key: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "6")] + pub client_custom_config_encrypted: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub enable_login_pc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5391)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhepmfhillo { + #[prost(message, optional, tag = "1")] + pub nlmdbcacpfg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8825)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hadhkbngipl { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub bailmnhopnp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpkfadohamd { + #[prost(message, repeated, tag = "2")] + pub albaimjkelj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9579)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgnkejpepgg { + #[prost(uint32, tag = "2")] + pub fpedhedekpe: u32, + #[prost(bool, tag = "3")] + pub mjaoipldjmc: bool, + #[prost(message, repeated, tag = "4")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub knleaemkoob: u32, + #[prost(message, repeated, tag = "7")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub bknplfikkfg: u32, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, + #[prost(uint32, repeated, tag = "12")] + pub cdidjfpemmi: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "14")] + pub ankcbommojb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27835)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gajfdcogcep { + #[prost(uint32, tag = "5")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21682)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mephpfeaphh { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgcjfmnoonb { + #[prost(uint32, tag = "1")] + pub mempkcgnnmf: u32, + #[prost(uint32, repeated, tag = "6")] + pub mnnbpdbbckh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "13")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23650)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcddmmfehmm { + #[prost(message, repeated, tag = "4")] + pub cadonpdcdbg: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7319)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dljeahlfapa { + #[prost(uint64, tag = "6")] + pub guid: u64, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5909)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fogbfjblndc { + #[prost(uint32, tag = "12")] + pub avatar_id: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(528)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkhjjlagmop { + #[prost(uint32, repeated, tag = "2")] + pub caknfaoiikk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(741)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lflefliicpo { + #[prost(uint32, tag = "8")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "12")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24373)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cljhjbfanpa {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aamkcdcjnhp { + #[prost(message, optional, tag = "9")] + pub hdmbkcpiccc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5043)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnpahcfpjml { + #[prost(uint32, tag = "1")] + pub fchfakepinp: u32, + #[prost(uint32, tag = "10")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mannmaoahkb { + #[prost(uint32, tag = "3")] + pub fbpgimlmdnj: u32, + #[prost(message, optional, tag = "9")] + pub figfpencngd: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gemjhnlgkol { + #[prost(uint32, tag = "4")] + pub bjjjdldclll: u32, + #[prost(uint32, tag = "6")] + pub fmjigfmbjpj: u32, + #[prost(uint32, tag = "7")] + pub hogpdlghglm: u32, + #[prost(uint32, tag = "10")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "12")] + pub pbkeaocbpmn: u32, + #[prost(uint32, tag = "15")] + pub state: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3384)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Maioabdfdlc { + #[prost(uint32, tag = "4")] + pub cjcjonhpiio: u32, + #[prost(message, optional, tag = "6")] + pub lapiciijckl: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub hkeeinbhfhm: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28194)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fokpcdnnbjj { + #[prost(uint32, repeated, tag = "2")] + pub aeppkckcibp: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oncgjpmfpnm {} +#[derive(proto_gen::CmdID)] +#[cmdid(1245)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clkkdccapim { + #[prost(uint32, tag = "11")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4403)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjombbbgckp { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub lapiciijckl: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9805)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgoolimmllj { + #[prost(uint32, repeated, tag = "4")] + pub nmeemocpfme: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7056)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcnmehgnklb { + #[prost(uint32, tag = "3")] + pub omgchbachci: u32, + #[prost(bool, tag = "4")] + pub pohfobdllbc: bool, + #[prost(uint32, tag = "7")] + pub admokadnfhh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5729)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hoclbemgpde { + #[prost(uint32, tag = "4")] + pub apnlofpnahn: u32, + #[prost(uint64, tag = "5")] + pub avatar_guid: u64, + #[prost(uint64, tag = "6")] + pub baengfiafmf: u64, + #[prost(uint32, tag = "7")] + pub item_id: u32, + #[prost(message, optional, tag = "9")] + pub weapon: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub ppfkbhelidn: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlagffoigal { + #[prost(uint32, tag = "3")] + pub peajinifghm: u32, + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, + #[prost(message, repeated, tag = "8")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "12")] + pub eialjbaengj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22169)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbfnfghkegg { + #[prost(bool, tag = "7")] + pub jfjdimpcnnf: bool, + #[prost(uint32, tag = "5")] + pub jlfheeipddp: u32, + #[prost(uint64, tag = "11")] + pub dcompdppdpo: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24589)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlehjbfldek { + #[prost(uint32, tag = "1")] + pub jofbeiaclof: u32, + #[prost(enumeration = "Peklcmkljmm", tag = "4")] + pub reason: i32, + #[prost(bool, tag = "5")] + pub mjaoipldjmc: bool, + #[prost(bool, tag = "7")] + pub ebgkbpbkogl: bool, + #[prost(uint32, tag = "9")] + pub bknplfikkfg: u32, + #[prost(message, repeated, tag = "10")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub pdlmkflekdl: u32, + #[prost(uint32, repeated, tag = "12")] + pub aahnpojgpci: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub lgbnfifcpjf: u32, + #[prost(message, repeated, tag = "14")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub kmhidaefflc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9187)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdonfojmnag { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1299)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onaebfpnjmn { + #[prost(message, optional, tag = "1")] + pub kglilblfnmf: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1380)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpcdhopjnmh { + #[prost(uint32, tag = "4")] + pub beiidlebafi: u32, + #[prost(message, optional, tag = "9")] + pub position: ::core::option::Option, + #[prost(bool, tag = "15")] + pub fijhoanipbe: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhdoiannjmn { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(uint32, tag = "2")] + pub gfppmnlpoek: u32, + #[prost(uint32, tag = "3")] + pub adkccidlidi: u32, + #[prost(uint32, tag = "4")] + pub promote_level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5752)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dooohpfnkni { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lodopknfjnb { + #[prost(uint64, tag = "1")] + pub gedmdocolfj: u64, + #[prost(message, optional, tag = "2")] + pub fpojglaneco: ::core::option::Option, + #[prost(bool, tag = "3")] + pub jfoeekheimo: bool, + #[prost(uint32, tag = "4")] + pub peioefbcmfp: u32, + #[prost(uint32, repeated, tag = "5")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "6")] + pub japdknhenld: ::core::option::Option, + #[prost(enumeration = "Dfafgepbldo", tag = "7")] + pub ehloechhepi: i32, + #[prost(message, repeated, tag = "8")] + pub kohlimepnpm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "9")] + pub dhaomgmmdpd: bool, + #[prost(uint32, tag = "10")] + pub oppfabknmmb: u32, + #[prost(uint32, tag = "11")] + pub iiacggogmlp: u32, + #[prost(string, tag = "12")] + pub ebbpboejjpp: ::prost::alloc::string::String, + #[prost(string, tag = "13")] + pub dppibjfomoc: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "15")] + pub kfeheojcklb: u32, + #[prost(uint32, tag = "710")] + pub dgbmjcfhlbb: u32, + #[prost(bool, tag = "1118")] + pub anicopjpcfm: bool, + #[prost(bool, tag = "1587")] + pub pflajckehfa: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6374)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pffmbimgiie { + #[prost(uint32, tag = "6")] + pub blbccmphapa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1310)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjliknejmej { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, optional, tag = "4")] + pub pgkblgcdkil: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub jhjogbelfed: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub gobchdjolnb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkmnangfmok { + #[prost(uint32, repeated, tag = "8")] + pub igojdjhkhon: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub mcmbofifbcp: u32, + #[prost(uint32, tag = "12")] + pub gpaeljhnaek: u32, + #[prost(message, optional, tag = "13")] + pub mbfdgldkefh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9590)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbjpkonemda { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(map = "uint32, message", tag = "3")] + pub lnkjpkacoop: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eminhdjhbom { + #[prost(uint32, tag = "1")] + pub ffnofcphooa: u32, + #[prost(uint32, tag = "2")] + pub peblohahpmm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25520)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oajcdbjcccb { + #[prost(uint32, tag = "7")] + pub hkeeinbhfhm: u32, + #[prost(message, optional, tag = "10")] + pub nmklkgccmie: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8480)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmfnnmhkijo { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekjfibamkei { + #[prost(message, repeated, tag = "14")] + pub pigofiofjid: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2636)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpfdoehbfem {} +#[derive(proto_gen::CmdID)] +#[cmdid(8814)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aioafiohljp { + #[prost(bool, tag = "4")] + pub nnddeadlggd: bool, + #[prost(uint32, tag = "5")] + pub ilpfcpokhpm: u32, + #[prost(float, tag = "6")] + pub oamfefeeajb: f32, + #[prost(uint32, tag = "9")] + pub nldmdecjcmg: u32, + #[prost(string, tag = "11")] + pub ahcfmjjlejn: ::prost::alloc::string::String, + #[prost(float, tag = "12")] + pub pidblfjkebm: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifbejfokpcc { + #[prost(uint32, tag = "2")] + pub fanipenjcgk: u32, + #[prost(uint32, tag = "6")] + pub oljahdjcfbe: u32, + #[prost(uint32, tag = "7")] + pub oeokfgolhbk: u32, + #[prost(uint32, tag = "9")] + pub oinfaddjfbk: u32, + #[prost(uint32, tag = "10")] + pub egbmifdjdih: u32, + #[prost(enumeration = "Dbkkepahcpe", tag = "14")] + pub fbbbjnhiplf: i32, + #[prost(enumeration = "Kdioojinlkg", tag = "15")] + pub hgkoegebhfo: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22994)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgcglooipfo { + #[prost(uint32, tag = "11")] + pub dlphdipgphf: u32, + #[prost(uint32, tag = "12")] + pub entity_id: u32, + #[prost(uint32, tag = "15")] + pub knclkkifaoc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gafljbcfkjj { + #[prost(map = "uint32, uint32", tag = "1")] + pub ohbkekljbef: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4641)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anngejfkkkp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlllhgkpnfa { + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "6")] + pub mgcmnplnjkl: u32, + #[prost(bool, tag = "7")] + pub kfpmghhdndo: bool, + #[prost(uint32, tag = "9")] + pub dmkfeccmcop: u32, + #[prost(message, optional, tag = "10")] + pub ccnnjmkemlc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8819)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Difahdaeoff { + #[prost(message, optional, tag = "7")] + pub aacapngopon: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26668)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldeilhngkef {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbkinkjmghb { + #[prost(uint32, repeated, tag = "6")] + pub bomddcpikbe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub team_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkkcacidpna { + #[prost(message, optional, tag = "1")] + pub mkmhliagilo: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub bnejocdiffh: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub mcimpejekcj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29496)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kooglnlmanh { + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "3")] + pub bknplfikkfg: u32, + #[prost(oneof = "kooglnlmanh::Detail", tags = "372, 467, 1173")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `KOOGLNLMANH`. +pub mod kooglnlmanh { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "372")] + IrodoriChessSettleInfo(super::Nppllpealik), + #[prost(message, tag = "467")] + MechanicusSettleInfo(super::Kkfobmpmgbi), + #[prost(message, tag = "1173")] + ChessSettleInfo(super::Ennabdgogof), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(7088)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geiomaelngm { + #[prost(uint32, repeated, tag = "8")] + pub ngacpnngejo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5627)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdlaeidpige { + #[prost(uint32, tag = "11")] + pub ocnjnmhllhi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28454)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjijhaffgcd { + #[prost(uint32, tag = "11")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmniaejpkgp { + #[prost(uint32, repeated, tag = "4")] + pub nogkegjkipk: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub oplajnckefn: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub kkippoeelnd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub ecfafecmmff: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pofpehafdif: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3115)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npjgdcdphij { + #[prost(uint32, tag = "7")] + pub mgcmnplnjkl: u32, + #[prost(uint32, tag = "5")] + pub fecbncacgbh: u32, + #[prost(bool, tag = "13")] + pub ankcbommojb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21896)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhodkcmeogi { + #[prost(uint32, tag = "7")] + pub bhkedlmdgpm: u32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2706)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmojdonpilo { + #[prost(uint32, tag = "6")] + pub target_uid: u32, + #[prost(uint32, tag = "9")] + pub param: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21701)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffmonfobapi { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24700)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oeembcaipkl { + #[prost(uint64, tag = "8")] + pub dcompdppdpo: u64, + #[prost(enumeration = "Himmemhogfb", tag = "5")] + pub mfmlakbiaed: i32, + #[prost(bool, tag = "14")] + pub akdgmpmndfc: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gopnaklacip { + #[prost(bool, tag = "3")] + pub knhicjhgbem: bool, + #[prost(uint32, tag = "4")] + pub agienjjkpbe: u32, + #[prost(enumeration = "Boedelijagb", tag = "6")] + pub gjlkedkojmj: i32, + #[prost(uint32, tag = "8")] + pub nhkapceomoe: u32, + #[prost(uint32, tag = "9")] + pub scene_id: u32, + #[prost(uint32, tag = "10")] + pub fncogclpgnc: u32, + #[prost(message, optional, tag = "11")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(bool, tag = "15")] + pub dmjnghladba: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24106)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adidlmepnok { + #[prost(uint32, tag = "9")] + pub ccpigccdboi: u32, + #[prost(uint32, tag = "10")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "15")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nobopmmgclc { + #[prost(uint32, tag = "9")] + pub gadget_id: u32, + #[prost(uint32, repeated, tag = "12")] + pub oilkfbhgobc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3473)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dabcpfgbhhf { + #[prost(message, repeated, tag = "8")] + pub ikpaapimbhh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23782)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alodjbofccc { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub caibdankdon: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9264)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iebfcfmhlfg { + #[prost(uint64, repeated, tag = "2")] + pub edabeidcffo: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjkkfihmkdd { + #[prost(bool, tag = "8")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "10")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "11")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29419)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfkkkecicho { + #[prost(uint32, tag = "6")] + pub iknfnnfkagf: u32, + #[prost(uint32, tag = "5")] + pub ocnjnmhllhi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3270)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlengcmioai { + #[prost(enumeration = "Hbcjgnlbden", tag = "3")] + pub mcdfojkmidb: i32, + #[prost(uint32, tag = "6")] + pub config_id: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gaddlilnnbk { + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "10")] + pub oicebegencm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iepcoaoemna { + #[prost(uint32, tag = "2")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "4")] + pub bkcndgojplh: u32, + #[prost(uint32, tag = "5")] + pub anokhlpneop: u32, + #[prost(uint32, tag = "8")] + pub nikajahecfe: u32, + #[prost(map = "uint32, uint32", tag = "9")] + pub fbcfokmbgip: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "10")] + pub jaehhehjpll: ::std::collections::HashMap, + #[prost(uint32, tag = "12")] + pub khlemjilnme: u32, + #[prost(uint32, tag = "14")] + pub ipfpkefikea: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eleenmmgmkb { + #[prost(uint32, tag = "3")] + pub gigkdjinolg: u32, + #[prost(uint32, repeated, tag = "7")] + pub hoepcmhjbhe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9333)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpfijbeihho { + #[prost(uint32, repeated, tag = "5")] + pub blihdfackad: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "3")] + pub hddpknifeme: u32, + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29701)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Beknbpejlco { + #[prost(uint32, repeated, tag = "5")] + pub jmeiembndhk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub fghofgjoicc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "9")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26802)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aheemipplnb {} +#[derive(proto_gen::CmdID)] +#[cmdid(26384)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpabcngmdoc {} +#[derive(proto_gen::CmdID)] +#[cmdid(2056)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhlbcdppafl { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub pkkkijalpnm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkleddoblji { + #[prost(int32, tag = "10")] + pub gnjcidhobia: i32, + #[prost(uint32, tag = "15")] + pub key: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27314)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hiogpkdddee { + #[prost(uint32, tag = "1")] + pub eihbodhiofk: u32, + #[prost(message, optional, tag = "2")] + pub icnmchpmcbo: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub entity_id: u32, + #[prost(string, tag = "12")] + pub kadfmamhgbg: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub amhhcbfflpl: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarTeamResonanceInfo { + #[prost(uint64, tag = "6")] + pub avatar_guid: u64, + #[prost(uint32, repeated, tag = "8")] + pub ajmocmhleoi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub entity_id: u32, + #[prost(uint32, repeated, tag = "15")] + pub dgagdlknffp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26419)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihepmeokhbe { + #[prost(uint32, tag = "10")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6313)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgjgjiejbhb { + #[prost(enumeration = "Himmemhogfb", tag = "5")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpeeknobnjk { + #[prost(enumeration = "GadgetBornType", tag = "1")] + pub born_type: i32, + #[prost(message, optional, tag = "2")] + pub kcfmhdlghcp: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eojijdmbeji { + #[prost(uint32, tag = "1")] + pub emdpedlkdln: u32, + #[prost(bool, tag = "2")] + pub is_show_cutscene: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9050)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fddeibbbpik { + #[prost(int32, tag = "1")] + pub jgiohaebpam: i32, + #[prost(uint32, tag = "3")] + pub gboacpcdmif: u32, + #[prost(uint32, tag = "8")] + pub hoicmnmmoji: u32, + #[prost(bool, tag = "9")] + pub digoflekfib: bool, + #[prost(uint32, tag = "12")] + pub lgfedpkcmck: u32, + #[prost(uint32, tag = "13")] + pub ganniaefpoi: u32, + #[prost(message, optional, tag = "14")] + pub jephhglfnlp: ::core::option::Option, + #[prost(bool, tag = "15")] + pub mkjjnkpcjho: bool, + #[prost(oneof = "fddeibbbpik::Baokdjelelh", tags = "448, 1006, 1337, 1536")] + pub baokdjelelh: ::core::option::Option, +} +/// Nested message and enum types in `FDDEIBBBPIK`. +pub mod fddeibbbpik { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Baokdjelelh { + #[prost(message, tag = "448")] + PolygonSize(super::Hkinnehlnac), + #[prost(message, tag = "1006")] + CylinderSize(super::Heokefpjikf), + #[prost(float, tag = "1337")] + SphereRadius(f32), + #[prost(message, tag = "1536")] + CubicSize(super::Vector), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmhgimhnkdf { + #[prost(message, repeated, tag = "4")] + pub lnmdpaddcia: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub lpmcoiblmok: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7139)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Godfdejpbmb { + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(uint32, tag = "5")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5817)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhefkcgofkg { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1916)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjkjijbepfb { + #[prost(uint32, tag = "4")] + pub config_id: u32, + #[prost(uint32, tag = "5")] + pub group_id: u32, + #[prost(uint32, tag = "8")] + pub lhdahdneppl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27574)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iincdcngmoi { + #[prost(uint32, tag = "8")] + pub entity_id: u32, + #[prost(uint32, tag = "11")] + pub hgdaflmnmem: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20986)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oboehfnlfod { + #[prost(uint32, tag = "3")] + pub mmkbjnciggg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pejhkpdneaa { + #[prost(bool, tag = "1")] + pub dpjjkpndjnn: bool, + #[prost(uint32, repeated, tag = "3")] + pub maenejfhmja: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub gbncjlckmei: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnbplbjgfcd { + #[prost(message, optional, tag = "5")] + pub dfndkdafejo: ::core::option::Option, + #[prost(bool, tag = "7")] + pub is_locked: bool, + #[prost(message, optional, tag = "9")] + pub galjcimkfch: ::core::option::Option, + #[prost(uint32, repeated, tag = "12")] + pub scene_tag_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2391)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inehomjjimf { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(enumeration = "Ckjofdmgnno", tag = "7")] + pub bgpjniihanj: i32, + #[prost(message, repeated, tag = "10")] + pub aepbmmidoja: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "13")] + pub jjfpfmpjema: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23106)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnhfnodpbjl { + #[prost(enumeration = "Gfilbkbgmaf", tag = "5")] + pub laicdpfdimh: i32, + #[prost(message, optional, tag = "14")] + pub cafefeabnec: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5457)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcblggmcgjl { + #[prost(uint32, tag = "4")] + pub entity_id: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "12")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27234)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbjmfloheao { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phbkijhlpkp { + #[prost(double, repeated, tag = "11")] + pub bnojgalpjfe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3710)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbblddhgfdj { + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28207)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilajgoeeace { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub fdflphcbgef: u32, + #[prost(uint32, repeated, tag = "9")] + pub fnaoacpmmkd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Miakdjelhdc { + #[prost(message, repeated, tag = "1")] + pub pigofiofjid: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Peheiagofil { + #[prost(message, repeated, tag = "1")] + pub dnpebapalek: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub ociiljpamom: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8433)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpfjlfpafhj { + #[prost(uint32, tag = "4")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "15")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edbndnnkdhn { + #[prost(bool, tag = "1")] + pub okiggnfhlgg: bool, + #[prost(uint32, tag = "2")] + pub avatar_id: u32, + #[prost(bool, tag = "3")] + pub eikogbecmbi: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fajkfecclcg { + #[prost(uint32, tag = "13")] + pub anfnkobfmie: u32, + #[prost(uint32, tag = "15")] + pub dekgjkaicja: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4981)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdaaehnkekj { + #[prost(uint32, repeated, tag = "15")] + pub dbohfohkmfk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20359)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edikekjfmao { + #[prost(uint32, tag = "5")] + pub cdmjgifefmd: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(bool, tag = "9")] + pub bkocnhnnepi: bool, + #[prost(string, tag = "10")] + pub name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(822)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdllhlhnmbi { + #[prost(uint32, tag = "1")] + pub djfmkgdbnam: u32, + #[prost(bool, tag = "5")] + pub jjppapoapef: bool, + #[prost(uint32, tag = "7")] + pub dooekccfihk: u32, + #[prost(bool, tag = "10")] + pub nggkbclabbo: bool, + #[prost(bool, tag = "12")] + pub eacmhmfpabh: bool, + #[prost(bool, tag = "14")] + pub ekeikdkljlj: bool, + #[prost(uint32, tag = "15")] + pub group_id: u32, + #[prost(message, repeated, tag = "327")] + pub pfnkgkgaknp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "331")] + pub paejaajcgbe: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "401")] + pub jbcpjoekppp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "452")] + pub lpdmidgggfl: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "563")] + pub edpnbomkiia: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "710")] + pub lkjdenefmnb: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1134")] + pub iklojogephk: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1299")] + pub kjkgankmemd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "1547")] + pub foeippoamap: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25807)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdilieafhho {} +#[derive(proto_gen::CmdID)] +#[cmdid(22592)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dklnbkfjapa { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lanikofedeg { + #[prost(uint32, repeated, tag = "1")] + pub nkcffildbna: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6790)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odohbofpkim { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfnkeanabel { + #[prost(uint32, tag = "1")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "3")] + pub bgfabpfehgd: u32, + #[prost(uint32, tag = "6")] + pub ilpjbepjdlp: u32, + #[prost(uint32, tag = "10")] + pub kenikecfflm: u32, + #[prost(enumeration = "Feciocnebah", tag = "15")] + pub state: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22176)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imndmkbkojj { + #[prost(uint32, tag = "13")] + pub bboffphmobk: u32, + #[prost(uint32, tag = "1")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "3")] + pub indikfknkab: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3312)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmogddnhcjh { + #[prost(uint32, tag = "4")] + pub omgchbachci: u32, + #[prost(uint32, tag = "7")] + pub nldmdecjcmg: u32, + #[prost(uint32, repeated, tag = "8")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub hogfdpaofom: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24909)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfnjjbdihhf { + #[prost(uint32, tag = "1")] + pub chefconpkll: u32, + #[prost(uint32, tag = "5")] + pub nklajccimii: u32, + #[prost(uint32, tag = "7")] + pub lekfejhkppe: u32, + #[prost(uint32, tag = "8")] + pub odgiokoodip: u32, + #[prost(uint32, tag = "9")] + pub dbpgbdainil: u32, + #[prost(uint32, tag = "10")] + pub enlkkemcpmh: u32, + #[prost(uint32, tag = "11")] + pub abpaipkldop: u32, + #[prost(uint32, tag = "13")] + pub clocegaahjn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlipmfllflp { + #[prost(message, repeated, tag = "1")] + pub ammljpgpibo: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "8")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, + #[prost(message, optional, tag = "15")] + pub ogceidkpkbm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3322)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmmjcphdncb { + #[prost(uint32, tag = "8")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7324)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmhnjhghbdh { + #[prost(uint32, tag = "14")] + pub group_id: u32, + #[prost(uint32, tag = "10")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "3")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20622)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iamilipjdbk { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub npc_id: u32, + #[prost(uint32, tag = "14")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9097)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aibekfklmcj { + #[prost(uint32, repeated, tag = "11")] + pub oehkfngfanh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25664)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmfonnpeljj { + #[prost(uint32, tag = "4")] + pub affklogicmo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iljgmfhdnce { + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, + #[prost(bool, tag = "8")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "10")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2431)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhpobiicigp { + #[prost(uint32, tag = "6")] + pub ohkidhnabib: u32, + #[prost(bool, tag = "10")] + pub djoclokdkae: bool, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23237)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcfcmboemnd { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub eloloopcjmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22344)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eidimbcdpnp { + #[prost(message, repeated, tag = "8")] + pub nicodpphlgi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5784)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iholdomnmng { + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "9")] + pub ljejebelkmj: u32, + #[prost(message, repeated, tag = "11")] + pub bdloifdnkjl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub kdplcbjgbaf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4736)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgmjbamaond { + #[prost(message, repeated, tag = "4")] + pub ioaoaeaijee: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub blfahklapic: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3391)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfijagdhodg { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub dfjmenlmiii: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Giaclkeciai { + #[prost(bool, tag = "1")] + pub ahaalefbbme: bool, + #[prost(uint32, tag = "2")] + pub kfcfomkanom: u32, + #[prost(uint32, tag = "4")] + pub kdpjajjjedg: u32, + #[prost(message, repeated, tag = "5")] + pub bkeaokaelnp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub npc_id: u32, + #[prost(message, optional, tag = "7")] + pub nebgchplndc: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "13")] + pub lmemhmnpmpf: u32, + #[prost(bool, tag = "14")] + pub galmkiodanm: bool, + #[prost(enumeration = "Ckiinnajncp", tag = "15")] + pub mfbbmjciami: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28473)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elaodggjgdn { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6454)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clgmbnopkda { + #[prost(uint64, tag = "7")] + pub avatar_guid: u64, + #[prost(map = "uint32, float", tag = "8")] + pub fight_prop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24685)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aoafdfflcfh { + #[prost(uint32, tag = "8")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9185)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iogfafmhced { + #[prost(message, repeated, tag = "12")] + pub bpkekjlfdah: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6834)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oimbejhelgd { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub ndehkhcalmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agblhgeajao { + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub meoppacndap: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28996)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfhokophemi { + #[prost(message, optional, tag = "8")] + pub data: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfkbcnaplfe { + #[prost(message, optional, tag = "7")] + pub digdkmhijpi: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub entity_id: u32, + #[prost(message, optional, tag = "13")] + pub ofcgnbaaonj: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20871)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hliiejpcofc { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "10")] + pub mfmlakbiaed: i32, + #[prost(uint64, repeated, tag = "15")] + pub ebgfecdohlp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2829)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aimghighmnn { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub okicoglejec: u32, + #[prost(uint32, repeated, tag = "9")] + pub pdcgacbhlam: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub hflmidmiihn: u32, + #[prost(uint32, tag = "14")] + pub fchfakepinp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8854)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkppmamjjgi { + #[prost(uint32, tag = "1")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25959)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajoccfaikfl { + #[prost(message, repeated, tag = "4")] + pub jnfpmeijenp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub gkpjedkhcif: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjhfjjhdcko { + #[prost(uint32, tag = "6")] + pub mbpbfhlbpii: u32, + #[prost(uint32, tag = "15")] + pub guid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpbmneioioa { + #[prost(message, optional, tag = "3")] + pub pgkchollmig: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub ggbehkoffgp: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub blipchphpce: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20862)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dammndmmolf { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20071)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfbapdcneej { + #[prost(uint32, repeated, tag = "14")] + pub dahkfdaacll: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9854)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcfoejdopgp { + #[prost(uint64, tag = "1")] + pub guid: u64, + #[prost(uint32, tag = "9")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njejjdcjlik { + #[prost(uint32, tag = "4")] + pub dmnldppgokg: u32, + #[prost(bool, tag = "11")] + pub ahakghlenmf: bool, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4132)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpbpgnnchba { + #[prost(message, repeated, tag = "1")] + pub gabljanjlaf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub fkhohkelkoe: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub fhancekjeoi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29892)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jedmemhmblm { + #[prost(uint32, tag = "11")] + pub fiknlhojfkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20474)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocnjamnoclo { + #[prost(bool, tag = "1")] + pub fkkmihoegmg: bool, + #[prost(bool, tag = "2")] + pub hndkicjjanm: bool, + #[prost(uint32, repeated, tag = "3")] + pub hldekdfmggc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub alpfbbejimo: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28505)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnplanpmina { + #[prost(uint32, tag = "8")] + pub cdmjgifefmd: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8535)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmiaeabdheg { + #[prost(uint32, tag = "12")] + pub scene_id: u32, + #[prost(uint32, tag = "1")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "6")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21688)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnibocibeop {} +#[derive(proto_gen::CmdID)] +#[cmdid(6479)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nohjehdimmc { + #[prost(bool, tag = "13")] + pub jjfohabofol: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21276)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjkomeafnhn { + #[prost(message, optional, tag = "1")] + pub jcdjmkgdeec: ::core::option::Option, + #[prost(enumeration = "Paahdfjmicd", tag = "5")] + pub reason: i32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bojambjmcnp { + #[prost(uint32, tag = "3")] + pub iejhhmbobmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9782)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfaboaiajjg { + #[prost(uint32, tag = "7")] + pub hoipfdomipj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8638)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fikfheblfkn { + #[prost(bool, tag = "5")] + pub lkcaeopcfoc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29468)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmhokkmcgpn { + #[prost(uint32, tag = "1")] + pub pcaobbjlffm: u32, + #[prost(enumeration = "Gmamcpbhicj", tag = "2")] + pub reason: i32, + #[prost(uint32, tag = "10")] + pub necgmakacdi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpondjddjda { + #[prost(message, repeated, tag = "4")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5873)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efakcfdnokg { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22533)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccpmfoadpkb {} +#[derive(proto_gen::CmdID)] +#[cmdid(8920)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpeflpfhgal { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "12")] + pub iejfclmnfea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbidamifmhj { + #[prost(uint32, tag = "3")] + pub bnblmfkkfgg: u32, + #[prost(bool, tag = "7")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "8")] + pub pkkkijalpnm: u32, + #[prost(uint32, tag = "9")] + pub cmgfmdlfcfk: u32, + #[prost(bool, tag = "15")] + pub lfnfjighdee: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21385)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbafhgodfdg { + #[prost(message, repeated, tag = "12")] + pub jjncpfkplhm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9637)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgaglmmpkia {} +#[derive(proto_gen::CmdID)] +#[cmdid(3048)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhfoincigpd { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20880)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncclfiphdoh { + #[prost(uint32, repeated, tag = "1")] + pub oijfpglhnnn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7060)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Daccfhbjbjn { + #[prost(uint32, tag = "3")] + pub bjjgmliaklb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oolbpnpemdk { + #[prost(uint32, tag = "3")] + pub cngpmoddhng: u32, + #[prost(message, repeated, tag = "4")] + pub gmldckallkk: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub opgiolhggdc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6467)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Enegpkjdike { + #[prost(uint32, tag = "1")] + pub dfpnkfekiig: u32, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "3")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23380)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkhlkdpdhej { + #[prost(bool, tag = "2")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "3")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8233)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icgbjdmbkkj { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29929)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Moeikcblagn { + #[prost(message, repeated, tag = "1")] + pub ahkjlpldped: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6779)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmpgfidpkpc { + #[prost(message, optional, tag = "8")] + pub admfbdmolmf: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1211)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Homjhdaeaao { + #[prost(uint64, repeated, tag = "1")] + pub equip_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "13")] + pub avatar_guid: u64, + #[prost(enumeration = "Jccjcepopne", tag = "2")] + pub jjpijkbjenn: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24632)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkacbhndoai { + #[prost(enumeration = "Himmemhogfb", tag = "13")] + pub mfmlakbiaed: i32, + #[prost(uint64, tag = "6")] + pub dcompdppdpo: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgedmkglgio { + #[prost(bool, tag = "10")] + pub dmacppdbpek: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7325)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnagknmhkej { + #[prost(uint32, repeated, tag = "9")] + pub fdjpppfghne: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "13")] + pub position: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20384)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfalanfnnln { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub hoipfdomipj: u32, + #[prost(bool, tag = "8")] + pub jgjkhbobffj: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcmpliehdkp { + #[prost(message, optional, tag = "4")] + pub gnjcidhobia: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20157)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnbekmpfobo { + #[prost(uint32, tag = "1")] + pub eopffipdkgn: u32, + #[prost(message, repeated, tag = "6")] + pub oopopjofcgm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub oaihgjcbhgd: bool, + #[prost(uint32, tag = "11")] + pub emcjhgolmcb: u32, + #[prost(message, repeated, tag = "15")] + pub haopeekmdbm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23702)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aehlablbjdn { + #[prost(message, optional, tag = "2")] + pub res_version_config: ::core::option::Option, + #[prost(string, tag = "4")] + pub client_version_suffix: ::prost::alloc::string::String, + #[prost(uint32, tag = "6")] + pub client_data_version: u32, + #[prost(enumeration = "Ekdmoohdfea", tag = "9")] + pub kfmglfjdodo: i32, + #[prost(bool, tag = "10")] + pub fgfihnbmjmk: bool, + #[prost(string, tag = "11")] + pub pkekleeoljl: ::prost::alloc::string::String, + #[prost(string, tag = "12")] + pub client_silence_version_suffix: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub client_silence_data_version: u32, + #[prost(string, tag = "15")] + pub jkanelmfgep: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2351)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndekejoiidb { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26961)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlenkagajgo { + #[prost(bool, tag = "11")] + pub pgkplflnedd: bool, + #[prost(bool, tag = "15")] + pub dgejgjmoeah: bool, + #[prost(bool, tag = "9")] + pub hhplblcaldo: bool, + #[prost(uint32, tag = "5")] + pub cfblldhldkj: u32, + #[prost(uint32, tag = "8")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1072)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnelbhgigbb { + #[prost(uint32, tag = "15")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihgdnbhdlin { + #[prost(string, tag = "1")] + pub bophodmnkdm: ::prost::alloc::string::String, + #[prost(bool, tag = "3")] + pub pmhhhnkmfml: bool, + #[prost(string, tag = "6")] + pub hfkpmmdkegl: ::prost::alloc::string::String, + #[prost(uint32, tag = "7")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "9")] + pub hbblodcdofo: u32, + #[prost(uint32, tag = "10")] + pub ffjamahidei: u32, + #[prost(string, tag = "11")] + pub mhglohpmjgp: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub end_time: u32, + #[prost(uint32, tag = "13")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29264)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inaablnpppd { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26553)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcjhckbcihc {} +#[derive(proto_gen::CmdID)] +#[cmdid(22365)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jinhgpjgljn { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21559)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djojmmionmj { + #[prost(bool, tag = "1")] + pub mpgafimhbja: bool, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub parent_quest_id: u32, + #[prost(uint32, repeated, tag = "9")] + pub jkoihmchhha: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub dddkhofnjfo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eajboaffjlf { + #[prost(fixed32, tag = "2")] + pub eopffipdkgn: u32, + #[prost(uint32, tag = "3")] + pub mlphblbpckg: u32, + #[prost(uint32, tag = "11")] + pub ahliollbbpc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24732)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EnterSceneDoneRsp { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub enter_scene_token: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22099)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eokaiecfkej { + #[prost(uint32, tag = "7")] + pub jlmkcinpcgf: u32, + #[prost(uint32, tag = "11")] + pub iidhpkefhpm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhbbojadlpn { + #[prost(uint32, tag = "2")] + pub gaplfmmgbfa: u32, + #[prost(message, optional, tag = "3")] + pub fpojglaneco: ::core::option::Option, + #[prost(uint64, tag = "5")] + pub gedmdocolfj: u64, + #[prost(message, repeated, tag = "11")] + pub ceihipahgnh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28104)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccohdfhfkof { + #[prost(uint32, tag = "15")] + pub pnallkjlnlc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8079)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcngbidpkdl { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28457)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nblpnhgpnnd {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfjmmdocmmo { + #[prost(uint32, tag = "4")] + pub config_id: u32, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khbjihjoeom { + #[prost(uint32, tag = "6")] + pub egilpllmlho: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmogjbhlbnb { + #[prost(uint32, tag = "8")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5116)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljhilmngdio {} +#[derive(proto_gen::CmdID)] +#[cmdid(22776)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PostEnterSceneRsp { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub enter_scene_token: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mikdklnojic { + #[prost(message, repeated, tag = "2")] + pub eojfococbcj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29672)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhckekafjni { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, repeated, tag = "9")] + pub ghnlamdomdc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4486)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlacaifacfo { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iofnpaieijn { + #[prost(message, repeated, tag = "1")] + pub bhadlendmkd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub affklogicmo: u32, + #[prost(bool, tag = "4")] + pub ceghighnoko: bool, + #[prost(bool, tag = "9")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "10")] + pub infgbpalamc: u32, + #[prost(bool, tag = "11")] + pub imamkdlkmon: bool, + #[prost(uint32, tag = "12")] + pub lnildgfikml: u32, + #[prost(uint32, tag = "14")] + pub gnakoniijho: u32, + #[prost(uint32, tag = "15")] + pub ihekodchbli: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27782)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nekjjcoekpa { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(message, optional, tag = "12")] + pub mhhcoedmpdp: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3730)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Piaefcpknoc { + #[prost(uint32, tag = "12")] + pub iehlhaogkpj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25270)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocamikfaaen { + #[prost(message, repeated, tag = "10")] + pub bihiklaiolg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23195)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ceinbcjficf { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4769)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmndpejaedi { + #[prost(uint32, tag = "5")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "10")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mljijdkhibe { + #[prost(bool, tag = "3")] + pub jhfmeficaal: bool, + #[prost(bool, tag = "8")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub gpaeljhnaek: u32, + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TrialAvatarInfo { + #[prost(uint32, tag = "1")] + pub trial_avatar_id: u32, + #[prost(message, repeated, tag = "2")] + pub trial_equip_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub grant_record: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2690)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kldlncaeoen { + #[prost(uint32, tag = "1")] + pub gghkdjlgfpb: u32, + #[prost(uint32, repeated, tag = "4")] + pub hjhpfacphjf: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7129)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bipjcjmemjd { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5343)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfchhfgibih { + #[prost(uint32, tag = "12")] + pub ofdgaholebg: u32, + #[prost(message, repeated, tag = "15")] + pub nbeaiobnlbd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4456)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfcpdlggcig { + #[prost(uint32, repeated, tag = "6")] + pub ekplkiomgig: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25459)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aboebbnconk { + #[prost(uint32, repeated, tag = "5")] + pub enbgjlpnppj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23182)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbkgkefjabd { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub group_id: u32, + #[prost(uint32, repeated, tag = "10")] + pub bdeombceoea: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfikjopiind { + #[prost(message, repeated, tag = "1")] + pub offnadbpdjb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub mbaadkncicg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26966)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oackkhpgfdm { + #[prost(bool, tag = "5")] + pub kkhglloekgk: bool, + #[prost(message, repeated, tag = "7")] + pub ahmcjejkfao: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub hgolpkdkomk: u32, + #[prost(uint32, tag = "14")] + pub poccklijigl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28364)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edhdflljljh { + #[prost(uint32, tag = "6")] + pub gfppmnlpoek: u32, + #[prost(uint32, tag = "4")] + pub fchfakepinp: u32, + #[prost(uint32, tag = "2")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21076)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clhdccofkmd { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(uint32, tag = "12")] + pub jdhfhcfeonf: u32, + #[prost(uint32, tag = "14")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23093)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkmapflfbmp { + #[prost(uint32, tag = "5")] + pub pkolnjpbbgk: u32, + #[prost(uint32, tag = "6")] + pub oboopjlpdni: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjbdlogghfm { + #[prost(uint32, tag = "4")] + pub phpfppidjkj: u32, + #[prost(enumeration = "Eegmnipnkmj", tag = "9")] + pub reason: i32, + #[prost(uint32, tag = "10")] + pub ljjiphjkpjf: u32, + #[prost(uint32, tag = "11")] + pub ocedblchfid: u32, + #[prost(uint32, tag = "13")] + pub nlcacoagdki: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnpfppjabpa { + #[prost(message, repeated, tag = "11")] + pub mpdmbkelamk: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub nkdkocbfgbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28873)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjdndmjjhok { + #[prost(uint32, tag = "7")] + pub lkaicbelckc: u32, + #[prost(uint32, tag = "9")] + pub bdnnkbpmahh: u32, + #[prost(uint32, tag = "14")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23872)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kelepkhlfcf { + #[prost(message, optional, tag = "6")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjlkojcgeeo { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "7")] + pub gpaeljhnaek: u32, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(bool, tag = "11")] + pub aggilmlijdm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22217)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnabccnhhah { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okjcnoadkmm { + #[prost(uint64, tag = "1")] + pub ojoapinglno: u64, + #[prost(uint32, tag = "2")] + pub gkkgomdfkml: u32, + #[prost(uint32, tag = "3")] + pub bimcajgddoi: u32, + #[prost(float, tag = "4")] + pub bemjcgabbgf: f32, + #[prost(float, tag = "5")] + pub speed: f32, + #[prost(bool, tag = "6")] + pub jookmiedbie: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7536)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gojociaophn { + #[prost(uint32, tag = "6")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8649)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Loniilkafjb { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29037)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlfndhldlio { + #[prost(uint32, tag = "13")] + pub kkfhbldeaba: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aoachoghmcm { + #[prost(uint32, tag = "10")] + pub nikbfddehdf: u32, + #[prost(uint32, tag = "11")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "12")] + pub dlpjaaapkkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20530)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agjifcffjch {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Admfdgokbag { + #[prost(message, repeated, tag = "13")] + pub mnfiibjlkll: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27743)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneForceUnlockNotify { + #[prost(bool, tag = "1")] + pub is_add: bool, + #[prost(uint32, repeated, tag = "2")] + pub force_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26286)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhfoiklnmoo { + #[prost(uint32, tag = "3")] + pub level: u32, + #[prost(uint32, tag = "6")] + pub exp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1604)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnfcgdlpodd { + #[prost(message, optional, tag = "8")] + pub mhfdgagiepa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2068)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akndlaajjnn {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjogdboiccg { + #[prost(uint32, tag = "1")] + pub nikbfddehdf: u32, + #[prost(uint32, tag = "2")] + pub kmdcklepegp: u32, + #[prost(uint32, tag = "11")] + pub dlpjaaapkkl: u32, + #[prost(uint32, tag = "13")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7950)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmbocddhlkd { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7441)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerGameTimeNotify { + #[prost(bool, tag = "4")] + pub is_home: bool, + #[prost(uint32, tag = "9")] + pub game_time: u32, + #[prost(uint32, tag = "10")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhfchdpdikj { + #[prost(uint32, tag = "1")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "2")] + pub mcecoddeedc: u32, + #[prost(message, repeated, tag = "3")] + pub mlcakcoikdn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22838)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkjdghemibi { + #[prost(uint32, tag = "3")] + pub dmlcigbdpii: u32, + #[prost(uint32, tag = "12")] + pub name_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obnmfmnohgf { + #[prost(uint32, repeated, tag = "3")] + pub hoepcmhjbhe: ::prost::alloc::vec::Vec, + #[prost(string, tag = "4")] + pub name: ::prost::alloc::string::String, + #[prost(bool, tag = "5")] + pub oenhcblfpfc: bool, + #[prost(uint32, repeated, tag = "6")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub oboopjlpdni: u32, + #[prost(fixed32, tag = "10")] + pub gcbnfplahld: u32, + #[prost(uint32, tag = "13")] + pub ejgkapalfjb: u32, + #[prost(uint32, tag = "14")] + pub jmldgkcbcbo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(318)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpljmnamgko { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, repeated, tag = "5")] + pub ilmniplkenp: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlejmigoiip { + #[prost(uint32, tag = "2")] + pub dfkockongfh: u32, + #[prost(message, repeated, tag = "4")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub lekfejhkppe: u32, + #[prost(uint32, repeated, tag = "8")] + pub jpanpdjfhjk: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub nbeolenhmfm: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub hbkdflgipmg: u32, + #[prost(uint32, tag = "12")] + pub cohkaiacief: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clmddbpmeej { + #[prost(uint32, tag = "7")] + pub avatar_id: u32, + #[prost(uint32, tag = "8")] + pub cmafekgpacg: u32, + #[prost(uint32, tag = "10")] + pub costume_id: u32, + #[prost(enumeration = "Jailcnefodi", tag = "13")] + pub avatar_type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mimflckeing { + #[prost(message, repeated, tag = "10")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28868)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpmenacmmjh { + #[prost(uint32, tag = "1")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "13")] + pub deifmdkjahf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20730)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhiiifaomcm { + #[prost(message, optional, tag = "6")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub phpfppidjkj: u32, + #[prost(uint32, tag = "3")] + pub dmcjbimfkci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khmekeakmla { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lodcihbpnom { + #[prost(uint32, tag = "5")] + pub lidgejjlfmc: u32, + #[prost(uint32, tag = "6")] + pub geihmkhcije: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3804)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlcefnjjjad { + #[prost(uint32, tag = "1")] + pub golcdocfolh: u32, + #[prost(uint32, tag = "3")] + pub ljdmbidhpji: u32, + #[prost(message, repeated, tag = "6")] + pub lnfokopnfip: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24610)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldaamopomgh { + #[prost(uint32, tag = "3")] + pub oommiflemob: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25258)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfdnbopecjb { + #[prost(uint32, tag = "6")] + pub jefildjebaj: u32, + #[prost(uint32, repeated, tag = "9")] + pub bihiklaiolg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcbaifpfacc { + #[prost(message, repeated, tag = "5")] + pub dnjnjbamlba: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjknmoicnig { + #[prost(float, tag = "2")] + pub dmjfggdidok: f32, + #[prost(bool, tag = "7")] + pub okiggnfhlgg: bool, + #[prost(uint32, tag = "15")] + pub dmlcigbdpii: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28236)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opgbccdgdie { + #[prost(uint32, repeated, tag = "5")] + pub ngacpnngejo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3673)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eacaphlmijk {} +#[derive(proto_gen::CmdID)] +#[cmdid(9979)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhhmflnkkhd { + #[prost(uint32, repeated, tag = "5")] + pub cnhgganphol: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TeamEnterSceneInfo { + #[prost(message, optional, tag = "6")] + pub team_ability_info: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub team_entity_id: u32, + #[prost(message, optional, tag = "12")] + pub ability_control_block: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(19)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idmdpjlmegl { + #[prost(uint32, tag = "7")] + pub scene_id: u32, + #[prost(uint32, tag = "8")] + pub kenikecfflm: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8829)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Niidbpofnoa { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "12")] + pub aodnjncfnao: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "15")] + pub onfhelnnnfo: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flgbaggebcm { + #[prost(enumeration = "Donnpjameed", tag = "1")] + pub nhokepcpcfe: i32, + #[prost(enumeration = "Donnpjameed", tag = "2")] + pub aapgbbkipje: i32, + #[prost(message, repeated, tag = "4")] + pub jajnjhddloj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26112)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdebmcobiah {} +#[derive(proto_gen::CmdID)] +#[cmdid(23373)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdioglkjknp { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, optional, tag = "15")] + pub nlkgmjnajhg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7678)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edjmjdkopcp { + #[prost(message, optional, tag = "1")] + pub iklkemlfhdg: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub dpckmfmfdhj: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub cdpkgjbmddj: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub dliefebjlgi: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub llfklcnkgdi: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub hddlpbajiia: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfmeepjlokb { + #[prost(message, repeated, tag = "11")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22315)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akgiadjicpl { + #[prost(message, optional, tag = "3")] + pub fohckoimpdk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FightPropPair { + #[prost(uint32, tag = "1")] + pub prop_type: u32, + #[prost(float, tag = "2")] + pub prop_value: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21940)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cepkaahhogm { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gonmjlnglii { + #[prost(uint32, tag = "8")] + pub pghgefmpgdc: u32, + #[prost(uint32, tag = "10")] + pub behbhjahboj: u32, + #[prost(uint32, repeated, tag = "12")] + pub cjchbcellno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9002)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbidipbjjda {} +#[derive(proto_gen::CmdID)] +#[cmdid(25075)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcecdnjokge { + #[prost(bool, tag = "9")] + pub dmedoehomkh: bool, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25531)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmfdkkbnemn {} +#[derive(proto_gen::CmdID)] +#[cmdid(1922)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbmgilelkgm { + #[prost(uint32, tag = "2")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "9")] + pub kdknoocoebm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7797)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pahcjcpnjhl { + #[prost(uint32, tag = "8")] + pub jdllaggpddp: u32, + #[prost(uint32, tag = "11")] + pub affklogicmo: u32, + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneGadgetInfo { + #[prost(uint32, tag = "1")] + pub gadget_id: u32, + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "3")] + pub config_id: u32, + #[prost(uint32, tag = "4")] + pub owner_entity_id: u32, + #[prost(enumeration = "GadgetBornType", tag = "5")] + pub born_type: i32, + #[prost(uint32, tag = "6")] + pub gadget_state: u32, + #[prost(uint32, tag = "7")] + pub gadget_type: u32, + #[prost(bool, tag = "8")] + pub is_show_cutscene: bool, + #[prost(uint32, tag = "9")] + pub authority_peer_id: u32, + #[prost(bool, tag = "10")] + pub is_enable_interact: bool, + #[prost(uint32, tag = "11")] + pub interact_id: u32, + #[prost(uint32, tag = "21")] + pub mark_flag: u32, + #[prost(uint32, tag = "22")] + pub prop_owner_entity_id: u32, + #[prost(message, optional, tag = "23")] + pub platform: ::core::option::Option, + #[prost(uint32, repeated, tag = "24")] + pub interact_uid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "25")] + pub draft_id: u32, + #[prost(uint32, tag = "26")] + pub gadget_talk_state: u32, + #[prost(message, optional, tag = "27")] + pub igmdelmihma: ::core::option::Option, + #[prost(uint32, tag = "28")] + pub init_pose_id: u32, + #[prost(message, optional, tag = "100")] + pub play_info: ::core::option::Option, + #[prost(message, optional, tag = "101")] + pub pnajjdafjch: ::core::option::Option, + #[prost(message, optional, tag = "102")] + pub glgahajnala: ::core::option::Option, + #[prost(message, optional, tag = "103")] + pub inihndcamaj: ::core::option::Option, + #[prost( + oneof = "scene_gadget_info::Content", + tags = "13, 14, 15, 17, 18, 19, 20, 41, 42, 43, 44, 45, 46, 47, 48, 59, 60, 61, 62, 63, 64, 67" + )] + pub content: ::core::option::Option, +} +/// Nested message and enum types in `SceneGadgetInfo`. +pub mod scene_gadget_info { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Content { + #[prost(message, tag = "13")] + GatherGadget(super::Dpapkilfinn), + #[prost(message, tag = "14")] + Worktop(super::Ikkagaaibik), + #[prost(message, tag = "15")] + ClientGadget(super::Agajgjafdaa), + #[prost(message, tag = "17")] + Weather(super::Enhienoghhd), + #[prost(message, tag = "18")] + AbilityGadget(super::Nlldfoclanc), + #[prost(message, tag = "19")] + StatueGadget(super::Donlajnfjeb), + #[prost(message, tag = "20")] + BossChest(super::Mfmholfmedp), + #[prost(message, tag = "41")] + BlossomChest(super::Mlabobklbck), + #[prost(message, tag = "42")] + MpPlayReward(super::Knigpaknllf), + #[prost(message, tag = "43")] + GeneralReward(super::Ofnjgncoifk), + #[prost(message, tag = "44")] + OfferingInfo(super::Epnhgpbmogc), + #[prost(message, tag = "45")] + FoundationInfo(super::Dappcggbonm), + #[prost(message, tag = "46")] + VehicleInfo(super::Onkijklnahe), + #[prost(message, tag = "47")] + ShellInfo(super::Gddakolohkl), + #[prost(message, tag = "48")] + ScreenInfo(super::Olodkmpinmp), + #[prost(message, tag = "59")] + FishPoolInfo(super::Pcmcgonmpho), + #[prost(message, tag = "60")] + CustomGadgetTreeInfo(super::Lpncacoaamh), + #[prost(message, tag = "61")] + RoguelikeGadgetInfo(super::Iohmnploigc), + #[prost(message, tag = "62")] + NightCrowGadgetInfo(super::Hffhkkmpbfj), + #[prost(message, tag = "63")] + DeshretObeliskGadgetInfo(super::Kemlinfeecm), + #[prost(message, tag = "64")] + CoinCollectOperatorInfo(super::Lieinhahjea), + #[prost(message, tag = "67")] + TrifleGadget(super::Eedhbfmffkh), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(7903)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnaolpfeghi { + #[prost(message, repeated, tag = "7")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub eocepkicpca: ::core::option::Option, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7270)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afmhomclbgn { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idfackddepe { + #[prost(uint32, tag = "4")] + pub dmnldppgokg: u32, + #[prost(uint32, repeated, tag = "5")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25060)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbgpdionekp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elblajjiddd { + #[prost(uint64, tag = "7")] + pub avatar_id: u64, + #[prost(bool, tag = "9")] + pub dohhenfngpe: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2334)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlkkngjeffi {} +#[derive(proto_gen::CmdID)] +#[cmdid(7352)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmlmpnhbhgd { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "13")] + pub dglcdjnmnkh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24162)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ligbiefelom { + #[prost(message, repeated, tag = "14")] + pub fhpgbcfaake: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bojfcgdlfgl { + #[prost(uint32, tag = "6")] + pub apafipofloj: u32, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "11")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "15")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(578)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oegdjifdocm { + #[prost(message, optional, tag = "9")] + pub gigadmpnjhl: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub mimnafdodck: ::core::option::Option, + #[prost(bool, tag = "14")] + pub idiklageldn: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8954)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oebjpgnbpmh { + #[prost(message, repeated, tag = "11")] + pub nbgcfkabfhc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21979)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilglmmidegb { + #[prost(uint32, tag = "15")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akoiabnkomp { + #[prost(uint32, tag = "12")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5646)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncnmnhmhbci { + #[prost(message, repeated, tag = "4")] + pub gindmjhhfhf: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24555)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aaegpkbjhja { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(enumeration = "Ceocjhphedc", tag = "14")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adadbonbign { + #[prost(uint32, repeated, tag = "1")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "12")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21345)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mllamphcfjp { + #[prost(uint32, tag = "4")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23948)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecdlcchenpc {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbhcebmihnd { + #[prost(float, tag = "2")] + pub nocbkdmmaen: f32, + #[prost(uint32, tag = "4")] + pub ennhedlehna: u32, + #[prost(float, tag = "5")] + pub onmkmcnhmgb: f32, + #[prost(message, optional, tag = "6")] + pub djimcfoglpg: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub nipmgaopheo: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub amcmbpmhkik: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub gplklbhahnn: ::core::option::Option, + #[prost(float, tag = "13")] + pub kmfddaffjfb: f32, + #[prost(float, tag = "15")] + pub midbhalnikm: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7667)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmpapjjbhgb { + #[prost(uint32, tag = "12")] + pub okicoglejec: u32, + #[prost(uint32, tag = "8")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3668)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfgcgdhdgbb { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3437)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fogdocjoddi { + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27273)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjinggmjiom { + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iahomkmihpe { + #[prost(message, repeated, tag = "9")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbddcnhmjlh { + #[prost(int32, tag = "9")] + pub mpgkoihcfim: i32, + #[prost(int32, tag = "11")] + pub level: i32, + #[prost(message, optional, tag = "12")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(int32, tag = "14")] + pub noljbnbnlml: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7835)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlomobihhki { + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9047)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjdnbcbnami { + #[prost(uint32, repeated, tag = "2")] + pub cbhilbblaip: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1026)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgkgncmhanl { + #[prost(uint32, tag = "5")] + pub kpampgdjdhe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjjcpoipdig { + #[prost(uint32, tag = "5")] + pub omgchbachci: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "11")] + pub bakhakcemkf: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26161)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbnbinoncno { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6169)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlbldgpanlp { + #[prost(int32, tag = "2")] + pub iammgihcbhj: i32, + #[prost(uint32, tag = "9")] + pub scene_id: u32, + #[prost(int32, tag = "4")] + pub jjfpfmpjema: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24528)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcoeicjpmdg { + #[prost(uint32, tag = "6")] + pub ljejebelkmj: u32, + #[prost(uint32, tag = "12")] + pub clcnmjkomll: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkfhchedjic { + #[prost(message, repeated, tag = "3")] + pub mogbhlemnep: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23272)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbodpjnlohf { + #[prost(uint64, repeated, tag = "5")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6666)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfkedhofghf { + #[prost(uint32, repeated, tag = "6")] + pub pcjpdogheop: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, repeated, tag = "8")] + pub mkmhpomeahp: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "12")] + pub fflgcbbliao: ::core::option::Option, + #[prost(message, repeated, tag = "15")] + pub gbepkglfbfd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjbpelncbfd { + #[prost(message, optional, tag = "1")] + pub oeapfmfefge: ::core::option::Option, + #[prost(string, tag = "2")] + pub name: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub jjlpijkgkon: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(bool, tag = "13")] + pub necndmmppli: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20484)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjjemelgdge { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4511)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Baaomhlkmlp { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7466)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnbmnefhobk { + #[prost(uint32, repeated, tag = "1")] + pub ejgfnijmajc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub igibbilclje: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub bafpibopilo: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub ngmjkihmfaj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub jddpgpmpbfi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub pejnifpfcfc: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub dogdmgnbboc: bool, + #[prost(bool, tag = "11")] + pub djbppblkegb: bool, + #[prost(uint32, repeated, tag = "13")] + pub llkhpooccoj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(bool, tag = "15")] + pub pblimbgnnnb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21395)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcjdmkacdjc { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "15")] + pub fjaihbldgio: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1532)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcfpbcnjgek { + #[prost(uint32, tag = "14")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "9")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "10")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21527)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebfgojjllgo { + #[prost(uint32, repeated, tag = "12")] + pub ogjodgflein: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oihegjcpmpl { + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, + #[prost(message, repeated, tag = "4")] + pub lihcaefdjoc: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub nfolocgbffg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22451)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpakbjhkina { + #[prost(message, optional, tag = "5")] + pub ilpjmahlgdk: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub dlflcjkabfg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkgapbedoab { + #[prost(uint32, tag = "1")] + pub hfjilncpakl: u32, + #[prost(uint32, tag = "8")] + pub eopffipdkgn: u32, + #[prost(message, repeated, tag = "15")] + pub nhpgadjlhen: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(414)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lianancchja { + #[prost(message, optional, tag = "4")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndfgofpcgic { + #[prost(uint32, tag = "5")] + pub level: u32, + #[prost(message, optional, tag = "6")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub scene_id: u32, + #[prost(uint32, tag = "11")] + pub room_id: u32, + #[prost(uint32, tag = "12")] + pub phcnllphphl: u32, + #[prost(oneof = "ndfgofpcgic::Entity", tags = "1, 2, 3, 4")] + pub entity: ::core::option::Option, + #[prost(oneof = "ndfgofpcgic::Ldljahppldj", tags = "13")] + pub ldljahppldj: ::core::option::Option, +} +/// Nested message and enum types in `NDFGOFPCGIC`. +pub mod ndfgofpcgic { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Entity { + #[prost(uint32, tag = "1")] + MonsterId(u32), + #[prost(uint32, tag = "2")] + NpcId(u32), + #[prost(uint32, tag = "3")] + GadgetId(u32), + #[prost(uint32, tag = "4")] + ItemId(u32), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Ldljahppldj { + #[prost(message, tag = "13")] + Gadget(super::Dpeeknobnjk), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(4122)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmmnhcagodh { + #[prost(message, optional, tag = "1")] + pub kkonlphiahe: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3008)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dglciomehol { + #[prost(oneof = "dglciomehol::Detail", tags = "337, 1278, 1653")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `DGLCIOMEHOL`. +pub mod dglciomehol { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(bool, tag = "337")] + IsShowBriefCardEventCase(bool), + #[prost(uint32, tag = "1278")] + BgmId(u32), + #[prost(uint32, tag = "1653")] + RedPoint(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(22585)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njanifagall { + #[prost(message, repeated, tag = "13")] + pub cccabfdhfka: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(116)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhedgobiklg { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhobdfhbloi { + #[prost(uint32, tag = "2")] + pub cijhbcaoepi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9386)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpjnmajapkp { + #[prost(uint32, tag = "1")] + pub jlmkcinpcgf: u32, + #[prost(uint32, tag = "4")] + pub bgfabpfehgd: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2843)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfddaklddii { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(float, tag = "2")] + pub jjpcpmfdneh: f32, + #[prost(float, tag = "7")] + pub eldoedjdghn: f32, + #[prost(uint32, tag = "9")] + pub prop_type: u32, + #[prost(enumeration = "Bbbemdapogh", tag = "11")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26348)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieakbkmijfe { + #[prost(message, optional, tag = "14")] + pub pfogjandaci: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub badoiojgdbb: u32, + #[prost(uint32, tag = "5")] + pub ialkblcgcil: u32, + #[prost(enumeration = "Kckmmddjpce", tag = "8")] + pub phfalpgfgkn: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpjpacgcnaa { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(uint32, tag = "5")] + pub imchhikagkf: u32, + #[prost(uint32, tag = "9")] + pub kppabonkdcm: u32, + #[prost(uint32, repeated, tag = "12")] + pub jnkilghkhhj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3888)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgajbnhfojb { + #[prost(uint32, tag = "14")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(322)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnopnfhpgfj {} +#[derive(proto_gen::CmdID)] +#[cmdid(6324)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpcgndlefjp { + #[prost(bool, tag = "3")] + pub bfjdeljjjng: bool, + #[prost(uint32, tag = "4")] + pub end_time: u32, + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(enumeration = "Kdioojinlkg", tag = "12")] + pub hgkoegebhfo: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25328)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iphklomjiac { + #[prost(uint32, tag = "1")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "14")] + pub onabdgfcpih: u32, + #[prost(message, repeated, tag = "15")] + pub kjjdfphkfeb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1836)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhgddpfhpjc { + #[prost(uint32, tag = "2")] + pub dekhbeooien: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(bool, tag = "5")] + pub dggckmikbmo: bool, + #[prost(bool, tag = "7")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24057)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkabjkpjalj { + #[prost(enumeration = "Fcfbaddhheo", tag = "2")] + pub hkmhenoepkp: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21731)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blkmeplohjm { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(738)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ServerTimeNotify { + #[prost(uint64, tag = "14")] + pub server_time: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggafhgknagj { + #[prost(message, repeated, tag = "6")] + pub cbdjnkepeaj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9287)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibiidbmjaho { + #[prost(uint32, repeated, tag = "2")] + pub hcjeapglhde: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24180)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbfhkflehhh { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iadnpjbkilo { + #[prost(uint32, tag = "4")] + pub jinjlbemjnc: u32, + #[prost(uint32, tag = "5")] + pub pemfnlkjkdk: u32, + #[prost(enumeration = "WidgetSlotTag", tag = "6")] + pub tag: i32, + #[prost(bool, tag = "15")] + pub is_active: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25382)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpfmakamjhj { + #[prost(message, optional, tag = "2")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(bool, tag = "4")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "5")] + pub omgchbachci: u32, + #[prost(uint32, tag = "9")] + pub ckoccfdgcol: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27107)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkhmaedalkk { + #[prost(bool, tag = "4")] + pub plflijimomd: bool, + #[prost(map = "uint32, uint32", tag = "15")] + pub dnjdkhdfhop: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23844)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aepfakcjpof { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6589)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lalicfddokf { + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27724)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbmbihacfig { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "5")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "7")] + pub mngmfjcfmbc: u32, + #[prost(message, repeated, tag = "9")] + pub dfdkbiadlnm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub lolmnhaooec: u32, + #[prost(uint32, tag = "11")] + pub dikiefcchpa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfndlmnlmlf { + #[prost(float, tag = "1")] + pub hnnmhlbcgmn: f32, + #[prost(bool, tag = "2")] + pub okhnjhjakfd: bool, + #[prost(uint32, tag = "3")] + pub ilffcdkmipe: u32, + #[prost(uint32, tag = "7")] + pub pfoahcojpjm: u32, + #[prost(float, tag = "8")] + pub agidomnebcj: f32, + #[prost(float, tag = "9")] + pub cdjmjlahfgk: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22000)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdioachekag {} +#[derive(proto_gen::CmdID)] +#[cmdid(25873)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oikfpambpng { + #[prost(uint32, tag = "10")] + pub entity_id: u32, + #[prost(message, optional, tag = "11")] + pub pfogokingmb: ::core::option::Option, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27362)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnhelgfbahe { + #[prost(uint32, tag = "9")] + pub jinjlbemjnc: u32, + #[prost(oneof = "nnhelgfbahe::Gdchhfldeed", tags = "1674, 846")] + pub gdchhfldeed: ::core::option::Option, +} +/// Nested message and enum types in `NNHELGFBAHE`. +pub mod nnhelgfbahe { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gdchhfldeed { + #[prost(message, tag = "1674")] + WidgetCreatorInfo(super::Oigbjhflkkl), + #[prost(message, tag = "846")] + LocationInfo(super::Fmdngkgcopo), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbfpkehkkkm { + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "2")] + pub gadget_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9437)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poenonmjnoi { + #[prost(string, repeated, tag = "10")] + pub mjifbdojhmk: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jidlnmkdkmj { + #[prost(message, optional, tag = "6")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgoeomkhikk { + #[prost(message, repeated, tag = "9")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Equip { + #[prost(bool, tag = "3")] + pub is_locked: bool, + #[prost(oneof = "equip::Detail", tags = "1, 2")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `Equip`. +pub mod equip { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "1")] + Reliquary(super::Reliquary), + #[prost(message, tag = "2")] + Weapon(super::Weapon), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(29067)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cafnbbkjddm { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(oneof = "cafnbbkjddm::Detail", tags = "164, 407, 1129")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `CAFNBBKJDDM`. +pub mod cafnbbkjddm { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(uint32, tag = "164")] + BgmId(u32), + #[prost(uint32, tag = "407")] + RedPoint(u32), + #[prost(bool, tag = "1129")] + IsShowBriefCardEventCase(bool), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbhjbojgcic { + #[prost(uint32, tag = "8")] + pub uid: u32, + #[prost(bool, tag = "11")] + pub iicidnmoebc: bool, + #[prost(map = "uint32, uint32", tag = "12")] + pub jclilkdklgf: ::std::collections::HashMap, + #[prost(uint32, tag = "14")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "15")] + pub icmgfgejcjk: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nenndiiidlj { + #[prost(bool, tag = "3")] + pub egjaiijojdd: bool, + #[prost(bool, tag = "7")] + pub eialjbaengj: bool, + #[prost(bool, tag = "8")] + pub ocnahhgpepb: bool, + #[prost(uint32, tag = "9")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "10")] + pub oicebegencm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29420)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnhkjmijeoc {} +#[derive(proto_gen::CmdID)] +#[cmdid(25351)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbholopbkpj { + #[prost(uint32, repeated, tag = "2")] + pub fdjpppfghne: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "15")] + pub jcccnjnjfja: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27577)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkhcipoamnj { + #[prost(enumeration = "Himmemhogfb", tag = "10")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anhgfbpnhbf { + #[prost(uint32, tag = "4")] + pub attack_target_id: u32, + #[prost(uint32, tag = "7")] + pub iloggcgijhh: u32, + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1688)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbdcikeanff { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iejjdfopbpj { + #[prost(enumeration = "Akehcjngjej", tag = "1")] + pub r#type: i32, + #[prost(int32, tag = "2")] + pub bllecclcejn: i32, + #[prost(message, optional, tag = "4")] + pub gpbnffjbomn: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub ifkdejebmpe: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub ccnnjmkemlc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4258)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkohmpkkagc { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9670)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkffmjhjkld { + #[prost(message, repeated, tag = "11")] + pub olamgiolbcg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2240)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbmlbaglhll { + #[prost(uint32, tag = "3")] + pub room_id: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint64, tag = "9")] + pub gedmdocolfj: u64, + #[prost(bool, tag = "14")] + pub is_add: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4591)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojokeibpbol { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkegalpkbip { + #[prost(message, repeated, tag = "8")] + pub cgmcleelmjo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmeoldfccec { + #[prost(message, repeated, tag = "1")] + pub djhjihnakij: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub lcodbnghipi: u32, + #[prost(uint32, tag = "4")] + pub lekfejhkppe: u32, + #[prost(enumeration = "Chjbbpjbkdc", tag = "5")] + pub elgpheclbjf: i32, + #[prost(uint32, tag = "6")] + pub cjmhjhijmjn: u32, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "8")] + pub iehennhnhdj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub pfjjbfjieje: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "10")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub pgpkfihjhfd: u32, + #[prost(message, optional, tag = "12")] + pub lkboajlnmio: ::core::option::Option, + #[prost(uint32, repeated, tag = "13")] + pub nijajagmlgp: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "15")] + pub liaaakbhkgb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2576)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hiolhkjdghe {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcoelckigpg { + #[prost(uint32, tag = "11")] + pub end_time: u32, + #[prost(uint32, tag = "12")] + pub ojoapinglno: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3478)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcjhodglmpm { + #[prost(uint32, tag = "8")] + pub iehlhaogkpj: u32, + #[prost(bool, tag = "1")] + pub djoclokdkae: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9869)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfdajghalkk {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Menhnbmdedj { + #[prost(uint32, tag = "2")] + pub dfpnkfekiig: u32, + #[prost(map = "uint32, message", tag = "6")] + pub ajamlcgabpg: ::std::collections::HashMap, + #[prost(uint32, tag = "14")] + pub gdajdfbkpde: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1945)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffgppoaafkh { + #[prost(uint64, repeated, tag = "11")] + pub edabeidcffo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3515)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llbokelbkhf {} +#[derive(proto_gen::CmdID)] +#[cmdid(24165)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omneibgijih { + #[prost(uint32, tag = "1")] + pub plhjikjloak: u32, + #[prost(message, repeated, tag = "2")] + pub server_buff_list: ::prost::alloc::vec::Vec, + #[prost(string, tag = "4")] + pub lldpnociddf: ::prost::alloc::string::String, + #[prost(enumeration = "PlayerDieType", tag = "5")] + pub jdfbfdifmmj: i32, + #[prost(uint32, tag = "6")] + pub life_state: u32, + #[prost(uint32, tag = "9")] + pub entity_id: u32, + #[prost(uint32, tag = "12")] + pub kjlbepdnldm: u32, + #[prost(string, repeated, tag = "14")] + pub epgobhiedoi: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22480)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iomblpblohg { + #[prost(uint32, tag = "5")] + pub cdplheijfgf: u32, + #[prost(uint32, tag = "6")] + pub ohkidhnabib: u32, + #[prost(bool, tag = "10")] + pub kcmjhjeomoa: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmipcnlflcb { + #[prost(uint32, tag = "1")] + pub aaopmgielok: u32, + #[prost(uint32, tag = "2")] + pub pdkifkkmhcn: u32, + #[prost(uint32, repeated, tag = "3")] + pub gmldnleodoh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub kodkbhodgcd: u32, + #[prost(uint32, tag = "5")] + pub ojoapinglno: u32, + #[prost(uint32, tag = "6")] + pub geihmkhcije: u32, + #[prost(oneof = "fmipcnlflcb::Nheankioagf", tags = "21")] + pub nheankioagf: ::core::option::Option, +} +/// Nested message and enum types in `FMIPCNLFLCB`. +pub mod fmipcnlflcb { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Nheankioagf { + #[prost(message, tag = "21")] + CrucibleInfo(super::Ffggpnbbmkn), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdfgedgeamn { + #[prost(map = "uint32, enumeration(Cmdeepdjoga)", tag = "4")] + pub iffdajmbonc: ::std::collections::HashMap, + #[prost(map = "uint32, enumeration(Cmdeepdjoga)", tag = "7")] + pub baffhlkjdml: ::std::collections::HashMap, + #[prost(enumeration = "Eegmnipnkmj", tag = "12")] + pub reason: i32, + #[prost(uint32, tag = "14")] + pub fbpgimlmdnj: u32, + #[prost(int32, tag = "15")] + pub cgeoapipdoa: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22553)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncfofpkapon { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub hlclacdmepd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3298)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gebgpcpmcoi { + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub onabdgfcpih: u32, + #[prost(enumeration = "Hibhhjenmpp", tag = "9")] + pub pipmddflkmo: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1894)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhacbijnjae { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbhgaofkfdd { + #[prost(message, repeated, tag = "13")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22343)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnallddnikn { + #[prost(enumeration = "Hhnoenmdggg", tag = "1")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "3")] + pub chddofmlblm: u32, + #[prost(uint32, tag = "5")] + pub gbcebgkbjdm: u32, + #[prost(enumeration = "Nmfdmilhgpo", tag = "6")] + pub oaahhnmhafh: i32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub gadget_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20067)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljhhdbgkope { + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub hikdoopdahc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejplnopgalf { + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "8")] + pub peajinifghm: u32, + #[prost(bool, tag = "11")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6210)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alehomeccoa {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eikifemnonl { + #[prost(bool, tag = "8")] + pub iknbinfmiid: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmfpphhlcmp { + #[prost(message, optional, tag = "1")] + pub fikdjoonfbb: ::core::option::Option, + #[prost(bool, tag = "2")] + pub pflajckehfa: bool, + #[prost(message, optional, tag = "5")] + pub gigadmpnjhl: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub plnpbcdlnln: u32, + #[prost(uint32, tag = "8")] + pub bfeondacake: u32, + #[prost(enumeration = "Hgolgnfbdhm", tag = "10")] + pub state: i32, + #[prost(uint64, tag = "11")] + pub gedmdocolfj: u64, + #[prost(message, optional, tag = "12")] + pub mdmplabaiec: ::core::option::Option, + #[prost(uint32, repeated, tag = "13")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5517)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaiaefgnhkl { + #[prost(uint32, tag = "1")] + pub ljfafdhikjd: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "2")] + pub reason: i32, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "11")] + pub golimnimjkn: u32, + #[prost(uint32, tag = "12")] + pub jdflblogald: u32, + #[prost(bool, tag = "15")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhjkjiadifl { + #[prost(uint32, repeated, tag = "3")] + pub pdcgacbhlam: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "7")] + pub fchfakepinp: u32, + #[prost(enumeration = "Gepcikpiepn", tag = "11")] + pub hnjdddnoook: i32, + #[prost(uint32, repeated, tag = "15")] + pub fpaiojdpdpc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1659)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akkjbihdikn { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29315)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajkdlnfljcf { + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fclaiignofd { + #[prost(uint32, tag = "1")] + pub ejogbmnhoph: u32, + #[prost(message, repeated, tag = "11")] + pub egpjhndaamb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub kniinjkfijc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20708)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkjhjddjnho { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub mgcmnplnjkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21478)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lofpmdhjmdp { + #[prost(uint32, tag = "8")] + pub ealonaadcan: u32, + #[prost(uint32, tag = "15")] + pub khhibkpbkpn: u32, + #[prost(uint64, tag = "4")] + pub kjiklgjaegn: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1051)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpcckmpnjgi { + #[prost(bool, tag = "8")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "10")] + pub plicgiinkfi: u32, + #[prost(uint32, tag = "15")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghknjbjhfpl { + #[prost(uint32, tag = "1")] + pub nklajccimii: u32, + #[prost(uint32, tag = "3")] + pub abpaipkldop: u32, + #[prost(uint32, tag = "4")] + pub lekfejhkppe: u32, + #[prost(uint32, tag = "5")] + pub enlkkemcpmh: u32, + #[prost(uint32, tag = "8")] + pub chefconpkll: u32, + #[prost(uint32, tag = "9")] + pub clocegaahjn: u32, + #[prost(uint32, tag = "10")] + pub dbpgbdainil: u32, + #[prost(uint32, tag = "13")] + pub odgiokoodip: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3163)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffbacdhbcmb { + #[prost(uint32, tag = "4")] + pub prop_type: u32, + #[prost(float, tag = "8")] + pub jjpcpmfdneh: f32, + #[prost(float, tag = "9")] + pub eldoedjdghn: f32, + #[prost(enumeration = "Bbbemdapogh", tag = "12")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2905)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efoajnddcof { + #[prost(message, repeated, tag = "3")] + pub acfinbconkb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adgfpgnggkk { + #[prost(map = "uint32, uint32", tag = "1")] + pub eifchjhikhi: ::std::collections::HashMap, + #[prost(uint32, tag = "2")] + pub nlhpdkjpdbg: u32, + #[prost(uint32, tag = "5")] + pub eopffipdkgn: u32, + #[prost(uint32, tag = "6")] + pub failealaadn: u32, + #[prost(bool, tag = "11")] + pub knhicjhgbem: bool, + #[prost(uint32, tag = "13")] + pub afjclenhanc: u32, + #[prost(uint32, tag = "14")] + pub lihibgchlhc: u32, + #[prost(bool, tag = "15")] + pub dphdagagbii: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfohnajkcmm { + #[prost(message, optional, tag = "1")] + pub opamnmmonci: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub dmgilpkaoih: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(message, optional, tag = "8")] + pub igmdelmihma: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5410)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpfkonljomd { + #[prost(message, repeated, tag = "14")] + pub pjaiebboobl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cadkjpfbbgh { + #[prost(message, optional, tag = "1")] + pub ncbfbhbddbb: ::core::option::Option, + #[prost(bool, tag = "2")] + pub dphdagagbii: bool, + #[prost(message, optional, tag = "3")] + pub oimelfimhdi: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub afjclenhanc: u32, + #[prost(uint32, tag = "5")] + pub ehdllggiofj: u32, + #[prost(bool, tag = "7")] + pub jjljnccjnhg: bool, + #[prost(message, optional, tag = "9")] + pub fldadbghcfo: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub hkappoekong: u32, + #[prost(message, optional, tag = "15")] + pub lobifoedpaj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3053)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnaphnbmdam { + #[prost(message, optional, tag = "5")] + pub phbpfonlgfb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27051)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbfaompogbh { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29238)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfcemjloihd { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28555)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mclgicjnfng { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint64, tag = "10")] + pub gedmdocolfj: u64, + #[prost(bool, tag = "12")] + pub is_add: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23865)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkfpbcomcpk { + #[prost(message, repeated, tag = "12")] + pub eikmafpnelm: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6850)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijjldlnbngg { + #[prost(map = "uint64, message", tag = "12")] + pub hmemhopnbeb: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8276)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnbcimmhmjo { + #[prost(uint32, tag = "1")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4911)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnppmnolied { + #[prost(uint32, tag = "3")] + pub scene_id: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, repeated, tag = "12")] + pub lkjdenefmnb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9908)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkjfidblkfm {} +#[derive(proto_gen::CmdID)] +#[cmdid(226)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fllkdomfeka { + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub hmlgdpbcgdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(568)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilcbhkdoeag { + #[prost(uint32, tag = "3")] + pub parent_quest_id: u32, + #[prost(int32, repeated, tag = "6")] + pub jiemdkokcle: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub podhdpcpjgj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcpmjpejcec { + #[prost(uint32, tag = "3")] + pub peajinifghm: u32, + #[prost(bool, tag = "11")] + pub lhhbinhjaoe: bool, + #[prost(uint32, tag = "13")] + pub ejnglcjnapn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6563)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kogejbnkkpd { + #[prost(uint32, tag = "3")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27691)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdffjjonahi { + #[prost(uint32, tag = "5")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27876)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dddfolgeppe { + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, + #[prost(bool, tag = "9")] + pub pjhpmjoonnb: bool, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Apjfamgojdb { + #[prost(uint32, tag = "1")] + pub nimjbkkhmgm: u32, + #[prost(uint32, tag = "2")] + pub skill_id: u32, + #[prost(uint32, tag = "6")] + pub efjohfkemjf: u32, + #[prost(bool, tag = "15")] + pub lhhbinhjaoe: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarTeam { + #[prost(string, tag = "6")] + pub team_name: ::prost::alloc::string::String, + #[prost(uint64, repeated, tag = "15")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29167)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcnbkibkgag { + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(message, optional, tag = "8")] + pub renderer_changed_info: ::core::option::Option, + #[prost(enumeration = "Igohjibcdfa", tag = "9")] + pub lkidbhiooog: i32, + #[prost(bool, tag = "14")] + pub ocnngoflpio: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29170)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejdlmieidko { + #[prost(uint32, repeated, tag = "14")] + pub iicooifholc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4900)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joejhmanjoh { + #[prost(fixed32, tag = "11")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28096)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocdkknfmagg { + #[prost(uint32, tag = "6")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntityTagChangeNotify { + #[prost(bool, tag = "1")] + pub is_add: bool, + #[prost(uint32, tag = "6")] + pub entity_id: u32, + #[prost(string, tag = "9")] + pub tag: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27401)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dagijmmkheg { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iolgpkjjcfi { + #[prost(uint32, tag = "1")] + pub mpiiidbdlaf: u32, + #[prost(oneof = "iolgpkjjcfi::Ikciaddgjkg", tags = "2, 3, 4")] + pub ikciaddgjkg: ::core::option::Option, +} +/// Nested message and enum types in `IOLGPKJJCFI`. +pub mod iolgpkjjcfi { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Ikciaddgjkg { + #[prost(int32, tag = "2")] + IntVal(i32), + #[prost(float, tag = "3")] + FloatVal(f32), + #[prost(bool, tag = "4")] + BoolVal(bool), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(2753)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fanppaaihil { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jopccmbmllm {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MaterialDeleteInfo { + #[prost(bool, tag = "1")] + pub delete_time_num_map: bool, + #[prost(oneof = "material_delete_info::Likfdabjgag", tags = "2, 3, 4")] + pub likfdabjgag: ::core::option::Option, +} +/// Nested message and enum types in `MaterialDeleteInfo`. +pub mod material_delete_info { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Likfdabjgag { + #[prost(message, tag = "2")] + ConfigDelayWeek(super::Odplefimgeh), + #[prost(message, tag = "3")] + ConfigCountDownTime(super::Pejobopbclc), + #[prost(message, tag = "4")] + DelayWeekConfigDelayWeek(super::Mjpljjplblm), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odplefimgeh { + #[prost(map = "uint32, uint32", tag = "1")] + pub ccnedchbikn: ::std::collections::HashMap, + #[prost(uint32, tag = "2")] + pub ilbkelakkec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pejobopbclc { + #[prost(uint32, tag = "1")] + pub nifbcchhdhb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjpljjplblm { + #[prost(map = "uint32, uint32", tag = "1")] + pub ccnedchbikn: ::std::collections::HashMap, + #[prost(uint32, tag = "2")] + pub ajhjkmjcchb: u32, + #[prost(uint32, tag = "3")] + pub ilbkelakkec: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25617)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpjlgaehbph { + #[prost(bool, tag = "4")] + pub cimejkmjgpm: bool, + #[prost(message, optional, tag = "6")] + pub oeapfmfefge: ::core::option::Option, + #[prost(string, tag = "8")] + pub hemdlgommkc: ::prost::alloc::string::String, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub jjlpijkgkon: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3266)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgkinaajjng { + #[prost(uint32, tag = "13")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khkgkpcanlc { + #[prost(float, tag = "4")] + pub mjpdbgbpbel: f32, + #[prost(message, optional, tag = "8")] + pub kfedopgomjc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9878)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijfecbepidk { + #[prost(uint32, repeated, tag = "5")] + pub hpjadbmcnkb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmapkefnaec { + #[prost(uint32, tag = "3")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "5")] + pub ilpjbepjdlp: u32, + #[prost(uint32, tag = "8")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20355)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdmlijgibih { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(message, repeated, tag = "15")] + pub pjemkikefle: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3441)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkggnabdajj { + #[prost(uint32, tag = "5")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mabgkocapgm { + #[prost(uint32, tag = "1")] + pub jddamhceape: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26940)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndmcahkagie { + #[prost(message, repeated, tag = "11")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25898)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bddchoopicn { + #[prost(uint32, tag = "3")] + pub dhelnnbdpje: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub pemfnlkjkdk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24019)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njadnnjmigc { + #[prost(uint32, tag = "1")] + pub hmlgdpbcgdm: u32, + #[prost(uint32, tag = "14")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipmkdmocnij { + #[prost(uint32, tag = "3")] + pub gjghlmekehm: u32, + #[prost(uint32, tag = "6")] + pub kjjccecpofh: u32, + #[prost(uint32, tag = "8")] + pub iadeomkimkb: u32, + #[prost(uint32, tag = "12")] + pub gdjklhgohif: u32, + #[prost(bool, tag = "13")] + pub clnjbibjcmg: bool, + #[prost(bool, tag = "15")] + pub jcoojljopeh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27552)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Haiacjdcleh { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub noflfojlggd: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dooichmegog { + #[prost(enumeration = "Odopboephmm", tag = "1")] + pub abclhaaljpl: i32, + #[prost(uint64, tag = "2")] + pub padclipinad: u64, + #[prost(uint64, tag = "3")] + pub cgammlododp: u64, + #[prost(bool, tag = "4")] + pub emhafoepfmn: bool, + #[prost(uint32, tag = "5")] + pub eiodiehhmnb: u32, + #[prost(uint32, tag = "6")] + pub eenbmjalppd: u32, + #[prost(message, optional, tag = "7")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub nbaidhhdpmd: ::core::option::Option, + #[prost(int32, tag = "9")] + pub speed: i32, + #[prost(uint32, tag = "10")] + pub peer_id: u32, + #[prost(uint32, tag = "11")] + pub peblohahpmm: u32, + #[prost(uint32, tag = "12")] + pub jkgafnnlifh: u32, + #[prost(uint32, tag = "13")] + pub njfflkndlke: u32, + #[prost(bool, tag = "14")] + pub cpbdalokjhg: bool, + #[prost(message, optional, tag = "15")] + pub bjklppogeof: ::core::option::Option, + #[prost(uint32, tag = "16")] + pub klmkdbiniif: u32, + #[prost(int32, tag = "17")] + pub kigfpeikeio: i32, + #[prost(uint64, tag = "18")] + pub clkepicnjjd: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dalbhjdanal { + #[prost(uint32, tag = "1")] + pub jgknaglfkia: u32, + #[prost(message, optional, tag = "7")] + pub ability_name: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub okapniodoog: u32, + #[prost(message, optional, tag = "14")] + pub dkjcbgdbkdm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6842)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgdcnffcoha { + #[prost(uint32, tag = "8")] + pub nnebhhfhdcc: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5915)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npoahmifhoe { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint64, tag = "13")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbniakcnpal { + #[prost(uint32, tag = "4")] + pub oboopjlpdni: u32, + #[prost(bool, tag = "8")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22052)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ealbmeggogb { + #[prost(uint32, tag = "15")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26918)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iepkeagldnk { + #[prost(uint32, tag = "15")] + pub fneojppfdhh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjdgfbaedoi { + #[prost(uint32, tag = "6")] + pub ecgpnmaliip: u32, + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnghljlknfi { + #[prost(uint64, tag = "4")] + pub cebikbgojjn: u64, + #[prost(uint32, tag = "7")] + pub onhojobnapm: u32, + #[prost(uint32, tag = "10")] + pub dpmdgmebgii: u32, + #[prost(uint32, tag = "12")] + pub kmpmkinjclj: u32, + #[prost(uint64, tag = "15")] + pub odaamkmioce: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9832)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oaicdebmhje { + #[prost(uint32, tag = "2")] + pub hcdenojpdff: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "11")] + pub doaejgakckl: ::prost::alloc::vec::Vec, + #[prost(map = "uint64, message", tag = "13")] + pub hmemhopnbeb: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcalocahegi { + #[prost(message, optional, tag = "2")] + pub fcojefmcgdi: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub pdjmjhbpioi: ::core::option::Option, + #[prost(message, repeated, tag = "4")] + pub oiimmpfkmfc: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "5")] + pub pefkgbhhemc: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub idjdknamaom: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub mgnbbofaohg: ::core::option::Option, + #[prost(message, repeated, tag = "12")] + pub khedphiggmj: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "13")] + pub bkicgpcjeee: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub abpjibdjipa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23119)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Padlmapjeeg { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8699)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerEnterSceneInfoNotify { + #[prost(message, optional, tag = "2")] + pub team_enter_info: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub cur_avatar_entity_id: u32, + #[prost(message, repeated, tag = "6")] + pub avatar_enter_info: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub enter_scene_token: u32, + #[prost(message, optional, tag = "14")] + pub mp_level_entity_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2997)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlpkekcnmce { + #[prost(uint32, tag = "5")] + pub jlhfgabkeoi: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(oneof = "dlpkekcnmce::Adebpdlaojp", tags = "2, 6")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `DLPKEKCNMCE`. +pub mod dlpkekcnmce { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(uint32, tag = "2")] + ChapterId(u32), + #[prost(uint32, tag = "6")] + Level(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(22901)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnhpkhiigda { + #[prost(uint32, repeated, tag = "6")] + pub ljoocndbcfl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5523)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnlgpljgeie { + #[prost(uint64, tag = "13")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfaelnafngn { + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(enumeration = "Oijbbocgigb", tag = "14")] + pub state: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7923)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Haemeapboja { + #[prost(enumeration = "Igohjibcdfa", tag = "1")] + pub lkidbhiooog: i32, + #[prost(message, optional, tag = "5")] + pub gfdflkogjgj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5036)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cclobjecfdf { + #[prost(uint32, tag = "8")] + pub iehlhaogkpj: u32, + #[prost(bool, tag = "4")] + pub bgaoacgaldg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2122)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihhmpbichdg { + #[prost(uint32, tag = "1")] + pub lhdahdneppl: u32, + #[prost(message, repeated, tag = "8")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekiecaieame { + #[prost(uint32, tag = "1")] + pub alnmhbapcgn: u32, + #[prost(bool, tag = "2")] + pub khpojffhdil: bool, + #[prost(bool, tag = "4")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "5")] + pub oicebegencm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Calfiedpebn { + #[prost(enumeration = "Ajopcffcfdd", tag = "2")] + pub state: i32, + #[prost(uint32, tag = "3")] + pub dabcmjlkoln: u32, + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(uint32, tag = "6")] + pub gbcebgkbjdm: u32, + #[prost(message, optional, tag = "10")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23896)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mehpidfemie { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3792)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjeofmbajeo { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25198)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Caahakoocma { + #[prost(uint32, tag = "1")] + pub param: u32, + #[prost(uint32, tag = "4")] + pub target_uid: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(message, optional, tag = "9")] + pub cdjoghohclk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5098)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Beknedmipid { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(uint32, tag = "15")] + pub inehpogkbmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1256)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ackdldjdphp { + #[prost(uint32, tag = "14")] + pub fgedppoccke: u32, + #[prost(uint32, tag = "15")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24972)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbffgngecag { + #[prost(uint32, tag = "13")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29172)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggacgoheiag { + #[prost(bool, tag = "2")] + pub ankcbommojb: bool, + #[prost(bool, tag = "6")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "9")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkfohkhkijn { + #[prost(message, repeated, tag = "12")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aiigdihbjga { + #[prost(uint32, repeated, tag = "10")] + pub nklnidikhfp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25813)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmcbijdhggp { + #[prost(message, repeated, tag = "2")] + pub doeeiokbidi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub oehkjpbepkb: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5482)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpojmnbchhe { + #[prost(uint32, tag = "3")] + pub pefplnjheli: u32, + #[prost(uint32, tag = "4")] + pub dmnldppgokg: u32, + #[prost(bool, tag = "8")] + pub gedopocdjgj: bool, + #[prost(uint32, tag = "9")] + pub ecgjaibejeo: u32, + #[prost(uint32, tag = "10")] + pub oebibbfhikd: u32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub glffdomajdd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iakmbahlgkm { + #[prost(int32, tag = "1")] + pub x: i32, + #[prost(int32, tag = "2")] + pub y: i32, + #[prost(int32, tag = "3")] + pub z: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipmkkchicng { + #[prost(uint32, repeated, tag = "8")] + pub hnpbppdijpp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1369)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbnfdcccmjf { + #[prost(uint32, tag = "7")] + pub bcgeoglhkan: u32, + #[prost(uint32, tag = "13")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onihlhkmikb { + #[prost(uint32, tag = "1")] + pub aegjhenaakp: u32, + #[prost(uint32, tag = "8")] + pub jcjlcebngld: u32, + #[prost(uint32, tag = "12")] + pub egbmifdjdih: u32, + #[prost(enumeration = "Kdioojinlkg", tag = "15")] + pub hgkoegebhfo: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29176)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khifoffekho { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlbkbphlfpl { + #[prost(uint32, tag = "3")] + pub fenjfleghmg: u32, + #[prost(uint32, tag = "7")] + pub iinemmigmmo: u32, + #[prost(uint32, tag = "13")] + pub ejjiafimoli: u32, + #[prost(uint32, tag = "15")] + pub item_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbckcebghna { + #[prost(uint32, tag = "7")] + pub ffbjampgekm: u32, + #[prost(uint32, tag = "8")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "9")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21579)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khkokkljceg { + #[prost(string, tag = "13")] + pub pffplppebpp: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21821)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nndceldjdgk { + #[prost(uint32, tag = "1")] + pub okicoglejec: u32, + #[prost(uint32, repeated, tag = "4")] + pub fpaiojdpdpc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub fchfakepinp: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7473)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbnmaphanjf { + #[prost(uint32, tag = "10")] + pub fiknlhojfkl: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4741)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okjlofieieh { + #[prost(uint32, tag = "6")] + pub alpfbbejimo: u32, + #[prost(bool, tag = "15")] + pub ibdpphjgcpg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3987)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eebhhefggld { + #[prost(uint32, tag = "10")] + pub olbaioooddk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3968)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpppmgmhdgd { + #[prost(uint64, tag = "9")] + pub nnloemnelia: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbhcoidiijh { + #[prost(uint32, tag = "9")] + pub dekhbeooien: u32, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2283)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eemmeicjcab { + #[prost(uint32, tag = "2")] + pub goakcbglbmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1807)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glncomnbhbk { + #[prost(uint32, repeated, tag = "1")] + pub himcbbodhcj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5389)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Negmhmbgdio { + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8003)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Celomoaicjc { + #[prost(message, optional, tag = "13")] + pub hboebpmfddo: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub entity_id: u32, + #[prost(uint32, tag = "1")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28322)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cblgkkomlbp { + #[prost(uint32, tag = "15")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8057)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Behhjoaalkg { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "12")] + pub akmdkfbgdlb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kghlaagbimb { + #[prost(uint32, repeated, tag = "2")] + pub jejgedbihfm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acbpnjdpcfe { + #[prost(uint32, tag = "1")] + pub kpampgdjdhe: u32, + #[prost(sfixed64, tag = "2")] + pub mkcfekngpne: i64, + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(uint32, tag = "7")] + pub dlmgmpmfojm: u32, + #[prost(uint32, tag = "8")] + pub kill_num: u32, + #[prost(sfixed64, tag = "12")] + pub ccbpcbollkl: i64, + #[prost(sfixed64, tag = "14")] + pub ikgknbdkobd: i64, + #[prost(uint32, tag = "15")] + pub diggffkgodj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24615)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbopjfcekfl {} +#[derive(proto_gen::CmdID)] +#[cmdid(2856)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbaeobnldcl {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pniedfcookd { + #[prost(uint32, tag = "1")] + pub hkbhninjmln: u32, + #[prost(uint32, repeated, tag = "2")] + pub giicbpigicm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub cjmmgkpfmof: u32, + #[prost(uint32, tag = "4")] + pub ngjiickjnhg: u32, + #[prost(uint32, tag = "5")] + pub eopffipdkgn: u32, + #[prost(uint32, tag = "6")] + pub kmjpfmceifb: u32, + #[prost(message, repeated, tag = "7")] + pub kmbampphcni: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub end_time: u32, + #[prost(uint32, tag = "9")] + pub djjohokkdbm: u32, + #[prost(uint32, tag = "10")] + pub lpahjgdbepe: u32, + #[prost(uint32, tag = "11")] + pub njccempmhdi: u32, + #[prost(uint32, tag = "12")] + pub lgbnfifcpjf: u32, + #[prost(message, optional, tag = "13")] + pub hpkdnceehfn: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub ibcgffjgcid: u32, + #[prost(uint32, tag = "15")] + pub hdhjdcphfmk: u32, + #[prost(uint32, tag = "76")] + pub mncaaimgcjj: u32, + #[prost(uint32, tag = "282")] + pub afogapgjcoh: u32, + #[prost(uint32, tag = "378")] + pub jlibgefcahd: u32, + #[prost(bool, tag = "952")] + pub ehiaioonfdh: bool, + #[prost(uint32, tag = "1171")] + pub bhnajclpoje: u32, + #[prost(uint32, tag = "1252")] + pub kjagoohcnon: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kckbcnhbnmi { + #[prost(enumeration = "Cfaiijnnlbp", tag = "6")] + pub pihngiilbfk: i32, + #[prost(bytes = "vec", tag = "8")] + pub gifdhcocgpm: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Igohjibcdfa", tag = "12")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AnimatorParameterValueInfoPair { + #[prost(int32, tag = "1")] + pub name_id: i32, + #[prost(message, optional, tag = "2")] + pub animator_para: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfilhaogbdl { + #[prost(uint32, tag = "2")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29544)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oeignggjjgp { + #[prost(uint64, tag = "2")] + pub dcompdppdpo: u64, + #[prost(uint32, tag = "5")] + pub jlfheeipddp: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7519)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Homgfpffcgh { + #[prost(uint32, repeated, tag = "8")] + pub mjiofgmcple: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23433)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iooonmojknn { + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aaeoemigkpc { + #[prost(map = "uint32, message", tag = "9")] + pub opembcgjapd: ::std::collections::HashMap, + #[prost(uint32, tag = "13")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4384)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nicieccojcn { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aogfoalepio { + #[prost(enumeration = "Cfpilojcini", tag = "9")] + pub bpelaiajjkj: i32, + #[prost(int32, tag = "15")] + pub retcode: i32, + #[prost(oneof = "aogfoalepio::Neokfhfmgho", tags = "5, 10, 12, 13, 14")] + pub neokfhfmgho: ::core::option::Option, +} +/// Nested message and enum types in `AOGFOALEPIO`. +pub mod aogfoalepio { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Neokfhfmgho { + #[prost(message, tag = "5")] + SyncAction(super::Pejfkjhkfnl), + #[prost(message, tag = "10")] + SyncCreateConnect(super::Dbcnhbgkago), + #[prost(message, tag = "12")] + SyncSnapShot(super::Ffaebglggcc), + #[prost(message, tag = "13")] + SyncFinishGame(super::Hjibijbldjd), + #[prost(message, tag = "14")] + SyncPing(super::Adaboonidnn), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipbjlhacfkm { + #[prost(uint32, tag = "4")] + pub hgdlfmmidkp: u32, + #[prost(uint32, tag = "5")] + pub geihmkhcije: u32, + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "9")] + pub ccpigccdboi: u32, + #[prost(uint32, tag = "13")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8893)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jglgilkcpdc { + #[prost(message, repeated, tag = "1")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub ocfbngkjgca: u32, + #[prost(uint32, tag = "7")] + pub dlgpndckbak: u32, + #[prost(string, tag = "10")] + pub bmljclenhmh: ::prost::alloc::string::String, + #[prost(uint32, tag = "15")] + pub ofdgaholebg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eheldhcfekd { + #[prost(uint32, tag = "1")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "3")] + pub deoocbakmcj: u32, + #[prost(bool, tag = "4")] + pub dgcmikfmkhp: bool, + #[prost(bool, tag = "9")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub onhojobnapm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfkcmmohnof { + #[prost(bool, tag = "7")] + pub mdgjjofokap: bool, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub ppbamnfheje: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnjaaipceid { + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub mmfkdhalglg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21242)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcojmpcffnf { + #[prost(message, optional, tag = "1")] + pub kiolegbhkbk: ::core::option::Option, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "5")] + pub gabljanjlaf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub dalbepbfmfb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfpfkkmjeon { + #[prost(uint32, repeated, tag = "7")] + pub cpdiflpnpjn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29835)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oapofljeppa { + #[prost(uint32, tag = "1")] + pub param: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub homgpjjmldg: u32, + #[prost(bool, tag = "11")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Miamfofpfnk { + #[prost(uint32, tag = "3")] + pub alpfbbejimo: u32, + #[prost(uint32, tag = "14")] + pub cjfgadhmeol: u32, + #[prost(message, optional, tag = "15")] + pub tag: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26168)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdpppioeiag { + #[prost(bool, tag = "1")] + pub iajcjielmbh: bool, + #[prost(message, optional, tag = "6")] + pub lkfpacldkef: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22859)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnkcpeicgcf { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23309)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnnojnimeak { + #[prost(uint32, tag = "11")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23798)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aclnbialaeo { + #[prost(bool, tag = "1")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "2")] + pub ifpcihenjnl: u32, + #[prost(uint32, tag = "6")] + pub parent_quest_id: u32, + #[prost(uint32, repeated, tag = "7")] + pub bmhkkgbhigp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub ghkeojdcmnp: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7079)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fipegmomhjk { + #[prost(uint32, tag = "1")] + pub jklafeigolc: u32, + #[prost(uint32, tag = "9")] + pub scene_id: u32, + #[prost(uint32, tag = "15")] + pub hffggaadpaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngeonoogcik { + #[prost(uint32, tag = "15")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7721)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogoodmcoill { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(uint32, tag = "10")] + pub hekhhhcoplm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1777)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mennanndjmb { + #[prost(uint32, tag = "7")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phhlaebionp { + #[prost(uint32, tag = "5")] + pub ihaiipfmpld: u32, + #[prost(message, repeated, tag = "15")] + pub dnpebapalek: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8287)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joooeogjief { + #[prost(uint32, repeated, tag = "11")] + pub bihiklaiolg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub jefildjebaj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7815)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgaeaihdfng { + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, + #[prost(bool, tag = "10")] + pub dkcieiglfei: bool, + #[prost(message, repeated, tag = "13")] + pub gfoibopdlgj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub pbhmclnfoeh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Offcconkfoh { + #[prost(message, repeated, tag = "12")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub aimlaidlfde: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efebijodbnh { + #[prost(bool, tag = "3")] + pub ofgognbfmfk: bool, + #[prost(message, optional, tag = "5")] + pub dohmdajfmlh: ::core::option::Option, + #[prost(bool, tag = "6")] + pub ajehidcimok: bool, + #[prost(message, repeated, tag = "8")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub dphdagagbii: bool, + #[prost(message, optional, tag = "14")] + pub didemgclnle: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21923)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhdllaodafk { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, repeated, tag = "12")] + pub bnmfbfkglbe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(517)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmnlpakcebd { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28805)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omabndlhpkd { + #[prost(uint32, tag = "2")] + pub jlmkcinpcgf: u32, + #[prost(uint32, tag = "10")] + pub iidhpkefhpm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21399)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odohnidknlh { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26030)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpbfoioadfd { + #[prost(message, optional, tag = "8")] + pub aphkopalnlj: ::core::option::Option, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(173)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpbkkcolpjn { + #[prost(uint32, repeated, tag = "2")] + pub elfnbikbejo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "1")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub leeghdddbei: u32, + #[prost(bool, tag = "10")] + pub ilmdjcegjop: bool, + #[prost(uint32, tag = "6")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "13")] + pub bfjbpphojik: u32, + #[prost(uint32, tag = "12")] + pub knlggciemkn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7226)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Majcdnigclj {} +#[derive(proto_gen::CmdID)] +#[cmdid(20136)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdihfpldhch { + #[prost(message, optional, tag = "12")] + pub ilnbhpkjkmg: ::core::option::Option, + #[prost(uint32, tag = "1")] + pub ocinfhojcea: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlneknaocap { + #[prost(bool, tag = "4")] + pub lejlmjjdedc: bool, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9196)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebhgfilpamk {} +#[derive(proto_gen::CmdID)] +#[cmdid(28276)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hongcajkbik { + #[prost(uint32, tag = "15")] + pub ffafbeafihe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9081)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chonejdcmda { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(564)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhkffhjeibc { + #[prost(uint32, tag = "1")] + pub jklafeigolc: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njndgmejdjb { + #[prost(message, repeated, tag = "6")] + pub pobhlhhdjhe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nadpjahpoho {} +#[derive(proto_gen::CmdID)] +#[cmdid(22485)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkelgjflkkb { + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chokefpflec { + #[prost(uint32, tag = "4")] + pub nkeonoiklao: u32, + #[prost(uint32, tag = "8")] + pub jahjojochom: u32, + #[prost(uint32, tag = "9")] + pub gefbnnebkdb: u32, + #[prost(message, optional, tag = "11")] + pub jnhddgmhfol: ::core::option::Option, + #[prost(uint32, repeated, tag = "14")] + pub imbfkdcpoca: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5607)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaldealdjng { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(uint32, tag = "14")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1618)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbnbllklali { + #[prost(enumeration = "Mdlnkdebfnj", tag = "3")] + pub okfgenldmnb: i32, + #[prost(uint32, tag = "4")] + pub knfdjggdfhn: u32, + #[prost(bytes = "vec", tag = "5")] + pub idaidcbkcei: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjjneiihkjp { + #[prost(uint32, tag = "7")] + pub hmjhonfmmad: u32, + #[prost(message, repeated, tag = "8")] + pub cejbfleejdg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(702)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nphhgkejoob {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdofhmipged { + #[prost(uint32, tag = "1")] + pub npc_id: u32, + #[prost(uint32, tag = "6")] + pub bpeckikgmno: u32, + #[prost(bool, tag = "11")] + pub eialjbaengj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27468)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joidaoklnnb { + #[prost(bool, tag = "1")] + pub dmedoehomkh: bool, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29880)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkoenefmlcl { + #[prost(uint32, repeated, tag = "10")] + pub cbmafaahiab: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "8")] + pub pefplnjheli: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22461)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbhadibeihb { + #[prost(uint32, tag = "12")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(673)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Killoollmfg { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub gaplfmmgbfa: u32, + #[prost(bool, tag = "14")] + pub nofkhedpmpp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3051)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cllflokimcf { + #[prost(uint32, tag = "9")] + pub phmkpnkmooe: u32, + #[prost(uint32, tag = "1")] + pub ghiaogllldi: u32, + #[prost(uint32, tag = "13")] + pub hkeeinbhfhm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hoellhpeell { + #[prost(uint32, tag = "7")] + pub oboopjlpdni: u32, + #[prost(uint32, repeated, tag = "13")] + pub dpjajimlmnp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbganigpijb { + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(message, optional, tag = "6")] + pub iaknhjgcpgl: ::core::option::Option, + #[prost(float, tag = "7")] + pub micclpioagi: f32, + #[prost(float, tag = "9")] + pub bdpfdbpekcd: f32, + #[prost(float, tag = "14")] + pub speed: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22578)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgajlnehdmh { + #[prost(uint32, tag = "7")] + pub kdclmhbcfnh: u32, + #[prost(uint32, tag = "11")] + pub ohkidhnabib: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bphaiglkhil { + #[prost(bool, tag = "2")] + pub plppjnmmjce: bool, + #[prost(uint32, tag = "4")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "5")] + pub bnofpmifhdl: ::std::collections::HashMap, + #[prost(message, optional, tag = "11")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "13")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(string, tag = "14")] + pub bkdilgijpeg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27026)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Biklppaclfa { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ciojhmljhbp { + #[prost(uint32, tag = "2")] + pub fjhhikoihka: u32, + #[prost(uint32, tag = "4")] + pub pahehojdkpf: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "5")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MotionInfo { + #[prost(message, optional, tag = "1")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub speed: ::core::option::Option, + #[prost(enumeration = "Haefglpepln", tag = "4")] + pub state: i32, + #[prost(message, repeated, tag = "5")] + pub params: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "6")] + pub ref_pos: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub ref_id: u32, + #[prost(uint32, tag = "8")] + pub scene_time: u32, + #[prost(uint64, tag = "9")] + pub interval_velocity: u64, + #[prost(uint32, tag = "10")] + pub bimcajgddoi: u32, + #[prost(uint32, tag = "11")] + pub hjcdicmbdke: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oakhmefengd { + #[prost(message, repeated, tag = "3")] + pub pkkonkbpjia: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "10")] + pub dekhbeooien: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1585)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emhbfelhplk { + #[prost(uint32, repeated, tag = "1")] + pub ngaignaolkc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "2")] + pub dogjlobeepc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub hdkdgijfmpc: u32, + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(uint32, repeated, tag = "5")] + pub ofgoaefjhic: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "7")] + pub okmbhkdejce: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub cckejklgchc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub felmbeacblb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub ogloleoeagd: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "12")] + pub is_new_player: bool, + #[prost(uint32, repeated, tag = "13")] + pub idlmibckfdk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub beocpmcphjh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4784)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndddejobjcb { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22005)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejofkjiohnk { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kafhmaloehk { + #[prost(message, optional, tag = "2")] + pub dejoimafmck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldbhfdpfpfd { + #[prost(bool, tag = "2")] + pub dhbpdlkmiee: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2745)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcbkmjekdeg { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27618)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijndeocicdc { + #[prost(message, optional, tag = "3")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hknfcfkifgo { + #[prost(uint32, repeated, tag = "2")] + pub fjcmplgbcek: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29192)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ooiaidkpbob { + #[prost(uint32, repeated, tag = "5")] + pub neojjndlfff: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub ihioobihhia: u32, + #[prost(bool, tag = "7")] + pub kjdlhnfgfcn: bool, + #[prost(int32, repeated, tag = "10")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "14")] + pub jmcngnikjhb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20699)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pclcgnoplep { + #[prost(message, repeated, tag = "2")] + pub lpiegoapccc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4722)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djndjbnogdn { + #[prost(uint32, tag = "6")] + pub bcgeoglhkan: u32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oohjpmjpakb { + #[prost(uint32, tag = "4")] + pub kpampgdjdhe: u32, + #[prost(uint32, repeated, tag = "7")] + pub jolfibijfhd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub gnjdnihkbpi: u32, + #[prost(message, repeated, tag = "15")] + pub acchmpajoga: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22915)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmdfoielapi { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25025)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerStoreNotify { + #[prost(uint32, tag = "1")] + pub weight_limit: u32, + #[prost(enumeration = "StoreType", tag = "4")] + pub store_type: i32, + #[prost(message, repeated, tag = "10")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bohjmepeiec { + #[prost(uint32, tag = "3")] + pub kpakelnffhk: u32, + #[prost(uint32, tag = "4")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "5")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2638)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmafcmcpilp { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "10")] + pub kfpegnaadlo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5449)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djgnpangaok { + #[prost(enumeration = "Hibhhjenmpp", tag = "2")] + pub pipmddflkmo: i32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9212)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfkphjbafpm { + #[prost(message, optional, tag = "12")] + pub fohckoimpdk: ::core::option::Option, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fncpefaclep {} +#[derive(proto_gen::CmdID)] +#[cmdid(23688)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnfmdkbdgpd { + #[prost(uint32, repeated, tag = "2")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "8")] + pub pkkkijalpnm: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20062)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogpnafhiohe { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20135)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfinakbjabg { + #[prost(enumeration = "Oeaoccjeope", tag = "8")] + pub ddiaamkbfda: i32, + #[prost(enumeration = "Mkphmapfemh", tag = "12")] + pub reason: i32, + #[prost(uint32, tag = "15")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3208)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efeaanllbia { + #[prost(uint32, tag = "1")] + pub reason: u32, + #[prost(enumeration = "Meoebdaimci", tag = "2")] + pub phaajccbbcd: i32, + #[prost(uint32, repeated, tag = "6")] + pub naialecdmjp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub gekkbbagfap: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub efcpclijjda: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24827)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijlgigfepmb { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "2")] + pub eipjpbekfgh: u32, + #[prost(uint32, tag = "9")] + pub folhddgiigl: u32, + #[prost(uint32, tag = "14")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icobapgcjel { + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub gadget_id: u32, + #[prost(uint32, tag = "12")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6541)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmhedjleeol { + #[prost(message, repeated, tag = "1")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub ejlcmhihmfk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28509)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iobahclaoke { + #[prost(uint32, repeated, tag = "3")] + pub hoepcmhjbhe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24794)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inemahkgpbd {} +#[derive(proto_gen::CmdID)] +#[cmdid(24851)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfcpdbikpkc { + #[prost(uint32, tag = "4")] + pub skill_id: u32, + #[prost(uint32, tag = "3")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "2")] + pub bahemifdhhc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9988)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnnoippnpcg { + #[prost(uint32, tag = "1")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub ffhembokbef: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20055)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjelipnjojj { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub goakcbglbmj: u32, + #[prost(uint32, repeated, tag = "15")] + pub fnaoacpmmkd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26562)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmddpmnefoh { + #[prost(uint32, tag = "8")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dojeonalhcg { + #[prost(uint32, repeated, tag = "2")] + pub gpncclkpmmg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub lfgjkeafnpb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjiklbipjij { + #[prost(uint64, tag = "4")] + pub cgammlododp: u64, + #[prost(uint64, tag = "14")] + pub padclipinad: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5243)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aaeggopgkfk { + #[prost(uint32, tag = "2")] + pub jcjlcebngld: u32, + #[prost(uint32, tag = "3")] + pub egbmifdjdih: u32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21650)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oihplaekinm { + #[prost(message, repeated, tag = "1")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub iijkccimjgj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24509)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eomlbcnnede { + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8087)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpggnplfdkk { + #[prost(uint32, tag = "8")] + pub acnagipbchp: u32, + #[prost(uint32, tag = "6")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfchofgmiak { + #[prost(uint32, tag = "2")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "4")] + pub fmjigfmbjpj: u32, + #[prost(bool, tag = "9")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "14")] + pub kenaelefool: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igdjaolokdi { + #[prost(uint32, tag = "6")] + pub fbbbjnhiplf: u32, + #[prost(uint32, tag = "14")] + pub indikfknkab: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29388)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cckimjaepab { + #[prost(bool, tag = "4")] + pub omncikffgbo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20022)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnamcfegnko {} +#[derive(proto_gen::CmdID)] +#[cmdid(4632)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbidcmbnppj { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elfmdemljcb { + #[prost(uint32, tag = "5")] + pub ocnjnmhllhi: u32, + #[prost(uint32, tag = "6")] + pub count: u32, + #[prost(uint32, tag = "7")] + pub iknfnnfkagf: u32, + #[prost(bool, tag = "9")] + pub ehipeccdlab: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20347)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogflkkmolli { + #[prost(message, repeated, tag = "6")] + pub pjemkikefle: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1577)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bneipnilmei { + #[prost(message, repeated, tag = "8")] + pub blnhhgnflhg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddaedimehoj { + #[prost(uint32, repeated, tag = "2")] + pub kehdbaphjig: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7355)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmdaallaiip { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "9")] + pub injbcibakhf: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22672)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mieibdgjiji {} +#[derive(proto_gen::CmdID)] +#[cmdid(26642)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhpjfgpdnel { + #[prost(uint32, tag = "12")] + pub target_uid: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23625)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkclifnalee { + #[prost(uint32, tag = "2")] + pub acockpeknao: u32, + #[prost(message, optional, tag = "14")] + pub hmpfkhepfch: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cocnecpfgje { + #[prost(message, repeated, tag = "15")] + pub apjeplhbndg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27665)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcfafdkakgb { + #[prost(uint32, tag = "2")] + pub npc_id: u32, + #[prost(uint32, tag = "7")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20095)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofdanjnmhek { + #[prost(string, tag = "4")] + pub version: ::prost::alloc::string::String, + #[prost(map = "uint32, uint32", tag = "1")] + pub aaeodlneabp: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1763)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efaaeeclaom { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9678)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lalmmippaom { + #[prost(message, repeated, tag = "2")] + pub pphhahhbhgg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmhabdgpfik { + #[prost(uint32, tag = "7")] + pub uid: u32, + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocoflmhcbfk { + #[prost(uint32, tag = "3")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(message, repeated, tag = "10")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kekbdfokbjb { + #[prost(message, repeated, tag = "5")] + pub fgmnpgmfhei: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub ncnkmdbafeh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6171)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fllbmpegfjm { + #[prost(message, repeated, tag = "3")] + pub cbdjnkepeaj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(int32, repeated, tag = "13")] + pub dncfmfnglfa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24906)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Momiolncaed { + #[prost(uint64, repeated, tag = "6")] + pub avatar_team_guid_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint64, tag = "11")] + pub cur_avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7885)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Filfpchgohh { + #[prost(message, repeated, tag = "5")] + pub fkhaojblflj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub cdeenljnoda: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8639)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odbocoenabl { + #[prost(message, optional, tag = "12")] + pub mcgfnjlcedm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipggpfgobea { + #[prost(message, repeated, tag = "7")] + pub caokdaknjep: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(391)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcelinjhpaf { + #[prost(message, optional, tag = "13")] + pub motion_info: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub fggmoakinfd: u32, + #[prost(uint32, tag = "9")] + pub scene_time: u32, + #[prost(uint32, tag = "8")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MpLevelEntityInfo { + #[prost(message, optional, tag = "3")] + pub ability_info: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(uint32, tag = "15")] + pub authority_peer_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4835)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iijacmgjlaj { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(uint32, tag = "5")] + pub fggmoakinfd: u32, + #[prost(uint32, tag = "14")] + pub scene_time: u32, + #[prost(message, optional, tag = "15")] + pub neicmenmflj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7424)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogolaijffno { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7093)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llpmodbkgjd { + #[prost(uint32, repeated, tag = "4")] + pub hijphgbgjkn: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub eebpihlbkmf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2778)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfljdngfphl { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "7")] + pub nohabamidad: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Himmemhogfb", tag = "8")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5577)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oambfchennc { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6162)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofdgmalnjec {} +#[derive(proto_gen::CmdID)] +#[cmdid(24953)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obpfpndagdf { + #[prost(bool, tag = "6")] + pub napmcbkmnaa: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7006)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fdhldcfbknj { + #[prost(uint64, repeated, tag = "2")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1140)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phlokmchdpn {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efmbfpecejn { + #[prost(string, tag = "1")] + pub mmdpdoococo: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub nick_name: ::prost::alloc::string::String, + #[prost(message, optional, tag = "7")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "12")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfohfckpemo { + #[prost(uint32, tag = "12")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub kpampgdjdhe: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oajcfeajhjh { + #[prost(uint32, tag = "10")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adaboonidnn { + #[prost(uint64, tag = "9")] + pub padclipinad: u64, + #[prost(uint64, tag = "14")] + pub cgammlododp: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poighgbcnmn { + #[prost(uint32, repeated, tag = "5")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub uid: u32, + #[prost(uint32, tag = "15")] + pub hpclljgigld: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npcmlkndene { + #[prost(bool, tag = "6")] + pub mmadnoebmlh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26706)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmfokhkekbc { + #[prost(uint32, tag = "1")] + pub hjkbfibnkdb: u32, + #[prost(uint32, tag = "2")] + pub hkdcibpofoc: u32, + #[prost(uint32, tag = "3")] + pub fnppfkkpaca: u32, + #[prost(bool, tag = "4")] + pub naamimdommn: bool, + #[prost(uint32, tag = "5")] + pub cfeclkmehme: u32, + #[prost(uint32, tag = "9")] + pub dnpbbeeifaj: u32, + #[prost(uint32, tag = "13")] + pub mnjaednjcnc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adphnfgaakn { + #[prost(bytes = "vec", repeated, tag = "12")] + pub jledgoffpmb: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22123)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhopkphogjd {} +#[derive(proto_gen::CmdID)] +#[cmdid(939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngmfeckakeg { + #[prost(enumeration = "Ihpmjgjmpgb", tag = "2")] + pub gencjjggikg: i32, + #[prost(uint32, tag = "10")] + pub lekfejhkppe: u32, + #[prost(uint32, tag = "14")] + pub pchidddalpp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7612)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgagboljpij { + #[prost(message, repeated, tag = "1")] + pub ioabbbeiohb: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub lnhimfgkhgi: ::core::option::Option, + #[prost(bool, tag = "4")] + pub hnnfdpfpban: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kemlinfeecm { + #[prost(uint32, repeated, tag = "1")] + pub koddemmpdfi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7020)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jggjooajaep { + #[prost(uint32, tag = "15")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7367)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjialffbgmg { + #[prost(map = "uint32, uint32", tag = "14")] + pub lojncdjgmpf: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29075)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkpelmbdgge { + #[prost(uint32, tag = "8")] + pub epjoaallggd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbihmgplghk { + #[prost(message, optional, tag = "15")] + pub abpjibdjipa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3848)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpagadppiec { + #[prost(uint32, tag = "10")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5980)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdakeonepmh { + #[prost(map = "uint32, uint32", tag = "3")] + pub bnofpmifhdl: ::std::collections::HashMap, + #[prost(uint32, tag = "8")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpahklcpmjm { + #[prost(uint32, repeated, tag = "1")] + pub chkbakfhajf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7256)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjbknkccojp { + #[prost(uint32, repeated, tag = "12")] + pub himcbbodhcj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26270)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chifnkcgdcm { + #[prost(message, optional, tag = "13")] + pub lmlmlhmcmej: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fifjnbbadkj { + #[prost(uint32, tag = "1")] + pub afjclenhanc: u32, + #[prost(bool, tag = "3")] + pub dphdagagbii: bool, + #[prost(uint32, repeated, tag = "9")] + pub ljoocndbcfl: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub pjjdlepnnib: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub hfefpgknheh: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub oplajnckefn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27145)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pblhkdkklcc { + #[prost(bool, tag = "4")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "12")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knikgbnljke { + #[prost(message, optional, tag = "2")] + pub depeokcjkmf: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub ref_id: u32, + #[prost(message, optional, tag = "8")] + pub ref_pos: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub iaknhjgcpgl: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub hjcdicmbdke: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9668)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjhmmbngaml {} +#[derive(proto_gen::CmdID)] +#[cmdid(27900)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldaempfahig { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bplamhfkapa { + #[prost(message, optional, tag = "1")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub gadget_id: u32, + #[prost(message, optional, tag = "4")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub lmjnokajeki: u32, + #[prost(uint32, repeated, tag = "6")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(float, tag = "8")] + pub megkadcaaaj: f32, + #[prost(float, tag = "9")] + pub fipkpjpkjbn: f32, + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28223)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgjkbolgglm { + #[prost(message, repeated, tag = "14")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21145)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akfocpcfnil {} +#[derive(proto_gen::CmdID)] +#[cmdid(24405)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcolljbmlej { + #[prost(map = "uint32, uint32", tag = "8")] + pub echkmcdfjgj: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "10")] + pub ombfpmhjeae: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub ooachnljdcj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25788)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fdpbicnkdbn { + #[prost(string, tag = "1")] + pub level: ::prost::alloc::string::String, + #[prost(int32, tag = "4")] + pub phaajccbbcd: i32, + #[prost(string, tag = "5")] + pub msg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8717)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bigceoclhfi { + #[prost(uint32, tag = "13")] + pub nhkapceomoe: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onoheioddkc { + #[prost(uint32, tag = "4")] + pub bjjgmliaklb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25666)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbobjgmjknl { + #[prost(message, repeated, tag = "10")] + pub gdnmlpmkcoj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fllmoamiion { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibcjphkpjoi { + #[prost(oneof = "ibcjphkpjoi::Cbndomcaffj", tags = "5, 6, 7")] + pub cbndomcaffj: ::core::option::Option, +} +/// Nested message and enum types in `IBCJPHKPJOI`. +pub mod ibcjphkpjoi { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Cbndomcaffj { + #[prost(message, tag = "5")] + RefreshSeed(super::Kfighhjghim), + #[prost(message, tag = "6")] + CatchSeed(super::Gdbbehjcpik), + #[prost(message, tag = "7")] + AddSignal(super::Icedmckopmg), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icedmckopmg {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfighhjghim { + #[prost(message, repeated, tag = "2")] + pub lnmjkklpcfh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdbbehjcpik { + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oekohgokjim { + #[prost(uint32, tag = "1")] + pub icmgfgejcjk: u32, + #[prost(enumeration = "Aedfenmknkc", tag = "5")] + pub pfenlkjpddb: i32, + #[prost(uint32, tag = "6")] + pub diaolbekahm: u32, + #[prost(bool, tag = "7")] + pub lhnfiiejbem: bool, + #[prost(message, repeated, tag = "12")] + pub oaakbkbonjk: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "13")] + pub gedmdocolfj: u64, + #[prost(bool, tag = "14")] + pub gblhfaeonkm: bool, + #[prost(bool, tag = "15")] + pub folikaaikie: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpeldpaakoc { + #[prost(uint32, tag = "2")] + pub bknafebffjj: u32, + #[prost(bool, tag = "7")] + pub dphdagagbii: bool, + #[prost(message, repeated, tag = "8")] + pub dnhpgflajep: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8851)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehcaldfmikk { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahnhfdinjef { + #[prost(message, repeated, tag = "2")] + pub mfcjljpcmhn: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub ioeeclpapan: bool, + #[prost(uint32, tag = "15")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjgfkcilloo { + #[prost(float, tag = "1")] + pub pdkifkkmhcn: f32, + #[prost(float, tag = "2")] + pub fmbfachhibm: f32, + #[prost(float, tag = "10")] + pub bejkkemdfph: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29439)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmcclkepjec { + #[prost(uint32, tag = "4")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29030)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lckegoiihli {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ResVersionConfig { + #[prost(uint32, tag = "1")] + pub version: u32, + #[prost(bool, tag = "2")] + pub relogin: bool, + #[prost(string, tag = "3")] + pub md5: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub release_total_size: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub version_suffix: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub branch: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub next_script_version: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oanfhdoobff { + #[prost(uint32, repeated, tag = "1")] + pub inggcfjgfkp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub lnepemdgbfn: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub nlfhbjiaemc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8350)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eopehhojhgi { + #[prost(bool, tag = "15")] + pub lkcaeopcfoc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7830)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ceflfnknebe { + #[prost(uint32, tag = "10")] + pub jdbonkeoala: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffljlnmflfn { + #[prost(bool, tag = "3")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "13")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27076)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hohfnehgdal { + #[prost(bool, tag = "3")] + pub hmonknfcagb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6144)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egjdcbhkpnk {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hakjcbncnfp { + #[prost(bool, tag = "14")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "15")] + pub hdmfabplnob: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20410)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhdgjdlnecl { + #[prost(enumeration = "Niemjjcedcf", tag = "8")] + pub aiaajcalbmi: i32, + #[prost(uint32, tag = "10")] + pub ljbanimoejp: u32, + #[prost(uint32, tag = "12")] + pub bjmihkphifa: u32, + #[prost(enumeration = "Niemjjcedcf", tag = "14")] + pub nhkdmbnieho: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26605)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmhkncoegpi { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub target_uid: u32, + #[prost(enumeration = "Mfnchjapidh", tag = "12")] + pub ipccodlhaop: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(727)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Baedmppdmop { + #[prost(message, repeated, tag = "3")] + pub dcclihipjbi: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(message, repeated, tag = "12")] + pub gfpibaaljjp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "14")] + pub plaipmojmeo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6446)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gciofnehekk { + #[prost(uint32, tag = "2")] + pub fibapajefma: u32, + #[prost(uint32, tag = "3")] + pub pmneeoeolkc: u32, + #[prost(bool, tag = "4")] + pub lpedobbpape: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llbnkeldfcg { + #[prost(uint32, tag = "6")] + pub gnjcidhobia: u32, + #[prost(enumeration = "Dickjkioiop", tag = "11")] + pub r#type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1628)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgafhbljdkk { + #[prost(string, tag = "5")] + pub jlcddojgkkg: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub mpgmoflceof: u32, + #[prost(uint32, tag = "10")] + pub cijpmgmcjba: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22153)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iemkdbkmbak { + #[prost(uint32, tag = "11")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, + #[prost(oneof = "iemkdbkmbak::Gcbckcbnpmn", tags = "5")] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `IEMKDBKMBAK`. +pub mod iemkdbkmbak { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "5")] + SettleInfo(super::Npankifllmm), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glihgjhnbgf { + #[prost(message, optional, tag = "3")] + pub dbnmjhdkfci: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(message, optional, tag = "14")] + pub cchnaplhidl: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23800)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nikhofchpnn { + #[prost(uint32, repeated, tag = "10")] + pub mikgjhpding: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcbgdohindd { + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "11")] + pub ibcgffjgcid: u32, + #[prost(uint32, tag = "13")] + pub level: u32, + #[prost(uint32, tag = "14")] + pub jefildjebaj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9059)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Niicbihmpdi { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pafdoomkdoc { + #[prost(uint32, tag = "2")] + pub ecnkgkfhfdf: u32, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub olfbamdhbil: u32, + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "11")] + pub hbedecbnhoa: u32, + #[prost(uint32, tag = "12")] + pub glhmmnjigfg: u32, + #[prost(uint32, tag = "13")] + pub mojdcgignno: u32, + #[prost(uint32, tag = "14")] + pub cidhmchnneh: u32, + #[prost(uint32, tag = "15")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25831)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkhdhlemjcj { + #[prost(string, tag = "7")] + pub pbigganlbdh: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28047)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfnkiohejmo { + #[prost(enumeration = "Meeeclkccmd", tag = "4")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21687)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fonachbffei { + #[prost(uint32, tag = "10")] + pub jfcefgehkpg: u32, + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nppllpealik { + #[prost(bool, tag = "1")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "5")] + pub apafipofloj: u32, + #[prost(uint32, tag = "6")] + pub nkeonoiklao: u32, + #[prost(bool, tag = "11")] + pub pohfobdllbc: bool, + #[prost(bool, tag = "14")] + pub najpjbcjgja: bool, + #[prost(uint64, tag = "15")] + pub hodolkcoplg: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Doiomilbplh { + #[prost(uint32, tag = "6")] + pub hgfhjcfgijm: u32, + #[prost(uint32, tag = "14")] + pub ehejdjoeind: u32, + #[prost(message, optional, tag = "15")] + pub kdemcbkggek: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5651)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glghijhhcck { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Deaflobjjeh { + #[prost(uint32, tag = "3")] + pub kaioccbnppa: u32, + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, + #[prost(bool, tag = "9")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljddpgjaajl { + #[prost(message, repeated, tag = "1")] + pub nfkjldjcodp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8701)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jegbmgekmlf { + #[prost(bool, tag = "6")] + pub jookmiedbie: bool, + #[prost(message, optional, tag = "7")] + pub kppncnicjne: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub bhfdigmgmgi: u32, + #[prost(uint32, tag = "9")] + pub bbfplmbggjp: u32, + #[prost(bool, tag = "11")] + pub hlajmgapkij: bool, + #[prost(message, optional, tag = "13")] + pub dejoimafmck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4762)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkhlbmdgdid { + #[prost(enumeration = "Lokpoceadpe", tag = "10")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6101)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lionjkbckie { + #[prost(message, repeated, tag = "3")] + pub aepbmmidoja: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "5")] + pub jjfpfmpjema: i32, + #[prost(enumeration = "Nlkamgeknni", tag = "8")] + pub bgpjniihanj: i32, + #[prost(int64, repeated, tag = "9")] + pub okicoglejec: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(int32, repeated, tag = "14")] + pub level: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecokadilgce { + #[prost(bool, tag = "2")] + pub gimehppjnbc: bool, + #[prost(uint32, tag = "8")] + pub njgdgcffkhg: u32, + #[prost(message, optional, tag = "9")] + pub mkeiflhafjh: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub delbliaafda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22815)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjoaigaalpg { + #[prost(bool, tag = "5")] + pub ekjmdindggg: bool, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub bhjhagccpib: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hifbncobddk { + #[prost(bool, tag = "2")] + pub lbmialpeoba: bool, + #[prost(uint32, tag = "3")] + pub cjcjonhpiio: u32, + #[prost(uint32, tag = "8")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "12")] + pub ilpjbepjdlp: u32, + #[prost(uint32, tag = "13")] + pub mpffbecchdh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5173)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejlfaihhjoo { + #[prost(uint32, tag = "5")] + pub chefconpkll: u32, + #[prost(uint32, tag = "7")] + pub nklajccimii: u32, + #[prost(uint32, tag = "9")] + pub abpaipkldop: u32, + #[prost(bool, tag = "10")] + pub dmedoehomkh: bool, + #[prost(bool, tag = "11")] + pub agfjleieocg: bool, + #[prost(uint32, tag = "12")] + pub enlkkemcpmh: u32, + #[prost(uint32, tag = "13")] + pub odgiokoodip: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28764)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmkldfjonjp { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(bool, tag = "9")] + pub pdfiiffmbeg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3319)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmadkcejmhe { + #[prost(uint32, tag = "8")] + pub gefbnnebkdb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6060)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijaokgfoajk { + #[prost(int32, tag = "6")] + pub gaplfmmgbfa: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1841)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmgkihempof { + #[prost(uint32, repeated, tag = "10")] + pub bknikidmahi: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fihmmdbbbkd { + #[prost(uint32, tag = "4")] + pub monster_id: u32, + #[prost(uint32, repeated, tag = "6")] + pub affix_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmjedjldeab { + #[prost(uint32, tag = "9")] + pub gfppmnlpoek: u32, + #[prost(uint32, tag = "10")] + pub item_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkopdhdhacn { + #[prost(bool, tag = "1")] + pub llhnlhfibhk: bool, + #[prost(uint32, tag = "3")] + pub iknfnnfkagf: u32, + #[prost(uint32, tag = "5")] + pub count: u32, + #[prost(uint32, tag = "6")] + pub exp: u32, + #[prost(uint32, tag = "10")] + pub odegodlnalf: u32, + #[prost(bool, tag = "12")] + pub nokebcooncg: bool, + #[prost(uint32, tag = "13")] + pub dbolcfdlklj: u32, + #[prost(bool, tag = "14")] + pub hihjhgaliae: bool, + #[prost(uint32, tag = "15")] + pub ckoccfdgcol: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eoflknjolbc { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(message, repeated, tag = "5")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub djcfmfedncg: u32, + #[prost(string, tag = "10")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "12")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(message, optional, tag = "15")] + pub blfkojlccoo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8666)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Manddegfcno { + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(message, optional, tag = "4")] + pub igmdelmihma: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7501)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nibcjbhcnge { + #[prost(uint32, tag = "6")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "7")] + pub kmkimdbfjka: u32, + #[prost(uint32, tag = "11")] + pub mkempaagnba: u32, + #[prost(message, repeated, tag = "14")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1920)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebgnpmpeoaf { + #[prost(message, optional, tag = "10")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub pos: ::core::option::Option, + #[prost(enumeration = "Ceocjhphedc", tag = "7")] + pub reason: i32, + #[prost(uint32, tag = "4")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agajgjafdaa { + #[prost(uint32, tag = "1")] + pub kaioccbnppa: u32, + #[prost(uint32, tag = "2")] + pub jbllllojnlp: u32, + #[prost(uint64, tag = "3")] + pub guid: u64, + #[prost(uint32, tag = "4")] + pub owner_entity_id: u32, + #[prost(uint32, tag = "5")] + pub jddamhceape: u32, + #[prost(bool, tag = "6")] + pub ahjafnnpchg: bool, + #[prost(bool, tag = "7")] + pub ahpaefcodfk: bool, + #[prost(uint32, repeated, tag = "8")] + pub eahfiofcond: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub cdoeckccgdp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaokjipofol { + #[prost(uint32, repeated, tag = "1")] + pub jfhonlmcjdd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub lpecfldoodf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfiedpgoeme { + #[prost(message, repeated, tag = "1")] + pub hdgfjoeaafh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub dphdagagbii: bool, + #[prost(uint32, tag = "4")] + pub ldkgglbbjge: u32, + #[prost(message, repeated, tag = "8")] + pub gefbfhaddbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub pphplchinjo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdjjpjgfgbo { + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "15")] + pub eialjbaengj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpkajlcojhh { + #[prost(message, repeated, tag = "1")] + pub bcogkegagnp: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub kbnhkamgpji: bool, + #[prost(uint32, tag = "12")] + pub entity_id: u32, + #[prost(uint32, tag = "13")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "14")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "15")] + pub aaopmgielok: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hciajfnhjaa { + #[prost(uint32, tag = "1")] + pub jefildjebaj: u32, + #[prost(uint32, repeated, tag = "5")] + pub fkgbkfahefk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub level: u32, + #[prost(uint32, tag = "11")] + pub neijigcohad: u32, + #[prost(uint32, tag = "12")] + pub eopffipdkgn: u32, + #[prost(uint32, tag = "13")] + pub ibcgffjgcid: u32, + #[prost(uint32, tag = "15")] + pub exp: u32, + #[prost(message, optional, tag = "42")] + pub jhoankbnpla: ::core::option::Option, + #[prost(message, optional, tag = "232")] + pub oglnpbnceco: ::core::option::Option, + #[prost(message, optional, tag = "1442")] + pub aiagdpedgki: ::core::option::Option, + #[prost(message, optional, tag = "1675")] + pub omdchnkniko: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcokgcmnlmo { + #[prost(map = "uint32, message", tag = "10")] + pub hapgckcdbph: ::std::collections::HashMap, + #[prost(uint32, tag = "12")] + pub igmibmmcgdj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21862)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbcccgfpfig { + #[prost(uint32, tag = "8")] + pub indikfknkab: u32, + #[prost(uint32, tag = "9")] + pub bboffphmobk: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5549)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnmjmmlbojc { + #[prost(uint32, tag = "3")] + pub item_id: u32, + #[prost(uint32, tag = "13")] + pub indikfknkab: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhbipkmoccg { + #[prost(message, repeated, tag = "1")] + pub gpmdiaecogh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub dphdagagbii: bool, + #[prost(message, repeated, tag = "8")] + pub oplajnckefn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub afjclenhanc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdddcfdogfj { + #[prost(bool, tag = "1")] + pub mkipokecnoo: bool, + #[prost(bool, tag = "8")] + pub jhelgijbjfm: bool, + #[prost(uint32, tag = "13")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2917)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bphbhdlanep {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djfflefdbmd { + #[prost(uint32, tag = "3")] + pub dnhdepnkigi: u32, + #[prost(uint32, tag = "7")] + pub pgkooedkeii: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkaldlcaalp { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28623)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gokolehikam { + #[prost(uint32, tag = "2")] + pub ohkidhnabib: u32, + #[prost(uint32, tag = "3")] + pub khcdhfjgkad: u32, + #[prost(message, optional, tag = "4")] + pub klcejlckheo: ::core::option::Option, + #[prost(enumeration = "Oeaoccjeope", tag = "6")] + pub ddiaamkbfda: i32, + #[prost(uint32, tag = "7")] + pub host_uid: u32, + #[prost(uint32, tag = "11")] + pub gaplfmmgbfa: u32, + #[prost(message, optional, tag = "15")] + pub odpgkhlmpdc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3103)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnnhdmhppcn { + #[prost(uint64, tag = "5")] + pub avatar_guid: u64, + #[prost(uint32, tag = "15")] + pub cafefeabnec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alehndhnknf { + #[prost(message, repeated, tag = "1")] + pub pidcdmbpnap: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "6")] + pub kppabonkdcm: u32, + #[prost(uint32, tag = "7")] + pub imchhikagkf: u32, + #[prost(uint32, repeated, tag = "8")] + pub jnkilghkhhj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub config_id: u32, + #[prost(bool, tag = "11")] + pub adngemfpdjp: bool, + #[prost(uint32, tag = "12")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdknacipafo { + #[prost(uint32, tag = "8")] + pub ndchhjemlbh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9266)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerDataNotify { + #[prost(string, tag = "4")] + pub nick_name: ::prost::alloc::string::String, + #[prost(uint32, tag = "5")] + pub region_id: u32, + #[prost(map = "uint32, message", tag = "7")] + pub prop_map: ::std::collections::HashMap, + #[prost(uint64, tag = "9")] + pub server_time: u64, + #[prost(bool, tag = "10")] + pub is_first_login_today: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21972)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdccophdppi { + #[prost(uint64, repeated, tag = "12")] + pub equip_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "14")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epaldpdcnab { + #[prost(bool, tag = "3")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "9")] + pub agloejebcdf: u32, + #[prost(uint32, tag = "11")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6483)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agneenfcpae { + #[prost(message, optional, tag = "2")] + pub monster_route: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6111)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dodonpngplj { + #[prost(uint32, tag = "11")] + pub cddphgddccn: u32, + #[prost(uint32, tag = "2")] + pub dkeobfmafpk: u32, + #[prost(uint32, tag = "15")] + pub scene_id: u32, + #[prost(uint32, tag = "5")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmjoechfkhn { + #[prost(uint32, tag = "1")] + pub npc_id: u32, + #[prost(uint32, tag = "8")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hakndhljddh { + #[prost(uint32, repeated, tag = "3")] + pub jolfibijfhd: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(message, repeated, tag = "8")] + pub dgakhnhmple: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "14")] + pub gnjdnihkbpi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25843)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klcadoliflh { + #[prost(uint32, tag = "2")] + pub kkladmflaoe: u32, + #[prost(uint32, tag = "3")] + pub pdlmkflekdl: u32, + #[prost(uint32, tag = "4")] + pub fjhhikoihka: u32, + #[prost(map = "uint32, message", tag = "5")] + pub bmahnicehjb: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "7")] + pub kkmmlpkbgdb: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub eddjnbfbdhn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub gaplfmmgbfa: u32, + #[prost(map = "uint32, message", tag = "11")] + pub fkempcfeeoi: ::std::collections::HashMap, + #[prost(bool, tag = "12")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "14")] + pub mhhcoedmpdp: u32, + #[prost( + oneof = "klcadoliflh::Detail", + tags = "93, 143, 245, 388, 418, 422, 508, 672, 836, 885, 1014, 1102, 1141, 1151, 1161, 1187, 1294, 1382, 1393, 1428, 1436, 1455, 1489, 1578, 1581, 1583, 1632, 1661, 1777, 1847, 1950, 1991, 2020, 2024, 2031" + )] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `KLCADOLIFLH`. +pub mod klcadoliflh { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "93")] + AcrobaticsBattleSettleInfo(super::Pelihnfbhii), + #[prost(message, tag = "143")] + InstableSpraySettleInfo(super::Bckkdmmkdbe), + #[prost(message, tag = "245")] + AutoTimeStopSettleInfo(super::Amgohioicdj), + #[prost(message, tag = "388")] + RoguelikeDungeonSettleInfo(super::Npankifllmm), + #[prost(message, tag = "418")] + MistTrialSettleInfo(super::Fccefpnfmbh), + #[prost(message, tag = "422")] + FungusFighterV3SettleInfo(super::Pafdoomkdoc), + #[prost(message, tag = "508")] + CrystalLinkSettleInfo(super::Eheldhcfekd), + #[prost(message, tag = "672")] + InspirationSpurtDungeonSettleInfo(super::Nclampegpkj), + #[prost(message, tag = "836")] + ChannellerSlabLoopDungeonResultInfo(super::Cbidamifmhj), + #[prost(message, tag = "885")] + TrialAvatarFirstPassDungeonNotify(super::Jaoomhpmaga), + #[prost(message, tag = "1014")] + RoleCombatSettleInfo(super::Bpkpoiknjki), + #[prost(message, tag = "1102")] + TowerLevelEndNotify(super::Ncomllokmnk), + #[prost(message, tag = "1141")] + FilmfestBattleSettleInfo(super::Hpblfcnddah), + #[prost(message, tag = "1151")] + GainBuffSettleInfo(super::Jbimmjpoeba), + #[prost(message, tag = "1161")] + BulletHellSettleInfo(super::Kehhnndneoo), + #[prost(message, tag = "1187")] + FungusFighterV2SettleInfo(super::Kmpeeohkimj), + #[prost(message, tag = "1294")] + SummerTimeV2DungeonSettleInfo(super::Bapabnfmoic), + #[prost(message, tag = "1382")] + BladeDanceSettleInfo(super::Bojfcgdlfgl), + #[prost(message, tag = "1393")] + WindFieldDungeonSettleInfo(super::Ppkagealonm), + #[prost(message, tag = "1428")] + EffigyChallengeV5SettleInfo(super::Blneklpbjjd), + #[prost(message, tag = "1436")] + TeamChainSettleInfo(super::Ihdioemfbco), + #[prost(message, tag = "1455")] + LostSamachurlSneakSettleInfo(super::Mcieobogomj), + #[prost(message, tag = "1489")] + StaminaFightSettleInfo(super::Pdhbohjedbj), + #[prost(message, tag = "1578")] + EffigyChallengeV2SettleInfo(super::Ipmkdmocnij), + #[prost(message, tag = "1581")] + PacmanSettleInfo(super::Hjnoajhjkoj), + #[prost(message, tag = "1583")] + BomberDodocoSettleInfo(super::Jookfddliem), + #[prost(message, tag = "1632")] + MultiCharacterDungeonSettleInfo(super::Cbdbnlccdmc), + #[prost(message, tag = "1661")] + FilmfestSniperSettleInfo(super::Ngamjokkjpb), + #[prost(message, tag = "1777")] + EffigyChallengeDungeonResultInfo(super::Oeohncnkhip), + #[prost(message, tag = "1847")] + GoalChallengeSettleInfo(super::Bgcjfmnoonb), + #[prost(message, tag = "1950")] + QuickTimeCombatSettleInfo(super::Eihakhjejpl), + #[prost(message, tag = "1991")] + RechargeDiskSettleInfo(super::Njhegccdbbc), + #[prost(message, tag = "2020")] + SlimeCannonSettleInfo(super::Pbodmijnhpg), + #[prost(message, tag = "2024")] + CharMasterSettleInfo(super::Fjhbjodapmi), + #[prost(message, tag = "2031")] + FairyTalesCombatSettleInfo(super::Paophedmofk), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(25830)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egpjikmgfdf { + #[prost(uint32, repeated, tag = "3")] + pub glaplkfandj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25683)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bokpaogmlho { + #[prost(map = "uint32, uint32", tag = "3")] + pub eenekibhcei: ::std::collections::HashMap, + #[prost(message, repeated, tag = "6")] + pub ebjfflnfffg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub pbaakoninkm: u32, + #[prost(uint32, tag = "9")] + pub fccfdjejbif: u32, + #[prost(map = "uint32, uint32", tag = "14")] + pub lffnfcpcljd: ::std::collections::HashMap, + #[prost(message, optional, tag = "15")] + pub lnfdbmfeafg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Einfgacgbhh { + #[prost(uint32, tag = "1")] + pub nojpnjbecid: u32, + #[prost(uint32, tag = "2")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhndpkdbehp { + #[prost(uint32, tag = "3")] + pub end_time: u32, + #[prost(map = "uint32, uint32", tag = "10")] + pub nemhjgcaneh: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edaifeebmfk { + #[prost(bool, tag = "2")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "3")] + pub config_id: u32, + #[prost(map = "uint32, uint32", tag = "4")] + pub hiiimfnoofi: ::std::collections::HashMap, + #[prost(uint32, tag = "9")] + pub group_id: u32, + #[prost(uint32, tag = "10")] + pub eoapdcljcee: u32, + #[prost(uint32, tag = "14")] + pub lgcopnjbcnf: u32, + #[prost(bool, tag = "15")] + pub lemonpimbhk: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1166)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blejhaakklf { + #[prost(uint32, tag = "6")] + pub dofjfikhlbl: u32, + #[prost(bool, tag = "7")] + pub ankcbommojb: bool, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub kmamahcapee: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hopjhcldoka { + #[prost(uint32, tag = "6")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "12")] + pub eepfjadodpa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21487)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omcklnfdjad { + #[prost(message, optional, tag = "9")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29366)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Apkplmbopfd { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6235)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jeakjjjdokd { + #[prost(uint32, tag = "3")] + pub mifaoghmdlj: u32, + #[prost(message, repeated, tag = "5")] + pub bjpmjkcjiem: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "9")] + pub kgimmencgmj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub dfpnkfekiig: u32, + #[prost(bool, tag = "15")] + pub kplnmnbogjo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3742)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EnterScenePeerNotify { + #[prost(uint32, tag = "2")] + pub enter_scene_token: u32, + #[prost(uint32, tag = "3")] + pub host_peer_id: u32, + #[prost(uint32, tag = "7")] + pub peer_id: u32, + #[prost(uint32, tag = "15")] + pub dest_scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25889)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfhpmcpaenk { + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1630)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgnmhndfjnb { + #[prost(message, repeated, tag = "12")] + pub bnlkkidlbme: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hheccplejnd { + #[prost(message, repeated, tag = "2")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22150)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpoigoeknfn { + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmjiokcbmai { + #[prost(message, optional, tag = "4")] + pub flbknbnnpgg: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub nocpccndhch: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub emiaehlihcb: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub omfkffjaodo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egcpbnfokad { + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(bool, tag = "12")] + pub gnbpjchmcja: bool, + #[prost(bool, tag = "15")] + pub mggkekdeheo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24469)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbddpalmimd { + #[prost(uint32, tag = "10")] + pub eddfmjmpnjp: u32, + #[prost(uint32, tag = "14")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hiljdmkkpcn { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "13")] + pub phkpfjajfkj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28292)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnacaimdobp { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nggkfpemapd { + #[prost(uint32, tag = "1")] + pub lmjnokajeki: u32, + #[prost(uint32, tag = "2")] + pub pafojlhcaeh: u32, + #[prost(enumeration = "Gomepmglpfo", tag = "4")] + pub fbbbjnhiplf: i32, + #[prost(message, optional, tag = "6")] + pub ancgmohdnhc: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub fbgjlogekgn: u32, + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(uint32, tag = "11")] + pub end_time: u32, + #[prost(uint32, tag = "14")] + pub ojoapinglno: u32, + #[prost(message, repeated, tag = "15")] + pub oiiaeanbakl: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "538")] + pub ndmfjigpijg: ::core::option::Option, + #[prost( + oneof = "nggkfpemapd::Gcbckcbnpmn", + tags = "3, 5, 7, 10, 12, 13, 21, 33, 35, 83, 87, 105, 190, 247, 256, 257, 340, 370, 377, 413, 438, 476, 485, 535, 617, 654, 656, 664, 701, 755, 757, 762, 937, 995, 996, 1052, 1085, 1139, 1154, 1160, 1174, 1312, 1329, 1335, 1336, 1492, 1668, 1732, 1735, 1763, 1772, 1776, 1857, 1890, 1894, 1902, 1928" + )] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `NGGKFPEMAPD`. +pub mod nggkfpemapd { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "3")] + FallInfo(super::Aaeoemigkpc), + #[prost(message, tag = "5")] + HideAndSeekInfo(super::Lndmeehgmjn), + #[prost(message, tag = "7")] + BrokenFloorInfo(super::Lhndpkdbehp), + #[prost(message, tag = "10")] + FlowerInfo(super::Pcgcnlcjmfd), + #[prost(message, tag = "12")] + BalloonInfo(super::Fpgnfkfifae), + #[prost(message, tag = "13")] + BulletInfo(super::Dadokgjpmid), + #[prost(message, tag = "21")] + IslandPartySailInfo(super::Ifbejfokpcc), + #[prost(message, tag = "33")] + HideAndSeekV4Info(super::Lhcbnafmnkf), + #[prost(message, tag = "35")] + TargetShootingInfo(super::Fclaiignofd), + #[prost(message, tag = "83")] + InstableSprayInfo(super::Bkaekoakool), + #[prost(message, tag = "87")] + HomeSeekFurnitureInfo(super::Pdbcekidaki), + #[prost(message, tag = "105")] + CharAmusementInfo(super::Mikcomiefal), + #[prost(message, tag = "190")] + SalvageEscortInfo(super::Dcieocipddc), + #[prost(message, tag = "247")] + FungusFighterTrainingInfo(super::Jcihiegpeai), + #[prost(message, tag = "256")] + BoxMatchInfo(super::Mmhgimhnkdf), + #[prost(message, tag = "257")] + QuickTimeCombatInfo(super::Egjjdihliko), + #[prost(message, tag = "340")] + AnimalViewInfo(super::Kmcibogjcbb), + #[prost(message, tag = "370")] + TreasureSeelieInfo(super::Lodcihbpnom), + #[prost(message, tag = "377")] + SandwormInfo(super::Doopeadjbgj), + #[prost(message, tag = "413")] + RemusArenaInfo(super::Fgedmkglgio), + #[prost(message, tag = "438")] + CrystalLinkInfo(super::Omcgmpijjkl), + #[prost(message, tag = "476")] + IrodoriMasterInfo(super::Njejjdcjlik), + #[prost(message, tag = "485")] + AkaFesRhythmInfo(super::Cdaadhnagcj), + #[prost(message, tag = "535")] + TreasureHuntV4Info(super::Dhlbkbinian), + #[prost(message, tag = "617")] + EffigyChallengeInfo(super::Dabjaadfkod), + #[prost(message, tag = "654")] + CoinCollectInfo(super::Abegkkekjmi), + #[prost(message, tag = "656")] + MuqadasPotionInfo(super::Dfikeaenpha), + #[prost(message, tag = "664")] + IslandPartyDownHillInfo(super::Onihlhkmikb), + #[prost(message, tag = "701")] + HandballInfo(super::Cdffjficdhk), + #[prost(message, tag = "755")] + InspirationSpurtInfo(super::Pnghljlknfi), + #[prost(message, tag = "757")] + TeamChainInfo(super::Omhacoggfpl), + #[prost(message, tag = "762")] + FlightGearInfo(super::Kooplhiemeo), + #[prost(message, tag = "937")] + SlimeCannonInfo(super::Kiffddcgdbd), + #[prost(message, tag = "995")] + PhotoInfo(super::Eaejoocjffl), + #[prost(message, tag = "996")] + FungusFighterV3Info(super::Ipgcfedkill), + #[prost(message, tag = "1052")] + FungusFighterCaptureInfo(super::Cpknppfipnd), + #[prost(message, tag = "1085")] + BuoyantCombatInfo(super::Aoachoghmcm), + #[prost(message, tag = "1139")] + IslandPartyRaftInfo(super::Bajhgoimcce), + #[prost(message, tag = "1154")] + FungusFighterV2Info(super::Cbliolnalik), + #[prost(message, tag = "1160")] + JourneyDiceInfo(super::Abhpgdeogag), + #[prost(message, tag = "1174")] + SummerTimeV2BoatInfo(super::Kplkocfhdjo), + #[prost(message, tag = "1312")] + SorushTrialPhotoMatchInfo(super::Nfggicfddfj), + #[prost(message, tag = "1329")] + AutoTimeStopInfo(super::Ildjcdpgjlc), + #[prost(message, tag = "1335")] + BounceConjuringInfo(super::Hohjmannnmg), + #[prost(message, tag = "1336")] + WindFieldInfo(super::Ghknjbjhfpl), + #[prost(message, tag = "1492")] + BoatMultiInfo(super::Jdmffbambgh), + #[prost(message, tag = "1668")] + VintageHuntingInfo(super::Dkkanfffpkd), + #[prost(message, tag = "1732")] + AkaFesArchaeologyInfo(super::Lhohohmibel), + #[prost(message, tag = "1735")] + PacmanInfo(super::Pggpfnpdpln), + #[prost(message, tag = "1763")] + LuminanceStoneChallengeInfo(super::Fjogdboiccg), + #[prost(message, tag = "1772")] + SumoInfo(super::Mieamhfknkj), + #[prost(message, tag = "1776")] + HomeBalloonInfo(super::Eafjlampfhi), + #[prost(message, tag = "1857")] + FilmfestSniperInfo(super::Innefldgbap), + #[prost(message, tag = "1890")] + FilmfestBattleInfo(super::Nfohfckpemo), + #[prost(message, tag = "1894")] + SorushTrialHitmanInfo(super::Podpbjoalmc), + #[prost(message, tag = "1902")] + SalvagePreventInfo(super::Eegmnmgojjo), + #[prost(message, tag = "1928")] + DuelHeartInfo(super::Iphepklgfhh), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dplgllnkfgd { + #[prost(uint32, tag = "1")] + pub kbjnlbkmedp: u32, + #[prost(message, optional, tag = "9")] + pub gmolliebbfe: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub kpbecglgibm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1835)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flgddbbkcgc {} +#[derive(proto_gen::CmdID)] +#[cmdid(2483)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oeeiloeebkp { + #[prost(uint32, tag = "2")] + pub pkhoolbkcoc: u32, + #[prost(uint32, repeated, tag = "14")] + pub hljohdkcbjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9037)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eafomhgedck { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(map = "uint32, message", tag = "7")] + pub kpdefilcncl: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmfhmpklnbd { + #[prost(bool, tag = "6")] + pub kineadbikjb: bool, + #[prost(uint32, tag = "11")] + pub ondfeaoddnf: u32, + #[prost(uint32, tag = "14")] + pub chcgfdlnjob: u32, + #[prost(bool, tag = "15")] + pub neieikilook: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epnhgpbmogc { + #[prost(uint32, tag = "1")] + pub lhdahdneppl: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgmeonglckm { + #[prost(uint32, tag = "1")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "6")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "12")] + pub bmjceijjkcb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20143)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geahomhdcaj { + #[prost(float, tag = "1")] + pub heghiolionf: f32, + #[prost(uint32, tag = "3")] + pub logfieefjah: u32, + #[prost(map = "uint32, message", tag = "4")] + pub diaeefgfpoc: ::std::collections::HashMap, + #[prost(bool, tag = "5")] + pub aekdpkkpagj: bool, + #[prost(uint32, tag = "7")] + pub phkcfckcpfb: u32, + #[prost(uint32, tag = "8")] + pub jgihcibojpn: u32, + #[prost(uint64, repeated, tag = "9")] + pub nmbemjimjob: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub hmcpcnggnno: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "12")] + pub llkemfigkeo: u32, + #[prost(uint32, tag = "13")] + pub gaplfmmgbfa: u32, + #[prost(uint64, repeated, tag = "14")] + pub hhbnnbdgfim: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub fojbpljlmcd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "950")] + pub donadappdog: u32, + #[prost(uint32, tag = "1426")] + pub jhdoodjoeed: u32, + #[prost(bool, tag = "1980")] + pub fdgoboihcbp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26304)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccdpabnmpeb { + #[prost(uint32, tag = "4")] + pub parent_quest_id: u32, + #[prost(message, repeated, tag = "10")] + pub ahhodeacdal: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25376)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahjgojobaik { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9558)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdobhcmkhlp { + #[prost(uint32, tag = "12")] + pub bmbbdjpdjnd: u32, + #[prost(uint32, tag = "7")] + pub target_uid: u32, + #[prost(uint32, tag = "2")] + pub mhoccahhmge: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29802)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aplmkgiaijn { + #[prost(uint32, repeated, tag = "14")] + pub jnkilghkhhj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5759)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpicbfmmgik { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub config_id: u32, + #[prost(enumeration = "Hbcjgnlbden", tag = "11")] + pub mcdfojkmidb: i32, + #[prost(uint32, repeated, tag = "12")] + pub naialecdmjp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub gekkbbagfap: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27824)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Daaipbodnki { + #[prost(uint32, tag = "4")] + pub ehlcahjfoei: u32, + #[prost(uint32, tag = "8")] + pub game_time: u32, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7544)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikheboohahm { + #[prost(uint32, repeated, tag = "12")] + pub ifgfgpikklj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub mgedagigibk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmldpnmhmhi { + #[prost(bool, tag = "3")] + pub mdgjjofokap: bool, + #[prost(bool, tag = "7")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub ppbamnfheje: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25491)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anafmpahapn { + #[prost(bool, tag = "1")] + pub bliakncjplh: bool, + #[prost(uint32, repeated, tag = "15")] + pub fjbeecochda: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmlhdjibdfk { + #[prost(uint32, tag = "3")] + pub ecbddjlppmk: u32, + #[prost(float, tag = "7")] + pub hfhkmeopfbi: f32, + #[prost(float, tag = "10")] + pub dadjpjbelmo: f32, + #[prost(float, tag = "13")] + pub hdjalidkdpn: f32, + #[prost(float, tag = "14")] + pub cclcogclhko: f32, + #[prost(uint32, tag = "15")] + pub kihhjkcggcc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fagiafejoje { + #[prost(uint32, tag = "2")] + pub fjmabklfmej: u32, + #[prost(uint32, tag = "4")] + pub phodjhkgcjd: u32, + #[prost(bool, tag = "5")] + pub is_add: bool, + #[prost(oneof = "fagiafejoje::Detail", tags = "1611, 1729, 1809, 1981")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `FAGIAFEJOJE`. +pub mod fagiafejoje { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "1611")] + AvatarResult(super::Ohjdhpdpkng), + #[prost(message, tag = "1729")] + CardResult(super::Jecnlammpfi), + #[prost(message, tag = "1809")] + CoinResult(super::Lknialgdpbj), + #[prost(message, tag = "1981")] + AvatarAvailableCountResult(super::Lpanilcfgob), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(28375)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgbldppcpmb { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "5")] + pub mfmlakbiaed: i32, + #[prost(enumeration = "Jjhggdcjhji", tag = "12")] + pub mgcabaeicco: i32, + #[prost(uint64, tag = "13")] + pub dcompdppdpo: u64, + #[prost(oneof = "dgbldppcpmb::Koghknfabpa", tags = "2")] + pub koghknfabpa: ::core::option::Option, + #[prost(oneof = "dgbldppcpmb::Gcmkmeijkhj", tags = "922")] + pub gcmkmeijkhj: ::core::option::Option, +} +/// Nested message and enum types in `DGBLDPPCPMB`. +pub mod dgbldppcpmb { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Koghknfabpa { + #[prost(message, tag = "2")] + MusicRecord(super::Mhfikahpbmm), + } + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcmkmeijkhj { + #[prost(message, tag = "922")] + MusicBriefInfo(super::Pcdlglmdhai), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmhlcfmhpbg { + #[prost(uint32, repeated, tag = "4")] + pub lpecfldoodf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub lmedilegobp: u32, + #[prost(uint32, tag = "12")] + pub phpfppidjkj: u32, + #[prost(uint32, repeated, tag = "14")] + pub jfhonlmcjdd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1301)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hoechlapbdd { + #[prost(uint32, tag = "7")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "3")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28917)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Daonibjfejf {} +#[derive(proto_gen::CmdID)] +#[cmdid(5359)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iedadgpekhb { + #[prost(uint32, repeated, tag = "3")] + pub clpdklnbcme: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Elkbkgfhaol", tag = "1")] + pub jalbjdenpkj: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2894)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekopoecaegc { + #[prost(bool, tag = "14")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23027)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmgabgnaanl { + #[prost(uint32, repeated, tag = "8")] + pub mkelecopffb: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub honmjbadohm: bool, + #[prost(bool, tag = "7")] + pub npccimcpaai: bool, + #[prost(uint32, tag = "6")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26188)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eojgpecncdf { + #[prost(uint32, repeated, tag = "3")] + pub acjpdgmfgnl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub cidoflodloe: u32, + #[prost(float, repeated, tag = "9")] + pub gbaglgmgjhj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub r#type: i32, + #[prost(string, repeated, tag = "15")] + pub peagfmgmeah: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4720)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpjfcikolib { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub pdlmkflekdl: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbhmaicjjpo { + #[prost(enumeration = "Bheiacalnaf", tag = "1")] + pub state: i32, + #[prost(uint32, tag = "2")] + pub cbokjobkcjo: u32, + #[prost(message, repeated, tag = "4")] + pub dkcgnjnlmom: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub fhgnbdadpbl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub oboopjlpdni: u32, + #[prost(uint32, repeated, tag = "8")] + pub pjnjlnpdpkg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub gdhgpcfblbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub jofebpfeijl: u32, + #[prost(map = "uint32, uint32", tag = "13")] + pub ifdieidjpoh: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "14")] + pub fdhmflaaeog: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub ainlmkbchfg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23204)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljlajdhfieh { + #[prost(uint32, tag = "9")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21541)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcggnfiokil { + #[prost(uint32, tag = "1")] + pub parent_quest_id: u32, + #[prost(uint64, tag = "5")] + pub jjdeofcjkjm: u64, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipgcfedkill { + #[prost(uint32, tag = "1")] + pub cidhmchnneh: u32, + #[prost(message, repeated, tag = "2")] + pub bhedcanjoed: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub glhmmnjigfg: u32, + #[prost(uint64, tag = "4")] + pub fjpdffcpjik: u64, + #[prost(uint32, tag = "8")] + pub mojdcgignno: u32, + #[prost(uint32, tag = "11")] + pub hbedecbnhoa: u32, + #[prost(uint32, tag = "12")] + pub ecnkgkfhfdf: u32, + #[prost(string, tag = "13")] + pub lgnfafmphkd: ::prost::alloc::string::String, + #[prost(float, tag = "14")] + pub ledgjdcjimk: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Limeljbmapl { + #[prost(uint32, tag = "10")] + pub dmlcigbdpii: u32, + #[prost(bool, tag = "11")] + pub okiggnfhlgg: bool, + #[prost(uint64, tag = "13")] + pub npdklmfoofd: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnphcmpcmnl { + #[prost(message, optional, tag = "7")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "8")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5229)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kadmdnimakm { + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub pnallkjlnlc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26546)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pddgagmojac {} +#[derive(proto_gen::CmdID)] +#[cmdid(28033)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bblpobkneka {} +#[derive(proto_gen::CmdID)] +#[cmdid(29989)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djhafbpnpee { + #[prost(string, tag = "6")] + pub epfpbkmomca: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24925)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdafogcnoea { + #[prost(uint32, tag = "1")] + pub hajbdmhdgig: u32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21253)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Niggcfmfkpn { + #[prost(string, tag = "8")] + pub dppibjfomoc: ::prost::alloc::string::String, + #[prost(uint32, tag = "4")] + pub jchhllebmja: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27713)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlmgdbldmgl { + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub jchjpafcofh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3545)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fofdpmohgee { + #[prost(message, repeated, tag = "2")] + pub miccoobjini: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub bbhfjfebgap: ::core::option::Option, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29815)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oichhkcllga { + #[prost(uint32, tag = "6")] + pub dest_scene_id: u32, + #[prost(message, optional, tag = "7")] + pub hfadabifeog: ::core::option::Option, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djjpkpbcjci { + #[prost(uint32, tag = "6")] + pub guid: u32, + #[prost(message, repeated, tag = "9")] + pub gfnfjenpgmj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olcndpkgbef { + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, + #[prost(uint32, repeated, tag = "3")] + pub peebehmccbb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub degakeklgem: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjigmgechep { + #[prost(enumeration = "Hmocjieppll", tag = "1")] + pub abclhaaljpl: i32, + #[prost(uint64, tag = "2")] + pub padclipinad: u64, + #[prost(uint64, tag = "3")] + pub cgammlododp: u64, + #[prost(bool, tag = "4")] + pub emhafoepfmn: bool, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub peer_id: u32, + #[prost(uint64, tag = "7")] + pub clkepicnjjd: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8274)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Immgphliepp { + #[prost(uint32, repeated, tag = "10")] + pub fnaoacpmmkd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub fdflphcbgef: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3775)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcoccdncfpn { + #[prost(uint32, tag = "1")] + pub ckoccfdgcol: u32, + #[prost(bool, tag = "5")] + pub dggckmikbmo: bool, + #[prost(message, optional, tag = "10")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20641)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkclfegjfkc { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "15")] + pub avatar_id: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7339)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aldbcbcdbki { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub omgchbachci: u32, + #[prost(uint32, tag = "15")] + pub cnkddkikglg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4123)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hajpnelhlba { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5719)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fekepmpcjkc { + #[prost(uint32, tag = "2")] + pub gejgkajfdcd: u32, + #[prost(uint32, tag = "8")] + pub dlebdhokopp: u32, + #[prost(message, optional, tag = "12")] + pub kkaccpnohcg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Apdkaklmeig { + #[prost(uint32, repeated, tag = "4")] + pub ghncicaimjg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub hhppponmcmj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Liijodfaabf { + #[prost(uint32, tag = "3")] + pub knccndeefmn: u32, + #[prost(uint32, repeated, tag = "6")] + pub fdjpppfghne: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(380)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poeddpgnpgo { + #[prost(uint32, repeated, tag = "6")] + pub jbgeapjbnjo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27481)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ceppginnkmn { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(map = "uint64, uint32", tag = "8")] + pub lnmhakapili: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5099)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lninjipjeob {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnkcdiomjme { + #[prost(message, repeated, tag = "10")] + pub eloilboekpk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jookfddliem { + #[prost(uint32, tag = "8")] + pub game_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22960)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fieheggjpmg { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26404)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbgbnckpcnm {} +#[derive(proto_gen::CmdID)] +#[cmdid(1686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kljnnncfblh { + #[prost(string, tag = "1")] + pub lldpnociddf: ::prost::alloc::string::String, + #[prost(uint32, tag = "2")] + pub kjlbepdnldm: u32, + #[prost(enumeration = "PlayerDieType", tag = "3")] + pub jdfbfdifmmj: i32, + #[prost(uint32, tag = "4")] + pub life_state: u32, + #[prost(message, repeated, tag = "5")] + pub server_buff_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub plhjikjloak: u32, + #[prost(uint64, tag = "11")] + pub avatar_guid: u64, + #[prost(string, repeated, tag = "14")] + pub epgobhiedoi: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20652)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkmnfhdincb { + #[prost(uint32, tag = "15")] + pub gldnnfocdem: u32, + #[prost(uint32, tag = "7")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5859)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfglgcjlmbe { + #[prost(message, optional, tag = "9")] + pub ejlcmhihmfk: ::core::option::Option, + #[prost(bool, tag = "10")] + pub honmjbadohm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Facifolpjjc { + #[prost(uint32, tag = "7")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28046)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njohaigicch { + #[prost(uint64, repeated, tag = "6")] + pub edabeidcffo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub config_id: u32, + #[prost(uint32, tag = "11")] + pub pmmcjppheke: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20868)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbebgagngeg { + #[prost(uint64, repeated, tag = "7")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "5")] + pub cur_avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4851)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amphpphmamm { + #[prost(uint32, repeated, tag = "10")] + pub jfkeinkjiia: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24648)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oaedmoebeof { + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7322)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Innkieghhch { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "7")] + pub ankcbommojb: bool, + #[prost(bool, tag = "14")] + pub knooopkppec: bool, + #[prost(uint32, tag = "15")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5623)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkkfgmfbebi { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "8")] + pub aaolkibhbfn: u32, + #[prost(uint32, tag = "10")] + pub fenjhmlgkie: u32, + #[prost(bool, tag = "11")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub pnallkjlnlc: u32, + #[prost(uint32, tag = "13")] + pub lnbbmiahhnd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amcomlpiebn { + #[prost(map = "uint32, uint32", tag = "3")] + pub hfldohccdlo: ::std::collections::HashMap, + #[prost(bool, tag = "11")] + pub jedignaellh: bool, + #[prost(uint32, tag = "13")] + pub obfcjpojmom: u32, + #[prost(message, repeated, tag = "15")] + pub dahkfdaacll: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjiniklcgpb { + #[prost(message, repeated, tag = "2")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1952)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmaondhffhh { + #[prost(message, repeated, tag = "7")] + pub cadonpdcdbg: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub eefmhkemfej: bool, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "10")] + pub ghnmdakolkf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1786)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afackfjmohk { + #[prost(uint32, tag = "10")] + pub avatar_id: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(363)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaikmbmmklp { + #[prost(message, optional, tag = "5")] + pub laicdpfdimh: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub feccpddaagm: u32, + #[prost(uint32, tag = "3")] + pub mccbeklmcfn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjmjcddodmh { + #[prost(bool, tag = "1")] + pub gafmflgblcf: bool, + #[prost(uint32, tag = "2")] + pub ojoapinglno: u32, + #[prost(string, tag = "3")] + pub version: ::prost::alloc::string::String, + #[prost(uint32, tag = "4")] + pub oommiflemob: u32, + #[prost(message, optional, tag = "5")] + pub cjdionfgocb: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub ilpjmahlgdk: ::core::option::Option, + #[prost(bool, tag = "7")] + pub phfkpmbcijo: bool, + #[prost(uint32, tag = "8")] + pub ndjacelknee: u32, + #[prost(uint32, tag = "9")] + pub hkeeinbhfhm: u32, + #[prost(bool, tag = "10")] + pub cefglehdbeh: bool, + #[prost(enumeration = "Aagpkjdpblk", repeated, tag = "11")] + pub ckolihhmkdh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub hgaaipejflh: u32, + #[prost(uint32, repeated, tag = "13")] + pub ooboklehccd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub ijffkcgiaoj: u32, + #[prost(uint32, tag = "15")] + pub gnakoniijho: u32, + #[prost(message, optional, tag = "576")] + pub dpebbflaadc: ::core::option::Option, + #[prost(message, optional, tag = "617")] + pub lnigejebjan: ::core::option::Option, + #[prost(uint32, repeated, tag = "1239")] + pub nmeemocpfme: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdljjhhncie { + #[prost(bool, tag = "1")] + pub hbcmlfpmelb: bool, + #[prost(bool, tag = "2")] + pub lamkamgahil: bool, + #[prost(uint32, tag = "9")] + pub ldfagghamln: u32, + #[prost(uint32, tag = "10")] + pub gilcdealjoo: u32, + #[prost(bool, tag = "15")] + pub ikpiilofdbc: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hknjfhlpkba { + #[prost(bool, tag = "3")] + pub eialjbaengj: bool, + #[prost(bool, tag = "9")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okidfhklfha { + #[prost(message, optional, tag = "5")] + pub ibjhbimbaim: ::core::option::Option, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgccpkjgfmk { + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghdaigogfil { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(oneof = "ghdaigogfil::Detail", tags = "2, 3")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `GHDAIGOGFIL`. +pub mod ghdaigogfil { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "2")] + Reliquary(super::Reliquary), + #[prost(message, tag = "3")] + Weapon(super::Weapon), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(21121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkoffpmnpod { + #[prost(uint32, repeated, tag = "14")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "5")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgdlhlghiib { + #[prost(message, repeated, tag = "8")] + pub hegnigachmi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub apnlofpnahn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26085)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jokcclihddc { + #[prost(bool, tag = "3")] + pub lkcaeopcfoc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5973)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbcbmmohlof { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28159)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jocppafpfjo { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdeajgdjfen { + #[prost(bool, tag = "1")] + pub cgjoghablff: bool, + #[prost(float, tag = "2")] + pub nkcjicgiodo: f32, + #[prost(float, tag = "3")] + pub jolhmmdldhg: f32, + #[prost(bool, tag = "4")] + pub dcmiecgogpb: bool, + #[prost(float, tag = "6")] + pub speed: f32, + #[prost(int32, tag = "7")] + pub pdlkmpbkane: i32, + #[prost(float, tag = "8")] + pub oknknaaojgn: f32, + #[prost(uint32, tag = "10")] + pub entity_id: u32, + #[prost(float, tag = "11")] + pub gbaccbjjijc: f32, + #[prost(float, tag = "12")] + pub fckcbcmkkde: f32, + #[prost(string, tag = "13")] + pub fjgjagcecjg: ::prost::alloc::string::String, + #[prost(message, optional, tag = "14")] + pub iaknhjgcpgl: ::core::option::Option, + #[prost(uint32, repeated, tag = "15")] + pub lncigfcjcaa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phjjchbpkmp { + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, + #[prost(uint64, tag = "8")] + pub jikngogcaik: u64, + #[prost(bool, tag = "11")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glbbfgllhak { + #[prost(uint32, tag = "10")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "11")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24774)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plkmdblpfpd { + #[prost(uint32, tag = "3")] + pub mibogmnagmf: u32, + #[prost(message, repeated, tag = "5")] + pub pknajgcbnfi: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub laadegdmnli: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub bdempbhmflo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub giejpalljba: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub bpiedpefgfj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5904)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdfbmmpnomp { + #[prost(message, optional, tag = "4")] + pub plbdagkfmbi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9425)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbimilnjpcf { + #[prost(uint32, tag = "13")] + pub omgchbachci: u32, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8141)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odpchnmajmn { + #[prost(enumeration = "Ialdlppfide", tag = "6")] + pub epcbaobgodi: i32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub iljgpojfhdo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7149)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgbodcljbjf { + #[prost(bool, tag = "11")] + pub pdfiiffmbeg: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pplocjopfic { + #[prost(uint32, tag = "3")] + pub kodeiacdodk: u32, + #[prost(uint32, tag = "5")] + pub oicebegencm: u32, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29344)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjckeaefaag { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(285)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eofmppihhah { + #[prost(bool, tag = "10")] + pub ghjmcffdfdd: bool, + #[prost(enumeration = "Mbmckhfkokf", tag = "14")] + pub akaecgkdaek: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25192)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnkchpamall { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(float, tag = "11")] + pub dikklmdpman: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgildeakcle { + #[prost(uint32, tag = "1")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(message, repeated, tag = "8")] + pub kjjdfphkfeb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub peajinifghm: u32, + #[prost(uint32, tag = "11")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24249)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpklilcbmgj { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3045)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npncpfjdbfl {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcciopjepfd { + #[prost(uint32, tag = "3")] + pub eeeokadehdg: u32, + #[prost(uint32, tag = "4")] + pub kfaedplfjkl: u32, + #[prost(uint32, tag = "12")] + pub jgihcibojpn: u32, + #[prost(uint32, tag = "13")] + pub bfpnccabcio: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbilityEmbryo { + #[prost(uint32, tag = "1")] + pub ability_id: u32, + #[prost(fixed32, tag = "2")] + pub ability_name_hash: u32, + #[prost(fixed32, tag = "3")] + pub ability_override_name_hash: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22364)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfgiaaeipbo { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Goolnofhkpc { + #[prost(uint32, tag = "4")] + pub eopffipdkgn: u32, + #[prost(message, repeated, tag = "5")] + pub olpbbgienff: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub eialjbaengj: bool, + #[prost(bool, tag = "8")] + pub lbmialpeoba: bool, + #[prost(bool, repeated, tag = "11")] + pub haaknmoamib: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub pjgilfddobn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "15")] + pub hkeeinbhfhm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29248)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pllplbkifin {} +#[derive(proto_gen::CmdID)] +#[cmdid(7412)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhodfbdlkam { + #[prost(uint32, tag = "2")] + pub kafapfjllgp: u32, + #[prost(uint32, tag = "5")] + pub cenhkjdffda: u32, + #[prost(uint32, repeated, tag = "7")] + pub kcecodplble: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub aeiioogdpgj: u32, + #[prost(message, optional, tag = "11")] + pub fodjcjdbfii: ::core::option::Option, + #[prost(enumeration = "Hkkcdiccimi", tag = "12")] + pub nkiolhkgjco: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25492)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acohljeplnk { + #[prost(uint32, tag = "10")] + pub gdmfjbaejdd: u32, + #[prost(bool, tag = "13")] + pub ijpincjjmgi: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dghffpkkclo { + #[prost(enumeration = "Jailcnefodi", tag = "2")] + pub avatar_type: i32, + #[prost(uint32, tag = "7")] + pub fjhhikoihka: u32, + #[prost(uint64, tag = "15")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28746)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djnnalcnmkp { + #[prost(uint32, tag = "3")] + pub hkfgfkojigm: u32, + #[prost(uint32, tag = "8")] + pub bkiinnhbfdm: u32, + #[prost(uint32, tag = "12")] + pub khmcijmiopj: u32, + #[prost(map = "uint32, uint32", tag = "13")] + pub blolpfcbdin: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbllgefkocb { + #[prost(uint32, repeated, tag = "4")] + pub jfhonlmcjdd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8550)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcadppfpigp { + #[prost(string, repeated, tag = "3")] + pub mjifbdojhmk: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6971)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejldkjhcgbp { + #[prost(uint32, tag = "4")] + pub lbklfcdfpdm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkpkmnoghlf { + #[prost(message, optional, tag = "3")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23622)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhiomicmaad { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24158)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpfoidhenpj { + #[prost(uint32, repeated, tag = "8")] + pub gfomhmmlged: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6277)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmokgjllplo { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4302)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jiamlbjfaji { + #[prost(enumeration = "StoreType", tag = "4")] + pub store_type: i32, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint64, tag = "13")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29175)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngalodmccel { + #[prost(uint32, tag = "5")] + pub eahfokifjoj: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1461)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpjmmmofpcl { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(enumeration = "Noipnepdipn", tag = "5")] + pub epcbaobgodi: i32, + #[prost(map = "uint32, uint32", tag = "7")] + pub japbdkkhpjh: ::std::collections::HashMap, + #[prost(message, optional, tag = "14")] + pub jilfekjaimc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28500)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ephfnmhiepl { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26753)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajjjljmjmjd { + #[prost(uint32, tag = "3")] + pub param: u32, + #[prost(uint32, tag = "4")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "5")] + pub ohkidhnabib: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub mbkaongpdcn: u32, + #[prost(enumeration = "Oeaoccjeope", tag = "9")] + pub ddiaamkbfda: i32, + #[prost(uint32, tag = "13")] + pub cenhkjdffda: u32, + #[prost(message, repeated, tag = "544")] + pub mjdllgjhadg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26438)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Becchmcndoj {} +#[derive(proto_gen::CmdID)] +#[cmdid(22194)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjciibmahpa { + #[prost(uint32, tag = "11")] + pub lhdahdneppl: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phpfnobfnlj { + #[prost(uint32, tag = "7")] + pub uid: u32, + #[prost(uint32, repeated, tag = "8")] + pub fikgdofabee: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5768)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkdjkiibobb { + #[prost(uint32, tag = "8")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(message, repeated, tag = "13")] + pub fphoohiffnn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23302)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkcfcnbhcii { + #[prost(uint32, tag = "3")] + pub r#type: u32, + #[prost(int32, repeated, tag = "8")] + pub omcpnmpngho: ::prost::alloc::vec::Vec, + #[prost(string, tag = "9")] + pub dmecjjebdnd: ::prost::alloc::string::String, + #[prost(float, repeated, tag = "14")] + pub cadcgdbnimj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26291)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbapdlmbpge { + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(uint32, repeated, tag = "13")] + pub odobmmfaacg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3703)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmkkdehcigk { + #[prost(message, optional, tag = "4")] + pub ejlcmhihmfk: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub pbkeaocbpmn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgighckllkl { + #[prost(uint32, tag = "2")] + pub hojjlblkohj: u32, + #[prost(message, optional, tag = "6")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcieocipddc { + #[prost(uint32, tag = "9")] + pub dejllnghekl: u32, + #[prost(uint32, tag = "10")] + pub ohenhnjjken: u32, + #[prost(uint32, tag = "12")] + pub leefldbdabm: u32, + #[prost(uint32, tag = "14")] + pub cbfmilloboo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkdejjifbhm { + #[prost(uint32, tag = "6")] + pub echfghanmpb: u32, + #[prost(uint32, tag = "9")] + pub joijhcopeng: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghiencfnmmi { + #[prost(message, repeated, tag = "2")] + pub blkjababpod: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub jejgedbihfm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iimghhmefmk { + #[prost(uint32, tag = "8")] + pub alpfbbejimo: u32, + #[prost(uint32, tag = "10")] + pub ioihaodnikf: u32, + #[prost(bool, tag = "12")] + pub ocaccjodddo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oofgopfmkco { + #[prost(message, repeated, tag = "6")] + pub bcogkegagnp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnflplcimpp { + #[prost(uint32, tag = "1")] + pub gldnnfocdem: u32, + #[prost(bool, tag = "11")] + pub nahnhoifgfi: bool, + #[prost(uint32, tag = "13")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25374)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hncgdlmedao { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "10")] + pub eepdncmhpme: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdlgfillegg { + #[prost(message, repeated, tag = "3")] + pub cadonpdcdbg: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Edgimhghgpa", tag = "5")] + pub reason: i32, + #[prost(message, optional, tag = "7")] + pub ajcmdfmgije: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2312)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiiadoellbh { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub kbokcomoacf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9691)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idcegfnncbn { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22347)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnbgohbbmgo {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbliolnalik { + #[prost(uint64, tag = "2")] + pub fjpdffcpjik: u64, + #[prost(float, tag = "3")] + pub ledgjdcjimk: f32, + #[prost(uint32, tag = "5")] + pub ehgijgcnhkl: u32, + #[prost(string, tag = "7")] + pub lgnfafmphkd: ::prost::alloc::string::String, + #[prost(uint32, tag = "9")] + pub dhidkflckbf: u32, + #[prost(message, repeated, tag = "11")] + pub bhedcanjoed: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Magijmigili { + #[prost(uint32, tag = "10")] + pub dmlcigbdpii: u32, + #[prost(bool, tag = "11")] + pub okiggnfhlgg: bool, + #[prost(uint64, tag = "13")] + pub npdklmfoofd: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcgllonkjdg { + #[prost(uint32, tag = "12")] + pub phpfppidjkj: u32, + #[prost(uint32, repeated, tag = "14")] + pub ogjodgflein: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9342)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iaagfbpnbaj { + #[prost(map = "uint32, uint32", tag = "3")] + pub summon_tag_map: ::std::collections::HashMap, + #[prost(uint32, tag = "14")] + pub poncdmkadoa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25984)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnolhdfbkdk { + #[prost(uint32, tag = "3")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "12")] + pub icjfcaklnfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8052)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cadjjjefokp { + #[prost(message, repeated, tag = "2")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub pbekglboplc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21438)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acgphcfjgpn { + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afpbdghdjdn { + #[prost(enumeration = "Pmobconjbef", tag = "5")] + pub bloaoapllgf: i32, + #[prost(uint32, tag = "7")] + pub jlhfgabkeoi: u32, + #[prost(oneof = "afpbdghdjdn::Adebpdlaojp", tags = "6, 13, 15")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `AFPBDGHDJDN`. +pub mod afpbdghdjdn { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(uint32, tag = "6")] + Level(u32), + #[prost(message, tag = "13")] + QuestParam(super::Pkbadbmidhj), + #[prost(uint32, tag = "15")] + ChapterId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkbadbmidhj { + #[prost(uint32, tag = "12")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "14")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(592)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgiebfhgopc { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(map = "uint32, uint32", tag = "6")] + pub opldpagaapd: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "10")] + pub pdoinbmblgl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24752)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ongdgmgejel { + #[prost(uint32, tag = "10")] + pub item_id: u32, + #[prost(uint32, tag = "15")] + pub fenjfleghmg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iblagbcigbo { + #[prost(uint32, tag = "12")] + pub omecgiplfnm: u32, + #[prost(uint32, tag = "13")] + pub ancnilafdoj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22294)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eijjlgoodfe { + #[prost(message, repeated, tag = "1")] + pub bcdecbeoklf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Meeonahjnje { + #[prost(uint32, repeated, tag = "7")] + pub pmjdbpnlkkg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub lbmlpbefaek: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpnkdnamanj { + #[prost(message, optional, tag = "11")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4098)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcgpcljijdo { + #[prost(float, tag = "3")] + pub pdkifkkmhcn: f32, + #[prost(float, tag = "5")] + pub jndhedcnibo: f32, + #[prost(uint32, tag = "7")] + pub aljnjkpmopb: u32, + #[prost(float, tag = "15")] + pub anhmobffknh: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(792)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkbmfcggjmf { + #[prost(uint32, tag = "3")] + pub jinjlbemjnc: u32, + #[prost(message, optional, tag = "14")] + pub fknojfjgdlm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbdkeilfjoo { + #[prost(bool, tag = "1")] + pub hfccmpaeiem: bool, + #[prost(uint32, repeated, tag = "4")] + pub hbgkefoepch: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "11")] + pub faejlbkoilg: bool, + #[prost(message, repeated, tag = "15")] + pub pjemkikefle: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21306)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngfcbnondfi { + #[prost(uint32, tag = "2")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "3")] + pub ankcbommojb: bool, + #[prost(uint32, tag = "9")] + pub igmnbbkeneh: u32, + #[prost(message, repeated, tag = "11")] + pub filhggiljln: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "14")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3504)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifpciccabpk { + #[prost(message, repeated, tag = "11")] + pub hgfkhnelmbe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(952)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmeodelpphi { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint64, tag = "3")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7577)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgpfccdegld {} +#[derive(proto_gen::CmdID)] +#[cmdid(21622)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpijlngaead { + #[prost(message, optional, tag = "8")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub hdkfflfejgg: u32, + #[prost(uint32, tag = "6")] + pub degmghpfhjb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(871)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdfalpkmnda { + #[prost(uint32, tag = "15")] + pub lpnkmdeakpc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mboemihobge { + #[prost(uint32, tag = "4")] + pub bfkekimhaek: u32, + #[prost(uint32, tag = "7")] + pub hfjbndpdlbe: u32, + #[prost(uint32, tag = "9")] + pub ibnkhhbmaeh: u32, + #[prost(uint32, tag = "10")] + pub mabjljihkmi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clppijjnpca { + #[prost(uint32, tag = "10")] + pub lbjaacebmkj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26209)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opjfobkpfhj { + #[prost(uint32, tag = "1")] + pub gcmlkbebpoh: u32, + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "7")] + pub reason: i32, + #[prost(uint32, tag = "8")] + pub eigpjjfkdhb: u32, + #[prost(bool, tag = "9")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "10")] + pub bihammoadbg: u32, + #[prost(bool, tag = "11")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "12")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "13")] + pub leijpnjklim: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7027)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glgnchckhkc { + #[prost(bool, tag = "8")] + pub bgaoacgaldg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22439)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pacmlaldbhg { + #[prost(message, repeated, tag = "7")] + pub phlobocnnog: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20847)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eoleenaakgl { + #[prost(message, optional, tag = "13")] + pub ikpaapimbhh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23051)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmldbbdiddn { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "8")] + pub lcodbnghipi: u32, + #[prost(uint32, repeated, tag = "14")] + pub nijajagmlgp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23278)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahjgcmbjgmb { + #[prost(uint32, tag = "3")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8001)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odcneilbjmd { + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "15")] + pub cnfodgeooef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25257)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfdpphkhacl { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4299)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnnkhkmdien { + #[prost(enumeration = "Mfnchjapidh", tag = "7")] + pub ipccodlhaop: i32, + #[prost(uint32, tag = "14")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20381)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nikjbkdfcdl { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "5")] + pub ioaoaeaijee: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub blfahklapic: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8338)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oooojaiacpd { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub cjcjonhpiio: u32, + #[prost(uint32, tag = "13")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbmignfimkf { + #[prost(uint32, tag = "1")] + pub opgonhkecog: u32, + #[prost(bool, tag = "3")] + pub dhedkiegmel: bool, + #[prost(uint32, repeated, tag = "4")] + pub ndfojhfpble: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub mbkcpjggmef: u32, + #[prost(uint32, tag = "8")] + pub feipgdcpkne: u32, + #[prost(uint32, tag = "10")] + pub pkhodhipjbb: u32, + #[prost(enumeration = "Npgmacjfbek", tag = "11")] + pub dpdjgigleld: i32, + #[prost(uint32, repeated, tag = "13")] + pub ldcoaaonbpg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub phnboloecei: u32, + #[prost(uint32, tag = "15")] + pub ikidaaimffe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27206)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jijahbhjidk { + #[prost(uint32, tag = "5")] + pub chddofmlblm: u32, + #[prost(uint32, tag = "10")] + pub akmdkfbgdlb: u32, + #[prost(uint32, tag = "9")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9476)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epbhpmkkefc { + #[prost(uint32, tag = "3")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "9")] + pub ddiaamkbfda: u32, + #[prost(uint32, repeated, tag = "10")] + pub mjehndanfnk: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub avatar_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, enumeration(Jaiddkdbmem)", tag = "15")] + pub aoolchbokmf: ::std::collections::HashMap, + #[prost(oneof = "epbhpmkkefc::Detail", tags = "1159")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `EPBHPMKKEFC`. +pub mod epbhpmkkefc { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "1159")] + UgcTeamInfo(super::Cdghdalggal), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(20899)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olfpdhcblpm { + #[prost(uint32, tag = "8")] + pub hhlmkniagam: u32, + #[prost(uint32, tag = "13")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7845)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebkeajcjkjn { + #[prost(uint32, repeated, tag = "1")] + pub jkoihmchhha: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Hhaafihndjo", tag = "5")] + pub reason: i32, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oigdioegllg { + #[prost(uint32, repeated, tag = "1")] + pub jaodpkilohd: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "2")] + pub igidhgkoodo: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "3")] + pub obaklgmmoeo: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "4")] + pub lelgngjojai: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "5")] + pub aoeckdlecij: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "6")] + pub acaajjbncdm: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "7")] + pub lhegfhkbmkf: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub hiihfcbjldi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub hcpkdcnkpgd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iinnlammnka { + #[prost(uint32, tag = "9")] + pub hibbejpbeic: u32, + #[prost(uint32, repeated, tag = "12")] + pub fgfnghjgoli: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21962)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdmjijailfp { + #[prost(uint32, repeated, tag = "2")] + pub cnfodgeooef: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhcbnafmnkf { + #[prost(message, repeated, tag = "3")] + pub igfalkcjmmk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub hhiacciikga: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub bghndipkjhp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub aennncnaadl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4920)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iobffalbagc { + #[prost(uint32, tag = "6")] + pub omgchbachci: u32, + #[prost(uint32, tag = "9")] + pub admokadnfhh: u32, + #[prost(uint32, tag = "10")] + pub kpampgdjdhe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8196)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbjiefeibbi { + #[prost(uint32, tag = "10")] + pub target_uid: u32, + #[prost(uint32, tag = "15")] + pub oplllahddkm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7024)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghlaelnkamb {} +#[derive(proto_gen::CmdID)] +#[cmdid(9910)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lecinadjmcg { + #[prost(uint32, tag = "10")] + pub dpahhjhngbk: u32, + #[prost(uint32, tag = "8")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poalehlccii { + #[prost(uint32, repeated, tag = "2")] + pub odobmmfaacg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7883)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dojglfmiadf { + #[prost(uint32, tag = "12")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "7")] + pub pcaobbjlffm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akcmpcbaobp { + #[prost(bool, tag = "6")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "14")] + pub aibcihlfelp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfjhkfecdpd { + #[prost(enumeration = "Idgmphbjnim", tag = "8")] + pub r#type: i32, + #[prost(uint32, repeated, tag = "11")] + pub hogfdpaofom: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25987)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phphaapnhaj { + #[prost(enumeration = "Nmjpfhhjdan", tag = "5")] + pub reason: i32, + #[prost(enumeration = "Oeaoccjeope", tag = "8")] + pub ddiaamkbfda: i32, + #[prost(uint32, tag = "10")] + pub host_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7780)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adamamefedj { + #[prost(message, repeated, tag = "9")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "10")] + pub kkagfcfmhmm: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "2")] + pub opbnfdpdjgd: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25474)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgjekabbipl { + #[prost(uint32, tag = "14")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdffjgfbchc { + #[prost(uint32, tag = "3")] + pub defdabebomg: u32, + #[prost(uint32, tag = "7")] + pub labbcnefelc: u32, + #[prost(bool, tag = "9")] + pub ndgdkdmnbfl: bool, + #[prost(uint32, tag = "11")] + pub bjkfmlhfgdl: u32, + #[prost(bool, tag = "14")] + pub fcfapkanclj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22250)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Meffemhfdpl { + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(uint32, tag = "11")] + pub group_id: u32, + #[prost(uint32, tag = "8")] + pub njodgocgphe: u32, + #[prost(uint32, tag = "15")] + pub monster_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7728)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljcdlobgbac { + #[prost(message, repeated, tag = "7")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24984)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmanooodpha { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint64, tag = "8")] + pub dcompdppdpo: u64, + #[prost(enumeration = "Himmemhogfb", tag = "15")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3664)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olnmfinhbdj { + #[prost(bool, tag = "14")] + pub ifchjfjgmcp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20246)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgeicdhmcnn {} +#[derive(proto_gen::CmdID)] +#[cmdid(29339)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lddccchelka { + #[prost(uint32, repeated, tag = "9")] + pub ahpcnjnnlnh: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub cbmafaahiab: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub mbfllhnligd: bool, + #[prost(uint32, tag = "13")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgdmhkhppml { + #[prost(uint32, tag = "3")] + pub kbjnlbkmedp: u32, + #[prost(message, optional, tag = "4")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub guid: u32, + #[prost(message, optional, tag = "9")] + pub pos: ::core::option::Option, + #[prost(message, repeated, tag = "15")] + pub iecgngfmoip: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29477)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecbooeekmoj { + #[prost(message, optional, tag = "8")] + pub jenfdhkcmml: ::core::option::Option, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6078)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifciohcdpmp {} +#[derive(proto_gen::CmdID)] +#[cmdid(3214)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcjgpgomnac { + #[prost(uint32, tag = "8")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhifoaaocfe { + #[prost(message, repeated, tag = "4")] + pub phackcplpmb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub ndijmckhgkf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub fhcgkpipcic: u32, + #[prost(uint32, tag = "10")] + pub nmaajigndjg: u32, + #[prost(uint32, repeated, tag = "11")] + pub mfdecaohegd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub peamjnejkej: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncalfcgaenn { + #[prost(uint32, tag = "5")] + pub fjhhikoihka: u32, + #[prost(message, optional, tag = "7")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub ncnkmdbafeh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndeidbfaicp { + #[prost(uint32, repeated, tag = "1")] + pub affix_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub monster_id: u32, + #[prost(uint32, tag = "8")] + pub level: u32, + #[prost(uint32, tag = "11")] + pub ekifphkfodo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acljciofcip { + #[prost(enumeration = "Hkkcdiccimi", tag = "1")] + pub nkiolhkgjco: i32, + #[prost(message, repeated, tag = "2")] + pub lbdghbheoeh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub platform_type: u32, + #[prost(uint32, tag = "10")] + pub kafapfjllgp: u32, + #[prost(uint32, tag = "12")] + pub iedmnkbmkpa: u32, + #[prost(uint32, tag = "15")] + pub bdieoilmeca: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3067)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojjoghclajo { + #[prost(message, repeated, tag = "15")] + pub mfakdobmfim: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dagenklmdhh { + #[prost(message, repeated, tag = "9")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27167)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbgegpihlnh { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub icgjhkgcfep: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iddikhfdhog { + #[prost(uint32, tag = "4")] + pub pgknjbimiej: u32, + #[prost(uint32, tag = "13")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9533)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Incgadpkeij { + #[prost(uint32, repeated, tag = "11")] + pub oigllhajnfg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28726)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jicbnifnbme { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9358)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cknfogkbemo { + #[prost(message, repeated, tag = "10")] + pub ainmbfoihlh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27195)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nakkmlhcbpo { + #[prost(uint32, repeated, tag = "2")] + pub ebolklfdbgj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub abogbbaekcb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22382)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lagmeakajfd { + #[prost(uint64, tag = "7")] + pub knijefgolnp: u64, + #[prost(bool, tag = "6")] + pub is_locked: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6094)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkgkldihfgj {} +#[derive(proto_gen::CmdID)] +#[cmdid(24314)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bndpfjihaaa { + #[prost(uint32, tag = "1")] + pub dbjcinldfad: u32, + #[prost(uint32, tag = "3")] + pub mgbfffgpldj: u32, + #[prost(uint32, tag = "8")] + pub cjnphclicaa: u32, + #[prost(uint32, tag = "9")] + pub kcommkmhlfi: u32, + #[prost(uint32, tag = "10")] + pub jdcocjamhke: u32, + #[prost(message, optional, tag = "11")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub lgokjkggbia: u32, + #[prost(uint32, tag = "14")] + pub dljnaacfmld: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21354)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nijomgfmlkl { + #[prost(message, optional, tag = "2")] + pub odemmdjobca: ::core::option::Option, + #[prost(map = "uint32, uint32", tag = "3")] + pub jmchogfdmjn: ::std::collections::HashMap, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub pheddgpdkep: u32, + #[prost(message, optional, tag = "9")] + pub gcifdlpgbad: ::core::option::Option, + #[prost(enumeration = "Jiidngfkheb", tag = "15")] + pub bpelaiajjkj: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24666)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkhhklkghfk {} +#[derive(proto_gen::CmdID)] +#[cmdid(23871)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jajojnekfhb { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9677)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghpipcimdpf { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub jinjlbemjnc: u32, + #[prost(enumeration = "WidgetSlotTag", repeated, tag = "12")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Gfilbkbgmaf", tag = "15")] + pub laicdpfdimh: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppkagealonm { + #[prost(uint32, repeated, tag = "1")] + pub bgjphdillal: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub nlmijmcgkif: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Aanmpmbpkcl", tag = "15")] + pub bjfbgmllhbp: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22513)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khnnkfbofoi { + #[prost(uint32, repeated, tag = "1")] + pub cepohpdepbl: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub faclcdohbgd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdlbnbjbkkl { + #[prost(bool, tag = "5")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "7")] + pub ijffkcgiaoj: u32, + #[prost(uint32, tag = "10")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "14")] + pub foongfclffl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28344)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Haopdbmgbkg { + #[prost(message, repeated, tag = "2")] + pub ndgcdhfdbnj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5686)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdfbiigeaoc { + #[prost(uint32, tag = "5")] + pub gddgjebpebi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27473)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emgdmblmppm { + #[prost(enumeration = "Edodpnmmkli", tag = "1")] + pub okjdomaeibc: i32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, repeated, tag = "6")] + pub miccoobjini: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub neidbaohpfn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhffijgnffa { + #[prost(map = "uint32, uint32", tag = "2")] + pub mhbcjdifpad: ::std::collections::HashMap, + #[prost(uint32, tag = "4")] + pub inapobfhkkh: u32, + #[prost(uint32, tag = "8")] + pub iiacggogmlp: u32, + #[prost(uint32, tag = "13")] + pub benloojpekh: u32, + #[prost(uint32, tag = "15")] + pub djkhfndphjg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28952)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Boebopjnjof { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint64, tag = "8")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27267)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbdlcnpncoc { + #[prost(uint32, tag = "4")] + pub count: u32, + #[prost(uint32, tag = "2")] + pub ehjhfencklj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmbakaglimk { + #[prost(uint32, tag = "8")] + pub eiafophkkkc: u32, + #[prost(uint32, tag = "9")] + pub ogfjbjjgehd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(274)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lopiknhjbje { + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(uint32, repeated, tag = "7")] + pub napgdlclmef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4271)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieoomjpoill { + #[prost(bool, tag = "5")] + pub nlpphgndbif: bool, + #[prost(bool, tag = "7")] + pub iodkiepdkin: bool, + #[prost(bool, tag = "13")] + pub lhpbagallan: bool, + #[prost(bool, tag = "14")] + pub ihflckjfmck: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkcmnddnnph { + #[prost(uint32, tag = "1")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "14")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cimganhoehb { + #[prost(uint32, tag = "5")] + pub level: u32, + #[prost(uint32, tag = "7")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22572)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bejijijibmi { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipafhbiodfk { + #[prost(message, repeated, tag = "3")] + pub eojfococbcj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4341)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbolknpdofp { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(uint32, tag = "13")] + pub kfmglfjdodo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hikjhbdfmpa { + #[prost(message, repeated, tag = "1")] + pub ngfannnbmac: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub flphmnihgcb: u32, + #[prost(message, repeated, tag = "3")] + pub hcdnagjhpcl: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "4")] + pub nekaiffbaib: u64, + #[prost(uint32, tag = "5")] + pub kfiineejnpn: u32, + #[prost(uint32, tag = "6")] + pub pbkeaocbpmn: u32, + #[prost(message, repeated, tag = "7")] + pub fpimhfklmef: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub mfcjljpcmhn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub bkcndgojplh: u32, + #[prost(uint32, tag = "10")] + pub pohdlhljkda: u32, + #[prost(enumeration = "Gcjhlblippj", tag = "11")] + pub fbbbjnhiplf: i32, + #[prost(uint64, tag = "12")] + pub ndfchldidpf: u64, + #[prost(uint64, tag = "13")] + pub gcfeodolgme: u64, + #[prost(uint32, tag = "14")] + pub apnadonhilj: u32, + #[prost(uint32, tag = "15")] + pub nhakdoloeka: u32, + #[prost(uint32, repeated, tag = "1557")] + pub kfckenaknof: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "1567")] + pub gnkoimijngo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23167)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efbeoabbcbk { + #[prost(uint32, tag = "3")] + pub hdkdgijfmpc: u32, + #[prost(uint32, tag = "1")] + pub scene_id: u32, + #[prost(bool, tag = "5")] + pub is_new_player: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4894)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbmpihhlaoi { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmjhcajfgdd { + #[prost(bool, repeated, tag = "3")] + pub cgldgeeodmk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub ldedoinniok: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "11")] + pub cdcllfncfcn: ::std::collections::HashMap, + #[prost(enumeration = "Aohjddpeicb", tag = "12")] + pub r#type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdgjdpghbdf { + #[prost(message, optional, tag = "14")] + pub lbkgjpilkej: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29707)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Heinmcdhogi { + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub bhbnnfmjclp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21639)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ianbacifkim { + #[prost(message, repeated, tag = "13")] + pub onjngilgogc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebckdjafddp { + #[prost(uint32, repeated, tag = "5")] + pub fikgdofabee: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5455)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijikapdfocg { + #[prost(uint32, tag = "1")] + pub omhnnigkcci: u32, + #[prost(uint32, tag = "2")] + pub lmdoeppjnhj: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "5")] + pub reason: i32, + #[prost(bool, tag = "7")] + pub lfkjggfaecb: bool, + #[prost(uint32, tag = "8")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "10")] + pub iheicjnbkki: u32, + #[prost(uint32, tag = "13")] + pub nmaajigndjg: u32, + #[prost(bool, tag = "15")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7213)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cckeaakbhjn { + #[prost(uint32, repeated, tag = "6")] + pub aicooagmjkh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub dfolabackmd: u32, + #[prost(uint32, tag = "14")] + pub avatar_entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kicfmfojcmp { + #[prost(uint32, tag = "5")] + pub gaplfmmgbfa: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "12")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4416)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gccbgilglhp { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "6")] + pub pfijhcdcgkd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub nicodpphlgi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub eefehcnlebf: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub fhdnmihoabj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8789)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bidhmaabamc { + #[prost(message, repeated, tag = "1")] + pub blgidaniope: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(358)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdhikemkimf { + #[prost(uint32, tag = "12")] + pub gknplcafbmb: u32, + #[prost(message, repeated, tag = "15")] + pub icmfogfjjpb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdlagfflpkg { + #[prost(uint32, tag = "11")] + pub jefildjebaj: u32, + #[prost(bool, tag = "13")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "14")] + pub ibadlnmjbii: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bljdichhjkn { + #[prost(message, optional, tag = "8")] + pub gchajjajhng: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23890)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idimdhiiipb { + #[prost(uint32, tag = "14")] + pub jklafeigolc: u32, + #[prost(uint32, tag = "3")] + pub scene_id: u32, + #[prost(uint32, tag = "1")] + pub hffggaadpaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Depoiklileb { + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjmajbmhhji { + #[prost(uint32, repeated, tag = "2")] + pub dadpcejnpkm: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub bmmlkelmane: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub ibifpkefiij: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcagnbmdjmh { + #[prost(message, repeated, tag = "2")] + pub lklifpnkclf: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub pdaloaafimn: bool, + #[prost(uint32, tag = "12")] + pub egenanpedhd: u32, + #[prost(uint32, tag = "13")] + pub ijffkcgiaoj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23279)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pghfmpkojjc { + #[prost(uint32, tag = "13")] + pub ekcfckdjein: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4934)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnndlaekijp { + #[prost(uint32, repeated, tag = "8")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "4")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "1")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24764)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddideffabep { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27799)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbfiplaneam { + #[prost(uint32, tag = "4")] + pub joijhcopeng: u32, + #[prost(uint32, tag = "5")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3425)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amaalnhcaie { + #[prost(message, repeated, tag = "11")] + pub ficoijfmelc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abealcjglhd { + #[prost(map = "uint32, uint32", tag = "4")] + pub bpkkdfmlemp: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29961)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Meigkcdabin { + #[prost(uint32, repeated, tag = "9")] + pub njechpkpnge: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24693)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onnlbjbamal { + #[prost(uint32, tag = "15")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihbafcndhdl { + #[prost(uint32, tag = "2")] + pub ccpigccdboi: u32, + #[prost(uint32, tag = "5")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1296)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkkgolggelo { + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(enumeration = "Himmemhogfb", tag = "15")] + pub mfmlakbiaed: i32, + #[prost(oneof = "dkkgolggelo::Gcbckcbnpmn", tags = "10")] + pub gcbckcbnpmn: ::core::option::Option, +} +/// Nested message and enum types in `DKKGOLGGELO`. +pub mod dkkgolggelo { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Gcbckcbnpmn { + #[prost(message, tag = "10")] + MusicInfo(super::Ghlgjfdiakn), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(2497)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgnngbnnfei { + #[prost(uint32, tag = "1")] + pub mmlclpfabmi: u32, + #[prost(uint32, tag = "2")] + pub item_id: u32, + #[prost(bool, tag = "5")] + pub ablnifdmaol: bool, + #[prost(message, repeated, tag = "6")] + pub iffngnbbibb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pphabneimoc: u32, + #[prost(uint32, tag = "9")] + pub avatar_id: u32, + #[prost(uint32, tag = "10")] + pub reason: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4318)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnakhfcflnn { + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "8")] + pub lkidbhiooog: i32, + #[prost(uint32, tag = "12")] + pub nclenbioagh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20266)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edhfanjdhgm { + #[prost(map = "uint32, uint32", tag = "3")] + pub bnofpmifhdl: ::std::collections::HashMap, + #[prost(uint32, tag = "6")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4760)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imnfanempnf { + #[prost(uint32, tag = "14")] + pub gpdogmpijfc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2572)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jiojpapjiio { + #[prost(uint32, repeated, tag = "1")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imhfmhclnee { + #[prost(fixed32, tag = "3")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "4")] + pub gldnnfocdem: u32, + #[prost(uint32, tag = "5")] + pub enokcehnakf: u32, + #[prost(uint32, tag = "11")] + pub okicoglejec: u32, + #[prost(fixed32, tag = "13")] + pub bfbmkfceebb: u32, + #[prost(uint32, tag = "14")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5401)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldcmokcfmjc { + #[prost(enumeration = "Cdkllhkmokd", tag = "8")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfhbbbnofab { + #[prost(uint32, tag = "1")] + pub cnimhcggfhe: u32, + #[prost(uint32, tag = "3")] + pub agienjjkpbe: u32, + #[prost(uint32, tag = "4")] + pub ghiaogllldi: u32, + #[prost(bool, tag = "5")] + pub fanihelojam: bool, + #[prost(uint32, tag = "6")] + pub gghkdjlgfpb: u32, + #[prost(message, optional, tag = "7")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub ombmigpcoaa: u32, + #[prost(uint32, tag = "9")] + pub scene_id: u32, + #[prost(uint32, tag = "10")] + pub hogpdlghglm: u32, + #[prost(uint32, tag = "13")] + pub bjjjdldclll: u32, + #[prost(uint32, tag = "15")] + pub state: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onopndgnfha { + #[prost(enumeration = "Alllninaoga", tag = "1")] + pub jbpcmhkelpf: i32, + #[prost(uint32, tag = "3")] + pub djckchaclme: u32, + #[prost(uint32, tag = "7")] + pub ghiaogllldi: u32, + #[prost(uint32, tag = "15")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6225)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hodkbiakjoa { + #[prost(uint32, tag = "6")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "8")] + pub kfpegnaadlo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bchkoigejlg { + #[prost(uint32, tag = "4")] + pub player_uid: u32, + #[prost(uint32, tag = "13")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmhihcgphip { + #[prost(message, optional, tag = "13")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(bool, tag = "14")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(648)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiijlpegjen { + #[prost(uint32, repeated, tag = "12")] + pub igjljchbimf: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Edegmklfifi", tag = "1")] + pub r#type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26781)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akbkikdeglf { + #[prost(uint32, tag = "2")] + pub fbmoclbcbgm: u32, + #[prost(uint64, tag = "11")] + pub amiilbjpola: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbkfggknlab { + #[prost(uint32, tag = "6")] + pub mcbpfmmcbfm: u32, + #[prost(int32, tag = "7")] + pub param: i32, + #[prost(uint32, tag = "8")] + pub djcfmfedncg: u32, + #[prost(message, optional, tag = "9")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub uid: u32, + #[prost(string, tag = "11")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "12")] + pub nick_name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3355)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmdhjgkpbjc { + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7287)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dineogpgmbp {} +#[derive(proto_gen::CmdID)] +#[cmdid(24968)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nepbbpjpodl {} +#[derive(proto_gen::CmdID)] +#[cmdid(3348)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddhbbdplebf { + #[prost(uint32, tag = "10")] + pub kimohpkkhhn: u32, + #[prost(uint32, tag = "14")] + pub mblmihejnif: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6477)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Keagpmfjicl {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnjgeafmjbo { + #[prost(bool, tag = "1")] + pub hpjpckiilaj: bool, + #[prost(uint32, tag = "5")] + pub fbpgimlmdnj: u32, + #[prost(uint32, tag = "14")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pflephaekaj { + #[prost(message, repeated, tag = "8")] + pub kbokcomoacf: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub hhhcfhhnbbn: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5413)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgbekjjgkje { + #[prost(message, optional, tag = "1")] + pub oaiiomnbidi: ::core::option::Option, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Decflhfhglf { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(uint32, tag = "13")] + pub gfmmfbjpjmp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20667)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aknfcempkml { + #[prost(uint32, repeated, tag = "1")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub konbknmhgdc: bool, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20675)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocmkahmddmc { + #[prost(message, optional, tag = "2")] + pub rot: ::core::option::Option, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(bool, tag = "13")] + pub ngofdmbiilf: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnnbjhmgifj { + #[prost(uint32, repeated, tag = "4")] + pub oijfpglhnnn: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub onabdgfcpih: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4856)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dklhojpaggg { + #[prost(uint32, repeated, tag = "1")] + pub pikpodegkck: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1384)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ganahailpfk { + #[prost(message, repeated, tag = "3")] + pub mglnmbndpba: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7342)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofgimfahpmb { + #[prost(uint32, tag = "4")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7833)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npejkanienk { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7520)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcfeopebgcd { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(uint32, tag = "6")] + pub jgihcibojpn: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub nfjohaldgdn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23222)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfefokjmhng { + #[prost(message, repeated, tag = "4")] + pub ioaoaeaijee: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub adnlnoplejo: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(enumeration = "Mckmnakkakb", tag = "10")] + pub pmbkcleohna: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6734)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Penbogccddi { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub pelmfdngnfp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnnbhjjdnck { + #[prost(message, repeated, tag = "7")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3176)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhoohdkbjmf { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eimbjjjghdl {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hilncfdlgmi { + #[prost(uint32, repeated, tag = "1")] + pub ejdddkbgkki: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub uid: u32, + #[prost(uint32, repeated, tag = "13")] + pub alklnmljnfh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(139)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofhhmabfpnc { + #[prost(uint32, tag = "4")] + pub jmldgkcbcbo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29304)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkmmdcdncli { + #[prost(uint64, tag = "1")] + pub avatar_guid: u64, + #[prost(uint32, repeated, tag = "8")] + pub lobogppeppf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub entity_id: u32, + #[prost(uint32, tag = "15")] + pub skill_depot_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfkjedgpnae { + #[prost(enumeration = "Hibhhjenmpp", tag = "11")] + pub pipmddflkmo: i32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5447)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpgopdlkgcb { + #[prost(message, repeated, tag = "9")] + pub ohpejhebpag: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub scene_id: u32, + #[prost(message, repeated, tag = "15")] + pub ogfghbokjml: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2265)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccjbccckfnd { + #[prost(message, repeated, tag = "14")] + pub pbpakbcpjkj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub pebgmemnknf: u32, + #[prost(uint32, tag = "15")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25596)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cinlhmkeflm {} +#[derive(proto_gen::CmdID)] +#[cmdid(24121)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klgbmbnfink { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20817)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnjejkhilno { + #[prost(bool, tag = "4")] + pub is_locked: bool, + #[prost(uint32, tag = "5")] + pub dalmffloamd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3230)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghnpnghelnb { + #[prost(uint32, repeated, tag = "13")] + pub iohpbdgjacm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iohmnploigc { + #[prost(uint32, tag = "1")] + pub bneponhaomg: u32, + #[prost(uint32, tag = "2")] + pub fffkclcemin: u32, + #[prost(uint32, tag = "3")] + pub ilnhapnfaob: u32, + #[prost(uint32, tag = "4")] + pub kfpegnaadlo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25268)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpecdgkhnbc { + #[prost(uint32, repeated, tag = "15")] + pub fdjpppfghne: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3610)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnhjolmcflm { + #[prost(uint64, repeated, tag = "4")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9885)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkjnbnhjiok { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21519)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjpikplhldo { + #[prost(uint32, tag = "13")] + pub mbkaongpdcn: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfbjeiphadm { + #[prost(uint32, tag = "2")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "7")] + pub hgljfadloeb: u32, + #[prost(uint32, tag = "8")] + pub pimkfeicmek: u32, + #[prost(uint32, tag = "15")] + pub endimmnlaad: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4349)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlhbojfplle { + #[prost(uint32, tag = "3")] + pub dfpnkfekiig: u32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "14")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21857)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Magldagobkn { + #[prost(uint64, tag = "3")] + pub opcknlijchd: u64, + #[prost(bool, tag = "7")] + pub napmcbkmnaa: bool, + #[prost(uint64, tag = "10")] + pub server_time: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogaiociiaob { + #[prost(uint32, tag = "1")] + pub djnnphnekeo: u32, + #[prost(uint32, repeated, tag = "6")] + pub dohpolgjgbp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub pbkeaocbpmn: u32, + #[prost(message, optional, tag = "10")] + pub jnhddgmhfol: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub gefbnnebkdb: u32, + #[prost(map = "uint32, message", tag = "12")] + pub dnmgddgagfd: ::std::collections::HashMap, + #[prost(uint32, tag = "13")] + pub ghdnhigkokm: u32, + #[prost(message, repeated, tag = "14")] + pub fhpgbcfaake: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub bkcndgojplh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21674)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgemhafcppi { + #[prost(bool, tag = "1")] + pub bnnbnppfbgf: bool, + #[prost(enumeration = "Igohjibcdfa", tag = "3")] + pub lkidbhiooog: i32, + #[prost(bool, tag = "4")] + pub akokclcpkei: bool, + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(bool, tag = "7")] + pub flnemnnkmeb: bool, + #[prost(bool, tag = "8")] + pub dmimbndeijo: bool, + #[prost(bool, tag = "9")] + pub ieommiknnie: bool, + #[prost(message, optional, tag = "10")] + pub pfpfhkgaifj: ::core::option::Option, + #[prost(bool, tag = "11")] + pub kkebecbgpln: bool, + #[prost(bool, tag = "12")] + pub ekmgpoimail: bool, + #[prost(bool, tag = "13")] + pub fijoolaangj: bool, + #[prost(bool, tag = "14")] + pub ddpoajhdnai: bool, + #[prost(bool, tag = "15")] + pub nnblllgbgkg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29557)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfhpkbidmif { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20475)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehgoeokfbhe { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9254)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgchelfmahi { + #[prost(uint32, tag = "7")] + pub admokadnfhh: u32, + #[prost(uint32, tag = "8")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(uint32, tag = "11")] + pub bcggiogbock: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(645)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mneldmonhpa { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpkfhnjibna { + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "9")] + pub ecihdijcled: bool, + #[prost(bool, tag = "12")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23977)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgllkfbcgdi { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(339)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppgikabmiak { + #[prost(uint32, tag = "14")] + pub ihgidghgknh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20371)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mghjikhhoif { + #[prost(uint32, repeated, tag = "3")] + pub fjcmplgbcek: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub exp: u32, + #[prost(uint32, tag = "6")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhgaghfmefm {} +#[derive(proto_gen::CmdID)] +#[cmdid(9116)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dimfodcldnf { + #[prost(uint32, tag = "3")] + pub fpedhedekpe: u32, + #[prost(oneof = "dimfodcldnf::Detail", tags = "2, 9")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `DIMFODCLDNF`. +pub mod dimfodcldnf { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "2")] + BossSettleInfo(super::Nophpgmjakd), + #[prost(message, tag = "9")] + GallerySettleInfo(super::Oigfgeaeheo), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(21577)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppekogdcdel { + #[prost(message, optional, tag = "6")] + pub region_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5312)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmkddcigohm { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfocbldnlbh { + #[prost(uint32, tag = "1")] + pub elbmpbelclp: u32, + #[prost(uint32, tag = "5")] + pub ojoapinglno: u32, + #[prost(enumeration = "Ejpagmfnmfe", tag = "7")] + pub state: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfnnoafcocm { + #[prost(int32, tag = "1")] + pub pgamdledebd: i32, + #[prost(uint32, tag = "2")] + pub peblohahpmm: u32, + #[prost(message, optional, tag = "3")] + pub akdaalhkanl: ::core::option::Option, + #[prost(bool, tag = "4")] + pub lmmjddpjaje: bool, + #[prost(uint32, tag = "5")] + pub haiekdpaelj: u32, + #[prost(message, optional, tag = "6")] + pub pbnghdindjf: ::core::option::Option, + #[prost(float, tag = "8")] + pub mjpdbgbpbel: f32, + #[prost(string, tag = "9")] + pub abolmfhmgme: ::prost::alloc::string::String, + #[prost(message, optional, tag = "10")] + pub iempfdmhpad: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub iicfmjejobo: u32, + #[prost(message, optional, tag = "13")] + pub pjfmabjidlh: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub jmofpjddibi: u32, + #[prost(uint32, tag = "15")] + pub baabhehfaph: u32, + #[prost(float, tag = "27")] + pub gjhekljlhep: f32, + #[prost(uint32, tag = "78")] + pub ebleigglhlg: u32, + #[prost(bool, tag = "137")] + pub knpeolbnofl: bool, + #[prost(uint32, tag = "416")] + pub mflndgpejoe: u32, + #[prost(uint32, tag = "523")] + pub mpbebakodgf: u32, + #[prost(uint32, tag = "549")] + pub nmpedjopmmb: u32, + #[prost(uint32, tag = "616")] + pub ifminibilfh: u32, + #[prost(uint32, tag = "896")] + pub poafaplmpeb: u32, + #[prost(uint32, tag = "1056")] + pub elifilcnkfd: u32, + #[prost(uint32, tag = "1211")] + pub flpfbafhgnn: u32, + #[prost(float, tag = "1268")] + pub amigjoomjja: f32, + #[prost(uint32, tag = "1414")] + pub ekjhpchcmlf: u32, + #[prost(bool, tag = "1525")] + pub ojjlalfdgda: bool, + #[prost(float, tag = "1627")] + pub kkippcfedhn: f32, + #[prost(uint32, tag = "1639")] + pub gmnjedpknde: u32, + #[prost(uint32, tag = "1785")] + pub jkgembobalf: u32, + #[prost(float, tag = "1826")] + pub jlelgcfkeed: f32, + #[prost(bool, tag = "1827")] + pub ibecfppfdbb: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Majmlmbgamm { + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "11")] + pub oicebegencm: u32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25602)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hblhbpikopj { + #[prost(message, optional, tag = "12")] + pub gkkbdhmoppi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24534)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgaejdgfhmj { + #[prost(int32, tag = "1")] + pub entity_type: i32, + #[prost(uint32, tag = "7")] + pub ljmcoejjone: u32, + #[prost(uint32, tag = "8")] + pub eajokebphdf: u32, + #[prost(int32, tag = "9")] + pub mkgdphcimkl: i32, + #[prost(int32, tag = "10")] + pub koanngpcjbn: i32, + #[prost(uint32, tag = "11")] + pub jmofpjddibi: u32, + #[prost(float, tag = "15")] + pub ffnkcilcafp: f32, + #[prost(oneof = "kgaejdgfhmj::Efchliigooo", tags = "4, 6")] + pub efchliigooo: ::core::option::Option, +} +/// Nested message and enum types in `KGAEJDGFHMJ`. +pub mod kgaejdgfhmj { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Efchliigooo { + #[prost(message, tag = "4")] + ShapeSphere(super::Cnchgnjihbk), + #[prost(message, tag = "6")] + ShapeBox(super::Hjbfmohjilh), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(24278)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlfpmckpffe { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agdnjbggkmj { + #[prost(message, optional, tag = "2")] + pub jblkodbdcak: ::core::option::Option, + #[prost(fixed32, tag = "7")] + pub bfgldolahfn: u32, + #[prost(fixed32, tag = "8")] + pub icglipkglgc: u32, + #[prost(fixed32, tag = "9")] + pub ppfffekjegf: u32, + #[prost(message, optional, tag = "12")] + pub bbgjmoomdio: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(348)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Calogajgmne { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddcjcbhhnmi { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(bool, tag = "2")] + pub dohhenfngpe: bool, + #[prost(uint32, tag = "3")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blinlhafmno { + #[prost(uint32, repeated, tag = "2")] + pub bcnhehgkmoj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub apnlofpnahn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6936)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icogkhllldl { + #[prost(message, repeated, tag = "5")] + pub jmimcjggpko: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub ejmkloobedm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25420)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfkcfoiddmh { + #[prost(message, repeated, tag = "10")] + pub fmkihllebgh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub podhdpcpjgj: u32, + #[prost(uint32, tag = "8")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "7")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29931)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oaiclompgjl { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(string, tag = "12")] + pub nick_name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21156)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkoakmckald { + #[prost(uint32, tag = "2")] + pub pcaobbjlffm: u32, + #[prost(uint32, tag = "14")] + pub necgmakacdi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddogijcmgki { + #[prost(uint32, tag = "6")] + pub jddamhceape: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6344)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Doghhgakgpo {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpldgcnnfjm { + #[prost(map = "uint32, message", tag = "3")] + pub ejeppajkaob: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6360)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chemobnippk { + #[prost(message, repeated, tag = "4")] + pub mhfddmdclck: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6204)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pinhbllpijn { + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "14")] + pub hklkmbmgake: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24812)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Moaffphkldk { + #[prost(message, repeated, tag = "4")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "8")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6489)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmbgjkmjnld { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcghopfdcob { + #[prost(uint32, tag = "5")] + pub jhmgbekgggd: u32, + #[prost(uint32, tag = "6")] + pub ncapfabbikm: u32, + #[prost(int32, tag = "7")] + pub cngfclpcjgc: i32, + #[prost(uint32, tag = "13")] + pub hfbfdcfompd: u32, + #[prost(uint32, tag = "14")] + pub bcggiogbock: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8768)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khelakfaoho { + #[prost(uint32, tag = "14")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25298)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Leabklkkmcg { + #[prost(uint32, tag = "10")] + pub gjjlcejilbl: u32, + #[prost(uint32, tag = "12")] + pub kiljafcjkam: u32, + #[prost(message, repeated, tag = "14")] + pub daljclgkpho: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocebldoobca { + #[prost(uint32, tag = "11")] + pub skill_id: u32, + #[prost(uint32, tag = "13")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7733)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aicajlbooho { + #[prost(message, repeated, tag = "6")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojkafcepehl { + #[prost(uint32, tag = "2")] + pub fnppfkkpaca: u32, + #[prost(uint32, tag = "3")] + pub dmogolglgfl: u32, + #[prost(uint32, tag = "10")] + pub goeabhjfkko: u32, + #[prost(uint32, tag = "11")] + pub ckpfipmmjan: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26186)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eekmgkfhkhp { + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(uint32, tag = "8")] + pub hdkfflfejgg: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Heokefpjikf { + #[prost(float, tag = "7")] + pub dkkgfphnknb: f32, + #[prost(float, tag = "13")] + pub fncogclpgnc: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28330)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajfoknoamng { + #[prost(uint32, tag = "7")] + pub kfaghbdnfca: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub mcjiecacmld: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4072)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eapfnehncfe { + #[prost(uint32, tag = "5")] + pub onhojobnapm: u32, + #[prost(bool, tag = "10")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "12")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "13")] + pub dekhbeooien: u32, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "15")] + pub dpmdgmebgii: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25851)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbbnjcnblka { + #[prost(map = "uint64, message", tag = "4")] + pub hmemhopnbeb: ::std::collections::HashMap, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgjdcedjkfk { + #[prost(message, repeated, tag = "5")] + pub pkeabncgdbk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "11")] + pub cenhkjdffda: u32, + #[prost(bool, tag = "15")] + pub poiggnkedah: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agngbcgnmbm { + #[prost(uint32, tag = "3")] + pub eepgbfljalk: u32, + #[prost(string, tag = "7")] + pub key: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "8")] + pub gmldnleodoh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub geihmkhcije: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6924)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cagljhgpjlm { + #[prost(uint32, repeated, tag = "13")] + pub ahpcnjnnlnh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27365)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihpcklffcce { + #[prost(uint32, tag = "6")] + pub bmmnpflapdi: u32, + #[prost(map = "uint32, string", tag = "9")] + pub kepmcgofdnf: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub nhgniieaogi: u32, + #[prost(uint32, tag = "12")] + pub pojclnbpibe: u32, + #[prost(float, tag = "13")] + pub gakneppgpga: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6182)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfnkepinbpp { + #[prost(message, optional, tag = "1")] + pub bojcnnpkmkj: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(int32, tag = "15")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20314)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icimckafonb { + #[prost(uint32, tag = "1")] + pub hokgbenlelh: u32, + #[prost(uint32, tag = "4")] + pub lfahankkbid: u32, + #[prost(uint32, tag = "8")] + pub djbdfnpflem: u32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, + #[prost(bool, tag = "11")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "12")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plmkebglbbg { + #[prost(uint32, tag = "2")] + pub ocinfhojcea: u32, + #[prost(bool, tag = "14")] + pub ffijkdepkdf: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24376)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fckklplpbna { + #[prost(uint32, tag = "15")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "10")] + pub pkolnjpbbgk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27224)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehegogkfnln { + #[prost(message, optional, tag = "13")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8720)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfdmfpfealk { + #[prost(uint32, repeated, tag = "4")] + pub bknikidmahi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3840)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbnmhepbein { + #[prost(uint64, repeated, tag = "6")] + pub gnjpjdfmogi: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "8")] + pub cur_avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1139)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnaagllahee {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cglhbkmlhjg { + #[prost(message, optional, tag = "2")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub guid: u32, + #[prost(message, optional, tag = "10")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub block_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohmjncbaoec { + #[prost(message, repeated, tag = "13")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22126)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnmoomlmgki {} +#[derive(proto_gen::CmdID)] +#[cmdid(8902)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecnoifaaeog { + #[prost(uint32, tag = "4")] + pub egmbajdjcop: u32, + #[prost(map = "uint32, uint32", tag = "8")] + pub ebbbbknhpmc: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmmbpakoijo { + #[prost(message, optional, tag = "3")] + pub gmolliebbfe: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub kpbecglgibm: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub version: u32, + #[prost(uint32, tag = "12")] + pub guid: u32, + #[prost(uint32, tag = "13")] + pub kbjnlbkmedp: u32, + #[prost(int32, tag = "14")] + pub ajgcdbflhga: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2720)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fijbbgebdel { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24973)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odjjjedpede { + #[prost(message, optional, tag = "10")] + pub eocepkicpca: ::core::option::Option, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1683)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plnkmopnalo { + #[prost(uint32, tag = "7")] + pub dekhbeooien: u32, + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "14")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7695)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdlonnadpid {} +#[derive(proto_gen::CmdID)] +#[cmdid(8494)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aahogjgmiki { + #[prost(uint32, tag = "14")] + pub nhgniieaogi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24611)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emjhbhipddc { + #[prost(int32, repeated, tag = "8")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub ffbojfojagd: u32, + #[prost(uint32, tag = "15")] + pub jddamhceape: u32, + #[prost(uint32, tag = "3")] + pub kjlbepdnldm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdfpbilhblg { + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, + #[prost(bool, tag = "3")] + pub iknbinfmiid: bool, + #[prost(bool, tag = "4")] + pub piockldlcjd: bool, + #[prost(uint32, tag = "8")] + pub kaioccbnppa: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dadkpnjfdjd { + #[prost(uint32, tag = "2")] + pub hbejcpcpbem: u32, + #[prost(bool, tag = "3")] + pub kbonaolgehh: bool, + #[prost(uint32, repeated, tag = "5")] + pub hebkfoiplkj: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub lpigkmcbdak: bool, + #[prost(uint32, tag = "8")] + pub badoiojgdbb: u32, + #[prost(bool, tag = "11")] + pub jndoignkdph: bool, + #[prost(uint32, repeated, tag = "15")] + pub nmljkelpefm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bfekijmijak { + #[prost(uint32, tag = "7")] + pub bjmihkphifa: u32, + #[prost(map = "uint32, enumeration(Niemjjcedcf)", tag = "8")] + pub mpghamhcbfm: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8249)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jncmilmlckb { + #[prost(message, repeated, tag = "3")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "4")] + pub ejlcmhihmfk: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub pbkeaocbpmn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20700)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjainigeife { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4614)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebfjbpjbcbo { + #[prost(message, optional, tag = "7")] + pub eillomoaknp: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4877)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljheiibomnf { + #[prost(bool, tag = "10")] + pub pdfiiffmbeg: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chjiblcebnf { + #[prost(uint32, tag = "3")] + pub mihmgcojgob: u32, + #[prost(uint32, repeated, tag = "9")] + pub gcbeeinchka: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Eegmnipnkmj", tag = "10")] + pub reason: i32, + #[prost(uint32, tag = "15")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llcocpjpbld { + #[prost(uint32, tag = "1")] + pub kmpmkinjclj: u32, + #[prost(message, optional, tag = "3")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(uint32, tag = "11")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfaaadfkmip { + #[prost(uint32, tag = "1")] + pub eakbmdhmflc: u32, + #[prost(uint32, tag = "2")] + pub lkhkmkmkmjc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29696)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lndoedncpga { + #[prost(uint32, tag = "14")] + pub mdonemkpmbk: u32, + #[prost(uint32, tag = "4")] + pub jamdpllpknp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24810)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffhhlaeejfl {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekjcifddnkb { + #[prost(uint32, tag = "1")] + pub glpndnicndg: u32, + #[prost(uint32, tag = "2")] + pub ejbdmeimafl: u32, + #[prost(uint32, tag = "3")] + pub afbfinjceld: u32, + #[prost(uint32, tag = "4")] + pub deccicldlbn: u32, + #[prost(uint32, tag = "5")] + pub bpgdimfkdff: u32, + #[prost(uint64, tag = "6")] + pub npemhmjjcmo: u64, + #[prost(uint32, tag = "11")] + pub eajokebphdf: u32, + #[prost(uint32, tag = "12")] + pub cfoabiaakhm: u32, + #[prost(uint32, tag = "13")] + pub faecjoekaep: u32, + #[prost(uint64, tag = "21")] + pub fdmohdlmkcl: u64, + #[prost(uint32, tag = "22")] + pub cikgdofkfbf: u32, + #[prost(map = "uint32, uint32", tag = "23")] + pub jljifelieme: ::std::collections::HashMap, + #[prost(uint32, tag = "24")] + pub kdcbkcbjmgj: u32, + #[prost(uint32, tag = "31")] + pub cmmaipencnh: u32, + #[prost(uint32, tag = "32")] + pub plakcbngmfk: u32, + #[prost(map = "uint32, uint32", tag = "33")] + pub kjiejhdiiek: ::std::collections::HashMap, + #[prost(bool, tag = "34")] + pub ojdeogobmna: bool, + #[prost(uint32, tag = "35")] + pub falgfipnopc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3720)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nffimejlman { + #[prost(uint32, tag = "4")] + pub lgooidciaag: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4032)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkpceokkebm { + #[prost(bool, tag = "6")] + pub ebodhkbbfod: bool, + #[prost(uint32, tag = "5")] + pub avatar_entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21143)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geiocehoofb { + #[prost(uint32, repeated, tag = "8")] + pub fbmmejdfpnj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(462)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hepclikmbbd { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(int32, tag = "14")] + pub ghiaogllldi: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20256)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmhalompbmm { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6083)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgjmclhbglk { + #[prost(map = "uint32, uint32", tag = "8")] + pub ggclooaiaje: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26423)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlakihaeeoa { + #[prost(bool, tag = "5")] + pub jiglgehaajk: bool, + #[prost(uint64, tag = "8")] + pub dcompdppdpo: u64, + #[prost(uint32, tag = "9")] + pub jlfheeipddp: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(bool, tag = "13")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23719)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejmjheiidda { + #[prost(uint32, repeated, tag = "10")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub pkkkijalpnm: u32, + #[prost(uint32, tag = "1")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fniefglbkci { + #[prost(bool, tag = "2")] + pub giejbigoehh: bool, + #[prost(bool, tag = "3")] + pub kdofakiddih: bool, + #[prost(bool, tag = "4")] + pub coejbjmbadc: bool, + #[prost(bool, tag = "5")] + pub mdgjjofokap: bool, + #[prost(uint32, tag = "6")] + pub ghmmpahjclf: u32, + #[prost(message, repeated, tag = "7")] + pub ollknofbacf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub kogcoakphdj: u32, + #[prost(uint32, tag = "9")] + pub plcdimkgfde: u32, + #[prost(message, optional, tag = "11")] + pub ljhhfmckmga: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub dpcpblcmlmk: u32, + #[prost(uint32, tag = "14")] + pub cgejmghjjno: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgghlhaaohe { + #[prost(map = "uint32, uint32", tag = "3")] + pub eifchjhikhi: ::std::collections::HashMap, + #[prost(string, tag = "6")] + pub pbigganlbdh: ::prost::alloc::string::String, + #[prost(uint32, tag = "7")] + pub uid: u32, + #[prost(string, tag = "8")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(uint32, tag = "9")] + pub avatar_id: u32, + #[prost(message, optional, tag = "11")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "15")] + pub bkdilgijpeg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Neoailiedgg { + #[prost(uint32, tag = "2")] + pub region_id: u32, + #[prost(message, repeated, tag = "4")] + pub kieanioopce: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub cllidipnocd: bool, + #[prost(uint32, tag = "13")] + pub fncogclpgnc: u32, + #[prost(message, optional, tag = "14")] + pub hhfchandoga: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2291)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hppdbopbhco { + #[prost(message, optional, tag = "1")] + pub bmammckamlj: ::core::option::Option, + #[prost(bool, tag = "2")] + pub ilbnmpnffdh: bool, + #[prost(bool, tag = "3")] + pub dlkipoglmho: bool, + #[prost(bool, tag = "4")] + pub ncceeedebcm: bool, + #[prost(bool, tag = "5")] + pub djfpoapinem: bool, + #[prost(message, optional, tag = "6")] + pub mddabonfbej: ::core::option::Option, + #[prost(bool, tag = "7")] + pub caabgjknplc: bool, + #[prost(bool, tag = "8")] + pub nklapgmmimj: bool, + #[prost(string, repeated, tag = "9")] + pub diiiihmdpnc: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(float, tag = "10")] + pub kdlekkmnjhe: f32, + #[prost(float, tag = "11")] + pub fimemeelgpk: f32, + #[prost(float, tag = "12")] + pub ambiahhfkig: f32, + #[prost(float, tag = "13")] + pub pdkifkkmhcn: f32, + #[prost(enumeration = "Jhhnlpaamin", tag = "14")] + pub ljapflfemdd: i32, + #[prost(bool, tag = "15")] + pub ancmjinjbel: bool, + #[prost(uint32, tag = "298")] + pub jmckedphmge: u32, + #[prost(bool, tag = "387")] + pub dcgcmalhbfn: bool, + #[prost(uint32, tag = "412")] + pub entity_id: u32, + #[prost(uint32, tag = "836")] + pub ofdgjjnopmi: u32, + #[prost(float, tag = "1321")] + pub kkkmbmmhijf: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23348)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adeomocpebl { + #[prost(enumeration = "Gghihdpmjgm", tag = "14")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjddpcanfbl { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(string, tag = "6")] + pub eibkpabdggb: ::prost::alloc::string::String, + #[prost(uint32, tag = "7")] + pub pdpnhmehbic: u32, + #[prost(uint32, tag = "11")] + pub nipaakapgag: u32, + #[prost(uint32, tag = "13")] + pub kigfpeikeio: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MathQuaternion { + #[prost(float, tag = "1")] + pub x: f32, + #[prost(float, tag = "2")] + pub y: f32, + #[prost(float, tag = "3")] + pub z: f32, + #[prost(float, tag = "4")] + pub w: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5000)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Incodnhnpda { + #[prost(message, repeated, tag = "7")] + pub knppopefoof: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihaggdpkdnf { + #[prost(uint32, tag = "2")] + pub emdjlfdjoec: u32, + #[prost(uint32, tag = "5")] + pub nlilbpnjoni: u32, + #[prost(uint32, tag = "8")] + pub pfffhfijkng: u32, + #[prost(fixed32, tag = "11")] + pub eopffipdkgn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nomecokldgg { + #[prost(uint32, tag = "3")] + pub jefildjebaj: u32, + #[prost(uint32, tag = "4")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "5")] + pub ibadlnmjbii: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26465)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jejpjnhiagl { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub njekbpkeloh: u32, + #[prost(message, repeated, tag = "14")] + pub npnodhmpkbk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29472)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aoahabfgfce { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27690)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikdmlapnjcf {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbeclhjioil { + #[prost(string, tag = "2")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(message, optional, tag = "8")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "9")] + pub nick_name: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub mmdpdoococo: ::prost::alloc::string::String, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(411)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glcbcfeooao { + #[prost(message, optional, tag = "15")] + pub binidelegag: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub gblenhcpkcp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24583)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkehjhbaocl { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6843)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Keghmabldkh { + #[prost(message, optional, tag = "13")] + pub inoanpfnjbb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29298)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpgmmnadpoc { + #[prost(bool, tag = "8")] + pub ndpekjaiihe: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dphbpgechmj { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(message, optional, tag = "8")] + pub iaknhjgcpgl: ::core::option::Option, + #[prost(message, optional, tag = "11")] + pub cchohinjkhg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbdpodgepki { + #[prost(uint32, tag = "12")] + pub kilijgplmnp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21255)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppibdnnhbgh { + #[prost(message, optional, tag = "4")] + pub najbgfmoeoj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29640)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcjmojmjoek { + #[prost(uint32, repeated, tag = "13")] + pub mjiofgmcple: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpplmpieife { + #[prost(uint32, tag = "7")] + pub djblekfbkmd: u32, + #[prost(bool, tag = "8")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "14")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3624)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iaaemibedbm { + #[prost(bool, tag = "1")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "6")] + pub nhbdoadldec: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5862)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgjedghagdh { + #[prost(uint32, tag = "1")] + pub epjoaallggd: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(954)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndackjndpjd { + #[prost(uint32, tag = "13")] + pub anim_hash: u32, + #[prost(uint64, tag = "12")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oaoajfodacb { + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "13")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22083)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Baiifegkfja { + #[prost(bool, tag = "1")] + pub bepnjolipfg: bool, + #[prost(uint32, repeated, tag = "3")] + pub hpckdgemldn: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(bool, tag = "15")] + pub bbfhpffigai: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FishtankFishInfo { + #[prost(float, tag = "1")] + pub fish_distance_from_water: f32, + #[prost(float, tag = "2")] + pub fish_scale: f32, + #[prost(float, tag = "3")] + pub initial_rotation_y: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21196)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gpphdcpbehl {} +#[derive(proto_gen::CmdID)] +#[cmdid(7314)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odjjbngkpjk { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9877)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bomdiilgdml { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "8")] + pub group_id: u32, + #[prost(uint32, tag = "14")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21245)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fclfenogmde { + #[prost(uint32, tag = "5")] + pub target_uid: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(bool, tag = "14")] + pub midfpdcbphk: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggjololofad { + #[prost(uint32, tag = "2")] + pub mhjbphkjphp: u32, + #[prost(uint64, repeated, tag = "14")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4705)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibfmdkndcdn { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(int32, tag = "11")] + pub omgchbachci: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3556)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdaneakdhnd { + #[prost(message, repeated, tag = "3")] + pub fllomagfgbh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8709)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneDataNotify { + #[prost(message, optional, tag = "9")] + pub galjcimkfch: ::core::option::Option, + #[prost(string, repeated, tag = "11")] + pub level_config_name_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(uint32, repeated, tag = "12")] + pub scene_tag_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "13")] + pub dfndkdafejo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28209)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhhlfnncgpc { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(message, optional, tag = "6")] + pub position: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub monster_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(320)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmagfclhfge { + #[prost(message, optional, tag = "3")] + pub dpebbflaadc: ::core::option::Option, + #[prost(uint32, repeated, tag = "5")] + pub kialdhgblgc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub acjckmpbejk: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24893)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneEntityAppearNotify { + #[prost(message, repeated, tag = "1")] + pub entity_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub param: u32, + #[prost(enumeration = "VisionType", tag = "8")] + pub appear_type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9931)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gainabolnjd { + #[prost(uint32, repeated, tag = "8")] + pub bpefdnblofg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub pdgnedcpoch: u32, + #[prost(map = "uint32, message", tag = "10")] + pub oegmmdljkdm: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29878)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dblpnfnpibk { + #[prost(uint32, tag = "4")] + pub gcmlkbebpoh: u32, + #[prost(uint32, tag = "5")] + pub bihammoadbg: u32, + #[prost(uint32, tag = "7")] + pub leijpnjklim: u32, + #[prost(uint32, tag = "10")] + pub omgchbachci: u32, + #[prost(uint32, tag = "11")] + pub dekhbeooien: u32, + #[prost(bool, tag = "12")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21908)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hngcpeaaklk { + #[prost(uint32, tag = "4")] + pub uid: u32, + #[prost(bool, tag = "13")] + pub eippeiilmdp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9911)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eegkgodcija { + #[prost(uint32, tag = "8")] + pub pcaobbjlffm: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25690)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcojkibckeg { + #[prost(bool, tag = "5")] + pub acibpcamlle: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26038)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhaihlmdbbj { + #[prost(uint32, tag = "11")] + pub flphmnihgcb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9151)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EnterSceneDoneReq { + #[prost(uint32, tag = "4")] + pub enter_scene_token: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22505)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fihdghcpngj { + #[prost(uint32, tag = "4")] + pub flkpgmlnfgf: u32, + #[prost(uint32, tag = "7")] + pub hpbphgoeaka: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23722)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlfcicenhll { + #[prost(uint32, repeated, tag = "2")] + pub buff_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkokomhdegi { + #[prost(message, repeated, tag = "2")] + pub agkmajaamno: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub mjgahnipeic: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub dffanaoclpn: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub pkealpohpem: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub ohcomhhkigm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9246)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajgdjbkjbnf { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25133)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edophifkiph { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28526)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcdhoonepmd { + #[prost(uint32, tag = "7")] + pub njekbpkeloh: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1359)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pakichgojef { + #[prost(string, tag = "7")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(367)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpccglahhfn { + #[prost(uint32, tag = "1")] + pub beiidlebafi: u32, + #[prost(bool, tag = "3")] + pub fijhoanipbe: bool, + #[prost(message, optional, tag = "7")] + pub position: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onmanahneng { + #[prost(bool, tag = "1")] + pub gboboljpagm: bool, + #[prost(uint32, tag = "4")] + pub group_id: u32, + #[prost(uint32, tag = "6")] + pub ojoapinglno: u32, + #[prost(uint32, tag = "7")] + pub gpaeljhnaek: u32, + #[prost(uint32, repeated, tag = "11")] + pub oijfpglhnnn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21657)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmgbekmpkmp { + #[prost(bool, tag = "1")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "9")] + pub dekhbeooien: u32, + #[prost(bool, tag = "10")] + pub ankcbommojb: bool, + #[prost(bool, tag = "11")] + pub hknghljdeog: bool, + #[prost(uint32, tag = "15")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6246)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okilhfaombi { + #[prost(message, repeated, tag = "8")] + pub djhnhpipfba: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24387)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhimjhagcfk { + #[prost(bool, tag = "3")] + pub bgaoacgaldg: bool, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3587)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djecdjnnchk { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfikeaenpha { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "6")] + pub jdhlmigkddg: u32, + #[prost(uint32, tag = "7")] + pub copmggogfcp: u32, + #[prost(uint32, tag = "12")] + pub jeaploaicbc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnjalkmmejo { + #[prost(message, repeated, tag = "12")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29471)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnekepejejl { + #[prost(uint32, tag = "3")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "4")] + pub gaplfmmgbfa: u32, + #[prost(message, repeated, tag = "5")] + pub ceihipahgnh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub ghdjjmikfpi: u32, + #[prost(uint32, repeated, tag = "7")] + pub affckjcegjh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "12")] + pub bkbhnemjdli: u32, + #[prost(uint32, tag = "13")] + pub egbmifdjdih: u32, + #[prost(uint32, tag = "14")] + pub fhcgkpipcic: u32, + #[prost(uint32, repeated, tag = "15")] + pub bfchfgccbfk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20320)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Achbockfice { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub lhdahdneppl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3920)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icgifjnkhke { + #[prost(message, repeated, tag = "3")] + pub cgefifaffnb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9626)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bigpmknfjji { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmjaokhpcpm { + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "10")] + pub djmaimmmmfa: u32, + #[prost(uint32, tag = "14")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pckcbpbobpc { + #[prost(message, optional, tag = "11")] + pub chjafhgefco: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub hihmhhibane: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub bfbgmhgbpmc: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub lceamigchgo: ::core::option::Option, + #[prost(message, optional, tag = "15")] + pub nbhoddcfikb: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub nijenjcciam: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7340)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfpfggainal { + #[prost(message, optional, tag = "7")] + pub motion_info: ::core::option::Option, + #[prost(uint32, tag = "1")] + pub room_id: u32, + #[prost(uint32, tag = "13")] + pub entity_id: u32, + #[prost(uint32, tag = "12")] + pub parent_quest_id: u32, + #[prost(uint32, tag = "4")] + pub scene_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4570)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcfmdmhfbck { + #[prost(uint32, tag = "2")] + pub pkkkijalpnm: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "5")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "14")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25934)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iihhmmijpap { + #[prost(uint32, tag = "1")] + pub ghiaogllldi: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22013)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibfakjccfck { + #[prost(message, optional, tag = "1")] + pub niedeghkbnn: ::core::option::Option, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub iknfnnfkagf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(237)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpaamecjgpb { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25884)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgkabljdmia { + #[prost(uint32, tag = "14")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarSkillInfo { + #[prost(uint32, tag = "1")] + pub pass_cd_time: u32, + #[prost(uint32, repeated, tag = "2")] + pub full_cd_time_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub max_charge_count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhdmenmcjjo { + #[prost(map = "uint32, message", tag = "1")] + pub bpefgkfihch: ::std::collections::HashMap, + #[prost(uint32, tag = "8")] + pub ahaldomjphd: u32, + #[prost(uint32, tag = "10")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "11")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "12")] + pub ecihdijcled: bool, + #[prost(bool, tag = "14")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncgmjbgcfoi { + #[prost(uint32, tag = "3")] + pub skill_id: u32, + #[prost(uint32, repeated, tag = "5")] + pub lpecfldoodf: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub jfhonlmcjdd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22276)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgjfgnkclmj { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23346)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pplnckanocd { + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20542)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olbdkdmfhlb {} +#[derive(proto_gen::CmdID)] +#[cmdid(9110)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofpchgifpgk { + #[prost(message, optional, tag = "3")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub item_id: u32, + #[prost(uint32, tag = "12")] + pub gfppmnlpoek: u32, + #[prost(int32, tag = "9")] + pub param: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbjpngpamod { + #[prost(bool, tag = "2")] + pub hblihlkjeda: bool, + #[prost(uint32, tag = "12")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plpjfamifdf { + #[prost(enumeration = "Pehcgoekbdg", tag = "3")] + pub kgflnpgdaak: i32, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blneklpbjjd { + #[prost(uint32, tag = "1")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "2")] + pub jbikhbedcok: u32, + #[prost(bool, tag = "7")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "11")] + pub jofbeiaclof: u32, + #[prost(uint32, repeated, tag = "12")] + pub mkelecopffb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub egjckkihmmm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ockfdndlgjg { + #[prost(uint32, tag = "6")] + pub kmhidaefflc: u32, + #[prost(map = "uint32, message", tag = "9")] + pub gffgjmadacl: ::std::collections::HashMap, + #[prost(bool, tag = "10")] + pub ebgkbpbkogl: bool, + #[prost(uint32, tag = "11")] + pub mcmbofifbcp: u32, + #[prost(uint32, repeated, tag = "13")] + pub dmanoklbkka: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1154)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aammdcahcme { + #[prost(uint32, tag = "10")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "8")] + pub position: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mieamhfknkj { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "13")] + pub deoocbakmcj: u32, + #[prost(uint32, tag = "14")] + pub onhojobnapm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Celajgpdpbn { + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "6")] + pub dmkfeccmcop: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eolabdoeppi { + #[prost(uint32, tag = "2")] + pub hmjbphppjdb: u32, + #[prost(uint32, tag = "7")] + pub gpejlgheomg: u32, + #[prost(uint32, tag = "9")] + pub oommiflemob: u32, + #[prost(message, repeated, tag = "13")] + pub fhiegnjdbmo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21144)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfhgiaihfdp {} +#[derive(proto_gen::CmdID)] +#[cmdid(7235)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerLogoutReq { + #[prost(enumeration = "PlayerLogoutReason", tag = "3")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6021)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akgbnkknjho { + #[prost(uint32, tag = "13")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "14")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26788)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fichmdmfoop { + #[prost(message, optional, tag = "7")] + pub ipchjpnocap: ::core::option::Option, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(47)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlfnkcoilfh { + #[prost(uint32, tag = "1")] + pub hkappoekong: u32, + #[prost(uint32, tag = "5")] + pub ehdllggiofj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obakidajlgn { + #[prost(uint32, tag = "10")] + pub iknfnnfkagf: u32, + #[prost(uint32, tag = "12")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8882)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agfbooefoap { + #[prost(uint32, tag = "1")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24560)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fodfjinljng { + #[prost(uint32, tag = "9")] + pub omfhidhnppn: u32, + #[prost(string, repeated, tag = "15")] + pub bmdianlkilh: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2324)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbfcpiekoeg { + #[prost(message, repeated, tag = "2")] + pub bcmoggadkbb: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "7")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27508)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phlkpdgakna { + #[prost(string, tag = "7")] + pub kadfmamhgbg: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub item_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fijpblkmagf { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "13")] + pub gobchdjolnb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3640)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcdhkflcnbd { + #[prost(uint32, tag = "9")] + pub gldnnfocdem: u32, + #[prost(bool, tag = "8")] + pub nahnhoifgfi: bool, + #[prost(uint32, tag = "13")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjkolafefej { + #[prost(map = "uint32, message", tag = "1")] + pub nedlniljfnp: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "2")] + pub lnjpacjjphg: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "4")] + pub lckafmfopfb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20372)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjfkbbhcchj { + #[prost(map = "uint32, message", tag = "5")] + pub onnlnefnfgj: ::std::collections::HashMap, + #[prost(uint32, tag = "10")] + pub gpdogmpijfc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Donlajnfjeb { + #[prost(uint32, repeated, tag = "1")] + pub kcikkoenijf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlockInfo { + #[prost(uint32, tag = "1")] + pub block_id: u32, + #[prost(uint32, tag = "2")] + pub gfkfjjoadmh: u32, + #[prost(bytes = "vec", tag = "3")] + pub nehmemlkipp: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "4")] + pub glafbcffaeg: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhpflopgfkl { + #[prost(bool, tag = "2")] + pub hjlpileemeb: bool, + #[prost(map = "uint32, bool", tag = "8")] + pub pcfcgpijabg: ::std::collections::HashMap, + #[prost(uint32, tag = "9")] + pub ogkgkjikchc: u32, + #[prost(bool, tag = "12")] + pub is_active: bool, + #[prost(uint32, tag = "13")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdjhbmggifd { + #[prost(message, repeated, tag = "5")] + pub jgkfkegbebk: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub mpbnnonjgjp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25037)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Biaeieefhca { + #[prost(bool, tag = "11")] + pub ghnkompjkci: bool, + #[prost(bool, tag = "7")] + pub ddeejmjomcl: bool, + #[prost(uint32, tag = "15")] + pub target_uid: u32, + #[prost(uint32, tag = "9")] + pub ckfjcekkppc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25625)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cemjjnlonpc { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(bool, tag = "4")] + pub dmedoehomkh: bool, + #[prost(bool, tag = "5")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "10")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneMonsterInfo { + #[prost(uint32, tag = "1")] + pub monster_id: u32, + #[prost(uint32, tag = "2")] + pub group_id: u32, + #[prost(uint32, tag = "3")] + pub config_id: u32, + #[prost(message, repeated, tag = "4")] + pub weapon_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub authority_peer_id: u32, + #[prost(uint32, repeated, tag = "6")] + pub affix_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "7")] + pub is_elite: bool, + #[prost(uint32, tag = "8")] + pub owner_entity_id: u32, + #[prost(uint32, tag = "9")] + pub summoned_tag: u32, + #[prost(map = "uint32, uint32", tag = "10")] + pub summon_tag_map: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub pose_id: u32, + #[prost(enumeration = "MonsterBornType", tag = "12")] + pub born_type: i32, + #[prost(uint32, tag = "13")] + pub block_id: u32, + #[prost(uint32, tag = "14")] + pub mark_flag: u32, + #[prost(uint32, tag = "15")] + pub title_id: u32, + #[prost(uint32, tag = "16")] + pub special_name_id: u32, + #[prost(uint32, tag = "17")] + pub attack_target_id: u32, + #[prost(message, optional, tag = "18")] + pub monster_route: ::core::option::Option, + #[prost(uint32, tag = "19")] + pub ai_config_id: u32, + #[prost(uint32, tag = "20")] + pub level_route_id: u32, + #[prost(uint32, tag = "21")] + pub init_pose_id: u32, + #[prost(bool, tag = "22")] + pub is_light: bool, + #[prost(uint32, tag = "23")] + pub kill_num: u32, + #[prost(oneof = "scene_monster_info::Content", tags = "50, 51")] + pub content: ::core::option::Option, +} +/// Nested message and enum types in `SceneMonsterInfo`. +pub mod scene_monster_info { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Content { + #[prost(message, tag = "50")] + FishInfo(super::SceneFishInfo), + #[prost(message, tag = "51")] + FishtankFishInfo(super::FishtankFishInfo), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Loaaeeopjad { + #[prost(uint32, repeated, tag = "1")] + pub edmgkchacbe: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub knhicjhgbem: bool, + #[prost(uint32, tag = "4")] + pub jgnofmbffki: u32, + #[prost(message, repeated, tag = "6")] + pub hbjkkpgophn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "9")] + pub ionghioedfh: u32, + #[prost(message, repeated, tag = "10")] + pub iammmogkdaf: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub iegbmlhpngc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4541)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odgcllloadb { + #[prost(uint32, tag = "5")] + pub oboopjlpdni: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25020)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fncfjnpkcpk { + #[prost(message, optional, tag = "4")] + pub egikhjdaich: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub ooflahmeleo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(628)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcnpggiondn { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "4")] + pub heegimpkfpl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24216)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Modfgnlnign { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldbdpbpgcle { + #[prost(uint32, repeated, tag = "11")] + pub pokklpfhbel: ::prost::alloc::vec::Vec, + #[prost(oneof = "ldbdpbpgcle::Detail", tags = "9, 13")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `LDBDPBPGCLE`. +pub mod ldbdpbpgcle { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "9")] + ExamInfo(super::Kmecifnikhf), + #[prost(message, tag = "13")] + OrderInfo(super::Locachpgjph), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aajmgcojonb { + #[prost(bool, tag = "3")] + pub lidahldjleo: bool, + #[prost(uint32, tag = "4")] + pub fcmiklceaka: u32, + #[prost(uint32, tag = "6")] + pub ipehbeiknpc: u32, + #[prost(uint32, tag = "7")] + pub level: u32, + #[prost(uint64, tag = "9")] + pub exp: u64, + #[prost(message, optional, tag = "10")] + pub ajacdldnmap: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub cdiijcgnbof: u32, + #[prost(uint32, tag = "12")] + pub dkidfaejncg: u32, + #[prost(string, tag = "13")] + pub odckfmkoomd: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8351)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cldblcecbob { + #[prost(uint32, repeated, tag = "7")] + pub jkoihmchhha: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub parent_quest_id: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3252)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiibpnmfcjn { + #[prost(message, repeated, tag = "9")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iojlknpeodb { + #[prost(message, repeated, tag = "1")] + pub papbbilcpmb: ::prost::alloc::vec::Vec, + #[prost(fixed32, tag = "2")] + pub eopffipdkgn: u32, + #[prost(bool, tag = "3")] + pub knhicjhgbem: bool, + #[prost(uint32, tag = "7")] + pub lihibgchlhc: u32, + #[prost(uint32, tag = "8")] + pub mlkmkmjnkmh: u32, + #[prost(uint32, tag = "9")] + pub failealaadn: u32, + #[prost(bool, tag = "11")] + pub fjnebbedmce: bool, + #[prost(fixed32, tag = "14")] + pub afjclenhanc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6168)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llhadjdfogm { + #[prost(int32, tag = "1")] + pub jjfpfmpjema: i32, + #[prost(message, repeated, tag = "2")] + pub mnkljbkcehn: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Cfpdoelblnj", tag = "3")] + pub bgpjniihanj: i32, + #[prost(message, repeated, tag = "5")] + pub ammmjpghkfp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub nngihmcjhca: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(message, repeated, tag = "12")] + pub cegdcnhgojd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21814)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Decpfgmfpdj { + #[prost(uint32, tag = "13")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "2")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdfhfpacfkm { + #[prost(uint32, tag = "2")] + pub dfibjggahkp: u32, + #[prost(uint32, tag = "4")] + pub cdajkiidfnj: u32, + #[prost(uint64, tag = "5")] + pub eihbodhiofk: u64, + #[prost(message, optional, tag = "8")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub hfniaddglng: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbkgiigkola { + #[prost(bool, tag = "1")] + pub nfcjaimikkk: bool, + #[prost(uint32, tag = "2")] + pub end_time: u32, + #[prost(uint32, tag = "3")] + pub lgbnfifcpjf: u32, + #[prost(enumeration = "Alllninaoga", tag = "4")] + pub jbpcmhkelpf: i32, + #[prost(uint32, tag = "5")] + pub level: u32, + #[prost(uint32, tag = "6")] + pub ibolgmhgpoo: u32, + #[prost(message, optional, tag = "7")] + pub mlijpcohilm: ::core::option::Option, + #[prost(message, repeated, tag = "8")] + pub nimimlfeopo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub kfhndijeijo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub khhibkpbkpn: u32, + #[prost(bool, tag = "11")] + pub holkbikhoba: bool, + #[prost(message, optional, tag = "12")] + pub mjllkgpgmad: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub akfhoihgdjb: u32, + #[prost(bool, tag = "14")] + pub loppmeonneg: bool, + #[prost(uint32, tag = "15")] + pub hbndjapmlpl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5503)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkibojcknin { + #[prost(uint32, tag = "4")] + pub omgchbachci: u32, + #[prost(uint32, tag = "5")] + pub mempkcgnnmf: u32, + #[prost(message, optional, tag = "6")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27891)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmjkobnjmod { + #[prost(bool, tag = "1")] + pub hndkicjjanm: bool, + #[prost(message, repeated, tag = "5")] + pub jbhaijfnnck: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub alpfbbejimo: u32, + #[prost(bool, tag = "11")] + pub lkeceiinjdi: bool, + #[prost(bool, tag = "14")] + pub holkbikhoba: bool, + #[prost(message, optional, tag = "15")] + pub ildcoabbdog: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9273)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihfdbfnlbjh { + #[prost(uint32, tag = "2")] + pub gacfbgfdool: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub dagnblkkjli: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anickellbdg { + #[prost(uint32, tag = "5")] + pub kenikecfflm: u32, + #[prost(message, repeated, tag = "11")] + pub mlalkjbnnpg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgnmaciebhf { + #[prost(uint32, tag = "9")] + pub peajinifghm: u32, + #[prost(uint32, tag = "10")] + pub kafapfjllgp: u32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "15")] + pub affix_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27066)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mliklghkilg { + #[prost(uint32, tag = "5")] + pub ndehkhcalmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21103)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mebajhgchnk { + #[prost(bool, tag = "3")] + pub pfokfhlokej: bool, + #[prost(map = "uint32, message", tag = "13")] + pub bgafdioigib: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23610)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bollipfopkc { + #[prost(message, optional, tag = "15")] + pub dejoimafmck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5977)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnanoahgaej { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9652)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmafcdmhbfc { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "11")] + pub jledgoffpmb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21556)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiilbideidh { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26927)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekgakkgbneh { + #[prost(message, optional, tag = "11")] + pub dnoejhjejio: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub skill_id: u32, + #[prost(uint64, tag = "2")] + pub dghpdllbeld: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llecnebccfi { + #[prost(message, repeated, tag = "3")] + pub dfaifggpipd: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub mfcjljpcmhn: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub cgmcfjmfkke: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub aodlocnmiip: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub hgickbdjeao: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub lpahgnjlohd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5655)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfliffemlpc { + #[prost(uint32, repeated, tag = "4")] + pub himcbbodhcj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5552)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fdgojdcldah { + #[prost(uint32, repeated, tag = "10")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "2")] + pub guid: u64, + #[prost(bool, tag = "3")] + pub dhaomgmmdpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29427)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjbdjdlkfgd { + #[prost(message, optional, tag = "15")] + pub kglilblfnmf: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "3")] + pub gljdigmiilk: u32, + #[prost(uint32, tag = "11")] + pub plkfhdakpln: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5665)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhegnlneppb {} +#[derive(proto_gen::CmdID)] +#[cmdid(329)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnbjklfknhm { + #[prost(uint32, tag = "14")] + pub monster_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecgonilibpf { + #[prost(uint64, tag = "2")] + pub cgammlododp: u64, + #[prost(bool, tag = "3")] + pub anbjcgmpmbe: bool, + #[prost(bool, tag = "7")] + pub kbnhkamgpji: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inelaggdijf { + #[prost(uint32, tag = "1")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "12")] + pub bgiibmphocb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpbjmflpooi { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(message, optional, tag = "7")] + pub neicmenmflj: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub fggmoakinfd: u32, + #[prost(uint32, tag = "13")] + pub scene_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7894)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfdcikihmol { + #[prost(uint32, tag = "2")] + pub badoiojgdbb: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1294)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejlhdeokmkn { + #[prost(map = "uint64, message", tag = "7")] + pub doohpieceeb: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jibkfgbfdno { + #[prost(uint32, tag = "3")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "8")] + pub dhikpcepeop: bool, + #[prost(message, repeated, tag = "15")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojonhgceepo { + #[prost(uint32, tag = "1")] + pub jkoaghdgjje: u32, + #[prost(uint32, tag = "2")] + pub bikmjihingn: u32, + #[prost(uint32, tag = "4")] + pub kfmjcmpkpmn: u32, + #[prost(uint32, tag = "5")] + pub bmjceijjkcb: u32, + #[prost(uint32, repeated, tag = "6")] + pub nkaichlodle: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "8")] + pub hnijmehbebp: u32, + #[prost(uint32, tag = "9")] + pub cfeclkmehme: u32, + #[prost(uint32, tag = "10")] + pub kakbollmhfn: u32, + #[prost(bool, tag = "11")] + pub mibjmkdnlfh: bool, + #[prost(message, optional, tag = "12")] + pub oecjcimbpfi: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub iljobblppii: u32, + #[prost(uint32, repeated, tag = "14")] + pub akpinalmgcb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub cjmhjhijmjn: u32, + #[prost(message, repeated, tag = "217")] + pub hfpjndimkbo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "228")] + pub nhjinfcahkb: u32, + #[prost(uint32, tag = "250")] + pub nhdknnglefe: u32, + #[prost(message, repeated, tag = "357")] + pub igbieeloipj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "533")] + pub aakfeekgljd: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "583")] + pub ajonibdflom: bool, + #[prost(uint32, tag = "776")] + pub pjgfapekfbc: u32, + #[prost(uint32, tag = "832")] + pub blnjfgpohoc: u32, + #[prost(uint32, tag = "930")] + pub ddojbapnipd: u32, + #[prost(uint32, tag = "1027")] + pub nehcplbfmlh: u32, + #[prost(uint32, tag = "1820")] + pub hkdcibpofoc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20750)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chmhjilfelf { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5749)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcigebdopid { + #[prost(bool, tag = "4")] + pub agfjleieocg: bool, + #[prost(message, optional, tag = "5")] + pub oodfjakhihd: ::core::option::Option, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub ihgidghgknh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26614)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetPlayerTokenReq { + #[prost(string, tag = "12")] + pub bpfimekjane: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub account_uid: ::prost::alloc::string::String, + #[prost(string, tag = "1")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "15")] + pub account_token: ::prost::alloc::string::String, + #[prost(string, tag = "219")] + pub client_rand_key: ::prost::alloc::string::String, + #[prost(string, tag = "14")] + pub cemenpadopp: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub country_code: ::prost::alloc::string::String, + #[prost(string, tag = "310")] + pub adfhnbpgagm: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub mmdpdoococo: ::prost::alloc::string::String, + #[prost(string, tag = "9")] + pub bdgfmeiehod: ::prost::alloc::string::String, + #[prost(string, tag = "1385")] + pub hcjgllhfcma: ::prost::alloc::string::String, + #[prost(string, tag = "762")] + pub jlcddojgkkg: ::prost::alloc::string::String, + #[prost(string, tag = "102")] + pub jcimgdhmmln: ::prost::alloc::string::String, + #[prost(bool, tag = "8")] + pub is_guest: bool, + #[prost(uint32, tag = "11")] + pub uid: u32, + #[prost(uint32, tag = "943")] + pub mpgmoflceof: u32, + #[prost(uint32, tag = "243")] + pub key_id: u32, + #[prost(uint32, tag = "2")] + pub ocinfhojcea: u32, + #[prost(uint32, tag = "786")] + pub jdhckkagbnl: u32, + #[prost(uint32, tag = "10")] + pub platform_type: u32, + #[prost(uint32, tag = "1163")] + pub kodkefgjhap: u32, + #[prost(uint32, tag = "1473")] + pub cijpmgmcjba: u32, + #[prost(uint32, tag = "4")] + pub kekhakapmin: u32, + #[prost(uint32, tag = "5")] + pub ikkklhicpmf: u32, + #[prost(uint32, tag = "13")] + pub account_type: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7133)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Magmocebngc { + #[prost(message, optional, tag = "2")] + pub ejcpddpfdbf: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5373)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iejifpldbbm {} +#[derive(proto_gen::CmdID)] +#[cmdid(3132)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhocfpkgako { + #[prost(uint32, tag = "5")] + pub lhdahdneppl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28865)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmfgnjjcppc {} +#[derive(proto_gen::CmdID)] +#[cmdid(4410)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jiikepenoen { + #[prost(uint32, repeated, tag = "14")] + pub ejdddkbgkki: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25046)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljapeoanoho { + #[prost(uint32, tag = "12")] + pub pjgfapekfbc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfinfkpkahj { + #[prost(uint32, tag = "8")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "10")] + pub end_time: u32, + #[prost(uint32, tag = "11")] + pub lgbnfifcpjf: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "15")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27377)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpapcgpchne { + #[prost(bool, tag = "3")] + pub ijnjemgejnm: bool, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub nbhoddcfikb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(601)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekgkhifhkcn { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(bool, tag = "15")] + pub is_locked: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23604)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmelommoaie { + #[prost(message, repeated, tag = "8")] + pub hflkijmlbdb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub avatar_id: u32, + #[prost(uint32, tag = "14")] + pub reason: u32, + #[prost(bool, tag = "7")] + pub kchmokpjdii: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aobbhmampgc { + #[prost(uint32, repeated, tag = "3")] + pub dlkekcdojbj: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Fcfbaddhheo", tag = "7")] + pub occlnkdddne: i32, + #[prost(uint32, repeated, tag = "8")] + pub dfgpkikllgc: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub ljidcoknnpn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdcpgkipnba { + #[prost(uint32, tag = "4")] + pub fbpgimlmdnj: u32, + #[prost(uint32, tag = "6")] + pub phpfppidjkj: u32, + #[prost(uint32, tag = "12")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2835)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkdpblnomme { + #[prost(message, repeated, tag = "2")] + pub glnhgpnppip: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub ldjnbbieffe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8161)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlnohfgmiak { + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(string, tag = "13")] + pub reason: ::prost::alloc::string::String, + #[prost(message, optional, tag = "14")] + pub jnonmkdanhl: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7782)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbnphflaanj { + #[prost(string, tag = "2")] + pub name: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "15")] + pub hoepcmhjbhe: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28907)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpamijfabeo { + #[prost(message, optional, tag = "8")] + pub position: ::core::option::Option, + #[prost(uint64, tag = "9")] + pub kfnbcklkeib: u64, + #[prost(int32, tag = "7")] + pub pbhchamjkhb: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20313)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmbeikpaemf { + #[prost(message, repeated, tag = "8")] + pub fojbpljlmcd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3728)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eimiajkogfc { + #[prost(uint32, tag = "2")] + pub anhigelnhkp: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub aiihckimnnn: u32, + #[prost(uint32, tag = "9")] + pub hghmffpaboo: u32, + #[prost(uint32, tag = "11")] + pub flbfcpekoje: u32, + #[prost(uint32, tag = "14")] + pub kpidllgnojf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poldbbpahpc { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "2")] + pub guid: u32, + #[prost(uint32, tag = "3")] + pub nnmkbeamika: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29945)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekfgjdhjphb { + #[prost(message, repeated, tag = "4")] + pub faclcdohbgd: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub ljmfgajfian: bool, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(bool, tag = "15")] + pub moeodinmjkn: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28591)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiedkafmdie { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "10")] + pub eaodllegcae: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub cmeedhjedin: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjbfmohjilh { + #[prost(message, optional, tag = "1")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub mjedpbplhha: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub onlppgllmbl: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub eccejbipllc: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub bokhjookahc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(330)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfjkeinkeaf { + #[prost(message, repeated, tag = "14")] + pub hindfpnfkfb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8733)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oijhmbnkoik { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24201)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lephhbjabed { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppdadgbphfj { + #[prost(message, optional, tag = "1")] + pub odepmbdnilm: ::core::option::Option, + #[prost(bool, tag = "3")] + pub cpknlalfoac: bool, + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, + #[prost(uint32, repeated, tag = "5")] + pub hoepcmhjbhe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub flagfkmidgc: u32, + #[prost(uint32, tag = "7")] + pub mfbbimepadm: u32, + #[prost(uint32, tag = "11")] + pub lmdkhnjijhp: u32, + #[prost(uint32, tag = "12")] + pub dbnnknaegfk: u32, + #[prost(uint32, tag = "14")] + pub bbhoionihmj: u32, + #[prost(uint32, tag = "15")] + pub eepfjadodpa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jecnlammpfi { + #[prost(message, repeated, tag = "4")] + pub hjllldfoihm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26107)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajlpdfieofb { + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24790)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbohdfoicfh { + #[prost(uint32, repeated, tag = "7")] + pub jfmhidpanll: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26146)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmknllbfaog {} +#[derive(proto_gen::CmdID)] +#[cmdid(21248)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgeganoebjl {} +#[derive(proto_gen::CmdID)] +#[cmdid(27500)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eiagnpoelij { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "8")] + pub cbkniagnafb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25803)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilhdapeliod { + #[prost(uint32, tag = "1")] + pub kihigcbbali: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21965)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idndkcacbme { + #[prost(bool, tag = "4")] + pub ekeikdijabm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23786)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dikpleagdje { + #[prost(bool, tag = "2")] + pub lkeceiinjdi: bool, + #[prost(message, optional, tag = "5")] + pub ildcoabbdog: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub alpfbbejimo: u32, + #[prost(bool, tag = "8")] + pub holkbikhoba: bool, + #[prost(bool, tag = "15")] + pub hndkicjjanm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26640)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iphnlkeomkf { + #[prost(uint32, tag = "5")] + pub ghiaogllldi: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4065)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgobfpbgjkp { + #[prost(uint32, tag = "1")] + pub costume_id: u32, + #[prost(uint32, tag = "2")] + pub avatar_id: u32, + #[prost(uint32, tag = "11")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24360)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnnjpambagb { + #[prost(message, repeated, tag = "8")] + pub hcdnphnkbhb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25475)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcdkphlojgg { + #[prost(uint32, tag = "10")] + pub acbelmeikip: u32, + #[prost(message, repeated, tag = "11")] + pub pgbjioocoba: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1570)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eammeacfnfm { + #[prost(message, repeated, tag = "2")] + pub dndlhajhkho: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub mflcgkbieoo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub cddhfdeeghg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(845)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhoikmnofmh { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4469)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eocebijhedb { + #[prost(bool, tag = "6")] + pub lejlmjjdedc: bool, + #[prost(uint32, tag = "1")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfafldlcpdl { + #[prost(enumeration = "Cfedgdkjhmo", tag = "3")] + pub hfpboeeopbf: i32, + #[prost(uint32, tag = "12")] + pub knkbgnilfmb: u32, + #[prost(enumeration = "Aiogioppmha", tag = "14")] + pub hlbeakchibp: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpibibmgoll { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "4")] + pub gnegaogjlbd: u32, + #[prost(uint32, tag = "10")] + pub dblfncpdanb: u32, + #[prost(message, repeated, tag = "11")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjonjccaekj { + #[prost(uint64, tag = "1")] + pub guid: u64, + #[prost(uint32, tag = "11")] + pub trial_avatar_id: u32, + #[prost(uint32, tag = "12")] + pub godiceblbfl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4515)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lboalhpegbf { + #[prost(uint32, repeated, tag = "4")] + pub cmeedhjedin: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub eaodllegcae: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "12")] + pub ljejebelkmj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adjlggoaaoi { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "11")] + pub cijhbcaoepi: u32, + #[prost(message, repeated, tag = "12")] + pub obgpcopgake: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub fbbbjnhiplf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27878)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfniijljnop {} +#[derive(proto_gen::CmdID)] +#[cmdid(28489)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdimafnmehm { + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28393)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbpfikhbchd { + #[prost(uint32, tag = "5")] + pub scene_id: u32, + #[prost(message, optional, tag = "9")] + pub clfhggefdpm: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub fchfakepinp: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kblngodlpbk { + #[prost(uint32, tag = "5")] + pub end_time: u32, + #[prost(uint32, tag = "6")] + pub uid: u32, + #[prost(uint32, tag = "9")] + pub entity_id: u32, + #[prost(uint32, tag = "12")] + pub ojoapinglno: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9994)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npgdgcdjike { + #[prost(bool, tag = "2")] + pub hjfopbhakde: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4947)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aakglcoaocg { + #[prost(uint32, tag = "1")] + pub mpgfgndjlkc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22002)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nabfcahkhpf {} +#[derive(proto_gen::CmdID)] +#[cmdid(6248)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epffdafpkpj {} +#[derive(proto_gen::CmdID)] +#[cmdid(25890)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dapobaahobf { + #[prost(message, repeated, tag = "8")] + pub lbmlpbefaek: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3994)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mocfnnnkmha { + #[prost(string, tag = "6")] + pub hemdlgommkc: ::prost::alloc::string::String, + #[prost(bool, tag = "11")] + pub cimejkmjgpm: bool, + #[prost(uint32, tag = "7")] + pub jjlpijkgkon: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21889)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Koikekngkod { + #[prost(uint32, repeated, tag = "10")] + pub fjaihbldgio: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23744)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneInitFinishReq { + #[prost(uint32, tag = "6")] + pub enter_scene_token: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbhcdjobhmj { + #[prost(enumeration = "Hgagmbjdhfg", tag = "4")] + pub fpedhedekpe: i32, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(message, repeated, tag = "9")] + pub hdnmiejjdbg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28417)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbjmbhbbehp { + #[prost(message, optional, tag = "4")] + pub dcdncmknlif: ::core::option::Option, + #[prost(bool, tag = "7")] + pub ojmkfkclhdj: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20346)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjaepapfmbb { + #[prost(uint32, tag = "1")] + pub jefildjebaj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcgckiadjbp { + #[prost(message, repeated, tag = "14")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22017)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joajijhhfjf {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdblnhihjep { + #[prost(uint32, repeated, tag = "4")] + pub ipjiilbekpk: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub emepfngonei: bool, + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "11")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "15")] + pub fhcgkpipcic: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6352)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmnlfnadkbj { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdocbmjpdik { + #[prost(uint32, tag = "13")] + pub ojoapinglno: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22955)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkadimjmfoa { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub hijhpoccaoc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oolbipgmpjb { + #[prost(message, optional, tag = "1")] + pub mdmplabaiec: ::core::option::Option, + #[prost(bool, tag = "2")] + pub nkchbiafpom: bool, + #[prost(uint32, tag = "3")] + pub peajinifghm: u32, + #[prost(uint32, tag = "4")] + pub helabgmbigb: u32, + #[prost(string, tag = "5")] + pub ebbpboejjpp: ::prost::alloc::string::String, + #[prost(bool, tag = "6")] + pub pflajckehfa: bool, + #[prost(uint32, tag = "7")] + pub bkpmhmldihk: u32, + #[prost(uint32, tag = "8")] + pub ndameclaedh: u32, + #[prost(uint32, tag = "9")] + pub ojhglmdjcmk: u32, + #[prost(uint32, tag = "10")] + pub pkmjlhlcelo: u32, + #[prost(bool, tag = "11")] + pub dhaomgmmdpd: bool, + #[prost(bool, tag = "12")] + pub gblhfaeonkm: bool, + #[prost(uint32, tag = "13")] + pub ngddiacfmik: u32, + #[prost(uint32, tag = "14")] + pub oppfabknmmb: u32, + #[prost(uint64, tag = "15")] + pub dcompdppdpo: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akmdglodieo { + #[prost(uint32, repeated, tag = "6")] + pub lihiijooiee: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub lpjldcjkcei: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1569)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lobfhjlodaf { + #[prost(enumeration = "Jmeollkiong", tag = "2")] + pub reason: i32, + #[prost(enumeration = "Hkkcdiccimi", tag = "3")] + pub nkiolhkgjco: i32, + #[prost(uint32, repeated, tag = "5")] + pub phkpfjajfkj: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "7")] + pub pefbfdpildo: ::core::option::Option, + #[prost(bool, tag = "8")] + pub kbnhkamgpji: bool, + #[prost(message, repeated, tag = "11")] + pub niomengdmaj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub phnjpmeeibj: u32, + #[prost(uint32, tag = "13")] + pub kafapfjllgp: u32, + #[prost(uint32, repeated, tag = "14")] + pub abjmkdogamk: ::prost::alloc::vec::Vec, + #[prost(oneof = "lobfhjlodaf::Detail", tags = "611, 1629, 1939")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `LOBFHJLODAF`. +pub mod lobfhjlodaf { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "611")] + PveInfiniteActivitySettle(super::Kajamipdijn), + #[prost(message, tag = "1629")] + ArenaSettle(super::Aphokepjage), + #[prost(message, tag = "1939")] + PveActivitySettle(super::Adadbonbign), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mogbjopdgnk { + #[prost(uint32, tag = "5")] + pub jofbeiaclof: u32, + #[prost(message, repeated, tag = "6")] + pub lcchefgnagb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub ncnkmdbafeh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5667)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpinhphdlpj { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9673)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Facnncdagfo { + #[prost(uint64, tag = "3")] + pub guid: u64, + #[prost(uint32, tag = "12")] + pub room_id: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6090)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojnpgebbcoi { + #[prost(message, repeated, tag = "8")] + pub bbdmlllndmp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub eiikolgecfp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4085)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhakioekmcp { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub ljdmbidhpji: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1613)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pflbiamiild { + #[prost(uint32, tag = "9")] + pub mjeflbpjbkm: u32, + #[prost(uint32, tag = "6")] + pub njmjbknnoib: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4941)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Einjddjinpg { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "1")] + pub ijffkcgiaoj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kenglgeofhk { + #[prost(bool, tag = "4")] + pub khpojffhdil: bool, + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, + #[prost(message, optional, tag = "13")] + pub hojjlblkohj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnpfobpeglc { + #[prost(message, optional, tag = "7")] + pub mknjodnekeh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1157)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkneklpgbop { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20303)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkfnaefkbgg { + #[prost(uint32, tag = "14")] + pub target_uid: u32, + #[prost(oneof = "lkfnaefkbgg::Content", tags = "6, 3")] + pub content: ::core::option::Option, +} +/// Nested message and enum types in `LKFNAEFKBGG`. +pub mod lkfnaefkbgg { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Content { + #[prost(uint32, tag = "6")] + Icon(u32), + #[prost(string, tag = "3")] + Text(::prost::alloc::string::String), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bedgmdcoeen { + #[prost(uint32, tag = "4")] + pub ijagllbjkda: u32, + #[prost(message, repeated, tag = "6")] + pub ibjpfjkfbjo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub okkapkjihjb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27858)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijphdpfeemn { + #[prost(uint32, tag = "3")] + pub geihmkhcije: u32, + #[prost(uint32, tag = "9")] + pub entity_id: u32, + #[prost(uint32, tag = "11")] + pub aaopmgielok: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(669)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddpjlcopfik { + #[prost(message, optional, tag = "7")] + pub agllfjbkmjk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3548)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkldddiafef { + #[prost(uint32, tag = "11")] + pub lgcopnjbcnf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28350)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlacboajlop { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub jodpdbpgoab: u32, + #[prost(uint32, repeated, tag = "12")] + pub jdcapblplna: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmgbbmonffe { + #[prost(bool, tag = "7")] + pub dohhenfngpe: bool, + #[prost(uint64, tag = "14")] + pub avatar_id: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27786)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dddbnpmjpeb { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nomemjpfkno { + #[prost(message, repeated, tag = "2")] + pub bocnaepjlfl: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub mdjllpffooa: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjmdmpembnh { + #[prost(message, repeated, tag = "1")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehhnkoloaek { + #[prost(message, repeated, tag = "9")] + pub jajnjhddloj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghelcmbakjc { + #[prost(uint32, tag = "11")] + pub authority_peer_id: u32, + #[prost(uint32, tag = "12")] + pub entity_id: u32, + #[prost(message, optional, tag = "15")] + pub entity_authority_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmjnlhceddn { + #[prost(message, optional, tag = "12")] + pub nlkgmjnajhg: ::core::option::Option, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8542)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elniegkmgcn { + #[prost(message, repeated, tag = "14")] + pub ijjibglkpjl: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "2")] + pub kkonlphiahe: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub odkihaijllg: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub entity_id: u32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6584)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlebonbjlob { + #[prost(uint32, tag = "7")] + pub ccpigccdboi: u32, + #[prost(string, tag = "14")] + pub fmohhdblohm: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2568)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pggohhbnfco { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "9")] + pub ipkkbailkdi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub lfadnibldkc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnkgndgbdmd { + #[prost(uint32, repeated, tag = "3")] + pub hoepcmhjbhe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub gigkdjinolg: u32, + #[prost(uint32, repeated, tag = "8")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5640)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfjopcmffhh { + #[prost(bool, tag = "2")] + pub ankcbommojb: bool, + #[prost(uint32, tag = "3")] + pub ijffkcgiaoj: u32, + #[prost(bool, tag = "5")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "6")] + pub omgchbachci: u32, + #[prost(uint32, tag = "7")] + pub alnmhbapcgn: u32, + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "13")] + pub jdcgciohgbh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7711)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Foimicajimb { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint64, tag = "14")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idjeofdjkgi { + #[prost(message, repeated, tag = "2")] + pub pgonbleeaed: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25178)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgooajphaaf { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20322)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aimoimpijhg { + #[prost(uint32, repeated, tag = "9")] + pub jnfpmeijenp: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub idibjdpoemd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "10")] + pub bdgphdbflkm: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgnanakijel { + #[prost(int32, tag = "1")] + pub efahlpdcfan: i32, + #[prost(string, tag = "2")] + pub lldpnociddf: ::prost::alloc::string::String, + #[prost(string, repeated, tag = "4")] + pub epgobhiedoi: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, optional, tag = "5")] + pub ability_name: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub mpbebakodgf: u32, + #[prost(uint32, tag = "8")] + pub okapniodoog: u32, + #[prost(int32, tag = "13")] + pub cknolejbjem: i32, + #[prost(int32, tag = "15")] + pub nnhddjfmjfh: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(430)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aopmiahlgla { + #[prost(uint32, tag = "2")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "5")] + pub amblldmipfp: bool, + #[prost(message, repeated, tag = "6")] + pub oliebeklpim: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub pefplnjheli: u32, + #[prost(uint32, repeated, tag = "8")] + pub bomddcpikbe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27536)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aidbfacjedi { + #[prost(message, repeated, tag = "3")] + pub hopcjoddjop: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iipdddacagk { + #[prost(string, tag = "6")] + pub fdcpcibglmj: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "7")] + pub bdeombceoea: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Cegmlmcfcpm", repeated, tag = "11")] + pub bppepdepjdk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcnemggbdia { + #[prost(bool, tag = "1")] + pub hjfopbhakde: bool, + #[prost(uint32, tag = "5")] + pub avatar_id: u32, + #[prost(uint32, repeated, tag = "11")] + pub cnfodgeooef: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27731)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iabdncdfimm { + #[prost(string, repeated, tag = "3")] + pub mjifbdojhmk: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6319)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmdblfonhpa { + #[prost(bool, tag = "1")] + pub hppmegldgkf: bool, + #[prost(uint32, tag = "2")] + pub opdkgkmdllb: u32, + #[prost(uint32, tag = "4")] + pub khfffbadlcl: u32, + #[prost(uint32, tag = "5")] + pub kenikecfflm: u32, + #[prost(uint32, repeated, tag = "10")] + pub affix_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9072)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fflafdlfpod { + #[prost(uint32, repeated, tag = "8")] + pub himcbbodhcj: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub jejkgopbfnm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21550)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhadkhldjib { + #[prost(uint32, tag = "2")] + pub fheebhppgoa: u32, + #[prost(uint32, tag = "13")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23761)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acdidgpahih { + #[prost(uint32, tag = "5")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25511)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cefmkoginog { + #[prost(uint32, tag = "8")] + pub ccpigccdboi: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chmlpcnmidj { + #[prost(uint32, tag = "2")] + pub fcdlgpdhlka: u32, + #[prost(uint32, tag = "3")] + pub cmgfmdlfcfk: u32, + #[prost(uint32, tag = "5")] + pub lgbnfifcpjf: u32, + #[prost(bool, tag = "7")] + pub cfhjbflhanh: bool, + #[prost(uint32, tag = "8")] + pub affklogicmo: u32, + #[prost(uint32, tag = "11")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "15")] + pub diidchbeaba: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmfdjmdndca { + #[prost(map = "string, string", tag = "9")] + pub bfgbkaeafoh: ::std::collections::HashMap< + ::prost::alloc::string::String, + ::prost::alloc::string::String, + >, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27523)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpnfdljnkkg {} +#[derive(proto_gen::CmdID)] +#[cmdid(20895)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmpjmmcjnla { + #[prost(uint32, repeated, tag = "11")] + pub buff_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5571)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bikccpfgmpm { + #[prost(uint32, repeated, tag = "3")] + pub gbmoedfdlfi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub gfbphhajajm: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub ldedoinniok: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28867)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njfipabihgc { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(bool, tag = "12")] + pub bgaoacgaldg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23107)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eamfcnlfnod { + #[prost(uint32, tag = "6")] + pub fish_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20843)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icpanoooeho { + #[prost(uint32, tag = "1")] + pub draft_id: u32, + #[prost(uint32, tag = "11")] + pub dnklodmjija: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1001)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbpjbmlegli { + #[prost(message, repeated, tag = "10")] + pub mfefigmnoah: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jciaongnhnl { + #[prost(uint64, repeated, tag = "2")] + pub ibplbjjjlpe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28079)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohgdjobnkhe { + #[prost(uint32, repeated, tag = "1")] + pub nnfbhpjcono: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "1381")] + pub cfkplnkhfkn: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "6")] + pub dcompdppdpo: u64, + #[prost(bool, tag = "4")] + pub jfjdimpcnnf: bool, + #[prost(bool, tag = "1004")] + pub hkjpcjflnfj: bool, + #[prost(bool, tag = "648")] + pub oedcpfgakam: bool, + #[prost(uint32, tag = "9")] + pub pcklffnfnge: u32, + #[prost(uint32, tag = "1059")] + pub jpeglebnigl: u32, + #[prost(uint32, tag = "13")] + pub clcabcnlgfm: u32, + #[prost(uint32, tag = "12")] + pub cjbckcobhff: u32, + #[prost(uint32, tag = "1724")] + pub gikjkdblfad: u32, + #[prost(uint32, tag = "3")] + pub bhpgplpcnpl: u32, + #[prost(uint32, tag = "5")] + pub jlfheeipddp: u32, + #[prost(float, tag = "247")] + pub speed: f32, + #[prost(uint32, tag = "8")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "514")] + pub jjkibhbpppo: u32, + #[prost(uint32, tag = "10")] + pub ejnglcjnapn: u32, + #[prost(uint32, tag = "14")] + pub aboagokkiea: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1944)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmoahpmijjf { + #[prost(uint32, repeated, tag = "8")] + pub enbgjlpnppj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4165)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icdaahmbbge {} +#[derive(proto_gen::CmdID)] +#[cmdid(26337)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gaknhgjecin { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(map = "uint32, float", tag = "15")] + pub fight_prop_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbpbpkmalcb { + #[prost(uint32, tag = "1")] + pub lgkdhflmnmj: u32, + #[prost(bool, tag = "5")] + pub ngdokajiafh: bool, + #[prost(bool, tag = "6")] + pub mdjjmemcpam: bool, + #[prost(message, optional, tag = "7")] + pub abpjibdjipa: ::core::option::Option, + #[prost(uint32, repeated, tag = "14")] + pub gkebbeegjhm: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub olfpblplgio: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbdbnlccdmc { + #[prost(uint32, tag = "2")] + pub dmnldppgokg: u32, + #[prost(bool, tag = "7")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(message, repeated, tag = "10")] + pub kgogfpoddlj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "15")] + pub lcjiceeekbi: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24662)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hoeobchgaae { + #[prost(uint32, tag = "3")] + pub jdhfhcfeonf: u32, + #[prost(uint32, tag = "8")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inagocajomd { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "7")] + pub ljfafdhikjd: u32, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "12")] + pub ljejebelkmj: u32, + #[prost(uint32, tag = "13")] + pub kdplcbjgbaf: u32, + #[prost(uint32, tag = "14")] + pub kmaehpagkfk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28603)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khdffgojejg { + #[prost(uint32, tag = "4")] + pub pfffhfijkng: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub emdjlfdjoec: u32, + #[prost(uint32, tag = "11")] + pub pgkgbojoofn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7754)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phiifgmflma { + #[prost(uint32, repeated, tag = "1")] + pub dkmpnaghblm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20608)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhciiddpgnm {} +#[derive(proto_gen::CmdID)] +#[cmdid(21308)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glflabhecng { + #[prost(uint32, tag = "9")] + pub pos: u32, + #[prost(uint32, tag = "3")] + pub entity_id: u32, + #[prost(enumeration = "Ckijcdmelnh", tag = "10")] + pub oaahhnmhafh: i32, + #[prost(bool, tag = "14")] + pub eilhbjjepok: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7702)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blebjakfekm { + #[prost(uint32, tag = "7")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22445)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcbjicekmkg { + #[prost(map = "uint32, message", tag = "12")] + pub ahmpnghjhml: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Benlibocjlp { + #[prost(message, repeated, tag = "13")] + pub override_map: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28504)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eecbjmdaodd { + #[prost(bool, tag = "10")] + pub ebhfibehjge: bool, + #[prost(uint32, tag = "8")] + pub jchhllebmja: u32, + #[prost(uint32, tag = "13")] + pub cmdnkflfhia: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Himfnhifboj { + #[prost(bool, tag = "1")] + pub lbmialpeoba: bool, + #[prost(bool, tag = "2")] + pub cepnbgjomfo: bool, + #[prost(uint32, tag = "4")] + pub hcfiiaiaknk: u32, + #[prost(message, optional, tag = "5")] + pub mmhjheibcjl: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(message, repeated, tag = "8")] + pub fojbpljlmcd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub gnbmdepneie: u32, + #[prost(bool, tag = "10")] + pub hjeilabenak: bool, + #[prost(uint32, tag = "11")] + pub pckeoicnagm: u32, + #[prost(bool, tag = "12")] + pub bdghlbocdni: bool, + #[prost(uint32, tag = "13")] + pub jgihcibojpn: u32, + #[prost(uint32, tag = "14")] + pub dofffapagpo: u32, + #[prost(uint32, tag = "1656")] + pub ddgpijchcgp: u32, + #[prost(uint32, tag = "1990")] + pub donadappdog: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blkghgclobb { + #[prost(uint32, tag = "6")] + pub igjhlojeeei: u32, + #[prost(uint32, tag = "9")] + pub khmdgkajflc: u32, + #[prost(message, repeated, tag = "14")] + pub mfnbpfpdnck: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28503)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgfondglifk { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, + #[prost(uint32, tag = "4")] + pub lmjnokajeki: u32, + #[prost(uint32, tag = "6")] + pub pafojlhcaeh: u32, + #[prost(uint32, tag = "10")] + pub end_time: u32, + #[prost(uint32, tag = "11")] + pub ojoapinglno: u32, + #[prost(oneof = "dgfondglifk::Detail", tags = "2, 15")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `DGFONDGLIFK`. +pub mod dgfondglifk { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "2")] + FlowerStartParam(super::Bhallidcfhl), + #[prost(message, tag = "15")] + ElectroherculesStartParam(super::Ngeonoogcik), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fehclekfaek { + #[prost(uint32, tag = "13")] + pub avatar_id: u32, + #[prost(bool, tag = "15")] + pub hblihlkjeda: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mppaadnhepp { + #[prost(uint64, repeated, tag = "4")] + pub fikgdofabee: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkhglcjocek { + #[prost(message, repeated, tag = "1")] + pub bdobhhhjkma: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3835)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfaeneakbkd { + #[prost(uint32, tag = "11")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21420)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bekiaaomied { + #[prost(uint32, repeated, tag = "1")] + pub clpdklnbcme: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub kglilblfnmf: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "8")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajnedpnipil { + #[prost(uint32, tag = "2")] + pub kbjnlbkmedp: u32, + #[prost(uint32, tag = "10")] + pub lhfafneindc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3197)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lheadcpnnmm { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2958)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfbnppnoifk { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, optional, tag = "11")] + pub glilgfhhhhm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28729)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilioejaljmb { + #[prost(uint32, repeated, tag = "10")] + pub lgpnfigndgh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27144)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaoojeecpjg { + #[prost(uint64, repeated, tag = "8")] + pub avatar_team_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "4")] + pub cur_avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23915)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmmnnnlgclp { + #[prost(message, repeated, tag = "5")] + pub ohpejhebpag: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub nehohohdilc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8066)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jepijfemfaj {} +#[derive(proto_gen::CmdID)] +#[cmdid(23904)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aoefegefmjk { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28690)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blkonoefkgi { + #[prost(uint32, tag = "8")] + pub mmldgpbiecc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26019)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jadkoepkbdd { + #[prost(uint32, repeated, tag = "1")] + pub oepccikngci: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub kiijhamjkjb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaokjonbmio { + #[prost(uint32, tag = "1")] + pub jalbjdenpkj: u32, + #[prost(bool, tag = "2")] + pub hkgkclkjdop: bool, + #[prost(uint32, tag = "3")] + pub meiehepfaga: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecfcipldpad { + #[prost(uint32, repeated, tag = "2")] + pub pjdfiglakdi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub amhhcbfflpl: u32, + #[prost(uint32, tag = "15")] + pub jlannimpjoi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22209)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afaenfdjagc { + #[prost(bool, tag = "4")] + pub ebhfibehjge: bool, + #[prost(uint32, tag = "7")] + pub jchhllebmja: u32, + #[prost(uint32, tag = "8")] + pub cmdnkflfhia: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggcffdkleen { + #[prost(oneof = "ggcffdkleen::Adebpdlaojp", tags = "5, 9, 12")] + pub adebpdlaojp: ::core::option::Option, +} +/// Nested message and enum types in `GGCFFDKLEEN`. +pub mod ggcffdkleen { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Adebpdlaojp { + #[prost(string, tag = "5")] + StrParam(::prost::alloc::string::String), + #[prost(float, tag = "9")] + FltParam(f32), + #[prost(uint32, tag = "12")] + IntParam(u32), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mplfhjhmdpi { + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(uint32, repeated, tag = "9")] + pub bomddcpikbe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25784)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anbnakfdlha { + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(message, optional, tag = "12")] + pub platform: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub scene_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4006)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mklepodleoh { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27287)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkkmimfaplp { + #[prost(message, repeated, tag = "6")] + pub fhpbcgolndf: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Igohjibcdfa", tag = "15")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2820)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opagbknphgg { + #[prost(uint32, tag = "11")] + pub cnkddkikglg: u32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25620)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gppjnehjpch { + #[prost(map = "uint32, uint32", tag = "3")] + pub dojojeplhap: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9051)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ChangeAvatarReq { + #[prost(message, optional, tag = "3")] + pub move_pos: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub skill_id: u32, + #[prost(bool, tag = "15")] + pub is_move: bool, + #[prost(bool, tag = "10")] + pub implcnklfed: bool, + #[prost(uint64, tag = "5")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21213)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adljmjpfncp { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9076)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klliofbogcb { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(bool, tag = "8")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "11")] + pub draft_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chfcchffocp { + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "13")] + pub jhfmeficaal: bool, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21522)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aeiknpbladl { + #[prost(message, repeated, tag = "2")] + pub ppochleddgp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23960)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmcogblameb { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "3")] + pub eajeeccmnjl: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "4")] + pub bebmoibgnhk: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "5")] + pub ckjmplpbdbp: ::std::collections::HashMap, + #[prost(uint32, tag = "6")] + pub pdbokjdbkoh: u32, + #[prost(uint32, repeated, tag = "8")] + pub gncpmgacbpp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub ockonjamkpp: u32, + #[prost(uint32, tag = "13")] + pub jlcgaiihaco: u32, + #[prost(uint32, tag = "14")] + pub ppdmicpgedo: u32, + #[prost(uint32, tag = "15")] + pub kkfhbldeaba: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5010)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nglmnmhfbpf { + #[prost(uint32, tag = "15")] + pub ffhembokbef: u32, + #[prost(uint32, tag = "4")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbhejlloglb { + #[prost(uint32, tag = "1")] + pub dllimpbljef: u32, + #[prost(uint32, tag = "5")] + pub degicaellff: u32, + #[prost(uint32, tag = "6")] + pub njkeohkhhfe: u32, + #[prost(message, optional, tag = "13")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22697)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nginlgihckg { + #[prost(message, optional, tag = "3")] + pub gejdoahbape: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4233)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eofaggiceck { + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibhkcdhmckc { + #[prost(uint32, tag = "4")] + pub uid: u32, + #[prost(uint32, tag = "8")] + pub ebobohkpcog: u32, + #[prost(uint32, tag = "9")] + pub elffnlpjfgd: u32, + #[prost(uint32, tag = "11")] + pub ohbolpmahpc: u32, + #[prost(uint32, tag = "13")] + pub ldhlfnfblim: u32, + #[prost(message, repeated, tag = "14")] + pub mbfcfgopeog: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub jahjojochom: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmfabckmaof { + #[prost(message, repeated, tag = "2")] + pub innkipjcjah: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub bknafebffjj: u32, + #[prost(bool, tag = "5")] + pub fcaeaonkgga: bool, + #[prost(uint32, tag = "6")] + pub jigfbecbojb: u32, + #[prost(message, repeated, tag = "8")] + pub iklojogephk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub igjhlojeeei: u32, + #[prost(uint32, tag = "13")] + pub khmdgkajflc: u32, + #[prost(uint32, tag = "14")] + pub fecmlpmpopc: u32, + #[prost(uint32, tag = "15")] + pub jndhlpndocc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20429)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mlgfggeiknl { + #[prost(enumeration = "Himmemhogfb", tag = "1")] + pub mfmlakbiaed: i32, + #[prost(bool, tag = "9")] + pub fojakdnohaf: bool, + #[prost(uint64, tag = "3")] + pub dcompdppdpo: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdihlklffch { + #[prost(uint32, tag = "4")] + pub ejnglcjnapn: u32, + #[prost(uint32, tag = "6")] + pub peajinifghm: u32, + #[prost(bool, tag = "13")] + pub lhhbinhjaoe: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22684)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmjkcaplcpk { + #[prost(uint32, tag = "4")] + pub fkhohkelkoe: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Labjlhgmneb { + #[prost(bool, tag = "1")] + pub kfpmghhdndo: bool, + #[prost(uint32, tag = "4")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "6")] + pub mgcmnplnjkl: u32, + #[prost(message, optional, tag = "7")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(uint32, repeated, tag = "9")] + pub oeifpldonkf: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25746)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mknehillinb { + #[prost(bool, tag = "13")] + pub bdgphdbflkm: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khgampkleeg { + #[prost(uint32, tag = "1")] + pub gpaeljhnaek: u32, + #[prost(bool, tag = "12")] + pub obbgbmeploj: bool, + #[prost(uint32, tag = "15")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25397)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alnjblldele { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Finkbpcdeif { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "15")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfebbibgnid { + #[prost(message, optional, tag = "6")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub uid: u32, + #[prost(string, tag = "9")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "10")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "11")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3632)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbjpfjobokl { + #[prost(uint32, tag = "5")] + pub hoipfdomipj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27941)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmhonoafemc {} +#[derive(proto_gen::CmdID)] +#[cmdid(20)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcgkhnebapp { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "5")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub hljohdkcbjm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9899)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieldmniphof { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnjfmminnon { + #[prost(uint32, tag = "9")] + pub ilpfcpokhpm: u32, + #[prost(bool, tag = "10")] + pub hppmegldgkf: bool, + #[prost(uint32, repeated, tag = "12")] + pub jiphaoflhch: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dopeeelonna { + #[prost(uint32, tag = "1")] + pub mbdcfmkejfp: u32, + #[prost(bool, tag = "2")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkohnkiembl { + #[prost(uint32, tag = "4")] + pub uid: u32, + #[prost(enumeration = "Jjpmgejnaao", tag = "5")] + pub reason: i32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Weapon { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub exp: u32, + #[prost(uint32, tag = "3")] + pub promote_level: u32, + #[prost(map = "uint32, uint32", tag = "4")] + pub affix_map: ::std::collections::HashMap, + #[prost(bool, tag = "5")] + pub hhlnnpoildl: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkngbdbkkhe { + #[prost(uint32, tag = "1")] + pub ojoapinglno: u32, + #[prost(bool, tag = "3")] + pub napmcbkmnaa: bool, + #[prost(int32, tag = "11")] + pub koinnjpenfl: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28272)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjobijmbifj { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(string, tag = "11")] + pub kadfmamhgbg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20170)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Foooenbloko { + #[prost(bool, tag = "1")] + pub dggckmikbmo: bool, + #[prost(map = "uint32, message", tag = "6")] + pub onnlnefnfgj: ::std::collections::HashMap, + #[prost(uint32, tag = "10")] + pub nnaalgjoaio: u32, + #[prost(uint32, tag = "12")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgpfakapmmb { + #[prost(uint32, tag = "1")] + pub emfehcplbhe: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarRenameInfo { + #[prost(string, tag = "1")] + pub hemdlgommkc: ::prost::alloc::string::String, + #[prost(uint32, tag = "9")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2154)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agiefpaljee { + #[prost(uint32, tag = "2")] + pub jcejajfndhm: u32, + #[prost(message, repeated, tag = "8")] + pub pbebcpgdlco: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub gehpjhapohj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6778)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcimlhafamm { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhljldkmhcj { + #[prost(message, repeated, tag = "7")] + pub avatar_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2082)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbbinonpngg { + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, + #[prost(uint32, tag = "10")] + pub fbgjlogekgn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26021)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pceidkemmno { + #[prost(message, repeated, tag = "8")] + pub hnpcfdlpono: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27742)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjkncmnlchm { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub jchhllebmja: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8497)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebiigfojgen { + #[prost(uint32, repeated, tag = "6")] + pub skill_id: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5644)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpcnpkcbdai { + #[prost(message, optional, tag = "2")] + pub kkonlphiahe: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "15")] + pub pbhhlnmhfjf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjhkknpinbg { + #[prost(uint32, tag = "2")] + pub ccpigccdboi: u32, + #[prost(uint32, tag = "3")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "13")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9760)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbfcphmligl { + #[prost(uint32, tag = "8")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djblifkflpo { + #[prost(uint32, tag = "1")] + pub dekgjkaicja: u32, + #[prost(uint32, tag = "4")] + pub kbianhciije: u32, + #[prost(uint32, tag = "7")] + pub anfnkobfmie: u32, + #[prost(uint32, tag = "8")] + pub aecnolhaill: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28895)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnphcnfgedb { + #[prost(message, repeated, tag = "2")] + pub nhmokfmcfee: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub neijigcohad: u32, + #[prost(uint32, tag = "11")] + pub mmfkdhalglg: u32, + #[prost(uint32, tag = "12")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "14")] + pub eopffipdkgn: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1898)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fbfgbikidib { + #[prost(uint32, repeated, tag = "6")] + pub hcfciioklkb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub flkpgmlnfgf: u32, + #[prost(uint32, tag = "11")] + pub hpbphgoeaka: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1495)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ackhnbmmhan { + #[prost(message, repeated, tag = "9")] + pub nmioeeppfgj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3196)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkbcombnbik { + #[prost(bool, tag = "14")] + pub akdgmpmndfc: bool, + #[prost(uint64, tag = "1")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Molmlgeokil { + #[prost(message, repeated, tag = "13")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fccefpnfmbh { + #[prost(map = "uint32, uint32", tag = "15")] + pub aiipdkefhba: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28777)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkgnmegieoi { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(message, optional, tag = "10")] + pub nfifnaleppi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npkgomckaci { + #[prost(message, repeated, tag = "4")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22980)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pabbjjjheka { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28016)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfpmnfjaglo { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub acohjbclcjd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aknanpnejlp { + #[prost(int32, repeated, tag = "1")] + pub abkebabahpk: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "2")] + pub pjiaolagoai: i32, + #[prost(enumeration = "Igbmhjdnidc", repeated, tag = "5")] + pub lkaogkmdaam: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmkkailppji { + #[prost(map = "uint32, message", tag = "7")] + pub kjjdncgamff: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8575)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbkpcllmcjm { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24233)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdllnecmnob { + #[prost(message, repeated, tag = "12")] + pub dmkgnhlomka: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cemhchhjokl { + #[prost(message, repeated, tag = "6")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egimgelhhko { + #[prost(uint32, tag = "3")] + pub jjpcpmfdneh: u32, + #[prost(uint32, tag = "6")] + pub blmplkibihp: u32, + #[prost(uint32, tag = "11")] + pub pifadjgjcmn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26727)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cahphfkdcli {} +#[derive(proto_gen::CmdID)] +#[cmdid(1000)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdjllfnaiae { + #[prost(uint32, tag = "6")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23578)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eahaeeoemek { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, + #[prost(message, optional, tag = "14")] + pub nfbbohidhil: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22478)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlamopalfig { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6546)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjngnegpdje { + #[prost(uint32, tag = "8")] + pub avatar_id: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21448)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnibecjhged { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, optional, tag = "4")] + pub nkldeolfebp: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6604)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifemkgalemm { + #[prost(uint32, tag = "3")] + pub inehpogkbmd: u32, + #[prost(uint64, tag = "7")] + pub avatar_guid: u64, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9890)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbplmfmcddg { + #[prost(uint32, repeated, tag = "14")] + pub olpbbgienff: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2347)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcngiokbjmi { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(string, tag = "11")] + pub version: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23956)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdfdkcadbfk { + #[prost(message, repeated, tag = "14")] + pub djhnhpipfba: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24094)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afdlgajfghc { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub ocmhgmlnhjd: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(245)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aepjnehpjhp { + #[prost(uint32, tag = "2")] + pub ndbmlahhnjn: u32, + #[prost(uint32, tag = "4")] + pub ehggbfhklmg: u32, + #[prost(uint64, tag = "8")] + pub opbnfdpdjgd: u64, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkcpfciemae { + #[prost(float, tag = "1")] + pub cdjmjlahfgk: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29320)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cipngcdihdj { + #[prost(uint32, tag = "7")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npjbbeknfbp { + #[prost(map = "uint32, uint32", tag = "7")] + pub nineiahajpk: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub ohkidhnabib: u32, + #[prost(uint32, tag = "12")] + pub comefdoonhd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24828)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gefdfpokokg {} +#[derive(proto_gen::CmdID)] +#[cmdid(23843)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljnfldhhmnf { + #[prost(bool, tag = "7")] + pub innefhgkaim: bool, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(bool, tag = "12")] + pub ajlcedmppie: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22926)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofmmgkhdepe { + #[prost(uint32, tag = "10")] + pub ohkidhnabib: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25560)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnbjfgbppdb { + #[prost(message, optional, tag = "2")] + pub kkonlphiahe: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25756)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmpffpfeagk { + #[prost(bool, tag = "1")] + pub nofkhedpmpp: bool, + #[prost(bool, tag = "6")] + pub lkcaeopcfoc: bool, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imgbdnmdgpd { + #[prost(uint32, tag = "1")] + pub gpdogmpijfc: u32, + #[prost(uint32, tag = "9")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, + #[prost(oneof = "imgbdnmdgpd::Detail", tags = "5, 6, 7")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `IMGBDNMDGPD`. +pub mod imgbdnmdgpd { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "5")] + MusicInfo(super::Ahnhpbhfapn), + #[prost(message, tag = "6")] + FallInfo(super::Akoiabnkomp), + #[prost(message, tag = "7")] + BalloonInfo(super::Pgildafjiho), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(25422)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lihpblfblmb { + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26957)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pakcjclmnmg { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27241)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kalkahlnljb { + #[prost(uint32, tag = "1")] + pub hghmffpaboo: u32, + #[prost(message, repeated, tag = "2")] + pub gfjficfildi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub aiihckimnnn: u32, + #[prost(uint32, tag = "4")] + pub flbfcpekoje: u32, + #[prost(uint32, tag = "5")] + pub hpepelcajbj: u32, + #[prost(uint32, tag = "6")] + pub fckcnhkoabi: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub keaaloaehcm: u32, + #[prost(uint32, tag = "9")] + pub kijjbikfdkn: u32, + #[prost(uint32, tag = "10")] + pub khdgppfkkoi: u32, + #[prost(uint32, tag = "11")] + pub clkpaggjmac: u32, + #[prost(uint32, tag = "12")] + pub kgldfijajie: u32, + #[prost(uint32, tag = "13")] + pub ahbcofjamcp: u32, + #[prost(uint32, tag = "14")] + pub kpidllgnojf: u32, + #[prost(uint32, tag = "15")] + pub anhigelnhkp: u32, + #[prost(bool, tag = "390")] + pub jdaefkhfkka: bool, + #[prost(uint32, tag = "611")] + pub afbcgipiakc: u32, + #[prost(bool, tag = "684")] + pub dbnkdmfdcng: bool, + #[prost(uint32, tag = "851")] + pub ncffdckbeli: u32, + #[prost(bool, tag = "1270")] + pub hnlmmobiobe: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7150)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Impgcbmljio { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhmkllpggan { + #[prost(uint64, tag = "3")] + pub avatar_guid: u64, + #[prost(bool, tag = "8")] + pub dohhenfngpe: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikemojjiook { + #[prost(message, optional, tag = "1")] + pub iaknhjgcpgl: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(int32, repeated, tag = "10")] + pub lncigfcjcaa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oigfgeaeheo { + #[prost(map = "uint32, int32", tag = "1")] + pub hfenjdappbm: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub lhlgjeonmdl: u32, + #[prost(uint32, tag = "5")] + pub poalempcfof: u32, + #[prost(uint32, tag = "10")] + pub lanbakkbbgh: u32, + #[prost(bool, tag = "11")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8366)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Diifgcmiemo { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint64, repeated, tag = "7")] + pub ibphcajngei: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub oiphhklaibf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efenjagbgmf { + #[prost(uint32, tag = "2")] + pub djblekfbkmd: u32, + #[prost(uint32, tag = "4")] + pub pfegabjgamf: u32, + #[prost(bool, tag = "7")] + pub eialjbaengj: bool, + #[prost(bool, tag = "10")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9426)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbdekdelfpp { + #[prost(uint32, tag = "1")] + pub omnkhjbmgkl: u32, + #[prost(uint64, tag = "3")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25205)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Libmfiidela { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5853)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Andbffmefck { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(message, optional, tag = "6")] + pub pfpfhkgaifj: ::core::option::Option, + #[prost(enumeration = "Igohjibcdfa", tag = "9")] + pub lkidbhiooog: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20383)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clpplcengdm { + #[prost(bool, tag = "1")] + pub ogppjhabdee: bool, + #[prost(message, repeated, tag = "3")] + pub mfapnmchemg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "10")] + pub reason: u32, + #[prost(bool, tag = "11")] + pub bjjebhbfhob: bool, + #[prost(message, repeated, tag = "12")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub igcobpmnife: bool, + #[prost(message, optional, tag = "14")] + pub position: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23477)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cdfgkakjjon { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25408)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjmpgdnnmna { + #[prost(uint32, tag = "13")] + pub ljdmbidhpji: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2429)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agmoeioeikn { + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfojehjafic { + #[prost(message, optional, tag = "8")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27292)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkanfjnekae { + #[prost(message, optional, tag = "15")] + pub mhfdgagiepa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26770)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcfblagkdhe { + #[prost(uint32, tag = "9")] + pub keclbcogahi: u32, + #[prost(uint32, tag = "3")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4726)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amnnndhbcng { + #[prost(message, repeated, tag = "4")] + pub ncohdkjjpkf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7560)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmkojnlmelh {} +#[derive(proto_gen::CmdID)] +#[cmdid(9269)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emnhneloaol { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22607)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnidadkafli { + #[prost(uint32, tag = "2")] + pub bhkedlmdgpm: u32, + #[prost(uint32, tag = "9")] + pub omgchbachci: u32, + #[prost(bool, tag = "14")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28296)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlhlhcmpcbk { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub name_id: u32, + #[prost(uint32, tag = "15")] + pub dmlcigbdpii: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbbadjdnlkf { + #[prost(message, optional, tag = "10")] + pub ncmmbchombo: ::core::option::Option, + #[prost(bool, tag = "15")] + pub giacdaphfao: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2304)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipoofoblbmc {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aifbbpogcdc { + #[prost(int32, tag = "1")] + pub gnjcidhobia: i32, + #[prost(enumeration = "Pcfijjmkglb", tag = "12")] + pub r#type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omijfbdkonf { + #[prost(uint32, tag = "6")] + pub ijffkcgiaoj: u32, + #[prost(uint32, tag = "8")] + pub param: u32, + #[prost(uint32, tag = "9")] + pub ndehkhcalmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4825)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eiofiehhkib { + #[prost(bool, tag = "13")] + pub fdcnbclcdfk: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8670)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnfnfndecck { + #[prost(message, optional, tag = "5")] + pub mhkfilfibke: ::core::option::Option, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8207)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mckciiacbpk { + #[prost(uint32, tag = "5")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldhbdignhcl { + #[prost(uint32, repeated, tag = "1")] + pub ilcgedomomo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6481)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnkpennokld { + #[prost(bool, tag = "6")] + pub dggckmikbmo: bool, + #[prost(bool, tag = "9")] + pub jiglgehaajk: bool, + #[prost(uint64, tag = "11")] + pub dcompdppdpo: u64, + #[prost(uint32, tag = "14")] + pub jlfheeipddp: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4172)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aofgckpldei { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poklpbjoigi { + #[prost(uint32, tag = "4")] + pub costume_id: u32, + #[prost(uint32, tag = "9")] + pub avatar_id: u32, + #[prost(uint64, tag = "14")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24213)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggobdmggbma { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub lgcopnjbcnf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7864)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiighoiglgh { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub ljjbkffffmc: u32, + #[prost(uint32, tag = "9")] + pub goakcbglbmj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhpnfbffoef { + #[prost(message, repeated, tag = "15")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5189)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcladdpbgcb { + #[prost(map = "uint32, uint32", tag = "11")] + pub fmhodgopcgj: ::std::collections::HashMap, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "15")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amifccdhbcp { + #[prost(uint32, repeated, tag = "2")] + pub mbdfkfepnga: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub bkmijhdkgfc: u32, + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "11")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "14")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4763)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Caajcjdafap { + #[prost(uint32, tag = "7")] + pub bcglgcjjifh: u32, + #[prost(uint32, tag = "2")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obbcmgomkci { + #[prost(bool, tag = "1")] + pub fnhbajobeid: bool, + #[prost(uint32, tag = "2")] + pub dpcjjlmldnm: u32, + #[prost(uint32, tag = "7")] + pub pfbhahgjgfh: u32, + #[prost(message, repeated, tag = "8")] + pub leglpgmhnak: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub ldehfnnmjjj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub version: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1010)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnephnkgbia { + #[prost(uint32, tag = "6")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phlflgngojj { + #[prost(message, repeated, tag = "4")] + pub gocbhmdladb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22865)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mecbdcoaffl { + #[prost(bool, tag = "2")] + pub jpinaohpbbk: bool, + #[prost(uint32, tag = "6")] + pub ikobfndgfmi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26059)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcfdkbdlnhj { + #[prost(uint32, tag = "13")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22746)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anmfljpikag { + #[prost(message, optional, tag = "11")] + pub bimmhjbdpej: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26810)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdhhojppghk { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub fnbpgfaglkf: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25015)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfmchmlhbje { + #[prost(message, repeated, tag = "4")] + pub apndffijkdm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub mhfddmdclck: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhgjfjlcbgi { + #[prost(message, optional, tag = "4")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub cnbbmpejehb: u32, + #[prost(float, tag = "6")] + pub mjpdbgbpbel: f32, + #[prost(uint32, tag = "7")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "9")] + pub naccggjjefl: u32, + #[prost(uint32, tag = "10")] + pub bmccedcpbnf: u32, + #[prost(uint32, tag = "11")] + pub fgdafkpblmh: u32, + #[prost(message, repeated, tag = "12")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "15")] + pub kbckkpnlbjc: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1957)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pakhelpikll { + #[prost(uint32, tag = "1")] + pub ghiaogllldi: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub position: u32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aichhobnijk { + #[prost(oneof = "aichhobnijk::Neolbfjnjna", tags = "1, 2")] + pub neolbfjnjna: ::core::option::Option, +} +/// Nested message and enum types in `AICHHOBNIJK`. +pub mod aichhobnijk { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Neolbfjnjna { + #[prost(string, tag = "1")] + Str(::prost::alloc::string::String), + #[prost(uint32, tag = "2")] + Hash(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(9584)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmebhplionk { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibommpckklg { + #[prost(uint32, tag = "1")] + pub gbamhbbfpkn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5748)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knngjfdcfnd { + #[prost(uint64, tag = "5")] + pub mleambigbfc: u64, + #[prost(string, tag = "11")] + pub candmcipijg: ::prost::alloc::string::String, + #[prost(string, tag = "14")] + pub pcapihekaoo: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3734)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarTeamAllDataNotify { + #[prost(uint32, repeated, tag = "1")] + pub backup_avatar_team_order_list: ::prost::alloc::vec::Vec, + #[prost(uint64, repeated, tag = "5")] + pub temp_avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub cur_avatar_team_id: u32, + #[prost(map = "uint32, message", tag = "15")] + pub avatar_team_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27698)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lllbnhdlbaj { + #[prost(uint32, tag = "8")] + pub mhjeokngcdf: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(323)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlfbeahfpnp { + #[prost(uint32, tag = "14")] + pub target_uid: u32, + #[prost(bool, tag = "12")] + pub dmnhppkfbni: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6751)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dogmnhldfkj { + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(message, repeated, tag = "11")] + pub olamgiolbcg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dddiagdhdho { + #[prost(uint32, tag = "1")] + pub cbdgfeomfig: u32, + #[prost(uint32, tag = "3")] + pub njmeoanobdd: u32, + #[prost(uint32, tag = "5")] + pub ehejdjoeind: u32, + #[prost(uint32, tag = "6")] + pub dfdajmdfked: u32, + #[prost(message, repeated, tag = "9")] + pub mncimgkbckh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub skill_id: u32, + #[prost(uint32, tag = "15")] + pub eclpjkhfdne: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20047)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkaphadcgce { + #[prost(enumeration = "Himmemhogfb", tag = "2")] + pub mfmlakbiaed: i32, + #[prost(uint64, tag = "10")] + pub dcompdppdpo: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmphknocgpj { + #[prost(uint32, tag = "1")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "8")] + pub ihlnecmiifp: u32, + #[prost(uint32, tag = "9")] + pub ilpjbepjdlp: u32, + #[prost(enumeration = "Jgjlfaeigaj", tag = "10")] + pub jegelnbdkbk: i32, + #[prost(uint32, tag = "11")] + pub hkeeinbhfhm: u32, + #[prost(uint32, tag = "14")] + pub pfaiipmaneo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knplimembkj { + #[prost(message, repeated, tag = "3")] + pub dhajoibfjjn: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "8")] + pub nhjlohhkhff: ::core::option::Option, + #[prost(bool, tag = "12")] + pub hijkjkmnpek: bool, + #[prost(bool, tag = "13")] + pub ijfkopojcdg: bool, + #[prost(message, repeated, tag = "14")] + pub hfclbkfpoje: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(240)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aapenfejjdj { + #[prost(uint32, tag = "8")] + pub ilieopgmdgo: u32, + #[prost(uint32, tag = "14")] + pub cjcjonhpiio: u32, + #[prost(uint32, tag = "10")] + pub fbbbjnhiplf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(50)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onepffeabid { + #[prost(uint32, tag = "8")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27059)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gikenponhbh { + #[prost(uint32, tag = "8")] + pub cjmhjhijmjn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1684)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjoafpoapid { + #[prost(message, repeated, tag = "3")] + pub jhgochfckej: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub ocfienlfjck: u32, + #[prost(uint32, tag = "7")] + pub emmffkcnboi: u32, + #[prost(uint32, tag = "10")] + pub bndbacffgkm: u32, + #[prost(uint32, tag = "15")] + pub kleoleibpkd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5131)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gcngloddjln { + #[prost(message, repeated, tag = "6")] + pub ehcoglilggh: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3984)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elfdjceafjh { + #[prost(uint32, tag = "1")] + pub cjfgadhmeol: u32, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub item_id: u32, + #[prost(uint64, tag = "13")] + pub guid: u64, + #[prost(uint64, tag = "15")] + pub bochklkfmik: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkkcegboegg { + #[prost(bool, tag = "9")] + pub eilhbjjepok: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljbdgcbkfnd { + #[prost(uint32, repeated, tag = "5")] + pub ogjodgflein: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Vector { + #[prost(float, tag = "1")] + pub x: f32, + #[prost(float, tag = "2")] + pub y: f32, + #[prost(float, tag = "3")] + pub z: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26592)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aabfajclkjd { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jodebjoioah { + #[prost(map = "uint32, uint32", tag = "1")] + pub ljcknoihdhe: ::std::collections::HashMap, + #[prost(float, tag = "3")] + pub dmiliadhjbf: f32, + #[prost(uint32, tag = "4")] + pub attack_target_id: u32, + #[prost(float, tag = "5")] + pub iilmlliioia: f32, + #[prost(uint32, tag = "6")] + pub gljpognfgfn: u32, + #[prost(uint32, tag = "7")] + pub entity_id: u32, + #[prost(uint32, tag = "9")] + pub flhcocnhmlf: u32, + #[prost(float, tag = "10")] + pub hlpklppdbik: f32, + #[prost(uint32, tag = "11")] + pub apeodmifelc: u32, + #[prost(float, tag = "12")] + pub loneolkjmed: f32, + #[prost(message, repeated, tag = "13")] + pub baiafmcleii: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub kjpeljbgigh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26024)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oalpeggkbil { + #[prost(uint32, tag = "1")] + pub mempkcgnnmf: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "4")] + pub dfdkbiadlnm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub mngmfjcfmbc: u32, + #[prost(uint32, tag = "8")] + pub onabdgfcpih: u32, + #[prost(uint32, tag = "15")] + pub dikiefcchpa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6200)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pklpgfhjmne { + #[prost(message, optional, tag = "11")] + pub elbfhelkamj: ::core::option::Option, + #[prost(int32, tag = "4")] + pub jjfpfmpjema: i32, + #[prost(uint32, tag = "10")] + pub scene_id: u32, + #[prost(bool, tag = "3")] + pub pngmclgdcpc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8175)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbccmbbkdid {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbodmijnhpg { + #[prost(bool, tag = "2")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "3")] + pub fjhhikoihka: u32, + #[prost(uint32, tag = "4")] + pub ndmfhdbejap: u32, + #[prost(uint32, tag = "5")] + pub kill_num: u32, + #[prost(uint32, tag = "7")] + pub diggffkgodj: u32, + #[prost(uint32, tag = "9")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Loaakakfeej { + #[prost(message, repeated, tag = "6")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "7")] + pub mhfdgagiepa: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25933)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eppfleheman { + #[prost(uint32, tag = "3")] + pub onnbpofecdg: u32, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29379)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjifndjniml { + #[prost(uint32, tag = "7")] + pub omnkhjbmgkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7002)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Canfjjogcnk { + #[prost(uint32, tag = "5")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(message, optional, tag = "15")] + pub dejoimafmck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21585)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Globkkfkmhh { + #[prost(message, optional, tag = "14")] + pub neoilleiibo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4446)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aolgdlcdidg {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Noccejmpobm { + #[prost(bool, tag = "3")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "10")] + pub jofbeiaclof: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9926)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cckdghoeaea {} +#[derive(proto_gen::CmdID)] +#[cmdid(27073)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Polfjliapbg { + #[prost(message, repeated, tag = "9")] + pub oijegkghpah: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kplkocfhdjo { + #[prost(uint32, tag = "5")] + pub epcpnhjnkbn: u32, + #[prost(uint32, tag = "8")] + pub peagfmgmeah: u32, + #[prost(uint32, tag = "10")] + pub gbaglgmgjhj: u32, + #[prost(uint32, tag = "14")] + pub acjpdgmfgnl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22146)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iopgicdlhpc { + #[prost(uint32, repeated, tag = "3")] + pub gooonmahlnl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub scene_id: u32, + #[prost(uint32, repeated, tag = "7")] + pub ofgoaefjhic: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub okmbhkdejce: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub idlmibckfdk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1320)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efngpnmmppi { + #[prost(uint32, repeated, tag = "13")] + pub iicooifholc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Knbcehedice { + #[prost(message, optional, tag = "3")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffdnpjkbnco { + #[prost(message, repeated, tag = "2")] + pub data_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahnmcdonjhe { + #[prost(message, repeated, tag = "9")] + pub dnpebapalek: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21798)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnkfalhnggh { + #[prost(enumeration = "Himmemhogfb", tag = "3")] + pub mfmlakbiaed: i32, + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, repeated, tag = "11")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5445)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipidakklino { + #[prost(uint32, repeated, tag = "6")] + pub mjiofgmcple: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29368)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fiegilbclna {} +#[derive(proto_gen::CmdID)] +#[cmdid(20967)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Loajepfpccg { + #[prost(uint32, tag = "12")] + pub anhigelnhkp: u32, + #[prost(uint32, tag = "9")] + pub kpidllgnojf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3522)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipcbpoapokf {} +#[derive(proto_gen::CmdID)] +#[cmdid(20438)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Laohhghppoo { + #[prost(uint32, tag = "6")] + pub jdhfhcfeonf: u32, + #[prost(uint32, tag = "7")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(562)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnmiidbopif { + #[prost(uint32, tag = "1")] + pub kobppjfjnpa: u32, + #[prost(uint32, tag = "5")] + pub bbailakngkc: u32, + #[prost(uint32, tag = "6")] + pub logmaglmogh: u32, + #[prost(uint32, tag = "7")] + pub jmjgdpddgbh: u32, + #[prost(uint32, tag = "12")] + pub cmpnlmkikap: u32, + #[prost(uint32, tag = "14")] + pub pdhfglfjdcc: u32, + #[prost(uint32, tag = "15")] + pub edmpdpocojo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnnnagjlfof { + #[prost( + oneof = "fnnnagjlfof::Oefomcabjbm", + tags = "1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 34, 49, 177, 182, 254, 332, 411, 449, 565, 595, 737, 950, 1103, 1244, 1255, 1407, 1504, 1606, 1742, 1909, 1921, 1968, 1976, 2000" + )] + pub oefomcabjbm: ::core::option::Option, +} +/// Nested message and enum types in `FNNNAGJLFOF`. +pub mod fnnnagjlfof { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Oefomcabjbm { + #[prost(message, tag = "1")] + PhaseChange(super::Flgbaggebcm), + #[prost(message, tag = "2")] + DiceReroll(super::Jccfiojlogg), + #[prost(message, tag = "3")] + Pass(super::Dmogjbhlbnb), + #[prost(message, tag = "5")] + SelectOnStage(super::Holeliegkci), + #[prost(message, tag = "6")] + SkillResult(super::Mehpdegadgm), + #[prost(message, tag = "7")] + UseSkill(super::Dbkcmecjhbj), + #[prost(message, tag = "8")] + AddCards(super::Gmpnndokoga), + #[prost(message, tag = "9")] + TokenChange(super::Pjbdlogghfm), + #[prost(message, tag = "10")] + RemoveCards(super::Ppcogllllbo), + #[prost(message, tag = "11")] + AddDice(super::Kdfgedgeamn), + #[prost(message, tag = "12")] + DiceRoll(super::Olbjnpgiiaf), + #[prost(message, tag = "13")] + CharDie(super::Kgipcpjckoc), + #[prost(message, tag = "14")] + MoveCard(super::Onelpglkohj), + #[prost(message, tag = "15")] + CostDice(super::Ekiahognhgg), + #[prost(message, tag = "34")] + NewCard(super::Lbihdalpknd), + #[prost(message, tag = "49")] + ModifyAdd(super::Jjhmjknbelh), + #[prost(message, tag = "177")] + WaitingListChange(super::Fmhchkndpof), + #[prost(message, tag = "182")] + UpdateController(super::Ehhnkoloaek), + #[prost(message, tag = "254")] + TransferCardToOpponent(super::Fcfhkhjfiap), + #[prost(message, tag = "332")] + OpTimer(super::Dnfiacdomng), + #[prost(message, tag = "411")] + CardHenshin(super::Lcbhgpljlno), + #[prost(message, tag = "449")] + GameOver(super::Ademkipfknf), + #[prost(message, tag = "565")] + UseSkillEnd(super::Niabidedmfl), + #[prost(message, tag = "595")] + CardUpdate(super::Mlkkibocgco), + #[prost(message, tag = "737")] + DuelDataChange(super::Fpkhmchidin), + #[prost(message, tag = "950")] + CostRevise(super::Mannmaoahkb), + #[prost(message, tag = "1103")] + ReactionBegin(super::Ocebldoobca), + #[prost(message, tag = "1244")] + NoDamageSkillResult(super::Dddiagdhdho), + #[prost(message, tag = "1255")] + SelectOnStageByEffect(super::Cdcpgkipnba), + #[prost(message, tag = "1407")] + SkillLimitsChange(super::Elapnkhihbj), + #[prost(message, tag = "1504")] + PveIntentionInfo(super::Hpgkmhknhdk), + #[prost(message, tag = "1606")] + ModifyRemove(super::Chjiblcebnf), + #[prost(message, tag = "1742")] + ZoneShuffle(super::Cjfoabaehad), + #[prost(message, tag = "1909")] + PhaseContinue(super::Jopccmbmllm), + #[prost(message, tag = "1921")] + ReactionEnd(super::Gidjakbjkgj), + #[prost(message, tag = "1968")] + UseLegend(super::Cnjgeafmjbo), + #[prost(message, tag = "1976")] + PveIntentionChange(super::Mlaiepdekjh), + #[prost(message, tag = "2000")] + ClientPerform(super::Bianhbhdlpc), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(743)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aaffhmomcnf { + #[prost(message, optional, tag = "3")] + pub pfogokingmb: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub parent_quest_id: u32, + #[prost(bool, tag = "15")] + pub djoafmpojah: bool, + #[prost(uint32, tag = "2")] + pub kenikecfflm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Geeakchdili { + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(message, optional, tag = "7")] + pub glekhbclijf: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub kgedpgankpc: u32, + #[prost(int32, tag = "11")] + pub bedacoieima: i32, + #[prost(uint32, tag = "14")] + pub jflklbdfbhj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27036)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abhilcojjll { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(string, tag = "12")] + pub epfpbkmomca: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhegfoiaapl { + #[prost(uint32, tag = "1")] + pub afjclenhanc: u32, + #[prost(bool, tag = "5")] + pub dphdagagbii: bool, + #[prost(map = "uint32, message", tag = "7")] + pub kjjdncgamff: ::std::collections::HashMap, + #[prost(message, optional, tag = "8")] + pub fhklekfemla: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26343)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nabflandmij { + #[prost(message, optional, tag = "10")] + pub dejoimafmck: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9164)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilnfifneidh { + #[prost(uint32, tag = "7")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Goipiabagcg { + #[prost(uint32, tag = "1")] + pub cmnkkdbhijg: u32, + #[prost(uint32, tag = "2")] + pub mkpaiddgmej: u32, + #[prost(uint32, repeated, tag = "7")] + pub kciilfebdgl: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub ibppbojmppn: u32, + #[prost(uint32, tag = "10")] + pub jpmnompmnei: u32, + #[prost(uint32, tag = "11")] + pub pgedcpgdigf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23612)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdhpeihfdgl { + #[prost(message, optional, tag = "7")] + pub ciflegckjei: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub fnbpgfaglkf: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24647)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngicelojdbd { + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22655)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inkdhpcodpl { + #[prost(message, optional, tag = "12")] + pub nkkdocdejfg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4442)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jenpngmieck { + #[prost(message, optional, tag = "9")] + pub gohpifbeioi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9972)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgffmdlbmmo { + #[prost(uint32, tag = "5")] + pub hmojpllgmkh: u32, + #[prost(message, repeated, tag = "8")] + pub efbplhdhlpb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24186)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkbljjjojoi { + #[prost(uint32, tag = "15")] + pub mhjeokngcdf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkmbkmajoji { + #[prost(bool, tag = "4")] + pub okfmbjjcdno: bool, + #[prost(uint32, tag = "7")] + pub player_uid: u32, + #[prost(uint32, tag = "9")] + pub ocmhgmlnhjd: u32, + #[prost(string, tag = "13")] + pub ppcokjjocoi: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "15")] + pub kfapijcgdbc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gmpnndokoga { + #[prost(uint32, repeated, tag = "3")] + pub gcbeeinchka: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Ihacnpjbldi", tag = "5")] + pub fiiaknpdpnj: i32, + #[prost(uint32, tag = "6")] + pub pos: u32, + #[prost(enumeration = "Eegmnipnkmj", tag = "11")] + pub reason: i32, + #[prost(uint32, tag = "12")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25658)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdolhgngoal { + #[prost(uint64, tag = "3")] + pub avatar_guid: u64, + #[prost(uint32, tag = "5")] + pub kcinbomoigl: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flpojomkojk { + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "12")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jcnohcdngbj { + #[prost(uint32, tag = "2")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "3")] + pub bhkedlmdgpm: u32, + #[prost(message, optional, tag = "12")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub ncnkmdbafeh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29482)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obhgflhapmb { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "13")] + pub emlilmhjhog: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgmmdegfemk { + #[prost(enumeration = "AvatarExpeditionState", tag = "1")] + pub state: i32, + #[prost(uint32, tag = "2")] + pub cccgnognokn: u32, + #[prost(uint32, tag = "3")] + pub ngjdfgchcak: u32, + #[prost(uint32, tag = "4")] + pub ojoapinglno: u32, + #[prost(float, tag = "5")] + pub enbleodhoae: f32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmghkidpooh { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(string, tag = "2")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub level: u32, + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(string, tag = "5")] + pub pbigganlbdh: ::prost::alloc::string::String, + #[prost(message, optional, tag = "6")] + pub jcimgdhmmln: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub obfcjpojmom: u32, + #[prost(uint32, repeated, tag = "8")] + pub iafiakhnogk: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Aplkolhcome", tag = "9")] + pub oikmlefopaf: i32, + #[prost(uint32, tag = "10")] + pub param: u32, + #[prost(bool, tag = "11")] + pub pljkolbmkhd: bool, + #[prost(bool, tag = "12")] + pub ndbmjekkcgp: bool, + #[prost(string, tag = "13")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "14")] + pub pkicaibdchd: u32, + #[prost(bool, tag = "15")] + pub lcdifkegebh: bool, + #[prost(bool, tag = "16")] + pub pgeefgkfcmb: bool, + #[prost(string, tag = "17")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(uint32, tag = "18")] + pub hggjfbdabme: u32, + #[prost(uint32, tag = "19")] + pub dminighigbj: u32, + #[prost(uint32, tag = "20")] + pub lcllkcljlec: u32, + #[prost(bool, tag = "21")] + pub bbfhpffigai: bool, + #[prost(message, repeated, tag = "22")] + pub cadonpdcdbg: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "23")] + pub ebeecdalmkm: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Fcfbaddhheo", tag = "24")] + pub occlnkdddne: i32, + #[prost(message, optional, tag = "25")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "26")] + pub jenllhdblhn: ::prost::alloc::string::String, + #[prost(uint32, tag = "27")] + pub cmoblnacdie: u32, + #[prost(uint32, tag = "28")] + pub gegboecjjmo: u32, + #[prost(uint32, tag = "32")] + pub mbolldbjpcp: u32, + #[prost(bool, tag = "33")] + pub bepnjolipfg: bool, + #[prost(uint32, tag = "34")] + pub flmfemcafhb: u32, + #[prost(uint32, tag = "35")] + pub mobmajijjgl: u32, + #[prost(enumeration = "Gbnikbfhhkp", tag = "36")] + pub gfkfjjoadmh: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6660)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpkbbdalkoh { + #[prost(uint32, tag = "6")] + pub ghkeojdcmnp: u32, + #[prost(uint32, tag = "4")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1672)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khhhfpaacjl { + #[prost(uint32, tag = "5")] + pub golcdocfolh: u32, + #[prost(uint32, repeated, tag = "7")] + pub hnkcgaleddb: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub ljdmbidhpji: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7343)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PingReq { + #[prost(bytes = "vec", tag = "9")] + pub iinpbflaeep: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "3")] + pub pdhfgjibcla: ::prost::alloc::vec::Vec, + #[prost(double, tag = "1")] + pub total_tick_time: f64, + #[prost(uint64, tag = "12")] + pub nhllkphmfgp: u64, + #[prost(uint32, tag = "11")] + pub client_time: u32, + #[prost(uint32, tag = "10")] + pub dfalbbbcfmo: u32, + #[prost(uint32, tag = "7")] + pub seq: u32, + #[prost(float, tag = "13")] + pub ue_time: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29510)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmnphmbfelo {} +#[derive(proto_gen::CmdID)] +#[cmdid(5358)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lienmamgigb { + #[prost(uint32, tag = "3")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "13")] + pub amiajegdehh: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22198)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndeflgcegnh { + #[prost(map = "uint32, uint32", tag = "4")] + pub dnjdkhdfhop: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27977)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Endlmhknbgd { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "4")] + pub kbbfcmnbdpe: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "11")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7943)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anpbafoleoi { + #[prost(bool, tag = "2")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7774)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijdnijijmfc { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22307)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfcicokeijf { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub pplchpohjal: u32, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22738)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhlfbpkahfh { + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "1")] + pub gbcebgkbjdm: u32, + #[prost(uint32, tag = "6")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27023)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mefaljimbdb { + #[prost(uint32, tag = "11")] + pub target_uid: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29876)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdpafmlehlm { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(bool, tag = "12")] + pub hpllmgmpfio: bool, + #[prost(uint32, tag = "13")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29337)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjikpdnhhfd { + #[prost(uint32, tag = "4")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "7")] + pub group_id: u32, + #[prost(uint32, repeated, tag = "8")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub nnebhhfhdcc: u32, + #[prost(uint32, repeated, tag = "12")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub icgekffjhbk: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgfphfdmdpm { + #[prost(uint32, tag = "2")] + pub aebkgckleec: u32, + #[prost(uint32, tag = "10")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "13")] + pub nnebhhfhdcc: u32, + #[prost(uint32, tag = "15")] + pub mhmmdimegdd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3449)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogfficmjnbe { + #[prost(message, repeated, tag = "12")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Himmemhogfb", tag = "4")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpnneajipal { + #[prost(uint32, tag = "3")] + pub gbamhbbfpkn: u32, + #[prost(int32, repeated, tag = "6")] + pub ohdihophcld: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub kpbecglgibm: ::core::option::Option, + #[prost(bool, tag = "12")] + pub bggbfichoid: bool, + #[prost(uint32, tag = "15")] + pub guid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaanfenblpm { + #[prost(float, tag = "10")] + pub cogjlpkokmn: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4991)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnpndannbhk { + #[prost(message, optional, tag = "1")] + pub oajfgefjngc: ::core::option::Option, + #[prost(message, repeated, tag = "7")] + pub gngjhljfjke: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub eokjicanpif: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhnjfkilekp { + #[prost(uint32, tag = "3")] + pub pbhgaaifnbb: u32, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3801)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfbfpkmdedp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aphokepjage { + #[prost(uint32, tag = "4")] + pub lmdkhnjijhp: u32, + #[prost(uint32, tag = "11")] + pub flagfkmidgc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9695)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdglfoghnmh { + #[prost(message, optional, tag = "8")] + pub kkonlphiahe: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7140)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efafnghmfje { + #[prost(uint32, tag = "6")] + pub jnhfpclboog: u32, + #[prost(uint32, tag = "1")] + pub bmolmcohkim: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarEnterSceneInfo { + #[prost(uint32, repeated, tag = "1")] + pub buff_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub avatar_entity_id: u32, + #[prost(message, optional, tag = "7")] + pub aobhcppmkma: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub pnanfpcioko: ::core::option::Option, + #[prost(uint64, tag = "10")] + pub avatar_guid: u64, + #[prost(message, repeated, tag = "12")] + pub server_buff_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub weapon_entity_id: u32, + #[prost(uint64, tag = "15")] + pub weapon_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4708)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gekaiopogcf { + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ggkckghbonn { + #[prost(uint32, tag = "10")] + pub ldmhplcdghi: u32, + #[prost(uint32, tag = "14")] + pub aickcgnkdii: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22512)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dejaaiceojj { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "9")] + pub config_id: u32, + #[prost(bool, tag = "12")] + pub faejlbkoilg: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4648)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcmddlhiahd { + #[prost(uint32, tag = "13")] + pub mnganmnnmjg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1003)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjbdbpkjibd { + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub kenikecfflm: u32, + #[prost(uint32, tag = "12")] + pub podhdpcpjgj: u32, + #[prost(uint32, tag = "13")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4739)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olgmkfpkkpp { + #[prost(message, optional, tag = "1")] + pub mjgkhhmkgkn: ::core::option::Option, + #[prost(uint32, tag = "4")] + pub gghkdjlgfpb: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24854)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffplaklbmod { + #[prost(uint32, tag = "1")] + pub gfmmfbjpjmp: u32, + #[prost(uint32, tag = "4")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26328)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpjbdadacak { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bckkdmmkdbe { + #[prost(uint32, tag = "2")] + pub pbkeaocbpmn: u32, + #[prost(uint32, repeated, tag = "4")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgicachlgin { + #[prost(message, repeated, tag = "7")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28611)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emgpfcbmmhk { + #[prost(message, optional, tag = "14")] + pub ollpljcdbdo: ::core::option::Option, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldoicebifmm { + #[prost(message, repeated, tag = "4")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(826)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnmjneegbdn { + #[prost(uint32, tag = "1")] + pub dmcjbimfkci: u32, + #[prost(uint32, repeated, tag = "3")] + pub ggbmhjflahd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4960)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgcgfolhjnk { + #[prost(uint32, tag = "6")] + pub target_uid: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1879)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ilmgefhloan { + #[prost(uint32, repeated, tag = "9")] + pub dlkekcdojbj: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25403)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipdddbocfee { + #[prost(message, optional, tag = "10")] + pub ollpljcdbdo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4133)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnlcceaacng { + #[prost(uint32, repeated, tag = "1")] + pub ipkkbailkdi: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "5")] + pub lfadnibldkc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pejfkjhkfnl { + #[prost(message, optional, tag = "1")] + pub mineooknpig: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9460)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnfndeddepd { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23375)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jafkdacahfh { + #[prost(map = "uint32, string", tag = "2")] + pub kepmcgofdnf: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub bmmnpflapdi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20720)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnlggacdhof { + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(144)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgbgdldjiaf { + #[prost(uint32, tag = "6")] + pub entity_id: u32, + #[prost(message, optional, tag = "14")] + pub ability_control_block: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28235)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kikoichhdae { + #[prost(uint32, tag = "7")] + pub ejgkapalfjb: u32, + #[prost(uint32, tag = "14")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9714)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpcckfcncig { + #[prost(uint32, tag = "2")] + pub khfffbadlcl: u32, + #[prost(bool, tag = "4")] + pub hppmegldgkf: bool, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "15")] + pub affix_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8106)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Niapkkkfmgc { + #[prost(uint64, tag = "7")] + pub dcompdppdpo: u64, + #[prost(enumeration = "Himmemhogfb", tag = "10")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4667)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcpfmlpkcfg { + #[prost(uint32, tag = "11")] + pub gblenhcpkcp: u32, + #[prost(uint32, tag = "13")] + pub pfbhahgjgfh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmenhikocmf {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Blhcpfcmdmi { + #[prost(uint32, tag = "5")] + pub bfpcnieejmi: u32, + #[prost(uint32, tag = "11")] + pub main_prop_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23026)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Icadbihigno {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hdjkhdkcoah { + #[prost(bool, tag = "5")] + pub lhhbinhjaoe: bool, + #[prost(uint32, tag = "6")] + pub peajinifghm: u32, + #[prost(uint32, tag = "11")] + pub jlfheeipddp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26507)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpbfckcaigc { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23114)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akonokdlpli { + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Holeliegkci { + #[prost(enumeration = "Eegmnipnkmj", tag = "2")] + pub reason: i32, + #[prost(uint32, tag = "4")] + pub phpfppidjkj: u32, + #[prost(uint32, tag = "12")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26746)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Apomenomdif { + #[prost(string, tag = "5")] + pub lgnfafmphkd: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "8")] + pub almbifelkaa: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub bjclebgakhc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub cdocakchlkm: u32, + #[prost(oneof = "apomenomdif::Bnpjpjlnfbe", tags = "1019, 1502")] + pub bnpjpjlnfbe: ::core::option::Option, +} +/// Nested message and enum types in `APOMENOMDIF`. +pub mod apomenomdif { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Bnpjpjlnfbe { + #[prost(uint32, tag = "1019")] + SlotId(u32), + #[prost(uint32, tag = "1502")] + FurnitureSuiteId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(28244)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahckkmmghab { + #[prost(bool, tag = "2")] + pub dhaomgmmdpd: bool, + #[prost(enumeration = "Himmemhogfb", tag = "9")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24635)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bejpbhgjido { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub ilpjmahlgdk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjlfafcfegg { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint32, tag = "2")] + pub level: u32, + #[prost(uint32, tag = "3")] + pub costume_id: u32, + #[prost(uint32, tag = "4")] + pub aepnhmcdbfl: u32, + #[prost(uint32, tag = "5")] + pub cmafekgpacg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Galggejnphg { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgjjebecjbe { + #[prost(uint32, tag = "5")] + pub jddamhceape: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27657)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bknahbpgkbb { + #[prost(uint32, repeated, tag = "13")] + pub mkelecopffb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhmngnjbdfd { + #[prost(int32, repeated, tag = "12")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21588)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkfajlkcbjb { + #[prost(uint32, tag = "4")] + pub lnpjpiipebc: u32, + #[prost(uint32, tag = "5")] + pub target_uid: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26564)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcabpljednd {} +#[derive(proto_gen::CmdID)] +#[cmdid(29409)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbdfaaaokaj { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub ggammenpbim: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6147)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfkeppnhhle { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(int32, tag = "8")] + pub jjfpfmpjema: i32, + #[prost(message, optional, tag = "14")] + pub ebobpnfjdoi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Focfjfjnjnd { + #[prost(message, repeated, tag = "9")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22606)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cimphgdhiim { + #[prost(uint32, tag = "4")] + pub ijffkcgiaoj: u32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6964)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eapgbekbbmp { + #[prost(map = "uint32, uint32", tag = "7")] + pub onhblidiphk: ::std::collections::HashMap, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8485)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lapcjbnmppk { + #[prost(message, optional, tag = "1")] + pub hnaeiapgffm: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jhjnclfoame { + #[prost(uint32, repeated, tag = "2")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub hjllldfoihm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub cfmafkdljjg: u32, + #[prost(uint32, tag = "6")] + pub dkolojmpoml: u32, + #[prost(uint32, tag = "7")] + pub dgfnnclpbhf: u32, + #[prost(message, optional, tag = "8")] + pub efdekmdjaab: ::core::option::Option, + #[prost(bool, tag = "9")] + pub imhnjlnpgcj: bool, + #[prost(uint64, tag = "10")] + pub amiilbjpola: u64, + #[prost(uint32, tag = "13")] + pub mmndomkgebh: u32, + #[prost(bool, tag = "14")] + pub bdaabiinfpn: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fagnkjaojlk { + #[prost(uint32, tag = "6")] + pub bcglgcjjifh: u32, + #[prost(enumeration = "Gnhpbjnpknn", tag = "14")] + pub state: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8526)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajciaijejho { + #[prost(uint32, tag = "9")] + pub nhbdoadldec: u32, + #[prost(uint32, tag = "11")] + pub ijajahbgiop: u32, + #[prost(uint32, tag = "15")] + pub fmfgmddbopn: u32, + #[prost(uint32, tag = "7")] + pub jjghmeolica: u32, + #[prost(uint32, tag = "4")] + pub cbmgkahomma: u32, + #[prost(uint32, tag = "12")] + pub fmhkjhhhpno: u32, + #[prost(uint32, tag = "2")] + pub ghdjjmikfpi: u32, + #[prost(uint32, tag = "13")] + pub ekbppleecbf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5426)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hljeclfajff { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(uint32, tag = "1")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8275)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flocjfmhhlm { + #[prost(uint32, tag = "8")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27638)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Halennlpknk { + #[prost(uint32, tag = "8")] + pub ghiaogllldi: u32, + #[prost(uint32, tag = "12")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MonsterRoute { + #[prost(message, repeated, tag = "1")] + pub route_points: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub speed_level: u32, + #[prost(uint32, tag = "3")] + pub route_type: u32, + #[prost(float, tag = "4")] + pub arrive_range: f32, + #[prost(bool, tag = "5")] + pub ofdfdkhnjga: bool, + #[prost(bool, tag = "6")] + pub gpldnogebdi: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21360)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mppblnbnbhi { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24527)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlopffdomeg { + #[prost(uint32, repeated, tag = "13")] + pub kghjdebanmb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkjbeknnbpg { + #[prost(message, repeated, tag = "1")] + pub elhgkjojbmo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub parent_quest_id: u32, + #[prost(uint64, tag = "3")] + pub jjdeofcjkjm: u64, + #[prost(map = "uint32, uint32", tag = "4")] + pub epfngpmmhme: ::std::collections::HashMap, + #[prost(message, optional, tag = "5")] + pub kmhcgjhbafa: ::core::option::Option, + #[prost(uint32, tag = "6")] + pub ndmcppieeoc: u32, + #[prost(int32, repeated, tag = "7")] + pub jiemdkokcle: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub ebjeadiigig: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "9")] + pub eialjbaengj: bool, + #[prost(bool, tag = "10")] + pub ckjmkgokned: bool, + #[prost(uint32, tag = "11")] + pub mepomjbblhd: u32, + #[prost(bool, tag = "12")] + pub mgijfmcbjke: bool, + #[prost(message, repeated, tag = "13")] + pub ahhodeacdal: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub cijpdpfkagi: u32, + #[prost(bool, tag = "15")] + pub dkbjpnmclhi: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmaoknpacfh { + #[prost(uint32, tag = "2")] + pub iejhhmbobmj: u32, + #[prost(uint32, tag = "5")] + pub gadget_state: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebohahfdkof { + #[prost(uint32, tag = "1")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "8")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odonnibpdcc { + #[prost(uint32, tag = "5")] + pub peajinifghm: u32, + #[prost(bool, tag = "11")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2338)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhccegpjdnm { + #[prost(message, repeated, tag = "10")] + pub efabhdimdeo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5480)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjenohefgnp { + #[prost(message, optional, tag = "13")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkmcfllhpbh { + #[prost(message, repeated, tag = "1")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "2")] + pub idehoepmakd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9281)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glccneopkff { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "7")] + pub ilnbhpkjkmg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4992)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfhjlmpnhoh { + #[prost(uint32, tag = "9")] + pub indikfknkab: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6888)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbodmcppjih { + #[prost(message, repeated, tag = "6")] + pub jbpbkepkjke: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21819)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cpeicdnfpaj { + #[prost(uint32, tag = "12")] + pub kcinbomoigl: u32, + #[prost(uint64, tag = "9")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9555)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahkpdoepiee { + #[prost(message, repeated, tag = "3")] + pub apanihmdbig: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "5")] + pub kchmokpjdii: bool, + #[prost(uint32, tag = "11")] + pub avatar_id: u32, + #[prost(uint32, tag = "13")] + pub reason: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlnmifiodeb { + #[prost(bool, tag = "15")] + pub kocnpkmbage: bool, + #[prost(uint32, tag = "3")] + pub uid: u32, + #[prost(uint32, tag = "6")] + pub jlcipfeccpm: u32, + #[prost(uint32, tag = "1")] + pub ghdjjmikfpi: u32, + #[prost(uint32, tag = "5")] + pub jonfnjcajhg: u32, + #[prost(oneof = "dlnmifiodeb::Content", tags = "774, 808, 172")] + pub content: ::core::option::Option, +} +/// Nested message and enum types in `DLNMIFIODEB`. +pub mod dlnmifiodeb { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Content { + #[prost(uint32, tag = "774")] + Icon(u32), + #[prost(string, tag = "808")] + Text(::prost::alloc::string::String), + #[prost(message, tag = "172")] + SystemHint(super::Dfhjjlmbpfj), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfhjjlmbpfj { + #[prost(uint32, tag = "13")] + pub r#type: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flcoinojgil { + #[prost(uint32, repeated, tag = "5")] + pub oidcaamggnp: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub kgipbhibobd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23827)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehhlfihjnmo { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "6")] + pub pjemkikefle: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbaemoljpib { + #[prost(uint32, tag = "1")] + pub iiaeoofnejk: u32, + #[prost(uint32, tag = "2")] + pub end_time: u32, + #[prost(uint32, tag = "15")] + pub lgbnfifcpjf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7228)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alfcagedkpc { + #[prost(map = "uint32, uint32", tag = "1")] + pub dojojeplhap: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epjopkdokje { + #[prost(uint32, tag = "4")] + pub naghinbjjdi: u32, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4891)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckmgmkpfjpf { + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1861)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfikakpldbl { + #[prost(uint32, tag = "3")] + pub licmpidmcoi: u32, + #[prost(uint32, tag = "4")] + pub abpdhmjnbkd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8977)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njegelfllbp { + #[prost(uint32, tag = "2")] + pub fiapbncbbpb: u32, + #[prost(uint32, tag = "10")] + pub dfjmenlmiii: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21970)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebelfgkaael {} +#[derive(proto_gen::CmdID)] +#[cmdid(27075)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Claoinaknop { + #[prost(bool, tag = "9")] + pub pjhpmjoonnb: bool, + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25336)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmkidmacain { + #[prost(message, repeated, tag = "8")] + pub gjnffcfmoha: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23356)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhgbaohbkgh { + #[prost(map = "uint32, uint32", tag = "2")] + pub fhpfegdnjdb: ::std::collections::HashMap, + #[prost(uint32, tag = "3")] + pub lgooidciaag: u32, + #[prost(bool, tag = "10")] + pub nfledllgeak: bool, + #[prost(bool, tag = "13")] + pub idpjmemjjfj: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahhmjalnjoh { + #[prost(uint32, tag = "1")] + pub caigeknegjh: u32, + #[prost(uint32, tag = "9")] + pub pkjngfhapdj: u32, + #[prost(uint32, tag = "10")] + pub ehjhfencklj: u32, + #[prost(uint32, tag = "14")] + pub eaggobgkigj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nibecadfheb { + #[prost(uint32, tag = "1")] + pub kniejlippmc: u32, + #[prost(enumeration = "Mgjhmbjagap", tag = "7")] + pub aiigjkjlbal: i32, + #[prost(bool, tag = "9")] + pub jcgjbpghfel: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29770)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OpenStateUpdateNotify { + #[prost(map = "uint32, uint32", tag = "13")] + pub open_state_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfkofahkanj { + #[prost(uint32, tag = "5")] + pub dmnldppgokg: u32, + #[prost(message, repeated, tag = "10")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nglpfkjlofk { + #[prost(bool, tag = "2")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "4")] + pub gpaeljhnaek: u32, + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, + #[prost(message, repeated, tag = "10")] + pub fobmfcdpieg: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6787)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llgogjibloj { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub daekjcabhef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmkgachbhhn { + #[prost(uint32, tag = "1")] + pub agienjjkpbe: u32, + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(message, optional, tag = "3")] + pub ccnnjmkemlc: ::core::option::Option, + #[prost(float, tag = "4")] + pub fncogclpgnc: f32, + #[prost(uint32, tag = "12")] + pub lgokjkggbia: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Famjijchlng { + #[prost(message, repeated, tag = "7")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ecljpebblno { + #[prost(bool, tag = "3")] + pub dphdagagbii: bool, + #[prost(message, optional, tag = "4")] + pub lopnclcjkjj: ::core::option::Option, + #[prost(message, optional, tag = "7")] + pub bnejocdiffh: ::core::option::Option, + #[prost(message, optional, tag = "10")] + pub pfceefmijeh: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub kbbbmdnkpjh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohjjhhgakbc { + #[prost(message, optional, tag = "1")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub uid: u32, + #[prost(message, repeated, tag = "9")] + pub bfbomboinpj: ::prost::alloc::vec::Vec, + #[prost(string, tag = "10")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "15")] + pub djcfmfedncg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elhahcmlefp { + #[prost(message, repeated, tag = "11")] + pub dgmekiilhgp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub okcpacfmlap: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub guid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FetterData { + #[prost(uint32, tag = "1")] + pub fetter_id: u32, + #[prost(uint32, tag = "2")] + pub fetter_state: u32, + #[prost(uint32, repeated, tag = "3")] + pub cond_index_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdekfojlfmg { + #[prost(enumeration = "Donnpjameed", tag = "3")] + pub doikafoahoj: i32, + #[prost(map = "uint32, uint32", tag = "13")] + pub ddookhpfnpo: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(898)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgkdjamfcgc { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21101)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkknfpdinlb { + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(uint32, tag = "7")] + pub bifofbnfpmo: u32, + #[prost(uint32, tag = "9")] + pub skill_depot_id: u32, + #[prost(uint64, tag = "15")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21082)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cibighpdkan { + #[prost(message, repeated, tag = "11")] + pub akjeiikfcnc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub group_id: u32, + #[prost(message, optional, tag = "13")] + pub blpbljkodia: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub pebgmemnknf: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6448)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gfdgdcpbdfg { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub cenhkjdffda: u32, + #[prost(enumeration = "Oeaoccjeope", tag = "5")] + pub ddiaamkbfda: i32, + #[prost(bool, tag = "14")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9134)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lniapgakaea { + #[prost(message, repeated, tag = "9")] + pub jgbobiccahd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akjnempheic {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ciofcblopdk { + #[prost(uint32, tag = "2")] + pub cafefeabnec: u32, + #[prost(bool, tag = "3")] + pub phjbdmjjnag: bool, + #[prost(bool, tag = "4")] + pub onkgkeldfhd: bool, + #[prost(bool, tag = "10")] + pub gajceelbmok: bool, + #[prost(message, optional, tag = "12")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3592)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djbolpcihmp { + #[prost(message, optional, tag = "8")] + pub mhkfilfibke: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24481)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Befhldngehk { + #[prost(bool, tag = "8")] + pub okblaglhlgg: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pahmncmpdgf { + #[prost(uint32, tag = "5")] + pub olbbcjeahia: u32, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "10")] + pub kobelfkeapf: u32, + #[prost(bool, tag = "13")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8203)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njiidpigkgl { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, repeated, tag = "15")] + pub bcdecbeoklf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20761)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnnomceibfi {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phjgpipokaa { + #[prost(uint32, repeated, tag = "8")] + pub npbimfeakbk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub aabgmecmnno: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub bekkiilpmej: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25194)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmgfcejakhj {} +#[derive(proto_gen::CmdID)] +#[cmdid(4817)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kebmeojllpl { + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "1")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24599)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nlgaiplgbno { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23205)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eggcocgbgda { + #[prost(bool, tag = "3")] + pub is_active: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8169)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iifbfckmafc { + #[prost(uint32, tag = "3")] + pub hjhcjpbijih: u32, + #[prost(uint32, tag = "8")] + pub fhcgkpipcic: u32, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1445)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fabnmmkimjh { + #[prost(uint32, tag = "2")] + pub alnmhbapcgn: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "12")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20468)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chdhkndamio { + #[prost(uint32, tag = "14")] + pub bfpjpdclfnm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aekanihggbl { + #[prost(uint32, tag = "1")] + pub bkgmabcaccg: u32, + #[prost(bool, tag = "11")] + pub ighgefkmljp: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkcfnjnhlcf { + #[prost(message, repeated, tag = "15")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24633)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jffbenhbkbf {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edpahkmjhkd { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub mbkaongpdcn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2023)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ncomllokmnk { + #[prost(uint32, repeated, tag = "4")] + pub gnhboloodgb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub adcjkmaokme: u32, + #[prost(message, repeated, tag = "7")] + pub niomengdmaj: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "11")] + pub hlhgmeocglf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pogblgipnnb { + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(message, repeated, tag = "15")] + pub cbkmlacnmik: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4396)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkmedikmhip { + #[prost(message, optional, tag = "1")] + pub neicmenmflj: ::core::option::Option, + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(uint32, tag = "10")] + pub scene_time: u32, + #[prost(uint32, tag = "15")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8875)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hadjcociplo { + #[prost(uint32, tag = "3")] + pub cenhkjdffda: u32, + #[prost(enumeration = "Oeaoccjeope", tag = "5")] + pub ddiaamkbfda: i32, + #[prost(uint32, tag = "6")] + pub pgafacpgiee: u32, + #[prost(uint32, tag = "8")] + pub caiafedbcah: u32, + #[prost(uint32, tag = "9")] + pub host_uid: u32, + #[prost(uint32, tag = "11")] + pub gaplfmmgbfa: u32, + #[prost(uint32, repeated, tag = "12")] + pub adlemoamhop: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub ohkidhnabib: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28239)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbkombeeaeh { + #[prost(uint32, tag = "8")] + pub pghgefmpgdc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26471)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adachhnjahk { + #[prost(message, optional, tag = "2")] + pub nlgcilijpfn: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub hfjilncpakl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8518)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetPlayerTokenRsp { + #[prost(uint32, tag = "1")] + pub account_type: u32, + #[prost(uint32, tag = "2")] + pub gm_uid: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(bool, tag = "4")] + pub is_proficient_player: bool, + #[prost(string, tag = "5")] + pub secret_key: ::prost::alloc::string::String, + #[prost(bytes = "vec", tag = "6")] + pub extra_bin_data: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "7")] + pub secret_key_seed: u64, + #[prost(uint32, tag = "8")] + pub uid: u32, + #[prost(uint32, tag = "9")] + pub platform_type: u32, + #[prost(string, tag = "10")] + pub account_uid: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub token: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub black_uid_end_time: u32, + #[prost(string, tag = "13")] + pub msg: ::prost::alloc::string::String, + #[prost(bool, tag = "14")] + pub is_guest: bool, + #[prost(bytes = "vec", tag = "15")] + pub security_cmd_buffer: ::prost::alloc::vec::Vec, + #[prost(string, tag = "36")] + pub game_biz: ::prost::alloc::string::String, + #[prost(message, optional, tag = "170")] + pub stop_server: ::core::option::Option, + #[prost(uint32, tag = "422")] + pub plnnjpfppam: u32, + #[prost(string, tag = "486")] + pub cemenpadopp: ::prost::alloc::string::String, + #[prost(string, tag = "541")] + pub kncflpgomni: ::prost::alloc::string::String, + #[prost(bool, tag = "631")] + pub akodfaigjce: bool, + #[prost(string, tag = "677")] + pub country_code: ::prost::alloc::string::String, + #[prost(string, tag = "737")] + pub mmdpdoococo: ::prost::alloc::string::String, + #[prost(string, tag = "902")] + pub server_rand_key: ::prost::alloc::string::String, + #[prost(string, tag = "945")] + pub sign: ::prost::alloc::string::String, + #[prost(string, tag = "948")] + pub olodgdmmpnf: ::prost::alloc::string::String, + #[prost(uint32, tag = "986")] + pub jdhckkagbnl: u32, + #[prost(string, tag = "1010")] + pub jcimgdhmmln: ::prost::alloc::string::String, + #[prost(bool, tag = "1070")] + pub gcdgekaongd: bool, + #[prost(uint32, repeated, tag = "1352")] + pub finish_collection_id_list: ::prost::alloc::vec::Vec, + #[prost(string, tag = "1384")] + pub jlcddojgkkg: ::prost::alloc::string::String, + #[prost(uint32, tag = "1424")] + pub kekhakapmin: u32, + #[prost(uint32, tag = "1433")] + pub ocinfhojcea: u32, + #[prost(uint32, tag = "1588")] + pub cijpmgmcjba: u32, + #[prost(uint32, tag = "1605")] + pub key_id: u32, + #[prost(uint32, tag = "1786")] + pub mpgmoflceof: u32, + #[prost(uint32, tag = "1827")] + pub tag: u32, + #[prost(bool, tag = "1885")] + pub hnbgekmpfib: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kijanacegbi { + #[prost(message, optional, tag = "1")] + pub nbaidhhdpmd: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub hjncgpaamen: u32, + #[prost(message, optional, tag = "15")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24444)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnhnglgaakl { + #[prost(uint32, tag = "2")] + pub khhibkpbkpn: u32, + #[prost(message, repeated, tag = "3")] + pub ceoambhdcng: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5174)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mbiempcapjc { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26764)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbmfndbglpo { + #[prost(uint32, tag = "1")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdhbohjedbj { + #[prost(uint32, tag = "1")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "12")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "14")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22361)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohlmacnojpa {} +#[derive(proto_gen::CmdID)] +#[cmdid(5645)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkefpecppek { + #[prost(uint32, tag = "5")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "6")] + pub mhmmdimegdd: u32, + #[prost(enumeration = "Gbjfmenjkne", tag = "7")] + pub pfenlkjpddb: i32, + #[prost(uint32, tag = "8")] + pub icmgfgejcjk: u32, + #[prost(bool, tag = "12")] + pub dmedoehomkh: bool, + #[prost(bool, tag = "13")] + pub dggckmikbmo: bool, + #[prost(map = "uint32, message", tag = "14")] + pub fkempcfeeoi: ::std::collections::HashMap, + #[prost(uint32, tag = "15")] + pub mflimgpafmf: u32, + #[prost(oneof = "nkefpecppek::Detail", tags = "741, 926, 1157, 1822")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `NKEFPECPPEK`. +pub mod nkefpecppek { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "741")] + ChannellerSlabLoopDungeonResultInfo(super::Cbidamifmhj), + #[prost(message, tag = "926")] + PotionDungeonResultInfo(super::Inagocajomd), + #[prost(message, tag = "1157")] + EffigyChallengeDungeonResultInfo(super::Oeohncnkhip), + #[prost(message, tag = "1822")] + CustomDungeonResultInfo(super::Oekohgokjim), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(6898)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbdohlanfba { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(message, optional, tag = "13")] + pub mhhcoedmpdp: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26136)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egadpdimnej { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21926)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jacpnpddaja { + #[prost(uint64, tag = "1")] + pub gedmdocolfj: u64, + #[prost(uint32, tag = "15")] + pub kobelfkeapf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27604)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpekidbdknd { + #[prost(uint32, tag = "8")] + pub cenhkjdffda: u32, + #[prost(uint32, repeated, tag = "11")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Nmjpfhhjdan", tag = "15")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnaiiegodji { + #[prost(uint32, tag = "1")] + pub r#type: u32, + #[prost(uint32, tag = "2")] + pub oboopjlpdni: u32, + #[prost(int32, tag = "3")] + pub acjpdgmfgnl: i32, + #[prost(int32, tag = "4")] + pub gbaglgmgjhj: i32, + #[prost(int32, tag = "5")] + pub peagfmgmeah: i32, + #[prost(int32, tag = "6")] + pub ihmplmfllfc: i32, + #[prost(int32, tag = "7")] + pub epipckdkknh: i32, + #[prost(int32, tag = "8")] + pub fjeahiknjhm: i32, + #[prost(bool, tag = "9")] + pub hmepkhihmfp: bool, + #[prost(int32, tag = "10")] + pub pdkifkkmhcn: i32, + #[prost(int32, tag = "11")] + pub end_time: i32, + #[prost(uint32, tag = "12")] + pub pcklffnfnge: u32, + #[prost(uint32, tag = "13")] + pub peer_id: u32, + #[prost(uint32, tag = "14")] + pub dhebifbfnce: u32, + #[prost(uint32, tag = "15")] + pub level: u32, + #[prost(uint32, tag = "16")] + pub cnboficimfn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21721)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhekldahghb {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plfhddfipga { + #[prost(message, optional, tag = "1")] + pub dbajijgognc: ::core::option::Option, + #[prost(map = "uint32, message", tag = "8")] + pub mioplfbpbhf: ::std::collections::HashMap, + #[prost(bool, tag = "9")] + pub dphdagagbii: bool, + #[prost(map = "uint32, message", tag = "10")] + pub danloggpdcl: ::std::collections::HashMap, + #[prost(message, optional, tag = "11")] + pub bngiheabpbf: ::core::option::Option, + #[prost(map = "uint32, message", tag = "12")] + pub omagjpbigam: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22508)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fljjghohldd { + #[prost(uint32, tag = "8")] + pub room_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9473)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcnbeceeikj { + #[prost(enumeration = "Oeaoccjeope", tag = "11")] + pub ddiaamkbfda: i32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9662)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmdpiloddel { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub mgcmnplnjkl: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Paophedmofk { + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "4")] + pub nnaalgjoaio: u32, + #[prost(uint32, tag = "5")] + pub dmnldppgokg: u32, + #[prost(message, optional, tag = "10")] + pub llbohhahofl: ::core::option::Option, + #[prost(bool, tag = "13")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpjnlllpngm { + #[prost(uint64, tag = "3")] + pub jkdkjokopgi: u64, + #[prost(uint32, tag = "12")] + pub alaehehdloc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgildafjiho { + #[prost(uint32, tag = "8")] + pub gpaeljhnaek: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Delcghhpeej { + #[prost(string, tag = "2")] + pub url: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub afjclenhanc: u32, + #[prost(bool, tag = "4")] + pub gfgkcpghhin: bool, + #[prost(uint32, tag = "5")] + pub mhemkkfakka: u32, + #[prost(uint32, tag = "7")] + pub end_time: u32, + #[prost(string, tag = "9")] + pub ghidghkphde: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub fljbdahiech: u32, + #[prost(uint32, tag = "13")] + pub lgbnfifcpjf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21695)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnfofdlfmoi { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4672)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohhehcagbag { + #[prost(uint32, tag = "14")] + pub cdgahopmcbl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9640)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Honkjgjkckm { + #[prost(uint32, tag = "4")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2346)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnfaebablom { + #[prost(bool, tag = "14")] + pub bliakncjplh: bool, + #[prost(int32, tag = "7")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mikcomiefal { + #[prost(bool, tag = "3")] + pub dmedoehomkh: bool, + #[prost(bool, tag = "4")] + pub gomioioiiki: bool, + #[prost(uint32, tag = "5")] + pub kpampgdjdhe: u32, + #[prost(uint32, tag = "7")] + pub peajinifghm: u32, + #[prost(bool, tag = "13")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22853)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppmbdkkfcbi { + #[prost(uint32, tag = "3")] + pub lgcopnjbcnf: u32, + #[prost(uint32, tag = "5")] + pub fpnhhfikcck: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2362)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpkailhknoh { + #[prost(int32, tag = "5")] + pub uid: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22056)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieplicbigij { + #[prost(uint32, tag = "1")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "4")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hcibeidkgbj { + #[prost(uint32, tag = "4")] + pub entity_id: u32, + #[prost(message, optional, tag = "7")] + pub digdkmhijpi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27940)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llgbdjdgkdc { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdmdlmacjaj { + #[prost(message, optional, tag = "2")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "8")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "13")] + pub uid: u32, + #[prost(uint32, tag = "15")] + pub dppfeemfnmn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpgnfkfifae { + #[prost(map = "uint32, message", tag = "8")] + pub nfmjnnhecfk: ::std::collections::HashMap, + #[prost(uint32, tag = "15")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7237)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hccmglfhmhp { + #[prost(uint64, tag = "8")] + pub bochklkfmik: u64, + #[prost(uint64, tag = "10")] + pub ggbbflabklk: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhallidcfhl { + #[prost(uint32, tag = "14")] + pub pkhodhipjbb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24012)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cijgimlafhl { + #[prost(uint32, tag = "4")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(499)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lknljnmenng { + #[prost(bool, tag = "4")] + pub dmedoehomkh: bool, + #[prost(int32, tag = "13")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmmpbmepcie { + #[prost(uint32, tag = "1")] + pub bfeondacake: u32, + #[prost(message, optional, tag = "2")] + pub gigadmpnjhl: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub gaplfmmgbfa: u32, + #[prost(uint32, repeated, tag = "6")] + pub tag_list: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub gblhfaeonkm: bool, + #[prost(bool, tag = "9")] + pub mceooikhcpa: bool, + #[prost(bool, tag = "10")] + pub pflajckehfa: bool, + #[prost(message, optional, tag = "11")] + pub mdmplabaiec: ::core::option::Option, + #[prost(uint64, tag = "12")] + pub gedmdocolfj: u64, + #[prost(message, optional, tag = "13")] + pub pddjkniopen: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub fikdjoonfbb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aolpdahmokc { + #[prost(message, optional, tag = "1")] + pub mbfdgldkefh: ::core::option::Option, + #[prost(uint32, repeated, tag = "2")] + pub lckafmfopfb: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub ofhfpdflgbj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26096)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnjbnbiegbe { + #[prost(uint64, tag = "10")] + pub guid: u64, + #[prost(map = "uint32, message", tag = "15")] + pub skill_map: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpapkilfinn { + #[prost(uint32, tag = "1")] + pub item_id: u32, + #[prost(bool, tag = "2")] + pub lgpcihohcla: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23194)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cphmfcjehgj { + #[prost(enumeration = "Hhaafihndjo", tag = "3")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1617)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkgaeccacio { + #[prost(enumeration = "Oeaoccjeope", tag = "10")] + pub ddiaamkbfda: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23731)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agkcjifjcao { + #[prost(bool, tag = "6")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "4")] + pub cibeadmmkoe: u32, + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "9")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "5")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6801)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhaomnbfkbp { + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(message, repeated, tag = "14")] + pub lopfmjdpndc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2585)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocjgecbokbh { + #[prost(bool, tag = "13")] + pub npfkjanodee: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28090)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmemmedfbhe { + #[prost(message, repeated, tag = "4")] + pub gabljanjlaf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21069)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdmfmidange { + #[prost(bool, tag = "15")] + pub cnndpccookn: bool, + #[prost(uint64, tag = "2")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23245)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afpjlhkajin { + #[prost(uint32, repeated, tag = "1")] + pub pahjmimgigl: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "4")] + pub aclgnllhajb: u64, + #[prost(uint32, repeated, tag = "11")] + pub appdnhdigom: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub ehggbfhklmg: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub ndbmlahhnjn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9962)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdemhiapdkc { + #[prost(uint32, tag = "4")] + pub gefbnnebkdb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20253)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acbadohhjmb { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21318)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fkemoodcolk { + #[prost(uint32, tag = "5")] + pub jlhfgabkeoi: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6141)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fegeflnpomh { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, repeated, tag = "4")] + pub nlnlbaikbki: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhaihhldmbn { + #[prost(bool, tag = "4")] + pub iicidnmoebc: bool, + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "7")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Baolpckhkdb { + #[prost(map = "uint32, uint32", tag = "1")] + pub ciggenemcpi: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "15")] + pub dioiiedikdd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dimcbfdlbki {} +#[derive(proto_gen::CmdID)] +#[cmdid(1292)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjggpfklcfk { + #[prost(uint32, tag = "3")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccnelkenfjc { + #[prost(uint32, tag = "1")] + pub oboopjlpdni: u32, + #[prost(message, optional, tag = "2")] + pub pos: ::core::option::Option, + #[prost(int32, tag = "3")] + pub gpbnffjbomn: i32, + #[prost(message, optional, tag = "4")] + pub fljbepmlcig: ::core::option::Option, + #[prost(uint32, tag = "5")] + pub anechkcdcbm: u32, + #[prost(uint32, repeated, tag = "6")] + pub afcnacehibl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24743)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Candjghlagi { + #[prost(uint32, repeated, tag = "4")] + pub bihiklaiolg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28118)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gemolmmjlnp { + #[prost(uint32, tag = "7")] + pub pkkkijalpnm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbilityAppliedAbility { + #[prost(message, optional, tag = "1")] + pub ability_name: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub ability_override: ::core::option::Option, + #[prost(message, repeated, tag = "3")] + pub override_map: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub instanced_ability_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22577)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Joddacihnkd { + #[prost(uint32, tag = "4")] + pub hmgabgobnla: u32, + #[prost(uint32, tag = "13")] + pub cbjjbfnipek: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "9")] + pub obdconjmpfn: u32, + #[prost(bool, tag = "3")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4949)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inmgmfilcng { + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26887)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eijjbmelaol { + #[prost(uint32, tag = "14")] + pub homgpjjmldg: u32, + #[prost(bool, tag = "15")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21760)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfoljglmekc { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, repeated, tag = "12")] + pub djhnhpipfba: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28026)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cghpnifhpbp { + #[prost(uint64, tag = "10")] + pub gedmdocolfj: u64, + #[prost(bool, tag = "15")] + pub is_add: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27966)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgaajblhjpe { + #[prost(uint32, tag = "14")] + pub gaplfmmgbfa: u32, + #[prost(message, repeated, tag = "15")] + pub abogbbaekcb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28841)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dcccjgkmlmh { + #[prost(uint32, tag = "8")] + pub cdmjgifefmd: u32, + #[prost(uint32, tag = "5")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21973)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjndgjcildh { + #[prost(uint32, tag = "6")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojkmppgohfk { + #[prost(message, repeated, tag = "1")] + pub phepccaafma: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "3")] + pub hdnjgnklcki: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub fkfkbpkkmfi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub gicjhofkgko: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8245)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idofndhdhck { + #[prost(string, tag = "1")] + pub hemdlgommkc: ::prost::alloc::string::String, + #[prost(uint32, tag = "4")] + pub jjlpijkgkon: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7922)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpckkoihgob { + #[prost(uint32, tag = "6")] + pub jmldgkcbcbo: u32, + #[prost(uint32, tag = "7")] + pub cdmjgifefmd: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjjjieknmed { + #[prost(uint32, tag = "2")] + pub iejhhmbobmj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20165)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojjdlkfndjm { + #[prost(uint32, tag = "4")] + pub bailmnhopnp: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pinnfjffcgd { + #[prost(uint32, tag = "9")] + pub jofbeiaclof: u32, + #[prost(bool, tag = "10")] + pub hcbknologla: bool, + #[prost(uint32, tag = "12")] + pub cdibdjlhfao: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Noaifegnkml { + #[prost(message, repeated, tag = "5")] + pub hedahimegjf: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub ninpemgpnpi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub beoimempipb: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "14")] + pub gbiekpaildc: bool, + #[prost(message, repeated, tag = "15")] + pub pokndecefga: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24820)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhdkjjlbogd { + #[prost(bool, tag = "7")] + pub ffijkdepkdf: bool, + #[prost(uint32, tag = "4")] + pub ocinfhojcea: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26431)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmpnjoheopg { + #[prost(uint32, tag = "9")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21672)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eilfpfpagnl { + #[prost(message, optional, tag = "1")] + pub ollpljcdbdo: ::core::option::Option, + #[prost(message, repeated, tag = "2")] + pub doljcbcogni: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub ibjhbimbaim: ::core::option::Option, + #[prost(uint32, repeated, tag = "6")] + pub dbohfohkmfk: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub ngpninnigdg: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "8")] + pub napadbgiimg: ::core::option::Option, + #[prost(message, repeated, tag = "9")] + pub cdeenljnoda: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub fmihgnhgndm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub hindfpnfkfb: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub mfefigmnoah: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub blmdaaigegl: u32, + #[prost(message, optional, tag = "15")] + pub boajmooggij: ::core::option::Option, + #[prost(message, optional, tag = "139")] + pub igkcmjmbbml: ::core::option::Option, + #[prost(uint32, repeated, tag = "330")] + pub jdcapblplna: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "1764")] + pub jodpdbpgoab: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkeibodagpm { + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "4")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21906)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlmahmjoocb { + #[prost(uint32, tag = "5")] + pub entity_id: u32, + #[prost(message, optional, tag = "8")] + pub platform: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub scene_time: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnjknbmpjoo { + #[prost(uint32, tag = "1")] + pub mjookcdndkf: u32, + #[prost(uint32, tag = "2")] + pub lljaefcdeal: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8434)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ioaiimcjngf { + #[prost(uint32, tag = "2")] + pub kihigcbbali: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eniakigipgg { + #[prost(float, tag = "1")] + pub gnjcidhobia: f32, + #[prost(float, tag = "6")] + pub lfhkhepgedf: f32, + #[prost(float, tag = "7")] + pub nooilhnbkff: f32, + #[prost(uint32, tag = "9")] + pub r#type: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1254)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Almcdgeignp { + #[prost(uint32, repeated, tag = "7")] + pub avatar_id: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25122)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgopckpdnid { + #[prost(uint32, repeated, tag = "9")] + pub cnfodgeooef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2436)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljecpkoahoj { + #[prost(uint32, tag = "15")] + pub pjjlmhgjkdg: u32, + #[prost(uint32, tag = "14")] + pub kajcndjlkfi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3303)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnpnbiijmaf { + #[prost(message, repeated, tag = "2")] + pub nohabamidad: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Himmemhogfb", tag = "1")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clggifnbbmm { + #[prost(uint32, tag = "2")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "6")] + pub pglajfafgai: u32, + #[prost(uint32, tag = "7")] + pub nnebhhfhdcc: u32, + #[prost(bool, tag = "9")] + pub dmedoehomkh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27834)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hfeojplppob { + #[prost(uint32, tag = "1")] + pub kenikecfflm: u32, + #[prost(int32, tag = "6")] + pub lmoofgmhjlo: i32, + #[prost(bool, tag = "10")] + pub heeahdmiifj: bool, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngamjokkjpb { + #[prost(uint32, tag = "5")] + pub bngpnmobohj: u32, + #[prost(float, tag = "7")] + pub cpimbckmlfc: f32, + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofnpcahjfpg { + #[prost(uint32, tag = "9")] + pub team_entity_id: u32, + #[prost(uint32, tag = "12")] + pub authority_peer_id: u32, + #[prost(message, optional, tag = "14")] + pub team_ability_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4791)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmapbhldpbd { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "6")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "7")] + pub opbnfdpdjgd: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffaebglggcc { + #[prost(message, optional, tag = "7")] + pub pdjmiecelhm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2599)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Babdiegaggo { + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub gbcebgkbjdm: u32, + #[prost(enumeration = "Iohpcjajppo", tag = "10")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "14")] + pub efniikefdpo: u32, + #[prost(uint32, tag = "15")] + pub dmcjbimfkci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29943)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efllkamdbed { + #[prost(message, repeated, tag = "2")] + pub entity_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub param: u32, + #[prost(enumeration = "VisionType", tag = "13")] + pub appear_type: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23743)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cmlafdbckja { + #[prost(uint32, tag = "3")] + pub mpgmoflceof: u32, + #[prost(string, tag = "7")] + pub jlcddojgkkg: ::prost::alloc::string::String, + #[prost(string, tag = "9")] + pub game_biz: ::prost::alloc::string::String, + #[prost(string, tag = "10")] + pub olodgdmmpnf: ::prost::alloc::string::String, + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub cijpmgmcjba: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9610)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjldgliipon { + #[prost(uint32, tag = "6")] + pub ajopgpcfhle: u32, + #[prost(uint32, tag = "15")] + pub blbccmphapa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3199)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acclldbgnmf { + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "15")] + pub nkaichlodle: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25210)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gokoofjienk { + #[prost(uint32, tag = "1")] + pub icimaoekkka: u32, + #[prost(uint32, tag = "7")] + pub aaecbhcckbo: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7465)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dicmnbpfcod { + #[prost(bool, tag = "14")] + pub gabahcnhmad: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20319)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epgjbmmoffg { + #[prost(uint32, tag = "3")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mdbnhebdned { + #[prost(message, repeated, tag = "10")] + pub kmhadmidcpg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26641)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gidnngbjhch { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub nnebhhfhdcc: u32, + #[prost(uint32, repeated, tag = "7")] + pub njhgoaehndm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub dfpnkfekiig: u32, + #[prost(uint32, tag = "9")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6737)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klnamgchmod { + #[prost(uint32, tag = "4")] + pub jlfheeipddp: u32, + #[prost(uint64, tag = "7")] + pub dcompdppdpo: u64, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5595)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Doegjmfbhig { + #[prost(uint32, tag = "9")] + pub alnmhbapcgn: u32, + #[prost(uint32, tag = "1")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26468)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iloajkkdalm { + #[prost(uint32, tag = "9")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efbibollcca { + #[prost(uint32, repeated, tag = "3")] + pub jbadgiahpgc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "7")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kajamipdijn { + #[prost(uint32, tag = "1")] + pub dekhbeooien: u32, + #[prost(bool, tag = "9")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21204)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hioakomlcdk { + #[prost(uint32, tag = "2")] + pub ccpigccdboi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaimcpbdbck { + #[prost(message, repeated, tag = "11")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eclnkbmkhhn { + #[prost(bool, tag = "9")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Logligagcgf { + #[prost(uint32, repeated, tag = "14")] + pub data: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26266)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aanglnbifdk { + #[prost(bool, tag = "3")] + pub kbnhkamgpji: bool, + #[prost(uint32, tag = "12")] + pub ppmpfmbfmbb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarInfo { + #[prost(uint32, tag = "1")] + pub avatar_id: u32, + #[prost(uint64, tag = "2")] + pub guid: u64, + #[prost(map = "uint32, message", tag = "3")] + pub prop_map: ::std::collections::HashMap, + #[prost(uint32, tag = "4")] + pub life_state: u32, + #[prost(uint64, repeated, tag = "5")] + pub equip_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub talent_id_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, float", tag = "7")] + pub fight_prop_map: ::std::collections::HashMap, + #[prost(message, optional, tag = "9")] + pub trial_avatar_info: ::core::option::Option, + #[prost(map = "uint32, message", tag = "10")] + pub skill_map: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub skill_depot_id: u32, + #[prost(message, optional, tag = "12")] + pub fetter_info: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub core_proud_skill_level: u32, + #[prost(uint32, repeated, tag = "14")] + pub inherent_proud_skill_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "15")] + pub skill_level_map: ::std::collections::HashMap, + #[prost(enumeration = "AvatarExpeditionState", tag = "16")] + pub expedition_state: i32, + #[prost(map = "uint32, uint32", tag = "17")] + pub proud_skill_extra_level_map: ::std::collections::HashMap, + #[prost(bool, tag = "18")] + pub is_focus: bool, + #[prost(uint32, tag = "19")] + pub avatar_type: u32, + #[prost(uint32, repeated, tag = "20")] + pub team_resonance_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "21")] + pub wearing_flycloak_id: u32, + #[prost(message, repeated, tag = "22")] + pub equip_affix_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "23")] + pub born_time: u32, + #[prost(uint32, repeated, tag = "24")] + pub pending_promote_reward_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "25")] + pub costume_id: u32, + #[prost(message, optional, tag = "26")] + pub excel_info: ::core::option::Option, + #[prost(uint32, tag = "27")] + pub anim_hash: u32, + #[prost(message, optional, tag = "28")] + pub pindegafoae: ::core::option::Option, + #[prost(uint32, tag = "29")] + pub ablfjpmkkda: u32, + #[prost(uint32, tag = "30")] + pub gchglannhmc: u32, + #[prost(uint32, tag = "31")] + pub kcinbomoigl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1209)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbmjjonjdcd { + #[prost(float, tag = "9")] + pub ocoplkhnhel: f32, + #[prost(uint32, tag = "13")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6602)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekoakkboimn { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub mlodbocacgl: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chcofaankll { + #[prost(uint32, tag = "1")] + pub ijffkcgiaoj: u32, + #[prost(uint32, tag = "2")] + pub ndehkhcalmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8728)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Coefplkdegd { + #[prost(uint32, tag = "12")] + pub cjcjonhpiio: u32, + #[prost(uint32, tag = "10")] + pub ilieopgmdgo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27872)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khmldikoljl { + #[prost(uint32, tag = "6")] + pub omgchbachci: u32, + #[prost(message, optional, tag = "10")] + pub bepfmdkmfic: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4370)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmdapooakio { + #[prost(uint32, repeated, tag = "15")] + pub gbeeglejmch: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fbemnkfgbco { + #[prost(uint32, tag = "1")] + pub costume_id: u32, + #[prost(uint32, tag = "3")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26791)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbghhkahkgm { + #[prost(bool, tag = "2")] + pub is_enable_interact: bool, + #[prost(uint32, tag = "5")] + pub gadget_state: u32, + #[prost(uint32, tag = "15")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2222)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dpklcijphca { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, optional, tag = "7")] + pub odemmdjobca: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub blbccmphapa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20463)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pimbejlmhae { + #[prost(uint32, tag = "5")] + pub fjllbmegale: u32, + #[prost(uint32, tag = "14")] + pub jmlmgoappin: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6307)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gglbgcofoje { + #[prost(message, optional, tag = "10")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub ggammenpbim: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28812)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hpfaeenmnlo { + #[prost(message, repeated, tag = "1")] + pub mfcjljpcmhn: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub kanpemecoof: bool, + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fnbbcgbcgih { + #[prost(uint32, tag = "3")] + pub peblohahpmm: u32, + #[prost(float, tag = "4")] + pub agidomnebcj: f32, + #[prost(uint32, tag = "5")] + pub pfoahcojpjm: u32, + #[prost(float, tag = "9")] + pub hnnmhlbcgmn: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1555)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npjfpaofifd { + #[prost(uint32, tag = "6")] + pub scene_time: u32, + #[prost(uint32, tag = "9")] + pub entity_id: u32, + #[prost(message, optional, tag = "15")] + pub platform: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lcjbmelilap { + #[prost(message, optional, tag = "1")] + pub ffioldkchck: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4393)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mebapanfgne { + #[prost(uint32, tag = "11")] + pub group_id: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24899)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hnnomgofbaf { + #[prost(map = "uint32, uint32", tag = "5")] + pub pgcmpkmhllo: ::std::collections::HashMap, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3489)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dioooohgfcl { + #[prost(uint32, tag = "4")] + pub mbaadkncicg: u32, + #[prost(uint32, tag = "10")] + pub ihlceedfind: u32, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24096)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Elejogkfhjd { + #[prost(bool, tag = "2")] + pub dhaomgmmdpd: bool, + #[prost(enumeration = "Himmemhogfb", tag = "5")] + pub mfmlakbiaed: i32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4143)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glnikhleika { + #[prost(uint32, repeated, tag = "6")] + pub oklmhcflbce: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ShortAbilityHashPair { + #[prost(sfixed32, tag = "1")] + pub ability_name_hash: i32, + #[prost(sfixed32, tag = "2")] + pub ompebemnklg: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eedhbfmffkh { + #[prost(message, optional, tag = "1")] + pub ncmmbchombo: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub ejnbfcijomo: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnjcpinjmci { + #[prost(message, repeated, tag = "1")] + pub haopeekmdbm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub emcjhgolmcb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22046)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlelgjbjbnj { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(map = "uint32, uint32", tag = "9")] + pub onhblidiphk: ::std::collections::HashMap, + #[prost(uint32, tag = "11")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5857)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djgekbhblnj { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20807)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkjblgdeell { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pelihnfbhii { + #[prost(bool, tag = "3")] + pub gnplaoaciep: bool, + #[prost(uint32, tag = "7")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "9")] + pub jofbeiaclof: u32, + #[prost(uint32, tag = "10")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjbcklbbnfl { + #[prost(uint32, tag = "1")] + pub bmppibgafcj: u32, + #[prost(uint32, tag = "3")] + pub achigonnfhi: u32, + #[prost(uint32, tag = "13")] + pub blbccmphapa: u32, + #[prost(int32, tag = "14")] + pub jjnhhnfggpa: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(633)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dabcbcdjohd { + #[prost(uint32, tag = "5")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(279)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajlmnioionm { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klclhnbepho { + #[prost(uint32, repeated, tag = "1")] + pub djlbdchiccc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26111)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inkobaggmdf { + #[prost(uint32, tag = "8")] + pub hkeeinbhfhm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24614)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hooimhecdel { + #[prost(uint32, tag = "10")] + pub bfbkiddckhf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntityEnvironmentInfo { + #[prost(uint32, tag = "1")] + pub json_climate_type: u32, + #[prost(uint32, tag = "2")] + pub climate_area_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hhjaehgldif { + #[prost(bool, tag = "2")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "5")] + pub ljhbdlpmfeg: bool, + #[prost(bool, tag = "8")] + pub llhnlhfibhk: bool, + #[prost(bool, tag = "10")] + pub hkbjjglngkb: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imedapfdaak { + #[prost(bool, tag = "1")] + pub eialjbaengj: bool, + #[prost(bool, tag = "3")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "7")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "11")] + pub ckjdedaifdo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2507)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acafloinfgk { + #[prost(uint32, tag = "5")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhcjadcombg { + #[prost(uint32, tag = "6")] + pub eooipnmkdmf: u32, + #[prost(map = "uint32, uint32", tag = "7")] + pub mbbbcmpcnhd: ::std::collections::HashMap, + #[prost(uint32, tag = "8")] + pub nnheenpidgj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpncacoaamh { + #[prost(message, repeated, tag = "1")] + pub cfheeolafic: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7198)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kaennldmmel { + #[prost(string, tag = "5")] + pub iafmhpocogj: ::prost::alloc::string::String, + #[prost(enumeration = "Dljmgiamglf", tag = "11")] + pub aaopmgielok: i32, + #[prost(message, optional, tag = "12")] + pub dapelmgkodk: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2142)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jjeeiflcipm { + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28348)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pimnajihfik { + #[prost(bool, tag = "4")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "5")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "6")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "7")] + pub apafipofloj: u32, + #[prost(uint32, tag = "9")] + pub onhojobnapm: u32, + #[prost(uint32, tag = "15")] + pub dfpnkfekiig: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jncachoeepp { + #[prost(message, repeated, tag = "9")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihekkfpbadd { + #[prost(uint32, tag = "5")] + pub mpohfenkjdk: u32, + #[prost(bool, tag = "9")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "11")] + pub ebdeifcbahi: u32, + #[prost(map = "uint32, uint32", tag = "14")] + pub mjcdnmjjfdk: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgigdceecnk { + #[prost(bool, tag = "2")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "5")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24189)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ndklbbibjak { + #[prost(message, optional, tag = "7")] + pub kkonlphiahe: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21059)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acngfgldcgf { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28222)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocniihcnmjl { + #[prost(uint32, tag = "4")] + pub ihekodchbli: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8911)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ephegmpmkeo {} +#[derive(proto_gen::CmdID)] +#[cmdid(29674)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mecalneccpm { + #[prost(bool, tag = "7")] + pub hmkffhbmmlh: bool, + #[prost(uint32, tag = "13")] + pub ohkidhnabib: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24187)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efgpdomcbcb { + #[prost(message, repeated, tag = "1")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25182)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbebgfocemn { + #[prost(uint32, tag = "9")] + pub ahidnmjdejf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Offeliofhpk { + #[prost(string, tag = "1")] + pub bmljclenhmh: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub llgjemmhion: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub hecaafpgnah: u32, + #[prost(uint32, tag = "4")] + pub mhjhjljmejl: u32, + #[prost(uint32, tag = "5")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "6")] + pub end_time: u32, + #[prost(uint32, tag = "7")] + pub lpmdbegoofj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21561)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fongemnlimm { + #[prost(uint32, tag = "6")] + pub omgchbachci: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1793)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjildlanlal { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23909)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibdnphpnkmd { + #[prost(string, tag = "9")] + pub team_name: ::prost::alloc::string::String, + #[prost(int32, tag = "12")] + pub team_id: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6928)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmcklpjadan { + #[prost(string, tag = "4")] + pub jenllhdblhn: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3876)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glaipmiheok {} +#[derive(proto_gen::CmdID)] +#[cmdid(7651)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcbmhfphbbm { + #[prost(uint32, tag = "7")] + pub ghdnhigkokm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8959)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcckhccnfki { + #[prost(bool, tag = "5")] + pub ankcbommojb: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26854)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmdbpgcbbhd { + #[prost(uint32, tag = "8")] + pub phmkpnkmooe: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(990)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alonbobighp { + #[prost(uint32, repeated, tag = "2")] + pub phkpfjajfkj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kikidlkdgbb { + #[prost(bool, tag = "6")] + pub ecihdijcled: bool, + #[prost(uint32, tag = "9")] + pub mempkcgnnmf: u32, + #[prost(uint32, repeated, tag = "14")] + pub bekbhhlppia: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub elomgojdifo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25950)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nebjahajfpo {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjlpgfbgfgb { + #[prost(uint32, tag = "4")] + pub elnnedmbbaa: u32, + #[prost(uint32, tag = "9")] + pub ebilinkbhol: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eohbndpkfpc { + #[prost(uint32, tag = "1")] + pub eklelflelek: u32, + #[prost(uint32, tag = "3")] + pub flkpgmlnfgf: u32, + #[prost(uint32, tag = "6")] + pub pmdpjjkbnbp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6224)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieelabnpglp { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(374)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Epiooihapca { + #[prost(uint32, repeated, tag = "2")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(int32, tag = "10")] + pub dmhnneglbbm: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8775)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkndllgilda { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint64, tag = "8")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4209)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdjhdfadipj { + #[prost(message, optional, tag = "1")] + pub lognndhodkh: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lghpolggnea { + #[prost(string, tag = "2")] + pub hcmnenkmnal: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub lgbikbiocac: ::prost::alloc::string::String, + #[prost(string, tag = "9")] + pub fioaohpbkga: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Maelijnmjfg { + #[prost(uint32, tag = "2")] + pub pdkifkkmhcn: u32, + #[prost(uint32, tag = "3")] + pub aaopmgielok: u32, + #[prost(uint32, tag = "4")] + pub lgbnfifcpjf: u32, + #[prost(uint32, tag = "8")] + pub group_id: u32, + #[prost(uint32, tag = "9")] + pub gjnbfnoiiin: u32, + #[prost(uint32, tag = "12")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "15")] + pub fpedhedekpe: u32, + #[prost( + oneof = "maelijnmjfg::Detail", + tags = "23, 156, 344, 499, 612, 667, 820, 861, 970, 976, 1280, 1499, 1664, 1749, 1810, 1838, 1961, 1996" + )] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `MAELIJNMJFG`. +pub mod maelijnmjfg { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "23")] + TargetShootingInfo(super::Llidcbkbpjh), + #[prost(message, tag = "156")] + HideAndSeekInfo(super::Nbokgpkibpk), + #[prost(message, tag = "344")] + ChessInfo(super::Ogaiociiaob), + #[prost(message, tag = "499")] + FleurFairInfo(super::Jgbbfognlkn), + #[prost(message, tag = "612")] + HideAndSeekV4Info(super::Ockfdndlgjg), + #[prost(message, tag = "667")] + BallGameInfo(super::Ioilcoenabe), + #[prost(message, tag = "820")] + FleurFairV2PacmanInfo(super::Jojdjopieag), + #[prost(message, tag = "861")] + LanV4PartyLionInfo(super::Ffnnmlbfeih), + #[prost(message, tag = "970")] + PitchPotInfo(super::Efbibollcca), + #[prost(message, tag = "976")] + LanV3BoatInfo(super::Oohiibfcaje), + #[prost(message, tag = "1280")] + CoinCollectInfo(super::Jcekiajcncj), + #[prost(message, tag = "1499")] + IrodoriChessInfo(super::Chokefpflec), + #[prost(message, tag = "1664")] + CharAmusementInfo(super::Bpibibmgoll), + #[prost(message, tag = "1749")] + BrickBreakerInfo(super::Bbhcdjobhmj), + #[prost(message, tag = "1810")] + MonsterVsMonsterInfo(super::Cpdnnjhcjlk), + #[prost(message, tag = "1838")] + WatergunInfo(super::Fgjdcedjkfk), + #[prost(message, tag = "1961")] + BirdBallInfo(super::Dnfmmbkopga), + #[prost(message, tag = "1996")] + MechanicusInfo(super::Hikjhbdfmpa), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(24713)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbghajglpkc {} +#[derive(proto_gen::CmdID)] +#[cmdid(23156)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fldnajjhiap { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gohocgbphan { + #[prost(message, repeated, tag = "14")] + pub ccfeeebackd: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8755)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aikkioblnli { + #[prost(uint32, tag = "3")] + pub gaplfmmgbfa: u32, + #[prost(uint32, tag = "10")] + pub lbclghbmdaf: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5696)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofpppogndid { + #[prost(message, repeated, tag = "8")] + pub pjemkikefle: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24453)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Donafffeomp { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27277)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ofooeamppkm { + #[prost(uint64, repeated, tag = "8")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntityAuthorityInfo { + #[prost(message, optional, tag = "1")] + pub ability_info: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub renderer_changed_info: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub ai_info: ::core::option::Option, + #[prost(message, optional, tag = "4")] + pub born_pos: ::core::option::Option, + #[prost(message, repeated, tag = "5")] + pub pose_para_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "6")] + pub client_extra_info: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20786)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdemnlniiom { + #[prost(uint32, tag = "1")] + pub lbclghbmdaf: u32, + #[prost(uint32, tag = "14")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nknhageffgb { + #[prost(bool, tag = "7")] + pub emlilmhjhog: bool, + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "15")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9641)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nadacbaokip { + #[prost(map = "uint32, uint32", tag = "11")] + pub bnofpmifhdl: ::std::collections::HashMap, + #[prost(uint32, tag = "4")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "1")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmcjpgaoilc { + #[prost(message, optional, tag = "12")] + pub behlkbcibpe: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub pdfdckhldok: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnaielhbadh { + #[prost(message, optional, tag = "1")] + pub nlhmghplhcg: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub jepppmiiimk: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub hfomgfpncml: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onejlakghci { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(string, tag = "3")] + pub mmdpdoococo: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "10")] + pub dbmpkigbbhn: u32, + #[prost(string, tag = "12")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(message, optional, tag = "13")] + pub blfkojlccoo: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5543)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hbmhancohoh { + #[prost(int32, tag = "7")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkbdiohdfij { + #[prost(message, repeated, tag = "11")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3211)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmjoikfencn { + #[prost(message, repeated, tag = "1")] + pub iffngnbbibb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub ajdeflcgbmb: u32, + #[prost(uint32, tag = "10")] + pub jfkplildpom: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub alodojjbeen: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7559)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aoakbecnkjl { + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "12")] + pub hjppomggmli: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8766)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjefogdbogp {} +#[derive(proto_gen::CmdID)] +#[cmdid(3133)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lfiejpcddjh { + #[prost(uint32, tag = "9")] + pub neipflioolk: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24403)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clpojmdleng {} +#[derive(proto_gen::CmdID)] +#[cmdid(28199)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okahkmohaej { + #[prost(message, repeated, tag = "1")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub level: u32, + #[prost(uint32, tag = "11")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iphepklgfhh { + #[prost(uint32, tag = "2")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(996)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcppihecjoh { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20080)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eoabofmhkbl { + #[prost(message, optional, tag = "6")] + pub lognndhodkh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cggnejcicoh { + #[prost(uint32, tag = "1")] + pub fbpgimlmdnj: u32, + #[prost(uint32, tag = "4")] + pub ikaejmadibp: u32, + #[prost(enumeration = "Meldmegflld", tag = "6")] + pub abclhaaljpl: i32, + #[prost(message, repeated, tag = "15")] + pub mlpblilnnac: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5294)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmmhdmldkcl {} +#[derive(proto_gen::CmdID)] +#[cmdid(1690)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hefmoljonem { + #[prost(uint32, tag = "15")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8776)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chagemnieak { + #[prost(uint32, tag = "3")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "10")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29751)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aapnidhhbbk { + #[prost(message, repeated, tag = "2")] + pub nbiglfhejbe: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "7")] + pub gbepkglfbfd: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "8")] + pub retcode: i32, + #[prost(enumeration = "Dplhebckkgg", tag = "9")] + pub cdebnkchkgm: i32, + #[prost(message, repeated, tag = "13")] + pub mkmhpomeahp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28267)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbfjfilkike { + #[prost(bool, tag = "6")] + pub npccimcpaai: bool, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmgmniiejbe { + #[prost(uint32, tag = "7")] + pub gnjcidhobia: u32, + #[prost(uint32, tag = "8")] + pub key: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29823)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmjablelkij { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(message, repeated, tag = "11")] + pub ilnbhpkjkmg: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20486)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbbdaidenld { + #[prost(uint32, repeated, tag = "2")] + pub nnfbhpjcono: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "1428")] + pub cfkplnkhfkn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub jlfheeipddp: u32, + #[prost(uint32, tag = "1166")] + pub ipgglfekean: u32, + #[prost(uint32, tag = "8")] + pub bhpgplpcnpl: u32, + #[prost(uint32, tag = "4")] + pub clcabcnlgfm: u32, + #[prost(uint32, tag = "218")] + pub gikjkdblfad: u32, + #[prost(uint32, tag = "13")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "11")] + pub ejnglcjnapn: u32, + #[prost(uint32, tag = "331")] + pub jjkibhbpppo: u32, + #[prost(uint32, tag = "14")] + pub cjbckcobhff: u32, + #[prost(uint64, tag = "15")] + pub dcompdppdpo: u64, + #[prost(float, tag = "1963")] + pub speed: f32, + #[prost(bool, tag = "12")] + pub jfjdimpcnnf: bool, + #[prost(bool, tag = "1278")] + pub hkjpcjflnfj: bool, + #[prost(bool, tag = "847")] + pub oedcpfgakam: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Reliquary { + #[prost(uint32, tag = "1")] + pub level: u32, + #[prost(uint32, tag = "2")] + pub exp: u32, + #[prost(uint32, tag = "3")] + pub promote_level: u32, + #[prost(uint32, tag = "4")] + pub main_prop_id: u32, + #[prost(uint32, repeated, tag = "5")] + pub append_prop_id_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dhdlknomaee { + #[prost(oneof = "dhdlknomaee::Jihgiiolfhe", tags = "5, 6, 7, 9, 10, 11, 12, 13, 15")] + pub jihgiiolfhe: ::core::option::Option, +} +/// Nested message and enum types in `DHDLKNOMAEE`. +pub mod dhdlknomaee { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Jihgiiolfhe { + #[prost(message, tag = "5")] + OpReroll(super::Ldhbdignhcl), + #[prost(message, tag = "6")] + OpPlayCard(super::Gmhlcfmhpbg), + #[prost(message, tag = "7")] + OpVehicle(super::Kaokjipofol), + #[prost(message, tag = "9")] + OpSelectOnStage(super::Kbllgefkocb), + #[prost(message, tag = "10")] + OpSurrender(super::Nbhbdhejbih), + #[prost(message, tag = "11")] + OpReboot(super::Lpojmbghhbj), + #[prost(message, tag = "12")] + OpRedraw(super::Laojlgmbaee), + #[prost(message, tag = "13")] + OpAttack(super::Ncgmjbgcfoi), + #[prost(message, tag = "15")] + OpPass(super::Dimcbfdlbki), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(8059)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihigkgehkbh { + #[prost(uint32, tag = "2")] + pub ckfgjjlblnm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23421)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flalklbhakn { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dgecjhenbkp { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(string, tag = "2")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub level: u32, + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(uint32, tag = "5")] + pub obfcjpojmom: u32, + #[prost(string, tag = "6")] + pub pbigganlbdh: ::prost::alloc::string::String, + #[prost(enumeration = "Aplkolhcome", tag = "7")] + pub oikmlefopaf: i32, + #[prost(uint32, tag = "8")] + pub param: u32, + #[prost(bool, tag = "10")] + pub ndbmjekkcgp: bool, + #[prost(string, tag = "11")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub bfdobealifp: u32, + #[prost(uint32, tag = "13")] + pub pkicaibdchd: u32, + #[prost(uint32, tag = "14")] + pub lpdnopahlib: u32, + #[prost(bool, tag = "15")] + pub pgeefgkfcmb: bool, + #[prost(uint32, tag = "16")] + pub ilplkjadegb: u32, + #[prost(string, tag = "17")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "22")] + pub cadonpdcdbg: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Fcfbaddhheo", tag = "23")] + pub occlnkdddne: i32, + #[prost(message, optional, tag = "24")] + pub blfkojlccoo: ::core::option::Option, + #[prost(bool, tag = "25")] + pub ebidbgfmbpb: bool, + #[prost(bool, tag = "26")] + pub bilaclegmbi: bool, + #[prost(enumeration = "Cegmlmcfcpm", tag = "27")] + pub platform_type: i32, + #[prost(bool, tag = "28")] + pub bapjkmdbbmd: bool, + #[prost(bool, tag = "29")] + pub kpeeoapghpb: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhfikahpbmm { + #[prost(uint32, tag = "9")] + pub ndameclaedh: u32, + #[prost(message, repeated, tag = "14")] + pub hoggkjeimkj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjdebjmedpd { + #[prost(uint32, tag = "3")] + pub item_id: u32, + #[prost(uint32, tag = "13")] + pub gfppmnlpoek: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(783)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nojcgpcmijh { + #[prost(uint32, repeated, tag = "11")] + pub mkelecopffb: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oelndhifhii { + #[prost(message, repeated, tag = "6")] + pub ieimnelhaff: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub bjjdmkgdeio: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21445)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhnmhlpepcp { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7604)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkaijencngf { + #[prost(enumeration = "Blbmocglooj", tag = "2")] + pub pcfefinaiif: i32, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(message, repeated, tag = "6")] + pub oichdianaee: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub bfddkachcei: bool, + #[prost(message, repeated, tag = "9")] + pub niomengdmaj: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub lepomlnoapk: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Fogemdkjjcn", tag = "12")] + pub hkhifglncll: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bnjjmjnjcba { + #[prost(message, optional, tag = "8")] + pub baimabkjkdd: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub mmkamelgmoa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8117)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpdaaahkdik { + #[prost(uint64, repeated, tag = "2")] + pub ibphcajngei: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub oiphhklaibf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Okoiekiacnd { + #[prost(message, repeated, tag = "1")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub ggbndighcbl: u32, + #[prost(uint32, tag = "7")] + pub dafejpkfblo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23781)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kifglhogkno { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(bool, tag = "9")] + pub bdgphdbflkm: bool, + #[prost(uint32, tag = "10")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20222)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eaadmkkfdpn {} +#[derive(proto_gen::CmdID)] +#[cmdid(1221)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkpfanhoeba { + #[prost(uint32, repeated, tag = "5")] + pub mbjelcmkflh: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Gmbpglnggli", tag = "14")] + pub ipobdekllje: i32, + #[prost(enumeration = "Noipnepdipn", tag = "15")] + pub epcbaobgodi: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9389)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aookfpklgmg { + #[prost(enumeration = "Chbmdhgnfhg", tag = "13")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9496)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbcngblnbki { + #[prost(map = "uint32, uint64", tag = "13")] + pub jbimondbcbb: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(146)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmjeiimndci {} +#[derive(proto_gen::CmdID)] +#[cmdid(3949)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iogggiidfem {} +#[derive(proto_gen::CmdID)] +#[cmdid(7770)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Higpfidmalh { + #[prost(uint32, tag = "11")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1590)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nponaffgklk { + #[prost(message, repeated, tag = "14")] + pub bjnlfbjhlaf: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkbofeacmha { + #[prost(uint32, tag = "1")] + pub kijjbikfdkn: u32, + #[prost(string, tag = "2")] + pub nhfncgpbdog: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub comnaflodgj: ::prost::alloc::string::String, + #[prost(uint32, tag = "4")] + pub fckcnhkoabi: u32, + #[prost(uint32, tag = "5")] + pub kgldfijajie: u32, + #[prost(uint32, tag = "6")] + pub ahbcofjamcp: u32, + #[prost(uint32, tag = "7")] + pub end_time: u32, + #[prost(uint32, tag = "8")] + pub hdklpbohldh: u32, + #[prost(uint32, tag = "9")] + pub keaaloaehcm: u32, + #[prost(string, tag = "10")] + pub aicdpnibohe: ::prost::alloc::string::String, + #[prost(string, tag = "11")] + pub cdpbbjmokhc: ::prost::alloc::string::String, + #[prost(uint32, tag = "12")] + pub anhigelnhkp: u32, + #[prost(uint32, tag = "13")] + pub clkpaggjmac: u32, + #[prost(uint32, tag = "14")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "15")] + pub lgbnfifcpjf: u32, + #[prost(string, tag = "162")] + pub habibjmgigk: ::prost::alloc::string::String, + #[prost(uint32, tag = "502")] + pub hghmffpaboo: u32, + #[prost(string, tag = "668")] + pub ndpfphcdnha: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "792")] + pub bhelhjbmbfh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "820")] + pub afbcgipiakc: u32, + #[prost(uint32, tag = "1082")] + pub flbfcpekoje: u32, + #[prost(uint32, repeated, tag = "1282")] + pub efpbiclmcgg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "1333")] + pub aiihckimnnn: u32, + #[prost(bool, tag = "1624")] + pub lagahpeklhm: bool, + #[prost(uint32, repeated, tag = "1735")] + pub pbchchiiglk: ::prost::alloc::vec::Vec, + #[prost(string, tag = "1756")] + pub aldgmbljohb: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "1805")] + pub nibjjpkmhng: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "1829")] + pub lhnmdfnenen: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7743)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oiddgdeobhn { + #[prost(bool, tag = "7")] + pub eippeiilmdp: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6486)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pgbfklpmfod { + #[prost(string, tag = "8")] + pub nick_name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1682)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbneldlealh { + #[prost(uint64, repeated, tag = "9")] + pub kkagfcfmhmm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "13")] + pub opbnfdpdjgd: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21183)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkpgjjfiflb { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afooomafblf { + #[prost(uint32, tag = "2")] + pub uid: u32, + #[prost(string, tag = "12")] + pub bkdilgijpeg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29006)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kgkaekamfop { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29021)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lhoicaagpcd { + #[prost(bool, tag = "12")] + pub plfbppnfdog: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21006)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcdlgablnlo { + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9580)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdaffnfabkc { + #[prost(enumeration = "Oeaoccjeope", tag = "4")] + pub ddiaamkbfda: i32, + #[prost(uint32, tag = "7")] + pub cenhkjdffda: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(bool, tag = "14")] + pub mcpkkmhkcpd: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28354)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gbcajibkphh { + #[prost(enumeration = "Dlfmncpnfii", tag = "13")] + pub fkkdiffjccj: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omofgonabfb { + #[prost(enumeration = "Mialgmhklbl", tag = "4")] + pub avatar_type: i32, + #[prost(uint32, tag = "5")] + pub costume_id: u32, + #[prost(uint32, tag = "6")] + pub eabfclcoelb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29153)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afhponpadae { + #[prost(uint32, repeated, tag = "6")] + pub fikgdofabee: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub dibjhdjhhlo: u32, + #[prost(uint32, tag = "5")] + pub cngjenenjih: u32, + #[prost(uint32, tag = "2")] + pub mhjeokngcdf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbokgpkibpk { + #[prost(uint32, tag = "2")] + pub mcmbofifbcp: u32, + #[prost(uint32, repeated, tag = "5")] + pub dmanoklbkka: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub kmhidaefflc: u32, + #[prost(bool, tag = "9")] + pub ebgkbpbkogl: bool, + #[prost(enumeration = "Plpanejlelj", tag = "11")] + pub fpedhedekpe: i32, + #[prost(map = "uint32, message", tag = "12")] + pub gffgjmadacl: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bldodediihf { + #[prost(uint32, tag = "1")] + pub bahemifdhhc: u32, + #[prost(uint32, tag = "12")] + pub dajkecknnmb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fclbgdlfjdp { + #[prost(uint32, tag = "3")] + pub ejngailfghf: u32, + #[prost(message, repeated, tag = "6")] + pub chgjbbnldch: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25879)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Inkbchbknbd { + #[prost(uint32, tag = "9")] + pub parent_quest_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29217)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Henmipginhc { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "14")] + pub mjiofgmcple: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmbkbalmnka { + #[prost(uint32, tag = "1")] + pub gaplfmmgbfa: u32, + #[prost(bool, tag = "9")] + pub hjlpileemeb: bool, + #[prost(uint32, tag = "12")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8251)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hiebdgbfche { + #[prost(uint32, tag = "3")] + pub necgmakacdi: u32, + #[prost(uint32, tag = "9")] + pub pcaobbjlffm: u32, + #[prost(uint32, tag = "13")] + pub bbfplmbggjp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27812)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddnnicokhff { + #[prost(uint32, tag = "2")] + pub omgchbachci: u32, + #[prost(message, optional, tag = "8")] + pub geihmkhcije: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppkidfdnmhg { + #[prost(message, optional, tag = "4")] + pub kiolegbhkbk: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub dalbepbfmfb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5672)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipoodgpidjf { + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hiipejfdlam { + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub peajinifghm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7069)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbbldckbopk { + #[prost(uint32, tag = "5")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1527)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojgpkbcgpff { + #[prost(uint32, repeated, tag = "1")] + pub eldnocohalm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "3")] + pub mlbpenmicli: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub jfpjmbolngm: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "8")] + pub fjepgpkjahk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "15")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obeolmghglf { + #[prost(float, tag = "1")] + pub bjabdhjannk: f32, + #[prost(float, tag = "2")] + pub ebkaenefpgj: f32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2286)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gilemaiabln { + #[prost(uint64, tag = "5")] + pub knijefgolnp: u64, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(bool, tag = "12")] + pub is_locked: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24454)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ehledjiococ { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1490)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dofnjnjgfoi { + #[prost(uint32, tag = "15")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1693)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fadpngopadc { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3038)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jggbkdigjfg { + #[prost(uint32, tag = "11")] + pub ljejebelkmj: u32, + #[prost(uint32, tag = "5")] + pub clcnmjkomll: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ccihppgcmap { + #[prost(bool, tag = "9")] + pub dggckmikbmo: bool, + #[prost(message, optional, tag = "13")] + pub bepfmdkmfic: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcpncfenhel { + #[prost(message, optional, tag = "6")] + pub pos: ::core::option::Option, + #[prost(message, optional, tag = "13")] + pub rot: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jllnaeakigl { + #[prost(uint32, tag = "4")] + pub gheklaopimo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9939)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Olpmfdhimch { + #[prost(uint32, tag = "2")] + pub param: u32, + #[prost(uint32, tag = "4")] + pub target_uid: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Caoiklifeeb { + #[prost(uint32, tag = "2")] + pub leijpnjklim: u32, + #[prost(uint32, tag = "6")] + pub amlbcabkjfp: u32, + #[prost(message, optional, tag = "7")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub kmaehpagkfk: u32, + #[prost(uint32, tag = "11")] + pub uid: u32, + #[prost(map = "uint32, uint32", tag = "14")] + pub ejodjeedjne: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27505)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agmjonlifgp {} +#[derive(proto_gen::CmdID)] +#[cmdid(6713)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfchinhdhcj { + #[prost(uint32, tag = "3")] + pub param: u32, + #[prost(message, repeated, tag = "6")] + pub pgonbleeaed: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub r#type: u32, + #[prost(message, optional, tag = "15")] + pub aepafpdiiba: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4497)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onhpcakldeo { + #[prost(uint32, tag = "10")] + pub abnmbcelocb: u32, + #[prost(uint32, tag = "11")] + pub gaplfmmgbfa: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iffkjkoeiod { + #[prost(uint32, tag = "1")] + pub bneponhaomg: u32, + #[prost(uint32, tag = "2")] + pub kfpegnaadlo: u32, + #[prost(uint32, tag = "7")] + pub gaplfmmgbfa: u32, + #[prost(enumeration = "Pblfodhddml", tag = "8")] + pub state: i32, + #[prost(uint32, tag = "12")] + pub fffkclcemin: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6159)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jofeigjleha { + #[prost(bool, tag = "8")] + pub ofhehoohoja: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20235)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmfnfaflhcn { + #[prost(uint32, repeated, tag = "14")] + pub ahpcnjnnlnh: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "10")] + pub cbmafaahiab: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "1")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24392)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgjnehmadhl { + #[prost(message, repeated, tag = "9")] + pub dbphkpkcjnp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(395)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eoeboihkacl { + #[prost(uint32, tag = "8")] + pub phmkpnkmooe: u32, + #[prost(uint32, tag = "9")] + pub lgooidciaag: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbkcmecjhbj { + #[prost(uint32, tag = "6")] + pub phpfppidjkj: u32, + #[prost(uint32, tag = "13")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbmikfmachb { + #[prost(message, repeated, tag = "12")] + pub aeoeakggcan: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2226)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aanophclbhl { + #[prost(int32, tag = "5")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hmkmopmkdgo { + #[prost(uint32, tag = "7")] + pub fllkomkhiam: u32, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24554)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nniflhkonkp {} +#[derive(proto_gen::CmdID)] +#[cmdid(1975)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lmhoppcnglk {} +#[derive(proto_gen::CmdID)] +#[cmdid(28493)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Idjbnepgkmp { + #[prost(bool, tag = "7")] + pub ljmfgajfian: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jacncoilbca { + #[prost(uint32, tag = "3")] + pub cbkmbdhpbdc: u32, + #[prost(uint32, tag = "8")] + pub gpbnffjbomn: u32, + #[prost(uint32, tag = "9")] + pub lpfiogebnjf: u32, + #[prost(uint32, tag = "14")] + pub iknfnnfkagf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20112)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fngcmlcjgop { + #[prost(string, tag = "12")] + pub name: ::prost::alloc::string::String, + #[prost(bool, tag = "9")] + pub bkocnhnnepi: bool, + #[prost(uint32, tag = "13")] + pub cdmjgifefmd: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hkpnpgabcij { + #[prost(uint32, tag = "1")] + pub oboopjlpdni: u32, + #[prost(uint32, tag = "3")] + pub fbpgimlmdnj: u32, + #[prost(uint32, repeated, tag = "4")] + pub ogjodgflein: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "5")] + pub guid: u32, + #[prost(uint32, tag = "7")] + pub kdknoocoebm: u32, + #[prost(bool, tag = "10")] + pub hkgkclkjdop: bool, + #[prost(message, repeated, tag = "12")] + pub cahlhmjcolo: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "13")] + pub pobhlhhdjhe: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "15")] + pub tag_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nplpkkmdphh { + #[prost(enumeration = "AvatarType", tag = "2")] + pub avatar_type: i32, + #[prost(uint32, tag = "7")] + pub costume_id: u32, + #[prost(uint32, tag = "13")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbdcjchbdac { + #[prost(int32, tag = "4")] + pub gnjcidhobia: i32, + #[prost(enumeration = "Dmkgkakimab", tag = "14")] + pub r#type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ppcogllllbo { + #[prost(uint32, repeated, tag = "1")] + pub gcbeeinchka: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Eegmnipnkmj", tag = "5")] + pub reason: i32, + #[prost(enumeration = "Ihacnpjbldi", tag = "7")] + pub fiiaknpdpnj: i32, + #[prost(uint32, tag = "15")] + pub fbpgimlmdnj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1012)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chbbiahomnp { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eihakhjejpl { + #[prost(uint32, repeated, tag = "6")] + pub mnnbpdbbckh: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "12")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "13")] + pub nnaalgjoaio: u32, + #[prost(uint32, tag = "15")] + pub dmnldppgokg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3275)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Llkeeiihnlk { + #[prost(uint32, tag = "7")] + pub gpdogmpijfc: u32, + #[prost(map = "uint32, message", tag = "10")] + pub onnlnefnfgj: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1480)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fcmilblcomn { + #[prost(uint32, tag = "1")] + pub fhhjghkngfg: u32, + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Caenmemopkh { + #[prost(uint32, tag = "2")] + pub ogopbmamfma: u32, + #[prost(uint32, tag = "4")] + pub fbglapbjmkb: u32, + #[prost(uint32, tag = "5")] + pub ikhholbmdko: u32, + #[prost(message, optional, tag = "10")] + pub nbhoddcfikb: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub bpfoadipmjf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29764)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngloniahmog { + #[prost(uint32, tag = "1")] + pub nlfokopdlji: u32, + #[prost(message, repeated, tag = "2")] + pub kfancdobikj: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "3")] + pub meffpehbopm: bool, + #[prost(uint32, tag = "5")] + pub nneccmilpal: u32, + #[prost(bool, tag = "7")] + pub jcncmohdbmm: bool, + #[prost(bool, tag = "8")] + pub amnbppdcegi: bool, + #[prost(bool, tag = "9")] + pub jfoeekheimo: bool, + #[prost(uint32, tag = "10")] + pub epcpnhjnkbn: u32, + #[prost(uint32, tag = "11")] + pub epcbaobgodi: u32, + #[prost(uint32, tag = "12")] + pub hgkkgoolfpe: u32, + #[prost(uint32, tag = "13")] + pub nnaalgjoaio: u32, + #[prost(bool, tag = "14")] + pub cildcaaeaoj: bool, + #[prost(bool, tag = "15")] + pub folikaaikie: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21164)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ajekigfpbjh { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "3")] + pub hjhpfacphjf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub jefildjebaj: u32, + #[prost(message, repeated, tag = "12")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3135)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SetUpAvatarTeamReq { + #[prost(uint64, repeated, tag = "6")] + pub avatar_team_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "12")] + pub cur_avatar_guid: u64, + #[prost(uint32, tag = "13")] + pub team_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ainkohfimhn { + #[prost(int32, tag = "1")] + pub x: i32, + #[prost(int32, tag = "2")] + pub y: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3879)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kfddhhmibbb { + #[prost(message, optional, tag = "4")] + pub nkkdocdejfg: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhefliobhjo { + #[prost(message, optional, tag = "2")] + pub rot: ::core::option::Option, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgkgabikcip { + #[prost(uint32, tag = "1")] + pub fbpgimlmdnj: u32, + #[prost(uint32, tag = "2")] + pub bchdodngchl: u32, + #[prost(map = "uint32, message", tag = "3")] + pub oenfjdpljll: ::std::collections::HashMap, + #[prost(uint32, tag = "4")] + pub anjmobmgame: u32, + #[prost(message, optional, tag = "5")] + pub imljbagldbf: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub jmpkjdhjkik: ::core::option::Option, + #[prost(enumeration = "Cmdeepdjoga", repeated, tag = "7")] + pub ebhcablnklp: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "8")] + pub jhcjkgoonda: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub eilehagfenp: u32, + #[prost(message, optional, tag = "10")] + pub ncfhblfkbgd: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub ehbhplapohk: u32, + #[prost(message, repeated, tag = "12")] + pub mhkfnlghmpi: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub cmnbcfnaanh: u32, + #[prost(message, optional, tag = "14")] + pub adkjlpandlh: ::core::option::Option, + #[prost(bool, tag = "15")] + pub hjeilabenak: bool, + #[prost(uint32, tag = "1155")] + pub gdfkdhgbdjo: u32, + #[prost(bool, tag = "1590")] + pub hpjpckiilaj: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AvatarExcelInfo { + #[prost(uint64, tag = "1")] + pub prefab_path_hash: u64, + #[prost(uint64, tag = "2")] + pub prefab_path_remote_hash: u64, + #[prost(uint64, tag = "3")] + pub controller_path_hash: u64, + #[prost(uint64, tag = "4")] + pub controller_path_remote_hash: u64, + #[prost(uint64, tag = "5")] + pub combat_config_hash: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmmgigafgdo { + #[prost(map = "uint32, uint32", tag = "5")] + pub blolpfcbdin: ::std::collections::HashMap, + #[prost(uint32, tag = "8")] + pub mempkcgnnmf: u32, + #[prost(bool, tag = "11")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikkagaaibik { + #[prost(uint32, repeated, tag = "1")] + pub cmhjnabfhgj: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub ilgkjachiji: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24363)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bamdknielgj { + #[prost(uint32, tag = "14")] + pub okicoglejec: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abmkmcnpagm { + #[prost(bool, tag = "9")] + pub okiggnfhlgg: bool, + #[prost(uint32, tag = "10")] + pub monster_id: u32, + #[prost(uint32, tag = "11")] + pub entity_id: u32, + #[prost(bool, tag = "12")] + pub lalcjafhbad: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3174)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Paippemgich {} +#[derive(proto_gen::CmdID)] +#[cmdid(28847)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dmdhfllhlcp { + #[prost(string, tag = "1")] + pub bkdilgijpeg: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27249)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Andkbibkgcg { + #[prost(uint32, tag = "1")] + pub kenikecfflm: u32, + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, optional, tag = "7")] + pub ebpoibhnpnh: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20409)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pjobhnpmhbe { + #[prost(uint32, repeated, tag = "13")] + pub bekbhhlppia: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2893)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ibpidnmpdfo { + #[prost(message, optional, tag = "10")] + pub ejalongbodn: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(610)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fjmpedgckbh { + #[prost(enumeration = "Igohjibcdfa", tag = "6")] + pub lkidbhiooog: i32, + #[prost(uint32, tag = "8")] + pub entity_id: u32, + #[prost(message, optional, tag = "9")] + pub ofijojjopik: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22401)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bcnpabbnnlg { + #[prost(uint32, tag = "1")] + pub pdlkmpbkane: u32, + #[prost(uint32, tag = "2")] + pub entity_id: u32, + #[prost(uint32, repeated, tag = "3")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub iehlhaogkpj: u32, + #[prost(uint32, tag = "6")] + pub laicdpfdimh: u32, + #[prost(uint32, repeated, tag = "9")] + pub dnijppkbcbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub bmeffiimled: u32, + #[prost(string, tag = "13")] + pub ceelgoogbec: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag = "14")] + pub ljoofaigafk: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub aaopmgielok: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7218)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plmipijdmpa {} +#[derive(proto_gen::CmdID)] +#[cmdid(5901)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhbkiinfnpk { + #[prost(message, optional, tag = "7")] + pub inoanpfnjbb: ::core::option::Option, + #[prost(message, optional, tag = "9")] + pub gkkbdhmoppi: ::core::option::Option, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26720)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mplleoncmoj { + #[prost(uint32, tag = "3")] + pub uid: u32, + #[prost(message, repeated, tag = "13")] + pub lihcaefdjoc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28515)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcghjnhpepf { + #[prost(enumeration = "Jjhggdcjhji", tag = "9")] + pub mgcabaeicco: i32, + #[prost(bool, tag = "5")] + pub nkeifkmdnnc: bool, + #[prost(enumeration = "Ognimielclp", tag = "11")] + pub onknnoeanji: i32, + #[prost(enumeration = "Himmemhogfb", tag = "10")] + pub mfmlakbiaed: i32, + #[prost(uint32, tag = "13")] + pub khhibkpbkpn: u32, + #[prost(uint64, tag = "8")] + pub dcompdppdpo: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1496)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mncanfdlmob {} +#[derive(proto_gen::CmdID)] +#[cmdid(7866)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmmanhgbiik { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(message, optional, tag = "5")] + pub pos: ::core::option::Option, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub jinjlbemjnc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7760)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glaialaegpb {} +#[derive(proto_gen::CmdID)] +#[cmdid(8090)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bddocdinbpm {} +#[derive(proto_gen::CmdID)] +#[cmdid(23047)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cbdapplpdkl { + #[prost(message, repeated, tag = "9")] + pub prop_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gjfdldcnahl { + #[prost(uint32, tag = "4")] + pub dppfeemfnmn: u32, + #[prost(message, optional, tag = "5")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "7")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "9")] + pub uid: u32, + #[prost(string, tag = "10")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "13")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "15")] + pub ipbbhmppdaa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23536)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ejgemkjbpel { + #[prost(uint32, tag = "5")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29466)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jnjngnblfje { + #[prost(uint32, tag = "6")] + pub giilnmoloni: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22506)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jgbpmookaib { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22696)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nnieloanjpe { + #[prost(bool, tag = "4")] + pub omncikffgbo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lnokpdcnooe { + #[prost(uint32, tag = "4")] + pub oiphhklaibf: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(uint32, tag = "12")] + pub pkmjlonieco: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gidjakbjkgj { + #[prost(uint32, tag = "6")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(227)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kpgjniddnej {} +#[derive(proto_gen::CmdID)] +#[cmdid(8068)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khcncdfceof { + #[prost(message, optional, tag = "12")] + pub gohpifbeioi: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adhjcekbmci { + #[prost(uint32, repeated, tag = "3")] + pub ieiomelgehh: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "6")] + pub ddbdokonakg: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "7")] + pub amhdkmcjplb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub nfbhfjbacig: u32, + #[prost(uint32, tag = "12")] + pub kgffekdhkga: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2317)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojonlaahcji { + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22824)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kacoamdiapn { + #[prost(bool, tag = "6")] + pub khblknfmbnm: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21624)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ipilppdjpmg { + #[prost(uint32, repeated, tag = "1")] + pub mjgcfcfkpke: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4965)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ldoopdjkhkn { + #[prost(string, tag = "8")] + pub plkolhgcdgc: ::prost::alloc::string::String, + #[prost(bool, tag = "9")] + pub mcpkkmhkcpd: bool, + #[prost(uint32, tag = "11")] + pub target_uid: u32, + #[prost(enumeration = "Bojmbiemcjc", tag = "13")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cepdclhamci { + #[prost(uint32, tag = "9")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "10")] + pub ominnhcmhap: u32, + #[prost(bool, tag = "14")] + pub eialjbaengj: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffnnmlbfeih { + #[prost(uint32, tag = "7")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "9")] + pub cenhkjdffda: u32, + #[prost(message, repeated, tag = "11")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffjdcngfnpm { + #[prost(message, optional, tag = "5")] + pub ooophcdhean: ::core::option::Option, + #[prost(message, optional, tag = "6")] + pub iephfeihkcn: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub scene_id: u32, + #[prost(uint32, tag = "12")] + pub pghgefmpgdc: u32, + #[prost(message, repeated, tag = "14")] + pub almbifelkaa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct RegionSimpleInfo { + #[prost(string, tag = "1")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub title: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub r#type: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub dispatch_url: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23489)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ledchlednef { + #[prost(uint32, repeated, tag = "11")] + pub oijdmjnacmb: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "5")] + pub mkgoppblfkc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27306)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihkiboajamj { + #[prost(message, repeated, tag = "13")] + pub info_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Afakiiojani { + #[prost(uint32, tag = "13")] + pub apnlofpnahn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26123)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmaiikonbal { + #[prost(uint32, tag = "1")] + pub config_id: u32, + #[prost(uint32, tag = "8")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fgbaeindlhg { + #[prost(uint64, tag = "5")] + pub guid: u64, + #[prost(uint32, tag = "11")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Coeagopenbm {} +#[derive(proto_gen::CmdID)] +#[cmdid(1429)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgapnckneef { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7155)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkmjkfjnbbi { + #[prost(uint32, repeated, tag = "13")] + pub kkfakeigcic: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9741)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ifafpcgnjlo { + #[prost(enumeration = "Dmbnnbhbpbi", tag = "13")] + pub hkmhenoepkp: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kbnnkpbfiao { + #[prost(uint32, tag = "1")] + pub ghiaogllldi: u32, + #[prost(message, repeated, tag = "2")] + pub item_list: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29411)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oniepibkfhe { + #[prost(map = "uint64, message", tag = "1")] + pub hmemhopnbeb: ::std::collections::HashMap, + #[prost(int32, repeated, tag = "3")] + pub npjnnihenaa: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "4")] + pub ihblfhdemdi: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9918)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bdamieefafe { + #[prost(uint32, tag = "7")] + pub dekhbeooien: u32, + #[prost(bool, tag = "1")] + pub dmedoehomkh: bool, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2748)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agdoiemejin { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "6")] + pub bpbojkljaga: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub cdnmgdanhch: u32, + #[prost(message, repeated, tag = "9")] + pub febkkhceplj: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub ineikfafmeo: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub eahfokifjoj: u32, + #[prost(uint32, repeated, tag = "13")] + pub jhpdohcmkec: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9532)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jmkfcgopjfj { + #[prost(uint32, tag = "2")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "7")] + pub ihaiipfmpld: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Omcgmpijjkl { + #[prost(uint32, tag = "9")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5950)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieaiadbaeng { + #[prost(uint64, tag = "8")] + pub dcompdppdpo: u64, + #[prost(enumeration = "Himmemhogfb", tag = "10")] + pub mfmlakbiaed: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Khlgklmjnal { + #[prost(uint32, tag = "4")] + pub egilpllmlho: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3753)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pcfbfhgidfj { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8955)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jlpblhcndcb { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cepnkdlepbd { + #[prost(uint32, repeated, tag = "1")] + pub ogpngbggbgb: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "2")] + pub dphdagagbii: bool, + #[prost(message, repeated, tag = "4")] + pub kodfdmdfihe: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "9")] + pub alkbdlgfdkk: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "10")] + pub hdjcadkkfci: bool, + #[prost(uint32, repeated, tag = "11")] + pub bflgapenlmo: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28112)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Janeomngdnd { + #[prost(message, optional, tag = "9")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub opmmnijedmi: u32, + #[prost(uint32, tag = "6")] + pub fiapbncbbpb: u32, + #[prost(uint32, tag = "7")] + pub dfpijjfifnm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8300)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bimgmjjokpo {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oddjjglhinj { + #[prost(uint32, repeated, tag = "1")] + pub fniebngfapn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub kgffekdhkga: u32, + #[prost(message, repeated, tag = "5")] + pub kmhadmidcpg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub pjggongegef: u32, + #[prost(uint32, repeated, tag = "12")] + pub kelnhneihif: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kefjleopboa { + #[prost(uint32, tag = "2")] + pub end_time: u32, + #[prost(message, optional, tag = "6")] + pub rot: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub mdonemkpmbk: u32, + #[prost(message, optional, tag = "8")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub scene_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5971)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njifnhodhln { + #[prost(map = "uint32, uint32", tag = "10")] + pub hlmehjfpkkc: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cjlifoflada { + #[prost(bool, tag = "1")] + pub mdgjjofokap: bool, + #[prost(uint32, tag = "3")] + pub nejjlenpcoc: u32, + #[prost(uint32, tag = "6")] + pub ppbamnfheje: u32, + #[prost(uint32, tag = "8")] + pub bboeinaapcm: u32, + #[prost(uint32, tag = "12")] + pub apdngejkfpg: u32, + #[prost(uint32, tag = "13")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npfpjaheidh { + #[prost(uint32, tag = "1")] + pub room_id: u32, + #[prost(uint32, tag = "6")] + pub aoonjjoanje: u32, + #[prost(message, optional, tag = "13")] + pub hdpckfcciaj: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub ffbhoijkmpm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmaeimdkbhn { + #[prost(message, optional, tag = "4")] + pub nbhoddcfikb: ::core::option::Option, + #[prost(uint32, tag = "8")] + pub ecnnjjoiehd: u32, + #[prost(map = "uint32, message", tag = "9")] + pub ohkdkakhgje: ::std::collections::HashMap, + #[prost(uint32, tag = "10")] + pub elcljhgcobo: u32, + #[prost(message, optional, tag = "12")] + pub blebchgpieb: ::core::option::Option, + #[prost(bool, tag = "15")] + pub dhfdmglicjh: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2063)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kniaacffbca { + #[prost(uint32, tag = "12")] + pub mgcmnplnjkl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21976)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjimpfndcbc { + #[prost(message, repeated, tag = "3")] + pub mehkpmjemdp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22499)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Obdbodhkcjl { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(message, repeated, tag = "8")] + pub ommjmilkebp: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub hijhpoccaoc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Henebmliicl { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(string, tag = "2")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub dbmpkigbbhn: u32, + #[prost(uint32, tag = "4")] + pub avatar_id: u32, + #[prost(enumeration = "Ijjojmpijkc", tag = "5")] + pub dbjghngiifg: i32, + #[prost(uint32, tag = "6")] + pub kjbiaapklak: u32, + #[prost(uint32, tag = "7")] + pub obfcjpojmom: u32, + #[prost(string, tag = "8")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "9")] + pub pkicaibdchd: u32, + #[prost(uint32, repeated, tag = "10")] + pub lolibfkmabp: ::prost::alloc::vec::Vec, + #[prost(string, tag = "11")] + pub pbigganlbdh: ::prost::alloc::string::String, + #[prost(message, optional, tag = "12")] + pub blfkojlccoo: ::core::option::Option, + #[prost(string, tag = "13")] + pub mmdpdoococo: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9530)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chhplagpook { + #[prost(uint32, tag = "6")] + pub ooflahmeleo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23924)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eahbhajnkdm { + #[prost(message, optional, tag = "14")] + pub dpebbflaadc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23247)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dfbbgaeppde { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbeoplgpahd { + #[prost(uint32, tag = "3")] + pub jklafeigolc: u32, + #[prost(uint32, tag = "4")] + pub plaipmojmeo: u32, + #[prost(uint32, tag = "5")] + pub gjnfgfipljf: u32, + #[prost(bool, tag = "6")] + pub epebcoblkii: bool, + #[prost(message, optional, tag = "13")] + pub lcnpcoldlcn: ::core::option::Option, + #[prost(bool, tag = "15")] + pub lchffkhpjio: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nhiafabfend { + #[prost(uint32, tag = "13")] + pub uid: u32, + #[prost(uint32, tag = "15")] + pub cojpmjkgidj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1839)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kmnjhipkfki { + #[prost(uint32, repeated, tag = "1")] + pub micbneehgam: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub clpdklnbcme: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "9")] + pub olikaoabpjm: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ffclajleaeh { + #[prost(bool, tag = "4")] + pub lhhbinhjaoe: bool, + #[prost(uint32, tag = "12")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eoogcodklon { + #[prost(message, optional, tag = "6")] + pub mineooknpig: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oepkkecpjhn { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(float, tag = "3")] + pub pakpalckbaf: f32, + #[prost(bool, tag = "4")] + pub ecihdijcled: bool, + #[prost(message, optional, tag = "5")] + pub mjkalbbjipi: ::core::option::Option, + #[prost(uint32, tag = "10")] + pub dmkfeccmcop: u32, + #[prost(uint32, repeated, tag = "11")] + pub gmmdkehbkjn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "14")] + pub scene_id: u32, + #[prost(bool, tag = "15")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22277)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gidmlgfdljp {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jfadjcgaoce { + #[prost(uint32, tag = "1")] + pub mabfbdjlpmi: u32, + #[prost(uint32, tag = "2")] + pub inpbhpjellf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22912)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkonoiamkck { + #[prost(uint32, tag = "4")] + pub gnjcidhobia: u32, + #[prost(uint32, tag = "7")] + pub pdlkmpbkane: u32, + #[prost(uint32, tag = "13")] + pub ihlceedfind: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gdljljihmfo { + #[prost(message, repeated, tag = "4")] + pub eloilboekpk: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20061)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hlpaebghaeh { + #[prost(message, optional, tag = "11")] + pub behlkbcibpe: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub miagfdldmph: u32, + #[prost(enumeration = "Igohjibcdfa", tag = "2")] + pub lkidbhiooog: i32, + #[prost(uint32, tag = "10")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20466)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odcgjenpjnc { + #[prost(message, optional, tag = "12")] + pub pos: ::core::option::Option, + #[prost(uint64, tag = "1")] + pub guid: u64, + #[prost(uint32, tag = "5")] + pub count: u32, + #[prost(enumeration = "StoreType", tag = "4")] + pub store_type: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bagmciddfgk { + #[prost(message, optional, tag = "13")] + pub pdjmiecelhm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29122)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iecapigjfeo { + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, tag = "6")] + pub jodpdbpgoab: u32, + #[prost(uint32, repeated, tag = "13")] + pub jdcapblplna: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lheekndlblh { + #[prost(uint32, tag = "2")] + pub alelbofdnoe: u32, + #[prost(bool, tag = "7")] + pub neeneiabndb: bool, + #[prost(uint32, tag = "9")] + pub lekfejhkppe: u32, + #[prost(bool, tag = "10")] + pub jhfmeficaal: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(955)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hamldkooefc { + #[prost(map = "uint32, uint32", tag = "12")] + pub pgcmpkmhllo: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7273)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EnterSceneReadyRsp { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub enter_scene_token: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iekcjkjined { + #[prost(uint32, tag = "2")] + pub hnfmbnfgmpp: u32, + #[prost(uint32, tag = "9")] + pub param: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fdlekdoggag { + #[prost(uint32, tag = "1")] + pub pmaeonpomje: u32, + #[prost(uint32, tag = "5")] + pub hmfaceejjdm: u32, + #[prost(bool, tag = "6")] + pub lhnfiiejbem: bool, + #[prost(bool, tag = "7")] + pub efalapcoopp: bool, + #[prost(uint32, tag = "9")] + pub ppbaamiopgf: u32, + #[prost(uint32, repeated, tag = "10")] + pub pdcdkbbmmib: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub fceackkghcl: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eaejoocjffl { + #[prost(string, tag = "2")] + pub lgnfafmphkd: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SceneAvatarInfo { + #[prost(uint32, tag = "1")] + pub uid: u32, + #[prost(uint32, tag = "2")] + pub avatar_id: u32, + #[prost(uint64, tag = "3")] + pub guid: u64, + #[prost(uint32, tag = "4")] + pub peer_id: u32, + #[prost(uint32, repeated, tag = "5")] + pub equip_id_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "6")] + pub skill_depot_id: u32, + #[prost(uint32, repeated, tag = "7")] + pub talent_id_list: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "8")] + pub weapon: ::core::option::Option, + #[prost(message, repeated, tag = "9")] + pub reliquary_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub core_proud_skill_level: u32, + #[prost(uint32, repeated, tag = "12")] + pub inherent_proud_skill_list: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "13")] + pub skill_level_map: ::std::collections::HashMap, + #[prost(map = "uint32, uint32", tag = "14")] + pub proud_skill_extra_level_map: ::std::collections::HashMap, + #[prost(message, repeated, tag = "15")] + pub server_buff_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "16")] + pub team_resonance_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "17")] + pub wearing_flycloak_id: u32, + #[prost(uint32, tag = "18")] + pub born_time: u32, + #[prost(uint32, tag = "19")] + pub costume_id: u32, + #[prost(message, optional, tag = "20")] + pub cur_vehicle_info: ::core::option::Option, + #[prost(message, optional, tag = "21")] + pub excel_info: ::core::option::Option, + #[prost(uint32, tag = "22")] + pub anim_hash: u32, + #[prost(uint32, tag = "23")] + pub kcinbomoigl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3438)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jahagjciihm { + #[prost(uint32, tag = "8")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26361)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nkpacmdaidm { + #[prost(message, repeated, tag = "1")] + pub mkmhpomeahp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub gldnnfocdem: u32, + #[prost(int32, tag = "5")] + pub retcode: i32, + #[prost(message, repeated, tag = "8")] + pub gbepkglfbfd: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "11")] + pub fflgcbbliao: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21366)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hamlmaocpoc { + #[prost(uint32, repeated, tag = "10")] + pub adlemoamhop: ::prost::alloc::vec::Vec, + #[prost(enumeration = "Oeaoccjeope", tag = "14")] + pub ddiaamkbfda: i32, + #[prost(uint32, tag = "5")] + pub ohkidhnabib: u32, + #[prost(uint32, tag = "7")] + pub cenhkjdffda: u32, + #[prost(uint32, tag = "3")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4813)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fehollhioih { + #[prost(uint32, tag = "1")] + pub igmnbbkeneh: u32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "6")] + pub dekhbeooien: u32, + #[prost(bool, tag = "10")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "11")] + pub kill_num: u32, + #[prost(uint32, tag = "12")] + pub ejnglcjnapn: u32, + #[prost(bool, tag = "13")] + pub ebhfibehjge: bool, + #[prost(bool, tag = "14")] + pub ankcbommojb: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dkaofddamlj { + #[prost(uint32, repeated, tag = "3")] + pub hblmbgkdnkk: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "14")] + pub jgnphjgecak: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "15")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3327)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mcmmkcbkfjd { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(message, optional, tag = "7")] + pub cjdionfgocb: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27803)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahaoepjlfbo { + #[prost(message, optional, tag = "7")] + pub bepfmdkmfic: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4071)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cgnhdghchgl { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29045)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohkjbciokbm { + #[prost(uint32, tag = "11")] + pub fiknlhojfkl: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21422)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mahgopmdkpb { + #[prost(enumeration = "Mclklllbaif", tag = "4")] + pub reason: i32, + #[prost(string, tag = "6")] + pub plkolhgcdgc: ::prost::alloc::string::String, + #[prost(bool, tag = "10")] + pub mcpkkmhkcpd: bool, + #[prost(uint32, tag = "15")] + pub target_uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adffbmgnlle { + #[prost(bool, tag = "1")] + pub ocnahhgpepb: bool, + #[prost(bool, tag = "5")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "7")] + pub peajinifghm: u32, + #[prost(uint32, repeated, tag = "10")] + pub idibjdpoemd: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub jnfpmeijenp: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23624)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ookeppoechl { + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "7")] + pub lejlmjjdedc: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5228)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alhclnfbloo { + #[prost(string, tag = "5")] + pub kcbchinicpj: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Furniture { + #[prost(uint32, tag = "1")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1573)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkhemffaggb {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjibijbldjd { + #[prost(uint64, tag = "13")] + pub cgammlododp: u64, + #[prost(bool, tag = "15")] + pub kbnhkamgpji: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23842)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mppbflmhhae {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lblofalmnan { + #[prost(uint32, tag = "1")] + pub eeahocadkoo: u32, + #[prost(message, optional, tag = "4")] + pub oalbmpmeagi: ::core::option::Option, + #[prost(message, repeated, tag = "7")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub jpdcjanecan: u32, + #[prost(uint32, tag = "9")] + pub mhghinogbgd: u32, + #[prost(uint32, tag = "10")] + pub mcljdhgbbmn: u32, + #[prost(bool, tag = "11")] + pub kocnpkmbage: bool, + #[prost(bool, tag = "12")] + pub cpchdkgcfma: bool, + #[prost(uint32, tag = "13")] + pub config_id: u32, + #[prost(string, repeated, tag = "14")] + pub koddemmpdfi: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(enumeration = "Nhlcoopkjbl", tag = "15")] + pub lfddfljloep: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29973)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjpoljpfgcm { + #[prost(message, repeated, tag = "4")] + pub hhicilfeeld: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4118)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bplmmjakpeb { + #[prost(uint32, repeated, tag = "9")] + pub ebeecdalmkm: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "11")] + pub uid: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8559)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alcligclloi { + #[prost(uint32, repeated, tag = "1")] + pub ljoocndbcfl: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Facblonodpo { + #[prost(uint32, repeated, tag = "4")] + pub ipcgaeidppi: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "5")] + pub kdpehdddmco: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "10")] + pub nnefojblmon: ::std::collections::HashMap, + #[prost(uint32, repeated, tag = "11")] + pub dhflilokfip: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Faoiclggdpc { + #[prost(uint32, tag = "3")] + pub player_uid: u32, + #[prost(message, optional, tag = "5")] + pub avatar_info: ::core::option::Option, + #[prost(oneof = "faoiclggdpc::Detail", tags = "1261")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `FAOICLGGDPC`. +pub mod faoiclggdpc { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(message, tag = "1261")] + UgcAvatarInfo(super::Omofgonabfb), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jocffcplill { + #[prost(message, repeated, tag = "1")] + pub gfbkakoonhm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub nlhnfgaobbe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(987)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gilbjofjhac { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "5")] + pub cmdnkflfhia: u32, + #[prost(uint32, tag = "11")] + pub jchhllebmja: u32, + #[prost(bool, tag = "14")] + pub ebhfibehjge: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27482)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fopiaaeijao { + #[prost(uint32, tag = "1")] + pub gghkdjlgfpb: u32, + #[prost(uint32, tag = "13")] + pub jefildjebaj: u32, + #[prost(uint32, tag = "12")] + pub pcaobbjlffm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1439)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Igibknpmegk { + #[prost(uint32, tag = "2")] + pub scene_id: u32, + #[prost(uint64, tag = "3")] + pub scene_time: u64, + #[prost(bool, tag = "10")] + pub napmcbkmnaa: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9985)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Phjnieaopao { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26632)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hanihihjehd { + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6349)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lkkmkbcmgbc { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(362)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mblmmbkdinh { + #[prost(uint32, tag = "7")] + pub bkclmicechc: u32, + #[prost(uint32, tag = "11")] + pub jabcjffoahl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29917)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jkegfhdbjpl { + #[prost(uint32, tag = "3")] + pub cjfgadhmeol: u32, + #[prost(bool, tag = "7")] + pub bhblchhkpmi: bool, + #[prost(uint64, tag = "6")] + pub guid: u64, + #[prost(uint64, tag = "10")] + pub bochklkfmik: u64, + #[prost(uint32, tag = "15")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ikhggpnjgnb { + #[prost(message, optional, tag = "1")] + pub jiaknpccjdk: ::core::option::Option, + #[prost(message, optional, tag = "12")] + pub kbbbmdnkpjh: ::core::option::Option, + #[prost(message, optional, tag = "14")] + pub djpopgcmnbc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5421)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dghcjecmmnd { + #[prost(uint32, tag = "7")] + pub jinjlbemjnc: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22345)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pbjdajjgmnh { + #[prost(int32, tag = "10")] + pub pbhchamjkhb: i32, + #[prost(message, optional, tag = "11")] + pub position: ::core::option::Option, + #[prost(uint32, tag = "13")] + pub entity_id: u32, + #[prost(uint64, tag = "14")] + pub kfnbcklkeib: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(646)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekaeaeabphd { + #[prost(uint32, tag = "8")] + pub gbieplaiohc: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ogkfdmjnofa { + #[prost(message, repeated, tag = "8")] + pub acchmpajoga: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5414)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Glaiablnidk { + #[prost(int32, tag = "3")] + pub retcode: i32, + #[prost(uint64, tag = "7")] + pub dghpdllbeld: u64, + #[prost(uint32, tag = "8")] + pub skill_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6613)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fpbdkepgobd { + #[prost(message, optional, tag = "6")] + pub ldomkjcnbhd: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25457)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Haciafbgjkg { + #[prost(message, repeated, tag = "7")] + pub pmpobfdjgmg: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "10")] + pub nblmenghnbd: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "15")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "4")] + pub olbffpeahhl: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27132)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kiajjfadnmn { + #[prost(uint64, tag = "2")] + pub dcompdppdpo: u64, + #[prost(bool, tag = "6")] + pub akbcidfnphb: bool, + #[prost(uint32, tag = "15")] + pub jlfheeipddp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6741)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nfhpnjckdla { + #[prost(uint32, tag = "12")] + pub ghiaogllldi: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8749)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Adophnnogfa { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "9")] + pub bkclmicechc: u32, + #[prost(uint32, tag = "14")] + pub jabcjffoahl: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8674)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kcahmlalhhn { + #[prost(message, repeated, tag = "15")] + pub cigkldhkmfa: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8272)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lneddiikble { + #[prost(uint32, tag = "1")] + pub jgihcibojpn: u32, + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "3")] + pub nfjohaldgdn: u32, + #[prost(uint64, tag = "6")] + pub aclgnllhajb: u64, + #[prost(uint32, repeated, tag = "9")] + pub appdnhdigom: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub paahicediho: u32, + #[prost(uint32, repeated, tag = "15")] + pub pahjmimgigl: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20775)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egnnacipebf { + #[prost(message, optional, tag = "5")] + pub lognndhodkh: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1915)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Onnigboglme { + #[prost(uint32, tag = "1")] + pub ckoccfdgcol: u32, + #[prost(uint32, tag = "5")] + pub jofbeiaclof: u32, + #[prost(message, repeated, tag = "6")] + pub ahlpjgpmffd: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "13")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6450)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Klfmmcdiadf { + #[prost(uint32, tag = "4")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28615)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Imofkpmaome { + #[prost(uint32, tag = "4")] + pub config_id: u32, + #[prost(bytes = "vec", tag = "8")] + pub oincfcjknha: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26528)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clpbfaibphg { + #[prost(int32, tag = "1")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3818)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Galibocacob { + #[prost(bool, tag = "12")] + pub fdhdpddmhja: bool, + #[prost(enumeration = "Fjklgegnmpb", tag = "10")] + pub fieapcpkiai: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24821)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jpmceomkhcf { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "11")] + pub napgdlclmef: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23892)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npmcndikfmm { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9364)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fhkjjibpebh { + #[prost(uint32, tag = "12")] + pub echfghanmpb: u32, + #[prost(uint32, tag = "3")] + pub gmemgdllpnj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lohfecglogd { + #[prost(enumeration = "Cnpeffimnbf", tag = "12")] + pub reason: i32, + #[prost(uint32, tag = "14")] + pub lappelekahp: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6340)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lokcemobceo { + #[prost(message, repeated, tag = "15")] + pub ohepmbkmnlm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25628)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lpcejcdiodc { + #[prost(uint32, tag = "14")] + pub aboagokkiea: u32, + #[prost(uint32, tag = "4")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "5")] + pub pcklffnfnge: u32, + #[prost(uint32, tag = "11")] + pub jlfheeipddp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nclampegpkj { + #[prost(uint32, tag = "6")] + pub fjhhikoihka: u32, + #[prost(bool, tag = "8")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "9")] + pub apafipofloj: u32, + #[prost(uint32, tag = "11")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "14")] + pub dekhbeooien: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(958)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mfnmknanfoi { + #[prost(enumeration = "Fkiehceffhe", tag = "2")] + pub reason: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22741)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lgehljelimj { + #[prost(enumeration = "Gbagjcpbjhm", tag = "1")] + pub kfmglfjdodo: i32, + #[prost(uint32, tag = "10")] + pub room_id: u32, + #[prost(enumeration = "Ihokgokpllo", tag = "3")] + pub jjpijkbjenn: i32, + #[prost(uint64, tag = "5")] + pub gedmdocolfj: u64, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flphjjjlfcm { + #[prost(message, repeated, tag = "5")] + pub hajjdpbjnbe: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "9")] + pub cljmamebjpj: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5323)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hgcnjfmeiem { + #[prost(uint32, tag = "6")] + pub gkkgomdfkml: u32, + #[prost(uint32, tag = "8")] + pub entity_id: u32, + #[prost(uint32, tag = "15")] + pub lbclghbmdaf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3765)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ddjadneollg {} +#[derive(proto_gen::CmdID)] +#[cmdid(466)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckadpnmeaga {} +#[derive(proto_gen::CmdID)] +#[cmdid(29712)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjfjlndagcn { + #[prost(uint32, repeated, tag = "5")] + pub ogbmicbchgh: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub obaonakpggj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fncfpiodgmi { + #[prost(uint32, tag = "1")] + pub imohcnccofg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2557)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bkdiopkhjja { + #[prost(int32, tag = "2")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(189)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ngidobijagj { + #[prost(uint32, repeated, tag = "6")] + pub hjhpfacphjf: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub jefildjebaj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1251)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Giapmihdhpg { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(uint32, tag = "7")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26463)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Admffaioccc { + #[prost(uint32, tag = "8")] + pub pjjaoilbfbn: u32, + #[prost(int32, tag = "9")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2966)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hainhepdikl { + #[prost(message, repeated, tag = "2")] + pub nbhomdnidmi: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub avatar_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub bgbbkncdjlf: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "11")] + pub kkfakeigcic: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "12")] + pub pikpodegkck: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "13")] + pub gkpjedkhcif: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "14")] + pub ceihipahgnh: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub mempkcgnnmf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4935)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lbaamfbebkl { + #[prost(uint32, tag = "2")] + pub khhibkpbkpn: u32, + #[prost(message, optional, tag = "14")] + pub odepmbdnilm: ::core::option::Option, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21458)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iepgijldllk { + #[prost(uint32, tag = "7")] + pub nnebhhfhdcc: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28315)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ljnegpbgcfe { + #[prost(int32, tag = "11")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4192)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ladpaaglblk { + #[prost(uint32, tag = "6")] + pub end_time: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1273)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ieoddbohbeg { + #[prost(uint32, tag = "3")] + pub bknplfikkfg: u32, + #[prost(uint32, tag = "5")] + pub lgooidciaag: u32, + #[prost(uint32, tag = "7")] + pub player_uid: u32, + #[prost(uint32, tag = "15")] + pub group_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kooplhiemeo { + #[prost(uint32, tag = "10")] + pub hnhgkplcknj: u32, + #[prost(uint32, tag = "15")] + pub djkhfndphjg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6178)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aofjlihmjgd { + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(string, tag = "12")] + pub version: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bjciojgglnl { + #[prost(uint32, tag = "3")] + pub cccgnognokn: u32, + #[prost(float, tag = "5")] + pub enbleodhoae: f32, + #[prost(uint64, tag = "7")] + pub avatar_guid: u64, + #[prost(uint32, tag = "9")] + pub ngjdfgchcak: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fbjohnljibg { + #[prost(uint32, tag = "1")] + pub eljengfokco: u32, + #[prost(uint32, tag = "2")] + pub nfbhfjbacig: u32, + #[prost(message, optional, tag = "5")] + pub fbafhgfhhlo: ::core::option::Option, + #[prost(uint32, tag = "7")] + pub ndonhjjkodb: u32, + #[prost(uint32, tag = "8")] + pub pfplkcmidic: u32, + #[prost(uint32, tag = "9")] + pub fnmnpnnpdda: u32, + #[prost(message, optional, tag = "10")] + pub mfddjkcpfno: ::core::option::Option, + #[prost(bool, tag = "11")] + pub hjllccpdlek: bool, + #[prost(message, repeated, tag = "12")] + pub fmmclenmaem: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub nbfghkcomog: u32, + #[prost(uint32, tag = "14")] + pub bhbgafpfglh: u32, + #[prost(uint32, tag = "15")] + pub ljainmigakg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Abmoeknpcla { + #[prost(message, optional, tag = "1")] + pub rot: ::core::option::Option, + #[prost(uint32, repeated, tag = "3")] + pub kjaepliiaih: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "10")] + pub pos: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8379)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lobdecipblm { + #[prost(uint32, tag = "4")] + pub hlclacdmepd: u32, + #[prost(int32, tag = "13")] + pub retcode: i32, + #[prost(bool, tag = "14")] + pub emponigbaka: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Npcopfalklg { + #[prost(message, repeated, tag = "4")] + pub cpcahoddneg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "13")] + pub okmmdenegop: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(943)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Noflbdacfdm { + #[prost(uint32, tag = "2")] + pub bfbkiddckhf: u32, + #[prost(message, optional, tag = "8")] + pub aoakhgfkfpl: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21084)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Leindpoiedj { + #[prost(uint32, tag = "6")] + pub jefildjebaj: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(uint32, tag = "8")] + pub level: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25306)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Apgdpdjfbln { + #[prost(int32, tag = "2")] + pub retcode: i32, + #[prost(uint32, tag = "4")] + pub bcglgcjjifh: u32, + #[prost(uint32, tag = "13")] + pub onabdgfcpih: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23683)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cnjnjalddjj { + #[prost(uint32, tag = "1")] + pub entity_id: u32, + #[prost(message, repeated, tag = "8")] + pub bdobhhhjkma: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aefkcejopij { + #[prost(uint32, tag = "2")] + pub fiknlhojfkl: u32, + #[prost(uint32, tag = "4")] + pub guid: u32, + #[prost(uint32, tag = "8")] + pub hepabnmgeda: u32, + #[prost(uint32, tag = "10")] + pub pghipcmlekh: u32, + #[prost(uint32, tag = "12")] + pub jjcnaalglfb: u32, + #[prost(uint32, tag = "14")] + pub avatar_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7704)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eagfabfdiak {} +#[derive(proto_gen::CmdID)] +#[cmdid(7573)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eoooclapied {} +#[derive(proto_gen::CmdID)] +#[cmdid(28466)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Egoncmhkfog { + #[prost(string, tag = "9")] + pub gbkkaledmmn: ::prost::alloc::string::String, + #[prost(bool, tag = "13")] + pub dmedoehomkh: bool, + #[prost(string, tag = "15")] + pub nlmljklelbk: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22710)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fadljemabnc { + #[prost(bool, tag = "13")] + pub olejpbpbnhc: bool, + #[prost(uint32, tag = "4")] + pub ehjhfencklj: u32, + #[prost(uint32, tag = "6")] + pub oanhicedhnh: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdgijgaopfj { + #[prost(uint32, tag = "1")] + pub ankfepdbfam: u32, + #[prost(message, repeated, tag = "8")] + pub lllpbmbhomp: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6631)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Opeebhffdaf { + #[prost(uint32, tag = "9")] + pub scene_id: u32, + #[prost(uint32, tag = "10")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Agmffjahjpe { + #[prost(message, optional, tag = "2")] + pub mhfdgagiepa: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub count: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22737)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pmgckfkddcd { + #[prost(uint32, repeated, tag = "5")] + pub lidpfaapfmm: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "10")] + pub retcode: i32, + #[prost(uint32, tag = "11")] + pub gghkdjlgfpb: u32, + #[prost(message, repeated, tag = "14")] + pub gagahofmjlm: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28915)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Emdidmcgank { + #[prost(message, repeated, tag = "13")] + pub fckhpeancna: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7277)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Meegbndcgol { + #[prost(message, repeated, tag = "12")] + pub pcgmofknhml: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "9")] + pub ejbnjhaegac: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub njekbpkeloh: u32, + #[prost(uint32, tag = "11")] + pub eaflfgdfphc: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hjhhdcpljpe { + #[prost(oneof = "hjhhdcpljpe::Detail", tags = "7, 10")] + pub detail: ::core::option::Option, +} +/// Nested message and enum types in `HJHHDCPLJPE`. +pub mod hjhhdcpljpe { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Detail { + #[prost(uint64, tag = "7")] + FormalAvatarGuid(u64), + #[prost(uint32, tag = "10")] + MistTrialAvatarId(u32), + } +} +#[derive(proto_gen::CmdID)] +#[cmdid(8596)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jaelmocpeha { + #[prost(message, optional, tag = "6")] + pub jcimgdhmmln: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbnegoefbhn { + #[prost(uint32, tag = "2")] + pub pfoahcojpjm: u32, + #[prost(uint32, tag = "4")] + pub agidomnebcj: u32, + #[prost(uint32, tag = "5")] + pub hnnmhlbcgmn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21035)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fmhkafongoa { + #[prost(bool, tag = "1")] + pub oiomimaljfd: bool, + #[prost(bool, tag = "4")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "7")] + pub cjlmaokmpei: u32, + #[prost(uint32, tag = "5")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "14")] + pub fhnnfpipgei: u32, + #[prost(uint32, tag = "12")] + pub pjjaoilbfbn: u32, + #[prost(uint32, tag = "15")] + pub pjegodebmjc: u32, + #[prost(uint32, tag = "6")] + pub megadhdnanj: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2214)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Akikieikida {} +#[derive(proto_gen::CmdID)] +#[cmdid(3219)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckeghfmebla { + #[prost(uint32, tag = "8")] + pub jgihcibojpn: u32, + #[prost(uint32, tag = "12")] + pub mblmihejnif: u32, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gnmngoodhea { + #[prost(uint64, tag = "6")] + pub kmoepflddci: u64, + #[prost(float, tag = "9")] + pub oggpigccjjo: f32, + #[prost(message, repeated, tag = "11")] + pub elgpfeaigbc: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "12")] + pub micjdmncddi: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "13")] + pub ffkcoojmbld: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7912)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Coefhpapnpp { + #[prost(message, repeated, tag = "2")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "4")] + pub retcode: i32, + #[prost(uint32, repeated, tag = "9")] + pub bihiklaiolg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "10")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26065)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lddbhjokhhp { + #[prost(uint32, tag = "8")] + pub khhibkpbkpn: u32, + #[prost(uint32, tag = "12")] + pub gaplfmmgbfa: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gikllmkgpbe { + #[prost(uint32, tag = "1")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "5")] + pub dmkfeccmcop: u32, + #[prost(bool, tag = "8")] + pub eialjbaengj: bool, + #[prost(bool, tag = "14")] + pub ecihdijcled: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghifkfdgchb { + #[prost(message, repeated, tag = "7")] + pub item_list: ::prost::alloc::vec::Vec, + #[prost(string, tag = "12")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(message, optional, tag = "13")] + pub blfkojlccoo: ::core::option::Option, + #[prost(uint32, tag = "14")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22022)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njcnajiholp { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27022)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pdhikjmihhg { + #[prost(string, repeated, tag = "13")] + pub mjifbdojhmk: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eieebjbemli { + #[prost(uint32, tag = "1")] + pub kmoeppfhpgj: u32, + #[prost(uint32, tag = "4")] + pub ajmeohdgngn: u32, + #[prost(message, repeated, tag = "9")] + pub paejaajcgbe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29423)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pljfocdakcc { + #[prost(uint32, tag = "11")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mgldgahdhlo { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, + #[prost(enumeration = "Paahdfjmicd", tag = "6")] + pub reason: i32, + #[prost(uint32, tag = "10")] + pub ijffkcgiaoj: u32, + #[prost(bool, tag = "11")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "15")] + pub odngiimcegg: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6281)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fplgofmknjn { + #[prost(bool, tag = "2")] + pub nkgbaemaplp: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lieaimebijk { + #[prost(uint32, tag = "7")] + pub count: u32, + #[prost(uint32, tag = "10")] + pub iknfnnfkagf: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fbaoaobcfeo { + #[prost(message, repeated, tag = "5")] + pub iccpmaicfao: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8150)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Plboadjpcdi { + #[prost(uint32, tag = "3")] + pub pfdgofljkfl: u32, + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(21699)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iiodfgeejck { + #[prost(bool, tag = "3")] + pub bliakncjplh: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ihdioemfbco { + #[prost(uint32, repeated, tag = "1")] + pub knbifccible: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "4")] + pub dmnldppgokg: u32, + #[prost(uint32, tag = "5")] + pub mempkcgnnmf: u32, + #[prost(uint32, tag = "8")] + pub nnaalgjoaio: u32, + #[prost(bool, tag = "13")] + pub dggckmikbmo: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1312)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bgdagkkdedi {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kjjaaakjple { + #[prost(enumeration = "Onfeibhljbp", tag = "1")] + pub r#type: i32, + #[prost(uint32, tag = "2")] + pub okicoglejec: u32, + #[prost(uint32, tag = "13")] + pub fchfakepinp: u32, + #[prost(message, optional, tag = "15")] + pub pos: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23036)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Indcafejbag { + #[prost(enumeration = "Himmemhogfb", tag = "6")] + pub mfmlakbiaed: i32, + #[prost(uint64, tag = "12")] + pub dcompdppdpo: u64, + #[prost(int32, tag = "14")] + pub retcode: i32, + #[prost(oneof = "indcafejbag::Koghknfabpa", tags = "7")] + pub koghknfabpa: ::core::option::Option, +} +/// Nested message and enum types in `INDCAFEJBAG`. +pub mod indcafejbag { + #[derive(proto_gen::CmdID)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Koghknfabpa { + #[prost(message, tag = "7")] + MusicRecord(super::Mhfikahpbmm), + } +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hljfkijjdee { + #[prost(int32, tag = "1")] + pub eclihdlnnag: i32, + #[prost(uint32, tag = "2")] + pub config_id: u32, + #[prost(string, tag = "3")] + pub ipdjnbepgda: ::prost::alloc::string::String, + #[prost(int32, repeated, tag = "4")] + pub cdgfhbkoogn: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bajdjladhab { + #[prost(uint32, tag = "5")] + pub ifgpnankeaj: u32, + #[prost(uint32, tag = "8")] + pub hahgmmmnjam: u32, + #[prost(uint32, tag = "10")] + pub cfpmiglcmal: u32, + #[prost(uint32, tag = "12")] + pub oheocbbdeoh: u32, + #[prost(uint32, tag = "13")] + pub lgooidciaag: u32, + #[prost(enumeration = "Lnemncjdlmm", tag = "14")] + pub dbfleooelcm: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1478)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Djjkbegjfhp { + #[prost(uint32, tag = "11")] + pub eloloopcjmj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aineccgepbh { + #[prost(message, repeated, tag = "3")] + pub dnnkmieelaj: ::prost::alloc::vec::Vec, + #[prost(map = "uint32, uint32", tag = "12")] + pub aocepckhjfa: ::std::collections::HashMap, + #[prost(message, repeated, tag = "13")] + pub hconjhabope: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "15")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28942)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mihcimmmgjd {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amgohioicdj { + #[prost(uint32, tag = "3")] + pub dekhbeooien: u32, + #[prost(uint32, tag = "6")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "9")] + pub dggckmikbmo: bool, + #[prost(uint32, tag = "15")] + pub hcemimjkcpi: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efanagnegan { + #[prost(uint32, tag = "1")] + pub lbclghbmdaf: u32, + #[prost(enumeration = "Jailcnefodi", tag = "6")] + pub avatar_type: i32, + #[prost(uint32, tag = "7")] + pub avatar_id: u32, + #[prost(uint32, tag = "11")] + pub costume_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27236)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Chapkbggofi { + #[prost(message, optional, tag = "15")] + pub aebglfmjfhm: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3180)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mieifnoaepd { + #[prost(uint32, repeated, tag = "13")] + pub eilndhgoldj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23666)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Flpknlmggmk { + #[prost(uint32, repeated, tag = "5")] + pub himcbbodhcj: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mjfedepgjdn { + #[prost(message, repeated, tag = "1")] + pub eojfococbcj: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub phpfppidjkj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Alcojmpiikp { + #[prost(message, repeated, tag = "8")] + pub mcdijkphlno: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(26442)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dofdillnpfg { + #[prost(bool, tag = "2")] + pub iofddpfigjk: bool, + #[prost(fixed32, tag = "7")] + pub pdlmkflekdl: u32, + #[prost(uint32, tag = "15")] + pub liaplcmdong: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1456)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnmfgkapfjf { + #[prost(int32, tag = "4")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3481)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nbjehjhecgk { + #[prost(uint32, tag = "5")] + pub khhibkpbkpn: u32, + #[prost(int32, tag = "7")] + pub retcode: i32, + #[prost(message, optional, tag = "14")] + pub kohefanelim: ::core::option::Option, + #[prost(uint32, tag = "15")] + pub dpahhjhngbk: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ocdnpcalikf { + #[prost(uint32, tag = "3")] + pub pfegabjgamf: u32, + #[prost(uint32, tag = "4")] + pub pjjaoilbfbn: u32, + #[prost(bool, tag = "7")] + pub ecihdijcled: bool, + #[prost(bool, tag = "10")] + pub eialjbaengj: bool, + #[prost(uint32, tag = "11")] + pub dmkfeccmcop: u32, + #[prost(uint32, tag = "15")] + pub djblekfbkmd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(3310)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Oalihjjacan { + #[prost(uint32, tag = "9")] + pub bobnlkdjoka: u32, + #[prost(uint32, tag = "11")] + pub hnfbbakfomm: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, + #[prost(uint32, tag = "14")] + pub gbcebgkbjdm: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7461)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eolbiignahh { + #[prost(bool, tag = "1")] + pub bgaoacgaldg: bool, + #[prost(uint32, tag = "7")] + pub uid: u32, + #[prost(uint32, tag = "9")] + pub cenhkjdffda: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22523)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cfligddcdim { + #[prost(message, optional, tag = "8")] + pub nicnjfjmmbc: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22884)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Odimeaokoka { + #[prost(uint32, tag = "1")] + pub njekbpkeloh: u32, + #[prost(int32, tag = "10")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kdhmgbbmgel { + #[prost(message, repeated, tag = "7")] + pub agdllfjigpn: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub oboopjlpdni: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(23755)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Acedglgflnd { + #[prost(uint32, tag = "7")] + pub kfmglfjdodo: u32, + #[prost(uint32, tag = "8")] + pub entity_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25743)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mppnhkohigb { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bpkpoiknjki { + #[prost(message, optional, tag = "1")] + pub bdmjgpialbk: ::core::option::Option, + #[prost(uint64, repeated, tag = "2")] + pub pmgbhfmcmji: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "3")] + pub fjhhikoihka: u32, + #[prost(enumeration = "Diedgoljcok", tag = "4")] + pub knfgikendil: i32, + #[prost(uint64, repeated, tag = "5")] + pub avatar_guid_list: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "6")] + pub ekjkeoobbli: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "8")] + pub lbfmkdpdebp: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "9")] + pub iknbinfmiid: bool, + #[prost(bool, tag = "11")] + pub nlkgbgpnfli: bool, + #[prost(uint32, tag = "12")] + pub lekfejhkppe: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(8231)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfpoalldfam { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(149)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hoclpmgeiem { + #[prost(message, repeated, tag = "11")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "10")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2969)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mmbeppelahp { + #[prost(int32, tag = "6")] + pub retcode: i32, + #[prost(message, optional, tag = "7")] + pub oomnoofgino: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Eegdlihdcjc { + #[prost(uint32, tag = "1")] + pub gpaeljhnaek: u32, + #[prost(bool, tag = "5")] + pub ecihdijcled: bool, + #[prost(bool, tag = "6")] + pub jhfmeficaal: bool, + #[prost(uint32, tag = "14")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9960)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Aabapkchofd { + #[prost(uint32, tag = "3")] + pub group_id: u32, + #[prost(uint32, tag = "10")] + pub mbkadehiehi: u32, + #[prost(uint32, tag = "14")] + pub gejdjbggnag: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(9842)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahicckclaci { + #[prost(bool, tag = "5")] + pub innefhgkaim: bool, + #[prost(bool, tag = "6")] + pub ajlcedmppie: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6341)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ebijfpbajja { + #[prost(uint32, tag = "9")] + pub khhibkpbkpn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(7138)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cobahkgjcgi { + #[prost(int32, tag = "13")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ahnhpbhfapn { + #[prost(map = "uint32, message", tag = "10")] + pub nopijepdiaj: ::std::collections::HashMap, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27579)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ckjaondbnih { + #[prost(uint32, tag = "12")] + pub key_id: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iaahfokmngi { + #[prost(uint32, tag = "1")] + pub pjgfapekfbc: u32, + #[prost(message, optional, tag = "2")] + pub pgihpnnemdb: ::core::option::Option, + #[prost(uint32, tag = "3")] + pub hhjjbfaddlk: u32, + #[prost(message, optional, tag = "4")] + pub dfcfkjbccah: ::core::option::Option, + #[prost(message, repeated, tag = "5")] + pub imcjlhponpk: ::prost::alloc::vec::Vec, + #[prost(bool, tag = "6")] + pub bmaedeokohl: bool, + #[prost(message, repeated, tag = "7")] + pub kgbnbgaenpg: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "8")] + pub mmfhiifgkbb: u32, + #[prost(bool, tag = "9")] + pub hdkejfnoccc: bool, + #[prost(message, optional, tag = "10")] + pub fjnfhpcbcif: ::core::option::Option, + #[prost(uint32, tag = "12")] + pub scene_id: u32, + #[prost(message, optional, tag = "13")] + pub born_pos: ::core::option::Option, + #[prost(message, repeated, tag = "14")] + pub jjemlcnikmd: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "15")] + pub bbgjmoomdio: ::core::option::Option, + #[prost(message, optional, tag = "1543")] + pub ejapjlenogl: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dnfmmbkopga { + #[prost(message, optional, tag = "1")] + pub igchkgflalg: ::core::option::Option, + #[prost(uint32, tag = "2")] + pub cenhkjdffda: u32, + #[prost(uint32, tag = "4")] + pub cjmhjhijmjn: u32, + #[prost(message, repeated, tag = "6")] + pub ohmgddcbbod: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "7")] + pub nihighemglh: u32, + #[prost(message, optional, tag = "8")] + pub odemmdjobca: ::core::option::Option, + #[prost(uint32, tag = "9")] + pub peakeaapccb: u32, + #[prost(uint64, tag = "10")] + pub bnmgejacojn: u64, + #[prost(uint32, repeated, tag = "11")] + pub jbadgiahpgc: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub lippebjmhfo: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4872)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Poedehndmkp { + #[prost(uint32, tag = "1")] + pub group_id: u32, + #[prost(uint32, tag = "12")] + pub bknplfikkfg: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Efaipndihai { + #[prost(message, optional, tag = "4")] + pub ohoaamnllce: ::core::option::Option, + #[prost(enumeration = "Eiblikiahil", repeated, tag = "8")] + pub plieajlmpji: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub level: u32, + #[prost(uint32, tag = "13")] + pub fbiopccedle: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28722)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bhlllppdali { + #[prost(uint32, tag = "5")] + pub fchfakepinp: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Lagbencoaia { + #[prost(uint32, tag = "3")] + pub pheaadkdalg: u32, + #[prost(uint32, tag = "5")] + pub pbkeaocbpmn: u32, + #[prost(message, repeated, tag = "10")] + pub dhgdeeafoca: ::prost::alloc::vec::Vec, + #[prost(uint32, repeated, tag = "11")] + pub napgdlclmef: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "12")] + pub bidfhbilnmo: u32, + #[prost(fixed32, tag = "13")] + pub mhghinogbgd: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28311)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dlkljalilck { + #[prost(int32, tag = "6")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22340)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mnmgpkalmbm { + #[prost(uint32, tag = "4")] + pub fkhohkelkoe: u32, + #[prost(message, repeated, tag = "10")] + pub lbbacoodlii: ::prost::alloc::vec::Vec, + #[prost(int32, tag = "15")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(25062)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ekbnmklmafb { + #[prost(int32, tag = "3")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(29962)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PingRsp { + #[prost(uint32, tag = "5")] + pub client_time: u32, + #[prost(uint32, tag = "9")] + pub seq: u32, + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bmciphofbfp { + #[prost(message, optional, tag = "4")] + pub gfmendkmifj: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub ehejdjoeind: u32, + #[prost(uint32, tag = "13")] + pub gogpndlfbdf: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22742)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Edfifniamgd { + #[prost(uint32, tag = "1")] + pub target_uid: u32, + #[prost(int32, tag = "14")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24928)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Gkdmcpmlmfp { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(5501)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Genmggjcjgh { + #[prost(int32, tag = "8")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ghlalhdagmp { + #[prost(map = "uint32, uint32", tag = "4")] + pub kniphmlpdkb: ::std::collections::HashMap, + #[prost(bool, tag = "14")] + pub kgipbhibobd: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Anahhdnmhjb { + #[prost(map = "uint32, uint32", tag = "2")] + pub bnofpmifhdl: ::std::collections::HashMap, + #[prost(string, tag = "3")] + pub ocmpadiifcd: ::prost::alloc::string::String, + #[prost(fixed64, tag = "6")] + pub mepomjbblhd: u64, + #[prost(message, optional, tag = "8")] + pub blfkojlccoo: ::core::option::Option, + #[prost(fixed64, tag = "9")] + pub comecimikkg: u64, + #[prost(string, tag = "10")] + pub bkdilgijpeg: ::prost::alloc::string::String, + #[prost(bool, tag = "13")] + pub ikcomhijpim: bool, + #[prost(uint32, tag = "15")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Cljkbdnfmpm { + #[prost(uint32, tag = "1")] + pub dmcjbimfkci: u32, + #[prost(uint32, tag = "2")] + pub efniikefdpo: u32, + #[prost(uint32, tag = "3")] + pub ogopbmamfma: u32, + #[prost(uint32, tag = "5")] + pub cckfdjdnlgc: u32, + #[prost(uint32, tag = "6")] + pub lmjnokajeki: u32, + #[prost(uint32, tag = "7")] + pub jcejajfndhm: u32, + #[prost(uint32, tag = "8")] + pub gehpjhapohj: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Njopgnlkolp { + #[prost(uint32, tag = "9")] + pub ihabegifhoa: u32, + #[prost(uint32, repeated, tag = "12")] + pub bedkmkedngc: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jbfhbkdokea { + #[prost(uint32, tag = "5")] + pub dekhbeooien: u32, + #[prost(enumeration = "Npgmacjfbek", tag = "10")] + pub dpdjgigleld: i32, + #[prost(uint32, tag = "11")] + pub version: u32, + #[prost(uint64, tag = "12")] + pub gedmdocolfj: u64, + #[prost(uint32, tag = "14")] + pub epcpnhjnkbn: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4964)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ohpfdgmejch { + #[prost(int32, tag = "11")] + pub retcode: i32, + #[prost(uint64, tag = "15")] + pub avatar_guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(20977)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Iehijgieklh { + #[prost(uint32, tag = "4")] + pub scene_id: u32, + #[prost(uint32, tag = "11")] + pub group_id: u32, + #[prost(uint32, tag = "13")] + pub config_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4241)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Badfejbmpid { + #[prost(string, tag = "5")] + pub kamjijolfkj: ::prost::alloc::string::String, + #[prost(uint32, tag = "7")] + pub uid: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(28203)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ojggahdefoh { + #[prost(int32, tag = "9")] + pub retcode: i32, + #[prost(bool, tag = "10")] + pub plfbppnfdog: bool, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nmlablhbkea { + #[prost(bool, tag = "1")] + pub ecihdijcled: bool, + #[prost(string, tag = "2")] + pub dmmfjmbmjha: ::prost::alloc::string::String, + #[prost(uint32, tag = "3")] + pub aopkgiojbmi: u32, + #[prost(enumeration = "Jgdodfjcang", tag = "4")] + pub feaalnhainp: i32, + #[prost(uint32, tag = "5")] + pub afpkljbmobb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22529)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mpfpdbkkmbi { + #[prost(uint32, repeated, tag = "6")] + pub chgiblddkfe: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2640)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Jdgeoddocmb { + #[prost(uint64, repeated, tag = "8")] + pub fikgdofabee: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pfplcejidbb { + #[prost(uint32, tag = "5")] + pub nalbmjhaeip: u32, + #[prost(bytes = "vec", tag = "8")] + pub data: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "15")] + pub dkkgfphnknb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(6650)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clifdlhhbeb {} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Hclmalegipl { + #[prost(uint32, tag = "1")] + pub gaplfmmgbfa: u32, + #[prost(message, repeated, tag = "5")] + pub ceihipahgnh: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "7")] + pub gedmdocolfj: u64, + #[prost(message, optional, tag = "9")] + pub gigadmpnjhl: ::core::option::Option, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22233)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pnncandilkc { + #[prost(bool, tag = "2")] + pub npfkjanodee: bool, +} +#[derive(proto_gen::CmdID)] +#[cmdid(4029)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Pkpkebfbgbp { + #[prost(int32, tag = "12")] + pub retcode: i32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(22391)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Maponfejajk { + #[prost(uint32, tag = "2")] + pub pjjaoilbfbn: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mkjipiajnmf { + #[prost(uint32, tag = "2")] + pub pjegodebmjc: u32, + #[prost(uint32, tag = "12")] + pub bajbbdmonka: u32, + #[prost(uint32, tag = "14")] + pub fjoopnacjlb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(27208)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Kkfodiogipg { + #[prost(message, optional, tag = "3")] + pub mibgejfdeki: ::core::option::Option, + #[prost(uint32, tag = "11")] + pub omgchbachci: u32, +} +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Dbeignikeco { + #[prost(message, repeated, tag = "4")] + pub cbenkjeocil: ::prost::alloc::vec::Vec, +} +#[derive(proto_gen::CmdID)] +#[cmdid(609)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Mhnoadcnpmp { + #[prost(uint64, tag = "6")] + pub guid: u64, +} +#[derive(proto_gen::CmdID)] +#[cmdid(2671)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Bbekfakpced { + #[prost(uint32, tag = "5")] + pub ffhembokbef: u32, + #[prost(uint32, tag = "7")] + pub gghkdjlgfpb: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(24922)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ijpajdjebhl { + #[prost(uint64, repeated, tag = "12")] + pub nneidbddihm: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag = "5")] + pub dlkgdlnileh: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "2")] + pub aclgnllhajb: u64, +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Aedfenmknkc { + CustomDungeonFinishPlayNormal = 0, + CustomDungeonFinishPlayTry = 1, + CustomDungeonFinishEditTry = 2, + CustomDungeonFinishSelfPlayNormal = 3, +} +impl Aedfenmknkc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Aedfenmknkc::CustomDungeonFinishPlayNormal => { + "AEDFENMKNKC_CustomDungeonFinishPlayNormal" + } + Aedfenmknkc::CustomDungeonFinishPlayTry => { + "AEDFENMKNKC_CustomDungeonFinishPlayTry" + } + Aedfenmknkc::CustomDungeonFinishEditTry => { + "AEDFENMKNKC_CustomDungeonFinishEditTry" + } + Aedfenmknkc::CustomDungeonFinishSelfPlayNormal => { + "AEDFENMKNKC_CustomDungeonFinishSelfPlayNormal" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AEDFENMKNKC_CustomDungeonFinishPlayNormal" => { + Some(Self::CustomDungeonFinishPlayNormal) + } + "AEDFENMKNKC_CustomDungeonFinishPlayTry" => { + Some(Self::CustomDungeonFinishPlayTry) + } + "AEDFENMKNKC_CustomDungeonFinishEditTry" => { + Some(Self::CustomDungeonFinishEditTry) + } + "AEDFENMKNKC_CustomDungeonFinishSelfPlayNormal" => { + Some(Self::CustomDungeonFinishSelfPlayNormal) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Iailmjppbfe { + StatusFail = 0, + StatusSucc = 1, + StatusPartial = 2, +} +impl Iailmjppbfe { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Iailmjppbfe::StatusFail => "IAILMJPPBFE_StatusFail", + Iailmjppbfe::StatusSucc => "IAILMJPPBFE_StatusSucc", + Iailmjppbfe::StatusPartial => "IAILMJPPBFE_StatusPartial", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IAILMJPPBFE_StatusFail" => Some(Self::StatusFail), + "IAILMJPPBFE_StatusSucc" => Some(Self::StatusSucc), + "IAILMJPPBFE_StatusPartial" => Some(Self::StatusPartial), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum EnterType { + EnterNone = 0, + EnterSelf = 1, + EnterGoto = 2, + EnterJump = 3, + EnterOther = 4, + EnterBack = 5, + EnterDungeon = 6, + EnterDungeonReplay = 7, + EnterGotoByPortal = 8, + EnterSelfHome = 9, + EnterOtherHome = 10, + EnterGotoRecreate = 11, + EnterGotoByTpl = 12, +} +impl EnterType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + EnterType::EnterNone => "EnterType_EnterNone", + EnterType::EnterSelf => "EnterType_EnterSelf", + EnterType::EnterGoto => "EnterType_EnterGoto", + EnterType::EnterJump => "EnterType_EnterJump", + EnterType::EnterOther => "EnterType_EnterOther", + EnterType::EnterBack => "EnterType_EnterBack", + EnterType::EnterDungeon => "EnterType_EnterDungeon", + EnterType::EnterDungeonReplay => "EnterType_EnterDungeonReplay", + EnterType::EnterGotoByPortal => "EnterType_EnterGotoByPortal", + EnterType::EnterSelfHome => "EnterType_EnterSelfHome", + EnterType::EnterOtherHome => "EnterType_EnterOtherHome", + EnterType::EnterGotoRecreate => "EnterType_EnterGotoRecreate", + EnterType::EnterGotoByTpl => "EnterType_EnterGotoByTpl", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EnterType_EnterNone" => Some(Self::EnterNone), + "EnterType_EnterSelf" => Some(Self::EnterSelf), + "EnterType_EnterGoto" => Some(Self::EnterGoto), + "EnterType_EnterJump" => Some(Self::EnterJump), + "EnterType_EnterOther" => Some(Self::EnterOther), + "EnterType_EnterBack" => Some(Self::EnterBack), + "EnterType_EnterDungeon" => Some(Self::EnterDungeon), + "EnterType_EnterDungeonReplay" => Some(Self::EnterDungeonReplay), + "EnterType_EnterGotoByPortal" => Some(Self::EnterGotoByPortal), + "EnterType_EnterSelfHome" => Some(Self::EnterSelfHome), + "EnterType_EnterOtherHome" => Some(Self::EnterOtherHome), + "EnterType_EnterGotoRecreate" => Some(Self::EnterGotoRecreate), + "EnterType_EnterGotoByTpl" => Some(Self::EnterGotoByTpl), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Inmchndeiah { + PlayerJudge = 0, + PlayerEnterOptionRefuse = 1, + PlayerEnterOptionDirect = 2, + SystemJudge = 3, + HostInMatch = 4, + PsPlayerNotAcceptOthers = 5, + OpenStateNotOpen = 6, + HostInEditMode = 7, + PriorCheck = 8, +} +impl Inmchndeiah { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Inmchndeiah::PlayerJudge => "INMCHNDEIAH_PlayerJudge", + Inmchndeiah::PlayerEnterOptionRefuse => "INMCHNDEIAH_PlayerEnterOptionRefuse", + Inmchndeiah::PlayerEnterOptionDirect => "INMCHNDEIAH_PlayerEnterOptionDirect", + Inmchndeiah::SystemJudge => "INMCHNDEIAH_SystemJudge", + Inmchndeiah::HostInMatch => "INMCHNDEIAH_HostInMatch", + Inmchndeiah::PsPlayerNotAcceptOthers => "INMCHNDEIAH_PsPlayerNotAcceptOthers", + Inmchndeiah::OpenStateNotOpen => "INMCHNDEIAH_OpenStateNotOpen", + Inmchndeiah::HostInEditMode => "INMCHNDEIAH_HostInEditMode", + Inmchndeiah::PriorCheck => "INMCHNDEIAH_PriorCheck", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "INMCHNDEIAH_PlayerJudge" => Some(Self::PlayerJudge), + "INMCHNDEIAH_PlayerEnterOptionRefuse" => Some(Self::PlayerEnterOptionRefuse), + "INMCHNDEIAH_PlayerEnterOptionDirect" => Some(Self::PlayerEnterOptionDirect), + "INMCHNDEIAH_SystemJudge" => Some(Self::SystemJudge), + "INMCHNDEIAH_HostInMatch" => Some(Self::HostInMatch), + "INMCHNDEIAH_PsPlayerNotAcceptOthers" => Some(Self::PsPlayerNotAcceptOthers), + "INMCHNDEIAH_OpenStateNotOpen" => Some(Self::OpenStateNotOpen), + "INMCHNDEIAH_HostInEditMode" => Some(Self::HostInEditMode), + "INMCHNDEIAH_PriorCheck" => Some(Self::PriorCheck), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pjfodmhgoln { + AsterLittleStageNone = 0, + AsterLittleStageUnstarted = 1, + AsterLittleStageStarted = 2, + AsterLittleStageFinished = 3, +} +impl Pjfodmhgoln { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pjfodmhgoln::AsterLittleStageNone => "PJFODMHGOLN_AsterLittleStageNone", + Pjfodmhgoln::AsterLittleStageUnstarted => { + "PJFODMHGOLN_AsterLittleStageUnstarted" + } + Pjfodmhgoln::AsterLittleStageStarted => "PJFODMHGOLN_AsterLittleStageStarted", + Pjfodmhgoln::AsterLittleStageFinished => { + "PJFODMHGOLN_AsterLittleStageFinished" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PJFODMHGOLN_AsterLittleStageNone" => Some(Self::AsterLittleStageNone), + "PJFODMHGOLN_AsterLittleStageUnstarted" => { + Some(Self::AsterLittleStageUnstarted) + } + "PJFODMHGOLN_AsterLittleStageStarted" => Some(Self::AsterLittleStageStarted), + "PJFODMHGOLN_AsterLittleStageFinished" => { + Some(Self::AsterLittleStageFinished) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nnlmonnhamd { + Default = 0, + Clear = 1, + Distance = 2, + Finish = 3, +} +impl Nnlmonnhamd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nnlmonnhamd::Default => "NNLMONNHAMD_Default", + Nnlmonnhamd::Clear => "NNLMONNHAMD_Clear", + Nnlmonnhamd::Distance => "NNLMONNHAMD_Distance", + Nnlmonnhamd::Finish => "NNLMONNHAMD_Finish", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NNLMONNHAMD_Default" => Some(Self::Default), + "NNLMONNHAMD_Clear" => Some(Self::Clear), + "NNLMONNHAMD_Distance" => Some(Self::Distance), + "NNLMONNHAMD_Finish" => Some(Self::Finish), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Plpanejlelj { + HideAndSeekStagePrepare = 0, + HideAndSeekStagePick = 1, + HideAndSeekStageGame = 2, + HideAndSeekStageHide = 3, + HideAndSeekStageSeek = 4, + HideAndSeekStageSettle = 5, +} +impl Plpanejlelj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Plpanejlelj::HideAndSeekStagePrepare => "PLPANEJLELJ_HideAndSeekStagePrepare", + Plpanejlelj::HideAndSeekStagePick => "PLPANEJLELJ_HideAndSeekStagePick", + Plpanejlelj::HideAndSeekStageGame => "PLPANEJLELJ_HideAndSeekStageGame", + Plpanejlelj::HideAndSeekStageHide => "PLPANEJLELJ_HideAndSeekStageHide", + Plpanejlelj::HideAndSeekStageSeek => "PLPANEJLELJ_HideAndSeekStageSeek", + Plpanejlelj::HideAndSeekStageSettle => "PLPANEJLELJ_HideAndSeekStageSettle", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PLPANEJLELJ_HideAndSeekStagePrepare" => Some(Self::HideAndSeekStagePrepare), + "PLPANEJLELJ_HideAndSeekStagePick" => Some(Self::HideAndSeekStagePick), + "PLPANEJLELJ_HideAndSeekStageGame" => Some(Self::HideAndSeekStageGame), + "PLPANEJLELJ_HideAndSeekStageHide" => Some(Self::HideAndSeekStageHide), + "PLPANEJLELJ_HideAndSeekStageSeek" => Some(Self::HideAndSeekStageSeek), + "PLPANEJLELJ_HideAndSeekStageSettle" => Some(Self::HideAndSeekStageSettle), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gnhpbjnpknn { + None = 0, + Start = 1, + Read = 2, +} +impl Gnhpbjnpknn { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gnhpbjnpknn::None => "GNHPBJNPKNN_None", + Gnhpbjnpknn::Start => "GNHPBJNPKNN_Start", + Gnhpbjnpknn::Read => "GNHPBJNPKNN_Read", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GNHPBJNPKNN_None" => Some(Self::None), + "GNHPBJNPKNN_Start" => Some(Self::Start), + "GNHPBJNPKNN_Read" => Some(Self::Read), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ohjbejlmdbg { + DungeonCandidateTplrNormal = 0, + DungeonCandidateTplrDie = 1, + DungeonCandidateTplrBeKick = 2, + DungeonCandidateDisconnect = 3, +} +impl Ohjbejlmdbg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ohjbejlmdbg::DungeonCandidateTplrNormal => { + "OHJBEJLMDBG_DungeonCandidateTplrNormal" + } + Ohjbejlmdbg::DungeonCandidateTplrDie => "OHJBEJLMDBG_DungeonCandidateTplrDie", + Ohjbejlmdbg::DungeonCandidateTplrBeKick => { + "OHJBEJLMDBG_DungeonCandidateTplrBeKick" + } + Ohjbejlmdbg::DungeonCandidateDisconnect => { + "OHJBEJLMDBG_DungeonCandidateDisconnect" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "OHJBEJLMDBG_DungeonCandidateTplrNormal" => { + Some(Self::DungeonCandidateTplrNormal) + } + "OHJBEJLMDBG_DungeonCandidateTplrDie" => Some(Self::DungeonCandidateTplrDie), + "OHJBEJLMDBG_DungeonCandidateTplrBeKick" => { + Some(Self::DungeonCandidateTplrBeKick) + } + "OHJBEJLMDBG_DungeonCandidateDisconnect" => { + Some(Self::DungeonCandidateDisconnect) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jmeollkiong { + Default = 0, + Die = 1, + Surrender = 2, + Disconnected = 3, + RoundLimit = 4, + Gm = 5, + NoPlayer = 6, + GiveUp = 7, + InitTimeout = 8, + Effect = 9, + ExpireTimeout = 10, +} +impl Jmeollkiong { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jmeollkiong::Default => "JMEOLLKIONG_Default", + Jmeollkiong::Die => "JMEOLLKIONG_Die", + Jmeollkiong::Surrender => "JMEOLLKIONG_Surrender", + Jmeollkiong::Disconnected => "JMEOLLKIONG_Disconnected", + Jmeollkiong::RoundLimit => "JMEOLLKIONG_RoundLimit", + Jmeollkiong::Gm => "JMEOLLKIONG_Gm", + Jmeollkiong::NoPlayer => "JMEOLLKIONG_NoPlayer", + Jmeollkiong::GiveUp => "JMEOLLKIONG_GiveUp", + Jmeollkiong::InitTimeout => "JMEOLLKIONG_InitTimeout", + Jmeollkiong::Effect => "JMEOLLKIONG_Effect", + Jmeollkiong::ExpireTimeout => "JMEOLLKIONG_ExpireTimeout", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JMEOLLKIONG_Default" => Some(Self::Default), + "JMEOLLKIONG_Die" => Some(Self::Die), + "JMEOLLKIONG_Surrender" => Some(Self::Surrender), + "JMEOLLKIONG_Disconnected" => Some(Self::Disconnected), + "JMEOLLKIONG_RoundLimit" => Some(Self::RoundLimit), + "JMEOLLKIONG_Gm" => Some(Self::Gm), + "JMEOLLKIONG_NoPlayer" => Some(Self::NoPlayer), + "JMEOLLKIONG_GiveUp" => Some(Self::GiveUp), + "JMEOLLKIONG_InitTimeout" => Some(Self::InitTimeout), + "JMEOLLKIONG_Effect" => Some(Self::Effect), + "JMEOLLKIONG_ExpireTimeout" => Some(Self::ExpireTimeout), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Eicnfjmdenp { + None = 0, + Effect = 1, +} +impl Eicnfjmdenp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Eicnfjmdenp::None => "EICNFJMDENP_None", + Eicnfjmdenp::Effect => "EICNFJMDENP_Effect", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EICNFJMDENP_None" => Some(Self::None), + "EICNFJMDENP_Effect" => Some(Self::Effect), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Epnikabpigp { + ObstacleShapeCapsule = 0, + ObstacleShapeBox = 1, +} +impl Epnikabpigp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Epnikabpigp::ObstacleShapeCapsule => "EPNIKABPIGP_ObstacleShapeCapsule", + Epnikabpigp::ObstacleShapeBox => "EPNIKABPIGP_ObstacleShapeBox", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EPNIKABPIGP_ObstacleShapeCapsule" => Some(Self::ObstacleShapeCapsule), + "EPNIKABPIGP_ObstacleShapeBox" => Some(Self::ObstacleShapeBox), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Agdcpkbnogi { + SalvagePreventStopNone = 0, + SalvagePreventStopSuccess = 1, + SalvagePreventStopArrival = 2, + SalvagePreventStopInterrupt = 3, + SalvagePreventStopLeave = 4, + SalvagePreventStopFull = 5, + SalvagePreventStopAway = 6, +} +impl Agdcpkbnogi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Agdcpkbnogi::SalvagePreventStopNone => "AGDCPKBNOGI_SalvagePreventStopNone", + Agdcpkbnogi::SalvagePreventStopSuccess => { + "AGDCPKBNOGI_SalvagePreventStopSuccess" + } + Agdcpkbnogi::SalvagePreventStopArrival => { + "AGDCPKBNOGI_SalvagePreventStopArrival" + } + Agdcpkbnogi::SalvagePreventStopInterrupt => { + "AGDCPKBNOGI_SalvagePreventStopInterrupt" + } + Agdcpkbnogi::SalvagePreventStopLeave => "AGDCPKBNOGI_SalvagePreventStopLeave", + Agdcpkbnogi::SalvagePreventStopFull => "AGDCPKBNOGI_SalvagePreventStopFull", + Agdcpkbnogi::SalvagePreventStopAway => "AGDCPKBNOGI_SalvagePreventStopAway", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AGDCPKBNOGI_SalvagePreventStopNone" => Some(Self::SalvagePreventStopNone), + "AGDCPKBNOGI_SalvagePreventStopSuccess" => { + Some(Self::SalvagePreventStopSuccess) + } + "AGDCPKBNOGI_SalvagePreventStopArrival" => { + Some(Self::SalvagePreventStopArrival) + } + "AGDCPKBNOGI_SalvagePreventStopInterrupt" => { + Some(Self::SalvagePreventStopInterrupt) + } + "AGDCPKBNOGI_SalvagePreventStopLeave" => Some(Self::SalvagePreventStopLeave), + "AGDCPKBNOGI_SalvagePreventStopFull" => Some(Self::SalvagePreventStopFull), + "AGDCPKBNOGI_SalvagePreventStopAway" => Some(Self::SalvagePreventStopAway), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Donnpjameed { + GcgPhaseInvalid = 0, + GcgPhaseStart = 1, + GcgPhaseDraw = 2, + GcgPhaseOnStage = 3, + GcgPhaseDice = 4, + GcgPhaseMain = 5, + GcgPhaseEnd = 6, + GcgPhaseDie = 7, + GcgPhaseFin = 8, + GcgPhasePreMain = 9, + GcgPhaseReroll = 10, + GcgPhaseRedraw = 11, +} +impl Donnpjameed { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Donnpjameed::GcgPhaseInvalid => "DONNPJAMEED_GcgPhaseInvalid", + Donnpjameed::GcgPhaseStart => "DONNPJAMEED_GcgPhaseStart", + Donnpjameed::GcgPhaseDraw => "DONNPJAMEED_GcgPhaseDraw", + Donnpjameed::GcgPhaseOnStage => "DONNPJAMEED_GcgPhaseOnStage", + Donnpjameed::GcgPhaseDice => "DONNPJAMEED_GcgPhaseDice", + Donnpjameed::GcgPhaseMain => "DONNPJAMEED_GcgPhaseMain", + Donnpjameed::GcgPhaseEnd => "DONNPJAMEED_GcgPhaseEnd", + Donnpjameed::GcgPhaseDie => "DONNPJAMEED_GcgPhaseDie", + Donnpjameed::GcgPhaseFin => "DONNPJAMEED_GcgPhaseFin", + Donnpjameed::GcgPhasePreMain => "DONNPJAMEED_GcgPhasePreMain", + Donnpjameed::GcgPhaseReroll => "DONNPJAMEED_GcgPhaseReroll", + Donnpjameed::GcgPhaseRedraw => "DONNPJAMEED_GcgPhaseRedraw", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DONNPJAMEED_GcgPhaseInvalid" => Some(Self::GcgPhaseInvalid), + "DONNPJAMEED_GcgPhaseStart" => Some(Self::GcgPhaseStart), + "DONNPJAMEED_GcgPhaseDraw" => Some(Self::GcgPhaseDraw), + "DONNPJAMEED_GcgPhaseOnStage" => Some(Self::GcgPhaseOnStage), + "DONNPJAMEED_GcgPhaseDice" => Some(Self::GcgPhaseDice), + "DONNPJAMEED_GcgPhaseMain" => Some(Self::GcgPhaseMain), + "DONNPJAMEED_GcgPhaseEnd" => Some(Self::GcgPhaseEnd), + "DONNPJAMEED_GcgPhaseDie" => Some(Self::GcgPhaseDie), + "DONNPJAMEED_GcgPhaseFin" => Some(Self::GcgPhaseFin), + "DONNPJAMEED_GcgPhasePreMain" => Some(Self::GcgPhasePreMain), + "DONNPJAMEED_GcgPhaseReroll" => Some(Self::GcgPhaseReroll), + "DONNPJAMEED_GcgPhaseRedraw" => Some(Self::GcgPhaseRedraw), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bkkkfljbpmi { + Invalid = 0, + InProgress = 1, + Complete = 2, + RewardTaken = 3, +} +impl Bkkkfljbpmi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bkkkfljbpmi::Invalid => "BKKKFLJBPMI_Invalid", + Bkkkfljbpmi::InProgress => "BKKKFLJBPMI_InProgress", + Bkkkfljbpmi::Complete => "BKKKFLJBPMI_Complete", + Bkkkfljbpmi::RewardTaken => "BKKKFLJBPMI_RewardTaken", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BKKKFLJBPMI_Invalid" => Some(Self::Invalid), + "BKKKFLJBPMI_InProgress" => Some(Self::InProgress), + "BKKKFLJBPMI_Complete" => Some(Self::Complete), + "BKKKFLJBPMI_RewardTaken" => Some(Self::RewardTaken), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hocjfidgkjm { + None = 0, + ByKick = 1, + Quit = 2, +} +impl Hocjfidgkjm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hocjfidgkjm::None => "HOCJFIDGKJM_None", + Hocjfidgkjm::ByKick => "HOCJFIDGKJM_ByKick", + Hocjfidgkjm::Quit => "HOCJFIDGKJM_Quit", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HOCJFIDGKJM_None" => Some(Self::None), + "HOCJFIDGKJM_ByKick" => Some(Self::ByKick), + "HOCJFIDGKJM_Quit" => Some(Self::Quit), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jccjcepopne { + None = 0, + Auto = 1, + Custom = 2, +} +impl Jccjcepopne { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jccjcepopne::None => "JCCJCEPOPNE_None", + Jccjcepopne::Auto => "JCCJCEPOPNE_Auto", + Jccjcepopne::Custom => "JCCJCEPOPNE_Custom", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JCCJCEPOPNE_None" => Some(Self::None), + "JCCJCEPOPNE_Auto" => Some(Self::Auto), + "JCCJCEPOPNE_Custom" => Some(Self::Custom), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hkkcdiccimi { + GcgGameNone = 0, + GcgGameGm = 1, + GcgGameMatch = 2, + GcgGamePvp = 3, + GcgGameTavernChallenge = 4, + GcgGameConstChallenge = 5, + GcgGameWorldChallenge = 6, + GcgGameBossChallenge = 7, + GcgGameWeekChallenge = 8, + GcgGameBreakChallenge = 9, + GcgGameQuest = 10, + GcgGameGuideGroup = 11, + GcgGameOther = 12, + GcgGameActivityJourney = 13, + GcgGamePveActivity = 14, + GcgGameArena = 15, + GcgGameActivityPveInfinite = 16, + GcgGameActivityPvePuzzle = 17, +} +impl Hkkcdiccimi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hkkcdiccimi::GcgGameNone => "HKKCDICCIMI_GcgGameNone", + Hkkcdiccimi::GcgGameGm => "HKKCDICCIMI_GcgGameGm", + Hkkcdiccimi::GcgGameMatch => "HKKCDICCIMI_GcgGameMatch", + Hkkcdiccimi::GcgGamePvp => "HKKCDICCIMI_GcgGamePvp", + Hkkcdiccimi::GcgGameTavernChallenge => "HKKCDICCIMI_GcgGameTavernChallenge", + Hkkcdiccimi::GcgGameConstChallenge => "HKKCDICCIMI_GcgGameConstChallenge", + Hkkcdiccimi::GcgGameWorldChallenge => "HKKCDICCIMI_GcgGameWorldChallenge", + Hkkcdiccimi::GcgGameBossChallenge => "HKKCDICCIMI_GcgGameBossChallenge", + Hkkcdiccimi::GcgGameWeekChallenge => "HKKCDICCIMI_GcgGameWeekChallenge", + Hkkcdiccimi::GcgGameBreakChallenge => "HKKCDICCIMI_GcgGameBreakChallenge", + Hkkcdiccimi::GcgGameQuest => "HKKCDICCIMI_GcgGameQuest", + Hkkcdiccimi::GcgGameGuideGroup => "HKKCDICCIMI_GcgGameGuideGroup", + Hkkcdiccimi::GcgGameOther => "HKKCDICCIMI_GcgGameOther", + Hkkcdiccimi::GcgGameActivityJourney => "HKKCDICCIMI_GcgGameActivityJourney", + Hkkcdiccimi::GcgGamePveActivity => "HKKCDICCIMI_GcgGamePveActivity", + Hkkcdiccimi::GcgGameArena => "HKKCDICCIMI_GcgGameArena", + Hkkcdiccimi::GcgGameActivityPveInfinite => { + "HKKCDICCIMI_GcgGameActivityPveInfinite" + } + Hkkcdiccimi::GcgGameActivityPvePuzzle => { + "HKKCDICCIMI_GcgGameActivityPvePuzzle" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HKKCDICCIMI_GcgGameNone" => Some(Self::GcgGameNone), + "HKKCDICCIMI_GcgGameGm" => Some(Self::GcgGameGm), + "HKKCDICCIMI_GcgGameMatch" => Some(Self::GcgGameMatch), + "HKKCDICCIMI_GcgGamePvp" => Some(Self::GcgGamePvp), + "HKKCDICCIMI_GcgGameTavernChallenge" => Some(Self::GcgGameTavernChallenge), + "HKKCDICCIMI_GcgGameConstChallenge" => Some(Self::GcgGameConstChallenge), + "HKKCDICCIMI_GcgGameWorldChallenge" => Some(Self::GcgGameWorldChallenge), + "HKKCDICCIMI_GcgGameBossChallenge" => Some(Self::GcgGameBossChallenge), + "HKKCDICCIMI_GcgGameWeekChallenge" => Some(Self::GcgGameWeekChallenge), + "HKKCDICCIMI_GcgGameBreakChallenge" => Some(Self::GcgGameBreakChallenge), + "HKKCDICCIMI_GcgGameQuest" => Some(Self::GcgGameQuest), + "HKKCDICCIMI_GcgGameGuideGroup" => Some(Self::GcgGameGuideGroup), + "HKKCDICCIMI_GcgGameOther" => Some(Self::GcgGameOther), + "HKKCDICCIMI_GcgGameActivityJourney" => Some(Self::GcgGameActivityJourney), + "HKKCDICCIMI_GcgGamePveActivity" => Some(Self::GcgGamePveActivity), + "HKKCDICCIMI_GcgGameArena" => Some(Self::GcgGameArena), + "HKKCDICCIMI_GcgGameActivityPveInfinite" => { + Some(Self::GcgGameActivityPveInfinite) + } + "HKKCDICCIMI_GcgGameActivityPvePuzzle" => { + Some(Self::GcgGameActivityPvePuzzle) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Aplkolhcome { + FreiendDisconnect = 0, + FriendOnline = 1, +} +impl Aplkolhcome { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Aplkolhcome::FreiendDisconnect => "APLKOLHCOME_FreiendDisconnect", + Aplkolhcome::FriendOnline => "APLKOLHCOME_FriendOnline", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "APLKOLHCOME_FreiendDisconnect" => Some(Self::FreiendDisconnect), + "APLKOLHCOME_FriendOnline" => Some(Self::FriendOnline), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Njgjfmecpka { + None = 0, + CreateConnect = 1, + StartGame = 2, + Ping = 3, + FinishGame = 4, + SnapShot = 5, + Action = 6, +} +impl Njgjfmecpka { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Njgjfmecpka::None => "NJGJFMECPKA_None", + Njgjfmecpka::CreateConnect => "NJGJFMECPKA_CreateConnect", + Njgjfmecpka::StartGame => "NJGJFMECPKA_StartGame", + Njgjfmecpka::Ping => "NJGJFMECPKA_Ping", + Njgjfmecpka::FinishGame => "NJGJFMECPKA_FinishGame", + Njgjfmecpka::SnapShot => "NJGJFMECPKA_SnapShot", + Njgjfmecpka::Action => "NJGJFMECPKA_Action", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NJGJFMECPKA_None" => Some(Self::None), + "NJGJFMECPKA_CreateConnect" => Some(Self::CreateConnect), + "NJGJFMECPKA_StartGame" => Some(Self::StartGame), + "NJGJFMECPKA_Ping" => Some(Self::Ping), + "NJGJFMECPKA_FinishGame" => Some(Self::FinishGame), + "NJGJFMECPKA_SnapShot" => Some(Self::SnapShot), + "NJGJFMECPKA_Action" => Some(Self::Action), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nlkboohnhhj { + ReportReasonNone = 0, + ReportReasonDeceptiveAds = 1, + ReportReasonAbusing = 2, + ReportReasonCheat = 3, + ReportReasonPolitical = 4, + ReportReasonOther = 5, + ReportReasonHome = 6, +} +impl Nlkboohnhhj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nlkboohnhhj::ReportReasonNone => "NLKBOOHNHHJ_ReportReasonNone", + Nlkboohnhhj::ReportReasonDeceptiveAds => { + "NLKBOOHNHHJ_ReportReasonDeceptiveAds" + } + Nlkboohnhhj::ReportReasonAbusing => "NLKBOOHNHHJ_ReportReasonAbusing", + Nlkboohnhhj::ReportReasonCheat => "NLKBOOHNHHJ_ReportReasonCheat", + Nlkboohnhhj::ReportReasonPolitical => "NLKBOOHNHHJ_ReportReasonPolitical", + Nlkboohnhhj::ReportReasonOther => "NLKBOOHNHHJ_ReportReasonOther", + Nlkboohnhhj::ReportReasonHome => "NLKBOOHNHHJ_ReportReasonHome", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NLKBOOHNHHJ_ReportReasonNone" => Some(Self::ReportReasonNone), + "NLKBOOHNHHJ_ReportReasonDeceptiveAds" => { + Some(Self::ReportReasonDeceptiveAds) + } + "NLKBOOHNHHJ_ReportReasonAbusing" => Some(Self::ReportReasonAbusing), + "NLKBOOHNHHJ_ReportReasonCheat" => Some(Self::ReportReasonCheat), + "NLKBOOHNHHJ_ReportReasonPolitical" => Some(Self::ReportReasonPolitical), + "NLKBOOHNHHJ_ReportReasonOther" => Some(Self::ReportReasonOther), + "NLKBOOHNHHJ_ReportReasonHome" => Some(Self::ReportReasonHome), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bplklkdbogp { + Idle = 0, + ChangingAvatar = 1, + Ready = 2, +} +impl Bplklkdbogp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bplklkdbogp::Idle => "BPLKLKDBOGP_Idle", + Bplklkdbogp::ChangingAvatar => "BPLKLKDBOGP_ChangingAvatar", + Bplklkdbogp::Ready => "BPLKLKDBOGP_Ready", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BPLKLKDBOGP_Idle" => Some(Self::Idle), + "BPLKLKDBOGP_ChangingAvatar" => Some(Self::ChangingAvatar), + "BPLKLKDBOGP_Ready" => Some(Self::Ready), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gmbpglnggli { + TryCustomDungeonNone = 0, + TryCustomDungeonRoom = 1, + TryCustomDungeonAll = 2, + TryCustomDungeonOfficialPlay = 3, +} +impl Gmbpglnggli { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gmbpglnggli::TryCustomDungeonNone => "GMBPGLNGGLI_TryCustomDungeonNone", + Gmbpglnggli::TryCustomDungeonRoom => "GMBPGLNGGLI_TryCustomDungeonRoom", + Gmbpglnggli::TryCustomDungeonAll => "GMBPGLNGGLI_TryCustomDungeonAll", + Gmbpglnggli::TryCustomDungeonOfficialPlay => { + "GMBPGLNGGLI_TryCustomDungeonOfficialPlay" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GMBPGLNGGLI_TryCustomDungeonNone" => Some(Self::TryCustomDungeonNone), + "GMBPGLNGGLI_TryCustomDungeonRoom" => Some(Self::TryCustomDungeonRoom), + "GMBPGLNGGLI_TryCustomDungeonAll" => Some(Self::TryCustomDungeonAll), + "GMBPGLNGGLI_TryCustomDungeonOfficialPlay" => { + Some(Self::TryCustomDungeonOfficialPlay) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bieolmjpked { + MaterialDeleteReturnBag = 0, + MaterialDeleteReturnSeed = 1, +} +impl Bieolmjpked { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bieolmjpked::MaterialDeleteReturnBag => "BIEOLMJPKED_MaterialDeleteReturnBag", + Bieolmjpked::MaterialDeleteReturnSeed => { + "BIEOLMJPKED_MaterialDeleteReturnSeed" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BIEOLMJPKED_MaterialDeleteReturnBag" => Some(Self::MaterialDeleteReturnBag), + "BIEOLMJPKED_MaterialDeleteReturnSeed" => { + Some(Self::MaterialDeleteReturnSeed) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gepcikpiepn { + LunaRiteHintStatusDefault = 0, + LunaRiteHintStatusNoCount = 1, + LunaRiteHintStatusFinish = 2, +} +impl Gepcikpiepn { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gepcikpiepn::LunaRiteHintStatusDefault => { + "GEPCIKPIEPN_LunaRiteHintStatusDefault" + } + Gepcikpiepn::LunaRiteHintStatusNoCount => { + "GEPCIKPIEPN_LunaRiteHintStatusNoCount" + } + Gepcikpiepn::LunaRiteHintStatusFinish => { + "GEPCIKPIEPN_LunaRiteHintStatusFinish" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GEPCIKPIEPN_LunaRiteHintStatusDefault" => { + Some(Self::LunaRiteHintStatusDefault) + } + "GEPCIKPIEPN_LunaRiteHintStatusNoCount" => { + Some(Self::LunaRiteHintStatusNoCount) + } + "GEPCIKPIEPN_LunaRiteHintStatusFinish" => { + Some(Self::LunaRiteHintStatusFinish) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Blbmocglooj { + None = 0, + Succ = 1, + Fail = 2, + Timeout = 3, + Cancel = 4, + Exit = 5, +} +impl Blbmocglooj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Blbmocglooj::None => "BLBMOCGLOOJ_None", + Blbmocglooj::Succ => "BLBMOCGLOOJ_Succ", + Blbmocglooj::Fail => "BLBMOCGLOOJ_Fail", + Blbmocglooj::Timeout => "BLBMOCGLOOJ_Timeout", + Blbmocglooj::Cancel => "BLBMOCGLOOJ_Cancel", + Blbmocglooj::Exit => "BLBMOCGLOOJ_Exit", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BLBMOCGLOOJ_None" => Some(Self::None), + "BLBMOCGLOOJ_Succ" => Some(Self::Succ), + "BLBMOCGLOOJ_Fail" => Some(Self::Fail), + "BLBMOCGLOOJ_Timeout" => Some(Self::Timeout), + "BLBMOCGLOOJ_Cancel" => Some(Self::Cancel), + "BLBMOCGLOOJ_Exit" => Some(Self::Exit), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Fbmfhlckejl { + CustomGalleryScoreBoardNormal = 0, + CustomGalleryScoreBoardCountdown = 1, + CustomGalleryScoreBoardTimer = 2, +} +impl Fbmfhlckejl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Fbmfhlckejl::CustomGalleryScoreBoardNormal => { + "FBMFHLCKEJL_CustomGalleryScoreBoardNormal" + } + Fbmfhlckejl::CustomGalleryScoreBoardCountdown => { + "FBMFHLCKEJL_CustomGalleryScoreBoardCountdown" + } + Fbmfhlckejl::CustomGalleryScoreBoardTimer => { + "FBMFHLCKEJL_CustomGalleryScoreBoardTimer" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FBMFHLCKEJL_CustomGalleryScoreBoardNormal" => { + Some(Self::CustomGalleryScoreBoardNormal) + } + "FBMFHLCKEJL_CustomGalleryScoreBoardCountdown" => { + Some(Self::CustomGalleryScoreBoardCountdown) + } + "FBMFHLCKEJL_CustomGalleryScoreBoardTimer" => { + Some(Self::CustomGalleryScoreBoardTimer) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dabhikgpaie { + MovingPlatformNone = 0, + MovingPlatformUseConfig = 1, + MovingPlatformAbility = 2, + MovingPlatformRoute = 3, +} +impl Dabhikgpaie { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dabhikgpaie::MovingPlatformNone => "DABHIKGPAIE_MovingPlatformNone", + Dabhikgpaie::MovingPlatformUseConfig => "DABHIKGPAIE_MovingPlatformUseConfig", + Dabhikgpaie::MovingPlatformAbility => "DABHIKGPAIE_MovingPlatformAbility", + Dabhikgpaie::MovingPlatformRoute => "DABHIKGPAIE_MovingPlatformRoute", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DABHIKGPAIE_MovingPlatformNone" => Some(Self::MovingPlatformNone), + "DABHIKGPAIE_MovingPlatformUseConfig" => Some(Self::MovingPlatformUseConfig), + "DABHIKGPAIE_MovingPlatformAbility" => Some(Self::MovingPlatformAbility), + "DABHIKGPAIE_MovingPlatformRoute" => Some(Self::MovingPlatformRoute), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Alllninaoga { + BattlePassUnlockInvalid = 0, + BattlePassUnlockFree = 1, + BattlePassUnlockPaid = 2, +} +impl Alllninaoga { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Alllninaoga::BattlePassUnlockInvalid => "ALLLNINAOGA_BattlePassUnlockInvalid", + Alllninaoga::BattlePassUnlockFree => "ALLLNINAOGA_BattlePassUnlockFree", + Alllninaoga::BattlePassUnlockPaid => "ALLLNINAOGA_BattlePassUnlockPaid", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ALLLNINAOGA_BattlePassUnlockInvalid" => Some(Self::BattlePassUnlockInvalid), + "ALLLNINAOGA_BattlePassUnlockFree" => Some(Self::BattlePassUnlockFree), + "ALLLNINAOGA_BattlePassUnlockPaid" => Some(Self::BattlePassUnlockPaid), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mnpapanlkkg { + LogLevelNone = 0, + LogLevelDebug = 1, + LogLevelInfo = 2, + LogLevelWarning = 3, + LogLevelError = 4, +} +impl Mnpapanlkkg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mnpapanlkkg::LogLevelNone => "MNPAPANLKKG_LogLevelNone", + Mnpapanlkkg::LogLevelDebug => "MNPAPANLKKG_LogLevelDebug", + Mnpapanlkkg::LogLevelInfo => "MNPAPANLKKG_LogLevelInfo", + Mnpapanlkkg::LogLevelWarning => "MNPAPANLKKG_LogLevelWarning", + Mnpapanlkkg::LogLevelError => "MNPAPANLKKG_LogLevelError", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MNPAPANLKKG_LogLevelNone" => Some(Self::LogLevelNone), + "MNPAPANLKKG_LogLevelDebug" => Some(Self::LogLevelDebug), + "MNPAPANLKKG_LogLevelInfo" => Some(Self::LogLevelInfo), + "MNPAPANLKKG_LogLevelWarning" => Some(Self::LogLevelWarning), + "MNPAPANLKKG_LogLevelError" => Some(Self::LogLevelError), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Llmdbkhcleb { + Invalue = 0, + Add = 1, + Set = 2, +} +impl Llmdbkhcleb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Llmdbkhcleb::Invalue => "LLMDBKHCLEB_Invalue", + Llmdbkhcleb::Add => "LLMDBKHCLEB_Add", + Llmdbkhcleb::Set => "LLMDBKHCLEB_Set", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LLMDBKHCLEB_Invalue" => Some(Self::Invalue), + "LLMDBKHCLEB_Add" => Some(Self::Add), + "LLMDBKHCLEB_Set" => Some(Self::Set), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mdlnkdebfnj { + LuashellNone = 0, + LuashellNormal = 1, + LuashellSecurity = 2, + LuashellShellCode = 3, +} +impl Mdlnkdebfnj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mdlnkdebfnj::LuashellNone => "MDLNKDEBFNJ_LuashellNone", + Mdlnkdebfnj::LuashellNormal => "MDLNKDEBFNJ_LuashellNormal", + Mdlnkdebfnj::LuashellSecurity => "MDLNKDEBFNJ_LuashellSecurity", + Mdlnkdebfnj::LuashellShellCode => "MDLNKDEBFNJ_LuashellShellCode", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MDLNKDEBFNJ_LuashellNone" => Some(Self::LuashellNone), + "MDLNKDEBFNJ_LuashellNormal" => Some(Self::LuashellNormal), + "MDLNKDEBFNJ_LuashellSecurity" => Some(Self::LuashellSecurity), + "MDLNKDEBFNJ_LuashellShellCode" => Some(Self::LuashellShellCode), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gomepmglpfo { + GalleryNone = 0, + GalleryPrestart = 1, + GalleryStart = 2, +} +impl Gomepmglpfo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gomepmglpfo::GalleryNone => "GOMEPMGLPFO_GalleryNone", + Gomepmglpfo::GalleryPrestart => "GOMEPMGLPFO_GalleryPrestart", + Gomepmglpfo::GalleryStart => "GOMEPMGLPFO_GalleryStart", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GOMEPMGLPFO_GalleryNone" => Some(Self::GalleryNone), + "GOMEPMGLPFO_GalleryPrestart" => Some(Self::GalleryPrestart), + "GOMEPMGLPFO_GalleryStart" => Some(Self::GalleryStart), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Onfeibhljbp { + LunaRiteHintTypeNone = 0, + LunaRiteHintTypeRune = 1, + LunaRiteHintTypeChest = 2, +} +impl Onfeibhljbp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Onfeibhljbp::LunaRiteHintTypeNone => "ONFEIBHLJBP_LunaRiteHintTypeNone", + Onfeibhljbp::LunaRiteHintTypeRune => "ONFEIBHLJBP_LunaRiteHintTypeRune", + Onfeibhljbp::LunaRiteHintTypeChest => "ONFEIBHLJBP_LunaRiteHintTypeChest", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ONFEIBHLJBP_LunaRiteHintTypeNone" => Some(Self::LunaRiteHintTypeNone), + "ONFEIBHLJBP_LunaRiteHintTypeRune" => Some(Self::LunaRiteHintTypeRune), + "ONFEIBHLJBP_LunaRiteHintTypeChest" => Some(Self::LunaRiteHintTypeChest), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Lejcogafncb { + TimeOut = 0, + SettlePlayEnd = 1, + SettlePlayerQuit = 2, +} +impl Lejcogafncb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Lejcogafncb::TimeOut => "LEJCOGAFNCB_TimeOut", + Lejcogafncb::SettlePlayEnd => "LEJCOGAFNCB_SettlePlayEnd", + Lejcogafncb::SettlePlayerQuit => "LEJCOGAFNCB_SettlePlayerQuit", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LEJCOGAFNCB_TimeOut" => Some(Self::TimeOut), + "LEJCOGAFNCB_SettlePlayEnd" => Some(Self::SettlePlayEnd), + "LEJCOGAFNCB_SettlePlayerQuit" => Some(Self::SettlePlayerQuit), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hibhhjenmpp { + ClientPlayNoneType = 0, + ClientPlayFilmfestShootingType = 1, + ClientPlayCookGameType = 2, + ClientPlayLanV4PushBoxType = 3, + ClientPlayCatcafeLayoutType = 4, + ClientPlayCatcafeCatType = 5, + ClientPlayGreatFestivalV2SheetRestoreType = 6, + ClientPlayBirdBallType = 7, + ClientPlayFairyTalesFlyppyHatToyType = 8, +} +impl Hibhhjenmpp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hibhhjenmpp::ClientPlayNoneType => "HIBHHJENMPP_ClientPlayNoneType", + Hibhhjenmpp::ClientPlayFilmfestShootingType => { + "HIBHHJENMPP_ClientPlayFilmfestShootingType" + } + Hibhhjenmpp::ClientPlayCookGameType => "HIBHHJENMPP_ClientPlayCookGameType", + Hibhhjenmpp::ClientPlayLanV4PushBoxType => { + "HIBHHJENMPP_ClientPlayLanV4PushBoxType" + } + Hibhhjenmpp::ClientPlayCatcafeLayoutType => { + "HIBHHJENMPP_ClientPlayCatcafeLayoutType" + } + Hibhhjenmpp::ClientPlayCatcafeCatType => { + "HIBHHJENMPP_ClientPlayCatcafeCatType" + } + Hibhhjenmpp::ClientPlayGreatFestivalV2SheetRestoreType => { + "HIBHHJENMPP_ClientPlayGreatFestivalV2SheetRestoreType" + } + Hibhhjenmpp::ClientPlayBirdBallType => "HIBHHJENMPP_ClientPlayBirdBallType", + Hibhhjenmpp::ClientPlayFairyTalesFlyppyHatToyType => { + "HIBHHJENMPP_ClientPlayFairyTalesFlyppyHatToyType" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HIBHHJENMPP_ClientPlayNoneType" => Some(Self::ClientPlayNoneType), + "HIBHHJENMPP_ClientPlayFilmfestShootingType" => { + Some(Self::ClientPlayFilmfestShootingType) + } + "HIBHHJENMPP_ClientPlayCookGameType" => Some(Self::ClientPlayCookGameType), + "HIBHHJENMPP_ClientPlayLanV4PushBoxType" => { + Some(Self::ClientPlayLanV4PushBoxType) + } + "HIBHHJENMPP_ClientPlayCatcafeLayoutType" => { + Some(Self::ClientPlayCatcafeLayoutType) + } + "HIBHHJENMPP_ClientPlayCatcafeCatType" => { + Some(Self::ClientPlayCatcafeCatType) + } + "HIBHHJENMPP_ClientPlayGreatFestivalV2SheetRestoreType" => { + Some(Self::ClientPlayGreatFestivalV2SheetRestoreType) + } + "HIBHHJENMPP_ClientPlayBirdBallType" => Some(Self::ClientPlayBirdBallType), + "HIBHHJENMPP_ClientPlayFairyTalesFlyppyHatToyType" => { + Some(Self::ClientPlayFairyTalesFlyppyHatToyType) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Aiogioppmha { + None = 0, + Low = 1, + Mid = 2, + High = 3, +} +impl Aiogioppmha { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Aiogioppmha::None => "AIOGIOPPMHA_None", + Aiogioppmha::Low => "AIOGIOPPMHA_Low", + Aiogioppmha::Mid => "AIOGIOPPMHA_Mid", + Aiogioppmha::High => "AIOGIOPPMHA_High", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AIOGIOPPMHA_None" => Some(Self::None), + "AIOGIOPPMHA_Low" => Some(Self::Low), + "AIOGIOPPMHA_Mid" => Some(Self::Mid), + "AIOGIOPPMHA_High" => Some(Self::High), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum MonsterBornType { + MonsterBornNone = 0, + MonsterBornDefault = 1, + MonsterBornRandom = 2, +} +impl MonsterBornType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + MonsterBornType::MonsterBornNone => "MonsterBornType_MonsterBornNone", + MonsterBornType::MonsterBornDefault => "MonsterBornType_MonsterBornDefault", + MonsterBornType::MonsterBornRandom => "MonsterBornType_MonsterBornRandom", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MonsterBornType_MonsterBornNone" => Some(Self::MonsterBornNone), + "MonsterBornType_MonsterBornDefault" => Some(Self::MonsterBornDefault), + "MonsterBornType_MonsterBornRandom" => Some(Self::MonsterBornRandom), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Oeaoccjeope { + None = 0, + Dungeon = 1, + MpPlay = 2, + Mechanicus = 3, + General = 4, + Gcg = 5, +} +impl Oeaoccjeope { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Oeaoccjeope::None => "OEAOCCJEOPE_None", + Oeaoccjeope::Dungeon => "OEAOCCJEOPE_Dungeon", + Oeaoccjeope::MpPlay => "OEAOCCJEOPE_MpPlay", + Oeaoccjeope::Mechanicus => "OEAOCCJEOPE_Mechanicus", + Oeaoccjeope::General => "OEAOCCJEOPE_General", + Oeaoccjeope::Gcg => "OEAOCCJEOPE_Gcg", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "OEAOCCJEOPE_None" => Some(Self::None), + "OEAOCCJEOPE_Dungeon" => Some(Self::Dungeon), + "OEAOCCJEOPE_MpPlay" => Some(Self::MpPlay), + "OEAOCCJEOPE_Mechanicus" => Some(Self::Mechanicus), + "OEAOCCJEOPE_General" => Some(Self::General), + "OEAOCCJEOPE_Gcg" => Some(Self::Gcg), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hhgielikjhb { + OptionNone = 0, + OptionNormal = 1, + OptionFirstCanGo = 2, +} +impl Hhgielikjhb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hhgielikjhb::OptionNone => "HHGIELIKJHB_OptionNone", + Hhgielikjhb::OptionNormal => "HHGIELIKJHB_OptionNormal", + Hhgielikjhb::OptionFirstCanGo => "HHGIELIKJHB_OptionFirstCanGo", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HHGIELIKJHB_OptionNone" => Some(Self::OptionNone), + "HHGIELIKJHB_OptionNormal" => Some(Self::OptionNormal), + "HHGIELIKJHB_OptionFirstCanGo" => Some(Self::OptionFirstCanGo), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ognimielclp { + GetUgcNone = 0, + Mine = 1, + Publish = 2, +} +impl Ognimielclp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ognimielclp::GetUgcNone => "OGNIMIELCLP_GetUgcNone", + Ognimielclp::Mine => "OGNIMIELCLP_Mine", + Ognimielclp::Publish => "OGNIMIELCLP_Publish", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "OGNIMIELCLP_GetUgcNone" => Some(Self::GetUgcNone), + "OGNIMIELCLP_Mine" => Some(Self::Mine), + "OGNIMIELCLP_Publish" => Some(Self::Publish), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Himmemhogfb { + None = 0, + MusicGame = 1, +} +impl Himmemhogfb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Himmemhogfb::None => "HIMMEMHOGFB_None", + Himmemhogfb::MusicGame => "HIMMEMHOGFB_MusicGame", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HIMMEMHOGFB_None" => Some(Self::None), + "HIMMEMHOGFB_MusicGame" => Some(Self::MusicGame), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum WidgetSlotTag { + WidgetSlotQuickUse = 0, + WidgetSlotAttachAvatar = 1, +} +impl WidgetSlotTag { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + WidgetSlotTag::WidgetSlotQuickUse => "WidgetSlotTag_WidgetSlotQuickUse", + WidgetSlotTag::WidgetSlotAttachAvatar => { + "WidgetSlotTag_WidgetSlotAttachAvatar" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "WidgetSlotTag_WidgetSlotQuickUse" => Some(Self::WidgetSlotQuickUse), + "WidgetSlotTag_WidgetSlotAttachAvatar" => Some(Self::WidgetSlotAttachAvatar), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Edgibjbaong { + AddServerBuff = 0, + DelServerBuff = 1, +} +impl Edgibjbaong { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Edgibjbaong::AddServerBuff => "EDGIBJBAONG_AddServerBuff", + Edgibjbaong::DelServerBuff => "EDGIBJBAONG_DelServerBuff", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EDGIBJBAONG_AddServerBuff" => Some(Self::AddServerBuff), + "EDGIBJBAONG_DelServerBuff" => Some(Self::DelServerBuff), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Lfieakhooal { + Npc = 0, + Quest = 1, + Special = 2, + Mine = 3, + Collection = 4, + Monster = 5, + FishPool = 6, +} +impl Lfieakhooal { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Lfieakhooal::Npc => "LFIEAKHOOAL_Npc", + Lfieakhooal::Quest => "LFIEAKHOOAL_Quest", + Lfieakhooal::Special => "LFIEAKHOOAL_Special", + Lfieakhooal::Mine => "LFIEAKHOOAL_Mine", + Lfieakhooal::Collection => "LFIEAKHOOAL_Collection", + Lfieakhooal::Monster => "LFIEAKHOOAL_Monster", + Lfieakhooal::FishPool => "LFIEAKHOOAL_FishPool", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LFIEAKHOOAL_Npc" => Some(Self::Npc), + "LFIEAKHOOAL_Quest" => Some(Self::Quest), + "LFIEAKHOOAL_Special" => Some(Self::Special), + "LFIEAKHOOAL_Mine" => Some(Self::Mine), + "LFIEAKHOOAL_Collection" => Some(Self::Collection), + "LFIEAKHOOAL_Monster" => Some(Self::Monster), + "LFIEAKHOOAL_FishPool" => Some(Self::FishPool), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mfnchjapidh { + DealAddFriendReject = 0, + DealAddFriendAccept = 1, +} +impl Mfnchjapidh { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mfnchjapidh::DealAddFriendReject => "MFNCHJAPIDH_DealAddFriendReject", + Mfnchjapidh::DealAddFriendAccept => "MFNCHJAPIDH_DealAddFriendAccept", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MFNCHJAPIDH_DealAddFriendReject" => Some(Self::DealAddFriendReject), + "MFNCHJAPIDH_DealAddFriendAccept" => Some(Self::DealAddFriendAccept), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Paibiheifka { + PacmanDungeonStopNone = 0, + PacmanDungeonStopSuccess = 1, + PacmanDungeonStopTimeup = 2, + PacmanDungeonStopClientInterrupt = 3, + PacmanDungeonStopCancel = 4, + PacmanDungeonStopActivityClosed = 5, + PacmanDungeonStopFail = 6, +} +impl Paibiheifka { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Paibiheifka::PacmanDungeonStopNone => "PAIBIHEIFKA_PacmanDungeonStopNone", + Paibiheifka::PacmanDungeonStopSuccess => { + "PAIBIHEIFKA_PacmanDungeonStopSuccess" + } + Paibiheifka::PacmanDungeonStopTimeup => "PAIBIHEIFKA_PacmanDungeonStopTimeup", + Paibiheifka::PacmanDungeonStopClientInterrupt => { + "PAIBIHEIFKA_PacmanDungeonStopClientInterrupt" + } + Paibiheifka::PacmanDungeonStopCancel => "PAIBIHEIFKA_PacmanDungeonStopCancel", + Paibiheifka::PacmanDungeonStopActivityClosed => { + "PAIBIHEIFKA_PacmanDungeonStopActivityClosed" + } + Paibiheifka::PacmanDungeonStopFail => "PAIBIHEIFKA_PacmanDungeonStopFail", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PAIBIHEIFKA_PacmanDungeonStopNone" => Some(Self::PacmanDungeonStopNone), + "PAIBIHEIFKA_PacmanDungeonStopSuccess" => { + Some(Self::PacmanDungeonStopSuccess) + } + "PAIBIHEIFKA_PacmanDungeonStopTimeup" => Some(Self::PacmanDungeonStopTimeup), + "PAIBIHEIFKA_PacmanDungeonStopClientInterrupt" => { + Some(Self::PacmanDungeonStopClientInterrupt) + } + "PAIBIHEIFKA_PacmanDungeonStopCancel" => Some(Self::PacmanDungeonStopCancel), + "PAIBIHEIFKA_PacmanDungeonStopActivityClosed" => { + Some(Self::PacmanDungeonStopActivityClosed) + } + "PAIBIHEIFKA_PacmanDungeonStopFail" => Some(Self::PacmanDungeonStopFail), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Lokpoceadpe { + ClientReconnnectNone = 0, + ClientReconnnectQuitMp = 1, + ClientReconnnectSceneTimeCheckFail = 2, + ClientReconnnectEnterQuestFocus = 3, +} +impl Lokpoceadpe { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Lokpoceadpe::ClientReconnnectNone => "LOKPOCEADPE_ClientReconnnectNone", + Lokpoceadpe::ClientReconnnectQuitMp => "LOKPOCEADPE_ClientReconnnectQuitMp", + Lokpoceadpe::ClientReconnnectSceneTimeCheckFail => { + "LOKPOCEADPE_ClientReconnnectSceneTimeCheckFail" + } + Lokpoceadpe::ClientReconnnectEnterQuestFocus => { + "LOKPOCEADPE_ClientReconnnectEnterQuestFocus" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LOKPOCEADPE_ClientReconnnectNone" => Some(Self::ClientReconnnectNone), + "LOKPOCEADPE_ClientReconnnectQuitMp" => Some(Self::ClientReconnnectQuitMp), + "LOKPOCEADPE_ClientReconnnectSceneTimeCheckFail" => { + Some(Self::ClientReconnnectSceneTimeCheckFail) + } + "LOKPOCEADPE_ClientReconnnectEnterQuestFocus" => { + Some(Self::ClientReconnnectEnterQuestFocus) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dpnjdpjgdop { + InitFollowPos = 0, + SetFollowPos = 1, + SetAbsFollowPos = 2, +} +impl Dpnjdpjgdop { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dpnjdpjgdop::InitFollowPos => "DPNJDPJGDOP_InitFollowPos", + Dpnjdpjgdop::SetFollowPos => "DPNJDPJGDOP_SetFollowPos", + Dpnjdpjgdop::SetAbsFollowPos => "DPNJDPJGDOP_SetAbsFollowPos", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DPNJDPJGDOP_InitFollowPos" => Some(Self::InitFollowPos), + "DPNJDPJGDOP_SetFollowPos" => Some(Self::SetFollowPos), + "DPNJDPJGDOP_SetAbsFollowPos" => Some(Self::SetAbsFollowPos), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hocjffhhjne { + GadgetMarkUpdateOpNone = 0, + GadgetMarkUpdateOpAdd = 1, + GadgetMarkUpdateOpRemove = 2, +} +impl Hocjffhhjne { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hocjffhhjne::GadgetMarkUpdateOpNone => "HOCJFFHHJNE_GadgetMarkUpdateOpNone", + Hocjffhhjne::GadgetMarkUpdateOpAdd => "HOCJFFHHJNE_GadgetMarkUpdateOpAdd", + Hocjffhhjne::GadgetMarkUpdateOpRemove => { + "HOCJFFHHJNE_GadgetMarkUpdateOpRemove" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HOCJFFHHJNE_GadgetMarkUpdateOpNone" => Some(Self::GadgetMarkUpdateOpNone), + "HOCJFFHHJNE_GadgetMarkUpdateOpAdd" => Some(Self::GadgetMarkUpdateOpAdd), + "HOCJFFHHJNE_GadgetMarkUpdateOpRemove" => { + Some(Self::GadgetMarkUpdateOpRemove) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nmbjfbodlke { + None = 0, + Success = 1, + Failed = 2, + Draw = 3, +} +impl Nmbjfbodlke { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nmbjfbodlke::None => "NMBJFBODLKE_None", + Nmbjfbodlke::Success => "NMBJFBODLKE_Success", + Nmbjfbodlke::Failed => "NMBJFBODLKE_Failed", + Nmbjfbodlke::Draw => "NMBJFBODLKE_Draw", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NMBJFBODLKE_None" => Some(Self::None), + "NMBJFBODLKE_Success" => Some(Self::Success), + "NMBJFBODLKE_Failed" => Some(Self::Failed), + "NMBJFBODLKE_Draw" => Some(Self::Draw), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Momgbciboei { + None = 0, + Finish = 1, + PreStart = 2, + Start = 3, +} +impl Momgbciboei { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Momgbciboei::None => "MOMGBCIBOEI_None", + Momgbciboei::Finish => "MOMGBCIBOEI_Finish", + Momgbciboei::PreStart => "MOMGBCIBOEI_PreStart", + Momgbciboei::Start => "MOMGBCIBOEI_Start", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MOMGBCIBOEI_None" => Some(Self::None), + "MOMGBCIBOEI_Finish" => Some(Self::Finish), + "MOMGBCIBOEI_PreStart" => Some(Self::PreStart), + "MOMGBCIBOEI_Start" => Some(Self::Start), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Eegmnipnkmj { + Default = 0, + Effect = 1, + Cost = 2, + Gm = 3, + Attack = 4, + Reboot = 5, + PlayCard = 6, + QuicklyOnstage = 7, + RemoveAfterDie = 8, + Init = 9, + EffectDamage = 10, + EffectHeal = 11, + EffectRevive = 12, + InitOnstage = 13, + DieOnstage = 14, + SelectOnstage = 15, + CharacterDie = 16, + ReviveWhenDeath = 17, + TransferToOpponent = 18, + TransferDice = 19, + PlayCardBeingCounter = 20, + UseVehicleSkill = 21, +} +impl Eegmnipnkmj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Eegmnipnkmj::Default => "EEGMNIPNKMJ_Default", + Eegmnipnkmj::Effect => "EEGMNIPNKMJ_Effect", + Eegmnipnkmj::Cost => "EEGMNIPNKMJ_Cost", + Eegmnipnkmj::Gm => "EEGMNIPNKMJ_Gm", + Eegmnipnkmj::Attack => "EEGMNIPNKMJ_Attack", + Eegmnipnkmj::Reboot => "EEGMNIPNKMJ_Reboot", + Eegmnipnkmj::PlayCard => "EEGMNIPNKMJ_PlayCard", + Eegmnipnkmj::QuicklyOnstage => "EEGMNIPNKMJ_QuicklyOnstage", + Eegmnipnkmj::RemoveAfterDie => "EEGMNIPNKMJ_RemoveAfterDie", + Eegmnipnkmj::Init => "EEGMNIPNKMJ_Init", + Eegmnipnkmj::EffectDamage => "EEGMNIPNKMJ_EffectDamage", + Eegmnipnkmj::EffectHeal => "EEGMNIPNKMJ_EffectHeal", + Eegmnipnkmj::EffectRevive => "EEGMNIPNKMJ_EffectRevive", + Eegmnipnkmj::InitOnstage => "EEGMNIPNKMJ_InitOnstage", + Eegmnipnkmj::DieOnstage => "EEGMNIPNKMJ_DieOnstage", + Eegmnipnkmj::SelectOnstage => "EEGMNIPNKMJ_SelectOnstage", + Eegmnipnkmj::CharacterDie => "EEGMNIPNKMJ_CharacterDie", + Eegmnipnkmj::ReviveWhenDeath => "EEGMNIPNKMJ_ReviveWhenDeath", + Eegmnipnkmj::TransferToOpponent => "EEGMNIPNKMJ_TransferToOpponent", + Eegmnipnkmj::TransferDice => "EEGMNIPNKMJ_TransferDice", + Eegmnipnkmj::PlayCardBeingCounter => "EEGMNIPNKMJ_PlayCardBeingCounter", + Eegmnipnkmj::UseVehicleSkill => "EEGMNIPNKMJ_UseVehicleSkill", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EEGMNIPNKMJ_Default" => Some(Self::Default), + "EEGMNIPNKMJ_Effect" => Some(Self::Effect), + "EEGMNIPNKMJ_Cost" => Some(Self::Cost), + "EEGMNIPNKMJ_Gm" => Some(Self::Gm), + "EEGMNIPNKMJ_Attack" => Some(Self::Attack), + "EEGMNIPNKMJ_Reboot" => Some(Self::Reboot), + "EEGMNIPNKMJ_PlayCard" => Some(Self::PlayCard), + "EEGMNIPNKMJ_QuicklyOnstage" => Some(Self::QuicklyOnstage), + "EEGMNIPNKMJ_RemoveAfterDie" => Some(Self::RemoveAfterDie), + "EEGMNIPNKMJ_Init" => Some(Self::Init), + "EEGMNIPNKMJ_EffectDamage" => Some(Self::EffectDamage), + "EEGMNIPNKMJ_EffectHeal" => Some(Self::EffectHeal), + "EEGMNIPNKMJ_EffectRevive" => Some(Self::EffectRevive), + "EEGMNIPNKMJ_InitOnstage" => Some(Self::InitOnstage), + "EEGMNIPNKMJ_DieOnstage" => Some(Self::DieOnstage), + "EEGMNIPNKMJ_SelectOnstage" => Some(Self::SelectOnstage), + "EEGMNIPNKMJ_CharacterDie" => Some(Self::CharacterDie), + "EEGMNIPNKMJ_ReviveWhenDeath" => Some(Self::ReviveWhenDeath), + "EEGMNIPNKMJ_TransferToOpponent" => Some(Self::TransferToOpponent), + "EEGMNIPNKMJ_TransferDice" => Some(Self::TransferDice), + "EEGMNIPNKMJ_PlayCardBeingCounter" => Some(Self::PlayCardBeingCounter), + "EEGMNIPNKMJ_UseVehicleSkill" => Some(Self::UseVehicleSkill), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Kdjjjaogjfj { + Invalid = 0, + UnableToBegin = 1, + Begin = 2, + End = 3, +} +impl Kdjjjaogjfj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Kdjjjaogjfj::Invalid => "KDJJJAOGJFJ_Invalid", + Kdjjjaogjfj::UnableToBegin => "KDJJJAOGJFJ_UnableToBegin", + Kdjjjaogjfj::Begin => "KDJJJAOGJFJ_Begin", + Kdjjjaogjfj::End => "KDJJJAOGJFJ_End", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "KDJJJAOGJFJ_Invalid" => Some(Self::Invalid), + "KDJJJAOGJFJ_UnableToBegin" => Some(Self::UnableToBegin), + "KDJJJAOGJFJ_Begin" => Some(Self::Begin), + "KDJJJAOGJFJ_End" => Some(Self::End), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Popdhnkgoec { + Invalid = 0, + Unfinished = 1, + Finished = 2, + RewardTaken = 3, +} +impl Popdhnkgoec { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Popdhnkgoec::Invalid => "POPDHNKGOEC_Invalid", + Popdhnkgoec::Unfinished => "POPDHNKGOEC_Unfinished", + Popdhnkgoec::Finished => "POPDHNKGOEC_Finished", + Popdhnkgoec::RewardTaken => "POPDHNKGOEC_RewardTaken", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "POPDHNKGOEC_Invalid" => Some(Self::Invalid), + "POPDHNKGOEC_Unfinished" => Some(Self::Unfinished), + "POPDHNKGOEC_Finished" => Some(Self::Finished), + "POPDHNKGOEC_RewardTaken" => Some(Self::RewardTaken), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dbkkepahcpe { + None = 0, + Sail = 1, + Battle = 2, +} +impl Dbkkepahcpe { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dbkkepahcpe::None => "DBKKEPAHCPE_None", + Dbkkepahcpe::Sail => "DBKKEPAHCPE_Sail", + Dbkkepahcpe::Battle => "DBKKEPAHCPE_Battle", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DBKKEPAHCPE_None" => Some(Self::None), + "DBKKEPAHCPE_Sail" => Some(Self::Sail), + "DBKKEPAHCPE_Battle" => Some(Self::Battle), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ejpagmfnmfe { + TribalChapterNone = 0, + TribalChapterNotOpen = 1, + TribalChapterLock = 2, + TribalChapterUnlock = 3, + TribalChapterFinish = 4, +} +impl Ejpagmfnmfe { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ejpagmfnmfe::TribalChapterNone => "EJPAGMFNMFE_TribalChapterNone", + Ejpagmfnmfe::TribalChapterNotOpen => "EJPAGMFNMFE_TribalChapterNotOpen", + Ejpagmfnmfe::TribalChapterLock => "EJPAGMFNMFE_TribalChapterLock", + Ejpagmfnmfe::TribalChapterUnlock => "EJPAGMFNMFE_TribalChapterUnlock", + Ejpagmfnmfe::TribalChapterFinish => "EJPAGMFNMFE_TribalChapterFinish", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EJPAGMFNMFE_TribalChapterNone" => Some(Self::TribalChapterNone), + "EJPAGMFNMFE_TribalChapterNotOpen" => Some(Self::TribalChapterNotOpen), + "EJPAGMFNMFE_TribalChapterLock" => Some(Self::TribalChapterLock), + "EJPAGMFNMFE_TribalChapterUnlock" => Some(Self::TribalChapterUnlock), + "EJPAGMFNMFE_TribalChapterFinish" => Some(Self::TribalChapterFinish), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Aohjddpeicb { + CodexNone = 0, + CodexQuest = 1, + CodexWeapon = 2, + CodexAnimal = 3, + CodexMaterial = 4, + CodexBooks = 5, + CodexPushtips = 6, + CodexView = 7, + CodexReliquary = 8, +} +impl Aohjddpeicb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Aohjddpeicb::CodexNone => "AOHJDDPEICB_CodexNone", + Aohjddpeicb::CodexQuest => "AOHJDDPEICB_CodexQuest", + Aohjddpeicb::CodexWeapon => "AOHJDDPEICB_CodexWeapon", + Aohjddpeicb::CodexAnimal => "AOHJDDPEICB_CodexAnimal", + Aohjddpeicb::CodexMaterial => "AOHJDDPEICB_CodexMaterial", + Aohjddpeicb::CodexBooks => "AOHJDDPEICB_CodexBooks", + Aohjddpeicb::CodexPushtips => "AOHJDDPEICB_CodexPushtips", + Aohjddpeicb::CodexView => "AOHJDDPEICB_CodexView", + Aohjddpeicb::CodexReliquary => "AOHJDDPEICB_CodexReliquary", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AOHJDDPEICB_CodexNone" => Some(Self::CodexNone), + "AOHJDDPEICB_CodexQuest" => Some(Self::CodexQuest), + "AOHJDDPEICB_CodexWeapon" => Some(Self::CodexWeapon), + "AOHJDDPEICB_CodexAnimal" => Some(Self::CodexAnimal), + "AOHJDDPEICB_CodexMaterial" => Some(Self::CodexMaterial), + "AOHJDDPEICB_CodexBooks" => Some(Self::CodexBooks), + "AOHJDDPEICB_CodexPushtips" => Some(Self::CodexPushtips), + "AOHJDDPEICB_CodexView" => Some(Self::CodexView), + "AOHJDDPEICB_CodexReliquary" => Some(Self::CodexReliquary), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Obidodcpegg { + Add = 0, + Mod = 1, + Del = 2, + Get = 3, +} +impl Obidodcpegg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Obidodcpegg::Add => "OBIDODCPEGG_Add", + Obidodcpegg::Mod => "OBIDODCPEGG_Mod", + Obidodcpegg::Del => "OBIDODCPEGG_Del", + Obidodcpegg::Get => "OBIDODCPEGG_Get", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "OBIDODCPEGG_Add" => Some(Self::Add), + "OBIDODCPEGG_Mod" => Some(Self::Mod), + "OBIDODCPEGG_Del" => Some(Self::Del), + "OBIDODCPEGG_Get" => Some(Self::Get), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pcdgjmpgnha { + SandwormCannonNoneEffect = 0, + SandwormCannonWeakEffect = 1, + SandwormCannonStrongEffect = 2, +} +impl Pcdgjmpgnha { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pcdgjmpgnha::SandwormCannonNoneEffect => { + "PCDGJMPGNHA_SandwormCannonNoneEffect" + } + Pcdgjmpgnha::SandwormCannonWeakEffect => { + "PCDGJMPGNHA_SandwormCannonWeakEffect" + } + Pcdgjmpgnha::SandwormCannonStrongEffect => { + "PCDGJMPGNHA_SandwormCannonStrongEffect" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PCDGJMPGNHA_SandwormCannonNoneEffect" => { + Some(Self::SandwormCannonNoneEffect) + } + "PCDGJMPGNHA_SandwormCannonWeakEffect" => { + Some(Self::SandwormCannonWeakEffect) + } + "PCDGJMPGNHA_SandwormCannonStrongEffect" => { + Some(Self::SandwormCannonStrongEffect) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bdkppllibff { + Unlock = 0, + Lock = 1, + Taken = 2, +} +impl Bdkppllibff { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bdkppllibff::Unlock => "BDKPPLLIBFF_Unlock", + Bdkppllibff::Lock => "BDKPPLLIBFF_Lock", + Bdkppllibff::Taken => "BDKPPLLIBFF_Taken", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BDKPPLLIBFF_Unlock" => Some(Self::Unlock), + "BDKPPLLIBFF_Lock" => Some(Self::Lock), + "BDKPPLLIBFF_Taken" => Some(Self::Taken), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Icbodpognhd { + OptionNone = 0, + OptionNormal = 1, + OptionFirstCanGo = 2, +} +impl Icbodpognhd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Icbodpognhd::OptionNone => "ICBODPOGNHD_OptionNone", + Icbodpognhd::OptionNormal => "ICBODPOGNHD_OptionNormal", + Icbodpognhd::OptionFirstCanGo => "ICBODPOGNHD_OptionFirstCanGo", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ICBODPOGNHD_OptionNone" => Some(Self::OptionNone), + "ICBODPOGNHD_OptionNormal" => Some(Self::OptionNormal), + "ICBODPOGNHD_OptionFirstCanGo" => Some(Self::OptionFirstCanGo), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Lppfedcjjap { + Classic = 0, + Tendency = 1, + Adaptive = 2, + Inflection = 3, +} +impl Lppfedcjjap { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Lppfedcjjap::Classic => "LPPFEDCJJAP_Classic", + Lppfedcjjap::Tendency => "LPPFEDCJJAP_Tendency", + Lppfedcjjap::Adaptive => "LPPFEDCJJAP_Adaptive", + Lppfedcjjap::Inflection => "LPPFEDCJJAP_Inflection", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LPPFEDCJJAP_Classic" => Some(Self::Classic), + "LPPFEDCJJAP_Tendency" => Some(Self::Tendency), + "LPPFEDCJJAP_Adaptive" => Some(Self::Adaptive), + "LPPFEDCJJAP_Inflection" => Some(Self::Inflection), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Afbfhonpigc { + All = 0, + Air = 1, + Water = 2, +} +impl Afbfhonpigc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Afbfhonpigc::All => "AFBFHONPIGC_All", + Afbfhonpigc::Air => "AFBFHONPIGC_Air", + Afbfhonpigc::Water => "AFBFHONPIGC_Water", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AFBFHONPIGC_All" => Some(Self::All), + "AFBFHONPIGC_Air" => Some(Self::Air), + "AFBFHONPIGC_Water" => Some(Self::Water), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dfafgepbldo { + EditUgcDungeonEdit = 0, + EditUgcDungeonAudit = 1, + EditUgcDungeonPublished = 2, +} +impl Dfafgepbldo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dfafgepbldo::EditUgcDungeonEdit => "DFAFGEPBLDO_EditUgcDungeonEdit", + Dfafgepbldo::EditUgcDungeonAudit => "DFAFGEPBLDO_EditUgcDungeonAudit", + Dfafgepbldo::EditUgcDungeonPublished => "DFAFGEPBLDO_EditUgcDungeonPublished", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DFAFGEPBLDO_EditUgcDungeonEdit" => Some(Self::EditUgcDungeonEdit), + "DFAFGEPBLDO_EditUgcDungeonAudit" => Some(Self::EditUgcDungeonAudit), + "DFAFGEPBLDO_EditUgcDungeonPublished" => Some(Self::EditUgcDungeonPublished), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hnncclmhcla { + None = 0, + ESkillShared = 1, +} +impl Hnncclmhcla { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hnncclmhcla::None => "HNNCCLMHCLA_None", + Hnncclmhcla::ESkillShared => "HNNCCLMHCLA_ESkillShared", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HNNCCLMHCLA_None" => Some(Self::None), + "HNNCCLMHCLA_ESkillShared" => Some(Self::ESkillShared), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ibfpdnnekli { + SalesmanStatusNone = 0, + SalesmanStatusUnstarted = 1, + SalesmanStatusStarted = 2, + SalesmanStatusDelivered = 3, +} +impl Ibfpdnnekli { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ibfpdnnekli::SalesmanStatusNone => "IBFPDNNEKLI_SalesmanStatusNone", + Ibfpdnnekli::SalesmanStatusUnstarted => "IBFPDNNEKLI_SalesmanStatusUnstarted", + Ibfpdnnekli::SalesmanStatusStarted => "IBFPDNNEKLI_SalesmanStatusStarted", + Ibfpdnnekli::SalesmanStatusDelivered => "IBFPDNNEKLI_SalesmanStatusDelivered", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IBFPDNNEKLI_SalesmanStatusNone" => Some(Self::SalesmanStatusNone), + "IBFPDNNEKLI_SalesmanStatusUnstarted" => Some(Self::SalesmanStatusUnstarted), + "IBFPDNNEKLI_SalesmanStatusStarted" => Some(Self::SalesmanStatusStarted), + "IBFPDNNEKLI_SalesmanStatusDelivered" => Some(Self::SalesmanStatusDelivered), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Eclbipadhbl { + LuaOptionNone = 0, + LuaOptionPlayerInput = 1, +} +impl Eclbipadhbl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Eclbipadhbl::LuaOptionNone => "ECLBIPADHBL_LuaOptionNone", + Eclbipadhbl::LuaOptionPlayerInput => "ECLBIPADHBL_LuaOptionPlayerInput", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ECLBIPADHBL_LuaOptionNone" => Some(Self::LuaOptionNone), + "ECLBIPADHBL_LuaOptionPlayerInput" => Some(Self::LuaOptionPlayerInput), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Idgmphbjnim { + UgcRecParamTypeNone = 0, + UgcRecParamTypeMusicNoteLarge = 1, + UgcRecParamTypeMusicNoteLessEqual = 2, + UgcRecParamTypeMusicNoteTag = 3, + UgcRecParamTypeMusicName = 4, +} +impl Idgmphbjnim { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Idgmphbjnim::UgcRecParamTypeNone => "IDGMPHBJNIM_UgcRecParamTypeNone", + Idgmphbjnim::UgcRecParamTypeMusicNoteLarge => { + "IDGMPHBJNIM_UgcRecParamTypeMusicNoteLarge" + } + Idgmphbjnim::UgcRecParamTypeMusicNoteLessEqual => { + "IDGMPHBJNIM_UgcRecParamTypeMusicNoteLessEqual" + } + Idgmphbjnim::UgcRecParamTypeMusicNoteTag => { + "IDGMPHBJNIM_UgcRecParamTypeMusicNoteTag" + } + Idgmphbjnim::UgcRecParamTypeMusicName => { + "IDGMPHBJNIM_UgcRecParamTypeMusicName" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IDGMPHBJNIM_UgcRecParamTypeNone" => Some(Self::UgcRecParamTypeNone), + "IDGMPHBJNIM_UgcRecParamTypeMusicNoteLarge" => { + Some(Self::UgcRecParamTypeMusicNoteLarge) + } + "IDGMPHBJNIM_UgcRecParamTypeMusicNoteLessEqual" => { + Some(Self::UgcRecParamTypeMusicNoteLessEqual) + } + "IDGMPHBJNIM_UgcRecParamTypeMusicNoteTag" => { + Some(Self::UgcRecParamTypeMusicNoteTag) + } + "IDGMPHBJNIM_UgcRecParamTypeMusicName" => { + Some(Self::UgcRecParamTypeMusicName) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Npgmacjfbek { + None = 0, + ReachScore = 1, + TimeUp = 2, +} +impl Npgmacjfbek { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Npgmacjfbek::None => "NPGMACJFBEK_None", + Npgmacjfbek::ReachScore => "NPGMACJFBEK_ReachScore", + Npgmacjfbek::TimeUp => "NPGMACJFBEK_TimeUp", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NPGMACJFBEK_None" => Some(Self::None), + "NPGMACJFBEK_ReachScore" => Some(Self::ReachScore), + "NPGMACJFBEK_TimeUp" => Some(Self::TimeUp), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Lnemncjdlmm { + InBattleMechanicusCardChallengeNone = 0, + InBattleMechanicusCardChallengeOnGoing = 1, + InBattleMechanicusCardChallengeFail = 2, + InBattleMechanicusCardChallengeSuccess = 3, +} +impl Lnemncjdlmm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Lnemncjdlmm::InBattleMechanicusCardChallengeNone => { + "LNEMNCJDLMM_InBattleMechanicusCardChallengeNone" + } + Lnemncjdlmm::InBattleMechanicusCardChallengeOnGoing => { + "LNEMNCJDLMM_InBattleMechanicusCardChallengeOnGoing" + } + Lnemncjdlmm::InBattleMechanicusCardChallengeFail => { + "LNEMNCJDLMM_InBattleMechanicusCardChallengeFail" + } + Lnemncjdlmm::InBattleMechanicusCardChallengeSuccess => { + "LNEMNCJDLMM_InBattleMechanicusCardChallengeSuccess" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LNEMNCJDLMM_InBattleMechanicusCardChallengeNone" => { + Some(Self::InBattleMechanicusCardChallengeNone) + } + "LNEMNCJDLMM_InBattleMechanicusCardChallengeOnGoing" => { + Some(Self::InBattleMechanicusCardChallengeOnGoing) + } + "LNEMNCJDLMM_InBattleMechanicusCardChallengeFail" => { + Some(Self::InBattleMechanicusCardChallengeFail) + } + "LNEMNCJDLMM_InBattleMechanicusCardChallengeSuccess" => { + Some(Self::InBattleMechanicusCardChallengeSuccess) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jbacjjpknga { + Invalid = 0, + Enter = 1, + Leave = 2, +} +impl Jbacjjpknga { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jbacjjpknga::Invalid => "JBACJJPKNGA_Invalid", + Jbacjjpknga::Enter => "JBACJJPKNGA_Enter", + Jbacjjpknga::Leave => "JBACJJPKNGA_Leave", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JBACJJPKNGA_Invalid" => Some(Self::Invalid), + "JBACJJPKNGA_Enter" => Some(Self::Enter), + "JBACJJPKNGA_Leave" => Some(Self::Leave), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hjaaammhghn { + GcgIntentionChangeNone = 0, + GcgIntentionChangeRm = 1, +} +impl Hjaaammhghn { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hjaaammhghn::GcgIntentionChangeNone => "HJAAAMMHGHN_GcgIntentionChangeNone", + Hjaaammhghn::GcgIntentionChangeRm => "HJAAAMMHGHN_GcgIntentionChangeRm", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HJAAAMMHGHN_GcgIntentionChangeNone" => Some(Self::GcgIntentionChangeNone), + "HJAAAMMHGHN_GcgIntentionChangeRm" => Some(Self::GcgIntentionChangeRm), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mjihakkdbnn { + ChangeEnergyNone = 0, + ChangeEnergySkillStart = 1, + ChangeEnergyBall = 2, + ChangeEnergyQuest = 3, + ChangeEnergyAbility = 4, + ChangeEnergyDie = 5, + ChangeEnergySkillDepot = 6, +} +impl Mjihakkdbnn { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mjihakkdbnn::ChangeEnergyNone => "MJIHAKKDBNN_ChangeEnergyNone", + Mjihakkdbnn::ChangeEnergySkillStart => "MJIHAKKDBNN_ChangeEnergySkillStart", + Mjihakkdbnn::ChangeEnergyBall => "MJIHAKKDBNN_ChangeEnergyBall", + Mjihakkdbnn::ChangeEnergyQuest => "MJIHAKKDBNN_ChangeEnergyQuest", + Mjihakkdbnn::ChangeEnergyAbility => "MJIHAKKDBNN_ChangeEnergyAbility", + Mjihakkdbnn::ChangeEnergyDie => "MJIHAKKDBNN_ChangeEnergyDie", + Mjihakkdbnn::ChangeEnergySkillDepot => "MJIHAKKDBNN_ChangeEnergySkillDepot", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MJIHAKKDBNN_ChangeEnergyNone" => Some(Self::ChangeEnergyNone), + "MJIHAKKDBNN_ChangeEnergySkillStart" => Some(Self::ChangeEnergySkillStart), + "MJIHAKKDBNN_ChangeEnergyBall" => Some(Self::ChangeEnergyBall), + "MJIHAKKDBNN_ChangeEnergyQuest" => Some(Self::ChangeEnergyQuest), + "MJIHAKKDBNN_ChangeEnergyAbility" => Some(Self::ChangeEnergyAbility), + "MJIHAKKDBNN_ChangeEnergyDie" => Some(Self::ChangeEnergyDie), + "MJIHAKKDBNN_ChangeEnergySkillDepot" => Some(Self::ChangeEnergySkillDepot), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum VisionType { + VisionNone = 0, + VisionMeet = 1, + VisionReborn = 2, + VisionReplace = 3, + VisionWaypointReborn = 4, + VisionMiss = 5, + VisionDie = 6, + VisionGatherEscape = 7, + VisionRefresh = 8, + VisionTransport = 9, + VisionReplaceDie = 10, + VisionReplaceNoNotify = 11, + VisionBorn = 12, + VisionPickup = 13, + VisionRemove = 14, + VisionChangeCostume = 15, + VisionFishRefresh = 16, + VisionFishBigShock = 17, + VisionFishQteSucc = 18, + VisionCaptureDisappear = 19, +} +impl VisionType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + VisionType::VisionNone => "VisionType_VisionNone", + VisionType::VisionMeet => "VisionType_VisionMeet", + VisionType::VisionReborn => "VisionType_VisionReborn", + VisionType::VisionReplace => "VisionType_VisionReplace", + VisionType::VisionWaypointReborn => "VisionType_VisionWaypointReborn", + VisionType::VisionMiss => "VisionType_VisionMiss", + VisionType::VisionDie => "VisionType_VisionDie", + VisionType::VisionGatherEscape => "VisionType_VisionGatherEscape", + VisionType::VisionRefresh => "VisionType_VisionRefresh", + VisionType::VisionTransport => "VisionType_VisionTransport", + VisionType::VisionReplaceDie => "VisionType_VisionReplaceDie", + VisionType::VisionReplaceNoNotify => "VisionType_VisionReplaceNoNotify", + VisionType::VisionBorn => "VisionType_VisionBorn", + VisionType::VisionPickup => "VisionType_VisionPickup", + VisionType::VisionRemove => "VisionType_VisionRemove", + VisionType::VisionChangeCostume => "VisionType_VisionChangeCostume", + VisionType::VisionFishRefresh => "VisionType_VisionFishRefresh", + VisionType::VisionFishBigShock => "VisionType_VisionFishBigShock", + VisionType::VisionFishQteSucc => "VisionType_VisionFishQteSucc", + VisionType::VisionCaptureDisappear => "VisionType_VisionCaptureDisappear", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "VisionType_VisionNone" => Some(Self::VisionNone), + "VisionType_VisionMeet" => Some(Self::VisionMeet), + "VisionType_VisionReborn" => Some(Self::VisionReborn), + "VisionType_VisionReplace" => Some(Self::VisionReplace), + "VisionType_VisionWaypointReborn" => Some(Self::VisionWaypointReborn), + "VisionType_VisionMiss" => Some(Self::VisionMiss), + "VisionType_VisionDie" => Some(Self::VisionDie), + "VisionType_VisionGatherEscape" => Some(Self::VisionGatherEscape), + "VisionType_VisionRefresh" => Some(Self::VisionRefresh), + "VisionType_VisionTransport" => Some(Self::VisionTransport), + "VisionType_VisionReplaceDie" => Some(Self::VisionReplaceDie), + "VisionType_VisionReplaceNoNotify" => Some(Self::VisionReplaceNoNotify), + "VisionType_VisionBorn" => Some(Self::VisionBorn), + "VisionType_VisionPickup" => Some(Self::VisionPickup), + "VisionType_VisionRemove" => Some(Self::VisionRemove), + "VisionType_VisionChangeCostume" => Some(Self::VisionChangeCostume), + "VisionType_VisionFishRefresh" => Some(Self::VisionFishRefresh), + "VisionType_VisionFishBigShock" => Some(Self::VisionFishBigShock), + "VisionType_VisionFishQteSucc" => Some(Self::VisionFishQteSucc), + "VisionType_VisionCaptureDisappear" => Some(Self::VisionCaptureDisappear), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hbcjgnlbden { + GcgLevelNone = 0, + GcgLevelConst = 1, + GcgLevelWeek = 2, + GcgLevelWorld = 3, + GcgLevelBoss = 4, + GcgLevelCharacter = 5, + GcgLevelBreak = 6, + GcgLevelQuest = 7, + GcgLevelGuideGroup = 8, + GcgLevelOther = 9, + GcgLevelJourney = 10, + GcgLevelPve = 11, + GcgLevelPveInfinite = 12, + GcgLevelPvePuzzle = 13, +} +impl Hbcjgnlbden { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hbcjgnlbden::GcgLevelNone => "HBCJGNLBDEN_GcgLevelNone", + Hbcjgnlbden::GcgLevelConst => "HBCJGNLBDEN_GcgLevelConst", + Hbcjgnlbden::GcgLevelWeek => "HBCJGNLBDEN_GcgLevelWeek", + Hbcjgnlbden::GcgLevelWorld => "HBCJGNLBDEN_GcgLevelWorld", + Hbcjgnlbden::GcgLevelBoss => "HBCJGNLBDEN_GcgLevelBoss", + Hbcjgnlbden::GcgLevelCharacter => "HBCJGNLBDEN_GcgLevelCharacter", + Hbcjgnlbden::GcgLevelBreak => "HBCJGNLBDEN_GcgLevelBreak", + Hbcjgnlbden::GcgLevelQuest => "HBCJGNLBDEN_GcgLevelQuest", + Hbcjgnlbden::GcgLevelGuideGroup => "HBCJGNLBDEN_GcgLevelGuideGroup", + Hbcjgnlbden::GcgLevelOther => "HBCJGNLBDEN_GcgLevelOther", + Hbcjgnlbden::GcgLevelJourney => "HBCJGNLBDEN_GcgLevelJourney", + Hbcjgnlbden::GcgLevelPve => "HBCJGNLBDEN_GcgLevelPve", + Hbcjgnlbden::GcgLevelPveInfinite => "HBCJGNLBDEN_GcgLevelPveInfinite", + Hbcjgnlbden::GcgLevelPvePuzzle => "HBCJGNLBDEN_GcgLevelPvePuzzle", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HBCJGNLBDEN_GcgLevelNone" => Some(Self::GcgLevelNone), + "HBCJGNLBDEN_GcgLevelConst" => Some(Self::GcgLevelConst), + "HBCJGNLBDEN_GcgLevelWeek" => Some(Self::GcgLevelWeek), + "HBCJGNLBDEN_GcgLevelWorld" => Some(Self::GcgLevelWorld), + "HBCJGNLBDEN_GcgLevelBoss" => Some(Self::GcgLevelBoss), + "HBCJGNLBDEN_GcgLevelCharacter" => Some(Self::GcgLevelCharacter), + "HBCJGNLBDEN_GcgLevelBreak" => Some(Self::GcgLevelBreak), + "HBCJGNLBDEN_GcgLevelQuest" => Some(Self::GcgLevelQuest), + "HBCJGNLBDEN_GcgLevelGuideGroup" => Some(Self::GcgLevelGuideGroup), + "HBCJGNLBDEN_GcgLevelOther" => Some(Self::GcgLevelOther), + "HBCJGNLBDEN_GcgLevelJourney" => Some(Self::GcgLevelJourney), + "HBCJGNLBDEN_GcgLevelPve" => Some(Self::GcgLevelPve), + "HBCJGNLBDEN_GcgLevelPveInfinite" => Some(Self::GcgLevelPveInfinite), + "HBCJGNLBDEN_GcgLevelPvePuzzle" => Some(Self::GcgLevelPvePuzzle), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Haefglpepln { + MotionNone = 0, + MotionReset = 1, + MotionStandby = 2, + MotionStandbyMove = 3, + MotionWalk = 4, + MotionRun = 5, + MotionDash = 6, + MotionClimb = 7, + MotionClimbJump = 8, + MotionStandbyToClimb = 9, + MotionFight = 10, + MotionJump = 11, + MotionDrop = 12, + MotionFly = 13, + MotionSwimMove = 14, + MotionSwimIdle = 15, + MotionSwimDash = 16, + MotionSwimJump = 17, + MotionSlip = 18, + MotionGoUpstairs = 19, + MotionFallOnGround = 20, + MotionJumpUpWallForStandby = 21, + MotionJumpOffWall = 22, + MotionPoweredFly = 23, + MotionLadderIdle = 24, + MotionLadderMove = 25, + MotionLadderSlip = 26, + MotionStandbyToLadder = 27, + MotionLadderToStandby = 28, + MotionDangerStandby = 29, + MotionDangerStandbyMove = 30, + MotionDangerWalk = 31, + MotionDangerRun = 32, + MotionDangerDash = 33, + MotionCrouchIdle = 34, + MotionCrouchMove = 35, + MotionCrouchRoll = 36, + MotionNotify = 37, + MotionLandSpeed = 38, + MotionMoveFailAck = 39, + MotionWaterfall = 40, + MotionDashBeforeShake = 41, + MotionSitIdle = 42, + MotionForceSetPos = 43, + MotionQuestForceDrag = 44, + MotionFollowRoute = 45, + MotionSkiffBoarding = 46, + MotionSkiffNormal = 47, + MotionSkiffDash = 48, + MotionSkiffPoweredDash = 49, + MotionDestroyVehicle = 50, + MotionFlyIdle = 51, + MotionFlySlow = 52, + MotionFlyFast = 53, + MotionAimMove = 54, + MotionAirCompensation = 55, + MotionSorushNormal = 56, + MotionRollerCoaster = 57, + MotionDiveIdle = 58, + MotionDiveMove = 59, + MotionDiveDash = 60, + MotionDiveDolphine = 61, + MotionDebug = 62, + MotionOceanCurrent = 63, + MotionDiveSwimMove = 64, + MotionDiveSwimIdle = 65, + MotionDiveSwimDash = 66, + MotionArcLight = 67, + MotionArcLightSafe = 68, + MotionVehicleStandby = 69, + MotionVehicleRun = 70, + MotionVehicleDash = 71, + MotionVehicleClimb = 72, + MotionVehicleClimbJump = 73, + MotionVehicleStandbyToClimb = 74, + MotionVehicleFight = 75, + MotionVehicleJump = 76, + MotionVehicleDrop = 77, + MotionVehicleFly = 78, + MotionVehicleSwimMove = 79, + MotionVehicleSwimIdle = 80, + MotionVehicleSwimDash = 81, + MotionVehicleSlip = 82, + MotionVehicleGoUpstairs = 83, + MotionVehicleFallOnGround = 84, + MotionVehicleJumpOffWall = 85, + MotionVehiclePoweredFly = 86, + MotionVehicleDangerStandby = 87, + MotionVehicleDangerRun = 88, + MotionVehicleDangerDash = 89, + MotionVehicleNotify = 90, + MotionVehicleLandSpeed = 91, + MotionVehicleDashBeforeShake = 92, + MotionVehicleQuestForceDrag = 93, + MotionVehicleFollowRoute = 94, + MotionVehicleFlyIdle = 95, + MotionVehicleFlySlow = 96, + MotionVehicleFlyFast = 97, + MotionVehicleAirCompensation = 98, + MotionVehicleArcLight = 99, + MotionVehicleArcLightSafe = 100, + MotionVehicleDangerSwimMove = 101, + MotionVehicleDangerSwimIdle = 102, + MotionVehicleDangerSwimDash = 103, + MotionFollowCurveRoute = 104, + MotionVehicleFollowCurveRoute = 105, + MotionNatsaurusNormal = 106, + MotionNatsaurusEntering = 107, + MotionNum = 108, +} +impl Haefglpepln { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Haefglpepln::MotionNone => "HAEFGLPEPLN_MotionNone", + Haefglpepln::MotionReset => "HAEFGLPEPLN_MotionReset", + Haefglpepln::MotionStandby => "HAEFGLPEPLN_MotionStandby", + Haefglpepln::MotionStandbyMove => "HAEFGLPEPLN_MotionStandbyMove", + Haefglpepln::MotionWalk => "HAEFGLPEPLN_MotionWalk", + Haefglpepln::MotionRun => "HAEFGLPEPLN_MotionRun", + Haefglpepln::MotionDash => "HAEFGLPEPLN_MotionDash", + Haefglpepln::MotionClimb => "HAEFGLPEPLN_MotionClimb", + Haefglpepln::MotionClimbJump => "HAEFGLPEPLN_MotionClimbJump", + Haefglpepln::MotionStandbyToClimb => "HAEFGLPEPLN_MotionStandbyToClimb", + Haefglpepln::MotionFight => "HAEFGLPEPLN_MotionFight", + Haefglpepln::MotionJump => "HAEFGLPEPLN_MotionJump", + Haefglpepln::MotionDrop => "HAEFGLPEPLN_MotionDrop", + Haefglpepln::MotionFly => "HAEFGLPEPLN_MotionFly", + Haefglpepln::MotionSwimMove => "HAEFGLPEPLN_MotionSwimMove", + Haefglpepln::MotionSwimIdle => "HAEFGLPEPLN_MotionSwimIdle", + Haefglpepln::MotionSwimDash => "HAEFGLPEPLN_MotionSwimDash", + Haefglpepln::MotionSwimJump => "HAEFGLPEPLN_MotionSwimJump", + Haefglpepln::MotionSlip => "HAEFGLPEPLN_MotionSlip", + Haefglpepln::MotionGoUpstairs => "HAEFGLPEPLN_MotionGoUpstairs", + Haefglpepln::MotionFallOnGround => "HAEFGLPEPLN_MotionFallOnGround", + Haefglpepln::MotionJumpUpWallForStandby => { + "HAEFGLPEPLN_MotionJumpUpWallForStandby" + } + Haefglpepln::MotionJumpOffWall => "HAEFGLPEPLN_MotionJumpOffWall", + Haefglpepln::MotionPoweredFly => "HAEFGLPEPLN_MotionPoweredFly", + Haefglpepln::MotionLadderIdle => "HAEFGLPEPLN_MotionLadderIdle", + Haefglpepln::MotionLadderMove => "HAEFGLPEPLN_MotionLadderMove", + Haefglpepln::MotionLadderSlip => "HAEFGLPEPLN_MotionLadderSlip", + Haefglpepln::MotionStandbyToLadder => "HAEFGLPEPLN_MotionStandbyToLadder", + Haefglpepln::MotionLadderToStandby => "HAEFGLPEPLN_MotionLadderToStandby", + Haefglpepln::MotionDangerStandby => "HAEFGLPEPLN_MotionDangerStandby", + Haefglpepln::MotionDangerStandbyMove => "HAEFGLPEPLN_MotionDangerStandbyMove", + Haefglpepln::MotionDangerWalk => "HAEFGLPEPLN_MotionDangerWalk", + Haefglpepln::MotionDangerRun => "HAEFGLPEPLN_MotionDangerRun", + Haefglpepln::MotionDangerDash => "HAEFGLPEPLN_MotionDangerDash", + Haefglpepln::MotionCrouchIdle => "HAEFGLPEPLN_MotionCrouchIdle", + Haefglpepln::MotionCrouchMove => "HAEFGLPEPLN_MotionCrouchMove", + Haefglpepln::MotionCrouchRoll => "HAEFGLPEPLN_MotionCrouchRoll", + Haefglpepln::MotionNotify => "HAEFGLPEPLN_MotionNotify", + Haefglpepln::MotionLandSpeed => "HAEFGLPEPLN_MotionLandSpeed", + Haefglpepln::MotionMoveFailAck => "HAEFGLPEPLN_MotionMoveFailAck", + Haefglpepln::MotionWaterfall => "HAEFGLPEPLN_MotionWaterfall", + Haefglpepln::MotionDashBeforeShake => "HAEFGLPEPLN_MotionDashBeforeShake", + Haefglpepln::MotionSitIdle => "HAEFGLPEPLN_MotionSitIdle", + Haefglpepln::MotionForceSetPos => "HAEFGLPEPLN_MotionForceSetPos", + Haefglpepln::MotionQuestForceDrag => "HAEFGLPEPLN_MotionQuestForceDrag", + Haefglpepln::MotionFollowRoute => "HAEFGLPEPLN_MotionFollowRoute", + Haefglpepln::MotionSkiffBoarding => "HAEFGLPEPLN_MotionSkiffBoarding", + Haefglpepln::MotionSkiffNormal => "HAEFGLPEPLN_MotionSkiffNormal", + Haefglpepln::MotionSkiffDash => "HAEFGLPEPLN_MotionSkiffDash", + Haefglpepln::MotionSkiffPoweredDash => "HAEFGLPEPLN_MotionSkiffPoweredDash", + Haefglpepln::MotionDestroyVehicle => "HAEFGLPEPLN_MotionDestroyVehicle", + Haefglpepln::MotionFlyIdle => "HAEFGLPEPLN_MotionFlyIdle", + Haefglpepln::MotionFlySlow => "HAEFGLPEPLN_MotionFlySlow", + Haefglpepln::MotionFlyFast => "HAEFGLPEPLN_MotionFlyFast", + Haefglpepln::MotionAimMove => "HAEFGLPEPLN_MotionAimMove", + Haefglpepln::MotionAirCompensation => "HAEFGLPEPLN_MotionAirCompensation", + Haefglpepln::MotionSorushNormal => "HAEFGLPEPLN_MotionSorushNormal", + Haefglpepln::MotionRollerCoaster => "HAEFGLPEPLN_MotionRollerCoaster", + Haefglpepln::MotionDiveIdle => "HAEFGLPEPLN_MotionDiveIdle", + Haefglpepln::MotionDiveMove => "HAEFGLPEPLN_MotionDiveMove", + Haefglpepln::MotionDiveDash => "HAEFGLPEPLN_MotionDiveDash", + Haefglpepln::MotionDiveDolphine => "HAEFGLPEPLN_MotionDiveDolphine", + Haefglpepln::MotionDebug => "HAEFGLPEPLN_MotionDebug", + Haefglpepln::MotionOceanCurrent => "HAEFGLPEPLN_MotionOceanCurrent", + Haefglpepln::MotionDiveSwimMove => "HAEFGLPEPLN_MotionDiveSwimMove", + Haefglpepln::MotionDiveSwimIdle => "HAEFGLPEPLN_MotionDiveSwimIdle", + Haefglpepln::MotionDiveSwimDash => "HAEFGLPEPLN_MotionDiveSwimDash", + Haefglpepln::MotionArcLight => "HAEFGLPEPLN_MotionArcLight", + Haefglpepln::MotionArcLightSafe => "HAEFGLPEPLN_MotionArcLightSafe", + Haefglpepln::MotionVehicleStandby => "HAEFGLPEPLN_MotionVehicleStandby", + Haefglpepln::MotionVehicleRun => "HAEFGLPEPLN_MotionVehicleRun", + Haefglpepln::MotionVehicleDash => "HAEFGLPEPLN_MotionVehicleDash", + Haefglpepln::MotionVehicleClimb => "HAEFGLPEPLN_MotionVehicleClimb", + Haefglpepln::MotionVehicleClimbJump => "HAEFGLPEPLN_MotionVehicleClimbJump", + Haefglpepln::MotionVehicleStandbyToClimb => { + "HAEFGLPEPLN_MotionVehicleStandbyToClimb" + } + Haefglpepln::MotionVehicleFight => "HAEFGLPEPLN_MotionVehicleFight", + Haefglpepln::MotionVehicleJump => "HAEFGLPEPLN_MotionVehicleJump", + Haefglpepln::MotionVehicleDrop => "HAEFGLPEPLN_MotionVehicleDrop", + Haefglpepln::MotionVehicleFly => "HAEFGLPEPLN_MotionVehicleFly", + Haefglpepln::MotionVehicleSwimMove => "HAEFGLPEPLN_MotionVehicleSwimMove", + Haefglpepln::MotionVehicleSwimIdle => "HAEFGLPEPLN_MotionVehicleSwimIdle", + Haefglpepln::MotionVehicleSwimDash => "HAEFGLPEPLN_MotionVehicleSwimDash", + Haefglpepln::MotionVehicleSlip => "HAEFGLPEPLN_MotionVehicleSlip", + Haefglpepln::MotionVehicleGoUpstairs => "HAEFGLPEPLN_MotionVehicleGoUpstairs", + Haefglpepln::MotionVehicleFallOnGround => { + "HAEFGLPEPLN_MotionVehicleFallOnGround" + } + Haefglpepln::MotionVehicleJumpOffWall => { + "HAEFGLPEPLN_MotionVehicleJumpOffWall" + } + Haefglpepln::MotionVehiclePoweredFly => "HAEFGLPEPLN_MotionVehiclePoweredFly", + Haefglpepln::MotionVehicleDangerStandby => { + "HAEFGLPEPLN_MotionVehicleDangerStandby" + } + Haefglpepln::MotionVehicleDangerRun => "HAEFGLPEPLN_MotionVehicleDangerRun", + Haefglpepln::MotionVehicleDangerDash => "HAEFGLPEPLN_MotionVehicleDangerDash", + Haefglpepln::MotionVehicleNotify => "HAEFGLPEPLN_MotionVehicleNotify", + Haefglpepln::MotionVehicleLandSpeed => "HAEFGLPEPLN_MotionVehicleLandSpeed", + Haefglpepln::MotionVehicleDashBeforeShake => { + "HAEFGLPEPLN_MotionVehicleDashBeforeShake" + } + Haefglpepln::MotionVehicleQuestForceDrag => { + "HAEFGLPEPLN_MotionVehicleQuestForceDrag" + } + Haefglpepln::MotionVehicleFollowRoute => { + "HAEFGLPEPLN_MotionVehicleFollowRoute" + } + Haefglpepln::MotionVehicleFlyIdle => "HAEFGLPEPLN_MotionVehicleFlyIdle", + Haefglpepln::MotionVehicleFlySlow => "HAEFGLPEPLN_MotionVehicleFlySlow", + Haefglpepln::MotionVehicleFlyFast => "HAEFGLPEPLN_MotionVehicleFlyFast", + Haefglpepln::MotionVehicleAirCompensation => { + "HAEFGLPEPLN_MotionVehicleAirCompensation" + } + Haefglpepln::MotionVehicleArcLight => "HAEFGLPEPLN_MotionVehicleArcLight", + Haefglpepln::MotionVehicleArcLightSafe => { + "HAEFGLPEPLN_MotionVehicleArcLightSafe" + } + Haefglpepln::MotionVehicleDangerSwimMove => { + "HAEFGLPEPLN_MotionVehicleDangerSwimMove" + } + Haefglpepln::MotionVehicleDangerSwimIdle => { + "HAEFGLPEPLN_MotionVehicleDangerSwimIdle" + } + Haefglpepln::MotionVehicleDangerSwimDash => { + "HAEFGLPEPLN_MotionVehicleDangerSwimDash" + } + Haefglpepln::MotionFollowCurveRoute => "HAEFGLPEPLN_MotionFollowCurveRoute", + Haefglpepln::MotionVehicleFollowCurveRoute => { + "HAEFGLPEPLN_MotionVehicleFollowCurveRoute" + } + Haefglpepln::MotionNatsaurusNormal => "HAEFGLPEPLN_MotionNatsaurusNormal", + Haefglpepln::MotionNatsaurusEntering => "HAEFGLPEPLN_MotionNatsaurusEntering", + Haefglpepln::MotionNum => "HAEFGLPEPLN_MotionNum", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HAEFGLPEPLN_MotionNone" => Some(Self::MotionNone), + "HAEFGLPEPLN_MotionReset" => Some(Self::MotionReset), + "HAEFGLPEPLN_MotionStandby" => Some(Self::MotionStandby), + "HAEFGLPEPLN_MotionStandbyMove" => Some(Self::MotionStandbyMove), + "HAEFGLPEPLN_MotionWalk" => Some(Self::MotionWalk), + "HAEFGLPEPLN_MotionRun" => Some(Self::MotionRun), + "HAEFGLPEPLN_MotionDash" => Some(Self::MotionDash), + "HAEFGLPEPLN_MotionClimb" => Some(Self::MotionClimb), + "HAEFGLPEPLN_MotionClimbJump" => Some(Self::MotionClimbJump), + "HAEFGLPEPLN_MotionStandbyToClimb" => Some(Self::MotionStandbyToClimb), + "HAEFGLPEPLN_MotionFight" => Some(Self::MotionFight), + "HAEFGLPEPLN_MotionJump" => Some(Self::MotionJump), + "HAEFGLPEPLN_MotionDrop" => Some(Self::MotionDrop), + "HAEFGLPEPLN_MotionFly" => Some(Self::MotionFly), + "HAEFGLPEPLN_MotionSwimMove" => Some(Self::MotionSwimMove), + "HAEFGLPEPLN_MotionSwimIdle" => Some(Self::MotionSwimIdle), + "HAEFGLPEPLN_MotionSwimDash" => Some(Self::MotionSwimDash), + "HAEFGLPEPLN_MotionSwimJump" => Some(Self::MotionSwimJump), + "HAEFGLPEPLN_MotionSlip" => Some(Self::MotionSlip), + "HAEFGLPEPLN_MotionGoUpstairs" => Some(Self::MotionGoUpstairs), + "HAEFGLPEPLN_MotionFallOnGround" => Some(Self::MotionFallOnGround), + "HAEFGLPEPLN_MotionJumpUpWallForStandby" => { + Some(Self::MotionJumpUpWallForStandby) + } + "HAEFGLPEPLN_MotionJumpOffWall" => Some(Self::MotionJumpOffWall), + "HAEFGLPEPLN_MotionPoweredFly" => Some(Self::MotionPoweredFly), + "HAEFGLPEPLN_MotionLadderIdle" => Some(Self::MotionLadderIdle), + "HAEFGLPEPLN_MotionLadderMove" => Some(Self::MotionLadderMove), + "HAEFGLPEPLN_MotionLadderSlip" => Some(Self::MotionLadderSlip), + "HAEFGLPEPLN_MotionStandbyToLadder" => Some(Self::MotionStandbyToLadder), + "HAEFGLPEPLN_MotionLadderToStandby" => Some(Self::MotionLadderToStandby), + "HAEFGLPEPLN_MotionDangerStandby" => Some(Self::MotionDangerStandby), + "HAEFGLPEPLN_MotionDangerStandbyMove" => Some(Self::MotionDangerStandbyMove), + "HAEFGLPEPLN_MotionDangerWalk" => Some(Self::MotionDangerWalk), + "HAEFGLPEPLN_MotionDangerRun" => Some(Self::MotionDangerRun), + "HAEFGLPEPLN_MotionDangerDash" => Some(Self::MotionDangerDash), + "HAEFGLPEPLN_MotionCrouchIdle" => Some(Self::MotionCrouchIdle), + "HAEFGLPEPLN_MotionCrouchMove" => Some(Self::MotionCrouchMove), + "HAEFGLPEPLN_MotionCrouchRoll" => Some(Self::MotionCrouchRoll), + "HAEFGLPEPLN_MotionNotify" => Some(Self::MotionNotify), + "HAEFGLPEPLN_MotionLandSpeed" => Some(Self::MotionLandSpeed), + "HAEFGLPEPLN_MotionMoveFailAck" => Some(Self::MotionMoveFailAck), + "HAEFGLPEPLN_MotionWaterfall" => Some(Self::MotionWaterfall), + "HAEFGLPEPLN_MotionDashBeforeShake" => Some(Self::MotionDashBeforeShake), + "HAEFGLPEPLN_MotionSitIdle" => Some(Self::MotionSitIdle), + "HAEFGLPEPLN_MotionForceSetPos" => Some(Self::MotionForceSetPos), + "HAEFGLPEPLN_MotionQuestForceDrag" => Some(Self::MotionQuestForceDrag), + "HAEFGLPEPLN_MotionFollowRoute" => Some(Self::MotionFollowRoute), + "HAEFGLPEPLN_MotionSkiffBoarding" => Some(Self::MotionSkiffBoarding), + "HAEFGLPEPLN_MotionSkiffNormal" => Some(Self::MotionSkiffNormal), + "HAEFGLPEPLN_MotionSkiffDash" => Some(Self::MotionSkiffDash), + "HAEFGLPEPLN_MotionSkiffPoweredDash" => Some(Self::MotionSkiffPoweredDash), + "HAEFGLPEPLN_MotionDestroyVehicle" => Some(Self::MotionDestroyVehicle), + "HAEFGLPEPLN_MotionFlyIdle" => Some(Self::MotionFlyIdle), + "HAEFGLPEPLN_MotionFlySlow" => Some(Self::MotionFlySlow), + "HAEFGLPEPLN_MotionFlyFast" => Some(Self::MotionFlyFast), + "HAEFGLPEPLN_MotionAimMove" => Some(Self::MotionAimMove), + "HAEFGLPEPLN_MotionAirCompensation" => Some(Self::MotionAirCompensation), + "HAEFGLPEPLN_MotionSorushNormal" => Some(Self::MotionSorushNormal), + "HAEFGLPEPLN_MotionRollerCoaster" => Some(Self::MotionRollerCoaster), + "HAEFGLPEPLN_MotionDiveIdle" => Some(Self::MotionDiveIdle), + "HAEFGLPEPLN_MotionDiveMove" => Some(Self::MotionDiveMove), + "HAEFGLPEPLN_MotionDiveDash" => Some(Self::MotionDiveDash), + "HAEFGLPEPLN_MotionDiveDolphine" => Some(Self::MotionDiveDolphine), + "HAEFGLPEPLN_MotionDebug" => Some(Self::MotionDebug), + "HAEFGLPEPLN_MotionOceanCurrent" => Some(Self::MotionOceanCurrent), + "HAEFGLPEPLN_MotionDiveSwimMove" => Some(Self::MotionDiveSwimMove), + "HAEFGLPEPLN_MotionDiveSwimIdle" => Some(Self::MotionDiveSwimIdle), + "HAEFGLPEPLN_MotionDiveSwimDash" => Some(Self::MotionDiveSwimDash), + "HAEFGLPEPLN_MotionArcLight" => Some(Self::MotionArcLight), + "HAEFGLPEPLN_MotionArcLightSafe" => Some(Self::MotionArcLightSafe), + "HAEFGLPEPLN_MotionVehicleStandby" => Some(Self::MotionVehicleStandby), + "HAEFGLPEPLN_MotionVehicleRun" => Some(Self::MotionVehicleRun), + "HAEFGLPEPLN_MotionVehicleDash" => Some(Self::MotionVehicleDash), + "HAEFGLPEPLN_MotionVehicleClimb" => Some(Self::MotionVehicleClimb), + "HAEFGLPEPLN_MotionVehicleClimbJump" => Some(Self::MotionVehicleClimbJump), + "HAEFGLPEPLN_MotionVehicleStandbyToClimb" => { + Some(Self::MotionVehicleStandbyToClimb) + } + "HAEFGLPEPLN_MotionVehicleFight" => Some(Self::MotionVehicleFight), + "HAEFGLPEPLN_MotionVehicleJump" => Some(Self::MotionVehicleJump), + "HAEFGLPEPLN_MotionVehicleDrop" => Some(Self::MotionVehicleDrop), + "HAEFGLPEPLN_MotionVehicleFly" => Some(Self::MotionVehicleFly), + "HAEFGLPEPLN_MotionVehicleSwimMove" => Some(Self::MotionVehicleSwimMove), + "HAEFGLPEPLN_MotionVehicleSwimIdle" => Some(Self::MotionVehicleSwimIdle), + "HAEFGLPEPLN_MotionVehicleSwimDash" => Some(Self::MotionVehicleSwimDash), + "HAEFGLPEPLN_MotionVehicleSlip" => Some(Self::MotionVehicleSlip), + "HAEFGLPEPLN_MotionVehicleGoUpstairs" => Some(Self::MotionVehicleGoUpstairs), + "HAEFGLPEPLN_MotionVehicleFallOnGround" => { + Some(Self::MotionVehicleFallOnGround) + } + "HAEFGLPEPLN_MotionVehicleJumpOffWall" => { + Some(Self::MotionVehicleJumpOffWall) + } + "HAEFGLPEPLN_MotionVehiclePoweredFly" => Some(Self::MotionVehiclePoweredFly), + "HAEFGLPEPLN_MotionVehicleDangerStandby" => { + Some(Self::MotionVehicleDangerStandby) + } + "HAEFGLPEPLN_MotionVehicleDangerRun" => Some(Self::MotionVehicleDangerRun), + "HAEFGLPEPLN_MotionVehicleDangerDash" => Some(Self::MotionVehicleDangerDash), + "HAEFGLPEPLN_MotionVehicleNotify" => Some(Self::MotionVehicleNotify), + "HAEFGLPEPLN_MotionVehicleLandSpeed" => Some(Self::MotionVehicleLandSpeed), + "HAEFGLPEPLN_MotionVehicleDashBeforeShake" => { + Some(Self::MotionVehicleDashBeforeShake) + } + "HAEFGLPEPLN_MotionVehicleQuestForceDrag" => { + Some(Self::MotionVehicleQuestForceDrag) + } + "HAEFGLPEPLN_MotionVehicleFollowRoute" => { + Some(Self::MotionVehicleFollowRoute) + } + "HAEFGLPEPLN_MotionVehicleFlyIdle" => Some(Self::MotionVehicleFlyIdle), + "HAEFGLPEPLN_MotionVehicleFlySlow" => Some(Self::MotionVehicleFlySlow), + "HAEFGLPEPLN_MotionVehicleFlyFast" => Some(Self::MotionVehicleFlyFast), + "HAEFGLPEPLN_MotionVehicleAirCompensation" => { + Some(Self::MotionVehicleAirCompensation) + } + "HAEFGLPEPLN_MotionVehicleArcLight" => Some(Self::MotionVehicleArcLight), + "HAEFGLPEPLN_MotionVehicleArcLightSafe" => { + Some(Self::MotionVehicleArcLightSafe) + } + "HAEFGLPEPLN_MotionVehicleDangerSwimMove" => { + Some(Self::MotionVehicleDangerSwimMove) + } + "HAEFGLPEPLN_MotionVehicleDangerSwimIdle" => { + Some(Self::MotionVehicleDangerSwimIdle) + } + "HAEFGLPEPLN_MotionVehicleDangerSwimDash" => { + Some(Self::MotionVehicleDangerSwimDash) + } + "HAEFGLPEPLN_MotionFollowCurveRoute" => Some(Self::MotionFollowCurveRoute), + "HAEFGLPEPLN_MotionVehicleFollowCurveRoute" => { + Some(Self::MotionVehicleFollowCurveRoute) + } + "HAEFGLPEPLN_MotionNatsaurusNormal" => Some(Self::MotionNatsaurusNormal), + "HAEFGLPEPLN_MotionNatsaurusEntering" => Some(Self::MotionNatsaurusEntering), + "HAEFGLPEPLN_MotionNum" => Some(Self::MotionNum), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jagnmbobgnk { + TimeOut = 0, + SettlePlayEnd = 1, + SettlePlayerQuit = 2, + SettleLifeCount = 3, +} +impl Jagnmbobgnk { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jagnmbobgnk::TimeOut => "JAGNMBOBGNK_TimeOut", + Jagnmbobgnk::SettlePlayEnd => "JAGNMBOBGNK_SettlePlayEnd", + Jagnmbobgnk::SettlePlayerQuit => "JAGNMBOBGNK_SettlePlayerQuit", + Jagnmbobgnk::SettleLifeCount => "JAGNMBOBGNK_SettleLifeCount", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JAGNMBOBGNK_TimeOut" => Some(Self::TimeOut), + "JAGNMBOBGNK_SettlePlayEnd" => Some(Self::SettlePlayEnd), + "JAGNMBOBGNK_SettlePlayerQuit" => Some(Self::SettlePlayerQuit), + "JAGNMBOBGNK_SettleLifeCount" => Some(Self::SettleLifeCount), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jkejliipfkl { + FisnEscapeNone = 0, + FishEscapeShocked = 1, + FishEscapeUnhook = 2, +} +impl Jkejliipfkl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jkejliipfkl::FisnEscapeNone => "JKEJLIIPFKL_FisnEscapeNone", + Jkejliipfkl::FishEscapeShocked => "JKEJLIIPFKL_FishEscapeShocked", + Jkejliipfkl::FishEscapeUnhook => "JKEJLIIPFKL_FishEscapeUnhook", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JKEJLIIPFKL_FisnEscapeNone" => Some(Self::FisnEscapeNone), + "JKEJLIIPFKL_FishEscapeShocked" => Some(Self::FishEscapeShocked), + "JKEJLIIPFKL_FishEscapeUnhook" => Some(Self::FishEscapeUnhook), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Niemjjcedcf { + None = 0, + Collectable = 1, + Collected = 2, + Finished = 3, +} +impl Niemjjcedcf { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Niemjjcedcf::None => "NIEMJJCEDCF_None", + Niemjjcedcf::Collectable => "NIEMJJCEDCF_Collectable", + Niemjjcedcf::Collected => "NIEMJJCEDCF_Collected", + Niemjjcedcf::Finished => "NIEMJJCEDCF_Finished", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NIEMJJCEDCF_None" => Some(Self::None), + "NIEMJJCEDCF_Collectable" => Some(Self::Collectable), + "NIEMJJCEDCF_Collected" => Some(Self::Collected), + "NIEMJJCEDCF_Finished" => Some(Self::Finished), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cegmlmcfcpm { + Editor = 0, + Ios = 1, + Android = 2, + Pc = 3, + Ps4 = 4, + Server = 5, + CloudAndroid = 6, + CloudIos = 7, + Ps5 = 8, + CloudWeb = 9, + CloudTv = 10, + CloudMac = 11, + CloudPc = 12, + CloudThirdPartyMobile = 13, + CloudThirdPartyPc = 14, + CloudWebAndroid = 15, + CloudWebIos = 16, + CloudWebPc = 17, + CloudWebMac = 18, + CloudWebTouch = 19, + CloudWebKeyboard = 20, +} +impl Cegmlmcfcpm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cegmlmcfcpm::Editor => "CEGMLMCFCPM_Editor", + Cegmlmcfcpm::Ios => "CEGMLMCFCPM_Ios", + Cegmlmcfcpm::Android => "CEGMLMCFCPM_Android", + Cegmlmcfcpm::Pc => "CEGMLMCFCPM_Pc", + Cegmlmcfcpm::Ps4 => "CEGMLMCFCPM_Ps4", + Cegmlmcfcpm::Server => "CEGMLMCFCPM_Server", + Cegmlmcfcpm::CloudAndroid => "CEGMLMCFCPM_CloudAndroid", + Cegmlmcfcpm::CloudIos => "CEGMLMCFCPM_CloudIos", + Cegmlmcfcpm::Ps5 => "CEGMLMCFCPM_Ps5", + Cegmlmcfcpm::CloudWeb => "CEGMLMCFCPM_CloudWeb", + Cegmlmcfcpm::CloudTv => "CEGMLMCFCPM_CloudTv", + Cegmlmcfcpm::CloudMac => "CEGMLMCFCPM_CloudMac", + Cegmlmcfcpm::CloudPc => "CEGMLMCFCPM_CloudPc", + Cegmlmcfcpm::CloudThirdPartyMobile => "CEGMLMCFCPM_CloudThirdPartyMobile", + Cegmlmcfcpm::CloudThirdPartyPc => "CEGMLMCFCPM_CloudThirdPartyPc", + Cegmlmcfcpm::CloudWebAndroid => "CEGMLMCFCPM_CloudWebAndroid", + Cegmlmcfcpm::CloudWebIos => "CEGMLMCFCPM_CloudWebIos", + Cegmlmcfcpm::CloudWebPc => "CEGMLMCFCPM_CloudWebPc", + Cegmlmcfcpm::CloudWebMac => "CEGMLMCFCPM_CloudWebMac", + Cegmlmcfcpm::CloudWebTouch => "CEGMLMCFCPM_CloudWebTouch", + Cegmlmcfcpm::CloudWebKeyboard => "CEGMLMCFCPM_CloudWebKeyboard", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CEGMLMCFCPM_Editor" => Some(Self::Editor), + "CEGMLMCFCPM_Ios" => Some(Self::Ios), + "CEGMLMCFCPM_Android" => Some(Self::Android), + "CEGMLMCFCPM_Pc" => Some(Self::Pc), + "CEGMLMCFCPM_Ps4" => Some(Self::Ps4), + "CEGMLMCFCPM_Server" => Some(Self::Server), + "CEGMLMCFCPM_CloudAndroid" => Some(Self::CloudAndroid), + "CEGMLMCFCPM_CloudIos" => Some(Self::CloudIos), + "CEGMLMCFCPM_Ps5" => Some(Self::Ps5), + "CEGMLMCFCPM_CloudWeb" => Some(Self::CloudWeb), + "CEGMLMCFCPM_CloudTv" => Some(Self::CloudTv), + "CEGMLMCFCPM_CloudMac" => Some(Self::CloudMac), + "CEGMLMCFCPM_CloudPc" => Some(Self::CloudPc), + "CEGMLMCFCPM_CloudThirdPartyMobile" => Some(Self::CloudThirdPartyMobile), + "CEGMLMCFCPM_CloudThirdPartyPc" => Some(Self::CloudThirdPartyPc), + "CEGMLMCFCPM_CloudWebAndroid" => Some(Self::CloudWebAndroid), + "CEGMLMCFCPM_CloudWebIos" => Some(Self::CloudWebIos), + "CEGMLMCFCPM_CloudWebPc" => Some(Self::CloudWebPc), + "CEGMLMCFCPM_CloudWebMac" => Some(Self::CloudWebMac), + "CEGMLMCFCPM_CloudWebTouch" => Some(Self::CloudWebTouch), + "CEGMLMCFCPM_CloudWebKeyboard" => Some(Self::CloudWebKeyboard), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Djpkemoickc { + DungeonCandidateTpdrNormal = 0, + DungeonCandidateTpdrDie = 1, + DungeonCandidateTpdrDisconnect = 2, +} +impl Djpkemoickc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Djpkemoickc::DungeonCandidateTpdrNormal => { + "DJPKEMOICKC_DungeonCandidateTpdrNormal" + } + Djpkemoickc::DungeonCandidateTpdrDie => "DJPKEMOICKC_DungeonCandidateTpdrDie", + Djpkemoickc::DungeonCandidateTpdrDisconnect => { + "DJPKEMOICKC_DungeonCandidateTpdrDisconnect" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DJPKEMOICKC_DungeonCandidateTpdrNormal" => { + Some(Self::DungeonCandidateTpdrNormal) + } + "DJPKEMOICKC_DungeonCandidateTpdrDie" => Some(Self::DungeonCandidateTpdrDie), + "DJPKEMOICKC_DungeonCandidateTpdrDisconnect" => { + Some(Self::DungeonCandidateTpdrDisconnect) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Eaebejoppcg { + DungeonEntryReasonNone = 0, + DungeonEntryReasonLevel = 1, + DungeonEntryReasonQuest = 2, + DungeonEntryReasonMuliple = 3, +} +impl Eaebejoppcg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Eaebejoppcg::DungeonEntryReasonNone => "EAEBEJOPPCG_DungeonEntryReasonNone", + Eaebejoppcg::DungeonEntryReasonLevel => "EAEBEJOPPCG_DungeonEntryReasonLevel", + Eaebejoppcg::DungeonEntryReasonQuest => "EAEBEJOPPCG_DungeonEntryReasonQuest", + Eaebejoppcg::DungeonEntryReasonMuliple => { + "EAEBEJOPPCG_DungeonEntryReasonMuliple" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EAEBEJOPPCG_DungeonEntryReasonNone" => Some(Self::DungeonEntryReasonNone), + "EAEBEJOPPCG_DungeonEntryReasonLevel" => Some(Self::DungeonEntryReasonLevel), + "EAEBEJOPPCG_DungeonEntryReasonQuest" => Some(Self::DungeonEntryReasonQuest), + "EAEBEJOPPCG_DungeonEntryReasonMuliple" => { + Some(Self::DungeonEntryReasonMuliple) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hpichailnka { + Unstarted = 0, + Started = 1, + Finished = 2, +} +impl Hpichailnka { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hpichailnka::Unstarted => "HPICHAILNKA_Unstarted", + Hpichailnka::Started => "HPICHAILNKA_Started", + Hpichailnka::Finished => "HPICHAILNKA_Finished", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HPICHAILNKA_Unstarted" => Some(Self::Unstarted), + "HPICHAILNKA_Started" => Some(Self::Started), + "HPICHAILNKA_Finished" => Some(Self::Finished), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Lgcbogajdfb { + HomeFieldStatueNone = 0, + HomeFieldStatueSeed = 1, + HomeFieldStatueSprout = 2, + HomeFieldStatueGather = 3, +} +impl Lgcbogajdfb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Lgcbogajdfb::HomeFieldStatueNone => "LGCBOGAJDFB_HomeFieldStatueNone", + Lgcbogajdfb::HomeFieldStatueSeed => "LGCBOGAJDFB_HomeFieldStatueSeed", + Lgcbogajdfb::HomeFieldStatueSprout => "LGCBOGAJDFB_HomeFieldStatueSprout", + Lgcbogajdfb::HomeFieldStatueGather => "LGCBOGAJDFB_HomeFieldStatueGather", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LGCBOGAJDFB_HomeFieldStatueNone" => Some(Self::HomeFieldStatueNone), + "LGCBOGAJDFB_HomeFieldStatueSeed" => Some(Self::HomeFieldStatueSeed), + "LGCBOGAJDFB_HomeFieldStatueSprout" => Some(Self::HomeFieldStatueSprout), + "LGCBOGAJDFB_HomeFieldStatueGather" => Some(Self::HomeFieldStatueGather), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nhchbagcjjg { + LockNone = 0, + LockQuest = 1, +} +impl Nhchbagcjjg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nhchbagcjjg::LockNone => "NHCHBAGCJJG_LockNone", + Nhchbagcjjg::LockQuest => "NHCHBAGCJJG_LockQuest", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NHCHBAGCJJG_LockNone" => Some(Self::LockNone), + "NHCHBAGCJJG_LockQuest" => Some(Self::LockQuest), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hjbckhabdkl { + Null = 0, + Active = 1, + Passive = 2, +} +impl Hjbckhabdkl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hjbckhabdkl::Null => "HJBCKHABDKL_Null", + Hjbckhabdkl::Active => "HJBCKHABDKL_Active", + Hjbckhabdkl::Passive => "HJBCKHABDKL_Passive", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HJBCKHABDKL_Null" => Some(Self::Null), + "HJBCKHABDKL_Active" => Some(Self::Active), + "HJBCKHABDKL_Passive" => Some(Self::Passive), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Kmbffanhlbc { + None = 0, + Enter = 1, + Leave = 2, +} +impl Kmbffanhlbc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Kmbffanhlbc::None => "KMBFFANHLBC_None", + Kmbffanhlbc::Enter => "KMBFFANHLBC_Enter", + Kmbffanhlbc::Leave => "KMBFFANHLBC_Leave", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "KMBFFANHLBC_None" => Some(Self::None), + "KMBFFANHLBC_Enter" => Some(Self::Enter), + "KMBFFANHLBC_Leave" => Some(Self::Leave), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Aefkhogcdoe { + None = 0, + Normal = 1, + Condense = 2, + ReunionPrivilege = 3, + OpActivity = 4, + Material = 5, +} +impl Aefkhogcdoe { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Aefkhogcdoe::None => "AEFKHOGCDOE_None", + Aefkhogcdoe::Normal => "AEFKHOGCDOE_Normal", + Aefkhogcdoe::Condense => "AEFKHOGCDOE_Condense", + Aefkhogcdoe::ReunionPrivilege => "AEFKHOGCDOE_ReunionPrivilege", + Aefkhogcdoe::OpActivity => "AEFKHOGCDOE_OpActivity", + Aefkhogcdoe::Material => "AEFKHOGCDOE_Material", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AEFKHOGCDOE_None" => Some(Self::None), + "AEFKHOGCDOE_Normal" => Some(Self::Normal), + "AEFKHOGCDOE_Condense" => Some(Self::Condense), + "AEFKHOGCDOE_ReunionPrivilege" => Some(Self::ReunionPrivilege), + "AEFKHOGCDOE_OpActivity" => Some(Self::OpActivity), + "AEFKHOGCDOE_Material" => Some(Self::Material), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Igohjibcdfa { + ForwardLocal = 0, + ForwardToAll = 1, + ForwardToAllExceptCur = 2, + ForwardToHost = 3, + ForwardToAllGuest = 4, + ForwardToPeer = 5, + ForwardToPeers = 6, + ForwardOnlyServer = 7, + ForwardToAllExistExceptCur = 8, +} +impl Igohjibcdfa { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Igohjibcdfa::ForwardLocal => "IGOHJIBCDFA_ForwardLocal", + Igohjibcdfa::ForwardToAll => "IGOHJIBCDFA_ForwardToAll", + Igohjibcdfa::ForwardToAllExceptCur => "IGOHJIBCDFA_ForwardToAllExceptCur", + Igohjibcdfa::ForwardToHost => "IGOHJIBCDFA_ForwardToHost", + Igohjibcdfa::ForwardToAllGuest => "IGOHJIBCDFA_ForwardToAllGuest", + Igohjibcdfa::ForwardToPeer => "IGOHJIBCDFA_ForwardToPeer", + Igohjibcdfa::ForwardToPeers => "IGOHJIBCDFA_ForwardToPeers", + Igohjibcdfa::ForwardOnlyServer => "IGOHJIBCDFA_ForwardOnlyServer", + Igohjibcdfa::ForwardToAllExistExceptCur => { + "IGOHJIBCDFA_ForwardToAllExistExceptCur" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IGOHJIBCDFA_ForwardLocal" => Some(Self::ForwardLocal), + "IGOHJIBCDFA_ForwardToAll" => Some(Self::ForwardToAll), + "IGOHJIBCDFA_ForwardToAllExceptCur" => Some(Self::ForwardToAllExceptCur), + "IGOHJIBCDFA_ForwardToHost" => Some(Self::ForwardToHost), + "IGOHJIBCDFA_ForwardToAllGuest" => Some(Self::ForwardToAllGuest), + "IGOHJIBCDFA_ForwardToPeer" => Some(Self::ForwardToPeer), + "IGOHJIBCDFA_ForwardToPeers" => Some(Self::ForwardToPeers), + "IGOHJIBCDFA_ForwardOnlyServer" => Some(Self::ForwardOnlyServer), + "IGOHJIBCDFA_ForwardToAllExistExceptCur" => { + Some(Self::ForwardToAllExistExceptCur) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Aagpkjdpblk { + ReunionReportTypeNone = 0, + ReunionReportTypeStart = 1, + ReunionReportTypeDouble = 2, +} +impl Aagpkjdpblk { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Aagpkjdpblk::ReunionReportTypeNone => "AAGPKJDPBLK_ReunionReportTypeNone", + Aagpkjdpblk::ReunionReportTypeStart => "AAGPKJDPBLK_ReunionReportTypeStart", + Aagpkjdpblk::ReunionReportTypeDouble => "AAGPKJDPBLK_ReunionReportTypeDouble", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AAGPKJDPBLK_ReunionReportTypeNone" => Some(Self::ReunionReportTypeNone), + "AAGPKJDPBLK_ReunionReportTypeStart" => Some(Self::ReunionReportTypeStart), + "AAGPKJDPBLK_ReunionReportTypeDouble" => Some(Self::ReunionReportTypeDouble), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Paahdfjmicd { + GalleryStopNone = 0, + GalleryStopTimeup = 1, + GalleryStopClientInterrupt = 2, + GalleryStopLuaInterruptSuccess = 3, + GalleryStopLuaInterruptFail = 4, + GalleryStopOwnerLeaveScene = 5, + GalleryStopPlayInitFailed = 6, + GalleryStopOtherPlayerEnter = 7, + GalleryStopAvatarDie = 8, + GalleryStopFinished = 9, + GalleryStopFungusAllDie = 10, + GalleryStopLifeCountZero = 11, + GalleryStopActivityClosed = 12, + GalleryStopLeaveRegionFail = 13, + GalleryStopHeartBloodUsedOut = 14, + GalleryStopGuardianStoneDie = 15, +} +impl Paahdfjmicd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Paahdfjmicd::GalleryStopNone => "PAAHDFJMICD_GalleryStopNone", + Paahdfjmicd::GalleryStopTimeup => "PAAHDFJMICD_GalleryStopTimeup", + Paahdfjmicd::GalleryStopClientInterrupt => { + "PAAHDFJMICD_GalleryStopClientInterrupt" + } + Paahdfjmicd::GalleryStopLuaInterruptSuccess => { + "PAAHDFJMICD_GalleryStopLuaInterruptSuccess" + } + Paahdfjmicd::GalleryStopLuaInterruptFail => { + "PAAHDFJMICD_GalleryStopLuaInterruptFail" + } + Paahdfjmicd::GalleryStopOwnerLeaveScene => { + "PAAHDFJMICD_GalleryStopOwnerLeaveScene" + } + Paahdfjmicd::GalleryStopPlayInitFailed => { + "PAAHDFJMICD_GalleryStopPlayInitFailed" + } + Paahdfjmicd::GalleryStopOtherPlayerEnter => { + "PAAHDFJMICD_GalleryStopOtherPlayerEnter" + } + Paahdfjmicd::GalleryStopAvatarDie => "PAAHDFJMICD_GalleryStopAvatarDie", + Paahdfjmicd::GalleryStopFinished => "PAAHDFJMICD_GalleryStopFinished", + Paahdfjmicd::GalleryStopFungusAllDie => "PAAHDFJMICD_GalleryStopFungusAllDie", + Paahdfjmicd::GalleryStopLifeCountZero => { + "PAAHDFJMICD_GalleryStopLifeCountZero" + } + Paahdfjmicd::GalleryStopActivityClosed => { + "PAAHDFJMICD_GalleryStopActivityClosed" + } + Paahdfjmicd::GalleryStopLeaveRegionFail => { + "PAAHDFJMICD_GalleryStopLeaveRegionFail" + } + Paahdfjmicd::GalleryStopHeartBloodUsedOut => { + "PAAHDFJMICD_GalleryStopHeartBloodUsedOut" + } + Paahdfjmicd::GalleryStopGuardianStoneDie => { + "PAAHDFJMICD_GalleryStopGuardianStoneDie" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PAAHDFJMICD_GalleryStopNone" => Some(Self::GalleryStopNone), + "PAAHDFJMICD_GalleryStopTimeup" => Some(Self::GalleryStopTimeup), + "PAAHDFJMICD_GalleryStopClientInterrupt" => { + Some(Self::GalleryStopClientInterrupt) + } + "PAAHDFJMICD_GalleryStopLuaInterruptSuccess" => { + Some(Self::GalleryStopLuaInterruptSuccess) + } + "PAAHDFJMICD_GalleryStopLuaInterruptFail" => { + Some(Self::GalleryStopLuaInterruptFail) + } + "PAAHDFJMICD_GalleryStopOwnerLeaveScene" => { + Some(Self::GalleryStopOwnerLeaveScene) + } + "PAAHDFJMICD_GalleryStopPlayInitFailed" => { + Some(Self::GalleryStopPlayInitFailed) + } + "PAAHDFJMICD_GalleryStopOtherPlayerEnter" => { + Some(Self::GalleryStopOtherPlayerEnter) + } + "PAAHDFJMICD_GalleryStopAvatarDie" => Some(Self::GalleryStopAvatarDie), + "PAAHDFJMICD_GalleryStopFinished" => Some(Self::GalleryStopFinished), + "PAAHDFJMICD_GalleryStopFungusAllDie" => Some(Self::GalleryStopFungusAllDie), + "PAAHDFJMICD_GalleryStopLifeCountZero" => { + Some(Self::GalleryStopLifeCountZero) + } + "PAAHDFJMICD_GalleryStopActivityClosed" => { + Some(Self::GalleryStopActivityClosed) + } + "PAAHDFJMICD_GalleryStopLeaveRegionFail" => { + Some(Self::GalleryStopLeaveRegionFail) + } + "PAAHDFJMICD_GalleryStopHeartBloodUsedOut" => { + Some(Self::GalleryStopHeartBloodUsedOut) + } + "PAAHDFJMICD_GalleryStopGuardianStoneDie" => { + Some(Self::GalleryStopGuardianStoneDie) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ppllgnghlmb { + CreateNone = 0, + CreateQuest = 1, + CreateEnergy = 2, +} +impl Ppllgnghlmb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ppllgnghlmb::CreateNone => "PPLLGNGHLMB_CreateNone", + Ppllgnghlmb::CreateQuest => "PPLLGNGHLMB_CreateQuest", + Ppllgnghlmb::CreateEnergy => "PPLLGNGHLMB_CreateEnergy", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PPLLGNGHLMB_CreateNone" => Some(Self::CreateNone), + "PPLLGNGHLMB_CreateQuest" => Some(Self::CreateQuest), + "PPLLGNGHLMB_CreateEnergy" => Some(Self::CreateEnergy), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Fjklgegnmpb { + ClientInputNone = 0, + ClientInputKeybordMouse = 1, + ClientInputGamepad = 2, + ClientInputTouchPanel = 3, +} +impl Fjklgegnmpb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Fjklgegnmpb::ClientInputNone => "FJKLGEGNMPB_ClientInputNone", + Fjklgegnmpb::ClientInputKeybordMouse => "FJKLGEGNMPB_ClientInputKeybordMouse", + Fjklgegnmpb::ClientInputGamepad => "FJKLGEGNMPB_ClientInputGamepad", + Fjklgegnmpb::ClientInputTouchPanel => "FJKLGEGNMPB_ClientInputTouchPanel", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FJKLGEGNMPB_ClientInputNone" => Some(Self::ClientInputNone), + "FJKLGEGNMPB_ClientInputKeybordMouse" => Some(Self::ClientInputKeybordMouse), + "FJKLGEGNMPB_ClientInputGamepad" => Some(Self::ClientInputGamepad), + "FJKLGEGNMPB_ClientInputTouchPanel" => Some(Self::ClientInputTouchPanel), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ckbnedpjfdo { + Invalid = 0, + Start = 1, + Timeout = 2, +} +impl Ckbnedpjfdo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ckbnedpjfdo::Invalid => "CKBNEDPJFDO_Invalid", + Ckbnedpjfdo::Start => "CKBNEDPJFDO_Start", + Ckbnedpjfdo::Timeout => "CKBNEDPJFDO_Timeout", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CKBNEDPJFDO_Invalid" => Some(Self::Invalid), + "CKBNEDPJFDO_Start" => Some(Self::Start), + "CKBNEDPJFDO_Timeout" => Some(Self::Timeout), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gacainioald { + None = 0, + Started = 1, + Unstarted = 2, + Succ = 3, +} +impl Gacainioald { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gacainioald::None => "GACAINIOALD_None", + Gacainioald::Started => "GACAINIOALD_Started", + Gacainioald::Unstarted => "GACAINIOALD_Unstarted", + Gacainioald::Succ => "GACAINIOALD_Succ", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GACAINIOALD_None" => Some(Self::None), + "GACAINIOALD_Started" => Some(Self::Started), + "GACAINIOALD_Unstarted" => Some(Self::Unstarted), + "GACAINIOALD_Succ" => Some(Self::Succ), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cfedgdkjhmo { + None = 0, + InBag = 1, + CanForge = 2, +} +impl Cfedgdkjhmo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cfedgdkjhmo::None => "CFEDGDKJHMO_None", + Cfedgdkjhmo::InBag => "CFEDGDKJHMO_InBag", + Cfedgdkjhmo::CanForge => "CFEDGDKJHMO_CanForge", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CFEDGDKJHMO_None" => Some(Self::None), + "CFEDGDKJHMO_InBag" => Some(Self::InBag), + "CFEDGDKJHMO_CanForge" => Some(Self::CanForge), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Oijbbocgigb { + None = 0, + Send = 1, + Accept = 2, + Refuse = 3, +} +impl Oijbbocgigb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Oijbbocgigb::None => "OIJBBOCGIGB_None", + Oijbbocgigb::Send => "OIJBBOCGIGB_Send", + Oijbbocgigb::Accept => "OIJBBOCGIGB_Accept", + Oijbbocgigb::Refuse => "OIJBBOCGIGB_Refuse", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "OIJBBOCGIGB_None" => Some(Self::None), + "OIJBBOCGIGB_Send" => Some(Self::Send), + "OIJBBOCGIGB_Accept" => Some(Self::Accept), + "OIJBBOCGIGB_Refuse" => Some(Self::Refuse), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bkhklfcblfj { + Invalid = 0, + Running = 1, + Finished = 2, +} +impl Bkhklfcblfj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bkhklfcblfj::Invalid => "BKHKLFCBLFJ_Invalid", + Bkhklfcblfj::Running => "BKHKLFCBLFJ_Running", + Bkhklfcblfj::Finished => "BKHKLFCBLFJ_Finished", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BKHKLFCBLFJ_Invalid" => Some(Self::Invalid), + "BKHKLFCBLFJ_Running" => Some(Self::Running), + "BKHKLFCBLFJ_Finished" => Some(Self::Finished), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ialdlppfide { + EnterUgcDungeonNone = 0, + EnterUgcDungeonTrialInEditDungeon = 1, + EnterUgcDungeonTrialInWorld = 2, + EnterUgcDungeonPlay = 3, + EnterUgcDungeonOfficial = 4, + EnterUgcDungeonByGm = 5, + EnterUgcDungeonByEdit = 6, + EnterUgcDungeonTrialOneRoom = 7, +} +impl Ialdlppfide { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ialdlppfide::EnterUgcDungeonNone => "IALDLPPFIDE_EnterUgcDungeonNone", + Ialdlppfide::EnterUgcDungeonTrialInEditDungeon => { + "IALDLPPFIDE_EnterUgcDungeonTrialInEditDungeon" + } + Ialdlppfide::EnterUgcDungeonTrialInWorld => { + "IALDLPPFIDE_EnterUgcDungeonTrialInWorld" + } + Ialdlppfide::EnterUgcDungeonPlay => "IALDLPPFIDE_EnterUgcDungeonPlay", + Ialdlppfide::EnterUgcDungeonOfficial => "IALDLPPFIDE_EnterUgcDungeonOfficial", + Ialdlppfide::EnterUgcDungeonByGm => "IALDLPPFIDE_EnterUgcDungeonByGm", + Ialdlppfide::EnterUgcDungeonByEdit => "IALDLPPFIDE_EnterUgcDungeonByEdit", + Ialdlppfide::EnterUgcDungeonTrialOneRoom => { + "IALDLPPFIDE_EnterUgcDungeonTrialOneRoom" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IALDLPPFIDE_EnterUgcDungeonNone" => Some(Self::EnterUgcDungeonNone), + "IALDLPPFIDE_EnterUgcDungeonTrialInEditDungeon" => { + Some(Self::EnterUgcDungeonTrialInEditDungeon) + } + "IALDLPPFIDE_EnterUgcDungeonTrialInWorld" => { + Some(Self::EnterUgcDungeonTrialInWorld) + } + "IALDLPPFIDE_EnterUgcDungeonPlay" => Some(Self::EnterUgcDungeonPlay), + "IALDLPPFIDE_EnterUgcDungeonOfficial" => Some(Self::EnterUgcDungeonOfficial), + "IALDLPPFIDE_EnterUgcDungeonByGm" => Some(Self::EnterUgcDungeonByGm), + "IALDLPPFIDE_EnterUgcDungeonByEdit" => Some(Self::EnterUgcDungeonByEdit), + "IALDLPPFIDE_EnterUgcDungeonTrialOneRoom" => { + Some(Self::EnterUgcDungeonTrialOneRoom) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Peklcmkljmm { + TimeOut = 0, + SettlePlayEnd = 1, + SettlePlayerQuit = 2, +} +impl Peklcmkljmm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Peklcmkljmm::TimeOut => "PEKLCMKLJMM_TimeOut", + Peklcmkljmm::SettlePlayEnd => "PEKLCMKLJMM_SettlePlayEnd", + Peklcmkljmm::SettlePlayerQuit => "PEKLCMKLJMM_SettlePlayerQuit", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PEKLCMKLJMM_TimeOut" => Some(Self::TimeOut), + "PEKLCMKLJMM_SettlePlayEnd" => Some(Self::SettlePlayEnd), + "PEKLCMKLJMM_SettlePlayerQuit" => Some(Self::SettlePlayerQuit), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dmkgkakimab { + FireworksReformParamNone = 0, + FireworksReformParamColor = 1, + FireworksReformParamHeight = 2, + FireworksReformParamSize = 3, + FireworksReformParamDensity = 4, + FireworksReformParamRotation = 5, +} +impl Dmkgkakimab { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dmkgkakimab::FireworksReformParamNone => { + "DMKGKAKIMAB_FireworksReformParamNone" + } + Dmkgkakimab::FireworksReformParamColor => { + "DMKGKAKIMAB_FireworksReformParamColor" + } + Dmkgkakimab::FireworksReformParamHeight => { + "DMKGKAKIMAB_FireworksReformParamHeight" + } + Dmkgkakimab::FireworksReformParamSize => { + "DMKGKAKIMAB_FireworksReformParamSize" + } + Dmkgkakimab::FireworksReformParamDensity => { + "DMKGKAKIMAB_FireworksReformParamDensity" + } + Dmkgkakimab::FireworksReformParamRotation => { + "DMKGKAKIMAB_FireworksReformParamRotation" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DMKGKAKIMAB_FireworksReformParamNone" => { + Some(Self::FireworksReformParamNone) + } + "DMKGKAKIMAB_FireworksReformParamColor" => { + Some(Self::FireworksReformParamColor) + } + "DMKGKAKIMAB_FireworksReformParamHeight" => { + Some(Self::FireworksReformParamHeight) + } + "DMKGKAKIMAB_FireworksReformParamSize" => { + Some(Self::FireworksReformParamSize) + } + "DMKGKAKIMAB_FireworksReformParamDensity" => { + Some(Self::FireworksReformParamDensity) + } + "DMKGKAKIMAB_FireworksReformParamRotation" => { + Some(Self::FireworksReformParamRotation) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ckjofdmgnno { + StatusFail = 0, + StatusSucc = 1, + StatusPartial = 2, +} +impl Ckjofdmgnno { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ckjofdmgnno::StatusFail => "CKJOFDMGNNO_StatusFail", + Ckjofdmgnno::StatusSucc => "CKJOFDMGNNO_StatusSucc", + Ckjofdmgnno::StatusPartial => "CKJOFDMGNNO_StatusPartial", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CKJOFDMGNNO_StatusFail" => Some(Self::StatusFail), + "CKJOFDMGNNO_StatusSucc" => Some(Self::StatusSucc), + "CKJOFDMGNNO_StatusPartial" => Some(Self::StatusPartial), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Feciocnebah { + Invalid = 0, + InProgress = 1, + Complete = 2, + RewardTaken = 3, +} +impl Feciocnebah { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Feciocnebah::Invalid => "FECIOCNEBAH_Invalid", + Feciocnebah::InProgress => "FECIOCNEBAH_InProgress", + Feciocnebah::Complete => "FECIOCNEBAH_Complete", + Feciocnebah::RewardTaken => "FECIOCNEBAH_RewardTaken", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FECIOCNEBAH_Invalid" => Some(Self::Invalid), + "FECIOCNEBAH_InProgress" => Some(Self::InProgress), + "FECIOCNEBAH_Complete" => Some(Self::Complete), + "FECIOCNEBAH_RewardTaken" => Some(Self::RewardTaken), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Lekkkbafdam { + None = 0, + Init = 1, + Building = 2, + Built = 3, +} +impl Lekkkbafdam { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Lekkkbafdam::None => "LEKKKBAFDAM_None", + Lekkkbafdam::Init => "LEKKKBAFDAM_Init", + Lekkkbafdam::Building => "LEKKKBAFDAM_Building", + Lekkkbafdam::Built => "LEKKKBAFDAM_Built", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LEKKKBAFDAM_None" => Some(Self::None), + "LEKKKBAFDAM_Init" => Some(Self::Init), + "LEKKKBAFDAM_Building" => Some(Self::Building), + "LEKKKBAFDAM_Built" => Some(Self::Built), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bhefkoojnok { + WidgetCreatorTypeNone = 0, + WidgetCreatorTypeRetract = 1, + WidgetCreatorTypeRetractAndCreate = 2, +} +impl Bhefkoojnok { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bhefkoojnok::WidgetCreatorTypeNone => "BHEFKOOJNOK_WidgetCreatorTypeNone", + Bhefkoojnok::WidgetCreatorTypeRetract => { + "BHEFKOOJNOK_WidgetCreatorTypeRetract" + } + Bhefkoojnok::WidgetCreatorTypeRetractAndCreate => { + "BHEFKOOJNOK_WidgetCreatorTypeRetractAndCreate" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BHEFKOOJNOK_WidgetCreatorTypeNone" => Some(Self::WidgetCreatorTypeNone), + "BHEFKOOJNOK_WidgetCreatorTypeRetract" => { + Some(Self::WidgetCreatorTypeRetract) + } + "BHEFKOOJNOK_WidgetCreatorTypeRetractAndCreate" => { + Some(Self::WidgetCreatorTypeRetractAndCreate) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jlopibknegm { + RogueEliteNormal = 0, + RogueEliteHard = 1, +} +impl Jlopibknegm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jlopibknegm::RogueEliteNormal => "JLOPIBKNEGM_RogueEliteNormal", + Jlopibknegm::RogueEliteHard => "JLOPIBKNEGM_RogueEliteHard", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JLOPIBKNEGM_RogueEliteNormal" => Some(Self::RogueEliteNormal), + "JLOPIBKNEGM_RogueEliteHard" => Some(Self::RogueEliteHard), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ihpmjgjmpgb { + None = 0, + Init = 1, + LevelReward = 2, + CardCost = 3, + ChanceEffect = 4, + Gm = 5, + BonusRebate = 6, +} +impl Ihpmjgjmpgb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ihpmjgjmpgb::None => "IHPMJGJMPGB_None", + Ihpmjgjmpgb::Init => "IHPMJGJMPGB_Init", + Ihpmjgjmpgb::LevelReward => "IHPMJGJMPGB_LevelReward", + Ihpmjgjmpgb::CardCost => "IHPMJGJMPGB_CardCost", + Ihpmjgjmpgb::ChanceEffect => "IHPMJGJMPGB_ChanceEffect", + Ihpmjgjmpgb::Gm => "IHPMJGJMPGB_Gm", + Ihpmjgjmpgb::BonusRebate => "IHPMJGJMPGB_BonusRebate", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IHPMJGJMPGB_None" => Some(Self::None), + "IHPMJGJMPGB_Init" => Some(Self::Init), + "IHPMJGJMPGB_LevelReward" => Some(Self::LevelReward), + "IHPMJGJMPGB_CardCost" => Some(Self::CardCost), + "IHPMJGJMPGB_ChanceEffect" => Some(Self::ChanceEffect), + "IHPMJGJMPGB_Gm" => Some(Self::Gm), + "IHPMJGJMPGB_BonusRebate" => Some(Self::BonusRebate), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ekdmoohdfea { + OpTypeNone = 0, + OpTypeRelogin = 1, + OpTypeMpRelogin = 2, +} +impl Ekdmoohdfea { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ekdmoohdfea::OpTypeNone => "EKDMOOHDFEA_OpTypeNone", + Ekdmoohdfea::OpTypeRelogin => "EKDMOOHDFEA_OpTypeRelogin", + Ekdmoohdfea::OpTypeMpRelogin => "EKDMOOHDFEA_OpTypeMpRelogin", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EKDMOOHDFEA_OpTypeNone" => Some(Self::OpTypeNone), + "EKDMOOHDFEA_OpTypeRelogin" => Some(Self::OpTypeRelogin), + "EKDMOOHDFEA_OpTypeMpRelogin" => Some(Self::OpTypeMpRelogin), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Djnpamlnjgc { + SealBattleKeepAlive = 0, + SealBattleKillMonster = 1, + SealBattleEnergyCharge = 2, +} +impl Djnpamlnjgc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Djnpamlnjgc::SealBattleKeepAlive => "DJNPAMLNJGC_SealBattleKeepAlive", + Djnpamlnjgc::SealBattleKillMonster => "DJNPAMLNJGC_SealBattleKillMonster", + Djnpamlnjgc::SealBattleEnergyCharge => "DJNPAMLNJGC_SealBattleEnergyCharge", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DJNPAMLNJGC_SealBattleKeepAlive" => Some(Self::SealBattleKeepAlive), + "DJNPAMLNJGC_SealBattleKillMonster" => Some(Self::SealBattleKillMonster), + "DJNPAMLNJGC_SealBattleEnergyCharge" => Some(Self::SealBattleEnergyCharge), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hhnoenmdggg { + InterOpFinish = 0, + InterOpStart = 1, +} +impl Hhnoenmdggg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hhnoenmdggg::InterOpFinish => "HHNOENMDGGG_InterOpFinish", + Hhnoenmdggg::InterOpStart => "HHNOENMDGGG_InterOpStart", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HHNOENMDGGG_InterOpFinish" => Some(Self::InterOpFinish), + "HHNOENMDGGG_InterOpStart" => Some(Self::InterOpStart), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pcfijjmkglb { + FireworksLaunchParamNone = 0, + FireworksLaunchParamRepeat = 1, + FireworksLaunchParamInteval = 2, + FireworksLaunchParamDelay = 3, + FireworksLaunchParamRoundInteval = 4, + FireworksLaunchParamMax = 5, +} +impl Pcfijjmkglb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pcfijjmkglb::FireworksLaunchParamNone => { + "PCFIJJMKGLB_FireworksLaunchParamNone" + } + Pcfijjmkglb::FireworksLaunchParamRepeat => { + "PCFIJJMKGLB_FireworksLaunchParamRepeat" + } + Pcfijjmkglb::FireworksLaunchParamInteval => { + "PCFIJJMKGLB_FireworksLaunchParamInteval" + } + Pcfijjmkglb::FireworksLaunchParamDelay => { + "PCFIJJMKGLB_FireworksLaunchParamDelay" + } + Pcfijjmkglb::FireworksLaunchParamRoundInteval => { + "PCFIJJMKGLB_FireworksLaunchParamRoundInteval" + } + Pcfijjmkglb::FireworksLaunchParamMax => "PCFIJJMKGLB_FireworksLaunchParamMax", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PCFIJJMKGLB_FireworksLaunchParamNone" => { + Some(Self::FireworksLaunchParamNone) + } + "PCFIJJMKGLB_FireworksLaunchParamRepeat" => { + Some(Self::FireworksLaunchParamRepeat) + } + "PCFIJJMKGLB_FireworksLaunchParamInteval" => { + Some(Self::FireworksLaunchParamInteval) + } + "PCFIJJMKGLB_FireworksLaunchParamDelay" => { + Some(Self::FireworksLaunchParamDelay) + } + "PCFIJJMKGLB_FireworksLaunchParamRoundInteval" => { + Some(Self::FireworksLaunchParamRoundInteval) + } + "PCFIJJMKGLB_FireworksLaunchParamMax" => Some(Self::FireworksLaunchParamMax), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Edodpnmmkli { + None = 0, + StarredDungeon = 1, + StarredRoom = 2, + Owner = 3, + History = 4, + Search = 5, + Official = 6, + Template = 7, +} +impl Edodpnmmkli { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Edodpnmmkli::None => "EDODPNMMKLI_None", + Edodpnmmkli::StarredDungeon => "EDODPNMMKLI_StarredDungeon", + Edodpnmmkli::StarredRoom => "EDODPNMMKLI_StarredRoom", + Edodpnmmkli::Owner => "EDODPNMMKLI_Owner", + Edodpnmmkli::History => "EDODPNMMKLI_History", + Edodpnmmkli::Search => "EDODPNMMKLI_Search", + Edodpnmmkli::Official => "EDODPNMMKLI_Official", + Edodpnmmkli::Template => "EDODPNMMKLI_Template", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EDODPNMMKLI_None" => Some(Self::None), + "EDODPNMMKLI_StarredDungeon" => Some(Self::StarredDungeon), + "EDODPNMMKLI_StarredRoom" => Some(Self::StarredRoom), + "EDODPNMMKLI_Owner" => Some(Self::Owner), + "EDODPNMMKLI_History" => Some(Self::History), + "EDODPNMMKLI_Search" => Some(Self::Search), + "EDODPNMMKLI_Official" => Some(Self::Official), + "EDODPNMMKLI_Template" => Some(Self::Template), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gohambnlbdi { + Noe = 0, + Monster = 1, + Quest = 2, +} +impl Gohambnlbdi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gohambnlbdi::Noe => "GOHAMBNLBDI_Noe", + Gohambnlbdi::Monster => "GOHAMBNLBDI_Monster", + Gohambnlbdi::Quest => "GOHAMBNLBDI_Quest", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GOHAMBNLBDI_Noe" => Some(Self::Noe), + "GOHAMBNLBDI_Monster" => Some(Self::Monster), + "GOHAMBNLBDI_Quest" => Some(Self::Quest), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Akehcjngjej { + ObstacleShapeCapsule = 0, + ObstacleShapeBox = 1, +} +impl Akehcjngjej { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Akehcjngjej::ObstacleShapeCapsule => "AKEHCJNGJEJ_ObstacleShapeCapsule", + Akehcjngjej::ObstacleShapeBox => "AKEHCJNGJEJ_ObstacleShapeBox", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AKEHCJNGJEJ_ObstacleShapeCapsule" => Some(Self::ObstacleShapeCapsule), + "AKEHCJNGJEJ_ObstacleShapeBox" => Some(Self::ObstacleShapeBox), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gecmbiekdnd { + ReportReasonSubtypeNone = 0, + ReportReasonSubtypeInvalidNickname = 1, + ReportReasonSubtypeInvalidSignature = 2, + ReportReasonSubtypeInvalidArrangement = 3, + ReportReasonSubtypeInvalidChat = 4, + ReportReasonSubtypeInvalidAvatarName = 5, + ReportReasonSubtypeInvalidOther = 6, + ReportReasonSubtypeInvalidLittleDrillName = 7, +} +impl Gecmbiekdnd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gecmbiekdnd::ReportReasonSubtypeNone => "GECMBIEKDND_ReportReasonSubtypeNone", + Gecmbiekdnd::ReportReasonSubtypeInvalidNickname => { + "GECMBIEKDND_ReportReasonSubtypeInvalidNickname" + } + Gecmbiekdnd::ReportReasonSubtypeInvalidSignature => { + "GECMBIEKDND_ReportReasonSubtypeInvalidSignature" + } + Gecmbiekdnd::ReportReasonSubtypeInvalidArrangement => { + "GECMBIEKDND_ReportReasonSubtypeInvalidArrangement" + } + Gecmbiekdnd::ReportReasonSubtypeInvalidChat => { + "GECMBIEKDND_ReportReasonSubtypeInvalidChat" + } + Gecmbiekdnd::ReportReasonSubtypeInvalidAvatarName => { + "GECMBIEKDND_ReportReasonSubtypeInvalidAvatarName" + } + Gecmbiekdnd::ReportReasonSubtypeInvalidOther => { + "GECMBIEKDND_ReportReasonSubtypeInvalidOther" + } + Gecmbiekdnd::ReportReasonSubtypeInvalidLittleDrillName => { + "GECMBIEKDND_ReportReasonSubtypeInvalidLittleDrillName" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GECMBIEKDND_ReportReasonSubtypeNone" => Some(Self::ReportReasonSubtypeNone), + "GECMBIEKDND_ReportReasonSubtypeInvalidNickname" => { + Some(Self::ReportReasonSubtypeInvalidNickname) + } + "GECMBIEKDND_ReportReasonSubtypeInvalidSignature" => { + Some(Self::ReportReasonSubtypeInvalidSignature) + } + "GECMBIEKDND_ReportReasonSubtypeInvalidArrangement" => { + Some(Self::ReportReasonSubtypeInvalidArrangement) + } + "GECMBIEKDND_ReportReasonSubtypeInvalidChat" => { + Some(Self::ReportReasonSubtypeInvalidChat) + } + "GECMBIEKDND_ReportReasonSubtypeInvalidAvatarName" => { + Some(Self::ReportReasonSubtypeInvalidAvatarName) + } + "GECMBIEKDND_ReportReasonSubtypeInvalidOther" => { + Some(Self::ReportReasonSubtypeInvalidOther) + } + "GECMBIEKDND_ReportReasonSubtypeInvalidLittleDrillName" => { + Some(Self::ReportReasonSubtypeInvalidLittleDrillName) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Kckmmddjpce { + None = 0, + Normal = 1, + Template = 2, + Exam = 3, +} +impl Kckmmddjpce { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Kckmmddjpce::None => "KCKMMDDJPCE_None", + Kckmmddjpce::Normal => "KCKMMDDJPCE_Normal", + Kckmmddjpce::Template => "KCKMMDDJPCE_Template", + Kckmmddjpce::Exam => "KCKMMDDJPCE_Exam", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "KCKMMDDJPCE_None" => Some(Self::None), + "KCKMMDDJPCE_Normal" => Some(Self::Normal), + "KCKMMDDJPCE_Template" => Some(Self::Template), + "KCKMMDDJPCE_Exam" => Some(Self::Exam), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Aanmpmbpkcl { + WindFieldDungeonFailNone = 0, + WindFieldDungeonFailCancel = 1, + WindFieldDungeonFailTimeout = 2, + WindFieldDungeonFailAllAvatarDie = 3, + WindFieldDungeonFailLuaInterrupt = 4, +} +impl Aanmpmbpkcl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Aanmpmbpkcl::WindFieldDungeonFailNone => { + "AANMPMBPKCL_WindFieldDungeonFailNone" + } + Aanmpmbpkcl::WindFieldDungeonFailCancel => { + "AANMPMBPKCL_WindFieldDungeonFailCancel" + } + Aanmpmbpkcl::WindFieldDungeonFailTimeout => { + "AANMPMBPKCL_WindFieldDungeonFailTimeout" + } + Aanmpmbpkcl::WindFieldDungeonFailAllAvatarDie => { + "AANMPMBPKCL_WindFieldDungeonFailAllAvatarDie" + } + Aanmpmbpkcl::WindFieldDungeonFailLuaInterrupt => { + "AANMPMBPKCL_WindFieldDungeonFailLuaInterrupt" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AANMPMBPKCL_WindFieldDungeonFailNone" => { + Some(Self::WindFieldDungeonFailNone) + } + "AANMPMBPKCL_WindFieldDungeonFailCancel" => { + Some(Self::WindFieldDungeonFailCancel) + } + "AANMPMBPKCL_WindFieldDungeonFailTimeout" => { + Some(Self::WindFieldDungeonFailTimeout) + } + "AANMPMBPKCL_WindFieldDungeonFailAllAvatarDie" => { + Some(Self::WindFieldDungeonFailAllAvatarDie) + } + "AANMPMBPKCL_WindFieldDungeonFailLuaInterrupt" => { + Some(Self::WindFieldDungeonFailLuaInterrupt) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Kdioojinlkg { + GalleryStartByNone = 0, + GalleryStartByMatch = 1, + GalleryStartByDraft = 2, +} +impl Kdioojinlkg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Kdioojinlkg::GalleryStartByNone => "KDIOOJINLKG_GalleryStartByNone", + Kdioojinlkg::GalleryStartByMatch => "KDIOOJINLKG_GalleryStartByMatch", + Kdioojinlkg::GalleryStartByDraft => "KDIOOJINLKG_GalleryStartByDraft", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "KDIOOJINLKG_GalleryStartByNone" => Some(Self::GalleryStartByNone), + "KDIOOJINLKG_GalleryStartByMatch" => Some(Self::GalleryStartByMatch), + "KDIOOJINLKG_GalleryStartByDraft" => Some(Self::GalleryStartByDraft), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cnpeffimnbf { + SalvageEscortStopNone = 0, + SalvageEscortStopSuccess = 1, + SalvageEscortStopDump = 2, + SalvageEscortStopTime = 3, + SalvageEscortStopInterrupt = 4, + SalvageEscortStopLeave = 5, + SalvageEscortStopFull = 6, +} +impl Cnpeffimnbf { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cnpeffimnbf::SalvageEscortStopNone => "CNPEFFIMNBF_SalvageEscortStopNone", + Cnpeffimnbf::SalvageEscortStopSuccess => { + "CNPEFFIMNBF_SalvageEscortStopSuccess" + } + Cnpeffimnbf::SalvageEscortStopDump => "CNPEFFIMNBF_SalvageEscortStopDump", + Cnpeffimnbf::SalvageEscortStopTime => "CNPEFFIMNBF_SalvageEscortStopTime", + Cnpeffimnbf::SalvageEscortStopInterrupt => { + "CNPEFFIMNBF_SalvageEscortStopInterrupt" + } + Cnpeffimnbf::SalvageEscortStopLeave => "CNPEFFIMNBF_SalvageEscortStopLeave", + Cnpeffimnbf::SalvageEscortStopFull => "CNPEFFIMNBF_SalvageEscortStopFull", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CNPEFFIMNBF_SalvageEscortStopNone" => Some(Self::SalvageEscortStopNone), + "CNPEFFIMNBF_SalvageEscortStopSuccess" => { + Some(Self::SalvageEscortStopSuccess) + } + "CNPEFFIMNBF_SalvageEscortStopDump" => Some(Self::SalvageEscortStopDump), + "CNPEFFIMNBF_SalvageEscortStopTime" => Some(Self::SalvageEscortStopTime), + "CNPEFFIMNBF_SalvageEscortStopInterrupt" => { + Some(Self::SalvageEscortStopInterrupt) + } + "CNPEFFIMNBF_SalvageEscortStopLeave" => Some(Self::SalvageEscortStopLeave), + "CNPEFFIMNBF_SalvageEscortStopFull" => Some(Self::SalvageEscortStopFull), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Odopboephmm { + ActionTypeNone = 0, + ActionTypeLaunchBall = 1, + ActionTypeDestroyBall = 2, + ActionTypeFallingObject = 3, + ActionTypeMissile = 4, +} +impl Odopboephmm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Odopboephmm::ActionTypeNone => "ODOPBOEPHMM_ActionTypeNone", + Odopboephmm::ActionTypeLaunchBall => "ODOPBOEPHMM_ActionTypeLaunchBall", + Odopboephmm::ActionTypeDestroyBall => "ODOPBOEPHMM_ActionTypeDestroyBall", + Odopboephmm::ActionTypeFallingObject => "ODOPBOEPHMM_ActionTypeFallingObject", + Odopboephmm::ActionTypeMissile => "ODOPBOEPHMM_ActionTypeMissile", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ODOPBOEPHMM_ActionTypeNone" => Some(Self::ActionTypeNone), + "ODOPBOEPHMM_ActionTypeLaunchBall" => Some(Self::ActionTypeLaunchBall), + "ODOPBOEPHMM_ActionTypeDestroyBall" => Some(Self::ActionTypeDestroyBall), + "ODOPBOEPHMM_ActionTypeFallingObject" => Some(Self::ActionTypeFallingObject), + "ODOPBOEPHMM_ActionTypeMissile" => Some(Self::ActionTypeMissile), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pblfodhddml { + RogueCellNone = 0, + RogueCellBattle = 1, + RogueCellSuccess = 2, + RogueCellFinish = 3, + RogueCellTakenChest = 4, +} +impl Pblfodhddml { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pblfodhddml::RogueCellNone => "PBLFODHDDML_RogueCellNone", + Pblfodhddml::RogueCellBattle => "PBLFODHDDML_RogueCellBattle", + Pblfodhddml::RogueCellSuccess => "PBLFODHDDML_RogueCellSuccess", + Pblfodhddml::RogueCellFinish => "PBLFODHDDML_RogueCellFinish", + Pblfodhddml::RogueCellTakenChest => "PBLFODHDDML_RogueCellTakenChest", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PBLFODHDDML_RogueCellNone" => Some(Self::RogueCellNone), + "PBLFODHDDML_RogueCellBattle" => Some(Self::RogueCellBattle), + "PBLFODHDDML_RogueCellSuccess" => Some(Self::RogueCellSuccess), + "PBLFODHDDML_RogueCellFinish" => Some(Self::RogueCellFinish), + "PBLFODHDDML_RogueCellTakenChest" => Some(Self::RogueCellTakenChest), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cfpilojcini { + None = 0, + CreateConnect = 1, + StartGame = 2, + Ping = 3, + FinishGame = 4, + SnapShot = 5, + Action = 6, + SnapShotForDebugLog = 7, +} +impl Cfpilojcini { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cfpilojcini::None => "CFPILOJCINI_None", + Cfpilojcini::CreateConnect => "CFPILOJCINI_CreateConnect", + Cfpilojcini::StartGame => "CFPILOJCINI_StartGame", + Cfpilojcini::Ping => "CFPILOJCINI_Ping", + Cfpilojcini::FinishGame => "CFPILOJCINI_FinishGame", + Cfpilojcini::SnapShot => "CFPILOJCINI_SnapShot", + Cfpilojcini::Action => "CFPILOJCINI_Action", + Cfpilojcini::SnapShotForDebugLog => "CFPILOJCINI_SnapShotForDebugLog", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CFPILOJCINI_None" => Some(Self::None), + "CFPILOJCINI_CreateConnect" => Some(Self::CreateConnect), + "CFPILOJCINI_StartGame" => Some(Self::StartGame), + "CFPILOJCINI_Ping" => Some(Self::Ping), + "CFPILOJCINI_FinishGame" => Some(Self::FinishGame), + "CFPILOJCINI_SnapShot" => Some(Self::SnapShot), + "CFPILOJCINI_Action" => Some(Self::Action), + "CFPILOJCINI_SnapShotForDebugLog" => Some(Self::SnapShotForDebugLog), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bickfbjhoik { + BargainCompleteSucc = 0, + BargainSingleFail = 1, + BargainCompleteFail = 2, +} +impl Bickfbjhoik { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bickfbjhoik::BargainCompleteSucc => "BICKFBJHOIK_BargainCompleteSucc", + Bickfbjhoik::BargainSingleFail => "BICKFBJHOIK_BargainSingleFail", + Bickfbjhoik::BargainCompleteFail => "BICKFBJHOIK_BargainCompleteFail", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BICKFBJHOIK_BargainCompleteSucc" => Some(Self::BargainCompleteSucc), + "BICKFBJHOIK_BargainSingleFail" => Some(Self::BargainSingleFail), + "BICKFBJHOIK_BargainCompleteFail" => Some(Self::BargainCompleteFail), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ckijcdmelnh { + VehicleInteractNone = 0, + VehicleInteractIn = 1, + VehicleInteractOut = 2, +} +impl Ckijcdmelnh { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ckijcdmelnh::VehicleInteractNone => "CKIJCDMELNH_VehicleInteractNone", + Ckijcdmelnh::VehicleInteractIn => "CKIJCDMELNH_VehicleInteractIn", + Ckijcdmelnh::VehicleInteractOut => "CKIJCDMELNH_VehicleInteractOut", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CKIJCDMELNH_VehicleInteractNone" => Some(Self::VehicleInteractNone), + "CKIJCDMELNH_VehicleInteractIn" => Some(Self::VehicleInteractIn), + "CKIJCDMELNH_VehicleInteractOut" => Some(Self::VehicleInteractOut), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ckiinnajncp { + None = 0, + Leave = 1, + Pending = 2, + Idle = 3, +} +impl Ckiinnajncp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ckiinnajncp::None => "CKIINNAJNCP_None", + Ckiinnajncp::Leave => "CKIINNAJNCP_Leave", + Ckiinnajncp::Pending => "CKIINNAJNCP_Pending", + Ckiinnajncp::Idle => "CKIINNAJNCP_Idle", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CKIINNAJNCP_None" => Some(Self::None), + "CKIINNAJNCP_Leave" => Some(Self::Leave), + "CKIINNAJNCP_Pending" => Some(Self::Pending), + "CKIINNAJNCP_Idle" => Some(Self::Idle), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Eiblikiahil { + RogueDiaryAvatarDisableNone = 0, + RogueDiaryAvatarDisableDeath = 1, + RogueDiaryAvatarDisableTired = 2, + RogueDiaryAvatarDisableDuplicated = 3, +} +impl Eiblikiahil { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Eiblikiahil::RogueDiaryAvatarDisableNone => { + "EIBLIKIAHIL_RogueDiaryAvatarDisableNone" + } + Eiblikiahil::RogueDiaryAvatarDisableDeath => { + "EIBLIKIAHIL_RogueDiaryAvatarDisableDeath" + } + Eiblikiahil::RogueDiaryAvatarDisableTired => { + "EIBLIKIAHIL_RogueDiaryAvatarDisableTired" + } + Eiblikiahil::RogueDiaryAvatarDisableDuplicated => { + "EIBLIKIAHIL_RogueDiaryAvatarDisableDuplicated" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EIBLIKIAHIL_RogueDiaryAvatarDisableNone" => { + Some(Self::RogueDiaryAvatarDisableNone) + } + "EIBLIKIAHIL_RogueDiaryAvatarDisableDeath" => { + Some(Self::RogueDiaryAvatarDisableDeath) + } + "EIBLIKIAHIL_RogueDiaryAvatarDisableTired" => { + Some(Self::RogueDiaryAvatarDisableTired) + } + "EIBLIKIAHIL_RogueDiaryAvatarDisableDuplicated" => { + Some(Self::RogueDiaryAvatarDisableDuplicated) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Diedgoljcok { + None = 0, + AllAvatarSelected = 1, + ChanceForbidden = 2, + CandidateAvatarNumZero = 3, +} +impl Diedgoljcok { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Diedgoljcok::None => "DIEDGOLJCOK_None", + Diedgoljcok::AllAvatarSelected => "DIEDGOLJCOK_AllAvatarSelected", + Diedgoljcok::ChanceForbidden => "DIEDGOLJCOK_ChanceForbidden", + Diedgoljcok::CandidateAvatarNumZero => "DIEDGOLJCOK_CandidateAvatarNumZero", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DIEDGOLJCOK_None" => Some(Self::None), + "DIEDGOLJCOK_AllAvatarSelected" => Some(Self::AllAvatarSelected), + "DIEDGOLJCOK_ChanceForbidden" => Some(Self::ChanceForbidden), + "DIEDGOLJCOK_CandidateAvatarNumZero" => Some(Self::CandidateAvatarNumZero), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Iohpcjajppo { + FoundationOpNone = 0, + FoundationOpBuild = 1, + FoundationOpDemolition = 2, + FoundationOpRebuild = 3, + FoundationOpRotate = 4, + FoundationOpLock = 5, + FoundationOpUnlock = 6, +} +impl Iohpcjajppo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Iohpcjajppo::FoundationOpNone => "IOHPCJAJPPO_FoundationOpNone", + Iohpcjajppo::FoundationOpBuild => "IOHPCJAJPPO_FoundationOpBuild", + Iohpcjajppo::FoundationOpDemolition => "IOHPCJAJPPO_FoundationOpDemolition", + Iohpcjajppo::FoundationOpRebuild => "IOHPCJAJPPO_FoundationOpRebuild", + Iohpcjajppo::FoundationOpRotate => "IOHPCJAJPPO_FoundationOpRotate", + Iohpcjajppo::FoundationOpLock => "IOHPCJAJPPO_FoundationOpLock", + Iohpcjajppo::FoundationOpUnlock => "IOHPCJAJPPO_FoundationOpUnlock", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IOHPCJAJPPO_FoundationOpNone" => Some(Self::FoundationOpNone), + "IOHPCJAJPPO_FoundationOpBuild" => Some(Self::FoundationOpBuild), + "IOHPCJAJPPO_FoundationOpDemolition" => Some(Self::FoundationOpDemolition), + "IOHPCJAJPPO_FoundationOpRebuild" => Some(Self::FoundationOpRebuild), + "IOHPCJAJPPO_FoundationOpRotate" => Some(Self::FoundationOpRotate), + "IOHPCJAJPPO_FoundationOpLock" => Some(Self::FoundationOpLock), + "IOHPCJAJPPO_FoundationOpUnlock" => Some(Self::FoundationOpUnlock), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Noipnepdipn { + EnterCustomDungeonNone = 0, + EnterCustomDungeonEdit = 1, + EnterCustomDungeonPlay = 2, + EnterCustomDungeonOfficial = 3, +} +impl Noipnepdipn { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Noipnepdipn::EnterCustomDungeonNone => "NOIPNEPDIPN_EnterCustomDungeonNone", + Noipnepdipn::EnterCustomDungeonEdit => "NOIPNEPDIPN_EnterCustomDungeonEdit", + Noipnepdipn::EnterCustomDungeonPlay => "NOIPNEPDIPN_EnterCustomDungeonPlay", + Noipnepdipn::EnterCustomDungeonOfficial => { + "NOIPNEPDIPN_EnterCustomDungeonOfficial" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NOIPNEPDIPN_EnterCustomDungeonNone" => Some(Self::EnterCustomDungeonNone), + "NOIPNEPDIPN_EnterCustomDungeonEdit" => Some(Self::EnterCustomDungeonEdit), + "NOIPNEPDIPN_EnterCustomDungeonPlay" => Some(Self::EnterCustomDungeonPlay), + "NOIPNEPDIPN_EnterCustomDungeonOfficial" => { + Some(Self::EnterCustomDungeonOfficial) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mkphmapfemh { + Succ = 0, + TargetSceneCannotEnter = 1, + SelfMpUnavailable = 2, + OtherDataVersionNotLatest = 3, + DataVersionNotLatest = 4, +} +impl Mkphmapfemh { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mkphmapfemh::Succ => "MKPHMAPFEMH_Succ", + Mkphmapfemh::TargetSceneCannotEnter => "MKPHMAPFEMH_TargetSceneCannotEnter", + Mkphmapfemh::SelfMpUnavailable => "MKPHMAPFEMH_SelfMpUnavailable", + Mkphmapfemh::OtherDataVersionNotLatest => { + "MKPHMAPFEMH_OtherDataVersionNotLatest" + } + Mkphmapfemh::DataVersionNotLatest => "MKPHMAPFEMH_DataVersionNotLatest", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MKPHMAPFEMH_Succ" => Some(Self::Succ), + "MKPHMAPFEMH_TargetSceneCannotEnter" => Some(Self::TargetSceneCannotEnter), + "MKPHMAPFEMH_SelfMpUnavailable" => Some(Self::SelfMpUnavailable), + "MKPHMAPFEMH_OtherDataVersionNotLatest" => { + Some(Self::OtherDataVersionNotLatest) + } + "MKPHMAPFEMH_DataVersionNotLatest" => Some(Self::DataVersionNotLatest), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Meoebdaimci { + ItemExceedLimitMsgDefault = 0, + ItemExceedLimitMsgText = 1, + ItemExceedLimitMsgDialog = 2, + ItemExceedLimitMsgDialogNonblock = 3, +} +impl Meoebdaimci { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Meoebdaimci::ItemExceedLimitMsgDefault => { + "MEOEBDAIMCI_ItemExceedLimitMsgDefault" + } + Meoebdaimci::ItemExceedLimitMsgText => "MEOEBDAIMCI_ItemExceedLimitMsgText", + Meoebdaimci::ItemExceedLimitMsgDialog => { + "MEOEBDAIMCI_ItemExceedLimitMsgDialog" + } + Meoebdaimci::ItemExceedLimitMsgDialogNonblock => { + "MEOEBDAIMCI_ItemExceedLimitMsgDialogNonblock" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MEOEBDAIMCI_ItemExceedLimitMsgDefault" => { + Some(Self::ItemExceedLimitMsgDefault) + } + "MEOEBDAIMCI_ItemExceedLimitMsgText" => Some(Self::ItemExceedLimitMsgText), + "MEOEBDAIMCI_ItemExceedLimitMsgDialog" => { + Some(Self::ItemExceedLimitMsgDialog) + } + "MEOEBDAIMCI_ItemExceedLimitMsgDialogNonblock" => { + Some(Self::ItemExceedLimitMsgDialogNonblock) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bnmoikfjfaj { + ChangeHpDebtsNone = 0, + ChangeHpDebtsPay = 1, + ChangeHpDebtsPayFinish = 2, + ChangeHpDebtsClear = 21, + ChangeHpDebtsReduceAbility = 41, + ChangeHpDebtsAddAbility = 51, +} +impl Bnmoikfjfaj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bnmoikfjfaj::ChangeHpDebtsNone => "BNMOIKFJFAJ_ChangeHpDebtsNone", + Bnmoikfjfaj::ChangeHpDebtsPay => "BNMOIKFJFAJ_ChangeHpDebtsPay", + Bnmoikfjfaj::ChangeHpDebtsPayFinish => "BNMOIKFJFAJ_ChangeHpDebtsPayFinish", + Bnmoikfjfaj::ChangeHpDebtsClear => "BNMOIKFJFAJ_ChangeHpDebtsClear", + Bnmoikfjfaj::ChangeHpDebtsReduceAbility => { + "BNMOIKFJFAJ_ChangeHpDebtsReduceAbility" + } + Bnmoikfjfaj::ChangeHpDebtsAddAbility => "BNMOIKFJFAJ_ChangeHpDebtsAddAbility", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BNMOIKFJFAJ_ChangeHpDebtsNone" => Some(Self::ChangeHpDebtsNone), + "BNMOIKFJFAJ_ChangeHpDebtsPay" => Some(Self::ChangeHpDebtsPay), + "BNMOIKFJFAJ_ChangeHpDebtsPayFinish" => Some(Self::ChangeHpDebtsPayFinish), + "BNMOIKFJFAJ_ChangeHpDebtsClear" => Some(Self::ChangeHpDebtsClear), + "BNMOIKFJFAJ_ChangeHpDebtsReduceAbility" => { + Some(Self::ChangeHpDebtsReduceAbility) + } + "BNMOIKFJFAJ_ChangeHpDebtsAddAbility" => Some(Self::ChangeHpDebtsAddAbility), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mkkpichlcgl { + DefaultValue = 0, + Mkkpichlcgl1 = 1, + Mkkpichlcgl2 = 2, + Mkkpichlcgl3 = 3, +} +impl Mkkpichlcgl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mkkpichlcgl::DefaultValue => "MKKPICHLCGL_DefaultValue", + Mkkpichlcgl::Mkkpichlcgl1 => "MKKPICHLCGL__1", + Mkkpichlcgl::Mkkpichlcgl2 => "MKKPICHLCGL__2", + Mkkpichlcgl::Mkkpichlcgl3 => "MKKPICHLCGL__3", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MKKPICHLCGL_DefaultValue" => Some(Self::DefaultValue), + "MKKPICHLCGL__1" => Some(Self::Mkkpichlcgl1), + "MKKPICHLCGL__2" => Some(Self::Mkkpichlcgl2), + "MKKPICHLCGL__3" => Some(Self::Mkkpichlcgl3), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum ProtEntityType { + ProtEntityNone = 0, + ProtEntityAvatar = 1, + ProtEntityMonster = 2, + ProtEntityNpc = 3, + ProtEntityGadget = 4, + ProtEntityRegion = 5, + ProtEntityWeapon = 6, + ProtEntityWeather = 7, + ProtEntityScene = 8, + ProtEntityTeam = 9, + ProtEntityMpLevel = 11, + ProtEntityPlayTeamEntity = 12, + ProtEntityEyePoint = 13, + ProtEntityMax = 14, +} +impl ProtEntityType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + ProtEntityType::ProtEntityNone => "ProtEntityType_ProtEntityNone", + ProtEntityType::ProtEntityAvatar => "ProtEntityType_ProtEntityAvatar", + ProtEntityType::ProtEntityMonster => "ProtEntityType_ProtEntityMonster", + ProtEntityType::ProtEntityNpc => "ProtEntityType_ProtEntityNpc", + ProtEntityType::ProtEntityGadget => "ProtEntityType_ProtEntityGadget", + ProtEntityType::ProtEntityRegion => "ProtEntityType_ProtEntityRegion", + ProtEntityType::ProtEntityWeapon => "ProtEntityType_ProtEntityWeapon", + ProtEntityType::ProtEntityWeather => "ProtEntityType_ProtEntityWeather", + ProtEntityType::ProtEntityScene => "ProtEntityType_ProtEntityScene", + ProtEntityType::ProtEntityTeam => "ProtEntityType_ProtEntityTeam", + ProtEntityType::ProtEntityMpLevel => "ProtEntityType_ProtEntityMpLevel", + ProtEntityType::ProtEntityPlayTeamEntity => { + "ProtEntityType_ProtEntityPlayTeamEntity" + } + ProtEntityType::ProtEntityEyePoint => "ProtEntityType_ProtEntityEyePoint", + ProtEntityType::ProtEntityMax => "ProtEntityType_ProtEntityMax", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ProtEntityType_ProtEntityNone" => Some(Self::ProtEntityNone), + "ProtEntityType_ProtEntityAvatar" => Some(Self::ProtEntityAvatar), + "ProtEntityType_ProtEntityMonster" => Some(Self::ProtEntityMonster), + "ProtEntityType_ProtEntityNpc" => Some(Self::ProtEntityNpc), + "ProtEntityType_ProtEntityGadget" => Some(Self::ProtEntityGadget), + "ProtEntityType_ProtEntityRegion" => Some(Self::ProtEntityRegion), + "ProtEntityType_ProtEntityWeapon" => Some(Self::ProtEntityWeapon), + "ProtEntityType_ProtEntityWeather" => Some(Self::ProtEntityWeather), + "ProtEntityType_ProtEntityScene" => Some(Self::ProtEntityScene), + "ProtEntityType_ProtEntityTeam" => Some(Self::ProtEntityTeam), + "ProtEntityType_ProtEntityMpLevel" => Some(Self::ProtEntityMpLevel), + "ProtEntityType_ProtEntityPlayTeamEntity" => { + Some(Self::ProtEntityPlayTeamEntity) + } + "ProtEntityType_ProtEntityEyePoint" => Some(Self::ProtEntityEyePoint), + "ProtEntityType_ProtEntityMax" => Some(Self::ProtEntityMax), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jhhbgbphnkf { + EventTriggerNone = 0, + EventTriggerEnterForce = 1, +} +impl Jhhbgbphnkf { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jhhbgbphnkf::EventTriggerNone => "JHHBGBPHNKF_EventTriggerNone", + Jhhbgbphnkf::EventTriggerEnterForce => "JHHBGBPHNKF_EventTriggerEnterForce", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JHHBGBPHNKF_EventTriggerNone" => Some(Self::EventTriggerNone), + "JHHBGBPHNKF_EventTriggerEnterForce" => Some(Self::EventTriggerEnterForce), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nkkeodoboej { + AbilityNone = 0, + AbilityMetaModifierChange = 1, + AbilityMetaCommandModifierChangeRequest = 2, + AbilityMetaSpecialFloatArgument = 3, + AbilityMetaOverrideParam = 4, + AbilityMetaClearOverrideParam = 5, + AbilityMetaReinitOverridemap = 6, + AbilityMetaGlobalFloatValue = 7, + AbilityMetaClearGlobalFloatValue = 8, + AbilityMetaAbilityElementStrength = 9, + AbilityMetaAddOrGetAbilityAndTrigger = 10, + AbilityMetaSetKilledSetate = 11, + AbilityMetaSetAbilityTrigger = 12, + AbilityMetaAddNewAbility = 13, + AbilityMetaRemoveAbility = 14, + AbilityMetaSetModifierApplyEntity = 15, + AbilityMetaModifierDurabilityChange = 16, + AbilityMetaElementReactionVisual = 17, + AbilityMetaSetPoseParameter = 18, + AbilityMetaUpdateBaseReactionDamage = 19, + AbilityMetaTriggerElementReaction = 20, + AbilityMetaLoseHp = 21, + AbilityMetaDurabilityIsZero = 22, + AbilityMetaTriggerArkheReaction = 23, + AbilityMetaChangeNyxValue = 24, + AbilityActionTriggerAbility = 50, + AbilityActionSetCrashDamage = 51, + AbilityActionEffect = 52, + AbilityActionSummon = 53, + AbilityActionBlink = 54, + AbilityActionCreateGadget = 55, + AbilityActionApplyLevelModifier = 56, + AbilityActionGenerateElemBall = 57, + AbilityActionSetRandomOverrideMapValue = 58, + AbilityActionServerMonsterLog = 59, + AbilityActionCreateTile = 60, + AbilityActionDestroyTile = 61, + AbilityActionFireAfterImage = 62, + AbilityActionDeductStamina = 63, + AbilityActionHitEffect = 64, + AbilityActionSetBulletTrackTarget = 65, + AbilityActionFireworkEffect = 66, + AbilityActionLevelBankAddStuff = 67, + AbilityActionGetMaterialParamFloat = 68, + AbilityActionGetMaterialParamVector = 69, + AbilityActionSpectacleBuildRecreateGadget = 70, + AbilityMixinAvatarSteerByCamera = 100, + AbilityMixinMonsterDefend = 101, + AbilityMixinWindZone = 102, + AbilityMixinCostStamina = 103, + AbilityMixinEliteShield = 104, + AbilityMixinElementShield = 105, + AbilityMixinGlobalShield = 106, + AbilityMixinShieldBar = 107, + AbilityMixinWindSeedSpawner = 108, + AbilityMixinDoActionByElementReaction = 109, + AbilityMixinFieldEntityCountChange = 110, + AbilityMixinScenePropSync = 111, + AbilityMixinWidgetMpSupport = 112, + AbilityMixinDoActionBySelfModifierElementDurabilityRatio = 113, + AbilityMixinFireworksLauncher = 114, + AbilityMixinAttackResultCreateCount = 115, + AbilityMixinUgcTimeControl = 116, + AbilityMixinAvatarCombat = 117, + AbilityMixinDeathZoneRegionalPlayMixin = 118, + AbilityMixinUiInteract = 119, + AbilityMixinShootFromCamera = 120, + AbilityMixinEraseBrickActivity = 121, + AbilityMixinBreakout = 122, + AbilityMixinDamageLoan = 123, + AbilityMixinBroadcastGv = 124, + AbilityMixinReceiveGv = 125, + AbilityMixinRaycastSelectTarget = 126, + AbilityMixinEnergyCrystalTarget = 127, + AbilityMixinRotationFollowCamera = 128, + AbilityMixinBuoyantForce = 129, + AbilityMixinFilmfestBallGame = 130, + AbilityMixinCheckScanEntity = 131, + AbilityMixinTimeTrackPlayer = 133, + AbilityMixinPartFollow = 134, + AbilityMixinChangePhlogiston = 135, + AbilityMixinHumanDragonCollabPickPhlogistonBall = 136, + AbilityMixinFrequencyShieldBar = 137, +} +impl Nkkeodoboej { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nkkeodoboej::AbilityNone => "NKKEODOBOEJ_AbilityNone", + Nkkeodoboej::AbilityMetaModifierChange => { + "NKKEODOBOEJ_AbilityMetaModifierChange" + } + Nkkeodoboej::AbilityMetaCommandModifierChangeRequest => { + "NKKEODOBOEJ_AbilityMetaCommandModifierChangeRequest" + } + Nkkeodoboej::AbilityMetaSpecialFloatArgument => { + "NKKEODOBOEJ_AbilityMetaSpecialFloatArgument" + } + Nkkeodoboej::AbilityMetaOverrideParam => { + "NKKEODOBOEJ_AbilityMetaOverrideParam" + } + Nkkeodoboej::AbilityMetaClearOverrideParam => { + "NKKEODOBOEJ_AbilityMetaClearOverrideParam" + } + Nkkeodoboej::AbilityMetaReinitOverridemap => { + "NKKEODOBOEJ_AbilityMetaReinitOverridemap" + } + Nkkeodoboej::AbilityMetaGlobalFloatValue => { + "NKKEODOBOEJ_AbilityMetaGlobalFloatValue" + } + Nkkeodoboej::AbilityMetaClearGlobalFloatValue => { + "NKKEODOBOEJ_AbilityMetaClearGlobalFloatValue" + } + Nkkeodoboej::AbilityMetaAbilityElementStrength => { + "NKKEODOBOEJ_AbilityMetaAbilityElementStrength" + } + Nkkeodoboej::AbilityMetaAddOrGetAbilityAndTrigger => { + "NKKEODOBOEJ_AbilityMetaAddOrGetAbilityAndTrigger" + } + Nkkeodoboej::AbilityMetaSetKilledSetate => { + "NKKEODOBOEJ_AbilityMetaSetKilledSetate" + } + Nkkeodoboej::AbilityMetaSetAbilityTrigger => { + "NKKEODOBOEJ_AbilityMetaSetAbilityTrigger" + } + Nkkeodoboej::AbilityMetaAddNewAbility => { + "NKKEODOBOEJ_AbilityMetaAddNewAbility" + } + Nkkeodoboej::AbilityMetaRemoveAbility => { + "NKKEODOBOEJ_AbilityMetaRemoveAbility" + } + Nkkeodoboej::AbilityMetaSetModifierApplyEntity => { + "NKKEODOBOEJ_AbilityMetaSetModifierApplyEntity" + } + Nkkeodoboej::AbilityMetaModifierDurabilityChange => { + "NKKEODOBOEJ_AbilityMetaModifierDurabilityChange" + } + Nkkeodoboej::AbilityMetaElementReactionVisual => { + "NKKEODOBOEJ_AbilityMetaElementReactionVisual" + } + Nkkeodoboej::AbilityMetaSetPoseParameter => { + "NKKEODOBOEJ_AbilityMetaSetPoseParameter" + } + Nkkeodoboej::AbilityMetaUpdateBaseReactionDamage => { + "NKKEODOBOEJ_AbilityMetaUpdateBaseReactionDamage" + } + Nkkeodoboej::AbilityMetaTriggerElementReaction => { + "NKKEODOBOEJ_AbilityMetaTriggerElementReaction" + } + Nkkeodoboej::AbilityMetaLoseHp => "NKKEODOBOEJ_AbilityMetaLoseHp", + Nkkeodoboej::AbilityMetaDurabilityIsZero => { + "NKKEODOBOEJ_AbilityMetaDurabilityIsZero" + } + Nkkeodoboej::AbilityMetaTriggerArkheReaction => { + "NKKEODOBOEJ_AbilityMetaTriggerArkheReaction" + } + Nkkeodoboej::AbilityMetaChangeNyxValue => { + "NKKEODOBOEJ_AbilityMetaChangeNyxValue" + } + Nkkeodoboej::AbilityActionTriggerAbility => { + "NKKEODOBOEJ_AbilityActionTriggerAbility" + } + Nkkeodoboej::AbilityActionSetCrashDamage => { + "NKKEODOBOEJ_AbilityActionSetCrashDamage" + } + Nkkeodoboej::AbilityActionEffect => "NKKEODOBOEJ_AbilityActionEffect", + Nkkeodoboej::AbilityActionSummon => "NKKEODOBOEJ_AbilityActionSummon", + Nkkeodoboej::AbilityActionBlink => "NKKEODOBOEJ_AbilityActionBlink", + Nkkeodoboej::AbilityActionCreateGadget => { + "NKKEODOBOEJ_AbilityActionCreateGadget" + } + Nkkeodoboej::AbilityActionApplyLevelModifier => { + "NKKEODOBOEJ_AbilityActionApplyLevelModifier" + } + Nkkeodoboej::AbilityActionGenerateElemBall => { + "NKKEODOBOEJ_AbilityActionGenerateElemBall" + } + Nkkeodoboej::AbilityActionSetRandomOverrideMapValue => { + "NKKEODOBOEJ_AbilityActionSetRandomOverrideMapValue" + } + Nkkeodoboej::AbilityActionServerMonsterLog => { + "NKKEODOBOEJ_AbilityActionServerMonsterLog" + } + Nkkeodoboej::AbilityActionCreateTile => "NKKEODOBOEJ_AbilityActionCreateTile", + Nkkeodoboej::AbilityActionDestroyTile => { + "NKKEODOBOEJ_AbilityActionDestroyTile" + } + Nkkeodoboej::AbilityActionFireAfterImage => { + "NKKEODOBOEJ_AbilityActionFireAfterImage" + } + Nkkeodoboej::AbilityActionDeductStamina => { + "NKKEODOBOEJ_AbilityActionDeductStamina" + } + Nkkeodoboej::AbilityActionHitEffect => "NKKEODOBOEJ_AbilityActionHitEffect", + Nkkeodoboej::AbilityActionSetBulletTrackTarget => { + "NKKEODOBOEJ_AbilityActionSetBulletTrackTarget" + } + Nkkeodoboej::AbilityActionFireworkEffect => { + "NKKEODOBOEJ_AbilityActionFireworkEffect" + } + Nkkeodoboej::AbilityActionLevelBankAddStuff => { + "NKKEODOBOEJ_AbilityActionLevelBankAddStuff" + } + Nkkeodoboej::AbilityActionGetMaterialParamFloat => { + "NKKEODOBOEJ_AbilityActionGetMaterialParamFloat" + } + Nkkeodoboej::AbilityActionGetMaterialParamVector => { + "NKKEODOBOEJ_AbilityActionGetMaterialParamVector" + } + Nkkeodoboej::AbilityActionSpectacleBuildRecreateGadget => { + "NKKEODOBOEJ_AbilityActionSpectacleBuildRecreateGadget" + } + Nkkeodoboej::AbilityMixinAvatarSteerByCamera => { + "NKKEODOBOEJ_AbilityMixinAvatarSteerByCamera" + } + Nkkeodoboej::AbilityMixinMonsterDefend => { + "NKKEODOBOEJ_AbilityMixinMonsterDefend" + } + Nkkeodoboej::AbilityMixinWindZone => "NKKEODOBOEJ_AbilityMixinWindZone", + Nkkeodoboej::AbilityMixinCostStamina => "NKKEODOBOEJ_AbilityMixinCostStamina", + Nkkeodoboej::AbilityMixinEliteShield => "NKKEODOBOEJ_AbilityMixinEliteShield", + Nkkeodoboej::AbilityMixinElementShield => { + "NKKEODOBOEJ_AbilityMixinElementShield" + } + Nkkeodoboej::AbilityMixinGlobalShield => { + "NKKEODOBOEJ_AbilityMixinGlobalShield" + } + Nkkeodoboej::AbilityMixinShieldBar => "NKKEODOBOEJ_AbilityMixinShieldBar", + Nkkeodoboej::AbilityMixinWindSeedSpawner => { + "NKKEODOBOEJ_AbilityMixinWindSeedSpawner" + } + Nkkeodoboej::AbilityMixinDoActionByElementReaction => { + "NKKEODOBOEJ_AbilityMixinDoActionByElementReaction" + } + Nkkeodoboej::AbilityMixinFieldEntityCountChange => { + "NKKEODOBOEJ_AbilityMixinFieldEntityCountChange" + } + Nkkeodoboej::AbilityMixinScenePropSync => { + "NKKEODOBOEJ_AbilityMixinScenePropSync" + } + Nkkeodoboej::AbilityMixinWidgetMpSupport => { + "NKKEODOBOEJ_AbilityMixinWidgetMpSupport" + } + Nkkeodoboej::AbilityMixinDoActionBySelfModifierElementDurabilityRatio => { + "NKKEODOBOEJ_AbilityMixinDoActionBySelfModifierElementDurabilityRatio" + } + Nkkeodoboej::AbilityMixinFireworksLauncher => { + "NKKEODOBOEJ_AbilityMixinFireworksLauncher" + } + Nkkeodoboej::AbilityMixinAttackResultCreateCount => { + "NKKEODOBOEJ_AbilityMixinAttackResultCreateCount" + } + Nkkeodoboej::AbilityMixinUgcTimeControl => { + "NKKEODOBOEJ_AbilityMixinUgcTimeControl" + } + Nkkeodoboej::AbilityMixinAvatarCombat => { + "NKKEODOBOEJ_AbilityMixinAvatarCombat" + } + Nkkeodoboej::AbilityMixinDeathZoneRegionalPlayMixin => { + "NKKEODOBOEJ_AbilityMixinDeathZoneRegionalPlayMixin" + } + Nkkeodoboej::AbilityMixinUiInteract => "NKKEODOBOEJ_AbilityMixinUiInteract", + Nkkeodoboej::AbilityMixinShootFromCamera => { + "NKKEODOBOEJ_AbilityMixinShootFromCamera" + } + Nkkeodoboej::AbilityMixinEraseBrickActivity => { + "NKKEODOBOEJ_AbilityMixinEraseBrickActivity" + } + Nkkeodoboej::AbilityMixinBreakout => "NKKEODOBOEJ_AbilityMixinBreakout", + Nkkeodoboej::AbilityMixinDamageLoan => "NKKEODOBOEJ_AbilityMixinDamageLoan", + Nkkeodoboej::AbilityMixinBroadcastGv => "NKKEODOBOEJ_AbilityMixinBroadcastGv", + Nkkeodoboej::AbilityMixinReceiveGv => "NKKEODOBOEJ_AbilityMixinReceiveGv", + Nkkeodoboej::AbilityMixinRaycastSelectTarget => { + "NKKEODOBOEJ_AbilityMixinRaycastSelectTarget" + } + Nkkeodoboej::AbilityMixinEnergyCrystalTarget => { + "NKKEODOBOEJ_AbilityMixinEnergyCrystalTarget" + } + Nkkeodoboej::AbilityMixinRotationFollowCamera => { + "NKKEODOBOEJ_AbilityMixinRotationFollowCamera" + } + Nkkeodoboej::AbilityMixinBuoyantForce => { + "NKKEODOBOEJ_AbilityMixinBuoyantForce" + } + Nkkeodoboej::AbilityMixinFilmfestBallGame => { + "NKKEODOBOEJ_AbilityMixinFilmfestBallGame" + } + Nkkeodoboej::AbilityMixinCheckScanEntity => { + "NKKEODOBOEJ_AbilityMixinCheckScanEntity" + } + Nkkeodoboej::AbilityMixinTimeTrackPlayer => { + "NKKEODOBOEJ_AbilityMixinTimeTrackPlayer" + } + Nkkeodoboej::AbilityMixinPartFollow => "NKKEODOBOEJ_AbilityMixinPartFollow", + Nkkeodoboej::AbilityMixinChangePhlogiston => { + "NKKEODOBOEJ_AbilityMixinChangePhlogiston" + } + Nkkeodoboej::AbilityMixinHumanDragonCollabPickPhlogistonBall => { + "NKKEODOBOEJ_AbilityMixinHumanDragonCollabPickPhlogistonBall" + } + Nkkeodoboej::AbilityMixinFrequencyShieldBar => { + "NKKEODOBOEJ_AbilityMixinFrequencyShieldBar" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NKKEODOBOEJ_AbilityNone" => Some(Self::AbilityNone), + "NKKEODOBOEJ_AbilityMetaModifierChange" => { + Some(Self::AbilityMetaModifierChange) + } + "NKKEODOBOEJ_AbilityMetaCommandModifierChangeRequest" => { + Some(Self::AbilityMetaCommandModifierChangeRequest) + } + "NKKEODOBOEJ_AbilityMetaSpecialFloatArgument" => { + Some(Self::AbilityMetaSpecialFloatArgument) + } + "NKKEODOBOEJ_AbilityMetaOverrideParam" => { + Some(Self::AbilityMetaOverrideParam) + } + "NKKEODOBOEJ_AbilityMetaClearOverrideParam" => { + Some(Self::AbilityMetaClearOverrideParam) + } + "NKKEODOBOEJ_AbilityMetaReinitOverridemap" => { + Some(Self::AbilityMetaReinitOverridemap) + } + "NKKEODOBOEJ_AbilityMetaGlobalFloatValue" => { + Some(Self::AbilityMetaGlobalFloatValue) + } + "NKKEODOBOEJ_AbilityMetaClearGlobalFloatValue" => { + Some(Self::AbilityMetaClearGlobalFloatValue) + } + "NKKEODOBOEJ_AbilityMetaAbilityElementStrength" => { + Some(Self::AbilityMetaAbilityElementStrength) + } + "NKKEODOBOEJ_AbilityMetaAddOrGetAbilityAndTrigger" => { + Some(Self::AbilityMetaAddOrGetAbilityAndTrigger) + } + "NKKEODOBOEJ_AbilityMetaSetKilledSetate" => { + Some(Self::AbilityMetaSetKilledSetate) + } + "NKKEODOBOEJ_AbilityMetaSetAbilityTrigger" => { + Some(Self::AbilityMetaSetAbilityTrigger) + } + "NKKEODOBOEJ_AbilityMetaAddNewAbility" => { + Some(Self::AbilityMetaAddNewAbility) + } + "NKKEODOBOEJ_AbilityMetaRemoveAbility" => { + Some(Self::AbilityMetaRemoveAbility) + } + "NKKEODOBOEJ_AbilityMetaSetModifierApplyEntity" => { + Some(Self::AbilityMetaSetModifierApplyEntity) + } + "NKKEODOBOEJ_AbilityMetaModifierDurabilityChange" => { + Some(Self::AbilityMetaModifierDurabilityChange) + } + "NKKEODOBOEJ_AbilityMetaElementReactionVisual" => { + Some(Self::AbilityMetaElementReactionVisual) + } + "NKKEODOBOEJ_AbilityMetaSetPoseParameter" => { + Some(Self::AbilityMetaSetPoseParameter) + } + "NKKEODOBOEJ_AbilityMetaUpdateBaseReactionDamage" => { + Some(Self::AbilityMetaUpdateBaseReactionDamage) + } + "NKKEODOBOEJ_AbilityMetaTriggerElementReaction" => { + Some(Self::AbilityMetaTriggerElementReaction) + } + "NKKEODOBOEJ_AbilityMetaLoseHp" => Some(Self::AbilityMetaLoseHp), + "NKKEODOBOEJ_AbilityMetaDurabilityIsZero" => { + Some(Self::AbilityMetaDurabilityIsZero) + } + "NKKEODOBOEJ_AbilityMetaTriggerArkheReaction" => { + Some(Self::AbilityMetaTriggerArkheReaction) + } + "NKKEODOBOEJ_AbilityMetaChangeNyxValue" => { + Some(Self::AbilityMetaChangeNyxValue) + } + "NKKEODOBOEJ_AbilityActionTriggerAbility" => { + Some(Self::AbilityActionTriggerAbility) + } + "NKKEODOBOEJ_AbilityActionSetCrashDamage" => { + Some(Self::AbilityActionSetCrashDamage) + } + "NKKEODOBOEJ_AbilityActionEffect" => Some(Self::AbilityActionEffect), + "NKKEODOBOEJ_AbilityActionSummon" => Some(Self::AbilityActionSummon), + "NKKEODOBOEJ_AbilityActionBlink" => Some(Self::AbilityActionBlink), + "NKKEODOBOEJ_AbilityActionCreateGadget" => { + Some(Self::AbilityActionCreateGadget) + } + "NKKEODOBOEJ_AbilityActionApplyLevelModifier" => { + Some(Self::AbilityActionApplyLevelModifier) + } + "NKKEODOBOEJ_AbilityActionGenerateElemBall" => { + Some(Self::AbilityActionGenerateElemBall) + } + "NKKEODOBOEJ_AbilityActionSetRandomOverrideMapValue" => { + Some(Self::AbilityActionSetRandomOverrideMapValue) + } + "NKKEODOBOEJ_AbilityActionServerMonsterLog" => { + Some(Self::AbilityActionServerMonsterLog) + } + "NKKEODOBOEJ_AbilityActionCreateTile" => Some(Self::AbilityActionCreateTile), + "NKKEODOBOEJ_AbilityActionDestroyTile" => { + Some(Self::AbilityActionDestroyTile) + } + "NKKEODOBOEJ_AbilityActionFireAfterImage" => { + Some(Self::AbilityActionFireAfterImage) + } + "NKKEODOBOEJ_AbilityActionDeductStamina" => { + Some(Self::AbilityActionDeductStamina) + } + "NKKEODOBOEJ_AbilityActionHitEffect" => Some(Self::AbilityActionHitEffect), + "NKKEODOBOEJ_AbilityActionSetBulletTrackTarget" => { + Some(Self::AbilityActionSetBulletTrackTarget) + } + "NKKEODOBOEJ_AbilityActionFireworkEffect" => { + Some(Self::AbilityActionFireworkEffect) + } + "NKKEODOBOEJ_AbilityActionLevelBankAddStuff" => { + Some(Self::AbilityActionLevelBankAddStuff) + } + "NKKEODOBOEJ_AbilityActionGetMaterialParamFloat" => { + Some(Self::AbilityActionGetMaterialParamFloat) + } + "NKKEODOBOEJ_AbilityActionGetMaterialParamVector" => { + Some(Self::AbilityActionGetMaterialParamVector) + } + "NKKEODOBOEJ_AbilityActionSpectacleBuildRecreateGadget" => { + Some(Self::AbilityActionSpectacleBuildRecreateGadget) + } + "NKKEODOBOEJ_AbilityMixinAvatarSteerByCamera" => { + Some(Self::AbilityMixinAvatarSteerByCamera) + } + "NKKEODOBOEJ_AbilityMixinMonsterDefend" => { + Some(Self::AbilityMixinMonsterDefend) + } + "NKKEODOBOEJ_AbilityMixinWindZone" => Some(Self::AbilityMixinWindZone), + "NKKEODOBOEJ_AbilityMixinCostStamina" => Some(Self::AbilityMixinCostStamina), + "NKKEODOBOEJ_AbilityMixinEliteShield" => Some(Self::AbilityMixinEliteShield), + "NKKEODOBOEJ_AbilityMixinElementShield" => { + Some(Self::AbilityMixinElementShield) + } + "NKKEODOBOEJ_AbilityMixinGlobalShield" => { + Some(Self::AbilityMixinGlobalShield) + } + "NKKEODOBOEJ_AbilityMixinShieldBar" => Some(Self::AbilityMixinShieldBar), + "NKKEODOBOEJ_AbilityMixinWindSeedSpawner" => { + Some(Self::AbilityMixinWindSeedSpawner) + } + "NKKEODOBOEJ_AbilityMixinDoActionByElementReaction" => { + Some(Self::AbilityMixinDoActionByElementReaction) + } + "NKKEODOBOEJ_AbilityMixinFieldEntityCountChange" => { + Some(Self::AbilityMixinFieldEntityCountChange) + } + "NKKEODOBOEJ_AbilityMixinScenePropSync" => { + Some(Self::AbilityMixinScenePropSync) + } + "NKKEODOBOEJ_AbilityMixinWidgetMpSupport" => { + Some(Self::AbilityMixinWidgetMpSupport) + } + "NKKEODOBOEJ_AbilityMixinDoActionBySelfModifierElementDurabilityRatio" => { + Some(Self::AbilityMixinDoActionBySelfModifierElementDurabilityRatio) + } + "NKKEODOBOEJ_AbilityMixinFireworksLauncher" => { + Some(Self::AbilityMixinFireworksLauncher) + } + "NKKEODOBOEJ_AbilityMixinAttackResultCreateCount" => { + Some(Self::AbilityMixinAttackResultCreateCount) + } + "NKKEODOBOEJ_AbilityMixinUgcTimeControl" => { + Some(Self::AbilityMixinUgcTimeControl) + } + "NKKEODOBOEJ_AbilityMixinAvatarCombat" => { + Some(Self::AbilityMixinAvatarCombat) + } + "NKKEODOBOEJ_AbilityMixinDeathZoneRegionalPlayMixin" => { + Some(Self::AbilityMixinDeathZoneRegionalPlayMixin) + } + "NKKEODOBOEJ_AbilityMixinUiInteract" => Some(Self::AbilityMixinUiInteract), + "NKKEODOBOEJ_AbilityMixinShootFromCamera" => { + Some(Self::AbilityMixinShootFromCamera) + } + "NKKEODOBOEJ_AbilityMixinEraseBrickActivity" => { + Some(Self::AbilityMixinEraseBrickActivity) + } + "NKKEODOBOEJ_AbilityMixinBreakout" => Some(Self::AbilityMixinBreakout), + "NKKEODOBOEJ_AbilityMixinDamageLoan" => Some(Self::AbilityMixinDamageLoan), + "NKKEODOBOEJ_AbilityMixinBroadcastGv" => Some(Self::AbilityMixinBroadcastGv), + "NKKEODOBOEJ_AbilityMixinReceiveGv" => Some(Self::AbilityMixinReceiveGv), + "NKKEODOBOEJ_AbilityMixinRaycastSelectTarget" => { + Some(Self::AbilityMixinRaycastSelectTarget) + } + "NKKEODOBOEJ_AbilityMixinEnergyCrystalTarget" => { + Some(Self::AbilityMixinEnergyCrystalTarget) + } + "NKKEODOBOEJ_AbilityMixinRotationFollowCamera" => { + Some(Self::AbilityMixinRotationFollowCamera) + } + "NKKEODOBOEJ_AbilityMixinBuoyantForce" => { + Some(Self::AbilityMixinBuoyantForce) + } + "NKKEODOBOEJ_AbilityMixinFilmfestBallGame" => { + Some(Self::AbilityMixinFilmfestBallGame) + } + "NKKEODOBOEJ_AbilityMixinCheckScanEntity" => { + Some(Self::AbilityMixinCheckScanEntity) + } + "NKKEODOBOEJ_AbilityMixinTimeTrackPlayer" => { + Some(Self::AbilityMixinTimeTrackPlayer) + } + "NKKEODOBOEJ_AbilityMixinPartFollow" => Some(Self::AbilityMixinPartFollow), + "NKKEODOBOEJ_AbilityMixinChangePhlogiston" => { + Some(Self::AbilityMixinChangePhlogiston) + } + "NKKEODOBOEJ_AbilityMixinHumanDragonCollabPickPhlogistonBall" => { + Some(Self::AbilityMixinHumanDragonCollabPickPhlogistonBall) + } + "NKKEODOBOEJ_AbilityMixinFrequencyShieldBar" => { + Some(Self::AbilityMixinFrequencyShieldBar) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Meeeclkccmd { + OpNone = 0, + OpActivate = 1, + OpDeactivate = 2, +} +impl Meeeclkccmd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Meeeclkccmd::OpNone => "MEEECLKCCMD_OpNone", + Meeeclkccmd::OpActivate => "MEEECLKCCMD_OpActivate", + Meeeclkccmd::OpDeactivate => "MEEECLKCCMD_OpDeactivate", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MEEECLKCCMD_OpNone" => Some(Self::OpNone), + "MEEECLKCCMD_OpActivate" => Some(Self::OpActivate), + "MEEECLKCCMD_OpDeactivate" => Some(Self::OpDeactivate), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hgolgnfbdhm { + Edit = 0, + SelfPass = 1, + Published = 2, +} +impl Hgolgnfbdhm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hgolgnfbdhm::Edit => "HGOLGNFBDHM_Edit", + Hgolgnfbdhm::SelfPass => "HGOLGNFBDHM_SelfPass", + Hgolgnfbdhm::Published => "HGOLGNFBDHM_Published", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HGOLGNFBDHM_Edit" => Some(Self::Edit), + "HGOLGNFBDHM_SelfPass" => Some(Self::SelfPass), + "HGOLGNFBDHM_Published" => Some(Self::Published), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nlkamgeknni { + StatusFail = 0, + StatusSucc = 1, + StatusPartial = 2, +} +impl Nlkamgeknni { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nlkamgeknni::StatusFail => "NLKAMGEKNNI_StatusFail", + Nlkamgeknni::StatusSucc => "NLKAMGEKNNI_StatusSucc", + Nlkamgeknni::StatusPartial => "NLKAMGEKNNI_StatusPartial", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NLKAMGEKNNI_StatusFail" => Some(Self::StatusFail), + "NLKAMGEKNNI_StatusSucc" => Some(Self::StatusSucc), + "NLKAMGEKNNI_StatusPartial" => Some(Self::StatusPartial), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Meldmegflld { + GcgActionNone = 0, + GcgActionSpecialPhase = 1, + GcgActionNextPhase = 2, + GcgActionDraw = 3, + GcgActionRedraw = 4, + GcgActionSelectOnstage = 5, + GcgActionRoll = 6, + GcgActionReroll = 7, + GcgActionAttack = 8, + GcgActionPlayCard = 9, + GcgActionPass = 10, + GcgActionReboot = 11, + GcgActionGameOver = 12, + GcgActionTrigger = 13, + GcgActionPhaseExit = 14, + GcgActionCustom = 15, + GcgActionNotifyCost = 16, + GcgActionAfterOperation = 17, + GcgActionUseSkill = 18, + GcgActionNotifySkillPreview = 19, + GcgActionPreviewAttack = 20, + GcgActionPreviewAfterAttack = 21, + GcgActionSendMessage = 22, + GcgActionWaitingCharacter = 23, + GcgActionTriggerSkill = 24, + GcgActionBeforeNextOperation = 25, + GcgActionRemoveCharacterCard = 26, + GcgActionOnstageCheck = 27, + GcgActionRecordBeforeOperationDiceNum = 28, + GcgActionCreateAutoOperation = 29, + GcgActionStartControllerTimer = 30, + GcgActionUseVehicleSkill = 31, + GcgActionPreviewUseVehicleSkill = 32, +} +impl Meldmegflld { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Meldmegflld::GcgActionNone => "MELDMEGFLLD_GcgActionNone", + Meldmegflld::GcgActionSpecialPhase => "MELDMEGFLLD_GcgActionSpecialPhase", + Meldmegflld::GcgActionNextPhase => "MELDMEGFLLD_GcgActionNextPhase", + Meldmegflld::GcgActionDraw => "MELDMEGFLLD_GcgActionDraw", + Meldmegflld::GcgActionRedraw => "MELDMEGFLLD_GcgActionRedraw", + Meldmegflld::GcgActionSelectOnstage => "MELDMEGFLLD_GcgActionSelectOnstage", + Meldmegflld::GcgActionRoll => "MELDMEGFLLD_GcgActionRoll", + Meldmegflld::GcgActionReroll => "MELDMEGFLLD_GcgActionReroll", + Meldmegflld::GcgActionAttack => "MELDMEGFLLD_GcgActionAttack", + Meldmegflld::GcgActionPlayCard => "MELDMEGFLLD_GcgActionPlayCard", + Meldmegflld::GcgActionPass => "MELDMEGFLLD_GcgActionPass", + Meldmegflld::GcgActionReboot => "MELDMEGFLLD_GcgActionReboot", + Meldmegflld::GcgActionGameOver => "MELDMEGFLLD_GcgActionGameOver", + Meldmegflld::GcgActionTrigger => "MELDMEGFLLD_GcgActionTrigger", + Meldmegflld::GcgActionPhaseExit => "MELDMEGFLLD_GcgActionPhaseExit", + Meldmegflld::GcgActionCustom => "MELDMEGFLLD_GcgActionCustom", + Meldmegflld::GcgActionNotifyCost => "MELDMEGFLLD_GcgActionNotifyCost", + Meldmegflld::GcgActionAfterOperation => "MELDMEGFLLD_GcgActionAfterOperation", + Meldmegflld::GcgActionUseSkill => "MELDMEGFLLD_GcgActionUseSkill", + Meldmegflld::GcgActionNotifySkillPreview => { + "MELDMEGFLLD_GcgActionNotifySkillPreview" + } + Meldmegflld::GcgActionPreviewAttack => "MELDMEGFLLD_GcgActionPreviewAttack", + Meldmegflld::GcgActionPreviewAfterAttack => { + "MELDMEGFLLD_GcgActionPreviewAfterAttack" + } + Meldmegflld::GcgActionSendMessage => "MELDMEGFLLD_GcgActionSendMessage", + Meldmegflld::GcgActionWaitingCharacter => { + "MELDMEGFLLD_GcgActionWaitingCharacter" + } + Meldmegflld::GcgActionTriggerSkill => "MELDMEGFLLD_GcgActionTriggerSkill", + Meldmegflld::GcgActionBeforeNextOperation => { + "MELDMEGFLLD_GcgActionBeforeNextOperation" + } + Meldmegflld::GcgActionRemoveCharacterCard => { + "MELDMEGFLLD_GcgActionRemoveCharacterCard" + } + Meldmegflld::GcgActionOnstageCheck => "MELDMEGFLLD_GcgActionOnstageCheck", + Meldmegflld::GcgActionRecordBeforeOperationDiceNum => { + "MELDMEGFLLD_GcgActionRecordBeforeOperationDiceNum" + } + Meldmegflld::GcgActionCreateAutoOperation => { + "MELDMEGFLLD_GcgActionCreateAutoOperation" + } + Meldmegflld::GcgActionStartControllerTimer => { + "MELDMEGFLLD_GcgActionStartControllerTimer" + } + Meldmegflld::GcgActionUseVehicleSkill => { + "MELDMEGFLLD_GcgActionUseVehicleSkill" + } + Meldmegflld::GcgActionPreviewUseVehicleSkill => { + "MELDMEGFLLD_GcgActionPreviewUseVehicleSkill" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MELDMEGFLLD_GcgActionNone" => Some(Self::GcgActionNone), + "MELDMEGFLLD_GcgActionSpecialPhase" => Some(Self::GcgActionSpecialPhase), + "MELDMEGFLLD_GcgActionNextPhase" => Some(Self::GcgActionNextPhase), + "MELDMEGFLLD_GcgActionDraw" => Some(Self::GcgActionDraw), + "MELDMEGFLLD_GcgActionRedraw" => Some(Self::GcgActionRedraw), + "MELDMEGFLLD_GcgActionSelectOnstage" => Some(Self::GcgActionSelectOnstage), + "MELDMEGFLLD_GcgActionRoll" => Some(Self::GcgActionRoll), + "MELDMEGFLLD_GcgActionReroll" => Some(Self::GcgActionReroll), + "MELDMEGFLLD_GcgActionAttack" => Some(Self::GcgActionAttack), + "MELDMEGFLLD_GcgActionPlayCard" => Some(Self::GcgActionPlayCard), + "MELDMEGFLLD_GcgActionPass" => Some(Self::GcgActionPass), + "MELDMEGFLLD_GcgActionReboot" => Some(Self::GcgActionReboot), + "MELDMEGFLLD_GcgActionGameOver" => Some(Self::GcgActionGameOver), + "MELDMEGFLLD_GcgActionTrigger" => Some(Self::GcgActionTrigger), + "MELDMEGFLLD_GcgActionPhaseExit" => Some(Self::GcgActionPhaseExit), + "MELDMEGFLLD_GcgActionCustom" => Some(Self::GcgActionCustom), + "MELDMEGFLLD_GcgActionNotifyCost" => Some(Self::GcgActionNotifyCost), + "MELDMEGFLLD_GcgActionAfterOperation" => Some(Self::GcgActionAfterOperation), + "MELDMEGFLLD_GcgActionUseSkill" => Some(Self::GcgActionUseSkill), + "MELDMEGFLLD_GcgActionNotifySkillPreview" => { + Some(Self::GcgActionNotifySkillPreview) + } + "MELDMEGFLLD_GcgActionPreviewAttack" => Some(Self::GcgActionPreviewAttack), + "MELDMEGFLLD_GcgActionPreviewAfterAttack" => { + Some(Self::GcgActionPreviewAfterAttack) + } + "MELDMEGFLLD_GcgActionSendMessage" => Some(Self::GcgActionSendMessage), + "MELDMEGFLLD_GcgActionWaitingCharacter" => { + Some(Self::GcgActionWaitingCharacter) + } + "MELDMEGFLLD_GcgActionTriggerSkill" => Some(Self::GcgActionTriggerSkill), + "MELDMEGFLLD_GcgActionBeforeNextOperation" => { + Some(Self::GcgActionBeforeNextOperation) + } + "MELDMEGFLLD_GcgActionRemoveCharacterCard" => { + Some(Self::GcgActionRemoveCharacterCard) + } + "MELDMEGFLLD_GcgActionOnstageCheck" => Some(Self::GcgActionOnstageCheck), + "MELDMEGFLLD_GcgActionRecordBeforeOperationDiceNum" => { + Some(Self::GcgActionRecordBeforeOperationDiceNum) + } + "MELDMEGFLLD_GcgActionCreateAutoOperation" => { + Some(Self::GcgActionCreateAutoOperation) + } + "MELDMEGFLLD_GcgActionStartControllerTimer" => { + Some(Self::GcgActionStartControllerTimer) + } + "MELDMEGFLLD_GcgActionUseVehicleSkill" => { + Some(Self::GcgActionUseVehicleSkill) + } + "MELDMEGFLLD_GcgActionPreviewUseVehicleSkill" => { + Some(Self::GcgActionPreviewUseVehicleSkill) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nhlcoopkjbl { + MailCollectibleUnkonw = 0, + MailNotCollectible = 1, + MailCollectibleUncollected = 2, + MailCollectibleCollected = 3, +} +impl Nhlcoopkjbl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nhlcoopkjbl::MailCollectibleUnkonw => "NHLCOOPKJBL_MailCollectibleUnkonw", + Nhlcoopkjbl::MailNotCollectible => "NHLCOOPKJBL_MailNotCollectible", + Nhlcoopkjbl::MailCollectibleUncollected => { + "NHLCOOPKJBL_MailCollectibleUncollected" + } + Nhlcoopkjbl::MailCollectibleCollected => { + "NHLCOOPKJBL_MailCollectibleCollected" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NHLCOOPKJBL_MailCollectibleUnkonw" => Some(Self::MailCollectibleUnkonw), + "NHLCOOPKJBL_MailNotCollectible" => Some(Self::MailNotCollectible), + "NHLCOOPKJBL_MailCollectibleUncollected" => { + Some(Self::MailCollectibleUncollected) + } + "NHLCOOPKJBL_MailCollectibleCollected" => { + Some(Self::MailCollectibleCollected) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jjhggdcjhji { + UgcRecordUsageNone = 0, + UgcRecordUsageImport = 1, + UgcRecordUsagePlay = 2, + UgcRecordUsageTrial = 3, + UgcRecordUsageCompare = 4, +} +impl Jjhggdcjhji { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jjhggdcjhji::UgcRecordUsageNone => "JJHGGDCJHJI_UgcRecordUsageNone", + Jjhggdcjhji::UgcRecordUsageImport => "JJHGGDCJHJI_UgcRecordUsageImport", + Jjhggdcjhji::UgcRecordUsagePlay => "JJHGGDCJHJI_UgcRecordUsagePlay", + Jjhggdcjhji::UgcRecordUsageTrial => "JJHGGDCJHJI_UgcRecordUsageTrial", + Jjhggdcjhji::UgcRecordUsageCompare => "JJHGGDCJHJI_UgcRecordUsageCompare", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JJHGGDCJHJI_UgcRecordUsageNone" => Some(Self::UgcRecordUsageNone), + "JJHGGDCJHJI_UgcRecordUsageImport" => Some(Self::UgcRecordUsageImport), + "JJHGGDCJHJI_UgcRecordUsagePlay" => Some(Self::UgcRecordUsagePlay), + "JJHGGDCJHJI_UgcRecordUsageTrial" => Some(Self::UgcRecordUsageTrial), + "JJHGGDCJHJI_UgcRecordUsageCompare" => Some(Self::UgcRecordUsageCompare), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Elkbkgfhaol { + TypeNone = 0, + TypePack = 1, + TypeEvent = 2, +} +impl Elkbkgfhaol { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Elkbkgfhaol::TypeNone => "ELKBKGFHAOL_TypeNone", + Elkbkgfhaol::TypePack => "ELKBKGFHAOL_TypePack", + Elkbkgfhaol::TypeEvent => "ELKBKGFHAOL_TypeEvent", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ELKBKGFHAOL_TypeNone" => Some(Self::TypeNone), + "ELKBKGFHAOL_TypePack" => Some(Self::TypePack), + "ELKBKGFHAOL_TypeEvent" => Some(Self::TypeEvent), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bheiacalnaf { + Close = 0, + CondNotMeet = 1, + CondMeet = 2, + Accept = 3, +} +impl Bheiacalnaf { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bheiacalnaf::Close => "BHEIACALNAF_Close", + Bheiacalnaf::CondNotMeet => "BHEIACALNAF_CondNotMeet", + Bheiacalnaf::CondMeet => "BHEIACALNAF_CondMeet", + Bheiacalnaf::Accept => "BHEIACALNAF_Accept", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BHEIACALNAF_Close" => Some(Self::Close), + "BHEIACALNAF_CondNotMeet" => Some(Self::CondNotMeet), + "BHEIACALNAF_CondMeet" => Some(Self::CondMeet), + "BHEIACALNAF_Accept" => Some(Self::Accept), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hmocjieppll { + ActionTypeNone = 0, + ActionTypePlayerMove = 1, +} +impl Hmocjieppll { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hmocjieppll::ActionTypeNone => "HMOCJIEPPLL_ActionTypeNone", + Hmocjieppll::ActionTypePlayerMove => "HMOCJIEPPLL_ActionTypePlayerMove", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HMOCJIEPPLL_ActionTypeNone" => Some(Self::ActionTypeNone), + "HMOCJIEPPLL_ActionTypePlayerMove" => Some(Self::ActionTypePlayerMove), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gbjfmenjkne { + None = 0, + Fail = 1, + Succ = 2, + Pause = 3, +} +impl Gbjfmenjkne { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gbjfmenjkne::None => "GBJFMENJKNE_None", + Gbjfmenjkne::Fail => "GBJFMENJKNE_Fail", + Gbjfmenjkne::Succ => "GBJFMENJKNE_Succ", + Gbjfmenjkne::Pause => "GBJFMENJKNE_Pause", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GBJFMENJKNE_None" => Some(Self::None), + "GBJFMENJKNE_Fail" => Some(Self::Fail), + "GBJFMENJKNE_Succ" => Some(Self::Succ), + "GBJFMENJKNE_Pause" => Some(Self::Pause), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bbbemdapogh { + PropChangeNone = 0, + PropChangeStatueRecover = 1, + PropChangeEnergyBall = 2, + PropChangeAbility = 3, + PropChangeLevelup = 4, + PropChangeItem = 5, + PropChangeAvatarCard = 6, + PropChangeCityLevelup = 7, + PropChangeAvatarUpgrade = 8, + PropChangeAvatarPromote = 9, + PropChangePlayerAddExp = 10, + PropChangeFinishQuest = 11, + PropChangeGm = 12, + PropChangeManualAdjustWorldLevel = 13, +} +impl Bbbemdapogh { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bbbemdapogh::PropChangeNone => "BBBEMDAPOGH_PropChangeNone", + Bbbemdapogh::PropChangeStatueRecover => "BBBEMDAPOGH_PropChangeStatueRecover", + Bbbemdapogh::PropChangeEnergyBall => "BBBEMDAPOGH_PropChangeEnergyBall", + Bbbemdapogh::PropChangeAbility => "BBBEMDAPOGH_PropChangeAbility", + Bbbemdapogh::PropChangeLevelup => "BBBEMDAPOGH_PropChangeLevelup", + Bbbemdapogh::PropChangeItem => "BBBEMDAPOGH_PropChangeItem", + Bbbemdapogh::PropChangeAvatarCard => "BBBEMDAPOGH_PropChangeAvatarCard", + Bbbemdapogh::PropChangeCityLevelup => "BBBEMDAPOGH_PropChangeCityLevelup", + Bbbemdapogh::PropChangeAvatarUpgrade => "BBBEMDAPOGH_PropChangeAvatarUpgrade", + Bbbemdapogh::PropChangeAvatarPromote => "BBBEMDAPOGH_PropChangeAvatarPromote", + Bbbemdapogh::PropChangePlayerAddExp => "BBBEMDAPOGH_PropChangePlayerAddExp", + Bbbemdapogh::PropChangeFinishQuest => "BBBEMDAPOGH_PropChangeFinishQuest", + Bbbemdapogh::PropChangeGm => "BBBEMDAPOGH_PropChangeGm", + Bbbemdapogh::PropChangeManualAdjustWorldLevel => { + "BBBEMDAPOGH_PropChangeManualAdjustWorldLevel" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BBBEMDAPOGH_PropChangeNone" => Some(Self::PropChangeNone), + "BBBEMDAPOGH_PropChangeStatueRecover" => Some(Self::PropChangeStatueRecover), + "BBBEMDAPOGH_PropChangeEnergyBall" => Some(Self::PropChangeEnergyBall), + "BBBEMDAPOGH_PropChangeAbility" => Some(Self::PropChangeAbility), + "BBBEMDAPOGH_PropChangeLevelup" => Some(Self::PropChangeLevelup), + "BBBEMDAPOGH_PropChangeItem" => Some(Self::PropChangeItem), + "BBBEMDAPOGH_PropChangeAvatarCard" => Some(Self::PropChangeAvatarCard), + "BBBEMDAPOGH_PropChangeCityLevelup" => Some(Self::PropChangeCityLevelup), + "BBBEMDAPOGH_PropChangeAvatarUpgrade" => Some(Self::PropChangeAvatarUpgrade), + "BBBEMDAPOGH_PropChangeAvatarPromote" => Some(Self::PropChangeAvatarPromote), + "BBBEMDAPOGH_PropChangePlayerAddExp" => Some(Self::PropChangePlayerAddExp), + "BBBEMDAPOGH_PropChangeFinishQuest" => Some(Self::PropChangeFinishQuest), + "BBBEMDAPOGH_PropChangeGm" => Some(Self::PropChangeGm), + "BBBEMDAPOGH_PropChangeManualAdjustWorldLevel" => { + Some(Self::PropChangeManualAdjustWorldLevel) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nmjpfhhjdan { + MatchNone = 0, + MatchFinish = 1, + MatchPlayerCancel = 2, + MatchTimeout = 3, + MatchPlayerConfirm = 4, + MatchFailed = 5, + MatchSystemError = 6, + MatchInterrupted = 7, + MatchMpUnavailable = 8, + MatchConfirmTimeout = 9, +} +impl Nmjpfhhjdan { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nmjpfhhjdan::MatchNone => "NMJPFHHJDAN_MatchNone", + Nmjpfhhjdan::MatchFinish => "NMJPFHHJDAN_MatchFinish", + Nmjpfhhjdan::MatchPlayerCancel => "NMJPFHHJDAN_MatchPlayerCancel", + Nmjpfhhjdan::MatchTimeout => "NMJPFHHJDAN_MatchTimeout", + Nmjpfhhjdan::MatchPlayerConfirm => "NMJPFHHJDAN_MatchPlayerConfirm", + Nmjpfhhjdan::MatchFailed => "NMJPFHHJDAN_MatchFailed", + Nmjpfhhjdan::MatchSystemError => "NMJPFHHJDAN_MatchSystemError", + Nmjpfhhjdan::MatchInterrupted => "NMJPFHHJDAN_MatchInterrupted", + Nmjpfhhjdan::MatchMpUnavailable => "NMJPFHHJDAN_MatchMpUnavailable", + Nmjpfhhjdan::MatchConfirmTimeout => "NMJPFHHJDAN_MatchConfirmTimeout", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NMJPFHHJDAN_MatchNone" => Some(Self::MatchNone), + "NMJPFHHJDAN_MatchFinish" => Some(Self::MatchFinish), + "NMJPFHHJDAN_MatchPlayerCancel" => Some(Self::MatchPlayerCancel), + "NMJPFHHJDAN_MatchTimeout" => Some(Self::MatchTimeout), + "NMJPFHHJDAN_MatchPlayerConfirm" => Some(Self::MatchPlayerConfirm), + "NMJPFHHJDAN_MatchFailed" => Some(Self::MatchFailed), + "NMJPFHHJDAN_MatchSystemError" => Some(Self::MatchSystemError), + "NMJPFHHJDAN_MatchInterrupted" => Some(Self::MatchInterrupted), + "NMJPFHHJDAN_MatchMpUnavailable" => Some(Self::MatchMpUnavailable), + "NMJPFHHJDAN_MatchConfirmTimeout" => Some(Self::MatchConfirmTimeout), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Edgimhghgpa { + RentSucc = 0, + RentLimit = 1, + RentRepeated = 2, +} +impl Edgimhghgpa { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Edgimhghgpa::RentSucc => "EDGIMHGHGPA_RentSucc", + Edgimhghgpa::RentLimit => "EDGIMHGHGPA_RentLimit", + Edgimhghgpa::RentRepeated => "EDGIMHGHGPA_RentRepeated", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EDGIMHGHGPA_RentSucc" => Some(Self::RentSucc), + "EDGIMHGHGPA_RentLimit" => Some(Self::RentLimit), + "EDGIMHGHGPA_RentRepeated" => Some(Self::RentRepeated), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pmobconjbef { + Level = 0, + Quest = 1, +} +impl Pmobconjbef { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pmobconjbef::Level => "PMOBCONJBEF_Level", + Pmobconjbef::Quest => "PMOBCONJBEF_Quest", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PMOBCONJBEF_Level" => Some(Self::Level), + "PMOBCONJBEF_Quest" => Some(Self::Quest), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jdfkbdohhni { + RegionSearchNone = 0, + RegionSearchUnstarted = 1, + RegionSearchStarted = 2, + RegionSearchWaitReward = 3, + RegionSearchFinished = 4, +} +impl Jdfkbdohhni { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jdfkbdohhni::RegionSearchNone => "JDFKBDOHHNI_RegionSearchNone", + Jdfkbdohhni::RegionSearchUnstarted => "JDFKBDOHHNI_RegionSearchUnstarted", + Jdfkbdohhni::RegionSearchStarted => "JDFKBDOHHNI_RegionSearchStarted", + Jdfkbdohhni::RegionSearchWaitReward => "JDFKBDOHHNI_RegionSearchWaitReward", + Jdfkbdohhni::RegionSearchFinished => "JDFKBDOHHNI_RegionSearchFinished", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JDFKBDOHHNI_RegionSearchNone" => Some(Self::RegionSearchNone), + "JDFKBDOHHNI_RegionSearchUnstarted" => Some(Self::RegionSearchUnstarted), + "JDFKBDOHHNI_RegionSearchStarted" => Some(Self::RegionSearchStarted), + "JDFKBDOHHNI_RegionSearchWaitReward" => Some(Self::RegionSearchWaitReward), + "JDFKBDOHHNI_RegionSearchFinished" => Some(Self::RegionSearchFinished), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dplhebckkgg { + ReceiveOutput = 0, + StopForge = 1, +} +impl Dplhebckkgg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dplhebckkgg::ReceiveOutput => "DPLHEBCKKGG_ReceiveOutput", + Dplhebckkgg::StopForge => "DPLHEBCKKGG_StopForge", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DPLHEBCKKGG_ReceiveOutput" => Some(Self::ReceiveOutput), + "DPLHEBCKKGG_StopForge" => Some(Self::StopForge), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ijjojmpijkc { + MpSettingNoEnter = 0, + MpSettingEnterFreely = 1, + MpSettingEnterAfterApply = 2, +} +impl Ijjojmpijkc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ijjojmpijkc::MpSettingNoEnter => "IJJOJMPIJKC_MpSettingNoEnter", + Ijjojmpijkc::MpSettingEnterFreely => "IJJOJMPIJKC_MpSettingEnterFreely", + Ijjojmpijkc::MpSettingEnterAfterApply => { + "IJJOJMPIJKC_MpSettingEnterAfterApply" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IJJOJMPIJKC_MpSettingNoEnter" => Some(Self::MpSettingNoEnter), + "IJJOJMPIJKC_MpSettingEnterFreely" => Some(Self::MpSettingEnterFreely), + "IJJOJMPIJKC_MpSettingEnterAfterApply" => { + Some(Self::MpSettingEnterAfterApply) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Adfnpmillop { + GcgPerformInvalid = 0, + GcgPerformCardExchange = 1, + GcgPerformFirstHand = 2, + GcgPerformReroll = 3, + GcgPreformCostRevise = 4, + GcgPerformRedraw = 5, + GcgPerformHistory = 6, + GcgPerformBeforeHenshin = 7, +} +impl Adfnpmillop { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Adfnpmillop::GcgPerformInvalid => "ADFNPMILLOP_GcgPerformInvalid", + Adfnpmillop::GcgPerformCardExchange => "ADFNPMILLOP_GcgPerformCardExchange", + Adfnpmillop::GcgPerformFirstHand => "ADFNPMILLOP_GcgPerformFirstHand", + Adfnpmillop::GcgPerformReroll => "ADFNPMILLOP_GcgPerformReroll", + Adfnpmillop::GcgPreformCostRevise => "ADFNPMILLOP_GcgPreformCostRevise", + Adfnpmillop::GcgPerformRedraw => "ADFNPMILLOP_GcgPerformRedraw", + Adfnpmillop::GcgPerformHistory => "ADFNPMILLOP_GcgPerformHistory", + Adfnpmillop::GcgPerformBeforeHenshin => "ADFNPMILLOP_GcgPerformBeforeHenshin", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ADFNPMILLOP_GcgPerformInvalid" => Some(Self::GcgPerformInvalid), + "ADFNPMILLOP_GcgPerformCardExchange" => Some(Self::GcgPerformCardExchange), + "ADFNPMILLOP_GcgPerformFirstHand" => Some(Self::GcgPerformFirstHand), + "ADFNPMILLOP_GcgPerformReroll" => Some(Self::GcgPerformReroll), + "ADFNPMILLOP_GcgPreformCostRevise" => Some(Self::GcgPreformCostRevise), + "ADFNPMILLOP_GcgPerformRedraw" => Some(Self::GcgPerformRedraw), + "ADFNPMILLOP_GcgPerformHistory" => Some(Self::GcgPerformHistory), + "ADFNPMILLOP_GcgPerformBeforeHenshin" => Some(Self::GcgPerformBeforeHenshin), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cdkllhkmokd { + Invalid = 0, + KickByHost = 1, + BackToMyWorld = 2, + HomeBlocked = 3, + HomeInEditMode = 4, + ByMuip = 5, + CurModuleClosed = 6, +} +impl Cdkllhkmokd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cdkllhkmokd::Invalid => "CDKLLHKMOKD_Invalid", + Cdkllhkmokd::KickByHost => "CDKLLHKMOKD_KickByHost", + Cdkllhkmokd::BackToMyWorld => "CDKLLHKMOKD_BackToMyWorld", + Cdkllhkmokd::HomeBlocked => "CDKLLHKMOKD_HomeBlocked", + Cdkllhkmokd::HomeInEditMode => "CDKLLHKMOKD_HomeInEditMode", + Cdkllhkmokd::ByMuip => "CDKLLHKMOKD_ByMuip", + Cdkllhkmokd::CurModuleClosed => "CDKLLHKMOKD_CurModuleClosed", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CDKLLHKMOKD_Invalid" => Some(Self::Invalid), + "CDKLLHKMOKD_KickByHost" => Some(Self::KickByHost), + "CDKLLHKMOKD_BackToMyWorld" => Some(Self::BackToMyWorld), + "CDKLLHKMOKD_HomeBlocked" => Some(Self::HomeBlocked), + "CDKLLHKMOKD_HomeInEditMode" => Some(Self::HomeInEditMode), + "CDKLLHKMOKD_ByMuip" => Some(Self::ByMuip), + "CDKLLHKMOKD_CurModuleClosed" => Some(Self::CurModuleClosed), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gfilbkbgmaf { + Attach = 0, + Detach = 1, +} +impl Gfilbkbgmaf { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gfilbkbgmaf::Attach => "GFILBKBGMAF_Attach", + Gfilbkbgmaf::Detach => "GFILBKBGMAF_Detach", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GFILBKBGMAF_Attach" => Some(Self::Attach), + "GFILBKBGMAF_Detach" => Some(Self::Detach), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Edegmklfifi { + None = 0, + Pack = 1, + Plant = 2, +} +impl Edegmklfifi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Edegmklfifi::None => "EDEGMKLFIFI_None", + Edegmklfifi::Pack => "EDEGMKLFIFI_Pack", + Edegmklfifi::Plant => "EDEGMKLFIFI_Plant", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EDEGMKLFIFI_None" => Some(Self::None), + "EDEGMKLFIFI_Pack" => Some(Self::Pack), + "EDEGMKLFIFI_Plant" => Some(Self::Plant), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pehcgoekbdg { + SandwormLevelNotOpen = 0, + SandwormLevelPreQuest = 1, + SandwormLevelStart = 2, + SandwormLevelSequelQuest = 3, +} +impl Pehcgoekbdg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pehcgoekbdg::SandwormLevelNotOpen => "PEHCGOEKBDG_SandwormLevelNotOpen", + Pehcgoekbdg::SandwormLevelPreQuest => "PEHCGOEKBDG_SandwormLevelPreQuest", + Pehcgoekbdg::SandwormLevelStart => "PEHCGOEKBDG_SandwormLevelStart", + Pehcgoekbdg::SandwormLevelSequelQuest => { + "PEHCGOEKBDG_SandwormLevelSequelQuest" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PEHCGOEKBDG_SandwormLevelNotOpen" => Some(Self::SandwormLevelNotOpen), + "PEHCGOEKBDG_SandwormLevelPreQuest" => Some(Self::SandwormLevelPreQuest), + "PEHCGOEKBDG_SandwormLevelStart" => Some(Self::SandwormLevelStart), + "PEHCGOEKBDG_SandwormLevelSequelQuest" => { + Some(Self::SandwormLevelSequelQuest) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pbjbnapeoed { + ExpeditionNone = 0, + ExpeditionStarted = 1, + ExpeditionFinished = 2, + ExpeditionRewarded = 3, + ExpeditionLocked = 4, +} +impl Pbjbnapeoed { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pbjbnapeoed::ExpeditionNone => "PBJBNAPEOED_ExpeditionNone", + Pbjbnapeoed::ExpeditionStarted => "PBJBNAPEOED_ExpeditionStarted", + Pbjbnapeoed::ExpeditionFinished => "PBJBNAPEOED_ExpeditionFinished", + Pbjbnapeoed::ExpeditionRewarded => "PBJBNAPEOED_ExpeditionRewarded", + Pbjbnapeoed::ExpeditionLocked => "PBJBNAPEOED_ExpeditionLocked", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PBJBNAPEOED_ExpeditionNone" => Some(Self::ExpeditionNone), + "PBJBNAPEOED_ExpeditionStarted" => Some(Self::ExpeditionStarted), + "PBJBNAPEOED_ExpeditionFinished" => Some(Self::ExpeditionFinished), + "PBJBNAPEOED_ExpeditionRewarded" => Some(Self::ExpeditionRewarded), + "PBJBNAPEOED_ExpeditionLocked" => Some(Self::ExpeditionLocked), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum PlayerDieType { + PlayerDieNone = 0, + PlayerDieKillByMonster = 1, + PlayerDieKillByGear = 2, + PlayerDieFall = 3, + PlayerDieDrawn = 4, + PlayerDieAbyss = 5, + PlayerDieGm = 6, + PlayerDieClimateCold = 7, + PlayerDieStormLighting = 8, + PlayerDieDirtyWaterErosion = 9, + PlayerDieLiquidPhlogiston = 10, +} +impl PlayerDieType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + PlayerDieType::PlayerDieNone => "PlayerDieType_PlayerDieNone", + PlayerDieType::PlayerDieKillByMonster => { + "PlayerDieType_PlayerDieKillByMonster" + } + PlayerDieType::PlayerDieKillByGear => "PlayerDieType_PlayerDieKillByGear", + PlayerDieType::PlayerDieFall => "PlayerDieType_PlayerDieFall", + PlayerDieType::PlayerDieDrawn => "PlayerDieType_PlayerDieDrawn", + PlayerDieType::PlayerDieAbyss => "PlayerDieType_PlayerDieAbyss", + PlayerDieType::PlayerDieGm => "PlayerDieType_PlayerDieGm", + PlayerDieType::PlayerDieClimateCold => "PlayerDieType_PlayerDieClimateCold", + PlayerDieType::PlayerDieStormLighting => { + "PlayerDieType_PlayerDieStormLighting" + } + PlayerDieType::PlayerDieDirtyWaterErosion => { + "PlayerDieType_PlayerDieDirtyWaterErosion" + } + PlayerDieType::PlayerDieLiquidPhlogiston => { + "PlayerDieType_PlayerDieLiquidPhlogiston" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PlayerDieType_PlayerDieNone" => Some(Self::PlayerDieNone), + "PlayerDieType_PlayerDieKillByMonster" => Some(Self::PlayerDieKillByMonster), + "PlayerDieType_PlayerDieKillByGear" => Some(Self::PlayerDieKillByGear), + "PlayerDieType_PlayerDieFall" => Some(Self::PlayerDieFall), + "PlayerDieType_PlayerDieDrawn" => Some(Self::PlayerDieDrawn), + "PlayerDieType_PlayerDieAbyss" => Some(Self::PlayerDieAbyss), + "PlayerDieType_PlayerDieGm" => Some(Self::PlayerDieGm), + "PlayerDieType_PlayerDieClimateCold" => Some(Self::PlayerDieClimateCold), + "PlayerDieType_PlayerDieStormLighting" => Some(Self::PlayerDieStormLighting), + "PlayerDieType_PlayerDieDirtyWaterErosion" => { + Some(Self::PlayerDieDirtyWaterErosion) + } + "PlayerDieType_PlayerDieLiquidPhlogiston" => { + Some(Self::PlayerDieLiquidPhlogiston) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ihacnpjbldi { + GcgZoneInvalid = 0, + GcgZoneDeck = 1, + GcgZoneHand = 2, + GcgZoneCharacter = 3, + GcgZoneModify = 4, + GcgZoneSummon = 5, + GcgZoneAssist = 7, + GcgZoneOnstage = 8, + GcgZoneRule = 9, +} +impl Ihacnpjbldi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ihacnpjbldi::GcgZoneInvalid => "IHACNPJBLDI_GcgZoneInvalid", + Ihacnpjbldi::GcgZoneDeck => "IHACNPJBLDI_GcgZoneDeck", + Ihacnpjbldi::GcgZoneHand => "IHACNPJBLDI_GcgZoneHand", + Ihacnpjbldi::GcgZoneCharacter => "IHACNPJBLDI_GcgZoneCharacter", + Ihacnpjbldi::GcgZoneModify => "IHACNPJBLDI_GcgZoneModify", + Ihacnpjbldi::GcgZoneSummon => "IHACNPJBLDI_GcgZoneSummon", + Ihacnpjbldi::GcgZoneAssist => "IHACNPJBLDI_GcgZoneAssist", + Ihacnpjbldi::GcgZoneOnstage => "IHACNPJBLDI_GcgZoneOnstage", + Ihacnpjbldi::GcgZoneRule => "IHACNPJBLDI_GcgZoneRule", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IHACNPJBLDI_GcgZoneInvalid" => Some(Self::GcgZoneInvalid), + "IHACNPJBLDI_GcgZoneDeck" => Some(Self::GcgZoneDeck), + "IHACNPJBLDI_GcgZoneHand" => Some(Self::GcgZoneHand), + "IHACNPJBLDI_GcgZoneCharacter" => Some(Self::GcgZoneCharacter), + "IHACNPJBLDI_GcgZoneModify" => Some(Self::GcgZoneModify), + "IHACNPJBLDI_GcgZoneSummon" => Some(Self::GcgZoneSummon), + "IHACNPJBLDI_GcgZoneAssist" => Some(Self::GcgZoneAssist), + "IHACNPJBLDI_GcgZoneOnstage" => Some(Self::GcgZoneOnstage), + "IHACNPJBLDI_GcgZoneRule" => Some(Self::GcgZoneRule), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum AvatarType { + None = 0, + Formal = 1, + Trial = 2, + Mirror = 3, +} +impl AvatarType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + AvatarType::None => "AVATAR_TYPE_NONE", + AvatarType::Formal => "AVATAR_TYPE_FORMAL", + AvatarType::Trial => "AVATAR_TYPE_TRIAL", + AvatarType::Mirror => "AVATAR_TYPE_MIRROR", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AVATAR_TYPE_NONE" => Some(Self::None), + "AVATAR_TYPE_FORMAL" => Some(Self::Formal), + "AVATAR_TYPE_TRIAL" => Some(Self::Trial), + "AVATAR_TYPE_MIRROR" => Some(Self::Mirror), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jiidngfkheb { + None = 0, + SnapShot = 1, + Init = 2, + BallScore = 3, + Shoot = 4, + Effect = 5, +} +impl Jiidngfkheb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jiidngfkheb::None => "JIIDNGFKHEB_None", + Jiidngfkheb::SnapShot => "JIIDNGFKHEB_SnapShot", + Jiidngfkheb::Init => "JIIDNGFKHEB_Init", + Jiidngfkheb::BallScore => "JIIDNGFKHEB_BallScore", + Jiidngfkheb::Shoot => "JIIDNGFKHEB_Shoot", + Jiidngfkheb::Effect => "JIIDNGFKHEB_Effect", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JIIDNGFKHEB_None" => Some(Self::None), + "JIIDNGFKHEB_SnapShot" => Some(Self::SnapShot), + "JIIDNGFKHEB_Init" => Some(Self::Init), + "JIIDNGFKHEB_BallScore" => Some(Self::BallScore), + "JIIDNGFKHEB_Shoot" => Some(Self::Shoot), + "JIIDNGFKHEB_Effect" => Some(Self::Effect), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dickjkioiop { + None = 0, + Theme = 1, + Falling = 2, + Track = 3, + Connection = 4, + Fever = 5, + Background = 6, + ThemeFollow = 7, + Instrument = 8, +} +impl Dickjkioiop { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dickjkioiop::None => "DICKJKIOIOP_None", + Dickjkioiop::Theme => "DICKJKIOIOP_Theme", + Dickjkioiop::Falling => "DICKJKIOIOP_Falling", + Dickjkioiop::Track => "DICKJKIOIOP_Track", + Dickjkioiop::Connection => "DICKJKIOIOP_Connection", + Dickjkioiop::Fever => "DICKJKIOIOP_Fever", + Dickjkioiop::Background => "DICKJKIOIOP_Background", + Dickjkioiop::ThemeFollow => "DICKJKIOIOP_ThemeFollow", + Dickjkioiop::Instrument => "DICKJKIOIOP_Instrument", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DICKJKIOIOP_None" => Some(Self::None), + "DICKJKIOIOP_Theme" => Some(Self::Theme), + "DICKJKIOIOP_Falling" => Some(Self::Falling), + "DICKJKIOIOP_Track" => Some(Self::Track), + "DICKJKIOIOP_Connection" => Some(Self::Connection), + "DICKJKIOIOP_Fever" => Some(Self::Fever), + "DICKJKIOIOP_Background" => Some(Self::Background), + "DICKJKIOIOP_ThemeFollow" => Some(Self::ThemeFollow), + "DICKJKIOIOP_Instrument" => Some(Self::Instrument), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jailcnefodi { + None = 0, + FormalMirror = 1, + TrialMirror = 2, + RentMirror = 3, +} +impl Jailcnefodi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jailcnefodi::None => "JAILCNEFODI_None", + Jailcnefodi::FormalMirror => "JAILCNEFODI_FormalMirror", + Jailcnefodi::TrialMirror => "JAILCNEFODI_TrialMirror", + Jailcnefodi::RentMirror => "JAILCNEFODI_RentMirror", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JAILCNEFODI_None" => Some(Self::None), + "JAILCNEFODI_FormalMirror" => Some(Self::FormalMirror), + "JAILCNEFODI_TrialMirror" => Some(Self::TrialMirror), + "JAILCNEFODI_RentMirror" => Some(Self::RentMirror), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mgjhmbjagap { + GcgSkillHpChangeNone = 0, + GcgSkillHpChangeDamage = 1, + GcgSkillHpChangeHeal = 2, +} +impl Mgjhmbjagap { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mgjhmbjagap::GcgSkillHpChangeNone => "MGJHMBJAGAP_GcgSkillHpChangeNone", + Mgjhmbjagap::GcgSkillHpChangeDamage => "MGJHMBJAGAP_GcgSkillHpChangeDamage", + Mgjhmbjagap::GcgSkillHpChangeHeal => "MGJHMBJAGAP_GcgSkillHpChangeHeal", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MGJHMBJAGAP_GcgSkillHpChangeNone" => Some(Self::GcgSkillHpChangeNone), + "MGJHMBJAGAP_GcgSkillHpChangeDamage" => Some(Self::GcgSkillHpChangeDamage), + "MGJHMBJAGAP_GcgSkillHpChangeHeal" => Some(Self::GcgSkillHpChangeHeal), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hdjecbnmhli { + None = 0, + OceanCurrent = 1, +} +impl Hdjecbnmhli { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hdjecbnmhli::None => "HDJECBNMHLI_None", + Hdjecbnmhli::OceanCurrent => "HDJECBNMHLI_OceanCurrent", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HDJECBNMHLI_None" => Some(Self::None), + "HDJECBNMHLI_OceanCurrent" => Some(Self::OceanCurrent), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jhhnlpaamin { + KeepRotX = 0, + KeepRotXy = 1, +} +impl Jhhnlpaamin { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jhhnlpaamin::KeepRotX => "JHHNLPAAMIN_KeepRotX", + Jhhnlpaamin::KeepRotXy => "JHHNLPAAMIN_KeepRotXy", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JHHNLPAAMIN_KeepRotX" => Some(Self::KeepRotX), + "JHHNLPAAMIN_KeepRotXy" => Some(Self::KeepRotXy), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ceocjhphedc { + TransmitNone = 0, + TransmitQuest = 1, +} +impl Ceocjhphedc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ceocjhphedc::TransmitNone => "CEOCJHPHEDC_TransmitNone", + Ceocjhphedc::TransmitQuest => "CEOCJHPHEDC_TransmitQuest", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CEOCJHPHEDC_TransmitNone" => Some(Self::TransmitNone), + "CEOCJHPHEDC_TransmitQuest" => Some(Self::TransmitQuest), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mckmnakkakb { + CompoundBoostTakeStatusNone = 0, + CompoundBoostTakeStatusBoostOnly = 1, + CompoundBoostTakeStatusBoostAndTake = 2, + CompoundBoostTakeStatusBagFull = 3, +} +impl Mckmnakkakb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mckmnakkakb::CompoundBoostTakeStatusNone => { + "MCKMNAKKAKB_CompoundBoostTakeStatusNone" + } + Mckmnakkakb::CompoundBoostTakeStatusBoostOnly => { + "MCKMNAKKAKB_CompoundBoostTakeStatusBoostOnly" + } + Mckmnakkakb::CompoundBoostTakeStatusBoostAndTake => { + "MCKMNAKKAKB_CompoundBoostTakeStatusBoostAndTake" + } + Mckmnakkakb::CompoundBoostTakeStatusBagFull => { + "MCKMNAKKAKB_CompoundBoostTakeStatusBagFull" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MCKMNAKKAKB_CompoundBoostTakeStatusNone" => { + Some(Self::CompoundBoostTakeStatusNone) + } + "MCKMNAKKAKB_CompoundBoostTakeStatusBoostOnly" => { + Some(Self::CompoundBoostTakeStatusBoostOnly) + } + "MCKMNAKKAKB_CompoundBoostTakeStatusBoostAndTake" => { + Some(Self::CompoundBoostTakeStatusBoostAndTake) + } + "MCKMNAKKAKB_CompoundBoostTakeStatusBagFull" => { + Some(Self::CompoundBoostTakeStatusBagFull) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cmdeepdjoga { + GcgDiceSideInvalid = 0, + GcgDiceSideCryo = 1, + GcgDiceSideHydro = 2, + GcgDiceSidePyro = 3, + GcgDiceSideElectro = 4, + GcgDiceSideGeo = 5, + GcgDiceSideDendro = 6, + GcgDiceSideAnemo = 7, + GcgDiceSidePaimon = 8, +} +impl Cmdeepdjoga { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cmdeepdjoga::GcgDiceSideInvalid => "CMDEEPDJOGA_GcgDiceSideInvalid", + Cmdeepdjoga::GcgDiceSideCryo => "CMDEEPDJOGA_GcgDiceSideCryo", + Cmdeepdjoga::GcgDiceSideHydro => "CMDEEPDJOGA_GcgDiceSideHydro", + Cmdeepdjoga::GcgDiceSidePyro => "CMDEEPDJOGA_GcgDiceSidePyro", + Cmdeepdjoga::GcgDiceSideElectro => "CMDEEPDJOGA_GcgDiceSideElectro", + Cmdeepdjoga::GcgDiceSideGeo => "CMDEEPDJOGA_GcgDiceSideGeo", + Cmdeepdjoga::GcgDiceSideDendro => "CMDEEPDJOGA_GcgDiceSideDendro", + Cmdeepdjoga::GcgDiceSideAnemo => "CMDEEPDJOGA_GcgDiceSideAnemo", + Cmdeepdjoga::GcgDiceSidePaimon => "CMDEEPDJOGA_GcgDiceSidePaimon", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CMDEEPDJOGA_GcgDiceSideInvalid" => Some(Self::GcgDiceSideInvalid), + "CMDEEPDJOGA_GcgDiceSideCryo" => Some(Self::GcgDiceSideCryo), + "CMDEEPDJOGA_GcgDiceSideHydro" => Some(Self::GcgDiceSideHydro), + "CMDEEPDJOGA_GcgDiceSidePyro" => Some(Self::GcgDiceSidePyro), + "CMDEEPDJOGA_GcgDiceSideElectro" => Some(Self::GcgDiceSideElectro), + "CMDEEPDJOGA_GcgDiceSideGeo" => Some(Self::GcgDiceSideGeo), + "CMDEEPDJOGA_GcgDiceSideDendro" => Some(Self::GcgDiceSideDendro), + "CMDEEPDJOGA_GcgDiceSideAnemo" => Some(Self::GcgDiceSideAnemo), + "CMDEEPDJOGA_GcgDiceSidePaimon" => Some(Self::GcgDiceSidePaimon), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum PlayerLogoutReason { + Disconnect = 0, + ClientReq = 1, + Timeout = 2, + AdminReq = 3, + ServerClose = 4, + GmClear = 5, + PlayerTransfer = 6, + ClientChecksumInvalid = 7, + MuipMoveSaveWait = 8, +} +impl PlayerLogoutReason { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + PlayerLogoutReason::Disconnect => "PlayerLogoutReason_Disconnect", + PlayerLogoutReason::ClientReq => "PlayerLogoutReason_ClientReq", + PlayerLogoutReason::Timeout => "PlayerLogoutReason_Timeout", + PlayerLogoutReason::AdminReq => "PlayerLogoutReason_AdminReq", + PlayerLogoutReason::ServerClose => "PlayerLogoutReason_ServerClose", + PlayerLogoutReason::GmClear => "PlayerLogoutReason_GmClear", + PlayerLogoutReason::PlayerTransfer => "PlayerLogoutReason_PlayerTransfer", + PlayerLogoutReason::ClientChecksumInvalid => { + "PlayerLogoutReason_ClientChecksumInvalid" + } + PlayerLogoutReason::MuipMoveSaveWait => "PlayerLogoutReason_MuipMoveSaveWait", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PlayerLogoutReason_Disconnect" => Some(Self::Disconnect), + "PlayerLogoutReason_ClientReq" => Some(Self::ClientReq), + "PlayerLogoutReason_Timeout" => Some(Self::Timeout), + "PlayerLogoutReason_AdminReq" => Some(Self::AdminReq), + "PlayerLogoutReason_ServerClose" => Some(Self::ServerClose), + "PlayerLogoutReason_GmClear" => Some(Self::GmClear), + "PlayerLogoutReason_PlayerTransfer" => Some(Self::PlayerTransfer), + "PlayerLogoutReason_ClientChecksumInvalid" => { + Some(Self::ClientChecksumInvalid) + } + "PlayerLogoutReason_MuipMoveSaveWait" => Some(Self::MuipMoveSaveWait), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cfpdoelblnj { + StatusFail = 0, + StatusSucc = 1, + StatusPartial = 2, +} +impl Cfpdoelblnj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cfpdoelblnj::StatusFail => "CFPDOELBLNJ_StatusFail", + Cfpdoelblnj::StatusSucc => "CFPDOELBLNJ_StatusSucc", + Cfpdoelblnj::StatusPartial => "CFPDOELBLNJ_StatusPartial", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CFPDOELBLNJ_StatusFail" => Some(Self::StatusFail), + "CFPDOELBLNJ_StatusSucc" => Some(Self::StatusSucc), + "CFPDOELBLNJ_StatusPartial" => Some(Self::StatusPartial), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ihokgokpllo { + None = 0, + Starred = 1, + Official = 2, + Template = 3, +} +impl Ihokgokpllo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ihokgokpllo::None => "IHOKGOKPLLO_None", + Ihokgokpllo::Starred => "IHOKGOKPLLO_Starred", + Ihokgokpllo::Official => "IHOKGOKPLLO_Official", + Ihokgokpllo::Template => "IHOKGOKPLLO_Template", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IHOKGOKPLLO_None" => Some(Self::None), + "IHOKGOKPLLO_Starred" => Some(Self::Starred), + "IHOKGOKPLLO_Official" => Some(Self::Official), + "IHOKGOKPLLO_Template" => Some(Self::Template), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jaiddkdbmem { + Idle = 0, + ChangingAvatar = 1, + Ready = 2, +} +impl Jaiddkdbmem { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jaiddkdbmem::Idle => "JAIDDKDBMEM_Idle", + Jaiddkdbmem::ChangingAvatar => "JAIDDKDBMEM_ChangingAvatar", + Jaiddkdbmem::Ready => "JAIDDKDBMEM_Ready", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JAIDDKDBMEM_Idle" => Some(Self::Idle), + "JAIDDKDBMEM_ChangingAvatar" => Some(Self::ChangingAvatar), + "JAIDDKDBMEM_Ready" => Some(Self::Ready), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jibfhhklaoj { + ServerLogNone = 0, + ServerLogAbility = 1, + ServerLogLevel = 2, + ServerLogEntity = 3, + ServerLogLua = 4, + ServerLogDailytask = 5, +} +impl Jibfhhklaoj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jibfhhklaoj::ServerLogNone => "JIBFHHKLAOJ_ServerLogNone", + Jibfhhklaoj::ServerLogAbility => "JIBFHHKLAOJ_ServerLogAbility", + Jibfhhklaoj::ServerLogLevel => "JIBFHHKLAOJ_ServerLogLevel", + Jibfhhklaoj::ServerLogEntity => "JIBFHHKLAOJ_ServerLogEntity", + Jibfhhklaoj::ServerLogLua => "JIBFHHKLAOJ_ServerLogLua", + Jibfhhklaoj::ServerLogDailytask => "JIBFHHKLAOJ_ServerLogDailytask", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JIBFHHKLAOJ_ServerLogNone" => Some(Self::ServerLogNone), + "JIBFHHKLAOJ_ServerLogAbility" => Some(Self::ServerLogAbility), + "JIBFHHKLAOJ_ServerLogLevel" => Some(Self::ServerLogLevel), + "JIBFHHKLAOJ_ServerLogEntity" => Some(Self::ServerLogEntity), + "JIBFHHKLAOJ_ServerLogLua" => Some(Self::ServerLogLua), + "JIBFHHKLAOJ_ServerLogDailytask" => Some(Self::ServerLogDailytask), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gcjhlblippj { + InBattleMechanicusStageNone = 0, + InBattleMechanicusStageBuild = 1, + InBattleMechanicusStageCardFlip = 2, + InBattleMechanicusStageKill = 3, +} +impl Gcjhlblippj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gcjhlblippj::InBattleMechanicusStageNone => { + "GCJHLBLIPPJ_InBattleMechanicusStageNone" + } + Gcjhlblippj::InBattleMechanicusStageBuild => { + "GCJHLBLIPPJ_InBattleMechanicusStageBuild" + } + Gcjhlblippj::InBattleMechanicusStageCardFlip => { + "GCJHLBLIPPJ_InBattleMechanicusStageCardFlip" + } + Gcjhlblippj::InBattleMechanicusStageKill => { + "GCJHLBLIPPJ_InBattleMechanicusStageKill" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GCJHLBLIPPJ_InBattleMechanicusStageNone" => { + Some(Self::InBattleMechanicusStageNone) + } + "GCJHLBLIPPJ_InBattleMechanicusStageBuild" => { + Some(Self::InBattleMechanicusStageBuild) + } + "GCJHLBLIPPJ_InBattleMechanicusStageCardFlip" => { + Some(Self::InBattleMechanicusStageCardFlip) + } + "GCJHLBLIPPJ_InBattleMechanicusStageKill" => { + Some(Self::InBattleMechanicusStageKill) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum StoreType { + StoreNone = 0, + StorePack = 1, + StoreDepot = 2, +} +impl StoreType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + StoreType::StoreNone => "StoreType_StoreNone", + StoreType::StorePack => "StoreType_StorePack", + StoreType::StoreDepot => "StoreType_StoreDepot", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "StoreType_StoreNone" => Some(Self::StoreNone), + "StoreType_StorePack" => Some(Self::StorePack), + "StoreType_StoreDepot" => Some(Self::StoreDepot), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pemmkckgpcp { + Added = 0, + Removed = 1, +} +impl Pemmkckgpcp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pemmkckgpcp::Added => "PEMMKCKGPCP_Added", + Pemmkckgpcp::Removed => "PEMMKCKGPCP_Removed", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PEMMKCKGPCP_Added" => Some(Self::Added), + "PEMMKCKGPCP_Removed" => Some(Self::Removed), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jgdodfjcang { + AuditNone = 0, + AuditWaiting = 1, + AuditFailed = 2, +} +impl Jgdodfjcang { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jgdodfjcang::AuditNone => "JGDODFJCANG_AuditNone", + Jgdodfjcang::AuditWaiting => "JGDODFJCANG_AuditWaiting", + Jgdodfjcang::AuditFailed => "JGDODFJCANG_AuditFailed", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JGDODFJCANG_AuditNone" => Some(Self::AuditNone), + "JGDODFJCANG_AuditWaiting" => Some(Self::AuditWaiting), + "JGDODFJCANG_AuditFailed" => Some(Self::AuditFailed), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Eoniaegppec { + MsgUnknown = 0, + MsgBlockRefreshCountdown = 1, + MsgAvatarReviveByStatue = 2, + MsgDailyTaskRewardMaxNum = 3, + MsgRoutineTypeNotOpen = 4, + MsgRoutineTypeRewardMaxNum = 5, +} +impl Eoniaegppec { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Eoniaegppec::MsgUnknown => "EONIAEGPPEC_MsgUnknown", + Eoniaegppec::MsgBlockRefreshCountdown => { + "EONIAEGPPEC_MsgBlockRefreshCountdown" + } + Eoniaegppec::MsgAvatarReviveByStatue => "EONIAEGPPEC_MsgAvatarReviveByStatue", + Eoniaegppec::MsgDailyTaskRewardMaxNum => { + "EONIAEGPPEC_MsgDailyTaskRewardMaxNum" + } + Eoniaegppec::MsgRoutineTypeNotOpen => "EONIAEGPPEC_MsgRoutineTypeNotOpen", + Eoniaegppec::MsgRoutineTypeRewardMaxNum => { + "EONIAEGPPEC_MsgRoutineTypeRewardMaxNum" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "EONIAEGPPEC_MsgUnknown" => Some(Self::MsgUnknown), + "EONIAEGPPEC_MsgBlockRefreshCountdown" => { + Some(Self::MsgBlockRefreshCountdown) + } + "EONIAEGPPEC_MsgAvatarReviveByStatue" => Some(Self::MsgAvatarReviveByStatue), + "EONIAEGPPEC_MsgDailyTaskRewardMaxNum" => { + Some(Self::MsgDailyTaskRewardMaxNum) + } + "EONIAEGPPEC_MsgRoutineTypeNotOpen" => Some(Self::MsgRoutineTypeNotOpen), + "EONIAEGPPEC_MsgRoutineTypeRewardMaxNum" => { + Some(Self::MsgRoutineTypeRewardMaxNum) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hgagmbjdhfg { + BrickBreakerStagePrepare = 0, + BrickBreakerStagePick = 1, + BrickBreakerStageGame = 2, + BrickBreakerStagePlay = 3, + BrickBreakerStageSettle = 4, +} +impl Hgagmbjdhfg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hgagmbjdhfg::BrickBreakerStagePrepare => { + "HGAGMBJDHFG_BrickBreakerStagePrepare" + } + Hgagmbjdhfg::BrickBreakerStagePick => "HGAGMBJDHFG_BrickBreakerStagePick", + Hgagmbjdhfg::BrickBreakerStageGame => "HGAGMBJDHFG_BrickBreakerStageGame", + Hgagmbjdhfg::BrickBreakerStagePlay => "HGAGMBJDHFG_BrickBreakerStagePlay", + Hgagmbjdhfg::BrickBreakerStageSettle => "HGAGMBJDHFG_BrickBreakerStageSettle", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HGAGMBJDHFG_BrickBreakerStagePrepare" => { + Some(Self::BrickBreakerStagePrepare) + } + "HGAGMBJDHFG_BrickBreakerStagePick" => Some(Self::BrickBreakerStagePick), + "HGAGMBJDHFG_BrickBreakerStageGame" => Some(Self::BrickBreakerStageGame), + "HGAGMBJDHFG_BrickBreakerStagePlay" => Some(Self::BrickBreakerStagePlay), + "HGAGMBJDHFG_BrickBreakerStageSettle" => Some(Self::BrickBreakerStageSettle), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Igbmhjdnidc { + Inner = 0, + TileBound = 1, + TileBoundUnconnect = 2, + TileBoundOveride = 3, +} +impl Igbmhjdnidc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Igbmhjdnidc::Inner => "IGBMHJDNIDC_Inner", + Igbmhjdnidc::TileBound => "IGBMHJDNIDC_TileBound", + Igbmhjdnidc::TileBoundUnconnect => "IGBMHJDNIDC_TileBoundUnconnect", + Igbmhjdnidc::TileBoundOveride => "IGBMHJDNIDC_TileBoundOveride", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "IGBMHJDNIDC_Inner" => Some(Self::Inner), + "IGBMHJDNIDC_TileBound" => Some(Self::TileBound), + "IGBMHJDNIDC_TileBoundUnconnect" => Some(Self::TileBoundUnconnect), + "IGBMHJDNIDC_TileBoundOveride" => Some(Self::TileBoundOveride), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ohgcdmmlnok { + HitColliderInvalid = 0, + HitColliderHitBox = 1, + HitColliderWetHitBox = 2, + HitColliderHeadBox = 3, +} +impl Ohgcdmmlnok { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ohgcdmmlnok::HitColliderInvalid => "OHGCDMMLNOK_HitColliderInvalid", + Ohgcdmmlnok::HitColliderHitBox => "OHGCDMMLNOK_HitColliderHitBox", + Ohgcdmmlnok::HitColliderWetHitBox => "OHGCDMMLNOK_HitColliderWetHitBox", + Ohgcdmmlnok::HitColliderHeadBox => "OHGCDMMLNOK_HitColliderHeadBox", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "OHGCDMMLNOK_HitColliderInvalid" => Some(Self::HitColliderInvalid), + "OHGCDMMLNOK_HitColliderHitBox" => Some(Self::HitColliderHitBox), + "OHGCDMMLNOK_HitColliderWetHitBox" => Some(Self::HitColliderWetHitBox), + "OHGCDMMLNOK_HitColliderHeadBox" => Some(Self::HitColliderHeadBox), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mialgmhklbl { + DungeonCandidateAvatarTypeNone = 0, + DungeonCandidateAvatarTypeFormal = 1, + DungeonCandidateAvatarTypeUgc = 2, +} +impl Mialgmhklbl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mialgmhklbl::DungeonCandidateAvatarTypeNone => { + "MIALGMHKLBL_DungeonCandidateAvatarTypeNone" + } + Mialgmhklbl::DungeonCandidateAvatarTypeFormal => { + "MIALGMHKLBL_DungeonCandidateAvatarTypeFormal" + } + Mialgmhklbl::DungeonCandidateAvatarTypeUgc => { + "MIALGMHKLBL_DungeonCandidateAvatarTypeUgc" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MIALGMHKLBL_DungeonCandidateAvatarTypeNone" => { + Some(Self::DungeonCandidateAvatarTypeNone) + } + "MIALGMHKLBL_DungeonCandidateAvatarTypeFormal" => { + Some(Self::DungeonCandidateAvatarTypeFormal) + } + "MIALGMHKLBL_DungeonCandidateAvatarTypeUgc" => { + Some(Self::DungeonCandidateAvatarTypeUgc) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nncopldhcpb { + None = 0, + Layout = 1, +} +impl Nncopldhcpb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nncopldhcpb::None => "NNCOPLDHCPB_None", + Nncopldhcpb::Layout => "NNCOPLDHCPB_Layout", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NNCOPLDHCPB_None" => Some(Self::None), + "NNCOPLDHCPB_Layout" => Some(Self::Layout), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jgjlfaeigaj { + MissionInvalid = 0, + MissionUnfinished = 1, + MissionFinished = 2, + MissionPointTaken = 3, +} +impl Jgjlfaeigaj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jgjlfaeigaj::MissionInvalid => "JGJLFAEIGAJ_MissionInvalid", + Jgjlfaeigaj::MissionUnfinished => "JGJLFAEIGAJ_MissionUnfinished", + Jgjlfaeigaj::MissionFinished => "JGJLFAEIGAJ_MissionFinished", + Jgjlfaeigaj::MissionPointTaken => "JGJLFAEIGAJ_MissionPointTaken", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JGJLFAEIGAJ_MissionInvalid" => Some(Self::MissionInvalid), + "JGJLFAEIGAJ_MissionUnfinished" => Some(Self::MissionUnfinished), + "JGJLFAEIGAJ_MissionFinished" => Some(Self::MissionFinished), + "JGJLFAEIGAJ_MissionPointTaken" => Some(Self::MissionPointTaken), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Ajopcffcfdd { + WispCageStateNotExist = 0, + WispCageStateCreated = 1, + WispCageStateMaterialDelivered = 2, + WispCageStateNotTakeReward = 3, +} +impl Ajopcffcfdd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Ajopcffcfdd::WispCageStateNotExist => "AJOPCFFCFDD_WispCageStateNotExist", + Ajopcffcfdd::WispCageStateCreated => "AJOPCFFCFDD_WispCageStateCreated", + Ajopcffcfdd::WispCageStateMaterialDelivered => { + "AJOPCFFCFDD_WispCageStateMaterialDelivered" + } + Ajopcffcfdd::WispCageStateNotTakeReward => { + "AJOPCFFCFDD_WispCageStateNotTakeReward" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AJOPCFFCFDD_WispCageStateNotExist" => Some(Self::WispCageStateNotExist), + "AJOPCFFCFDD_WispCageStateCreated" => Some(Self::WispCageStateCreated), + "AJOPCFFCFDD_WispCageStateMaterialDelivered" => { + Some(Self::WispCageStateMaterialDelivered) + } + "AJOPCFFCFDD_WispCageStateNotTakeReward" => { + Some(Self::WispCageStateNotTakeReward) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jjpmgejnaao { + DraftFailUnknown = 0, + DraftActivityNotOpen = 1, + DraftActivityPlayNotOpen = 2, + DraftSceneNotMeet = 3, + DraftWorldNotMeet = 4, + DraftPlayLimitNotMeet = 5, + DraftActivityConfigNotFound = 6, +} +impl Jjpmgejnaao { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jjpmgejnaao::DraftFailUnknown => "JJPMGEJNAAO_DraftFailUnknown", + Jjpmgejnaao::DraftActivityNotOpen => "JJPMGEJNAAO_DraftActivityNotOpen", + Jjpmgejnaao::DraftActivityPlayNotOpen => { + "JJPMGEJNAAO_DraftActivityPlayNotOpen" + } + Jjpmgejnaao::DraftSceneNotMeet => "JJPMGEJNAAO_DraftSceneNotMeet", + Jjpmgejnaao::DraftWorldNotMeet => "JJPMGEJNAAO_DraftWorldNotMeet", + Jjpmgejnaao::DraftPlayLimitNotMeet => "JJPMGEJNAAO_DraftPlayLimitNotMeet", + Jjpmgejnaao::DraftActivityConfigNotFound => { + "JJPMGEJNAAO_DraftActivityConfigNotFound" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JJPMGEJNAAO_DraftFailUnknown" => Some(Self::DraftFailUnknown), + "JJPMGEJNAAO_DraftActivityNotOpen" => Some(Self::DraftActivityNotOpen), + "JJPMGEJNAAO_DraftActivityPlayNotOpen" => { + Some(Self::DraftActivityPlayNotOpen) + } + "JJPMGEJNAAO_DraftSceneNotMeet" => Some(Self::DraftSceneNotMeet), + "JJPMGEJNAAO_DraftWorldNotMeet" => Some(Self::DraftWorldNotMeet), + "JJPMGEJNAAO_DraftPlayLimitNotMeet" => Some(Self::DraftPlayLimitNotMeet), + "JJPMGEJNAAO_DraftActivityConfigNotFound" => { + Some(Self::DraftActivityConfigNotFound) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gbnikbfhhkp { + VersionNone = 0, + V50 = 1, +} +impl Gbnikbfhhkp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gbnikbfhhkp::VersionNone => "GBNIKBFHHKP_VersionNone", + Gbnikbfhhkp::V50 => "GBNIKBFHHKP_V50", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GBNIKBFHHKP_VersionNone" => Some(Self::VersionNone), + "GBNIKBFHHKP_V50" => Some(Self::V50), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dmbnnbhbpbi { + GcgSettleOptNone = 0, + GcgSettleOptExit = 1, + GcgSettleOptContinue = 2, + GcgSettleOptRestart = 3, +} +impl Dmbnnbhbpbi { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dmbnnbhbpbi::GcgSettleOptNone => "DMBNNBHBPBI_GcgSettleOptNone", + Dmbnnbhbpbi::GcgSettleOptExit => "DMBNNBHBPBI_GcgSettleOptExit", + Dmbnnbhbpbi::GcgSettleOptContinue => "DMBNNBHBPBI_GcgSettleOptContinue", + Dmbnnbhbpbi::GcgSettleOptRestart => "DMBNNBHBPBI_GcgSettleOptRestart", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DMBNNBHBPBI_GcgSettleOptNone" => Some(Self::GcgSettleOptNone), + "DMBNNBHBPBI_GcgSettleOptExit" => Some(Self::GcgSettleOptExit), + "DMBNNBHBPBI_GcgSettleOptContinue" => Some(Self::GcgSettleOptContinue), + "DMBNNBHBPBI_GcgSettleOptRestart" => Some(Self::GcgSettleOptRestart), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gmamcpbhicj { + None = 0, + Giveup = 1, + Timeout = 2, + LeaveRegion = 3, + LeaveScene = 4, + CrossWeek = 5, + AvatarDie = 6, +} +impl Gmamcpbhicj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gmamcpbhicj::None => "GMAMCPBHICJ_None", + Gmamcpbhicj::Giveup => "GMAMCPBHICJ_Giveup", + Gmamcpbhicj::Timeout => "GMAMCPBHICJ_Timeout", + Gmamcpbhicj::LeaveRegion => "GMAMCPBHICJ_LeaveRegion", + Gmamcpbhicj::LeaveScene => "GMAMCPBHICJ_LeaveScene", + Gmamcpbhicj::CrossWeek => "GMAMCPBHICJ_CrossWeek", + Gmamcpbhicj::AvatarDie => "GMAMCPBHICJ_AvatarDie", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GMAMCPBHICJ_None" => Some(Self::None), + "GMAMCPBHICJ_Giveup" => Some(Self::Giveup), + "GMAMCPBHICJ_Timeout" => Some(Self::Timeout), + "GMAMCPBHICJ_LeaveRegion" => Some(Self::LeaveRegion), + "GMAMCPBHICJ_LeaveScene" => Some(Self::LeaveScene), + "GMAMCPBHICJ_CrossWeek" => Some(Self::CrossWeek), + "GMAMCPBHICJ_AvatarDie" => Some(Self::AvatarDie), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hdpdhdlphae { + None = 0, + DestoryVehcile = 1, + EnterScene = 2, + LeaveScene = 3, + ActiveVehcile = 4, + EnterVehicle = 5, + SpeedCheck = 6, + Gm = 7, + UseWidgetTp = 8, + UseWidgetNotTp = 9, + GalleryVehcileNotTp = 10, + QuestExec = 11, +} +impl Hdpdhdlphae { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hdpdhdlphae::None => "HDPDHDLPHAE_None", + Hdpdhdlphae::DestoryVehcile => "HDPDHDLPHAE_DestoryVehcile", + Hdpdhdlphae::EnterScene => "HDPDHDLPHAE_EnterScene", + Hdpdhdlphae::LeaveScene => "HDPDHDLPHAE_LeaveScene", + Hdpdhdlphae::ActiveVehcile => "HDPDHDLPHAE_ActiveVehcile", + Hdpdhdlphae::EnterVehicle => "HDPDHDLPHAE_EnterVehicle", + Hdpdhdlphae::SpeedCheck => "HDPDHDLPHAE_SpeedCheck", + Hdpdhdlphae::Gm => "HDPDHDLPHAE_Gm", + Hdpdhdlphae::UseWidgetTp => "HDPDHDLPHAE_UseWidgetTp", + Hdpdhdlphae::UseWidgetNotTp => "HDPDHDLPHAE_UseWidgetNotTp", + Hdpdhdlphae::GalleryVehcileNotTp => "HDPDHDLPHAE_GalleryVehcileNotTp", + Hdpdhdlphae::QuestExec => "HDPDHDLPHAE_QuestExec", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HDPDHDLPHAE_None" => Some(Self::None), + "HDPDHDLPHAE_DestoryVehcile" => Some(Self::DestoryVehcile), + "HDPDHDLPHAE_EnterScene" => Some(Self::EnterScene), + "HDPDHDLPHAE_LeaveScene" => Some(Self::LeaveScene), + "HDPDHDLPHAE_ActiveVehcile" => Some(Self::ActiveVehcile), + "HDPDHDLPHAE_EnterVehicle" => Some(Self::EnterVehicle), + "HDPDHDLPHAE_SpeedCheck" => Some(Self::SpeedCheck), + "HDPDHDLPHAE_Gm" => Some(Self::Gm), + "HDPDHDLPHAE_UseWidgetTp" => Some(Self::UseWidgetTp), + "HDPDHDLPHAE_UseWidgetNotTp" => Some(Self::UseWidgetNotTp), + "HDPDHDLPHAE_GalleryVehcileNotTp" => Some(Self::GalleryVehcileNotTp), + "HDPDHDLPHAE_QuestExec" => Some(Self::QuestExec), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mbmckhfkokf { + DieOptNone = 0, + DieOptReplay = 1, + DieOptCancel = 2, + DieOptRevive = 3, +} +impl Mbmckhfkokf { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mbmckhfkokf::DieOptNone => "MBMCKHFKOKF_DieOptNone", + Mbmckhfkokf::DieOptReplay => "MBMCKHFKOKF_DieOptReplay", + Mbmckhfkokf::DieOptCancel => "MBMCKHFKOKF_DieOptCancel", + Mbmckhfkokf::DieOptRevive => "MBMCKHFKOKF_DieOptRevive", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MBMCKHFKOKF_DieOptNone" => Some(Self::DieOptNone), + "MBMCKHFKOKF_DieOptReplay" => Some(Self::DieOptReplay), + "MBMCKHFKOKF_DieOptCancel" => Some(Self::DieOptCancel), + "MBMCKHFKOKF_DieOptRevive" => Some(Self::DieOptRevive), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gbagjcpbjhm { + None = 0, + Dungeon = 1, + Room = 2, +} +impl Gbagjcpbjhm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gbagjcpbjhm::None => "GBAGJCPBJHM_None", + Gbagjcpbjhm::Dungeon => "GBAGJCPBJHM_Dungeon", + Gbagjcpbjhm::Room => "GBAGJCPBJHM_Room", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GBAGJCPBJHM_None" => Some(Self::None), + "GBAGJCPBJHM_Dungeon" => Some(Self::Dungeon), + "GBAGJCPBJHM_Room" => Some(Self::Room), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Chjbbpjbkdc { + None = 0, + ReadySelectAvatar = 1, + ReadySelectCard = 2, + ReadyEnterFight = 3, + AllFinish = 4, +} +impl Chjbbpjbkdc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Chjbbpjbkdc::None => "CHJBBPJBKDC_None", + Chjbbpjbkdc::ReadySelectAvatar => "CHJBBPJBKDC_ReadySelectAvatar", + Chjbbpjbkdc::ReadySelectCard => "CHJBBPJBKDC_ReadySelectCard", + Chjbbpjbkdc::ReadyEnterFight => "CHJBBPJBKDC_ReadyEnterFight", + Chjbbpjbkdc::AllFinish => "CHJBBPJBKDC_AllFinish", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CHJBBPJBKDC_None" => Some(Self::None), + "CHJBBPJBKDC_ReadySelectAvatar" => Some(Self::ReadySelectAvatar), + "CHJBBPJBKDC_ReadySelectCard" => Some(Self::ReadySelectCard), + "CHJBBPJBKDC_ReadyEnterFight" => Some(Self::ReadyEnterFight), + "CHJBBPJBKDC_AllFinish" => Some(Self::AllFinish), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum GadgetBornType { + GadgetBornNone = 0, + GadgetBornInAir = 1, + GadgetBornPlayer = 2, + GadgetBornMonsterHit = 3, + GadgetBornMonsterDie = 4, + GadgetBornGadget = 5, + GadgetBornGround = 6, +} +impl GadgetBornType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + GadgetBornType::GadgetBornNone => "GadgetBornType_GadgetBornNone", + GadgetBornType::GadgetBornInAir => "GadgetBornType_GadgetBornInAir", + GadgetBornType::GadgetBornPlayer => "GadgetBornType_GadgetBornPlayer", + GadgetBornType::GadgetBornMonsterHit => "GadgetBornType_GadgetBornMonsterHit", + GadgetBornType::GadgetBornMonsterDie => "GadgetBornType_GadgetBornMonsterDie", + GadgetBornType::GadgetBornGadget => "GadgetBornType_GadgetBornGadget", + GadgetBornType::GadgetBornGround => "GadgetBornType_GadgetBornGround", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GadgetBornType_GadgetBornNone" => Some(Self::GadgetBornNone), + "GadgetBornType_GadgetBornInAir" => Some(Self::GadgetBornInAir), + "GadgetBornType_GadgetBornPlayer" => Some(Self::GadgetBornPlayer), + "GadgetBornType_GadgetBornMonsterHit" => Some(Self::GadgetBornMonsterHit), + "GadgetBornType_GadgetBornMonsterDie" => Some(Self::GadgetBornMonsterDie), + "GadgetBornType_GadgetBornGadget" => Some(Self::GadgetBornGadget), + "GadgetBornType_GadgetBornGround" => Some(Self::GadgetBornGround), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dljmgiamglf { + PlaySoundNone = 0, + PlaySoundStart = 1, + PlaySoundStop = 2, +} +impl Dljmgiamglf { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dljmgiamglf::PlaySoundNone => "DLJMGIAMGLF_PlaySoundNone", + Dljmgiamglf::PlaySoundStart => "DLJMGIAMGLF_PlaySoundStart", + Dljmgiamglf::PlaySoundStop => "DLJMGIAMGLF_PlaySoundStop", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DLJMGIAMGLF_PlaySoundNone" => Some(Self::PlaySoundNone), + "DLJMGIAMGLF_PlaySoundStart" => Some(Self::PlaySoundStart), + "DLJMGIAMGLF_PlaySoundStop" => Some(Self::PlaySoundStop), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Cfaiijnnlbp { + CombatNone = 0, + CombatEvtBeingHit = 1, + CombatAnimatorStateChanged = 2, + CombatFaceToDir = 3, + CombatSetAttackTarget = 4, + CombatRushMove = 5, + CombatAnimatorParameterChanged = 6, + EntityMove = 7, + SyncEntityPosition = 8, + CombatSteerMotionInfo = 9, + CombatForceSetPosInfo = 10, + CombatCompensatePosDiff = 11, + CombatMonsterDoBlink = 12, + CombatFixedRushMove = 13, + CombatSyncTransform = 14, + CombatLightCoreMove = 15, + CombatBeingHealedNtf = 16, + CombatSkillAnchorPositionNtf = 17, + CombatGrapplingHookMove = 18, + CombatSpecialMotionInfo = 19, + CombatFixedAvatarFlashMove = 20, + CombatMultiOverrideAnim = 21, + CombatDebugSyncMotion = 22, +} +impl Cfaiijnnlbp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Cfaiijnnlbp::CombatNone => "CFAIIJNNLBP_CombatNone", + Cfaiijnnlbp::CombatEvtBeingHit => "CFAIIJNNLBP_CombatEvtBeingHit", + Cfaiijnnlbp::CombatAnimatorStateChanged => { + "CFAIIJNNLBP_CombatAnimatorStateChanged" + } + Cfaiijnnlbp::CombatFaceToDir => "CFAIIJNNLBP_CombatFaceToDir", + Cfaiijnnlbp::CombatSetAttackTarget => "CFAIIJNNLBP_CombatSetAttackTarget", + Cfaiijnnlbp::CombatRushMove => "CFAIIJNNLBP_CombatRushMove", + Cfaiijnnlbp::CombatAnimatorParameterChanged => { + "CFAIIJNNLBP_CombatAnimatorParameterChanged" + } + Cfaiijnnlbp::EntityMove => "CFAIIJNNLBP_EntityMove", + Cfaiijnnlbp::SyncEntityPosition => "CFAIIJNNLBP_SyncEntityPosition", + Cfaiijnnlbp::CombatSteerMotionInfo => "CFAIIJNNLBP_CombatSteerMotionInfo", + Cfaiijnnlbp::CombatForceSetPosInfo => "CFAIIJNNLBP_CombatForceSetPosInfo", + Cfaiijnnlbp::CombatCompensatePosDiff => "CFAIIJNNLBP_CombatCompensatePosDiff", + Cfaiijnnlbp::CombatMonsterDoBlink => "CFAIIJNNLBP_CombatMonsterDoBlink", + Cfaiijnnlbp::CombatFixedRushMove => "CFAIIJNNLBP_CombatFixedRushMove", + Cfaiijnnlbp::CombatSyncTransform => "CFAIIJNNLBP_CombatSyncTransform", + Cfaiijnnlbp::CombatLightCoreMove => "CFAIIJNNLBP_CombatLightCoreMove", + Cfaiijnnlbp::CombatBeingHealedNtf => "CFAIIJNNLBP_CombatBeingHealedNtf", + Cfaiijnnlbp::CombatSkillAnchorPositionNtf => { + "CFAIIJNNLBP_CombatSkillAnchorPositionNtf" + } + Cfaiijnnlbp::CombatGrapplingHookMove => "CFAIIJNNLBP_CombatGrapplingHookMove", + Cfaiijnnlbp::CombatSpecialMotionInfo => "CFAIIJNNLBP_CombatSpecialMotionInfo", + Cfaiijnnlbp::CombatFixedAvatarFlashMove => { + "CFAIIJNNLBP_CombatFixedAvatarFlashMove" + } + Cfaiijnnlbp::CombatMultiOverrideAnim => "CFAIIJNNLBP_CombatMultiOverrideAnim", + Cfaiijnnlbp::CombatDebugSyncMotion => "CFAIIJNNLBP_CombatDebugSyncMotion", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CFAIIJNNLBP_CombatNone" => Some(Self::CombatNone), + "CFAIIJNNLBP_CombatEvtBeingHit" => Some(Self::CombatEvtBeingHit), + "CFAIIJNNLBP_CombatAnimatorStateChanged" => { + Some(Self::CombatAnimatorStateChanged) + } + "CFAIIJNNLBP_CombatFaceToDir" => Some(Self::CombatFaceToDir), + "CFAIIJNNLBP_CombatSetAttackTarget" => Some(Self::CombatSetAttackTarget), + "CFAIIJNNLBP_CombatRushMove" => Some(Self::CombatRushMove), + "CFAIIJNNLBP_CombatAnimatorParameterChanged" => { + Some(Self::CombatAnimatorParameterChanged) + } + "CFAIIJNNLBP_EntityMove" => Some(Self::EntityMove), + "CFAIIJNNLBP_SyncEntityPosition" => Some(Self::SyncEntityPosition), + "CFAIIJNNLBP_CombatSteerMotionInfo" => Some(Self::CombatSteerMotionInfo), + "CFAIIJNNLBP_CombatForceSetPosInfo" => Some(Self::CombatForceSetPosInfo), + "CFAIIJNNLBP_CombatCompensatePosDiff" => Some(Self::CombatCompensatePosDiff), + "CFAIIJNNLBP_CombatMonsterDoBlink" => Some(Self::CombatMonsterDoBlink), + "CFAIIJNNLBP_CombatFixedRushMove" => Some(Self::CombatFixedRushMove), + "CFAIIJNNLBP_CombatSyncTransform" => Some(Self::CombatSyncTransform), + "CFAIIJNNLBP_CombatLightCoreMove" => Some(Self::CombatLightCoreMove), + "CFAIIJNNLBP_CombatBeingHealedNtf" => Some(Self::CombatBeingHealedNtf), + "CFAIIJNNLBP_CombatSkillAnchorPositionNtf" => { + Some(Self::CombatSkillAnchorPositionNtf) + } + "CFAIIJNNLBP_CombatGrapplingHookMove" => Some(Self::CombatGrapplingHookMove), + "CFAIIJNNLBP_CombatSpecialMotionInfo" => Some(Self::CombatSpecialMotionInfo), + "CFAIIJNNLBP_CombatFixedAvatarFlashMove" => { + Some(Self::CombatFixedAvatarFlashMove) + } + "CFAIIJNNLBP_CombatMultiOverrideAnim" => Some(Self::CombatMultiOverrideAnim), + "CFAIIJNNLBP_CombatDebugSyncMotion" => Some(Self::CombatDebugSyncMotion), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Pfbjfdjflpp { + AreaPlayNone = 0, + AreaPlayClimate = 1, + AreaPlayRegionalPlay = 2, +} +impl Pfbjfdjflpp { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Pfbjfdjflpp::AreaPlayNone => "PFBJFDJFLPP_AreaPlayNone", + Pfbjfdjflpp::AreaPlayClimate => "PFBJFDJFLPP_AreaPlayClimate", + Pfbjfdjflpp::AreaPlayRegionalPlay => "PFBJFDJFLPP_AreaPlayRegionalPlay", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PFBJFDJFLPP_AreaPlayNone" => Some(Self::AreaPlayNone), + "PFBJFDJFLPP_AreaPlayClimate" => Some(Self::AreaPlayClimate), + "PFBJFDJFLPP_AreaPlayRegionalPlay" => Some(Self::AreaPlayRegionalPlay), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Hhaafihndjo { + QuitFocusDefault = 0, + QuitFocusMutual = 1, +} +impl Hhaafihndjo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Hhaafihndjo::QuitFocusDefault => "HHAAFIHNDJO_QuitFocusDefault", + Hhaafihndjo::QuitFocusMutual => "HHAAFIHNDJO_QuitFocusMutual", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "HHAAFIHNDJO_QuitFocusDefault" => Some(Self::QuitFocusDefault), + "HHAAFIHNDJO_QuitFocusMutual" => Some(Self::QuitFocusMutual), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Gghihdpmjgm { + EffigyChallengeV4RestartEndReasonNone = 0, + EffigyChallengeV4RestartEndReasonTimeout = 1, + EffigyChallengeV4RestartEndReasonReject = 2, +} +impl Gghihdpmjgm { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Gghihdpmjgm::EffigyChallengeV4RestartEndReasonNone => { + "GGHIHDPMJGM_EffigyChallengeV4RestartEndReasonNone" + } + Gghihdpmjgm::EffigyChallengeV4RestartEndReasonTimeout => { + "GGHIHDPMJGM_EffigyChallengeV4RestartEndReasonTimeout" + } + Gghihdpmjgm::EffigyChallengeV4RestartEndReasonReject => { + "GGHIHDPMJGM_EffigyChallengeV4RestartEndReasonReject" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "GGHIHDPMJGM_EffigyChallengeV4RestartEndReasonNone" => { + Some(Self::EffigyChallengeV4RestartEndReasonNone) + } + "GGHIHDPMJGM_EffigyChallengeV4RestartEndReasonTimeout" => { + Some(Self::EffigyChallengeV4RestartEndReasonTimeout) + } + "GGHIHDPMJGM_EffigyChallengeV4RestartEndReasonReject" => { + Some(Self::EffigyChallengeV4RestartEndReasonReject) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Fogemdkjjcn { + FishNoRewardNone = 0, + FishNoRewardActivityLimit = 1, + FishNoRewardBagLimit = 2, + FishNoRewardPoolLimit = 3, +} +impl Fogemdkjjcn { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Fogemdkjjcn::FishNoRewardNone => "FOGEMDKJJCN_FishNoRewardNone", + Fogemdkjjcn::FishNoRewardActivityLimit => { + "FOGEMDKJJCN_FishNoRewardActivityLimit" + } + Fogemdkjjcn::FishNoRewardBagLimit => "FOGEMDKJJCN_FishNoRewardBagLimit", + Fogemdkjjcn::FishNoRewardPoolLimit => "FOGEMDKJJCN_FishNoRewardPoolLimit", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FOGEMDKJJCN_FishNoRewardNone" => Some(Self::FishNoRewardNone), + "FOGEMDKJJCN_FishNoRewardActivityLimit" => { + Some(Self::FishNoRewardActivityLimit) + } + "FOGEMDKJJCN_FishNoRewardBagLimit" => Some(Self::FishNoRewardBagLimit), + "FOGEMDKJJCN_FishNoRewardPoolLimit" => Some(Self::FishNoRewardPoolLimit), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Chbmdhgnfhg { + Invalid = 0, + HostNoOtherPlayer = 1, + KickByHost = 2, + BackToMyWorld = 3, + KickByHostLogout = 4, + KickByHostBlock = 5, + BeBlocked = 6, + KickByHostEnterHome = 7, + HostSceneInvalid = 8, + KickByPlay = 9, + KickByIslandPartyGalleryStartFailed = 10, +} +impl Chbmdhgnfhg { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Chbmdhgnfhg::Invalid => "CHBMDHGNFHG_Invalid", + Chbmdhgnfhg::HostNoOtherPlayer => "CHBMDHGNFHG_HostNoOtherPlayer", + Chbmdhgnfhg::KickByHost => "CHBMDHGNFHG_KickByHost", + Chbmdhgnfhg::BackToMyWorld => "CHBMDHGNFHG_BackToMyWorld", + Chbmdhgnfhg::KickByHostLogout => "CHBMDHGNFHG_KickByHostLogout", + Chbmdhgnfhg::KickByHostBlock => "CHBMDHGNFHG_KickByHostBlock", + Chbmdhgnfhg::BeBlocked => "CHBMDHGNFHG_BeBlocked", + Chbmdhgnfhg::KickByHostEnterHome => "CHBMDHGNFHG_KickByHostEnterHome", + Chbmdhgnfhg::HostSceneInvalid => "CHBMDHGNFHG_HostSceneInvalid", + Chbmdhgnfhg::KickByPlay => "CHBMDHGNFHG_KickByPlay", + Chbmdhgnfhg::KickByIslandPartyGalleryStartFailed => { + "CHBMDHGNFHG_KickByIslandPartyGalleryStartFailed" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "CHBMDHGNFHG_Invalid" => Some(Self::Invalid), + "CHBMDHGNFHG_HostNoOtherPlayer" => Some(Self::HostNoOtherPlayer), + "CHBMDHGNFHG_KickByHost" => Some(Self::KickByHost), + "CHBMDHGNFHG_BackToMyWorld" => Some(Self::BackToMyWorld), + "CHBMDHGNFHG_KickByHostLogout" => Some(Self::KickByHostLogout), + "CHBMDHGNFHG_KickByHostBlock" => Some(Self::KickByHostBlock), + "CHBMDHGNFHG_BeBlocked" => Some(Self::BeBlocked), + "CHBMDHGNFHG_KickByHostEnterHome" => Some(Self::KickByHostEnterHome), + "CHBMDHGNFHG_HostSceneInvalid" => Some(Self::HostSceneInvalid), + "CHBMDHGNFHG_KickByPlay" => Some(Self::KickByPlay), + "CHBMDHGNFHG_KickByIslandPartyGalleryStartFailed" => { + Some(Self::KickByIslandPartyGalleryStartFailed) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Fcfbaddhheo { + NeedConfirm = 0, + Refuse = 1, + Direct = 2, +} +impl Fcfbaddhheo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Fcfbaddhheo::NeedConfirm => "FCFBADDHHEO_NeedConfirm", + Fcfbaddhheo::Refuse => "FCFBADDHHEO_Refuse", + Fcfbaddhheo::Direct => "FCFBADDHHEO_Direct", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FCFBADDHHEO_NeedConfirm" => Some(Self::NeedConfirm), + "FCFBADDHHEO_Refuse" => Some(Self::Refuse), + "FCFBADDHHEO_Direct" => Some(Self::Direct), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Dlfmncpnfii { + GcgHintNone = 0, + GcgHintGameNotFound = 1, +} +impl Dlfmncpnfii { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Dlfmncpnfii::GcgHintNone => "DLFMNCPNFII_GcgHintNone", + Dlfmncpnfii::GcgHintGameNotFound => "DLFMNCPNFII_GcgHintGameNotFound", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "DLFMNCPNFII_GcgHintNone" => Some(Self::GcgHintNone), + "DLFMNCPNFII_GcgHintGameNotFound" => Some(Self::GcgHintGameNotFound), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum AvatarExpeditionState { + AvatarExpeditionNone = 0, + AvatarExpeditionDoing = 1, + AvatarExpeditionFinishWaitReward = 2, + AvatarExpeditionCallbackWaitReward = 3, + AvatarExpeditionLocked = 4, +} +impl AvatarExpeditionState { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + AvatarExpeditionState::AvatarExpeditionNone => { + "AvatarExpeditionState_AvatarExpeditionNone" + } + AvatarExpeditionState::AvatarExpeditionDoing => { + "AvatarExpeditionState_AvatarExpeditionDoing" + } + AvatarExpeditionState::AvatarExpeditionFinishWaitReward => { + "AvatarExpeditionState_AvatarExpeditionFinishWaitReward" + } + AvatarExpeditionState::AvatarExpeditionCallbackWaitReward => { + "AvatarExpeditionState_AvatarExpeditionCallbackWaitReward" + } + AvatarExpeditionState::AvatarExpeditionLocked => { + "AvatarExpeditionState_AvatarExpeditionLocked" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "AvatarExpeditionState_AvatarExpeditionNone" => { + Some(Self::AvatarExpeditionNone) + } + "AvatarExpeditionState_AvatarExpeditionDoing" => { + Some(Self::AvatarExpeditionDoing) + } + "AvatarExpeditionState_AvatarExpeditionFinishWaitReward" => { + Some(Self::AvatarExpeditionFinishWaitReward) + } + "AvatarExpeditionState_AvatarExpeditionCallbackWaitReward" => { + Some(Self::AvatarExpeditionCallbackWaitReward) + } + "AvatarExpeditionState_AvatarExpeditionLocked" => { + Some(Self::AvatarExpeditionLocked) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bnnpldljknj { + ChangeHpNone = 0, + ChangeHpSubAvatar = 1, + ChangeHpSubMonster = 2, + ChangeHpSubGear = 3, + ChangeHpSubEnvir = 4, + ChangeHpSubFall = 5, + ChangeHpSubDrawn = 6, + ChangeHpSubAbyss = 7, + ChangeHpSubAbility = 8, + ChangeHpSubSummon = 9, + ChangeHpSubScript = 10, + ChangeHpSubGm = 11, + ChangeHpSubKillSelf = 12, + ChangeHpSubClimateCold = 13, + ChangeHpSubStormLightning = 14, + ChangeHpSubKillServerGadget = 15, + ChangeHpSubReplace = 16, + ChangeHpSubPlayerLeave = 17, + ChangeHpAttackByEnergy = 18, + ChangeHpAttackByRecycle = 19, + ChangeHpSubPlayerBack = 20, + ChangeHpSubUgc = 21, + ChangeHpSubDirtyWaterErosion = 22, + ChangeHpSubDestroySelf = 23, + ChangeHpSubLiquidPhlogiston = 24, + ChangeHpSubNataTransfer = 25, + ChangeHpByLua = 51, + ChangeHpAddAbility = 101, + ChangeHpAddItem = 102, + ChangeHpAddRevive = 103, + ChangeHpAddUpgrade = 104, + ChangeHpAddStatue = 105, + ChangeHpAddBackground = 106, + ChangeHpAddGm = 107, + ChangeHpAddTrialAvatarActivity = 108, + ChangeHpAddRouguelikeSpring = 109, + ChangeHpAddEffigyChallengeV5 = 110, +} +impl Bnnpldljknj { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bnnpldljknj::ChangeHpNone => "BNNPLDLJKNJ_ChangeHpNone", + Bnnpldljknj::ChangeHpSubAvatar => "BNNPLDLJKNJ_ChangeHpSubAvatar", + Bnnpldljknj::ChangeHpSubMonster => "BNNPLDLJKNJ_ChangeHpSubMonster", + Bnnpldljknj::ChangeHpSubGear => "BNNPLDLJKNJ_ChangeHpSubGear", + Bnnpldljknj::ChangeHpSubEnvir => "BNNPLDLJKNJ_ChangeHpSubEnvir", + Bnnpldljknj::ChangeHpSubFall => "BNNPLDLJKNJ_ChangeHpSubFall", + Bnnpldljknj::ChangeHpSubDrawn => "BNNPLDLJKNJ_ChangeHpSubDrawn", + Bnnpldljknj::ChangeHpSubAbyss => "BNNPLDLJKNJ_ChangeHpSubAbyss", + Bnnpldljknj::ChangeHpSubAbility => "BNNPLDLJKNJ_ChangeHpSubAbility", + Bnnpldljknj::ChangeHpSubSummon => "BNNPLDLJKNJ_ChangeHpSubSummon", + Bnnpldljknj::ChangeHpSubScript => "BNNPLDLJKNJ_ChangeHpSubScript", + Bnnpldljknj::ChangeHpSubGm => "BNNPLDLJKNJ_ChangeHpSubGm", + Bnnpldljknj::ChangeHpSubKillSelf => "BNNPLDLJKNJ_ChangeHpSubKillSelf", + Bnnpldljknj::ChangeHpSubClimateCold => "BNNPLDLJKNJ_ChangeHpSubClimateCold", + Bnnpldljknj::ChangeHpSubStormLightning => { + "BNNPLDLJKNJ_ChangeHpSubStormLightning" + } + Bnnpldljknj::ChangeHpSubKillServerGadget => { + "BNNPLDLJKNJ_ChangeHpSubKillServerGadget" + } + Bnnpldljknj::ChangeHpSubReplace => "BNNPLDLJKNJ_ChangeHpSubReplace", + Bnnpldljknj::ChangeHpSubPlayerLeave => "BNNPLDLJKNJ_ChangeHpSubPlayerLeave", + Bnnpldljknj::ChangeHpAttackByEnergy => "BNNPLDLJKNJ_ChangeHpAttackByEnergy", + Bnnpldljknj::ChangeHpAttackByRecycle => "BNNPLDLJKNJ_ChangeHpAttackByRecycle", + Bnnpldljknj::ChangeHpSubPlayerBack => "BNNPLDLJKNJ_ChangeHpSubPlayerBack", + Bnnpldljknj::ChangeHpSubUgc => "BNNPLDLJKNJ_ChangeHpSubUgc", + Bnnpldljknj::ChangeHpSubDirtyWaterErosion => { + "BNNPLDLJKNJ_ChangeHpSubDirtyWaterErosion" + } + Bnnpldljknj::ChangeHpSubDestroySelf => "BNNPLDLJKNJ_ChangeHpSubDestroySelf", + Bnnpldljknj::ChangeHpSubLiquidPhlogiston => { + "BNNPLDLJKNJ_ChangeHpSubLiquidPhlogiston" + } + Bnnpldljknj::ChangeHpSubNataTransfer => "BNNPLDLJKNJ_ChangeHpSubNataTransfer", + Bnnpldljknj::ChangeHpByLua => "BNNPLDLJKNJ_ChangeHpByLua", + Bnnpldljknj::ChangeHpAddAbility => "BNNPLDLJKNJ_ChangeHpAddAbility", + Bnnpldljknj::ChangeHpAddItem => "BNNPLDLJKNJ_ChangeHpAddItem", + Bnnpldljknj::ChangeHpAddRevive => "BNNPLDLJKNJ_ChangeHpAddRevive", + Bnnpldljknj::ChangeHpAddUpgrade => "BNNPLDLJKNJ_ChangeHpAddUpgrade", + Bnnpldljknj::ChangeHpAddStatue => "BNNPLDLJKNJ_ChangeHpAddStatue", + Bnnpldljknj::ChangeHpAddBackground => "BNNPLDLJKNJ_ChangeHpAddBackground", + Bnnpldljknj::ChangeHpAddGm => "BNNPLDLJKNJ_ChangeHpAddGm", + Bnnpldljknj::ChangeHpAddTrialAvatarActivity => { + "BNNPLDLJKNJ_ChangeHpAddTrialAvatarActivity" + } + Bnnpldljknj::ChangeHpAddRouguelikeSpring => { + "BNNPLDLJKNJ_ChangeHpAddRouguelikeSpring" + } + Bnnpldljknj::ChangeHpAddEffigyChallengeV5 => { + "BNNPLDLJKNJ_ChangeHpAddEffigyChallengeV5" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BNNPLDLJKNJ_ChangeHpNone" => Some(Self::ChangeHpNone), + "BNNPLDLJKNJ_ChangeHpSubAvatar" => Some(Self::ChangeHpSubAvatar), + "BNNPLDLJKNJ_ChangeHpSubMonster" => Some(Self::ChangeHpSubMonster), + "BNNPLDLJKNJ_ChangeHpSubGear" => Some(Self::ChangeHpSubGear), + "BNNPLDLJKNJ_ChangeHpSubEnvir" => Some(Self::ChangeHpSubEnvir), + "BNNPLDLJKNJ_ChangeHpSubFall" => Some(Self::ChangeHpSubFall), + "BNNPLDLJKNJ_ChangeHpSubDrawn" => Some(Self::ChangeHpSubDrawn), + "BNNPLDLJKNJ_ChangeHpSubAbyss" => Some(Self::ChangeHpSubAbyss), + "BNNPLDLJKNJ_ChangeHpSubAbility" => Some(Self::ChangeHpSubAbility), + "BNNPLDLJKNJ_ChangeHpSubSummon" => Some(Self::ChangeHpSubSummon), + "BNNPLDLJKNJ_ChangeHpSubScript" => Some(Self::ChangeHpSubScript), + "BNNPLDLJKNJ_ChangeHpSubGm" => Some(Self::ChangeHpSubGm), + "BNNPLDLJKNJ_ChangeHpSubKillSelf" => Some(Self::ChangeHpSubKillSelf), + "BNNPLDLJKNJ_ChangeHpSubClimateCold" => Some(Self::ChangeHpSubClimateCold), + "BNNPLDLJKNJ_ChangeHpSubStormLightning" => { + Some(Self::ChangeHpSubStormLightning) + } + "BNNPLDLJKNJ_ChangeHpSubKillServerGadget" => { + Some(Self::ChangeHpSubKillServerGadget) + } + "BNNPLDLJKNJ_ChangeHpSubReplace" => Some(Self::ChangeHpSubReplace), + "BNNPLDLJKNJ_ChangeHpSubPlayerLeave" => Some(Self::ChangeHpSubPlayerLeave), + "BNNPLDLJKNJ_ChangeHpAttackByEnergy" => Some(Self::ChangeHpAttackByEnergy), + "BNNPLDLJKNJ_ChangeHpAttackByRecycle" => Some(Self::ChangeHpAttackByRecycle), + "BNNPLDLJKNJ_ChangeHpSubPlayerBack" => Some(Self::ChangeHpSubPlayerBack), + "BNNPLDLJKNJ_ChangeHpSubUgc" => Some(Self::ChangeHpSubUgc), + "BNNPLDLJKNJ_ChangeHpSubDirtyWaterErosion" => { + Some(Self::ChangeHpSubDirtyWaterErosion) + } + "BNNPLDLJKNJ_ChangeHpSubDestroySelf" => Some(Self::ChangeHpSubDestroySelf), + "BNNPLDLJKNJ_ChangeHpSubLiquidPhlogiston" => { + Some(Self::ChangeHpSubLiquidPhlogiston) + } + "BNNPLDLJKNJ_ChangeHpSubNataTransfer" => Some(Self::ChangeHpSubNataTransfer), + "BNNPLDLJKNJ_ChangeHpByLua" => Some(Self::ChangeHpByLua), + "BNNPLDLJKNJ_ChangeHpAddAbility" => Some(Self::ChangeHpAddAbility), + "BNNPLDLJKNJ_ChangeHpAddItem" => Some(Self::ChangeHpAddItem), + "BNNPLDLJKNJ_ChangeHpAddRevive" => Some(Self::ChangeHpAddRevive), + "BNNPLDLJKNJ_ChangeHpAddUpgrade" => Some(Self::ChangeHpAddUpgrade), + "BNNPLDLJKNJ_ChangeHpAddStatue" => Some(Self::ChangeHpAddStatue), + "BNNPLDLJKNJ_ChangeHpAddBackground" => Some(Self::ChangeHpAddBackground), + "BNNPLDLJKNJ_ChangeHpAddGm" => Some(Self::ChangeHpAddGm), + "BNNPLDLJKNJ_ChangeHpAddTrialAvatarActivity" => { + Some(Self::ChangeHpAddTrialAvatarActivity) + } + "BNNPLDLJKNJ_ChangeHpAddRouguelikeSpring" => { + Some(Self::ChangeHpAddRouguelikeSpring) + } + "BNNPLDLJKNJ_ChangeHpAddEffigyChallengeV5" => { + Some(Self::ChangeHpAddEffigyChallengeV5) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Bojmbiemcjc { + PlayerJudge = 0, + SceneCannotEnter = 1, + PlayerCannotEnterMp = 2, + SystemJudge = 3, + AllowEnterPlayerFull = 4, + WorldLevelLowerThanHost = 5, + HostInMatch = 6, + PlayerInBlacklist = 7, + PsPlayerNotAcceptOthers = 8, + HostIsBlocked = 9, + OtherDataVersionNotLatest = 10, + DataVersionNotLatest = 11, + PlayerNotInPlayerWorld = 12, + MaxPlayer = 13, +} +impl Bojmbiemcjc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Bojmbiemcjc::PlayerJudge => "BOJMBIEMCJC_PlayerJudge", + Bojmbiemcjc::SceneCannotEnter => "BOJMBIEMCJC_SceneCannotEnter", + Bojmbiemcjc::PlayerCannotEnterMp => "BOJMBIEMCJC_PlayerCannotEnterMp", + Bojmbiemcjc::SystemJudge => "BOJMBIEMCJC_SystemJudge", + Bojmbiemcjc::AllowEnterPlayerFull => "BOJMBIEMCJC_AllowEnterPlayerFull", + Bojmbiemcjc::WorldLevelLowerThanHost => "BOJMBIEMCJC_WorldLevelLowerThanHost", + Bojmbiemcjc::HostInMatch => "BOJMBIEMCJC_HostInMatch", + Bojmbiemcjc::PlayerInBlacklist => "BOJMBIEMCJC_PlayerInBlacklist", + Bojmbiemcjc::PsPlayerNotAcceptOthers => "BOJMBIEMCJC_PsPlayerNotAcceptOthers", + Bojmbiemcjc::HostIsBlocked => "BOJMBIEMCJC_HostIsBlocked", + Bojmbiemcjc::OtherDataVersionNotLatest => { + "BOJMBIEMCJC_OtherDataVersionNotLatest" + } + Bojmbiemcjc::DataVersionNotLatest => "BOJMBIEMCJC_DataVersionNotLatest", + Bojmbiemcjc::PlayerNotInPlayerWorld => "BOJMBIEMCJC_PlayerNotInPlayerWorld", + Bojmbiemcjc::MaxPlayer => "BOJMBIEMCJC_MaxPlayer", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BOJMBIEMCJC_PlayerJudge" => Some(Self::PlayerJudge), + "BOJMBIEMCJC_SceneCannotEnter" => Some(Self::SceneCannotEnter), + "BOJMBIEMCJC_PlayerCannotEnterMp" => Some(Self::PlayerCannotEnterMp), + "BOJMBIEMCJC_SystemJudge" => Some(Self::SystemJudge), + "BOJMBIEMCJC_AllowEnterPlayerFull" => Some(Self::AllowEnterPlayerFull), + "BOJMBIEMCJC_WorldLevelLowerThanHost" => Some(Self::WorldLevelLowerThanHost), + "BOJMBIEMCJC_HostInMatch" => Some(Self::HostInMatch), + "BOJMBIEMCJC_PlayerInBlacklist" => Some(Self::PlayerInBlacklist), + "BOJMBIEMCJC_PsPlayerNotAcceptOthers" => Some(Self::PsPlayerNotAcceptOthers), + "BOJMBIEMCJC_HostIsBlocked" => Some(Self::HostIsBlocked), + "BOJMBIEMCJC_OtherDataVersionNotLatest" => { + Some(Self::OtherDataVersionNotLatest) + } + "BOJMBIEMCJC_DataVersionNotLatest" => Some(Self::DataVersionNotLatest), + "BOJMBIEMCJC_PlayerNotInPlayerWorld" => Some(Self::PlayerNotInPlayerWorld), + "BOJMBIEMCJC_MaxPlayer" => Some(Self::MaxPlayer), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Mclklllbaif { + PlayerJudge = 0, + PlayerEnterOptionRefuse = 1, + PlayerEnterOptionDirect = 2, + SystemJudge = 3, + HostInMatch = 4, + PsPlayerNotAcceptOthers = 5, + OpenStateNotOpen = 6, + HostInEditMode = 7, + PriorCheck = 8, + PlayerOffline = 9, +} +impl Mclklllbaif { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Mclklllbaif::PlayerJudge => "MCLKLLLBAIF_PlayerJudge", + Mclklllbaif::PlayerEnterOptionRefuse => "MCLKLLLBAIF_PlayerEnterOptionRefuse", + Mclklllbaif::PlayerEnterOptionDirect => "MCLKLLLBAIF_PlayerEnterOptionDirect", + Mclklllbaif::SystemJudge => "MCLKLLLBAIF_SystemJudge", + Mclklllbaif::HostInMatch => "MCLKLLLBAIF_HostInMatch", + Mclklllbaif::PsPlayerNotAcceptOthers => "MCLKLLLBAIF_PsPlayerNotAcceptOthers", + Mclklllbaif::OpenStateNotOpen => "MCLKLLLBAIF_OpenStateNotOpen", + Mclklllbaif::HostInEditMode => "MCLKLLLBAIF_HostInEditMode", + Mclklllbaif::PriorCheck => "MCLKLLLBAIF_PriorCheck", + Mclklllbaif::PlayerOffline => "MCLKLLLBAIF_PlayerOffline", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MCLKLLLBAIF_PlayerJudge" => Some(Self::PlayerJudge), + "MCLKLLLBAIF_PlayerEnterOptionRefuse" => Some(Self::PlayerEnterOptionRefuse), + "MCLKLLLBAIF_PlayerEnterOptionDirect" => Some(Self::PlayerEnterOptionDirect), + "MCLKLLLBAIF_SystemJudge" => Some(Self::SystemJudge), + "MCLKLLLBAIF_HostInMatch" => Some(Self::HostInMatch), + "MCLKLLLBAIF_PsPlayerNotAcceptOthers" => Some(Self::PsPlayerNotAcceptOthers), + "MCLKLLLBAIF_OpenStateNotOpen" => Some(Self::OpenStateNotOpen), + "MCLKLLLBAIF_HostInEditMode" => Some(Self::HostInEditMode), + "MCLKLLLBAIF_PriorCheck" => Some(Self::PriorCheck), + "MCLKLLLBAIF_PlayerOffline" => Some(Self::PlayerOffline), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Boedelijagb { + None = 0, + Transculent = 1, +} +impl Boedelijagb { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Boedelijagb::None => "BOEDELIJAGB_None", + Boedelijagb::Transculent => "BOEDELIJAGB_Transculent", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BOEDELIJAGB_None" => Some(Self::None), + "BOEDELIJAGB_Transculent" => Some(Self::Transculent), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Jmhjpmmamdc { + None = 0, + SwitchControl = 1, + ShootTimeout = 2, + RunningTimeout = 3, + RunningReconnect = 4, +} +impl Jmhjpmmamdc { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Jmhjpmmamdc::None => "JMHJPMMAMDC_None", + Jmhjpmmamdc::SwitchControl => "JMHJPMMAMDC_SwitchControl", + Jmhjpmmamdc::ShootTimeout => "JMHJPMMAMDC_ShootTimeout", + Jmhjpmmamdc::RunningTimeout => "JMHJPMMAMDC_RunningTimeout", + Jmhjpmmamdc::RunningReconnect => "JMHJPMMAMDC_RunningReconnect", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "JMHJPMMAMDC_None" => Some(Self::None), + "JMHJPMMAMDC_SwitchControl" => Some(Self::SwitchControl), + "JMHJPMMAMDC_ShootTimeout" => Some(Self::ShootTimeout), + "JMHJPMMAMDC_RunningTimeout" => Some(Self::RunningTimeout), + "JMHJPMMAMDC_RunningReconnect" => Some(Self::RunningReconnect), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Fkiehceffhe { + ReasonNone = 0, + ReasonGameMax = 1, + ReasonClientVersionNotLastest = 2, + ReasonResourceNotComplete = 3, + ReasonTimeout = 4, + ReasonOpponentClientVersionNotLastest = 5, +} +impl Fkiehceffhe { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Fkiehceffhe::ReasonNone => "FKIEHCEFFHE_ReasonNone", + Fkiehceffhe::ReasonGameMax => "FKIEHCEFFHE_ReasonGameMax", + Fkiehceffhe::ReasonClientVersionNotLastest => { + "FKIEHCEFFHE_ReasonClientVersionNotLastest" + } + Fkiehceffhe::ReasonResourceNotComplete => { + "FKIEHCEFFHE_ReasonResourceNotComplete" + } + Fkiehceffhe::ReasonTimeout => "FKIEHCEFFHE_ReasonTimeout", + Fkiehceffhe::ReasonOpponentClientVersionNotLastest => { + "FKIEHCEFFHE_ReasonOpponentClientVersionNotLastest" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FKIEHCEFFHE_ReasonNone" => Some(Self::ReasonNone), + "FKIEHCEFFHE_ReasonGameMax" => Some(Self::ReasonGameMax), + "FKIEHCEFFHE_ReasonClientVersionNotLastest" => { + Some(Self::ReasonClientVersionNotLastest) + } + "FKIEHCEFFHE_ReasonResourceNotComplete" => { + Some(Self::ReasonResourceNotComplete) + } + "FKIEHCEFFHE_ReasonTimeout" => Some(Self::ReasonTimeout), + "FKIEHCEFFHE_ReasonOpponentClientVersionNotLastest" => { + Some(Self::ReasonOpponentClientVersionNotLastest) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Fblkbbkfenl { + None = 0, + Succ = 1, + Fail = 2, +} +impl Fblkbbkfenl { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Fblkbbkfenl::None => "FBLKBBKFENL_None", + Fblkbbkfenl::Succ => "FBLKBBKFENL_Succ", + Fblkbbkfenl::Fail => "FBLKBBKFENL_Fail", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FBLKBBKFENL_None" => Some(Self::None), + "FBLKBBKFENL_Succ" => Some(Self::Succ), + "FBLKBBKFENL_Fail" => Some(Self::Fail), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nmfdmilhgpo { + InteractNone = 0, + InteractPickItem = 1, + InteractGather = 2, + InteractOpenChest = 3, + InteractOpenStatue = 4, + InteractConsum = 5, + InteractMpPlayReward = 6, + InteractView = 7, + InteractGeneralReward = 8, + InteractMiracleRing = 9, + InteractFoundation = 10, + InteractEchoShell = 11, + InteractHomeGather = 12, + InteractEnvAnimal = 13, + InteractQuestGadget = 14, + InteractUiInteract = 15, + InteractDeshretObelisk = 16, +} +impl Nmfdmilhgpo { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nmfdmilhgpo::InteractNone => "NMFDMILHGPO_InteractNone", + Nmfdmilhgpo::InteractPickItem => "NMFDMILHGPO_InteractPickItem", + Nmfdmilhgpo::InteractGather => "NMFDMILHGPO_InteractGather", + Nmfdmilhgpo::InteractOpenChest => "NMFDMILHGPO_InteractOpenChest", + Nmfdmilhgpo::InteractOpenStatue => "NMFDMILHGPO_InteractOpenStatue", + Nmfdmilhgpo::InteractConsum => "NMFDMILHGPO_InteractConsum", + Nmfdmilhgpo::InteractMpPlayReward => "NMFDMILHGPO_InteractMpPlayReward", + Nmfdmilhgpo::InteractView => "NMFDMILHGPO_InteractView", + Nmfdmilhgpo::InteractGeneralReward => "NMFDMILHGPO_InteractGeneralReward", + Nmfdmilhgpo::InteractMiracleRing => "NMFDMILHGPO_InteractMiracleRing", + Nmfdmilhgpo::InteractFoundation => "NMFDMILHGPO_InteractFoundation", + Nmfdmilhgpo::InteractEchoShell => "NMFDMILHGPO_InteractEchoShell", + Nmfdmilhgpo::InteractHomeGather => "NMFDMILHGPO_InteractHomeGather", + Nmfdmilhgpo::InteractEnvAnimal => "NMFDMILHGPO_InteractEnvAnimal", + Nmfdmilhgpo::InteractQuestGadget => "NMFDMILHGPO_InteractQuestGadget", + Nmfdmilhgpo::InteractUiInteract => "NMFDMILHGPO_InteractUiInteract", + Nmfdmilhgpo::InteractDeshretObelisk => "NMFDMILHGPO_InteractDeshretObelisk", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NMFDMILHGPO_InteractNone" => Some(Self::InteractNone), + "NMFDMILHGPO_InteractPickItem" => Some(Self::InteractPickItem), + "NMFDMILHGPO_InteractGather" => Some(Self::InteractGather), + "NMFDMILHGPO_InteractOpenChest" => Some(Self::InteractOpenChest), + "NMFDMILHGPO_InteractOpenStatue" => Some(Self::InteractOpenStatue), + "NMFDMILHGPO_InteractConsum" => Some(Self::InteractConsum), + "NMFDMILHGPO_InteractMpPlayReward" => Some(Self::InteractMpPlayReward), + "NMFDMILHGPO_InteractView" => Some(Self::InteractView), + "NMFDMILHGPO_InteractGeneralReward" => Some(Self::InteractGeneralReward), + "NMFDMILHGPO_InteractMiracleRing" => Some(Self::InteractMiracleRing), + "NMFDMILHGPO_InteractFoundation" => Some(Self::InteractFoundation), + "NMFDMILHGPO_InteractEchoShell" => Some(Self::InteractEchoShell), + "NMFDMILHGPO_InteractHomeGather" => Some(Self::InteractHomeGather), + "NMFDMILHGPO_InteractEnvAnimal" => Some(Self::InteractEnvAnimal), + "NMFDMILHGPO_InteractQuestGadget" => Some(Self::InteractQuestGadget), + "NMFDMILHGPO_InteractUiInteract" => Some(Self::InteractUiInteract), + "NMFDMILHGPO_InteractDeshretObelisk" => Some(Self::InteractDeshretObelisk), + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Nacddokhdhd { + MarkTipsDungeonElementTrial = 0, +} +impl Nacddokhdhd { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Nacddokhdhd::MarkTipsDungeonElementTrial => { + "NACDDOKHDHD_MarkTipsDungeonElementTrial" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "NACDDOKHDHD_MarkTipsDungeonElementTrial" => { + Some(Self::MarkTipsDungeonElementTrial) + } + _ => None, + } + } +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Retcode { + RetSucc = 0, + RetFail = -1, + RetSvrError = 1, + RetUnknownError = 2, + RetFrequent = 3, + RetNodeForwardError = 4, + RetNotFoundConfig = 5, + RetSystemBusy = 6, + RetGmUidBind = 7, + RetForbidden = 8, + RetStopRegister = 10, + RetStopServer = 11, + RetAccountVeirfyError = 12, + RetAccountFreeze = 13, + RetRepeatLogin = 14, + RetClientVersionError = 15, + RetTokenError = 16, + RetAccountNotExist = 17, + RetWaitOtherLogin = 18, + RetAnotherLogin = 19, + RetClientForceUpdate = 20, + RetBlackUid = 21, + RetLoginDbFail = 22, + RetLoginInitFail = 23, + RetMysqlDuplicate = 24, + RetMaxPlayer = 25, + RetAntiAddict = 26, + RetPsPlayerWithoutOnlineId = 27, + RetOnlineIdNotFound = 28, + RetOnlneIdNotMatch = 29, + RetRegisterIsFull = 30, + RetChecksumInvalid = 31, + RetBlackRegisterIp = 32, + RetExceedRegisterRate = 33, + RetUnknownPlatform = 34, + RetTokenParamError = 35, + RetAntiOfflineError = 36, + RetBlackLoginIp = 37, + RetGetTokenSessionHasUid = 38, + RetEnvironmentError = 39, + RetCheckClientVersionHashFail = 40, + RetMinorRegisterFobidden = 41, + RetSecurityLibraryError = 42, + RetGateTicketCheckError = 43, + RetProtoMixVersionNotMatch = 44, + RetAccountTypeStopRegister = 45, + RetAvatarInCd = 101, + RetAvatarNotAlive = 102, + RetAvatarNotOnScene = 103, + RetCanNotFindAvatar = 104, + RetCanNotDelCurAvatar = 105, + RetDuplicateAvatar = 106, + RetAvatarIsSameOne = 107, + RetAvatarLevelLessThan = 108, + RetAvatarCanNotChangeElement = 109, + RetAvatarBreakLevelLessThan = 110, + RetAvatarOnMaxBreakLevel = 111, + RetAvatarIdAlreadyExist = 112, + RetAvatarNotDead = 113, + RetAvatarIsReviving = 114, + RetAvatarIdError = 115, + RetRepeatSetPlayerBornData = 116, + RetPlayerLevelLessThan = 117, + RetAvatarLimitLevelError = 118, + RetCurAvatarNotAlive = 119, + RetCanNotFindTeam = 120, + RetCanNotFindCurTeam = 121, + RetAvatarNotExistInTeam = 122, + RetCanNotRemoveCurAvatarFromTeam = 123, + RetCanNotUseReviveItemForCurAvatar = 124, + RetTeamCostExceedLimit = 125, + RetTeamAvatarInExpedition = 126, + RetTeamCanNotChoseReplaceUse = 127, + RetAvatarInCombat = 128, + RetPlayerTimeLocked = 129, + RetNicknameUtf8Error = 130, + RetNicknameTooLong = 131, + RetNicknameWordIllegal = 132, + RetNicknameTooManyDigits = 133, + RetNicknameIsEmpty = 134, + RetNicknameMonthlyLimit = 135, + RetNicknameNotChanged = 136, + RetPlayerNotOnline = 140, + RetOpenStateNotOpen = 141, + RetFeatureClosed = 142, + RetAvatarExpeditionAvatarDie = 152, + RetAvatarExpeditionCountLimit = 153, + RetAvatarExpeditionMainForbid = 154, + RetAvatarExpeditionTrialForbid = 155, + RetTeamNameIllegal = 156, + RetIsNotInStandby = 157, + RetIsInDungeon = 158, + RetIsInLockAvatarQuest = 159, + RetIsUsingTrialAvatar = 160, + RetIsUsingTempAvatar = 161, + RetNotHasFlycloak = 162, + RetFetterRewardAlreadyGot = 163, + RetFetterRewardLevelNotEnough = 164, + RetWorldLevelAdjustMinLevel = 165, + RetWorldLevelAdjustCd = 166, + RetNotHasCostume = 167, + RetCostumeAvatarError = 168, + RetFlycloakPlatformTypeErr = 169, + RetInTransfer = 170, + RetIsInLockAvatar = 171, + RetFullBackupTeam = 172, + RetBackupTeamIdNotValid = 173, + RetBackupTeamIsCurTeam = 174, + RetAvatarRenameInCd = 175, + RetAvatarRenameInAudit = 176, + RetAvatarRenameInIpBlackList = 177, + RetTeamAvatarIsLocked = 178, + RetPlayerHasTrialAvatar = 179, + RetAvatarExpeditionSlotNotEnough = 180, + RetAvatarExpeditionNoAvatarCanTakeReward = 181, + RetAvatarUpgradeItemExpOverflow = 182, + RetAsyncWordFilterInCd = 183, + RetNotHasTraceEffect = 184, + RetTraceEffectAvatarError = 185, + RetPlayerTimeLockedByQuest = 186, + RetFloatError = 201, + RetNpcNotExist = 301, + RetNpcTooFar = 302, + RetNotCurrentTalk = 303, + RetNpcCreateFail = 304, + RetNpcMoveFail = 305, + RetQuestNotExist = 401, + RetQuestIsFail = 402, + RetQuestContentError = 403, + RetBargainNotActivated = 404, + RetBargainFinished = 405, + RetInferenceAssociateWordError = 406, + RetInferenceSubmitWordNoConclusion = 407, + RetSubmitQuestEventsNotRight = 408, + RetConfirmContinueMutualQuestCondFailed = 409, + RetConfirmContinueMutualOccupiedFailed = 410, + RetQuestFocusModeInCd = 416, + RetQuestInFocusMode = 417, + RetQuestNotInFocusMode = 418, + RetParentQuestCannotStartFocus = 419, + RetParentQuestNotExist = 420, + RetBanOpearateFocus = 421, + RetQuestFocusAnyGalleryStarted = 422, + RetQuestFocusUsingInformalAvatar = 423, + RetQuestFocusOpenstateOff = 424, + RetPointNotUnlocked = 501, + RetPointTooFar = 502, + RetPointAlreayUnlocked = 503, + RetEntityNotExist = 504, + RetEnterSceneFail = 505, + RetPlayerIsEnterScene = 506, + RetCityMaxLevel = 507, + RetAreaLocked = 508, + RetJoinOtherWait = 509, + RetWeatherAreaNotFound = 510, + RetWeatherIsLocked = 511, + RetNotInSelfScene = 512, + RetGroupNotExist = 513, + RetMarkNameIllegal = 514, + RetMarkAlreadyExists = 515, + RetMarkOverflow = 516, + RetMarkNotExists = 517, + RetMarkUnknownType = 518, + RetMarkNameTooLong = 519, + RetDistanceLong = 520, + RetEnterSceneTokenInvalid = 521, + RetNotInWorldScene = 522, + RetAnyGalleryStarted = 523, + RetGalleryNotStart = 524, + RetGalleryInterruptOnlyOnSingleMode = 525, + RetGalleryCannotInterrupt = 526, + RetGalleryWorldNotMeet = 527, + RetGallerySceneNotMeet = 528, + RetCurPlayCannotTransfer = 529, + RetCantUseWidgetInHomeScene = 530, + RetSceneGroupNotMatch = 531, + RetPosRotInvalid = 551, + RetMarkInvalidSceneId = 552, + RetInvalidSceneToUseAnchorPoint = 553, + RetEnterHomeSceneFail = 554, + RetCurSceneIsNull = 555, + RetGroupIdError = 556, + RetGalleryInterruptNotOwner = 557, + RetNoSpringInArea = 558, + RetAreaNotInScene = 559, + RetInvalidCityId = 560, + RetInvalidSceneId = 561, + RetDestSceneIsNotAllow = 562, + RetLevelTagSwitchInCd = 563, + RetLevelTagAlreadyExist = 564, + RetInvalidAreaId = 565, + RetGalleryOngoingForbid = 566, + RetNotInPlayerWorld = 567, + RetMapLayerGroupAlreadyShown = 568, + RetInvalidMapLayer = 569, + RetGalleryRepeatStart = 570, + RetNotInPlayerScene = 571, + RetEnterDungeonNotInValidDungeon = 572, + RetItemNotExist = 601, + RetPackExceedMaxWeight = 602, + RetItemNotDropable = 603, + RetItemNotUsable = 604, + RetItemInvalidUseCount = 605, + RetItemInvalidDropCount = 606, + RetItemAlreadyExist = 607, + RetItemInCooldown = 608, + RetItemCountNotEnough = 609, + RetItemInvalidTarget = 610, + RetRecipeNotExist = 611, + RetRecipeLocked = 612, + RetRecipeUnlocked = 613, + RetCompoundQueueFull = 614, + RetCompoundNotFinish = 615, + RetMailItemNotGet = 616, + RetItemExceedLimit = 617, + RetAvatarCanNotUse = 618, + RetItemNeedPlayerLevel = 619, + RetRecipeNotAutoQte = 620, + RetCompoundBusyQueue = 621, + RetNeedMoreScoin = 622, + RetSkillDepotNotFound = 623, + RetHcoinNotEnough = 624, + RetScoinNotEnough = 625, + RetHcoinExceedLimit = 626, + RetScoinExceedLimit = 627, + RetMailExpired = 628, + RetRewardHasTaken = 629, + RetCombineCountTooLarge = 630, + RetGivingItemWrong = 631, + RetGivingIsFinished = 632, + RetGivingNotActived = 633, + RetForgeQueueFull = 634, + RetForgeQueueCapacity = 635, + RetForgeQueueNotFound = 636, + RetForgeQueueEmpty = 637, + RetNotSupportItem = 638, + RetItemEmpty = 639, + RetVirtualExceedLimit = 640, + RetMaterialExceedLimit = 641, + RetEquipExceedLimit = 642, + RetItemShouldHaveNoLevel = 643, + RetWeaponPromoteLevelExceedLimit = 644, + RetWeaponLevelInvalid = 645, + RetUnknowItemType = 646, + RetItemCountIsZero = 647, + RetItemIsExpired = 648, + RetItemExceedOutputLimit = 649, + RetEquipLevelHigher = 650, + RetEquipCanNotWakeOffWeapon = 651, + RetEquipHasBeenWeared = 652, + RetEquipWearedCannotDrop = 653, + RetAwakenLevelMax = 654, + RetMcoinNotEnough = 655, + RetMcoinExceedLimit = 656, + RetBatchSetEquipLockStateCd = 657, + RetResinNotEnough = 660, + RetResinExceedLimit = 661, + RetResinOpenstateOff = 662, + RetResinBoughtCountExceeded = 663, + RetResinCardDailyRewardHasTaken = 664, + RetResinCardExpired = 665, + RetAvatarCanNotCook = 666, + RetAttachAvatarCd = 667, + RetAutoRecoverOpenstateOff = 668, + RetAutoRecoverBoughtCountExceeded = 669, + RetResinGainFailed = 670, + RetWidgetOrnamentsTypeError = 671, + RetAllTargetSatiationFull = 672, + RetForgeWorldLevelNotMatch = 673, + RetForgePointNotEnough = 674, + RetWidgetAnchorPointFull = 675, + RetWidgetAnchorPointNotFound = 676, + RetAllBonfireExceedMaxCount = 677, + RetBonfireExceedMaxCount = 678, + RetLunchBoxDataError = 679, + RetInvalidQuickUseWidget = 680, + RetInvalidReplaceResinCount = 681, + RetPrevDetectedGatherNotFound = 682, + RetGotAllOneoffGahter = 683, + RetInvalidWidgetMaterialId = 684, + RetWidgetDetectorNoHintToClear = 685, + RetWidgetAlreadyWithinNearbyRadius = 686, + RetWidgetClientCollectorNeedPoints = 687, + RetWidgetInCombat = 688, + RetWidgetNotSetQuickUse = 689, + RetAlreadyAttachWidget = 690, + RetEquipIsLocked = 691, + RetForgeIsLocked = 692, + RetCombineIsLocked = 693, + RetForgeOutputStackLimit = 694, + RetAlreadyDettachWidget = 695, + RetGadgetBuilderExceedMaxCount = 696, + RetReunionPrivilegeResinTypeIsNormal = 697, + RetBonusCountExceedDoubleLimit = 698, + RetReliquaryDecomposeParamError = 699, + RetItemCombineCountNotEnough = 700, + RetGoodsNotExist = 701, + RetGoodsMaterialNotEnough = 702, + RetGoodsNotInTime = 703, + RetGoodsBuyNumNotEnough = 704, + RetGoodsBuyNumError = 705, + RetShopNotOpen = 706, + RetShopContentNotMatch = 707, + RetShopBatchBuyShopLimit = 708, + RetShopBatchBuyCountLimit = 709, + RetGoodsPreconditionNotSatisfied = 710, + RetChatForbidden = 798, + RetChatCd = 799, + RetChatFrequently = 800, + RetGadgetNotExist = 801, + RetGadgetNotInteractive = 802, + RetGadgetNotGatherable = 803, + RetChestIsLocked = 804, + RetGadgetCreateFail = 805, + RetWorktopOptionNotExist = 806, + RetGadgetStatueNotActive = 807, + RetGadgetStatueOpened = 808, + RetBossChestNoQualification = 809, + RetBossChestLifeTimeOver = 810, + RetBossChestWeekNumLimit = 811, + RetBossChestGuestWorldLevel = 812, + RetBossChestHasTaken = 813, + RetBlossomChestNoQualification = 814, + RetBlossomChestLifeTimeOver = 815, + RetBlossomChestHasTaken = 816, + RetBlossomChestGuestWorldLevel = 817, + RetMpPlayRewardNoQualification = 818, + RetMpPlayRewardHasTaken = 819, + RetGeneralRewardNoQualification = 820, + RetGeneralRewardLifeTimeOver = 821, + RetGeneralRewardHasTaken = 822, + RetGadgetNotVehicle = 823, + RetVehicleSlotOccupied = 824, + RetNotInVehicle = 825, + RetCreateVehicleInCd = 826, + RetCreateVehiclePosInvalid = 827, + RetVehiclePointNotUnlock = 828, + RetGadgetInteractCondNotMeet = 829, + RetGadgetInteractParamError = 830, + RetGadgetCustomCombinationInvalid = 831, + RetDeshretObeliskDuplicateInteract = 832, + RetDeshretObeliskNoAvailChest = 833, + RetVehicleSorushNotReplace = 834, + RetVehicleSorushNotUnload = 835, + RetVehicleSorushStateNotMatch = 836, + RetGivingNotInMyWorld = 837, + RetGivingIsFrozen = 838, + RetActivityClose = 860, + RetActivityItemError = 861, + RetActivityContributionNotEnough = 862, + RetSeaLampPhaseNotFinish = 863, + RetSeaLampFlyNumLimit = 864, + RetSeaLampFlyLampWordIllegal = 865, + RetActivityWatcherRewardTaken = 866, + RetActivityWatcherRewardNotFinished = 867, + RetSalesmanAlreadyDelivered = 868, + RetSalesmanRewardCountNotEnough = 869, + RetSalesmanPositionInvalid = 870, + RetDeliverNotFinishAllQuest = 871, + RetDeliverAlreadyTakeDailyReward = 872, + RetAsterProgressExceedLimit = 873, + RetAsterCreditExceedLimit = 874, + RetAsterTokenExceedLimit = 875, + RetAsterCreditNotEnough = 876, + RetAsterTokenNotEnough = 877, + RetAsterSpecialRewardHasTaken = 878, + RetFlightGroupActivityNotStarted = 879, + RetAsterMidPreviousBattleNotFinished = 880, + RetDragonSpineShimmeringEssenceExceedLimit = 881, + RetDragonSpineWarmEssenceExceedLimit = 882, + RetDragonSpineWondrousEssenceExceedLimit = 883, + RetDragonSpineShimmeringEssenceNotEnough = 884, + RetDragonSpineWarmEssenceNotEnough = 885, + RetDragonSpineWondrousEssenceNotEnough = 886, + RetEffigyFirstPassRewardHasTaken = 891, + RetEffigyRewardHasTaken = 892, + RetTreasureMapAddTokenExceedLimit = 893, + RetTreasureMapTokenNotEnought = 894, + RetSeaLampCoinExceedLimit = 895, + RetSeaLampCoinNotEnough = 896, + RetSeaLampPopularityExceedLimit = 897, + RetActivityAvatarRewardNotOpen = 898, + RetActivityAvatarRewardHasTaken = 899, + RetArenaActivityAlreadyStarted = 900, + RetTalentAlreayUnlocked = 901, + RetPrevTalentNotUnlocked = 902, + RetBigTalentPointNotEnough = 903, + RetSmallTalentPointNotEnough = 904, + RetProudSkillAlreadyGot = 905, + RetPrevProudSkillNotGet = 906, + RetProudSkillMaxLevel = 907, + RetCandidateSkillDepotIdNotFind = 910, + RetSkillDepotIsTheSame = 911, + RetMonsterNotExist = 1001, + RetMonsterCreateFail = 1002, + RetDungeonEnterFail = 1101, + RetDungeonQuitFail = 1102, + RetDungeonEnterExceedDayCount = 1103, + RetDungeonReviveExceedMaxCount = 1104, + RetDungeonReviveFail = 1105, + RetDungeonNotSucceed = 1106, + RetDungeonCanNotCancel = 1107, + RetDestDungeonSettled = 1108, + RetDungeonCandidateTeamIsFull = 1109, + RetDungeonCandidateTeamIsDismiss = 1110, + RetDungeonCandidateTeamNotAllReady = 1111, + RetDungeonCandidateTeamHasRepeatAvatar = 1112, + RetDungeonCandidateNotSingelPass = 1113, + RetDungeonReplayNeedAllPlayerDie = 1114, + RetDungeonReplayHasReviveCount = 1115, + RetDungeonOthersLeave = 1116, + RetDungeonEnterLevelLimit = 1117, + RetDungeonCannotEnterPlotInMp = 1118, + RetDungeonDropSubfieldLimit = 1119, + RetDungeonBeInvitePlayerAvatarAllDie = 1120, + RetDungeonCannotKick = 1121, + RetDungeonCandidateTeamSomeoneLevelLimit = 1122, + RetDungeonInForceQuit = 1123, + RetDungeonGuestQuitDungeon = 1124, + RetDungeonTicketFail = 1125, + RetCurDungeonSettled = 1126, + RetCurDungeonNotPlot = 1127, + RetCurDungeonNotAllowSwitchTeam = 1128, + RetDungeonEnteredByCandidateTeam = 1129, + RetDungeonSwitchTeamBannedByPlay = 1130, + RetDungeonEnterTeamInternalError = 1131, + RetDungeonEnterTeamSomeoneLevelLimit = 1132, + RetDungeonEnterTeamSomeoneNotInSceneTeam = 1133, + RetMpNotInMyWorld = 1201, + RetMpInMpMode = 1202, + RetMpSceneIsFull = 1203, + RetMpModeNotAvailable = 1204, + RetMpPlayerNotEnterable = 1205, + RetMpQuestBlockMp = 1206, + RetMpInRoomScene = 1207, + RetMpWorldIsFull = 1208, + RetMpPlayerNotAllowEnter = 1209, + RetMpPlayerDisconnected = 1210, + RetMpNotInMpMode = 1211, + RetMpOwnerNotEnter = 1212, + RetMpAllowEnterPlayerFull = 1213, + RetMpTargetPlayerInTransfer = 1214, + RetMpTargetEnteringOther = 1215, + RetMpOtherEntering = 1216, + RetMpEnterMainPlayerInPlot = 1217, + RetMpNotPsPlayer = 1218, + RetMpPlayNotActive = 1219, + RetMpPlayRemainRewards = 1220, + RetMpPlayNoReward = 1221, + RetMpOpenStateFail = 1223, + RetMpPlayerInBlacklist = 1224, + RetMpReplyTimeout = 1225, + RetMpIsBlock = 1226, + RetMpEnterMainPlayerInMpPlay = 1227, + RetMpInMpPlayBattle = 1228, + RetMpGuestHasRewardRemained = 1229, + RetMpQuitMpInvalid = 1230, + RetMpOtherDataVersionNotLatest = 1231, + RetMpDataVersionNotLatest = 1232, + RetMpCurWorldNotEnterable = 1233, + RetMpAnyGalleryStarted = 1234, + RetMpHasActiveDraft = 1235, + RetMpPlayerInDungeon = 1236, + RetMpMatchFull = 1237, + RetMpMatchLimit = 1238, + RetMpMatchInPunish = 1239, + RetMpIsInMultistage = 1240, + RetMpMatchPlayNotOpen = 1241, + RetMpOnlyMpWithPsPlayer = 1242, + RetMpGuestLoadingFirstEnter = 1243, + RetMpSummerTimeSprintBoatOngoing = 1244, + RetMpBlitzRushParkourChallengeOngoing = 1245, + RetMpMusicGameOngoing = 1246, + RetMpInMpingMode = 1247, + RetMpOwnerInSingleScene = 1248, + RetMpInSingleScene = 1249, + RetMpReplyNoValidAvatar = 1250, + RetMpIsNotInTransferGuard = 1251, + RetMpCannotExecGivingInSingleModeQuest = 1252, + RetMpEffigyChallengeV4InPrepare = 1253, + RetMpShuffleBoardOngoing = 1254, + RetMpFlightGearOngoing = 1255, + RetMpToyBattleQteOngoing = 1256, + RetMpPaintingRepairOngoing = 1257, + RetMpFishblasterOngoing = 1258, + RetMpGuestMatchCondNotMeet = 1259, + RetMailParaErr = 1301, + RetMailMaxNum = 1302, + RetMailItemNumExceed = 1303, + RetMailTitleLenExceed = 1304, + RetMailContentLenExceed = 1305, + RetMailSenderLenExceed = 1306, + RetMailParsePacketFail = 1307, + RetOfflineMsgMaxNum = 1308, + RetOfflineMsgSameTicket = 1309, + RetMailExcelMailTypeError = 1310, + RetMailCannotSendMcoin = 1311, + RetMailHcoinExceedLimit = 1312, + RetMailScoinExceedLimit = 1313, + RetMailMaterialIdInvalid = 1314, + RetMailAvatarExceedLimit = 1315, + RetMailGachaTicketEtcExceedLimit = 1316, + RetMailItemExceedCehuaLimit = 1317, + RetMailSpaceOrRestNumNotEnough = 1318, + RetMailTicketIsEmpty = 1319, + RetMailTransactionIsEmpty = 1320, + RetMailDeleteCollected = 1321, + RetMailCollectionIsFull = 1322, + RetMailTitleCharacterLenExceed = 1323, + RetMailTitleEmpty = 1324, + RetMailContentEmpty = 1325, + RetMailSenderEmpty = 1326, + RetDailyTaskNotFinish = 1330, + RetDailyTaksHasTaken = 1331, + RetSocialOfflineMsgNumExceed = 1332, + RetDailyTaskFilterCityNotOpen = 1333, + RetDailyAttendanceNotOpen = 1334, + RetDailyAttendanceRewardMax = 1335, + RetGachaInavailable = 1401, + RetGachaRandomNotMatch = 1402, + RetGachaScheduleNotMatch = 1403, + RetGachaInvalidTimes = 1404, + RetGachaCostItemNotEnough = 1405, + RetGachaTimesLimit = 1406, + RetGachaWishSameItem = 1407, + RetGachaWishInvalidItem = 1408, + RetGachaMinorsTimesLimit = 1409, + RetGachaGeneralTimesLimit = 1410, + RetGachaWishIsNeededBeforeGacha = 1411, + RetInvestigaitonNotInProgress = 1501, + RetInvestigaitonUncomplete = 1502, + RetInvestigaitonRewardTaken = 1503, + RetInvestigaitonTargetStateError = 1504, + RetPushTipsNotFound = 1505, + RetSignInRecordNotFound = 1506, + RetAlreadyHaveSignedIn = 1507, + RetSignInCondNotSatisfied = 1508, + RetBonusActivityNotUnrewarded = 1509, + RetSignInRewarded = 1510, + RetTowerNotOpen = 1521, + RetTowerHaveDailyRecord = 1522, + RetTowerNotRecord = 1523, + RetTowerHaveRecord = 1524, + RetTowerTeamNumError = 1525, + RetTowerFloorNotOpen = 1526, + RetTowerNoFloorStarRecord = 1527, + RetAlreadyHasTowerBuff = 1528, + RetDuplicateEnterLevel = 1529, + RetNotInTowerLevel = 1530, + RetInTowerLevel = 1531, + RetTowerPrevFloorNotFinish = 1532, + RetTowerStarNotEnough = 1533, + RetBattlePassNoSchedule = 1541, + RetBattlePassHasBuyed = 1542, + RetBattlePassLevelOverflow = 1543, + RetBattlePassProductExpired = 1544, + RetMatchHostQuit = 1561, + RetMatchAlreadyInMatch = 1562, + RetMatchNotInMatch = 1563, + RetMatchApplyingEnterMp = 1564, + RetMatchIncorrectScene = 1565, + RetWidgetTreasureSpotNotFound = 1581, + RetWidgetTreasureEntityExists = 1582, + RetWidgetTreasureSpotFarAway = 1583, + RetWidgetTreasureFinishedToday = 1584, + RetWidgetQuickUseReqParamError = 1585, + RetWidgetCameraScanIdError = 1586, + RetWidgetNotActive = 1587, + RetWidgetFeatherNotActive = 1588, + RetWidgetFeatherGadgetTooFarAway = 1589, + RetWidgetCaptureAnimalNotExist = 1590, + RetWidgetCaptureAnimalDropBagLimit = 1591, + RetWidgetCaptureAnimalCanNotCapture = 1592, + RetWidgetSkyCrystalAllCollected = 1593, + RetWidgetSkyCrystalHintAlreadyExist = 1594, + RetWidgetSkyCrystalNotFound = 1595, + RetWidgetSkyCrystalNoHintToClear = 1596, + RetWidgetLightStoneEnergyNotEnough = 1597, + RetWidgetToyCrystalEnergyNotEnough = 1598, + RetWidgetLightStoneLevelNotEnough = 1599, + RetWidgetQuickSlotNotInWidgetPanel = 1600, + RetRoleCombatNotRecord = 1601, + RetRoleCombatCoinExceedLimit = 1602, + RetRoleCombatCoinNotEnough = 1603, + RetRoleCombatLevelNotMeet = 1604, + RetRoleCombatTowerNotMeet = 1605, + RetRoleCombatScheduleNotMeet = 1606, + RetRoleCombatReqFriendRentAvatarFrequently = 1617, + RetRoleCombatReqTrialAvatarFrequently = 1618, + RetRoleCombatRefreshCountNotEnough = 1619, + RetRoleCombatQuestNotMeet = 1620, + RetInRoleCombatDungeon = 1621, + RetInRoleCombatDungeonByUseItem = 1622, + RetRoleCombatRentAvatarNotFound = 1623, + RetRoleCombatCardHasBlocked = 1624, + RetCharMasterKeyExceedLimit = 1631, + RetCharMasterKeyNotEnough = 1632, + RetCharMasterPreviewInCd = 1633, + RetUidNotExist = 2001, + RetParseBinError = 2002, + RetAccountInfoNotExist = 2003, + RetOrderInfoNotExist = 2004, + RetSnapshotIndexError = 2005, + RetMailHasBeenSent = 2006, + RetProductNotExist = 2007, + RetUnfinishOrder = 2008, + RetIdNotExist = 2009, + RetOrderTradeEarly = 2010, + RetOrderFinished = 2011, + RetGameserverVersionWrong = 2012, + RetOfflineOpFullLength = 2013, + RetConcertProductObtainLimit = 2014, + RetConcertProductTicketDuplicated = 2015, + RetConcertProductTicketEmpty = 2016, + RetRedisModified = 5001, + RetRedisUidNotExist = 5002, + RetPathfindingDataNotExist = 6001, + RetPathfindingDestinationNotExist = 6002, + RetPathfindingErrorScene = 6003, + RetPathfindingSceneDataLoading = 6004, + RetTothemoonErrorScene = 6301, + RetTothemoonPlayerNotExist = 6302, + RetFriendCountExceeded = 7001, + RetPlayerNotExist = 7002, + RetAlreadySentAddRequest = 7003, + RetAskFriendListFull = 7004, + RetPlayerAlreadyIsFriend = 7005, + RetPlayerNotAskFriend = 7006, + RetTargetFriendCountExceed = 7007, + RetNotFriend = 7008, + RetBirthdayCannotBeSetTwice = 7009, + RetCannotAddSelfFriend = 7010, + RetSignatureIllegal = 7011, + RetPsPlayerCannotAddFriends = 7012, + RetPsPlayerCannotRemoveFriends = 7013, + RetNameCardNotUnlocked = 7014, + RetAlreadyInBlacklist = 7015, + RetPsPaleyrsCannotAddBlacklist = 7016, + RetPlayerBlacklistFull = 7017, + RetPlayerNotInBlacklist = 7018, + RetBlacklistPlayerCannotAddFriend = 7019, + RetInTargetBlacklist = 7020, + RetCannotAddTargetFriend = 7021, + RetBirthdayFormatError = 7022, + RetOnlineIdNotExists = 7023, + RetFirstShareRewardHasTaken = 7024, + RetPsPlayerCannotRemoveBlacklist = 7025, + RetReportCd = 7026, + RetReportContentIllegal = 7027, + RetRemarkWordIllegal = 7028, + RetRemarkTooLong = 7029, + RetRemarkUtf8Error = 7030, + RetRemarkIsEmpty = 7031, + RetAskAddFriendCd = 7032, + RetShowAvatarInfoNotExist = 7033, + RetPlayerNotShowAvatar = 7034, + RetSocialUpdateShowListRepeatId = 7035, + RetPsnIdNotFound = 7036, + RetEmojiCollectionNumExceedLimit = 7037, + RetRemarkEmpty = 7038, + RetInTargetPsnBlacklist = 7039, + RetSignatureNotChanged = 7040, + RetSignatureMonthlyLimit = 7041, + RetReqFriendAvatarFrequently = 7042, + RetPsnGetPlayerSocialDetailFail = 7043, + RetProfilePictureNotUnlocked = 7044, + RetOfferingNotOpen = 7081, + RetOfferingLevelLimit = 7082, + RetOfferingLevelNotReach = 7083, + RetOfferingLevelHasTaken = 7084, + RetOfferingPariSearchNotOpen = 7085, + RetOfferingPariNotFinish = 7086, + RetOfferingPariFinishRewardHasTaken = 7087, + RetOfferingPariSearchAllFinish = 7088, + RetOfferingPariNoFinishReward = 7089, + RetCityReputationNotOpen = 7101, + RetCityReputationLevelTaken = 7102, + RetCityReputationLevelNotReach = 7103, + RetCityReputationParentQuestTaken = 7104, + RetCityReputationParentQuestUnfinish = 7105, + RetCityReputationAcceptRequest = 7106, + RetCityReputationNotAcceptRequest = 7107, + RetCityReputationAcceptRequestLimit = 7108, + RetCityReputationEntranceNotOpen = 7109, + RetCityReputationTakenRequestReward = 7110, + RetCityReputationSwitchClose = 7111, + RetCityReputationEntraceSwitchClose = 7112, + RetCityReputationTakenExploreReward = 7113, + RetCityReputationExploreNotReach = 7114, + RetTribalReputationNotOpen = 7115, + RetTribalReputationLevelTaken = 7116, + RetTribalReputationLevelNotReach = 7117, + RetTribalReputationTakenExploreReward = 7118, + RetTribalReputationExploreNotReach = 7119, + RetTribalReputationParentQuestTaken = 7201, + RetTribalReputationParentQuestUnfinish = 7202, + RetCityReputationNotOpenTribal = 7203, + RetCityReputationNoTheDonation = 7204, + RetCityReputationDonationFinished = 7205, + RetCityReputationDonationLimit = 7206, + RetCityReputationTotalRewardTaken = 7207, + RetCityReputationTotalRewardNotReach = 7208, + RetMechanicusNotOpen = 7120, + RetMechanicusGearUnlock = 7121, + RetMechanicusGearLock = 7122, + RetMechanicusGearLevelLimit = 7123, + RetMechanicusCoinNotEnough = 7124, + RetMechanicusNoSequence = 7125, + RetMechanicusSequenceLimitLevel = 7126, + RetMechanicusSequenceLimitOpen = 7127, + RetMechanicusDifficultNotSupport = 7128, + RetMechanicusTicketNotEnough = 7129, + RetMechanicusTeachNotFinish = 7130, + RetMechanicusTeachFinished = 7131, + RetMechanicusPrevDifficultLevelBlock = 7132, + RetMechanicusPlayerLimit = 7133, + RetMechanicusPunishTime = 7134, + RetMechanicusSwitchClose = 7135, + RetMechanicusBattleNotInDungeon = 7150, + RetMechanicusBattlePlayNotFound = 7151, + RetMechanicusBattleDuplicatePickCard = 7152, + RetMechanicusBattlePlayerNotInPlay = 7153, + RetMechanicusBattleCardNotAvailable = 7154, + RetMechanicusBattleNotInCardStage = 7155, + RetMechanicusBattleCardIsWaiting = 7156, + RetMechanicusBattleCardAllConfirmed = 7157, + RetMechanicusBattleCardAlreadyConfirmed = 7158, + RetMechanicusBattleCardConfirmedByOther = 7159, + RetMechanicusBattleCardNotEnoughPoints = 7160, + RetMechanicusBattleCardAlreadySkipped = 7161, + RetLegendaryKeyNotEnough = 8001, + RetLegendaryKeyExceedLimit = 8002, + RetDailyTaskNotEnoughToRedeem = 8003, + RetPersonalLineOpenStateOff = 8004, + RetPersonalLineLevelNotEnough = 8005, + RetPersonalLineNotOpen = 8006, + RetPersonalLinePreQuestNotFinish = 8007, + RetHuntingAlreadyFinishOfferLimit = 8201, + RetHuntingHasUnfinishedOffer = 8202, + RetHuntingFailedOfferNotCdReady = 8203, + RetHuntingNotTakeOffer = 8204, + RetHuntingCannotTakeTwice = 8205, + RetRpivateChatInvalidContentType = 8901, + RetPrivateChatTargetIsNotFriend = 8902, + RetPrivateChatContentNotSupported = 8903, + RetPrivateChatContentTooLong = 8904, + RetPrivateChatPullTooFast = 8905, + RetPrivateChatRepeatRead = 8906, + RetPrivateChatReadNotFriend = 8907, + RetReunionFinished = 9001, + RetReunionNotActivated = 9002, + RetReunionAlreadyTakeFirstReward = 9003, + RetReunionSignInRewarded = 9004, + RetReunionWatcherRewarded = 9005, + RetReunionWatcherNotFinish = 9006, + RetReunionMissionRewarded = 9007, + RetReunionMissionNotFinish = 9008, + RetReunionWatcherRewardNotUnlocked = 9009, + RetBlessingContentClosed = 9101, + RetBlessingNotActive = 9102, + RetBlessingNotTodayEntity = 9103, + RetBlessingEntityExceedScanNumLimit = 9104, + RetBlessingDailyScanNumExceedLimit = 9105, + RetBlessingRedeemRewardNumExceedLimit = 9106, + RetBlessingRedeemPicNumNotEnough = 9107, + RetBlessingPicNotEnough = 9108, + RetBlessingPicHasReceived = 9109, + RetBlessingTargetRecvNumExceed = 9110, + RetFleurFairCreditExceedLimit = 9111, + RetFleurFairCreditNotEnough = 9112, + RetFleurFairTokenExceedLimit = 9113, + RetFleurFairTokenNotEnough = 9114, + RetFleurFairMinigameNotOpen = 9115, + RetFleurFairMusicGameDifficultyNotUnlock = 9116, + RetFleurFairDungeonLocked = 9117, + RetFleurFairDungeonPunishTime = 9118, + RetFleurFairOnlyOwnerCanRestartMinigam = 9119, + RetWaterSpiritCoinExceedLimit = 9120, + RetWaterSpiritCoinNotEnough = 9121, + RetRegionSearchNoSearch = 9122, + RetRegionSearchStateError = 9123, + RetBlessingGiveNumInvalid = 9124, + RetBlessingNoGroupOrOwner = 9125, + RetChannellerSlabLoopDungeonStageNotOpen = 9130, + RetChannellerSlabLoopDungeonNotOpen = 9131, + RetChannellerSlabLoopDungeonFirstPassRewardHasTaken = 9132, + RetChannellerSlabLoopDungeonScoreRewardHasTaken = 9133, + RetChannellerSlabInvalidOneOffDungeon = 9134, + RetChannellerSlabOneOffDungeonDone = 9135, + RetChannellerSlabOneOffDungeonStageNotOpen = 9136, + RetChannellerSlabTokenExceedLimit = 9137, + RetChannellerSlabTokenNotEnough = 9138, + RetChannellerSlabPlayerNotInOneOffDungeon = 9139, + RetMistTrialSelectCharacterNumNotEnough = 9150, + RetMistTrialAlreadyUsingTrialAvatar = 9151, + RetHideAndSeekPlayNotOpen = 9160, + RetHideAndSeekPlayMapNotOpen = 9161, + RetHideAndSeekPlayMapNotChosen = 9162, + RetSummerTimeDraftWoordExceedLimit = 9170, + RetSummerTimeDraftWoordNotEnough = 9171, + RetSummerTimeMiniHarpastumExceedLimit = 9172, + RetSummerTimeMiniHarpastumnotEnough = 9173, + RetBounceConjuringCoinExceedLimit = 9180, + RetBounceConjuringCoinNotEnough = 9181, + RetChessTeachMapFinished = 9183, + RetChessTeachMapUnfinished = 9184, + RetChessCoinExceedLimit = 9185, + RetChessCoinNotEnough = 9186, + RetChessInPunishTime = 9187, + RetChessPrevMapUnfinished = 9188, + RetChessMapLocked = 9189, + RetBlitzRushNotOpen = 9192, + RetBlitzRushDungeonNotOpen = 9193, + RetBlitzRushCoinAExceedLimit = 9194, + RetBlitzRushCoinBExceedLimit = 9195, + RetBlitzRushCoinANotEnough = 9196, + RetBlitzRushCoinBNotEnough = 9197, + RetMiracleRingValueNotEnough = 9201, + RetMiracleRingCd = 9202, + RetMiracleRingRewardNotTaken = 9203, + RetMiracleRingNotDeliver = 9204, + RetMiracleRingDeliverExceed = 9205, + RetMiracleRingHasCreated = 9206, + RetMiracleRingHasNotCreated = 9207, + RetMiracleRingNotYours = 9208, + RetGadgetFoundationUnauthorized = 9251, + RetGadgetFoundationSceneNotFound = 9252, + RetGadgetFoundationNotInInitState = 9253, + RetGadgetFoundationBildingPointNotEnought = 9254, + RetGadgetFoundationNotInBuiltState = 9255, + RetGadgetFoundationOpNotSupported = 9256, + RetGadgetFoundationReqPlayerNotInScene = 9257, + RetGadgetFoundationLockedByAnotherPlayer = 9258, + RetGadgetFoundationNotLocked = 9259, + RetGadgetFoundationDuplicateLock = 9260, + RetGadgetFoundationPlayerNotFound = 9261, + RetGadgetFoundationPlayerGearNotFound = 9262, + RetGadgetFoundationRotaionDisabled = 9263, + RetGadgetFoundationReachDungeonGearLimit = 9264, + RetGadgetFoundationReachSingleGearLimit = 9265, + RetGadgetFoundationRotationOnGoing = 9266, + RetOpActivityBonusNotFound = 9301, + RetOpActivityNotOpen = 9302, + RetMultistagePlayPlayerNotInScene = 9501, + RetMultistagePlayNotFound = 9502, + RetMultistagePlayInOtherStage = 9503, + RetCoopChapterNotOpen = 9601, + RetCoopCondNotMeet = 9602, + RetCoopPointLocked = 9603, + RetCoopNotHaveProgress = 9604, + RetCoopRewardHasTaken = 9605, + RetDraftHasActiveDraft = 9651, + RetDraftNotInMyWorld = 9652, + RetDraftNotSupportMp = 9653, + RetDraftPlayerNotEnough = 9654, + RetDraftIncorrectScene = 9655, + RetDraftOtherPlayerEntering = 9656, + RetDraftGuestIsTransferring = 9657, + RetDraftGuestNotInDraftScene = 9658, + RetDraftInviteOverTime = 9659, + RetDraftTwiceConfirmOverTimer = 9660, + RetDraftGuestNotInWorldScene = 9661, + RetHomeUnkown = 9701, + RetHomeInvalidClientParam = 9702, + RetHomeTargePlayerHasNoHome = 9703, + RetHomeNotOnline = 9704, + RetHomePlayerFull = 9705, + RetHomeBlocked = 9706, + RetHomeAlreadyInTargetHomeWorld = 9707, + RetHomeInEditMode = 9708, + RetHomeNotInEditMode = 9709, + RetHomeHasGuest = 9710, + RetHomeCantEnterByInEditMode = 9711, + RetHomeClientParamInvalid = 9712, + RetHomePlayerNotInHomeWorld = 9713, + RetHomePlayerNotInSelfHomeWorld = 9714, + RetHomeNotFoundInMem = 9715, + RetHomePlayerInHomeRoomScene = 9716, + RetHomeHomeRefuseGuestEnter = 9717, + RetHomeOwnerRefuseToEnterHome = 9718, + RetHomeOwnerOffline = 9719, + RetHomeFurnitureExceedLimit = 9720, + RetHomeFurnitureCountNotEnough = 9721, + RetHomeInTryEnterProcess = 9722, + RetHomeAlreadyInTargetScene = 9723, + RetHomeCoinExceedLimit = 9724, + RetHomeCoinNotEnough = 9725, + RetHomeModuleNotUnlocked = 9726, + RetHomeCurModuleClosed = 9727, + RetHomeFurnitureSuiteNotUnlocked = 9728, + RetHomeInMatch = 9729, + RetHomeInCombat = 9730, + RetHomeEditModeCd = 9731, + RetHomeUpdateFurnitureCd = 9732, + RetHomeBlockFurnitureLimit = 9733, + RetHomeNotSupport = 9734, + RetHomeStateNotOpen = 9735, + RetHomeTargetStateNotOpen = 9736, + RetHomeApplyEnterOtherHomeFail = 9737, + RetHomeSaveNoMainHouse = 9738, + RetHomeInDungeon = 9739, + RetHomeAnyGalleryStarted = 9740, + RetHomeQuestBlockHome = 9741, + RetHomeWaitingPriorCheck = 9742, + RetHomePersistentCheckFail = 9743, + RetHomeFindOnlineHomeFail = 9744, + RetHomeJoinSceneFail = 9745, + RetHomeMaxPlayer = 9746, + RetHomeInTransfer = 9747, + RetHomeAnyHomeGalleryStarted = 9748, + RetHomeCanNotEnterInAudit = 9749, + RetFurnitureMakeIndexError = 9750, + RetFurnitureMakeLocked = 9751, + RetFurnitureMakeConfigError = 9752, + RetFurnitureMakeSlotFull = 9753, + RetFurnitureMakeAddFurnitureFail = 9754, + RetFurnitureMakeUnfinish = 9755, + RetFurnitureMakeIsFinish = 9756, + RetFurnitureMakeNotInCorrectHome = 9757, + RetFurnitureMakeNoCount = 9758, + RetFurnitureMakeAccelerateLimit = 9759, + RetFurnitureMakeNoMakeData = 9760, + RetHomeLimitedShopClose = 9761, + RetHomeAvatarNotShow = 9762, + RetHomeEventCondNotSatisfied = 9763, + RetHomeInvalidArrangeAnimalParam = 9764, + RetHomeInvalidArrangeNpcParam = 9765, + RetHomeInvalidArrangeSuiteParam = 9766, + RetHomeInvalidArrangeMainHouseParam = 9767, + RetHomeAvatarStateNotOpen = 9768, + RetHomePlantFieldNotEmpty = 9769, + RetHomePlantFieldEmpty = 9770, + RetHomePlantFieldTypeError = 9771, + RetHomePlantTimeNotEnough = 9772, + RetHomePlantSubFieldNumNotEnough = 9773, + RetHomePlantFieldParamError = 9774, + RetHomeFurnitureGuidError = 9775, + RetHomeFurnitureArrangeLimit = 9776, + RetHomeFishFarmingLimit = 9777, + RetHomeFishCountNotEnough = 9778, + RetHomeFurnitureCostLimit = 9779, + RetHomeCustomFurnitureInvalid = 9780, + RetHomeInvalidArrangeGroupParam = 9781, + RetHomeFurnitureArrangeGroupLimit = 9782, + RetHomePictureFrameCoopCgGenderError = 9783, + RetHomePictureFrameCoopCgNotUnlock = 9784, + RetHomeFurnitureCannotArrange = 9785, + RetHomeFurnitureInDuplicateSuite = 9786, + RetHomeFurnitureCustomSuiteTooSmall = 9787, + RetHomeFurnitureCustomSuiteTooBig = 9788, + RetHomeFurnitureSuiteExceedLimit = 9789, + RetHomeFurnitureCustomSuiteExceedLimit = 9790, + RetHomeFurnitureCustomSuiteInvalidSurfaceType = 9791, + RetHomeBgmIdNotFound = 9792, + RetHomeBgmNotUnlocked = 9793, + RetHomeBgmFurnitureNotFound = 9794, + RetHomeBgmNotSupportByCurScene = 9795, + RetHomeLimitedShopGoodsDisable = 9796, + RetHomeWorldWoodMaterialEmpty = 9797, + RetHomeWorldWoodMaterialNotFound = 9798, + RetHomeWorldWoodMaterialCountInvalid = 9799, + RetHomeWorldWoodExchangeExceedLimit = 9800, + RetHomeBlueprintSearchSelf = 9801, + RetHomeBlueprintShareCodeInvalid = 9802, + RetHomeBlueprintNotExist = 9803, + RetHomeBlueprintSlotHasExistShareCode = 9804, + RetHomeBlueprintSlotNotExistShareCode = 9805, + RetHomeBlueprintCanNotCreateInAudit = 9806, + RetHomeBlockNotUnlocked = 9807, + RetHomeBlueprintCreateCd = 9808, + RetHomeBlueprintSetOptionCd = 9809, + RetHomeBlueprintNotAllowFriendCopy = 9810, + RetHomeFurniturePosUnderDieY = 9811, + RetHomeBlueprintGenShareCodeFail = 9812, + RetHomeBlueprintSearchCd = 9813, + RetHomeBlueprintPreviewCd = 9814, + RetHomeBlueprintPreviewSceneNotMatch = 9815, + RetHomeBlueprintSlotFull = 9816, + RetHomeBlueprintOwnerRejectCopy = 9817, + RetHomeBlueprintSaveToSlotCd = 9818, + RetHomeBlueprintReplyTimeout = 9819, + RetSumoActivityStageNotOpen = 10000, + RetSumoActivitySwitchTeamInCd = 10001, + RetSumoActivityTeamNumIncorrect = 10002, + RetLunaRiteActivityAreaIdError = 10004, + RetLunaRiteActivityBattleNotFinish = 10005, + RetLunaRiteActivityAlreadySacrifice = 10006, + RetLunaRiteActivityAlreadyTakeReward = 10007, + RetLunaRiteActivitySacrificeNotEnough = 10008, + RetLunaRiteActivitySearchingCondNotMeet = 10009, + RetDigGadgetConfigIdNotMatch = 10015, + RetDigFindNearestPosFail = 10016, + RetMusicGameLevelNotOpen = 10021, + RetMusicGameLevelNotUnlock = 10022, + RetMusicGameLevelNotStarted = 10023, + RetMusicGameLevelConfigNotFound = 10024, + RetMusicGameLevelIdNotMatch = 10025, + RetRoguelikeCoinANotEnough = 10031, + RetRoguelikeCoinBNotEnough = 10032, + RetRoguelikeCoinCNotEnough = 10033, + RetRoguelikeCoinAExceedLimit = 10034, + RetRoguelikeCoinBExceedLimit = 10035, + RetRoguelikeCoinCExceedLimit = 10036, + RetRoguelikeRuneCountNotEnough = 10037, + RetRoguelikeNotInRogueDungeon = 10038, + RetRoguelikeCellNotFound = 10039, + RetRoguelikeCellTypeIncorrect = 10040, + RetRoguelikeCellAlreadyFinished = 10041, + RetRoguelikeDungeonHaveUnfinishedProgress = 10042, + RetRoguelikeStageNotFinished = 10043, + RetRoguelikeStageFirstPassRewardHasTaken = 10045, + RetRoguelikeActivityContentClosed = 10046, + RetRoguelikeDungeonPreQuestNotFinished = 10047, + RetRoguelikeDungeonNotOpen = 10048, + RetRoguelikeSprintIsBanned = 10049, + RetRoguelikeDungeonPreStageNotFinished = 10050, + RetRoguelikeAllAvatarDieCannotResume = 10051, + RetPlantFlowerAlreadyTakeSeed = 10056, + RetPlantFlowerFriendHaveFlowerLimit = 10057, + RetPlantFlowerCanGiveFlowerNotEnough = 10058, + RetPlantFlowerWishFlowerKindsLimit = 10059, + RetPlantFlowerHaveFlowerNotEnough = 10060, + RetPlantFlowerFlowerCombinationInvalid = 10061, + RetHachiDungeonNotValid = 10052, + RetHachiDungeonStageNotOpen = 10053, + RetHachiDungeonTeammateNotPass = 10054, + RetWinterCampCoinANotEnough = 10071, + RetWinterCampCoinBNotEnough = 10072, + RetWinterCampCoinAExceedLimit = 10073, + RetWinterCampCoinBExceedLimit = 10074, + RetWinterCampWishIdInvalid = 10075, + RetWinterCampNotFoundRecvItemData = 10076, + RetWinterCampFriendItemCountOverflow = 10077, + RetWinterCampSelectItemDataInvalid = 10078, + RetWinterCampItemListEmpty = 10079, + RetWinterCampRewardAlreadyTaken = 10080, + RetWinterCampStageNotFinish = 10081, + RetWinterCampGadgetInvalid = 10082, + RetLanternRiteCoinANotEnough = 10090, + RetLanternRiteCoinBNotEnough = 10091, + RetLanternRiteCoinCNotEnough = 10092, + RetLanternRiteCoinAExceedLimit = 10093, + RetLanternRiteCoinBExceedLimit = 10094, + RetLanternRiteCoinCExceedLimit = 10095, + RetLanternRiteProjectionContentClosed = 10096, + RetLanternRiteProjectionCanNotStart = 10097, + RetLanternRiteDungeonNotOpen = 10098, + RetLanternRiteHasTakenSkinReward = 10099, + RetLanternRiteNotFinishedSkinWatchers = 10100, + RetLanternRiteFireworksContentClosed = 10101, + RetLanternRiteFireworksChallengeNotStart = 10102, + RetLanternRiteFireworksReformParamError = 10103, + RetLanternRiteFireworksReformSkillLock = 10104, + RetLanternRiteFireworksReformStaminaNotEnough = 10105, + RetPotionActivityStageNotOpen = 10110, + RetPotionActivityLevelHavePass = 10111, + RetPotionActivityTeamNumIncorrect = 10112, + RetPotionActivityAvatarInCd = 10113, + RetPotionActivityBuffInCd = 10114, + RetIrodoriPoetryInvalidLineId = 10120, + RetIrodoriPoetryInvalidThemeId = 10121, + RetIrodoriPoetryNotGetAllInspiration = 10122, + RetIrodoriPoetryInspirationReachLimie = 10123, + RetIrodoriPoetryEntityAlreadyScanned = 10124, + RetActivityBannerAlreadyCleared = 10300, + RetIrodoriChessNotOpen = 10301, + RetIrodoriChessLevelNotOpen = 10302, + RetIrodoriChessMapNotOpen = 10303, + RetIrodoriChessMapCardAlreadyEquiped = 10304, + RetIrodoriChessEquipCardExceedLimit = 10305, + RetIrodoriChessMapCardNotEquiped = 10306, + RetIrodoriChessEnterFailCardExceedLimit = 10307, + RetActivityFriendHaveGiftLimit = 10310, + RetGachaActivityHaveRewardLimit = 10315, + RetGachaActivityHaveRobotLimit = 10316, + RetSummerTimeV2CoinExceedLimit = 10317, + RetSummerTimeV2CoinNotEnough = 10318, + RetSummerTimeV2DungeonStageNotOpen = 10319, + RetSummerTimeV2PrevDungeonNotComplete = 10320, + RetRogueDiaryAvatarDeath = 10350, + RetRogueDiaryAvatarTired = 10351, + RetRogueDiaryAvatarDuplicated = 10352, + RetRogueDiaryCoinNotEnough = 10353, + RetRogueDiaryVirtualCoinExceedLimit = 10354, + RetRogueDiaryVirtualCoinNotEnough = 10355, + RetRogueDiaryContentClosed = 10366, + RetGravenInnocenceCoinANotEnough = 10380, + RetGravenInnocenceCoinBNotEnough = 10381, + RetGravenInnocenceCoinAExceedLimit = 10382, + RetGravenInnocenceCoinBExceedLimit = 10383, + RetIslandPartyStageNotOpen = 10371, + RetWindFieldStageNotOpen = 10390, + RetVintageContentClosed = 10396, + RetVintageStoreContentFinished = 10397, + RetVintageStoreAttrTooSmall = 10398, + RetVintageStoreAttrTooLarge = 10399, + RetVintageStoreContentInterrupt = 10400, + RetVintageVirtualCoinNotEnough = 10401, + RetVintageStoreAttrLessThanZero = 10402, + RetFungusFighterCaptureCoinNotEnough = 10406, + RetFungusFighterTrainingCoinNotEnough = 10407, + RetFungusFighterCaptureCoinExceedLimit = 10408, + RetFungusFighterTrainingCoinExceedLimit = 10409, + RetFungusFighterContentClosed = 10410, + RetFungusFighterPlotStageNotOpen = 10411, + RetFungusFighterFungusIdConfigNotValid = 10412, + RetFungusFighterFungusNotCultivated = 10413, + RetFungusFighterTrainingDungeonNotOpen = 10414, + RetEffigyChallengeV2CoinNotEnough = 10427, + RetEffigyChallengeV2CoinExceedLimit = 10428, + RetCharAmusementStageNotOpen = 10436, + RetCoinCollectLevelNotOpen = 10446, + RetCoinCollectNotEquipWidget = 10447, + RetCoinCollectSceneNotMatch = 10448, + RetCoinCollectCantEnterMpMode = 10449, + RetCoinCollectPlayerNumFail = 10450, + RetBrickBreakerPlayerNumFail = 10456, + RetBrickBreakerStageNotUnlock = 10457, + RetBrickBreakerNormalLevelNotFinish = 10458, + RetBrickBreakerPreLevelNotFinish = 10459, + RetBrickBreakerPreStageNotFinish = 10460, + RetBrickBreakerWorldLevelNotUnlock = 10461, + RetBrickBreakerDungeonLevelNotUnlock = 10462, + RetBrickBreakerCoinNotEnough = 10463, + RetBrickBreakerCoinExceedLimit = 10464, + RetTeamchainWorldInMpMode = 10466, + RetLanV3BoatPlayerNumNotValid = 10481, + RetLanV3BoatPlayNotOpen = 10482, + RetLanV3BoatNotInWorldScene = 10483, + RetFleurFairV2PacmanPlayNotOpen = 10500, + RetFleurFairV2PacmanPlayerNumIncorrect = 10501, + RetFleurFairV2CoinNotEnough = 10502, + RetFleurFairV2CoinExceedLimit = 10503, + RetAkaFesRhythmLevelNotOpen = 10521, + RetAkaFesRhythmGalleryInitFail = 10522, + RetAkaFesRhythmNotInExpectedDungeon = 10533, + RetAkaFesReasoningLevelNotOpen = 10531, + RetAkaFesAstrolabeLevelNotOpen = 10541, + RetAkaFesAstrolabePreLevelNotFinish = 10542, + RetEffigyChallengeV4LevelNotOpen = 10551, + RetEffigyChallengeV4GuestNotReady = 10552, + RetEffigyChallengeV4DuplicateAvatar = 10553, + RetJourneyActivityPickParamError = 10561, + RetJourneyActivityPickCondNotMeet = 10562, + RetJourneyActivityCoinNotEnough = 10563, + RetJourneyActivityCoinExceedLimit = 10564, + RetPoetryFesPitchPotStageNotOpen = 10571, + RetFilmfesBallGamePlayerCountNotEnough = 10591, + RetMpFilmfestShootingOngoing = 10592, + RetFilmfesBallGameIsLocked = 10593, + RetTreasureHuntV4CoinNotEnough = 10611, + RetTreasureHuntV4CoinExceedLimit = 10612, + RetLostSamachurlSneakLevelNotOpen = 10631, + RetLostSamachurlBossLevelNotOpen = 10632, + RetLanV4PartyLionPlayerCountNotEnough = 10641, + RetLanV4PartyLionLevelNotOpen = 10642, + RetActivityContentClosed = 10901, + RetActivityClientPlayBanMp = 10902, + RetActivityClientPlayFrequencyError = 10903, + RetActivityClientPlayOtherPlayIsRunning = 10904, + RetActivityClientPlayDuplicateStart = 10905, + RetNotInFishing = 11001, + RetFishStateError = 11002, + RetFishBaitLimit = 11003, + RetFishingMaxDistance = 11004, + RetFishingInCombat = 11005, + RetFishingBattleTooShort = 11006, + RetFishGoneAway = 11007, + RetCanNotEditOtherDungeon = 11051, + RetCustomDungeonDismatch = 11052, + RetNoCustomDungeonData = 11053, + RetBuildCustomDungeonFail = 11054, + RetCustomDungeonRoomCheckFail = 11055, + RetCustomDungeonSaveMayFail = 11056, + RetNotInCustomDungeon = 11057, + RetCustomDungeonInternalFail = 11058, + RetCustomDungeonCanNotTry = 11059, + RetCustomDungeonNoStartRoom = 11060, + RetCustomDungeonNoRoomData = 11061, + RetCustomDungeonSaveTooFrequent = 11062, + RetCustomDungeonNotSelfPass = 11063, + RetCustomDungeonLackCoin = 11064, + RetCustomDungeonNoFinishBrick = 11065, + RetCustomDungeonMultiFinish = 11066, + RetCustomDungeonNotPublished = 11067, + RetCustomDungeonFullStore = 11068, + RetCustomDungeonStoreRepeat = 11069, + RetCustomDungeonCanNotStoreSelf = 11070, + RetCustomDungeonNotSaveSucc = 11071, + RetCustomDungeonCanNotLikeSelf = 11072, + RetCustomDungeonNotFound = 11073, + RetCustomDungeonInvalidSetting = 11074, + RetCustomDungeonNoFinishSetting = 11075, + RetCustomDungeonSaveNothing = 11076, + RetCustomDungeonNotInGroup = 11077, + RetCustomDungeonNotOfficial = 11078, + RetCustomDungeonLifeNumError = 11079, + RetCustomDungeonNoOpenRoom = 11080, + RetCustomDungeonBrickExceedLimit = 11081, + RetCustomDungeonOfficialNotUnlock = 11082, + RetCanNotEditOfficialSetting = 11083, + RetCustomDungeonBanPublish = 11084, + RetCustomDungeonCanNotReplay = 11085, + RetCustomDungeonNotOpenGroup = 11086, + RetCustomDungeonMaxEditNum = 11087, + RetCustomDungeonCanNotOutStuck = 11088, + RetCustomDungeonMaxTag = 11089, + RetCustomDungeonInvalidTag = 11090, + RetCustomDungeonMaxCost = 11091, + RetCustomDungeonRequestTooFrequent = 11092, + RetCustomDungeonNotOpen = 11093, + RetShareCdIdError = 11101, + RetShareCdIndexError = 11102, + RetShareCdInCd = 11103, + RetShareCdTokenNotEnough = 11104, + RetUgcDismatch = 11151, + RetUgcDataNotFound = 11152, + RetUgcBriefNotFound = 11153, + RetUgcDisabled = 11154, + RetUgcLimited = 11155, + RetUgcLocked = 11156, + RetUgcNotAuth = 11157, + RetUgcNotOpen = 11158, + RetUgcBanPublish = 11159, + RetUgcMusicExceedLimit = 11160, + RetUgcMusicSaveTooFrequent = 11161, + RetUgcMusicStoreFull = 11162, + RetUgcMusicStoreRepeat = 11163, + RetUgcMusicStoreTooFrequent = 11164, + RetUgcMusicSearchNotFound = 11165, + RetUgcMusicLikeTooFrequent = 11166, + RetUgcMusicRecommendTooFrequent = 11167, + RetUgcMusicImportNotAllow = 11168, + RetUgcMusicImportNotFound = 11169, + RetUgcMusicSetOptionTooFrequent = 11170, + RetUgcMusicImportTooFrequent = 11171, + RetUgcMusicGenShareCodeFail = 11172, + RetUgcMusicCancelStoreRepeat = 11173, + RetCompoundBoostItemNotExist = 11201, + RetCompoundBoostTargetNotExist = 11202, + RetQuickHitTreeEmptyTrees = 11211, + RetCompoundNoFinishCanTake = 11221, + RetForgeNoFinishCanTake = 11226, + RetGcgFindGameModeFail = 12000, + RetGcgOperationParamError = 12001, + RetGcgGameNotRunning = 12002, + RetGcgOpNotAllow = 12003, + RetGcgOpNotMatchPhase = 12004, + RetGcgSelectHandCardGuidError = 12005, + RetGcgDiceIndexInvalid = 12006, + RetGcgCharacterGuidInvalid = 12007, + RetGcgCharacterAlreadyDie = 12008, + RetGcgCharacterAlreadyOnStage = 12009, + RetGcgCharacterForbiddenAttack = 12010, + RetGcgSelectDiceNotMatch = 12011, + RetGcgFindSkillFail = 12012, + RetGcgSkillCanNotActiveUse = 12013, + RetGcgEnergyNotEnough = 12014, + RetGcgPlayCardTargetNotMatch = 12015, + RetGcgPlayCardZoneCannotAdd = 12016, + RetGcgRebootSelectDiceInvalid = 12017, + RetGcgRebootSelectCardInvalid = 12018, + RetGcgPlayCardConditionCheckFail = 12019, + RetGcgPlayCardParamInvalid = 12020, + RetGcgMaxGame = 12021, + RetGcgSendPacketFail = 12022, + RetGcgAlreadySettle = 12023, + RetGcgPlayCardLegendAlreadyUsed = 12024, + RetGcgCostLegendNotEnough = 12025, + RetGcgWatchInBlackList = 12026, + RetGcgWatchForbidSwitch = 12027, + RetGcgWatchAlreadyJoined = 12028, + RetGcgWatchKickNoSpectator = 12029, + RetGcgWatchTargetNotInDuel = 12030, + RetGcgWatchTargetNotFriend = 12031, + RetGcgWatchTargetPsnOnly = 12032, + RetGcgWatchForbidBusinessType = 12033, + RetGcgWatchOptionRefuse = 12034, + RetGcgWatchNoPlayer = 12035, + RetGcgWatchTargetStateNotOpen = 12036, + RetGcgWatchSpectatorLimit = 12037, + RetGcgWatchForbiddenWatchGame = 12038, + RetGcgWatchNotSpectator = 12039, + RetGcgWatchAlreadyInDuel = 12040, + RetGcgWatchClientDataVersoinForbid = 12041, + RetGcgSkillNotVehicleSkill = 12042, + RetGcgSkillCheckConditionFail = 12043, + RetGcgVehicleSkillCheckConditionFail = 12044, + RetGcgCoinExceedLimit = 12101, + RetGcgCoinNotEnough = 12102, + RetGcgNotInSelfWorld = 12103, + RetGcgAlreadyInDuel = 12104, + RetGcgNotInPlayerWorld = 12105, + RetGcgGalleryStarted = 12106, + RetGcgInviteTargetIsSelf = 12107, + RetGcgInviteTargetNotInWorld = 12108, + RetGcgApplyInviteNotAllow = 12109, + RetGcgApplyInviteTimeout = 12110, + RetGcgCurDeckInvalid = 12111, + RetGcgNeedResourceComplete = 12112, + RetGcgOpponentPlayerIsSelf = 12113, + RetGcgGameIdInvalid = 12114, + RetGcgMatchInPunish = 12115, + RetGcgSettleStillInDuel = 12116, + RetGcgSettleNotInDungeon = 12117, + RetGcgUnsupportSettleOption = 12118, + RetGcgNotInGcgDungeon = 12119, + RetGcgWorldLevelLocked = 12120, + RetGcgBossLevelLocked = 12121, + RetGcgNotInTavern = 12122, + RetGcgWeekNpcNotExist = 12123, + RetGcgEnterGameFrequent = 12124, + RetGcgBreakLevelQuestNotUnfinished = 12125, + RetGcgGuideLevelAlreadyFinished = 12126, + RetGcgLevelCannotRestart = 12127, + RetGcgTargetCheckEnterFail = 12128, + RetGcgAlreadyInDungeon = 12129, + RetGcgBackDuelNoGame = 12130, + RetGcgConstLevelLocked = 12131, + RetGcgQuestIdError = 12132, + RetGcgQuestNeedUnfinished = 12133, + RetGcgInMatch = 12134, + RetGcgDataVersionNotLatest = 12135, + RetGcgInviteTargetEnterGameFrequent = 12136, + RetGcgInviteTargetNeedResourceComplete = 12137, + RetGcgInviteTargetSceneIsNull = 12138, + RetGcgInviteTargetInTransfer = 12139, + RetGcgInviteTargetDataVersionNotLatest = 12140, + RetGcgInviteTargetCurDeckInvalid = 12141, + RetGcgClientDataVersionNotMatch = 12142, + RetGcgClientDataVersoinForbid = 12143, + RetGcgMpCantMatch = 12144, + RetGcgInviteTargetStateNotOpen = 12145, + RetGcgCreateTimeOut = 12146, + RetGcgBanMatch = 12147, + RetGcgBanInvite = 12148, + RetGcgTargetBanInvite = 12149, + RetGcgInviteAlreadyInvite = 12150, + RetGcgFestivalModeNotOpen = 12151, + RetGcgTargetFestivalModeNotOpen = 12152, + RetGcgBackDuelPsToOther = 12153, + RetGcgBackDuelOtherToPs = 12154, + RetGcgWeekRewardLimit = 12155, + RetGcgFestivalModeInPick = 12156, + RetGcgDsDeckLocked = 12201, + RetGcgDsDeckNameInvalid = 12202, + RetGcgDsDeckCharCardNumInvalid = 12204, + RetGcgDsDeckCardNumInvalid = 12205, + RetGcgDsCardNumExceedLimit = 12206, + RetGcgDsDeckInvalid = 12207, + RetGcgDsCardIdInvalid = 12208, + RetGcgDsCardFaceAlreadyUnlock = 12209, + RetGcgDsCardFaceIsLock = 12210, + RetGcgDsFieldLock = 12211, + RetGcgDsFieldAlreadyUnlock = 12212, + RetGcgDsFieldIdInvalid = 12213, + RetGcgDsCardBackLocked = 12214, + RetGcgDsCardBackAlreadyUnlock = 12215, + RetGcgDsCardBackIdInvalid = 12216, + RetGcgDsCardFaceIdInvalid = 12217, + RetGcgDsDeckNameIllegal = 12218, + RetGcgDsDeckSaveCd = 12219, + RetGcgDsDeckChangeNameCd = 12220, + RetGcgMatchDeckInvalid = 12221, + RetGcgDsDeckAlreadyUnlocked = 12222, + RetGcgDsAtLeastOneDeck = 12223, + RetGcgDsDeckCodeIllegal = 12224, + RetGcgDsDeckCodeCd = 12225, + RetGcgTcCharacternotMatchLevel = 12251, + RetGcgTcMustInSelfWorld = 12252, + RetGcgTcMustInTavern = 12253, + RetGcgTcAlreadyInGame = 12254, + RetGcgTcAlreadyInMatch = 12255, + RetGcgTcUnlockCharacterQuestNotFinish = 12256, + RetGcgTcLevelLocked = 12257, + RetGcgTcNoInviteData = 12258, + RetGcgTcCurDeckInvalid = 12259, + RetGcgTcCondQuest = 12260, + RetGcgLevelRewardLevelError = 12301, + RetGcgLevelRewardAlreadyTaken = 12302, + RetGcgLevelRewardNoReward = 12303, + RetGcgNotInReplayDungeon = 12311, + RetGcgInvalidReplay = 12312, + RetGcgSetFavoriteLimitNum = 12313, + RetGcgReplayExpire = 12314, + RetGcgReplayDungeonSettled = 12315, + RetGcgPickCurUidNotMatch = 12331, + RetGcgPickSelectParamError = 12332, + RetGcgPickConfirmError = 12333, + RetGcgPickBackNoGame = 12334, + RetGcgArenaScheduleInactive = 12341, + RetGcgArenaScheduleNotMatch = 12342, + RetGcgArenaDeckNotSet = 12343, + RetGcgArenaDeckInvalid = 12344, + RetGcgArenaInChallengeCannotSetDeck = 12345, + RetGcgArenaStartChallengeInMpMode = 12346, + RetGcgArenaStartMatchInMpMode = 12347, + RetUgcDungeonInDungeon = 13001, + RetUgcDungeonRoomNumLimit = 13002, + RetUgcDungeonNotInEditState = 13003, + RetUgcDungeonNotInEditDungeon = 13004, + RetUgcDungeonNotExist = 13005, + RetUgcDungeonNotSave = 13006, + RetUgcDungeonScoreCondtionButNoMonster = 13007, + RetUgcDungeonScoreCondtionButNoCoin = 13008, + RetUgcDungeonScoreCondtionButNoChest = 13009, + RetUgcDungeonScoreCondtionButNoRoomSettle = 13010, + RetUgcDungeonTargetScoreExceedLimit = 13011, + RetUgcDungeonTimeSettleTargetScoreNotZero = 13012, + RetUgcDungeonAllowAvatarNotEnough = 13013, + RetUgcDungeonHeartBloodWhileMonsterDeploy = 13014, + RetUgcDungeonRoomNoExitGadget = 13015, + RetUgcDungeonRoomHostEnterGadgetNum = 13016, + RetUgcDungeonRoomGuestEnterGadgetNotEnough = 13017, + RetUgcDungeonRoomSettingCoinNumTooLarge = 13018, + RetUgcDungeonRoomSettingMonsterNumTooLarge = 13019, + RetUgcDungeonRoomSettingNoSettleConfig = 13020, + RetUgcDungeonRoomSwitchInviteInProcess = 13021, + RetUgcDungeonRoomDeploymentCostLimit = 13022, + RetUgcDungeonRoomTriggerDuplicateGuid = 13023, + RetUgcDungeonRoomTriggerParamError = 13024, + RetUgcDungeonScoreSettleTargetScoreZero = 13025, + RetUgcDungeonStateCanNotAudit = 13026, + RetUgcDungeonAuditVersionNotMatch = 13027, + RetUgcDungeonInAudit = 13028, + RetUgcDungeonStateCanNotPublish = 13029, + RetUgcDungeonRequestTooFrequent = 13030, + RetUgcDungeonCanNotPublishNoEdit = 13031, + RetUgcDungeonNotAllowImport = 13032, + RetUgcDungeonImportRoomHasMonster = 13033, + RetUgcDungeonSearchNotExist = 13034, + RetUgcDungeonRoomSwitchLastRoom = 13035, + RetUgcDungeonRoomGadgetNumLimit = 13036, + RetUgcDungeonRoomMonsterNumLimit = 13037, + RetUgcDungeonNoTrialSuccRecord = 13038, + RetUgcDungeonNumLimit = 13039, + RetUgcDungeonInEditDungeon = 13040, + RetUgcDungeonNotInDungeon = 13041, + RetUgcDungeonChangeSettingTooFrequent = 13042, + RetUgcDungeonNotOwner = 13043, + RetUgcDungeonNotPublished = 13044, + RetUgcDungeonShareCodeGenFail = 13045, + RetUgcDungeonRoomLimit = 13046, + RetUgcDungeonShareCodeInvalid = 13047, + RetUgcDungeonRoomSuiteNumLimit = 13048, + RetUgcDungeonTowerHasBeenPurchased = 13101, + RetUgcDungeonPlayerAddItemOverStack = 13102, + RetUgcDungeonPlayerTowerLevelUpLimited = 13103, + RetUgcDungeonPlayerConsumeItemNotEnough = 13104, + RetUgcDungeonPlayerTowerAlreadyLevelUp = 13105, + RetUgcDungeonPlayerUgcTargetIsNotExist = 13106, + RetUgcDungeonPlayerUgcTargetIsNotActive = 13107, + RetUgcDungeonCheckLayoutFailed = 13108, + RetUgcDungeonPlayerTowerAlreadyRemoved = 13109, + RetUgcDungeonPlayerAddItemOverLimit = 13110, + RetUgcDungeonPlayerGrantAvatarOverLimit = 13111, + RetUgcDungeonDuplicateStar = 13131, + RetUgcDungeonCancelStarNotExist = 13132, + RetUgcDungeonStarReachLimit = 13133, + RetUgcDungeonInternalFail = 13134, + RetUgcDungeonPlayerPublishBanned = 13135, + RetUgcDungeonCustomEditIsNotOpen = 13151, + RetUgcDungeonOfficialLevelIsNotOpen = 13152, + RetUgcDungeonTemplateImportIsNotOpen = 13153, + RetTargetShootingLevelNotOpen = 13161, + RetTargetShootingPlayerNumNotValid = 13162, + RetTargetShootingPlayNotOpen = 13163, + RetTargetShootingConfigNotFound = 13164, + RetShuffleBoardLevelNotOpen = 13172, + RetShuffleBoardNotInPenumbraScene = 13173, + RetShuffleBoardLevelMismatch = 13174, + RetShuffleBoardAlreadyPlaying = 13175, + RetRaffleTicketInvalidBonusId = 13176, + RetRaffleTicketPrerequisiteNotMet = 13177, + RetRaffleTicketNotEnough = 13178, + RetFlightGearLevelNotOpen = 13191, + RetFlightGearInMpMode = 13192, + RetAnimalViewAvatarIsClosingToAnimal = 13212, + RetAnimalViewNotEquipWidget = 13213, + RetCombinePointNotEnough = 13221, + RetToyBattleCurrentLevelNotOpen = 13251, + RetToyBattleCurrentNotPlaying = 13252, + RetFontaineGatherInvalidGatherTracking = 13261, + RetFontaineGatherInvalidMonsterTracking = 13262, + RetFishblasterLevelNotOpen = 13271, + RetFishblasterNotInRightScene = 13272, + RetFishblasterLevelMismatch = 13273, + RetFishblasterAlreadyPlaying = 13274, + RetGoalChallengeStageNotOpen = 13281, + RetGoalChallengeInvalidTeam = 13282, + RetAlchemySimCoinNotEnough = 13291, + RetAlchemySimCropExceedLimit = 13292, + RetAlchemySimFarmlandSameCrop = 13293, + RetAlchemySimCropNoHarvestableLand = 13294, + RetAlchemySimCropNotEnough = 13295, + RetAlchemySimCropNotUnlocked = 13296, + RetAlchemySimFarmlandNotReady = 13297, + RetAlchemySimCropRankMax = 13298, + RetAlchemySimFarmlandIsNotHarvested = 13299, + RetAlchemySimTechTreeAlreadyUnlocked = 13300, + RetAlchemySimPotionNotExist = 13301, + RetAlchemySimNotInTargetExam = 13302, + RetAlchemySimRoundAlchemyCountOver = 13303, + RetAlchemySimInternalLogicError = 13304, + RetAlchemySimCropOnForbiddenPos = 13305, + RetAlchemySimCropOverlapOverLimit = 13306, + RetAlchemySimPuzzleRateNotEnough = 13307, + RetAlchemySimPotionCantUpgrade = 13308, + RetAlchemySimExamCountNotEnough = 13309, + RetAlchemySimTechTreeNotAllowed = 13310, + RetAlchemySimCropNoRipenLand = 13311, + RetAlchemySimUnfinishQuest = 13312, + RetAlchemySimInvalidRoundState = 13313, + RetAlchemySimCropUpgradeExpOverflow = 13314, + RetAlchemySimCropUpgradeNotUnlocked = 13315, + RetAlchemySimFinishRoundFrequency = 13316, + RetAlchemySimTemplateAlchemyNotUnlocked = 13317, + RetCatcafeLayoutStageNotRight = 13351, + RetCatcafeLayoutNotRight = 13352, + RetStaminaFightIsInOtherDungeon = 13371, + RetEffigyChallengeV5LevelNotOpen = 13381, + RetEffigyChallengeV5InvalidSupport = 13382, + RetEffigyChallengeV5InvalidPlayerNum = 13383, + RetEffigyChallengeV5InCombat = 13384, + RetEffigyChallengeV5InvalidScene = 13385, + RetBlueprintSlotNotFound = 13401, + RetFurnitureSuiteIdInvalid = 13402, + RetWishlistBatchOperateOutOfLimit = 13403, + RetHideAndSeekV4GameNotOpen = 13411, + RetHideAndSeekV4PlayMapNotChosen = 13412, + RetHideAndSeekV4PlayerCountNotEnough = 13413, + RetHideAndSeekV4PlayMapNotOpen = 13414, + RetWatergunLevelNotOpen = 13431, + RetAcrobaticsBattleStageNotOpen = 13441, + RetAcrobaticsBattleInvalidTeam = 13442, + RetMonsterVsMonsterLevelNotOpen = 13451, + RetRechargeDiskLevelNotOpen = 13471, + RetRechargeDiskInvalidLevelBuild = 13472, + RetRechargeDiskCurSceneInvalid = 13473, + RetActivityPreviewTrialInCd = 13478, + RetBirdBallMpLevelNotOpen = 13481, + RetBirdBallDraftPlayerNumInvalid = 13482, + RetFairyTalesLotterAreaIsNotOpen = 13491, + RetFairyTalesLotterLeftCntNotEnough = 13492, + RetFairyTalesToyTotalLeftCntNotEnough = 13493, + RetFairyTalesWishToyTypeOverLimit = 13494, + RetFairyTalesToyCustomGadgetContentInvalid = 13495, + RetFairyTalesCombatLevelNotOpen = 13496, + RetFairyTalesTicketPrerequisiteNotMet = 13497, + RetFairyTalesTicketNotEnough = 13498, + RetActivityTeamInvalidSize = 13551, + RetActivityInvalidTrialAvatar = 13552, + RetActivityForbiddenTrialAvatar = 13553, + RetRenameInvalidQuestState = 13571, + RetRenameConflicted = 13572, + RetReliquaryOfferPurchaseVersionIdxError = 13591, + RetReliquaryOfferVersionTimesLimit = 13592, + RetReliquaryOfferProgressNotEnough = 13593, + RetReliquaryOfferProgressOverLimit = 13594, + RetReliquaryPurchaseSuiteTimesOverLimit = 13595, +} +impl Retcode { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Retcode::RetSucc => "RetSucc", + Retcode::RetFail => "RetFail", + Retcode::RetSvrError => "RetSvrError", + Retcode::RetUnknownError => "RetUnknownError", + Retcode::RetFrequent => "RetFrequent", + Retcode::RetNodeForwardError => "RetNodeForwardError", + Retcode::RetNotFoundConfig => "RetNotFoundConfig", + Retcode::RetSystemBusy => "RetSystemBusy", + Retcode::RetGmUidBind => "RetGmUidBind", + Retcode::RetForbidden => "RetForbidden", + Retcode::RetStopRegister => "RetStopRegister", + Retcode::RetStopServer => "RetStopServer", + Retcode::RetAccountVeirfyError => "RetAccountVeirfyError", + Retcode::RetAccountFreeze => "RetAccountFreeze", + Retcode::RetRepeatLogin => "RetRepeatLogin", + Retcode::RetClientVersionError => "RetClientVersionError", + Retcode::RetTokenError => "RetTokenError", + Retcode::RetAccountNotExist => "RetAccountNotExist", + Retcode::RetWaitOtherLogin => "RetWaitOtherLogin", + Retcode::RetAnotherLogin => "RetAnotherLogin", + Retcode::RetClientForceUpdate => "RetClientForceUpdate", + Retcode::RetBlackUid => "RetBlackUid", + Retcode::RetLoginDbFail => "RetLoginDbFail", + Retcode::RetLoginInitFail => "RetLoginInitFail", + Retcode::RetMysqlDuplicate => "RetMysqlDuplicate", + Retcode::RetMaxPlayer => "RetMaxPlayer", + Retcode::RetAntiAddict => "RetAntiAddict", + Retcode::RetPsPlayerWithoutOnlineId => "RetPsPlayerWithoutOnlineId", + Retcode::RetOnlineIdNotFound => "RetOnlineIdNotFound", + Retcode::RetOnlneIdNotMatch => "RetOnlneIdNotMatch", + Retcode::RetRegisterIsFull => "RetRegisterIsFull", + Retcode::RetChecksumInvalid => "RetChecksumInvalid", + Retcode::RetBlackRegisterIp => "RetBlackRegisterIp", + Retcode::RetExceedRegisterRate => "RetExceedRegisterRate", + Retcode::RetUnknownPlatform => "RetUnknownPlatform", + Retcode::RetTokenParamError => "RetTokenParamError", + Retcode::RetAntiOfflineError => "RetAntiOfflineError", + Retcode::RetBlackLoginIp => "RetBlackLoginIp", + Retcode::RetGetTokenSessionHasUid => "RetGetTokenSessionHasUid", + Retcode::RetEnvironmentError => "RetEnvironmentError", + Retcode::RetCheckClientVersionHashFail => "RetCheckClientVersionHashFail", + Retcode::RetMinorRegisterFobidden => "RetMinorRegisterFobidden", + Retcode::RetSecurityLibraryError => "RetSecurityLibraryError", + Retcode::RetGateTicketCheckError => "RetGateTicketCheckError", + Retcode::RetProtoMixVersionNotMatch => "RetProtoMixVersionNotMatch", + Retcode::RetAccountTypeStopRegister => "RetAccountTypeStopRegister", + Retcode::RetAvatarInCd => "RetAvatarInCd", + Retcode::RetAvatarNotAlive => "RetAvatarNotAlive", + Retcode::RetAvatarNotOnScene => "RetAvatarNotOnScene", + Retcode::RetCanNotFindAvatar => "RetCanNotFindAvatar", + Retcode::RetCanNotDelCurAvatar => "RetCanNotDelCurAvatar", + Retcode::RetDuplicateAvatar => "RetDuplicateAvatar", + Retcode::RetAvatarIsSameOne => "RetAvatarIsSameOne", + Retcode::RetAvatarLevelLessThan => "RetAvatarLevelLessThan", + Retcode::RetAvatarCanNotChangeElement => "RetAvatarCanNotChangeElement", + Retcode::RetAvatarBreakLevelLessThan => "RetAvatarBreakLevelLessThan", + Retcode::RetAvatarOnMaxBreakLevel => "RetAvatarOnMaxBreakLevel", + Retcode::RetAvatarIdAlreadyExist => "RetAvatarIdAlreadyExist", + Retcode::RetAvatarNotDead => "RetAvatarNotDead", + Retcode::RetAvatarIsReviving => "RetAvatarIsReviving", + Retcode::RetAvatarIdError => "RetAvatarIdError", + Retcode::RetRepeatSetPlayerBornData => "RetRepeatSetPlayerBornData", + Retcode::RetPlayerLevelLessThan => "RetPlayerLevelLessThan", + Retcode::RetAvatarLimitLevelError => "RetAvatarLimitLevelError", + Retcode::RetCurAvatarNotAlive => "RetCurAvatarNotAlive", + Retcode::RetCanNotFindTeam => "RetCanNotFindTeam", + Retcode::RetCanNotFindCurTeam => "RetCanNotFindCurTeam", + Retcode::RetAvatarNotExistInTeam => "RetAvatarNotExistInTeam", + Retcode::RetCanNotRemoveCurAvatarFromTeam => { + "RetCanNotRemoveCurAvatarFromTeam" + } + Retcode::RetCanNotUseReviveItemForCurAvatar => { + "RetCanNotUseReviveItemForCurAvatar" + } + Retcode::RetTeamCostExceedLimit => "RetTeamCostExceedLimit", + Retcode::RetTeamAvatarInExpedition => "RetTeamAvatarInExpedition", + Retcode::RetTeamCanNotChoseReplaceUse => "RetTeamCanNotChoseReplaceUse", + Retcode::RetAvatarInCombat => "RetAvatarInCombat", + Retcode::RetPlayerTimeLocked => "RetPlayerTimeLocked", + Retcode::RetNicknameUtf8Error => "RetNicknameUtf8Error", + Retcode::RetNicknameTooLong => "RetNicknameTooLong", + Retcode::RetNicknameWordIllegal => "RetNicknameWordIllegal", + Retcode::RetNicknameTooManyDigits => "RetNicknameTooManyDigits", + Retcode::RetNicknameIsEmpty => "RetNicknameIsEmpty", + Retcode::RetNicknameMonthlyLimit => "RetNicknameMonthlyLimit", + Retcode::RetNicknameNotChanged => "RetNicknameNotChanged", + Retcode::RetPlayerNotOnline => "RetPlayerNotOnline", + Retcode::RetOpenStateNotOpen => "RetOpenStateNotOpen", + Retcode::RetFeatureClosed => "RetFeatureClosed", + Retcode::RetAvatarExpeditionAvatarDie => "RetAvatarExpeditionAvatarDie", + Retcode::RetAvatarExpeditionCountLimit => "RetAvatarExpeditionCountLimit", + Retcode::RetAvatarExpeditionMainForbid => "RetAvatarExpeditionMainForbid", + Retcode::RetAvatarExpeditionTrialForbid => "RetAvatarExpeditionTrialForbid", + Retcode::RetTeamNameIllegal => "RetTeamNameIllegal", + Retcode::RetIsNotInStandby => "RetIsNotInStandby", + Retcode::RetIsInDungeon => "RetIsInDungeon", + Retcode::RetIsInLockAvatarQuest => "RetIsInLockAvatarQuest", + Retcode::RetIsUsingTrialAvatar => "RetIsUsingTrialAvatar", + Retcode::RetIsUsingTempAvatar => "RetIsUsingTempAvatar", + Retcode::RetNotHasFlycloak => "RetNotHasFlycloak", + Retcode::RetFetterRewardAlreadyGot => "RetFetterRewardAlreadyGot", + Retcode::RetFetterRewardLevelNotEnough => "RetFetterRewardLevelNotEnough", + Retcode::RetWorldLevelAdjustMinLevel => "RetWorldLevelAdjustMinLevel", + Retcode::RetWorldLevelAdjustCd => "RetWorldLevelAdjustCd", + Retcode::RetNotHasCostume => "RetNotHasCostume", + Retcode::RetCostumeAvatarError => "RetCostumeAvatarError", + Retcode::RetFlycloakPlatformTypeErr => "RetFlycloakPlatformTypeErr", + Retcode::RetInTransfer => "RetInTransfer", + Retcode::RetIsInLockAvatar => "RetIsInLockAvatar", + Retcode::RetFullBackupTeam => "RetFullBackupTeam", + Retcode::RetBackupTeamIdNotValid => "RetBackupTeamIdNotValid", + Retcode::RetBackupTeamIsCurTeam => "RetBackupTeamIsCurTeam", + Retcode::RetAvatarRenameInCd => "RetAvatarRenameInCd", + Retcode::RetAvatarRenameInAudit => "RetAvatarRenameInAudit", + Retcode::RetAvatarRenameInIpBlackList => "RetAvatarRenameInIpBlackList", + Retcode::RetTeamAvatarIsLocked => "RetTeamAvatarIsLocked", + Retcode::RetPlayerHasTrialAvatar => "RetPlayerHasTrialAvatar", + Retcode::RetAvatarExpeditionSlotNotEnough => { + "RetAvatarExpeditionSlotNotEnough" + } + Retcode::RetAvatarExpeditionNoAvatarCanTakeReward => { + "RetAvatarExpeditionNoAvatarCanTakeReward" + } + Retcode::RetAvatarUpgradeItemExpOverflow => "RetAvatarUpgradeItemExpOverflow", + Retcode::RetAsyncWordFilterInCd => "RetAsyncWordFilterInCd", + Retcode::RetNotHasTraceEffect => "RetNotHasTraceEffect", + Retcode::RetTraceEffectAvatarError => "RetTraceEffectAvatarError", + Retcode::RetPlayerTimeLockedByQuest => "RetPlayerTimeLockedByQuest", + Retcode::RetFloatError => "RetFloatError", + Retcode::RetNpcNotExist => "RetNpcNotExist", + Retcode::RetNpcTooFar => "RetNpcTooFar", + Retcode::RetNotCurrentTalk => "RetNotCurrentTalk", + Retcode::RetNpcCreateFail => "RetNpcCreateFail", + Retcode::RetNpcMoveFail => "RetNpcMoveFail", + Retcode::RetQuestNotExist => "RetQuestNotExist", + Retcode::RetQuestIsFail => "RetQuestIsFail", + Retcode::RetQuestContentError => "RetQuestContentError", + Retcode::RetBargainNotActivated => "RetBargainNotActivated", + Retcode::RetBargainFinished => "RetBargainFinished", + Retcode::RetInferenceAssociateWordError => "RetInferenceAssociateWordError", + Retcode::RetInferenceSubmitWordNoConclusion => { + "RetInferenceSubmitWordNoConclusion" + } + Retcode::RetSubmitQuestEventsNotRight => "RetSubmitQuestEventsNotRight", + Retcode::RetConfirmContinueMutualQuestCondFailed => { + "RetConfirmContinueMutualQuestCondFailed" + } + Retcode::RetConfirmContinueMutualOccupiedFailed => { + "RetConfirmContinueMutualOccupiedFailed" + } + Retcode::RetQuestFocusModeInCd => "RetQuestFocusModeInCd", + Retcode::RetQuestInFocusMode => "RetQuestInFocusMode", + Retcode::RetQuestNotInFocusMode => "RetQuestNotInFocusMode", + Retcode::RetParentQuestCannotStartFocus => "RetParentQuestCannotStartFocus", + Retcode::RetParentQuestNotExist => "RetParentQuestNotExist", + Retcode::RetBanOpearateFocus => "RetBanOpearateFocus", + Retcode::RetQuestFocusAnyGalleryStarted => "RetQuestFocusAnyGalleryStarted", + Retcode::RetQuestFocusUsingInformalAvatar => { + "RetQuestFocusUsingInformalAvatar" + } + Retcode::RetQuestFocusOpenstateOff => "RetQuestFocusOpenstateOff", + Retcode::RetPointNotUnlocked => "RetPointNotUnlocked", + Retcode::RetPointTooFar => "RetPointTooFar", + Retcode::RetPointAlreayUnlocked => "RetPointAlreayUnlocked", + Retcode::RetEntityNotExist => "RetEntityNotExist", + Retcode::RetEnterSceneFail => "RetEnterSceneFail", + Retcode::RetPlayerIsEnterScene => "RetPlayerIsEnterScene", + Retcode::RetCityMaxLevel => "RetCityMaxLevel", + Retcode::RetAreaLocked => "RetAreaLocked", + Retcode::RetJoinOtherWait => "RetJoinOtherWait", + Retcode::RetWeatherAreaNotFound => "RetWeatherAreaNotFound", + Retcode::RetWeatherIsLocked => "RetWeatherIsLocked", + Retcode::RetNotInSelfScene => "RetNotInSelfScene", + Retcode::RetGroupNotExist => "RetGroupNotExist", + Retcode::RetMarkNameIllegal => "RetMarkNameIllegal", + Retcode::RetMarkAlreadyExists => "RetMarkAlreadyExists", + Retcode::RetMarkOverflow => "RetMarkOverflow", + Retcode::RetMarkNotExists => "RetMarkNotExists", + Retcode::RetMarkUnknownType => "RetMarkUnknownType", + Retcode::RetMarkNameTooLong => "RetMarkNameTooLong", + Retcode::RetDistanceLong => "RetDistanceLong", + Retcode::RetEnterSceneTokenInvalid => "RetEnterSceneTokenInvalid", + Retcode::RetNotInWorldScene => "RetNotInWorldScene", + Retcode::RetAnyGalleryStarted => "RetAnyGalleryStarted", + Retcode::RetGalleryNotStart => "RetGalleryNotStart", + Retcode::RetGalleryInterruptOnlyOnSingleMode => { + "RetGalleryInterruptOnlyOnSingleMode" + } + Retcode::RetGalleryCannotInterrupt => "RetGalleryCannotInterrupt", + Retcode::RetGalleryWorldNotMeet => "RetGalleryWorldNotMeet", + Retcode::RetGallerySceneNotMeet => "RetGallerySceneNotMeet", + Retcode::RetCurPlayCannotTransfer => "RetCurPlayCannotTransfer", + Retcode::RetCantUseWidgetInHomeScene => "RetCantUseWidgetInHomeScene", + Retcode::RetSceneGroupNotMatch => "RetSceneGroupNotMatch", + Retcode::RetPosRotInvalid => "RetPosRotInvalid", + Retcode::RetMarkInvalidSceneId => "RetMarkInvalidSceneId", + Retcode::RetInvalidSceneToUseAnchorPoint => "RetInvalidSceneToUseAnchorPoint", + Retcode::RetEnterHomeSceneFail => "RetEnterHomeSceneFail", + Retcode::RetCurSceneIsNull => "RetCurSceneIsNull", + Retcode::RetGroupIdError => "RetGroupIdError", + Retcode::RetGalleryInterruptNotOwner => "RetGalleryInterruptNotOwner", + Retcode::RetNoSpringInArea => "RetNoSpringInArea", + Retcode::RetAreaNotInScene => "RetAreaNotInScene", + Retcode::RetInvalidCityId => "RetInvalidCityId", + Retcode::RetInvalidSceneId => "RetInvalidSceneId", + Retcode::RetDestSceneIsNotAllow => "RetDestSceneIsNotAllow", + Retcode::RetLevelTagSwitchInCd => "RetLevelTagSwitchInCd", + Retcode::RetLevelTagAlreadyExist => "RetLevelTagAlreadyExist", + Retcode::RetInvalidAreaId => "RetInvalidAreaId", + Retcode::RetGalleryOngoingForbid => "RetGalleryOngoingForbid", + Retcode::RetNotInPlayerWorld => "RetNotInPlayerWorld", + Retcode::RetMapLayerGroupAlreadyShown => "RetMapLayerGroupAlreadyShown", + Retcode::RetInvalidMapLayer => "RetInvalidMapLayer", + Retcode::RetGalleryRepeatStart => "RetGalleryRepeatStart", + Retcode::RetNotInPlayerScene => "RetNotInPlayerScene", + Retcode::RetEnterDungeonNotInValidDungeon => { + "RetEnterDungeonNotInValidDungeon" + } + Retcode::RetItemNotExist => "RetItemNotExist", + Retcode::RetPackExceedMaxWeight => "RetPackExceedMaxWeight", + Retcode::RetItemNotDropable => "RetItemNotDropable", + Retcode::RetItemNotUsable => "RetItemNotUsable", + Retcode::RetItemInvalidUseCount => "RetItemInvalidUseCount", + Retcode::RetItemInvalidDropCount => "RetItemInvalidDropCount", + Retcode::RetItemAlreadyExist => "RetItemAlreadyExist", + Retcode::RetItemInCooldown => "RetItemInCooldown", + Retcode::RetItemCountNotEnough => "RetItemCountNotEnough", + Retcode::RetItemInvalidTarget => "RetItemInvalidTarget", + Retcode::RetRecipeNotExist => "RetRecipeNotExist", + Retcode::RetRecipeLocked => "RetRecipeLocked", + Retcode::RetRecipeUnlocked => "RetRecipeUnlocked", + Retcode::RetCompoundQueueFull => "RetCompoundQueueFull", + Retcode::RetCompoundNotFinish => "RetCompoundNotFinish", + Retcode::RetMailItemNotGet => "RetMailItemNotGet", + Retcode::RetItemExceedLimit => "RetItemExceedLimit", + Retcode::RetAvatarCanNotUse => "RetAvatarCanNotUse", + Retcode::RetItemNeedPlayerLevel => "RetItemNeedPlayerLevel", + Retcode::RetRecipeNotAutoQte => "RetRecipeNotAutoQte", + Retcode::RetCompoundBusyQueue => "RetCompoundBusyQueue", + Retcode::RetNeedMoreScoin => "RetNeedMoreScoin", + Retcode::RetSkillDepotNotFound => "RetSkillDepotNotFound", + Retcode::RetHcoinNotEnough => "RetHcoinNotEnough", + Retcode::RetScoinNotEnough => "RetScoinNotEnough", + Retcode::RetHcoinExceedLimit => "RetHcoinExceedLimit", + Retcode::RetScoinExceedLimit => "RetScoinExceedLimit", + Retcode::RetMailExpired => "RetMailExpired", + Retcode::RetRewardHasTaken => "RetRewardHasTaken", + Retcode::RetCombineCountTooLarge => "RetCombineCountTooLarge", + Retcode::RetGivingItemWrong => "RetGivingItemWrong", + Retcode::RetGivingIsFinished => "RetGivingIsFinished", + Retcode::RetGivingNotActived => "RetGivingNotActived", + Retcode::RetForgeQueueFull => "RetForgeQueueFull", + Retcode::RetForgeQueueCapacity => "RetForgeQueueCapacity", + Retcode::RetForgeQueueNotFound => "RetForgeQueueNotFound", + Retcode::RetForgeQueueEmpty => "RetForgeQueueEmpty", + Retcode::RetNotSupportItem => "RetNotSupportItem", + Retcode::RetItemEmpty => "RetItemEmpty", + Retcode::RetVirtualExceedLimit => "RetVirtualExceedLimit", + Retcode::RetMaterialExceedLimit => "RetMaterialExceedLimit", + Retcode::RetEquipExceedLimit => "RetEquipExceedLimit", + Retcode::RetItemShouldHaveNoLevel => "RetItemShouldHaveNoLevel", + Retcode::RetWeaponPromoteLevelExceedLimit => { + "RetWeaponPromoteLevelExceedLimit" + } + Retcode::RetWeaponLevelInvalid => "RetWeaponLevelInvalid", + Retcode::RetUnknowItemType => "RetUnknowItemType", + Retcode::RetItemCountIsZero => "RetItemCountIsZero", + Retcode::RetItemIsExpired => "RetItemIsExpired", + Retcode::RetItemExceedOutputLimit => "RetItemExceedOutputLimit", + Retcode::RetEquipLevelHigher => "RetEquipLevelHigher", + Retcode::RetEquipCanNotWakeOffWeapon => "RetEquipCanNotWakeOffWeapon", + Retcode::RetEquipHasBeenWeared => "RetEquipHasBeenWeared", + Retcode::RetEquipWearedCannotDrop => "RetEquipWearedCannotDrop", + Retcode::RetAwakenLevelMax => "RetAwakenLevelMax", + Retcode::RetMcoinNotEnough => "RetMcoinNotEnough", + Retcode::RetMcoinExceedLimit => "RetMcoinExceedLimit", + Retcode::RetBatchSetEquipLockStateCd => "RetBatchSetEquipLockStateCd", + Retcode::RetResinNotEnough => "RetResinNotEnough", + Retcode::RetResinExceedLimit => "RetResinExceedLimit", + Retcode::RetResinOpenstateOff => "RetResinOpenstateOff", + Retcode::RetResinBoughtCountExceeded => "RetResinBoughtCountExceeded", + Retcode::RetResinCardDailyRewardHasTaken => "RetResinCardDailyRewardHasTaken", + Retcode::RetResinCardExpired => "RetResinCardExpired", + Retcode::RetAvatarCanNotCook => "RetAvatarCanNotCook", + Retcode::RetAttachAvatarCd => "RetAttachAvatarCd", + Retcode::RetAutoRecoverOpenstateOff => "RetAutoRecoverOpenstateOff", + Retcode::RetAutoRecoverBoughtCountExceeded => { + "RetAutoRecoverBoughtCountExceeded" + } + Retcode::RetResinGainFailed => "RetResinGainFailed", + Retcode::RetWidgetOrnamentsTypeError => "RetWidgetOrnamentsTypeError", + Retcode::RetAllTargetSatiationFull => "RetAllTargetSatiationFull", + Retcode::RetForgeWorldLevelNotMatch => "RetForgeWorldLevelNotMatch", + Retcode::RetForgePointNotEnough => "RetForgePointNotEnough", + Retcode::RetWidgetAnchorPointFull => "RetWidgetAnchorPointFull", + Retcode::RetWidgetAnchorPointNotFound => "RetWidgetAnchorPointNotFound", + Retcode::RetAllBonfireExceedMaxCount => "RetAllBonfireExceedMaxCount", + Retcode::RetBonfireExceedMaxCount => "RetBonfireExceedMaxCount", + Retcode::RetLunchBoxDataError => "RetLunchBoxDataError", + Retcode::RetInvalidQuickUseWidget => "RetInvalidQuickUseWidget", + Retcode::RetInvalidReplaceResinCount => "RetInvalidReplaceResinCount", + Retcode::RetPrevDetectedGatherNotFound => "RetPrevDetectedGatherNotFound", + Retcode::RetGotAllOneoffGahter => "RetGotAllOneoffGahter", + Retcode::RetInvalidWidgetMaterialId => "RetInvalidWidgetMaterialId", + Retcode::RetWidgetDetectorNoHintToClear => "RetWidgetDetectorNoHintToClear", + Retcode::RetWidgetAlreadyWithinNearbyRadius => { + "RetWidgetAlreadyWithinNearbyRadius" + } + Retcode::RetWidgetClientCollectorNeedPoints => { + "RetWidgetClientCollectorNeedPoints" + } + Retcode::RetWidgetInCombat => "RetWidgetInCombat", + Retcode::RetWidgetNotSetQuickUse => "RetWidgetNotSetQuickUse", + Retcode::RetAlreadyAttachWidget => "RetAlreadyAttachWidget", + Retcode::RetEquipIsLocked => "RetEquipIsLocked", + Retcode::RetForgeIsLocked => "RetForgeIsLocked", + Retcode::RetCombineIsLocked => "RetCombineIsLocked", + Retcode::RetForgeOutputStackLimit => "RetForgeOutputStackLimit", + Retcode::RetAlreadyDettachWidget => "RetAlreadyDettachWidget", + Retcode::RetGadgetBuilderExceedMaxCount => "RetGadgetBuilderExceedMaxCount", + Retcode::RetReunionPrivilegeResinTypeIsNormal => { + "RetReunionPrivilegeResinTypeIsNormal" + } + Retcode::RetBonusCountExceedDoubleLimit => "RetBonusCountExceedDoubleLimit", + Retcode::RetReliquaryDecomposeParamError => "RetReliquaryDecomposeParamError", + Retcode::RetItemCombineCountNotEnough => "RetItemCombineCountNotEnough", + Retcode::RetGoodsNotExist => "RetGoodsNotExist", + Retcode::RetGoodsMaterialNotEnough => "RetGoodsMaterialNotEnough", + Retcode::RetGoodsNotInTime => "RetGoodsNotInTime", + Retcode::RetGoodsBuyNumNotEnough => "RetGoodsBuyNumNotEnough", + Retcode::RetGoodsBuyNumError => "RetGoodsBuyNumError", + Retcode::RetShopNotOpen => "RetShopNotOpen", + Retcode::RetShopContentNotMatch => "RetShopContentNotMatch", + Retcode::RetShopBatchBuyShopLimit => "RetShopBatchBuyShopLimit", + Retcode::RetShopBatchBuyCountLimit => "RetShopBatchBuyCountLimit", + Retcode::RetGoodsPreconditionNotSatisfied => { + "RetGoodsPreconditionNotSatisfied" + } + Retcode::RetChatForbidden => "RetChatForbidden", + Retcode::RetChatCd => "RetChatCd", + Retcode::RetChatFrequently => "RetChatFrequently", + Retcode::RetGadgetNotExist => "RetGadgetNotExist", + Retcode::RetGadgetNotInteractive => "RetGadgetNotInteractive", + Retcode::RetGadgetNotGatherable => "RetGadgetNotGatherable", + Retcode::RetChestIsLocked => "RetChestIsLocked", + Retcode::RetGadgetCreateFail => "RetGadgetCreateFail", + Retcode::RetWorktopOptionNotExist => "RetWorktopOptionNotExist", + Retcode::RetGadgetStatueNotActive => "RetGadgetStatueNotActive", + Retcode::RetGadgetStatueOpened => "RetGadgetStatueOpened", + Retcode::RetBossChestNoQualification => "RetBossChestNoQualification", + Retcode::RetBossChestLifeTimeOver => "RetBossChestLifeTimeOver", + Retcode::RetBossChestWeekNumLimit => "RetBossChestWeekNumLimit", + Retcode::RetBossChestGuestWorldLevel => "RetBossChestGuestWorldLevel", + Retcode::RetBossChestHasTaken => "RetBossChestHasTaken", + Retcode::RetBlossomChestNoQualification => "RetBlossomChestNoQualification", + Retcode::RetBlossomChestLifeTimeOver => "RetBlossomChestLifeTimeOver", + Retcode::RetBlossomChestHasTaken => "RetBlossomChestHasTaken", + Retcode::RetBlossomChestGuestWorldLevel => "RetBlossomChestGuestWorldLevel", + Retcode::RetMpPlayRewardNoQualification => "RetMpPlayRewardNoQualification", + Retcode::RetMpPlayRewardHasTaken => "RetMpPlayRewardHasTaken", + Retcode::RetGeneralRewardNoQualification => "RetGeneralRewardNoQualification", + Retcode::RetGeneralRewardLifeTimeOver => "RetGeneralRewardLifeTimeOver", + Retcode::RetGeneralRewardHasTaken => "RetGeneralRewardHasTaken", + Retcode::RetGadgetNotVehicle => "RetGadgetNotVehicle", + Retcode::RetVehicleSlotOccupied => "RetVehicleSlotOccupied", + Retcode::RetNotInVehicle => "RetNotInVehicle", + Retcode::RetCreateVehicleInCd => "RetCreateVehicleInCd", + Retcode::RetCreateVehiclePosInvalid => "RetCreateVehiclePosInvalid", + Retcode::RetVehiclePointNotUnlock => "RetVehiclePointNotUnlock", + Retcode::RetGadgetInteractCondNotMeet => "RetGadgetInteractCondNotMeet", + Retcode::RetGadgetInteractParamError => "RetGadgetInteractParamError", + Retcode::RetGadgetCustomCombinationInvalid => { + "RetGadgetCustomCombinationInvalid" + } + Retcode::RetDeshretObeliskDuplicateInteract => { + "RetDeshretObeliskDuplicateInteract" + } + Retcode::RetDeshretObeliskNoAvailChest => "RetDeshretObeliskNoAvailChest", + Retcode::RetVehicleSorushNotReplace => "RetVehicleSorushNotReplace", + Retcode::RetVehicleSorushNotUnload => "RetVehicleSorushNotUnload", + Retcode::RetVehicleSorushStateNotMatch => "RetVehicleSorushStateNotMatch", + Retcode::RetGivingNotInMyWorld => "RetGivingNotInMyWorld", + Retcode::RetGivingIsFrozen => "RetGivingIsFrozen", + Retcode::RetActivityClose => "RetActivityClose", + Retcode::RetActivityItemError => "RetActivityItemError", + Retcode::RetActivityContributionNotEnough => { + "RetActivityContributionNotEnough" + } + Retcode::RetSeaLampPhaseNotFinish => "RetSeaLampPhaseNotFinish", + Retcode::RetSeaLampFlyNumLimit => "RetSeaLampFlyNumLimit", + Retcode::RetSeaLampFlyLampWordIllegal => "RetSeaLampFlyLampWordIllegal", + Retcode::RetActivityWatcherRewardTaken => "RetActivityWatcherRewardTaken", + Retcode::RetActivityWatcherRewardNotFinished => { + "RetActivityWatcherRewardNotFinished" + } + Retcode::RetSalesmanAlreadyDelivered => "RetSalesmanAlreadyDelivered", + Retcode::RetSalesmanRewardCountNotEnough => "RetSalesmanRewardCountNotEnough", + Retcode::RetSalesmanPositionInvalid => "RetSalesmanPositionInvalid", + Retcode::RetDeliverNotFinishAllQuest => "RetDeliverNotFinishAllQuest", + Retcode::RetDeliverAlreadyTakeDailyReward => { + "RetDeliverAlreadyTakeDailyReward" + } + Retcode::RetAsterProgressExceedLimit => "RetAsterProgressExceedLimit", + Retcode::RetAsterCreditExceedLimit => "RetAsterCreditExceedLimit", + Retcode::RetAsterTokenExceedLimit => "RetAsterTokenExceedLimit", + Retcode::RetAsterCreditNotEnough => "RetAsterCreditNotEnough", + Retcode::RetAsterTokenNotEnough => "RetAsterTokenNotEnough", + Retcode::RetAsterSpecialRewardHasTaken => "RetAsterSpecialRewardHasTaken", + Retcode::RetFlightGroupActivityNotStarted => { + "RetFlightGroupActivityNotStarted" + } + Retcode::RetAsterMidPreviousBattleNotFinished => { + "RetAsterMidPreviousBattleNotFinished" + } + Retcode::RetDragonSpineShimmeringEssenceExceedLimit => { + "RetDragonSpineShimmeringEssenceExceedLimit" + } + Retcode::RetDragonSpineWarmEssenceExceedLimit => { + "RetDragonSpineWarmEssenceExceedLimit" + } + Retcode::RetDragonSpineWondrousEssenceExceedLimit => { + "RetDragonSpineWondrousEssenceExceedLimit" + } + Retcode::RetDragonSpineShimmeringEssenceNotEnough => { + "RetDragonSpineShimmeringEssenceNotEnough" + } + Retcode::RetDragonSpineWarmEssenceNotEnough => { + "RetDragonSpineWarmEssenceNotEnough" + } + Retcode::RetDragonSpineWondrousEssenceNotEnough => { + "RetDragonSpineWondrousEssenceNotEnough" + } + Retcode::RetEffigyFirstPassRewardHasTaken => { + "RetEffigyFirstPassRewardHasTaken" + } + Retcode::RetEffigyRewardHasTaken => "RetEffigyRewardHasTaken", + Retcode::RetTreasureMapAddTokenExceedLimit => { + "RetTreasureMapAddTokenExceedLimit" + } + Retcode::RetTreasureMapTokenNotEnought => "RetTreasureMapTokenNotEnought", + Retcode::RetSeaLampCoinExceedLimit => "RetSeaLampCoinExceedLimit", + Retcode::RetSeaLampCoinNotEnough => "RetSeaLampCoinNotEnough", + Retcode::RetSeaLampPopularityExceedLimit => "RetSeaLampPopularityExceedLimit", + Retcode::RetActivityAvatarRewardNotOpen => "RetActivityAvatarRewardNotOpen", + Retcode::RetActivityAvatarRewardHasTaken => "RetActivityAvatarRewardHasTaken", + Retcode::RetArenaActivityAlreadyStarted => "RetArenaActivityAlreadyStarted", + Retcode::RetTalentAlreayUnlocked => "RetTalentAlreayUnlocked", + Retcode::RetPrevTalentNotUnlocked => "RetPrevTalentNotUnlocked", + Retcode::RetBigTalentPointNotEnough => "RetBigTalentPointNotEnough", + Retcode::RetSmallTalentPointNotEnough => "RetSmallTalentPointNotEnough", + Retcode::RetProudSkillAlreadyGot => "RetProudSkillAlreadyGot", + Retcode::RetPrevProudSkillNotGet => "RetPrevProudSkillNotGet", + Retcode::RetProudSkillMaxLevel => "RetProudSkillMaxLevel", + Retcode::RetCandidateSkillDepotIdNotFind => "RetCandidateSkillDepotIdNotFind", + Retcode::RetSkillDepotIsTheSame => "RetSkillDepotIsTheSame", + Retcode::RetMonsterNotExist => "RetMonsterNotExist", + Retcode::RetMonsterCreateFail => "RetMonsterCreateFail", + Retcode::RetDungeonEnterFail => "RetDungeonEnterFail", + Retcode::RetDungeonQuitFail => "RetDungeonQuitFail", + Retcode::RetDungeonEnterExceedDayCount => "RetDungeonEnterExceedDayCount", + Retcode::RetDungeonReviveExceedMaxCount => "RetDungeonReviveExceedMaxCount", + Retcode::RetDungeonReviveFail => "RetDungeonReviveFail", + Retcode::RetDungeonNotSucceed => "RetDungeonNotSucceed", + Retcode::RetDungeonCanNotCancel => "RetDungeonCanNotCancel", + Retcode::RetDestDungeonSettled => "RetDestDungeonSettled", + Retcode::RetDungeonCandidateTeamIsFull => "RetDungeonCandidateTeamIsFull", + Retcode::RetDungeonCandidateTeamIsDismiss => { + "RetDungeonCandidateTeamIsDismiss" + } + Retcode::RetDungeonCandidateTeamNotAllReady => { + "RetDungeonCandidateTeamNotAllReady" + } + Retcode::RetDungeonCandidateTeamHasRepeatAvatar => { + "RetDungeonCandidateTeamHasRepeatAvatar" + } + Retcode::RetDungeonCandidateNotSingelPass => { + "RetDungeonCandidateNotSingelPass" + } + Retcode::RetDungeonReplayNeedAllPlayerDie => { + "RetDungeonReplayNeedAllPlayerDie" + } + Retcode::RetDungeonReplayHasReviveCount => "RetDungeonReplayHasReviveCount", + Retcode::RetDungeonOthersLeave => "RetDungeonOthersLeave", + Retcode::RetDungeonEnterLevelLimit => "RetDungeonEnterLevelLimit", + Retcode::RetDungeonCannotEnterPlotInMp => "RetDungeonCannotEnterPlotInMp", + Retcode::RetDungeonDropSubfieldLimit => "RetDungeonDropSubfieldLimit", + Retcode::RetDungeonBeInvitePlayerAvatarAllDie => { + "RetDungeonBeInvitePlayerAvatarAllDie" + } + Retcode::RetDungeonCannotKick => "RetDungeonCannotKick", + Retcode::RetDungeonCandidateTeamSomeoneLevelLimit => { + "RetDungeonCandidateTeamSomeoneLevelLimit" + } + Retcode::RetDungeonInForceQuit => "RetDungeonInForceQuit", + Retcode::RetDungeonGuestQuitDungeon => "RetDungeonGuestQuitDungeon", + Retcode::RetDungeonTicketFail => "RetDungeonTicketFail", + Retcode::RetCurDungeonSettled => "RetCurDungeonSettled", + Retcode::RetCurDungeonNotPlot => "RetCurDungeonNotPlot", + Retcode::RetCurDungeonNotAllowSwitchTeam => "RetCurDungeonNotAllowSwitchTeam", + Retcode::RetDungeonEnteredByCandidateTeam => { + "RetDungeonEnteredByCandidateTeam" + } + Retcode::RetDungeonSwitchTeamBannedByPlay => { + "RetDungeonSwitchTeamBannedByPlay" + } + Retcode::RetDungeonEnterTeamInternalError => { + "RetDungeonEnterTeamInternalError" + } + Retcode::RetDungeonEnterTeamSomeoneLevelLimit => { + "RetDungeonEnterTeamSomeoneLevelLimit" + } + Retcode::RetDungeonEnterTeamSomeoneNotInSceneTeam => { + "RetDungeonEnterTeamSomeoneNotInSceneTeam" + } + Retcode::RetMpNotInMyWorld => "RetMpNotInMyWorld", + Retcode::RetMpInMpMode => "RetMpInMpMode", + Retcode::RetMpSceneIsFull => "RetMpSceneIsFull", + Retcode::RetMpModeNotAvailable => "RetMpModeNotAvailable", + Retcode::RetMpPlayerNotEnterable => "RetMpPlayerNotEnterable", + Retcode::RetMpQuestBlockMp => "RetMpQuestBlockMp", + Retcode::RetMpInRoomScene => "RetMpInRoomScene", + Retcode::RetMpWorldIsFull => "RetMpWorldIsFull", + Retcode::RetMpPlayerNotAllowEnter => "RetMpPlayerNotAllowEnter", + Retcode::RetMpPlayerDisconnected => "RetMpPlayerDisconnected", + Retcode::RetMpNotInMpMode => "RetMpNotInMpMode", + Retcode::RetMpOwnerNotEnter => "RetMpOwnerNotEnter", + Retcode::RetMpAllowEnterPlayerFull => "RetMpAllowEnterPlayerFull", + Retcode::RetMpTargetPlayerInTransfer => "RetMpTargetPlayerInTransfer", + Retcode::RetMpTargetEnteringOther => "RetMpTargetEnteringOther", + Retcode::RetMpOtherEntering => "RetMpOtherEntering", + Retcode::RetMpEnterMainPlayerInPlot => "RetMpEnterMainPlayerInPlot", + Retcode::RetMpNotPsPlayer => "RetMpNotPsPlayer", + Retcode::RetMpPlayNotActive => "RetMpPlayNotActive", + Retcode::RetMpPlayRemainRewards => "RetMpPlayRemainRewards", + Retcode::RetMpPlayNoReward => "RetMpPlayNoReward", + Retcode::RetMpOpenStateFail => "RetMpOpenStateFail", + Retcode::RetMpPlayerInBlacklist => "RetMpPlayerInBlacklist", + Retcode::RetMpReplyTimeout => "RetMpReplyTimeout", + Retcode::RetMpIsBlock => "RetMpIsBlock", + Retcode::RetMpEnterMainPlayerInMpPlay => "RetMpEnterMainPlayerInMpPlay", + Retcode::RetMpInMpPlayBattle => "RetMpInMpPlayBattle", + Retcode::RetMpGuestHasRewardRemained => "RetMpGuestHasRewardRemained", + Retcode::RetMpQuitMpInvalid => "RetMpQuitMpInvalid", + Retcode::RetMpOtherDataVersionNotLatest => "RetMpOtherDataVersionNotLatest", + Retcode::RetMpDataVersionNotLatest => "RetMpDataVersionNotLatest", + Retcode::RetMpCurWorldNotEnterable => "RetMpCurWorldNotEnterable", + Retcode::RetMpAnyGalleryStarted => "RetMpAnyGalleryStarted", + Retcode::RetMpHasActiveDraft => "RetMpHasActiveDraft", + Retcode::RetMpPlayerInDungeon => "RetMpPlayerInDungeon", + Retcode::RetMpMatchFull => "RetMpMatchFull", + Retcode::RetMpMatchLimit => "RetMpMatchLimit", + Retcode::RetMpMatchInPunish => "RetMpMatchInPunish", + Retcode::RetMpIsInMultistage => "RetMpIsInMultistage", + Retcode::RetMpMatchPlayNotOpen => "RetMpMatchPlayNotOpen", + Retcode::RetMpOnlyMpWithPsPlayer => "RetMpOnlyMpWithPsPlayer", + Retcode::RetMpGuestLoadingFirstEnter => "RetMpGuestLoadingFirstEnter", + Retcode::RetMpSummerTimeSprintBoatOngoing => { + "RetMpSummerTimeSprintBoatOngoing" + } + Retcode::RetMpBlitzRushParkourChallengeOngoing => { + "RetMpBlitzRushParkourChallengeOngoing" + } + Retcode::RetMpMusicGameOngoing => "RetMpMusicGameOngoing", + Retcode::RetMpInMpingMode => "RetMpInMpingMode", + Retcode::RetMpOwnerInSingleScene => "RetMpOwnerInSingleScene", + Retcode::RetMpInSingleScene => "RetMpInSingleScene", + Retcode::RetMpReplyNoValidAvatar => "RetMpReplyNoValidAvatar", + Retcode::RetMpIsNotInTransferGuard => "RetMpIsNotInTransferGuard", + Retcode::RetMpCannotExecGivingInSingleModeQuest => { + "RetMpCannotExecGivingInSingleModeQuest" + } + Retcode::RetMpEffigyChallengeV4InPrepare => "RetMpEffigyChallengeV4InPrepare", + Retcode::RetMpShuffleBoardOngoing => "RetMpShuffleBoardOngoing", + Retcode::RetMpFlightGearOngoing => "RetMpFlightGearOngoing", + Retcode::RetMpToyBattleQteOngoing => "RetMpToyBattleQteOngoing", + Retcode::RetMpPaintingRepairOngoing => "RetMpPaintingRepairOngoing", + Retcode::RetMpFishblasterOngoing => "RetMpFishblasterOngoing", + Retcode::RetMpGuestMatchCondNotMeet => "RetMpGuestMatchCondNotMeet", + Retcode::RetMailParaErr => "RetMailParaErr", + Retcode::RetMailMaxNum => "RetMailMaxNum", + Retcode::RetMailItemNumExceed => "RetMailItemNumExceed", + Retcode::RetMailTitleLenExceed => "RetMailTitleLenExceed", + Retcode::RetMailContentLenExceed => "RetMailContentLenExceed", + Retcode::RetMailSenderLenExceed => "RetMailSenderLenExceed", + Retcode::RetMailParsePacketFail => "RetMailParsePacketFail", + Retcode::RetOfflineMsgMaxNum => "RetOfflineMsgMaxNum", + Retcode::RetOfflineMsgSameTicket => "RetOfflineMsgSameTicket", + Retcode::RetMailExcelMailTypeError => "RetMailExcelMailTypeError", + Retcode::RetMailCannotSendMcoin => "RetMailCannotSendMcoin", + Retcode::RetMailHcoinExceedLimit => "RetMailHcoinExceedLimit", + Retcode::RetMailScoinExceedLimit => "RetMailScoinExceedLimit", + Retcode::RetMailMaterialIdInvalid => "RetMailMaterialIdInvalid", + Retcode::RetMailAvatarExceedLimit => "RetMailAvatarExceedLimit", + Retcode::RetMailGachaTicketEtcExceedLimit => { + "RetMailGachaTicketEtcExceedLimit" + } + Retcode::RetMailItemExceedCehuaLimit => "RetMailItemExceedCehuaLimit", + Retcode::RetMailSpaceOrRestNumNotEnough => "RetMailSpaceOrRestNumNotEnough", + Retcode::RetMailTicketIsEmpty => "RetMailTicketIsEmpty", + Retcode::RetMailTransactionIsEmpty => "RetMailTransactionIsEmpty", + Retcode::RetMailDeleteCollected => "RetMailDeleteCollected", + Retcode::RetMailCollectionIsFull => "RetMailCollectionIsFull", + Retcode::RetMailTitleCharacterLenExceed => "RetMailTitleCharacterLenExceed", + Retcode::RetMailTitleEmpty => "RetMailTitleEmpty", + Retcode::RetMailContentEmpty => "RetMailContentEmpty", + Retcode::RetMailSenderEmpty => "RetMailSenderEmpty", + Retcode::RetDailyTaskNotFinish => "RetDailyTaskNotFinish", + Retcode::RetDailyTaksHasTaken => "RetDailyTaksHasTaken", + Retcode::RetSocialOfflineMsgNumExceed => "RetSocialOfflineMsgNumExceed", + Retcode::RetDailyTaskFilterCityNotOpen => "RetDailyTaskFilterCityNotOpen", + Retcode::RetDailyAttendanceNotOpen => "RetDailyAttendanceNotOpen", + Retcode::RetDailyAttendanceRewardMax => "RetDailyAttendanceRewardMax", + Retcode::RetGachaInavailable => "RetGachaInavailable", + Retcode::RetGachaRandomNotMatch => "RetGachaRandomNotMatch", + Retcode::RetGachaScheduleNotMatch => "RetGachaScheduleNotMatch", + Retcode::RetGachaInvalidTimes => "RetGachaInvalidTimes", + Retcode::RetGachaCostItemNotEnough => "RetGachaCostItemNotEnough", + Retcode::RetGachaTimesLimit => "RetGachaTimesLimit", + Retcode::RetGachaWishSameItem => "RetGachaWishSameItem", + Retcode::RetGachaWishInvalidItem => "RetGachaWishInvalidItem", + Retcode::RetGachaMinorsTimesLimit => "RetGachaMinorsTimesLimit", + Retcode::RetGachaGeneralTimesLimit => "RetGachaGeneralTimesLimit", + Retcode::RetGachaWishIsNeededBeforeGacha => "RetGachaWishIsNeededBeforeGacha", + Retcode::RetInvestigaitonNotInProgress => "RetInvestigaitonNotInProgress", + Retcode::RetInvestigaitonUncomplete => "RetInvestigaitonUncomplete", + Retcode::RetInvestigaitonRewardTaken => "RetInvestigaitonRewardTaken", + Retcode::RetInvestigaitonTargetStateError => { + "RetInvestigaitonTargetStateError" + } + Retcode::RetPushTipsNotFound => "RetPushTipsNotFound", + Retcode::RetSignInRecordNotFound => "RetSignInRecordNotFound", + Retcode::RetAlreadyHaveSignedIn => "RetAlreadyHaveSignedIn", + Retcode::RetSignInCondNotSatisfied => "RetSignInCondNotSatisfied", + Retcode::RetBonusActivityNotUnrewarded => "RetBonusActivityNotUnrewarded", + Retcode::RetSignInRewarded => "RetSignInRewarded", + Retcode::RetTowerNotOpen => "RetTowerNotOpen", + Retcode::RetTowerHaveDailyRecord => "RetTowerHaveDailyRecord", + Retcode::RetTowerNotRecord => "RetTowerNotRecord", + Retcode::RetTowerHaveRecord => "RetTowerHaveRecord", + Retcode::RetTowerTeamNumError => "RetTowerTeamNumError", + Retcode::RetTowerFloorNotOpen => "RetTowerFloorNotOpen", + Retcode::RetTowerNoFloorStarRecord => "RetTowerNoFloorStarRecord", + Retcode::RetAlreadyHasTowerBuff => "RetAlreadyHasTowerBuff", + Retcode::RetDuplicateEnterLevel => "RetDuplicateEnterLevel", + Retcode::RetNotInTowerLevel => "RetNotInTowerLevel", + Retcode::RetInTowerLevel => "RetInTowerLevel", + Retcode::RetTowerPrevFloorNotFinish => "RetTowerPrevFloorNotFinish", + Retcode::RetTowerStarNotEnough => "RetTowerStarNotEnough", + Retcode::RetBattlePassNoSchedule => "RetBattlePassNoSchedule", + Retcode::RetBattlePassHasBuyed => "RetBattlePassHasBuyed", + Retcode::RetBattlePassLevelOverflow => "RetBattlePassLevelOverflow", + Retcode::RetBattlePassProductExpired => "RetBattlePassProductExpired", + Retcode::RetMatchHostQuit => "RetMatchHostQuit", + Retcode::RetMatchAlreadyInMatch => "RetMatchAlreadyInMatch", + Retcode::RetMatchNotInMatch => "RetMatchNotInMatch", + Retcode::RetMatchApplyingEnterMp => "RetMatchApplyingEnterMp", + Retcode::RetMatchIncorrectScene => "RetMatchIncorrectScene", + Retcode::RetWidgetTreasureSpotNotFound => "RetWidgetTreasureSpotNotFound", + Retcode::RetWidgetTreasureEntityExists => "RetWidgetTreasureEntityExists", + Retcode::RetWidgetTreasureSpotFarAway => "RetWidgetTreasureSpotFarAway", + Retcode::RetWidgetTreasureFinishedToday => "RetWidgetTreasureFinishedToday", + Retcode::RetWidgetQuickUseReqParamError => "RetWidgetQuickUseReqParamError", + Retcode::RetWidgetCameraScanIdError => "RetWidgetCameraScanIdError", + Retcode::RetWidgetNotActive => "RetWidgetNotActive", + Retcode::RetWidgetFeatherNotActive => "RetWidgetFeatherNotActive", + Retcode::RetWidgetFeatherGadgetTooFarAway => { + "RetWidgetFeatherGadgetTooFarAway" + } + Retcode::RetWidgetCaptureAnimalNotExist => "RetWidgetCaptureAnimalNotExist", + Retcode::RetWidgetCaptureAnimalDropBagLimit => { + "RetWidgetCaptureAnimalDropBagLimit" + } + Retcode::RetWidgetCaptureAnimalCanNotCapture => { + "RetWidgetCaptureAnimalCanNotCapture" + } + Retcode::RetWidgetSkyCrystalAllCollected => "RetWidgetSkyCrystalAllCollected", + Retcode::RetWidgetSkyCrystalHintAlreadyExist => { + "RetWidgetSkyCrystalHintAlreadyExist" + } + Retcode::RetWidgetSkyCrystalNotFound => "RetWidgetSkyCrystalNotFound", + Retcode::RetWidgetSkyCrystalNoHintToClear => { + "RetWidgetSkyCrystalNoHintToClear" + } + Retcode::RetWidgetLightStoneEnergyNotEnough => { + "RetWidgetLightStoneEnergyNotEnough" + } + Retcode::RetWidgetToyCrystalEnergyNotEnough => { + "RetWidgetToyCrystalEnergyNotEnough" + } + Retcode::RetWidgetLightStoneLevelNotEnough => { + "RetWidgetLightStoneLevelNotEnough" + } + Retcode::RetWidgetQuickSlotNotInWidgetPanel => { + "RetWidgetQuickSlotNotInWidgetPanel" + } + Retcode::RetRoleCombatNotRecord => "RetRoleCombatNotRecord", + Retcode::RetRoleCombatCoinExceedLimit => "RetRoleCombatCoinExceedLimit", + Retcode::RetRoleCombatCoinNotEnough => "RetRoleCombatCoinNotEnough", + Retcode::RetRoleCombatLevelNotMeet => "RetRoleCombatLevelNotMeet", + Retcode::RetRoleCombatTowerNotMeet => "RetRoleCombatTowerNotMeet", + Retcode::RetRoleCombatScheduleNotMeet => "RetRoleCombatScheduleNotMeet", + Retcode::RetRoleCombatReqFriendRentAvatarFrequently => { + "RetRoleCombatReqFriendRentAvatarFrequently" + } + Retcode::RetRoleCombatReqTrialAvatarFrequently => { + "RetRoleCombatReqTrialAvatarFrequently" + } + Retcode::RetRoleCombatRefreshCountNotEnough => { + "RetRoleCombatRefreshCountNotEnough" + } + Retcode::RetRoleCombatQuestNotMeet => "RetRoleCombatQuestNotMeet", + Retcode::RetInRoleCombatDungeon => "RetInRoleCombatDungeon", + Retcode::RetInRoleCombatDungeonByUseItem => "RetInRoleCombatDungeonByUseItem", + Retcode::RetRoleCombatRentAvatarNotFound => "RetRoleCombatRentAvatarNotFound", + Retcode::RetRoleCombatCardHasBlocked => "RetRoleCombatCardHasBlocked", + Retcode::RetCharMasterKeyExceedLimit => "RetCharMasterKeyExceedLimit", + Retcode::RetCharMasterKeyNotEnough => "RetCharMasterKeyNotEnough", + Retcode::RetCharMasterPreviewInCd => "RetCharMasterPreviewInCd", + Retcode::RetUidNotExist => "RetUidNotExist", + Retcode::RetParseBinError => "RetParseBinError", + Retcode::RetAccountInfoNotExist => "RetAccountInfoNotExist", + Retcode::RetOrderInfoNotExist => "RetOrderInfoNotExist", + Retcode::RetSnapshotIndexError => "RetSnapshotIndexError", + Retcode::RetMailHasBeenSent => "RetMailHasBeenSent", + Retcode::RetProductNotExist => "RetProductNotExist", + Retcode::RetUnfinishOrder => "RetUnfinishOrder", + Retcode::RetIdNotExist => "RetIdNotExist", + Retcode::RetOrderTradeEarly => "RetOrderTradeEarly", + Retcode::RetOrderFinished => "RetOrderFinished", + Retcode::RetGameserverVersionWrong => "RetGameserverVersionWrong", + Retcode::RetOfflineOpFullLength => "RetOfflineOpFullLength", + Retcode::RetConcertProductObtainLimit => "RetConcertProductObtainLimit", + Retcode::RetConcertProductTicketDuplicated => { + "RetConcertProductTicketDuplicated" + } + Retcode::RetConcertProductTicketEmpty => "RetConcertProductTicketEmpty", + Retcode::RetRedisModified => "RetRedisModified", + Retcode::RetRedisUidNotExist => "RetRedisUidNotExist", + Retcode::RetPathfindingDataNotExist => "RetPathfindingDataNotExist", + Retcode::RetPathfindingDestinationNotExist => { + "RetPathfindingDestinationNotExist" + } + Retcode::RetPathfindingErrorScene => "RetPathfindingErrorScene", + Retcode::RetPathfindingSceneDataLoading => "RetPathfindingSceneDataLoading", + Retcode::RetTothemoonErrorScene => "RetTothemoonErrorScene", + Retcode::RetTothemoonPlayerNotExist => "RetTothemoonPlayerNotExist", + Retcode::RetFriendCountExceeded => "RetFriendCountExceeded", + Retcode::RetPlayerNotExist => "RetPlayerNotExist", + Retcode::RetAlreadySentAddRequest => "RetAlreadySentAddRequest", + Retcode::RetAskFriendListFull => "RetAskFriendListFull", + Retcode::RetPlayerAlreadyIsFriend => "RetPlayerAlreadyIsFriend", + Retcode::RetPlayerNotAskFriend => "RetPlayerNotAskFriend", + Retcode::RetTargetFriendCountExceed => "RetTargetFriendCountExceed", + Retcode::RetNotFriend => "RetNotFriend", + Retcode::RetBirthdayCannotBeSetTwice => "RetBirthdayCannotBeSetTwice", + Retcode::RetCannotAddSelfFriend => "RetCannotAddSelfFriend", + Retcode::RetSignatureIllegal => "RetSignatureIllegal", + Retcode::RetPsPlayerCannotAddFriends => "RetPsPlayerCannotAddFriends", + Retcode::RetPsPlayerCannotRemoveFriends => "RetPsPlayerCannotRemoveFriends", + Retcode::RetNameCardNotUnlocked => "RetNameCardNotUnlocked", + Retcode::RetAlreadyInBlacklist => "RetAlreadyInBlacklist", + Retcode::RetPsPaleyrsCannotAddBlacklist => "RetPsPaleyrsCannotAddBlacklist", + Retcode::RetPlayerBlacklistFull => "RetPlayerBlacklistFull", + Retcode::RetPlayerNotInBlacklist => "RetPlayerNotInBlacklist", + Retcode::RetBlacklistPlayerCannotAddFriend => { + "RetBlacklistPlayerCannotAddFriend" + } + Retcode::RetInTargetBlacklist => "RetInTargetBlacklist", + Retcode::RetCannotAddTargetFriend => "RetCannotAddTargetFriend", + Retcode::RetBirthdayFormatError => "RetBirthdayFormatError", + Retcode::RetOnlineIdNotExists => "RetOnlineIdNotExists", + Retcode::RetFirstShareRewardHasTaken => "RetFirstShareRewardHasTaken", + Retcode::RetPsPlayerCannotRemoveBlacklist => { + "RetPsPlayerCannotRemoveBlacklist" + } + Retcode::RetReportCd => "RetReportCd", + Retcode::RetReportContentIllegal => "RetReportContentIllegal", + Retcode::RetRemarkWordIllegal => "RetRemarkWordIllegal", + Retcode::RetRemarkTooLong => "RetRemarkTooLong", + Retcode::RetRemarkUtf8Error => "RetRemarkUtf8Error", + Retcode::RetRemarkIsEmpty => "RetRemarkIsEmpty", + Retcode::RetAskAddFriendCd => "RetAskAddFriendCd", + Retcode::RetShowAvatarInfoNotExist => "RetShowAvatarInfoNotExist", + Retcode::RetPlayerNotShowAvatar => "RetPlayerNotShowAvatar", + Retcode::RetSocialUpdateShowListRepeatId => "RetSocialUpdateShowListRepeatId", + Retcode::RetPsnIdNotFound => "RetPsnIdNotFound", + Retcode::RetEmojiCollectionNumExceedLimit => { + "RetEmojiCollectionNumExceedLimit" + } + Retcode::RetRemarkEmpty => "RetRemarkEmpty", + Retcode::RetInTargetPsnBlacklist => "RetInTargetPsnBlacklist", + Retcode::RetSignatureNotChanged => "RetSignatureNotChanged", + Retcode::RetSignatureMonthlyLimit => "RetSignatureMonthlyLimit", + Retcode::RetReqFriendAvatarFrequently => "RetReqFriendAvatarFrequently", + Retcode::RetPsnGetPlayerSocialDetailFail => "RetPsnGetPlayerSocialDetailFail", + Retcode::RetProfilePictureNotUnlocked => "RetProfilePictureNotUnlocked", + Retcode::RetOfferingNotOpen => "RetOfferingNotOpen", + Retcode::RetOfferingLevelLimit => "RetOfferingLevelLimit", + Retcode::RetOfferingLevelNotReach => "RetOfferingLevelNotReach", + Retcode::RetOfferingLevelHasTaken => "RetOfferingLevelHasTaken", + Retcode::RetOfferingPariSearchNotOpen => "RetOfferingPariSearchNotOpen", + Retcode::RetOfferingPariNotFinish => "RetOfferingPariNotFinish", + Retcode::RetOfferingPariFinishRewardHasTaken => { + "RetOfferingPariFinishRewardHasTaken" + } + Retcode::RetOfferingPariSearchAllFinish => "RetOfferingPariSearchAllFinish", + Retcode::RetOfferingPariNoFinishReward => "RetOfferingPariNoFinishReward", + Retcode::RetCityReputationNotOpen => "RetCityReputationNotOpen", + Retcode::RetCityReputationLevelTaken => "RetCityReputationLevelTaken", + Retcode::RetCityReputationLevelNotReach => "RetCityReputationLevelNotReach", + Retcode::RetCityReputationParentQuestTaken => { + "RetCityReputationParentQuestTaken" + } + Retcode::RetCityReputationParentQuestUnfinish => { + "RetCityReputationParentQuestUnfinish" + } + Retcode::RetCityReputationAcceptRequest => "RetCityReputationAcceptRequest", + Retcode::RetCityReputationNotAcceptRequest => { + "RetCityReputationNotAcceptRequest" + } + Retcode::RetCityReputationAcceptRequestLimit => { + "RetCityReputationAcceptRequestLimit" + } + Retcode::RetCityReputationEntranceNotOpen => { + "RetCityReputationEntranceNotOpen" + } + Retcode::RetCityReputationTakenRequestReward => { + "RetCityReputationTakenRequestReward" + } + Retcode::RetCityReputationSwitchClose => "RetCityReputationSwitchClose", + Retcode::RetCityReputationEntraceSwitchClose => { + "RetCityReputationEntraceSwitchClose" + } + Retcode::RetCityReputationTakenExploreReward => { + "RetCityReputationTakenExploreReward" + } + Retcode::RetCityReputationExploreNotReach => { + "RetCityReputationExploreNotReach" + } + Retcode::RetTribalReputationNotOpen => "RetTribalReputationNotOpen", + Retcode::RetTribalReputationLevelTaken => "RetTribalReputationLevelTaken", + Retcode::RetTribalReputationLevelNotReach => { + "RetTribalReputationLevelNotReach" + } + Retcode::RetTribalReputationTakenExploreReward => { + "RetTribalReputationTakenExploreReward" + } + Retcode::RetTribalReputationExploreNotReach => { + "RetTribalReputationExploreNotReach" + } + Retcode::RetTribalReputationParentQuestTaken => { + "RetTribalReputationParentQuestTaken" + } + Retcode::RetTribalReputationParentQuestUnfinish => { + "RetTribalReputationParentQuestUnfinish" + } + Retcode::RetCityReputationNotOpenTribal => "RetCityReputationNotOpenTribal", + Retcode::RetCityReputationNoTheDonation => "RetCityReputationNoTheDonation", + Retcode::RetCityReputationDonationFinished => { + "RetCityReputationDonationFinished" + } + Retcode::RetCityReputationDonationLimit => "RetCityReputationDonationLimit", + Retcode::RetCityReputationTotalRewardTaken => { + "RetCityReputationTotalRewardTaken" + } + Retcode::RetCityReputationTotalRewardNotReach => { + "RetCityReputationTotalRewardNotReach" + } + Retcode::RetMechanicusNotOpen => "RetMechanicusNotOpen", + Retcode::RetMechanicusGearUnlock => "RetMechanicusGearUnlock", + Retcode::RetMechanicusGearLock => "RetMechanicusGearLock", + Retcode::RetMechanicusGearLevelLimit => "RetMechanicusGearLevelLimit", + Retcode::RetMechanicusCoinNotEnough => "RetMechanicusCoinNotEnough", + Retcode::RetMechanicusNoSequence => "RetMechanicusNoSequence", + Retcode::RetMechanicusSequenceLimitLevel => "RetMechanicusSequenceLimitLevel", + Retcode::RetMechanicusSequenceLimitOpen => "RetMechanicusSequenceLimitOpen", + Retcode::RetMechanicusDifficultNotSupport => { + "RetMechanicusDifficultNotSupport" + } + Retcode::RetMechanicusTicketNotEnough => "RetMechanicusTicketNotEnough", + Retcode::RetMechanicusTeachNotFinish => "RetMechanicusTeachNotFinish", + Retcode::RetMechanicusTeachFinished => "RetMechanicusTeachFinished", + Retcode::RetMechanicusPrevDifficultLevelBlock => { + "RetMechanicusPrevDifficultLevelBlock" + } + Retcode::RetMechanicusPlayerLimit => "RetMechanicusPlayerLimit", + Retcode::RetMechanicusPunishTime => "RetMechanicusPunishTime", + Retcode::RetMechanicusSwitchClose => "RetMechanicusSwitchClose", + Retcode::RetMechanicusBattleNotInDungeon => "RetMechanicusBattleNotInDungeon", + Retcode::RetMechanicusBattlePlayNotFound => "RetMechanicusBattlePlayNotFound", + Retcode::RetMechanicusBattleDuplicatePickCard => { + "RetMechanicusBattleDuplicatePickCard" + } + Retcode::RetMechanicusBattlePlayerNotInPlay => { + "RetMechanicusBattlePlayerNotInPlay" + } + Retcode::RetMechanicusBattleCardNotAvailable => { + "RetMechanicusBattleCardNotAvailable" + } + Retcode::RetMechanicusBattleNotInCardStage => { + "RetMechanicusBattleNotInCardStage" + } + Retcode::RetMechanicusBattleCardIsWaiting => { + "RetMechanicusBattleCardIsWaiting" + } + Retcode::RetMechanicusBattleCardAllConfirmed => { + "RetMechanicusBattleCardAllConfirmed" + } + Retcode::RetMechanicusBattleCardAlreadyConfirmed => { + "RetMechanicusBattleCardAlreadyConfirmed" + } + Retcode::RetMechanicusBattleCardConfirmedByOther => { + "RetMechanicusBattleCardConfirmedByOther" + } + Retcode::RetMechanicusBattleCardNotEnoughPoints => { + "RetMechanicusBattleCardNotEnoughPoints" + } + Retcode::RetMechanicusBattleCardAlreadySkipped => { + "RetMechanicusBattleCardAlreadySkipped" + } + Retcode::RetLegendaryKeyNotEnough => "RetLegendaryKeyNotEnough", + Retcode::RetLegendaryKeyExceedLimit => "RetLegendaryKeyExceedLimit", + Retcode::RetDailyTaskNotEnoughToRedeem => "RetDailyTaskNotEnoughToRedeem", + Retcode::RetPersonalLineOpenStateOff => "RetPersonalLineOpenStateOff", + Retcode::RetPersonalLineLevelNotEnough => "RetPersonalLineLevelNotEnough", + Retcode::RetPersonalLineNotOpen => "RetPersonalLineNotOpen", + Retcode::RetPersonalLinePreQuestNotFinish => { + "RetPersonalLinePreQuestNotFinish" + } + Retcode::RetHuntingAlreadyFinishOfferLimit => { + "RetHuntingAlreadyFinishOfferLimit" + } + Retcode::RetHuntingHasUnfinishedOffer => "RetHuntingHasUnfinishedOffer", + Retcode::RetHuntingFailedOfferNotCdReady => "RetHuntingFailedOfferNotCdReady", + Retcode::RetHuntingNotTakeOffer => "RetHuntingNotTakeOffer", + Retcode::RetHuntingCannotTakeTwice => "RetHuntingCannotTakeTwice", + Retcode::RetRpivateChatInvalidContentType => { + "RetRpivateChatInvalidContentType" + } + Retcode::RetPrivateChatTargetIsNotFriend => "RetPrivateChatTargetIsNotFriend", + Retcode::RetPrivateChatContentNotSupported => { + "RetPrivateChatContentNotSupported" + } + Retcode::RetPrivateChatContentTooLong => "RetPrivateChatContentTooLong", + Retcode::RetPrivateChatPullTooFast => "RetPrivateChatPullTooFast", + Retcode::RetPrivateChatRepeatRead => "RetPrivateChatRepeatRead", + Retcode::RetPrivateChatReadNotFriend => "RetPrivateChatReadNotFriend", + Retcode::RetReunionFinished => "RetReunionFinished", + Retcode::RetReunionNotActivated => "RetReunionNotActivated", + Retcode::RetReunionAlreadyTakeFirstReward => { + "RetReunionAlreadyTakeFirstReward" + } + Retcode::RetReunionSignInRewarded => "RetReunionSignInRewarded", + Retcode::RetReunionWatcherRewarded => "RetReunionWatcherRewarded", + Retcode::RetReunionWatcherNotFinish => "RetReunionWatcherNotFinish", + Retcode::RetReunionMissionRewarded => "RetReunionMissionRewarded", + Retcode::RetReunionMissionNotFinish => "RetReunionMissionNotFinish", + Retcode::RetReunionWatcherRewardNotUnlocked => { + "RetReunionWatcherRewardNotUnlocked" + } + Retcode::RetBlessingContentClosed => "RetBlessingContentClosed", + Retcode::RetBlessingNotActive => "RetBlessingNotActive", + Retcode::RetBlessingNotTodayEntity => "RetBlessingNotTodayEntity", + Retcode::RetBlessingEntityExceedScanNumLimit => { + "RetBlessingEntityExceedScanNumLimit" + } + Retcode::RetBlessingDailyScanNumExceedLimit => { + "RetBlessingDailyScanNumExceedLimit" + } + Retcode::RetBlessingRedeemRewardNumExceedLimit => { + "RetBlessingRedeemRewardNumExceedLimit" + } + Retcode::RetBlessingRedeemPicNumNotEnough => { + "RetBlessingRedeemPicNumNotEnough" + } + Retcode::RetBlessingPicNotEnough => "RetBlessingPicNotEnough", + Retcode::RetBlessingPicHasReceived => "RetBlessingPicHasReceived", + Retcode::RetBlessingTargetRecvNumExceed => "RetBlessingTargetRecvNumExceed", + Retcode::RetFleurFairCreditExceedLimit => "RetFleurFairCreditExceedLimit", + Retcode::RetFleurFairCreditNotEnough => "RetFleurFairCreditNotEnough", + Retcode::RetFleurFairTokenExceedLimit => "RetFleurFairTokenExceedLimit", + Retcode::RetFleurFairTokenNotEnough => "RetFleurFairTokenNotEnough", + Retcode::RetFleurFairMinigameNotOpen => "RetFleurFairMinigameNotOpen", + Retcode::RetFleurFairMusicGameDifficultyNotUnlock => { + "RetFleurFairMusicGameDifficultyNotUnlock" + } + Retcode::RetFleurFairDungeonLocked => "RetFleurFairDungeonLocked", + Retcode::RetFleurFairDungeonPunishTime => "RetFleurFairDungeonPunishTime", + Retcode::RetFleurFairOnlyOwnerCanRestartMinigam => { + "RetFleurFairOnlyOwnerCanRestartMinigam" + } + Retcode::RetWaterSpiritCoinExceedLimit => "RetWaterSpiritCoinExceedLimit", + Retcode::RetWaterSpiritCoinNotEnough => "RetWaterSpiritCoinNotEnough", + Retcode::RetRegionSearchNoSearch => "RetRegionSearchNoSearch", + Retcode::RetRegionSearchStateError => "RetRegionSearchStateError", + Retcode::RetBlessingGiveNumInvalid => "RetBlessingGiveNumInvalid", + Retcode::RetBlessingNoGroupOrOwner => "RetBlessingNoGroupOrOwner", + Retcode::RetChannellerSlabLoopDungeonStageNotOpen => { + "RetChannellerSlabLoopDungeonStageNotOpen" + } + Retcode::RetChannellerSlabLoopDungeonNotOpen => { + "RetChannellerSlabLoopDungeonNotOpen" + } + Retcode::RetChannellerSlabLoopDungeonFirstPassRewardHasTaken => { + "RetChannellerSlabLoopDungeonFirstPassRewardHasTaken" + } + Retcode::RetChannellerSlabLoopDungeonScoreRewardHasTaken => { + "RetChannellerSlabLoopDungeonScoreRewardHasTaken" + } + Retcode::RetChannellerSlabInvalidOneOffDungeon => { + "RetChannellerSlabInvalidOneOffDungeon" + } + Retcode::RetChannellerSlabOneOffDungeonDone => { + "RetChannellerSlabOneOffDungeonDone" + } + Retcode::RetChannellerSlabOneOffDungeonStageNotOpen => { + "RetChannellerSlabOneOffDungeonStageNotOpen" + } + Retcode::RetChannellerSlabTokenExceedLimit => { + "RetChannellerSlabTokenExceedLimit" + } + Retcode::RetChannellerSlabTokenNotEnough => "RetChannellerSlabTokenNotEnough", + Retcode::RetChannellerSlabPlayerNotInOneOffDungeon => { + "RetChannellerSlabPlayerNotInOneOffDungeon" + } + Retcode::RetMistTrialSelectCharacterNumNotEnough => { + "RetMistTrialSelectCharacterNumNotEnough" + } + Retcode::RetMistTrialAlreadyUsingTrialAvatar => { + "RetMistTrialAlreadyUsingTrialAvatar" + } + Retcode::RetHideAndSeekPlayNotOpen => "RetHideAndSeekPlayNotOpen", + Retcode::RetHideAndSeekPlayMapNotOpen => "RetHideAndSeekPlayMapNotOpen", + Retcode::RetHideAndSeekPlayMapNotChosen => "RetHideAndSeekPlayMapNotChosen", + Retcode::RetSummerTimeDraftWoordExceedLimit => { + "RetSummerTimeDraftWoordExceedLimit" + } + Retcode::RetSummerTimeDraftWoordNotEnough => { + "RetSummerTimeDraftWoordNotEnough" + } + Retcode::RetSummerTimeMiniHarpastumExceedLimit => { + "RetSummerTimeMiniHarpastumExceedLimit" + } + Retcode::RetSummerTimeMiniHarpastumnotEnough => { + "RetSummerTimeMiniHarpastumnotEnough" + } + Retcode::RetBounceConjuringCoinExceedLimit => { + "RetBounceConjuringCoinExceedLimit" + } + Retcode::RetBounceConjuringCoinNotEnough => "RetBounceConjuringCoinNotEnough", + Retcode::RetChessTeachMapFinished => "RetChessTeachMapFinished", + Retcode::RetChessTeachMapUnfinished => "RetChessTeachMapUnfinished", + Retcode::RetChessCoinExceedLimit => "RetChessCoinExceedLimit", + Retcode::RetChessCoinNotEnough => "RetChessCoinNotEnough", + Retcode::RetChessInPunishTime => "RetChessInPunishTime", + Retcode::RetChessPrevMapUnfinished => "RetChessPrevMapUnfinished", + Retcode::RetChessMapLocked => "RetChessMapLocked", + Retcode::RetBlitzRushNotOpen => "RetBlitzRushNotOpen", + Retcode::RetBlitzRushDungeonNotOpen => "RetBlitzRushDungeonNotOpen", + Retcode::RetBlitzRushCoinAExceedLimit => "RetBlitzRushCoinAExceedLimit", + Retcode::RetBlitzRushCoinBExceedLimit => "RetBlitzRushCoinBExceedLimit", + Retcode::RetBlitzRushCoinANotEnough => "RetBlitzRushCoinANotEnough", + Retcode::RetBlitzRushCoinBNotEnough => "RetBlitzRushCoinBNotEnough", + Retcode::RetMiracleRingValueNotEnough => "RetMiracleRingValueNotEnough", + Retcode::RetMiracleRingCd => "RetMiracleRingCd", + Retcode::RetMiracleRingRewardNotTaken => "RetMiracleRingRewardNotTaken", + Retcode::RetMiracleRingNotDeliver => "RetMiracleRingNotDeliver", + Retcode::RetMiracleRingDeliverExceed => "RetMiracleRingDeliverExceed", + Retcode::RetMiracleRingHasCreated => "RetMiracleRingHasCreated", + Retcode::RetMiracleRingHasNotCreated => "RetMiracleRingHasNotCreated", + Retcode::RetMiracleRingNotYours => "RetMiracleRingNotYours", + Retcode::RetGadgetFoundationUnauthorized => "RetGadgetFoundationUnauthorized", + Retcode::RetGadgetFoundationSceneNotFound => { + "RetGadgetFoundationSceneNotFound" + } + Retcode::RetGadgetFoundationNotInInitState => { + "RetGadgetFoundationNotInInitState" + } + Retcode::RetGadgetFoundationBildingPointNotEnought => { + "RetGadgetFoundationBildingPointNotEnought" + } + Retcode::RetGadgetFoundationNotInBuiltState => { + "RetGadgetFoundationNotInBuiltState" + } + Retcode::RetGadgetFoundationOpNotSupported => { + "RetGadgetFoundationOpNotSupported" + } + Retcode::RetGadgetFoundationReqPlayerNotInScene => { + "RetGadgetFoundationReqPlayerNotInScene" + } + Retcode::RetGadgetFoundationLockedByAnotherPlayer => { + "RetGadgetFoundationLockedByAnotherPlayer" + } + Retcode::RetGadgetFoundationNotLocked => "RetGadgetFoundationNotLocked", + Retcode::RetGadgetFoundationDuplicateLock => { + "RetGadgetFoundationDuplicateLock" + } + Retcode::RetGadgetFoundationPlayerNotFound => { + "RetGadgetFoundationPlayerNotFound" + } + Retcode::RetGadgetFoundationPlayerGearNotFound => { + "RetGadgetFoundationPlayerGearNotFound" + } + Retcode::RetGadgetFoundationRotaionDisabled => { + "RetGadgetFoundationRotaionDisabled" + } + Retcode::RetGadgetFoundationReachDungeonGearLimit => { + "RetGadgetFoundationReachDungeonGearLimit" + } + Retcode::RetGadgetFoundationReachSingleGearLimit => { + "RetGadgetFoundationReachSingleGearLimit" + } + Retcode::RetGadgetFoundationRotationOnGoing => { + "RetGadgetFoundationRotationOnGoing" + } + Retcode::RetOpActivityBonusNotFound => "RetOpActivityBonusNotFound", + Retcode::RetOpActivityNotOpen => "RetOpActivityNotOpen", + Retcode::RetMultistagePlayPlayerNotInScene => { + "RetMultistagePlayPlayerNotInScene" + } + Retcode::RetMultistagePlayNotFound => "RetMultistagePlayNotFound", + Retcode::RetMultistagePlayInOtherStage => "RetMultistagePlayInOtherStage", + Retcode::RetCoopChapterNotOpen => "RetCoopChapterNotOpen", + Retcode::RetCoopCondNotMeet => "RetCoopCondNotMeet", + Retcode::RetCoopPointLocked => "RetCoopPointLocked", + Retcode::RetCoopNotHaveProgress => "RetCoopNotHaveProgress", + Retcode::RetCoopRewardHasTaken => "RetCoopRewardHasTaken", + Retcode::RetDraftHasActiveDraft => "RetDraftHasActiveDraft", + Retcode::RetDraftNotInMyWorld => "RetDraftNotInMyWorld", + Retcode::RetDraftNotSupportMp => "RetDraftNotSupportMp", + Retcode::RetDraftPlayerNotEnough => "RetDraftPlayerNotEnough", + Retcode::RetDraftIncorrectScene => "RetDraftIncorrectScene", + Retcode::RetDraftOtherPlayerEntering => "RetDraftOtherPlayerEntering", + Retcode::RetDraftGuestIsTransferring => "RetDraftGuestIsTransferring", + Retcode::RetDraftGuestNotInDraftScene => "RetDraftGuestNotInDraftScene", + Retcode::RetDraftInviteOverTime => "RetDraftInviteOverTime", + Retcode::RetDraftTwiceConfirmOverTimer => "RetDraftTwiceConfirmOverTimer", + Retcode::RetDraftGuestNotInWorldScene => "RetDraftGuestNotInWorldScene", + Retcode::RetHomeUnkown => "RetHomeUnkown", + Retcode::RetHomeInvalidClientParam => "RetHomeInvalidClientParam", + Retcode::RetHomeTargePlayerHasNoHome => "RetHomeTargePlayerHasNoHome", + Retcode::RetHomeNotOnline => "RetHomeNotOnline", + Retcode::RetHomePlayerFull => "RetHomePlayerFull", + Retcode::RetHomeBlocked => "RetHomeBlocked", + Retcode::RetHomeAlreadyInTargetHomeWorld => "RetHomeAlreadyInTargetHomeWorld", + Retcode::RetHomeInEditMode => "RetHomeInEditMode", + Retcode::RetHomeNotInEditMode => "RetHomeNotInEditMode", + Retcode::RetHomeHasGuest => "RetHomeHasGuest", + Retcode::RetHomeCantEnterByInEditMode => "RetHomeCantEnterByInEditMode", + Retcode::RetHomeClientParamInvalid => "RetHomeClientParamInvalid", + Retcode::RetHomePlayerNotInHomeWorld => "RetHomePlayerNotInHomeWorld", + Retcode::RetHomePlayerNotInSelfHomeWorld => "RetHomePlayerNotInSelfHomeWorld", + Retcode::RetHomeNotFoundInMem => "RetHomeNotFoundInMem", + Retcode::RetHomePlayerInHomeRoomScene => "RetHomePlayerInHomeRoomScene", + Retcode::RetHomeHomeRefuseGuestEnter => "RetHomeHomeRefuseGuestEnter", + Retcode::RetHomeOwnerRefuseToEnterHome => "RetHomeOwnerRefuseToEnterHome", + Retcode::RetHomeOwnerOffline => "RetHomeOwnerOffline", + Retcode::RetHomeFurnitureExceedLimit => "RetHomeFurnitureExceedLimit", + Retcode::RetHomeFurnitureCountNotEnough => "RetHomeFurnitureCountNotEnough", + Retcode::RetHomeInTryEnterProcess => "RetHomeInTryEnterProcess", + Retcode::RetHomeAlreadyInTargetScene => "RetHomeAlreadyInTargetScene", + Retcode::RetHomeCoinExceedLimit => "RetHomeCoinExceedLimit", + Retcode::RetHomeCoinNotEnough => "RetHomeCoinNotEnough", + Retcode::RetHomeModuleNotUnlocked => "RetHomeModuleNotUnlocked", + Retcode::RetHomeCurModuleClosed => "RetHomeCurModuleClosed", + Retcode::RetHomeFurnitureSuiteNotUnlocked => { + "RetHomeFurnitureSuiteNotUnlocked" + } + Retcode::RetHomeInMatch => "RetHomeInMatch", + Retcode::RetHomeInCombat => "RetHomeInCombat", + Retcode::RetHomeEditModeCd => "RetHomeEditModeCd", + Retcode::RetHomeUpdateFurnitureCd => "RetHomeUpdateFurnitureCd", + Retcode::RetHomeBlockFurnitureLimit => "RetHomeBlockFurnitureLimit", + Retcode::RetHomeNotSupport => "RetHomeNotSupport", + Retcode::RetHomeStateNotOpen => "RetHomeStateNotOpen", + Retcode::RetHomeTargetStateNotOpen => "RetHomeTargetStateNotOpen", + Retcode::RetHomeApplyEnterOtherHomeFail => "RetHomeApplyEnterOtherHomeFail", + Retcode::RetHomeSaveNoMainHouse => "RetHomeSaveNoMainHouse", + Retcode::RetHomeInDungeon => "RetHomeInDungeon", + Retcode::RetHomeAnyGalleryStarted => "RetHomeAnyGalleryStarted", + Retcode::RetHomeQuestBlockHome => "RetHomeQuestBlockHome", + Retcode::RetHomeWaitingPriorCheck => "RetHomeWaitingPriorCheck", + Retcode::RetHomePersistentCheckFail => "RetHomePersistentCheckFail", + Retcode::RetHomeFindOnlineHomeFail => "RetHomeFindOnlineHomeFail", + Retcode::RetHomeJoinSceneFail => "RetHomeJoinSceneFail", + Retcode::RetHomeMaxPlayer => "RetHomeMaxPlayer", + Retcode::RetHomeInTransfer => "RetHomeInTransfer", + Retcode::RetHomeAnyHomeGalleryStarted => "RetHomeAnyHomeGalleryStarted", + Retcode::RetHomeCanNotEnterInAudit => "RetHomeCanNotEnterInAudit", + Retcode::RetFurnitureMakeIndexError => "RetFurnitureMakeIndexError", + Retcode::RetFurnitureMakeLocked => "RetFurnitureMakeLocked", + Retcode::RetFurnitureMakeConfigError => "RetFurnitureMakeConfigError", + Retcode::RetFurnitureMakeSlotFull => "RetFurnitureMakeSlotFull", + Retcode::RetFurnitureMakeAddFurnitureFail => { + "RetFurnitureMakeAddFurnitureFail" + } + Retcode::RetFurnitureMakeUnfinish => "RetFurnitureMakeUnfinish", + Retcode::RetFurnitureMakeIsFinish => "RetFurnitureMakeIsFinish", + Retcode::RetFurnitureMakeNotInCorrectHome => { + "RetFurnitureMakeNotInCorrectHome" + } + Retcode::RetFurnitureMakeNoCount => "RetFurnitureMakeNoCount", + Retcode::RetFurnitureMakeAccelerateLimit => "RetFurnitureMakeAccelerateLimit", + Retcode::RetFurnitureMakeNoMakeData => "RetFurnitureMakeNoMakeData", + Retcode::RetHomeLimitedShopClose => "RetHomeLimitedShopClose", + Retcode::RetHomeAvatarNotShow => "RetHomeAvatarNotShow", + Retcode::RetHomeEventCondNotSatisfied => "RetHomeEventCondNotSatisfied", + Retcode::RetHomeInvalidArrangeAnimalParam => { + "RetHomeInvalidArrangeAnimalParam" + } + Retcode::RetHomeInvalidArrangeNpcParam => "RetHomeInvalidArrangeNpcParam", + Retcode::RetHomeInvalidArrangeSuiteParam => "RetHomeInvalidArrangeSuiteParam", + Retcode::RetHomeInvalidArrangeMainHouseParam => { + "RetHomeInvalidArrangeMainHouseParam" + } + Retcode::RetHomeAvatarStateNotOpen => "RetHomeAvatarStateNotOpen", + Retcode::RetHomePlantFieldNotEmpty => "RetHomePlantFieldNotEmpty", + Retcode::RetHomePlantFieldEmpty => "RetHomePlantFieldEmpty", + Retcode::RetHomePlantFieldTypeError => "RetHomePlantFieldTypeError", + Retcode::RetHomePlantTimeNotEnough => "RetHomePlantTimeNotEnough", + Retcode::RetHomePlantSubFieldNumNotEnough => { + "RetHomePlantSubFieldNumNotEnough" + } + Retcode::RetHomePlantFieldParamError => "RetHomePlantFieldParamError", + Retcode::RetHomeFurnitureGuidError => "RetHomeFurnitureGuidError", + Retcode::RetHomeFurnitureArrangeLimit => "RetHomeFurnitureArrangeLimit", + Retcode::RetHomeFishFarmingLimit => "RetHomeFishFarmingLimit", + Retcode::RetHomeFishCountNotEnough => "RetHomeFishCountNotEnough", + Retcode::RetHomeFurnitureCostLimit => "RetHomeFurnitureCostLimit", + Retcode::RetHomeCustomFurnitureInvalid => "RetHomeCustomFurnitureInvalid", + Retcode::RetHomeInvalidArrangeGroupParam => "RetHomeInvalidArrangeGroupParam", + Retcode::RetHomeFurnitureArrangeGroupLimit => { + "RetHomeFurnitureArrangeGroupLimit" + } + Retcode::RetHomePictureFrameCoopCgGenderError => { + "RetHomePictureFrameCoopCgGenderError" + } + Retcode::RetHomePictureFrameCoopCgNotUnlock => { + "RetHomePictureFrameCoopCgNotUnlock" + } + Retcode::RetHomeFurnitureCannotArrange => "RetHomeFurnitureCannotArrange", + Retcode::RetHomeFurnitureInDuplicateSuite => { + "RetHomeFurnitureInDuplicateSuite" + } + Retcode::RetHomeFurnitureCustomSuiteTooSmall => { + "RetHomeFurnitureCustomSuiteTooSmall" + } + Retcode::RetHomeFurnitureCustomSuiteTooBig => { + "RetHomeFurnitureCustomSuiteTooBig" + } + Retcode::RetHomeFurnitureSuiteExceedLimit => { + "RetHomeFurnitureSuiteExceedLimit" + } + Retcode::RetHomeFurnitureCustomSuiteExceedLimit => { + "RetHomeFurnitureCustomSuiteExceedLimit" + } + Retcode::RetHomeFurnitureCustomSuiteInvalidSurfaceType => { + "RetHomeFurnitureCustomSuiteInvalidSurfaceType" + } + Retcode::RetHomeBgmIdNotFound => "RetHomeBgmIdNotFound", + Retcode::RetHomeBgmNotUnlocked => "RetHomeBgmNotUnlocked", + Retcode::RetHomeBgmFurnitureNotFound => "RetHomeBgmFurnitureNotFound", + Retcode::RetHomeBgmNotSupportByCurScene => "RetHomeBgmNotSupportByCurScene", + Retcode::RetHomeLimitedShopGoodsDisable => "RetHomeLimitedShopGoodsDisable", + Retcode::RetHomeWorldWoodMaterialEmpty => "RetHomeWorldWoodMaterialEmpty", + Retcode::RetHomeWorldWoodMaterialNotFound => { + "RetHomeWorldWoodMaterialNotFound" + } + Retcode::RetHomeWorldWoodMaterialCountInvalid => { + "RetHomeWorldWoodMaterialCountInvalid" + } + Retcode::RetHomeWorldWoodExchangeExceedLimit => { + "RetHomeWorldWoodExchangeExceedLimit" + } + Retcode::RetHomeBlueprintSearchSelf => "RetHomeBlueprintSearchSelf", + Retcode::RetHomeBlueprintShareCodeInvalid => { + "RetHomeBlueprintShareCodeInvalid" + } + Retcode::RetHomeBlueprintNotExist => "RetHomeBlueprintNotExist", + Retcode::RetHomeBlueprintSlotHasExistShareCode => { + "RetHomeBlueprintSlotHasExistShareCode" + } + Retcode::RetHomeBlueprintSlotNotExistShareCode => { + "RetHomeBlueprintSlotNotExistShareCode" + } + Retcode::RetHomeBlueprintCanNotCreateInAudit => { + "RetHomeBlueprintCanNotCreateInAudit" + } + Retcode::RetHomeBlockNotUnlocked => "RetHomeBlockNotUnlocked", + Retcode::RetHomeBlueprintCreateCd => "RetHomeBlueprintCreateCd", + Retcode::RetHomeBlueprintSetOptionCd => "RetHomeBlueprintSetOptionCd", + Retcode::RetHomeBlueprintNotAllowFriendCopy => { + "RetHomeBlueprintNotAllowFriendCopy" + } + Retcode::RetHomeFurniturePosUnderDieY => "RetHomeFurniturePosUnderDieY", + Retcode::RetHomeBlueprintGenShareCodeFail => { + "RetHomeBlueprintGenShareCodeFail" + } + Retcode::RetHomeBlueprintSearchCd => "RetHomeBlueprintSearchCd", + Retcode::RetHomeBlueprintPreviewCd => "RetHomeBlueprintPreviewCd", + Retcode::RetHomeBlueprintPreviewSceneNotMatch => { + "RetHomeBlueprintPreviewSceneNotMatch" + } + Retcode::RetHomeBlueprintSlotFull => "RetHomeBlueprintSlotFull", + Retcode::RetHomeBlueprintOwnerRejectCopy => "RetHomeBlueprintOwnerRejectCopy", + Retcode::RetHomeBlueprintSaveToSlotCd => "RetHomeBlueprintSaveToSlotCd", + Retcode::RetHomeBlueprintReplyTimeout => "RetHomeBlueprintReplyTimeout", + Retcode::RetSumoActivityStageNotOpen => "RetSumoActivityStageNotOpen", + Retcode::RetSumoActivitySwitchTeamInCd => "RetSumoActivitySwitchTeamInCd", + Retcode::RetSumoActivityTeamNumIncorrect => "RetSumoActivityTeamNumIncorrect", + Retcode::RetLunaRiteActivityAreaIdError => "RetLunaRiteActivityAreaIdError", + Retcode::RetLunaRiteActivityBattleNotFinish => { + "RetLunaRiteActivityBattleNotFinish" + } + Retcode::RetLunaRiteActivityAlreadySacrifice => { + "RetLunaRiteActivityAlreadySacrifice" + } + Retcode::RetLunaRiteActivityAlreadyTakeReward => { + "RetLunaRiteActivityAlreadyTakeReward" + } + Retcode::RetLunaRiteActivitySacrificeNotEnough => { + "RetLunaRiteActivitySacrificeNotEnough" + } + Retcode::RetLunaRiteActivitySearchingCondNotMeet => { + "RetLunaRiteActivitySearchingCondNotMeet" + } + Retcode::RetDigGadgetConfigIdNotMatch => "RetDigGadgetConfigIdNotMatch", + Retcode::RetDigFindNearestPosFail => "RetDigFindNearestPosFail", + Retcode::RetMusicGameLevelNotOpen => "RetMusicGameLevelNotOpen", + Retcode::RetMusicGameLevelNotUnlock => "RetMusicGameLevelNotUnlock", + Retcode::RetMusicGameLevelNotStarted => "RetMusicGameLevelNotStarted", + Retcode::RetMusicGameLevelConfigNotFound => "RetMusicGameLevelConfigNotFound", + Retcode::RetMusicGameLevelIdNotMatch => "RetMusicGameLevelIdNotMatch", + Retcode::RetRoguelikeCoinANotEnough => "RetRoguelikeCoinANotEnough", + Retcode::RetRoguelikeCoinBNotEnough => "RetRoguelikeCoinBNotEnough", + Retcode::RetRoguelikeCoinCNotEnough => "RetRoguelikeCoinCNotEnough", + Retcode::RetRoguelikeCoinAExceedLimit => "RetRoguelikeCoinAExceedLimit", + Retcode::RetRoguelikeCoinBExceedLimit => "RetRoguelikeCoinBExceedLimit", + Retcode::RetRoguelikeCoinCExceedLimit => "RetRoguelikeCoinCExceedLimit", + Retcode::RetRoguelikeRuneCountNotEnough => "RetRoguelikeRuneCountNotEnough", + Retcode::RetRoguelikeNotInRogueDungeon => "RetRoguelikeNotInRogueDungeon", + Retcode::RetRoguelikeCellNotFound => "RetRoguelikeCellNotFound", + Retcode::RetRoguelikeCellTypeIncorrect => "RetRoguelikeCellTypeIncorrect", + Retcode::RetRoguelikeCellAlreadyFinished => "RetRoguelikeCellAlreadyFinished", + Retcode::RetRoguelikeDungeonHaveUnfinishedProgress => { + "RetRoguelikeDungeonHaveUnfinishedProgress" + } + Retcode::RetRoguelikeStageNotFinished => "RetRoguelikeStageNotFinished", + Retcode::RetRoguelikeStageFirstPassRewardHasTaken => { + "RetRoguelikeStageFirstPassRewardHasTaken" + } + Retcode::RetRoguelikeActivityContentClosed => { + "RetRoguelikeActivityContentClosed" + } + Retcode::RetRoguelikeDungeonPreQuestNotFinished => { + "RetRoguelikeDungeonPreQuestNotFinished" + } + Retcode::RetRoguelikeDungeonNotOpen => "RetRoguelikeDungeonNotOpen", + Retcode::RetRoguelikeSprintIsBanned => "RetRoguelikeSprintIsBanned", + Retcode::RetRoguelikeDungeonPreStageNotFinished => { + "RetRoguelikeDungeonPreStageNotFinished" + } + Retcode::RetRoguelikeAllAvatarDieCannotResume => { + "RetRoguelikeAllAvatarDieCannotResume" + } + Retcode::RetPlantFlowerAlreadyTakeSeed => "RetPlantFlowerAlreadyTakeSeed", + Retcode::RetPlantFlowerFriendHaveFlowerLimit => { + "RetPlantFlowerFriendHaveFlowerLimit" + } + Retcode::RetPlantFlowerCanGiveFlowerNotEnough => { + "RetPlantFlowerCanGiveFlowerNotEnough" + } + Retcode::RetPlantFlowerWishFlowerKindsLimit => { + "RetPlantFlowerWishFlowerKindsLimit" + } + Retcode::RetPlantFlowerHaveFlowerNotEnough => { + "RetPlantFlowerHaveFlowerNotEnough" + } + Retcode::RetPlantFlowerFlowerCombinationInvalid => { + "RetPlantFlowerFlowerCombinationInvalid" + } + Retcode::RetHachiDungeonNotValid => "RetHachiDungeonNotValid", + Retcode::RetHachiDungeonStageNotOpen => "RetHachiDungeonStageNotOpen", + Retcode::RetHachiDungeonTeammateNotPass => "RetHachiDungeonTeammateNotPass", + Retcode::RetWinterCampCoinANotEnough => "RetWinterCampCoinANotEnough", + Retcode::RetWinterCampCoinBNotEnough => "RetWinterCampCoinBNotEnough", + Retcode::RetWinterCampCoinAExceedLimit => "RetWinterCampCoinAExceedLimit", + Retcode::RetWinterCampCoinBExceedLimit => "RetWinterCampCoinBExceedLimit", + Retcode::RetWinterCampWishIdInvalid => "RetWinterCampWishIdInvalid", + Retcode::RetWinterCampNotFoundRecvItemData => { + "RetWinterCampNotFoundRecvItemData" + } + Retcode::RetWinterCampFriendItemCountOverflow => { + "RetWinterCampFriendItemCountOverflow" + } + Retcode::RetWinterCampSelectItemDataInvalid => { + "RetWinterCampSelectItemDataInvalid" + } + Retcode::RetWinterCampItemListEmpty => "RetWinterCampItemListEmpty", + Retcode::RetWinterCampRewardAlreadyTaken => "RetWinterCampRewardAlreadyTaken", + Retcode::RetWinterCampStageNotFinish => "RetWinterCampStageNotFinish", + Retcode::RetWinterCampGadgetInvalid => "RetWinterCampGadgetInvalid", + Retcode::RetLanternRiteCoinANotEnough => "RetLanternRiteCoinANotEnough", + Retcode::RetLanternRiteCoinBNotEnough => "RetLanternRiteCoinBNotEnough", + Retcode::RetLanternRiteCoinCNotEnough => "RetLanternRiteCoinCNotEnough", + Retcode::RetLanternRiteCoinAExceedLimit => "RetLanternRiteCoinAExceedLimit", + Retcode::RetLanternRiteCoinBExceedLimit => "RetLanternRiteCoinBExceedLimit", + Retcode::RetLanternRiteCoinCExceedLimit => "RetLanternRiteCoinCExceedLimit", + Retcode::RetLanternRiteProjectionContentClosed => { + "RetLanternRiteProjectionContentClosed" + } + Retcode::RetLanternRiteProjectionCanNotStart => { + "RetLanternRiteProjectionCanNotStart" + } + Retcode::RetLanternRiteDungeonNotOpen => "RetLanternRiteDungeonNotOpen", + Retcode::RetLanternRiteHasTakenSkinReward => { + "RetLanternRiteHasTakenSkinReward" + } + Retcode::RetLanternRiteNotFinishedSkinWatchers => { + "RetLanternRiteNotFinishedSkinWatchers" + } + Retcode::RetLanternRiteFireworksContentClosed => { + "RetLanternRiteFireworksContentClosed" + } + Retcode::RetLanternRiteFireworksChallengeNotStart => { + "RetLanternRiteFireworksChallengeNotStart" + } + Retcode::RetLanternRiteFireworksReformParamError => { + "RetLanternRiteFireworksReformParamError" + } + Retcode::RetLanternRiteFireworksReformSkillLock => { + "RetLanternRiteFireworksReformSkillLock" + } + Retcode::RetLanternRiteFireworksReformStaminaNotEnough => { + "RetLanternRiteFireworksReformStaminaNotEnough" + } + Retcode::RetPotionActivityStageNotOpen => "RetPotionActivityStageNotOpen", + Retcode::RetPotionActivityLevelHavePass => "RetPotionActivityLevelHavePass", + Retcode::RetPotionActivityTeamNumIncorrect => { + "RetPotionActivityTeamNumIncorrect" + } + Retcode::RetPotionActivityAvatarInCd => "RetPotionActivityAvatarInCd", + Retcode::RetPotionActivityBuffInCd => "RetPotionActivityBuffInCd", + Retcode::RetIrodoriPoetryInvalidLineId => "RetIrodoriPoetryInvalidLineId", + Retcode::RetIrodoriPoetryInvalidThemeId => "RetIrodoriPoetryInvalidThemeId", + Retcode::RetIrodoriPoetryNotGetAllInspiration => { + "RetIrodoriPoetryNotGetAllInspiration" + } + Retcode::RetIrodoriPoetryInspirationReachLimie => { + "RetIrodoriPoetryInspirationReachLimie" + } + Retcode::RetIrodoriPoetryEntityAlreadyScanned => { + "RetIrodoriPoetryEntityAlreadyScanned" + } + Retcode::RetActivityBannerAlreadyCleared => "RetActivityBannerAlreadyCleared", + Retcode::RetIrodoriChessNotOpen => "RetIrodoriChessNotOpen", + Retcode::RetIrodoriChessLevelNotOpen => "RetIrodoriChessLevelNotOpen", + Retcode::RetIrodoriChessMapNotOpen => "RetIrodoriChessMapNotOpen", + Retcode::RetIrodoriChessMapCardAlreadyEquiped => { + "RetIrodoriChessMapCardAlreadyEquiped" + } + Retcode::RetIrodoriChessEquipCardExceedLimit => { + "RetIrodoriChessEquipCardExceedLimit" + } + Retcode::RetIrodoriChessMapCardNotEquiped => { + "RetIrodoriChessMapCardNotEquiped" + } + Retcode::RetIrodoriChessEnterFailCardExceedLimit => { + "RetIrodoriChessEnterFailCardExceedLimit" + } + Retcode::RetActivityFriendHaveGiftLimit => "RetActivityFriendHaveGiftLimit", + Retcode::RetGachaActivityHaveRewardLimit => "RetGachaActivityHaveRewardLimit", + Retcode::RetGachaActivityHaveRobotLimit => "RetGachaActivityHaveRobotLimit", + Retcode::RetSummerTimeV2CoinExceedLimit => "RetSummerTimeV2CoinExceedLimit", + Retcode::RetSummerTimeV2CoinNotEnough => "RetSummerTimeV2CoinNotEnough", + Retcode::RetSummerTimeV2DungeonStageNotOpen => { + "RetSummerTimeV2DungeonStageNotOpen" + } + Retcode::RetSummerTimeV2PrevDungeonNotComplete => { + "RetSummerTimeV2PrevDungeonNotComplete" + } + Retcode::RetRogueDiaryAvatarDeath => "RetRogueDiaryAvatarDeath", + Retcode::RetRogueDiaryAvatarTired => "RetRogueDiaryAvatarTired", + Retcode::RetRogueDiaryAvatarDuplicated => "RetRogueDiaryAvatarDuplicated", + Retcode::RetRogueDiaryCoinNotEnough => "RetRogueDiaryCoinNotEnough", + Retcode::RetRogueDiaryVirtualCoinExceedLimit => { + "RetRogueDiaryVirtualCoinExceedLimit" + } + Retcode::RetRogueDiaryVirtualCoinNotEnough => { + "RetRogueDiaryVirtualCoinNotEnough" + } + Retcode::RetRogueDiaryContentClosed => "RetRogueDiaryContentClosed", + Retcode::RetGravenInnocenceCoinANotEnough => { + "RetGravenInnocenceCoinANotEnough" + } + Retcode::RetGravenInnocenceCoinBNotEnough => { + "RetGravenInnocenceCoinBNotEnough" + } + Retcode::RetGravenInnocenceCoinAExceedLimit => { + "RetGravenInnocenceCoinAExceedLimit" + } + Retcode::RetGravenInnocenceCoinBExceedLimit => { + "RetGravenInnocenceCoinBExceedLimit" + } + Retcode::RetIslandPartyStageNotOpen => "RetIslandPartyStageNotOpen", + Retcode::RetWindFieldStageNotOpen => "RetWindFieldStageNotOpen", + Retcode::RetVintageContentClosed => "RetVintageContentClosed", + Retcode::RetVintageStoreContentFinished => "RetVintageStoreContentFinished", + Retcode::RetVintageStoreAttrTooSmall => "RetVintageStoreAttrTooSmall", + Retcode::RetVintageStoreAttrTooLarge => "RetVintageStoreAttrTooLarge", + Retcode::RetVintageStoreContentInterrupt => "RetVintageStoreContentInterrupt", + Retcode::RetVintageVirtualCoinNotEnough => "RetVintageVirtualCoinNotEnough", + Retcode::RetVintageStoreAttrLessThanZero => "RetVintageStoreAttrLessThanZero", + Retcode::RetFungusFighterCaptureCoinNotEnough => { + "RetFungusFighterCaptureCoinNotEnough" + } + Retcode::RetFungusFighterTrainingCoinNotEnough => { + "RetFungusFighterTrainingCoinNotEnough" + } + Retcode::RetFungusFighterCaptureCoinExceedLimit => { + "RetFungusFighterCaptureCoinExceedLimit" + } + Retcode::RetFungusFighterTrainingCoinExceedLimit => { + "RetFungusFighterTrainingCoinExceedLimit" + } + Retcode::RetFungusFighterContentClosed => "RetFungusFighterContentClosed", + Retcode::RetFungusFighterPlotStageNotOpen => { + "RetFungusFighterPlotStageNotOpen" + } + Retcode::RetFungusFighterFungusIdConfigNotValid => { + "RetFungusFighterFungusIdConfigNotValid" + } + Retcode::RetFungusFighterFungusNotCultivated => { + "RetFungusFighterFungusNotCultivated" + } + Retcode::RetFungusFighterTrainingDungeonNotOpen => { + "RetFungusFighterTrainingDungeonNotOpen" + } + Retcode::RetEffigyChallengeV2CoinNotEnough => { + "RetEffigyChallengeV2CoinNotEnough" + } + Retcode::RetEffigyChallengeV2CoinExceedLimit => { + "RetEffigyChallengeV2CoinExceedLimit" + } + Retcode::RetCharAmusementStageNotOpen => "RetCharAmusementStageNotOpen", + Retcode::RetCoinCollectLevelNotOpen => "RetCoinCollectLevelNotOpen", + Retcode::RetCoinCollectNotEquipWidget => "RetCoinCollectNotEquipWidget", + Retcode::RetCoinCollectSceneNotMatch => "RetCoinCollectSceneNotMatch", + Retcode::RetCoinCollectCantEnterMpMode => "RetCoinCollectCantEnterMpMode", + Retcode::RetCoinCollectPlayerNumFail => "RetCoinCollectPlayerNumFail", + Retcode::RetBrickBreakerPlayerNumFail => "RetBrickBreakerPlayerNumFail", + Retcode::RetBrickBreakerStageNotUnlock => "RetBrickBreakerStageNotUnlock", + Retcode::RetBrickBreakerNormalLevelNotFinish => { + "RetBrickBreakerNormalLevelNotFinish" + } + Retcode::RetBrickBreakerPreLevelNotFinish => { + "RetBrickBreakerPreLevelNotFinish" + } + Retcode::RetBrickBreakerPreStageNotFinish => { + "RetBrickBreakerPreStageNotFinish" + } + Retcode::RetBrickBreakerWorldLevelNotUnlock => { + "RetBrickBreakerWorldLevelNotUnlock" + } + Retcode::RetBrickBreakerDungeonLevelNotUnlock => { + "RetBrickBreakerDungeonLevelNotUnlock" + } + Retcode::RetBrickBreakerCoinNotEnough => "RetBrickBreakerCoinNotEnough", + Retcode::RetBrickBreakerCoinExceedLimit => "RetBrickBreakerCoinExceedLimit", + Retcode::RetTeamchainWorldInMpMode => "RetTeamchainWorldInMpMode", + Retcode::RetLanV3BoatPlayerNumNotValid => "RetLanV3BoatPlayerNumNotValid", + Retcode::RetLanV3BoatPlayNotOpen => "RetLanV3BoatPlayNotOpen", + Retcode::RetLanV3BoatNotInWorldScene => "RetLanV3BoatNotInWorldScene", + Retcode::RetFleurFairV2PacmanPlayNotOpen => "RetFleurFairV2PacmanPlayNotOpen", + Retcode::RetFleurFairV2PacmanPlayerNumIncorrect => { + "RetFleurFairV2PacmanPlayerNumIncorrect" + } + Retcode::RetFleurFairV2CoinNotEnough => "RetFleurFairV2CoinNotEnough", + Retcode::RetFleurFairV2CoinExceedLimit => "RetFleurFairV2CoinExceedLimit", + Retcode::RetAkaFesRhythmLevelNotOpen => "RetAkaFesRhythmLevelNotOpen", + Retcode::RetAkaFesRhythmGalleryInitFail => "RetAkaFesRhythmGalleryInitFail", + Retcode::RetAkaFesRhythmNotInExpectedDungeon => { + "RetAkaFesRhythmNotInExpectedDungeon" + } + Retcode::RetAkaFesReasoningLevelNotOpen => "RetAkaFesReasoningLevelNotOpen", + Retcode::RetAkaFesAstrolabeLevelNotOpen => "RetAkaFesAstrolabeLevelNotOpen", + Retcode::RetAkaFesAstrolabePreLevelNotFinish => { + "RetAkaFesAstrolabePreLevelNotFinish" + } + Retcode::RetEffigyChallengeV4LevelNotOpen => { + "RetEffigyChallengeV4LevelNotOpen" + } + Retcode::RetEffigyChallengeV4GuestNotReady => { + "RetEffigyChallengeV4GuestNotReady" + } + Retcode::RetEffigyChallengeV4DuplicateAvatar => { + "RetEffigyChallengeV4DuplicateAvatar" + } + Retcode::RetJourneyActivityPickParamError => { + "RetJourneyActivityPickParamError" + } + Retcode::RetJourneyActivityPickCondNotMeet => { + "RetJourneyActivityPickCondNotMeet" + } + Retcode::RetJourneyActivityCoinNotEnough => "RetJourneyActivityCoinNotEnough", + Retcode::RetJourneyActivityCoinExceedLimit => { + "RetJourneyActivityCoinExceedLimit" + } + Retcode::RetPoetryFesPitchPotStageNotOpen => { + "RetPoetryFesPitchPotStageNotOpen" + } + Retcode::RetFilmfesBallGamePlayerCountNotEnough => { + "RetFilmfesBallGamePlayerCountNotEnough" + } + Retcode::RetMpFilmfestShootingOngoing => "RetMpFilmfestShootingOngoing", + Retcode::RetFilmfesBallGameIsLocked => "RetFilmfesBallGameIsLocked", + Retcode::RetTreasureHuntV4CoinNotEnough => "RetTreasureHuntV4CoinNotEnough", + Retcode::RetTreasureHuntV4CoinExceedLimit => { + "RetTreasureHuntV4CoinExceedLimit" + } + Retcode::RetLostSamachurlSneakLevelNotOpen => { + "RetLostSamachurlSneakLevelNotOpen" + } + Retcode::RetLostSamachurlBossLevelNotOpen => { + "RetLostSamachurlBossLevelNotOpen" + } + Retcode::RetLanV4PartyLionPlayerCountNotEnough => { + "RetLanV4PartyLionPlayerCountNotEnough" + } + Retcode::RetLanV4PartyLionLevelNotOpen => "RetLanV4PartyLionLevelNotOpen", + Retcode::RetActivityContentClosed => "RetActivityContentClosed", + Retcode::RetActivityClientPlayBanMp => "RetActivityClientPlayBanMp", + Retcode::RetActivityClientPlayFrequencyError => { + "RetActivityClientPlayFrequencyError" + } + Retcode::RetActivityClientPlayOtherPlayIsRunning => { + "RetActivityClientPlayOtherPlayIsRunning" + } + Retcode::RetActivityClientPlayDuplicateStart => { + "RetActivityClientPlayDuplicateStart" + } + Retcode::RetNotInFishing => "RetNotInFishing", + Retcode::RetFishStateError => "RetFishStateError", + Retcode::RetFishBaitLimit => "RetFishBaitLimit", + Retcode::RetFishingMaxDistance => "RetFishingMaxDistance", + Retcode::RetFishingInCombat => "RetFishingInCombat", + Retcode::RetFishingBattleTooShort => "RetFishingBattleTooShort", + Retcode::RetFishGoneAway => "RetFishGoneAway", + Retcode::RetCanNotEditOtherDungeon => "RetCanNotEditOtherDungeon", + Retcode::RetCustomDungeonDismatch => "RetCustomDungeonDismatch", + Retcode::RetNoCustomDungeonData => "RetNoCustomDungeonData", + Retcode::RetBuildCustomDungeonFail => "RetBuildCustomDungeonFail", + Retcode::RetCustomDungeonRoomCheckFail => "RetCustomDungeonRoomCheckFail", + Retcode::RetCustomDungeonSaveMayFail => "RetCustomDungeonSaveMayFail", + Retcode::RetNotInCustomDungeon => "RetNotInCustomDungeon", + Retcode::RetCustomDungeonInternalFail => "RetCustomDungeonInternalFail", + Retcode::RetCustomDungeonCanNotTry => "RetCustomDungeonCanNotTry", + Retcode::RetCustomDungeonNoStartRoom => "RetCustomDungeonNoStartRoom", + Retcode::RetCustomDungeonNoRoomData => "RetCustomDungeonNoRoomData", + Retcode::RetCustomDungeonSaveTooFrequent => "RetCustomDungeonSaveTooFrequent", + Retcode::RetCustomDungeonNotSelfPass => "RetCustomDungeonNotSelfPass", + Retcode::RetCustomDungeonLackCoin => "RetCustomDungeonLackCoin", + Retcode::RetCustomDungeonNoFinishBrick => "RetCustomDungeonNoFinishBrick", + Retcode::RetCustomDungeonMultiFinish => "RetCustomDungeonMultiFinish", + Retcode::RetCustomDungeonNotPublished => "RetCustomDungeonNotPublished", + Retcode::RetCustomDungeonFullStore => "RetCustomDungeonFullStore", + Retcode::RetCustomDungeonStoreRepeat => "RetCustomDungeonStoreRepeat", + Retcode::RetCustomDungeonCanNotStoreSelf => "RetCustomDungeonCanNotStoreSelf", + Retcode::RetCustomDungeonNotSaveSucc => "RetCustomDungeonNotSaveSucc", + Retcode::RetCustomDungeonCanNotLikeSelf => "RetCustomDungeonCanNotLikeSelf", + Retcode::RetCustomDungeonNotFound => "RetCustomDungeonNotFound", + Retcode::RetCustomDungeonInvalidSetting => "RetCustomDungeonInvalidSetting", + Retcode::RetCustomDungeonNoFinishSetting => "RetCustomDungeonNoFinishSetting", + Retcode::RetCustomDungeonSaveNothing => "RetCustomDungeonSaveNothing", + Retcode::RetCustomDungeonNotInGroup => "RetCustomDungeonNotInGroup", + Retcode::RetCustomDungeonNotOfficial => "RetCustomDungeonNotOfficial", + Retcode::RetCustomDungeonLifeNumError => "RetCustomDungeonLifeNumError", + Retcode::RetCustomDungeonNoOpenRoom => "RetCustomDungeonNoOpenRoom", + Retcode::RetCustomDungeonBrickExceedLimit => { + "RetCustomDungeonBrickExceedLimit" + } + Retcode::RetCustomDungeonOfficialNotUnlock => { + "RetCustomDungeonOfficialNotUnlock" + } + Retcode::RetCanNotEditOfficialSetting => "RetCanNotEditOfficialSetting", + Retcode::RetCustomDungeonBanPublish => "RetCustomDungeonBanPublish", + Retcode::RetCustomDungeonCanNotReplay => "RetCustomDungeonCanNotReplay", + Retcode::RetCustomDungeonNotOpenGroup => "RetCustomDungeonNotOpenGroup", + Retcode::RetCustomDungeonMaxEditNum => "RetCustomDungeonMaxEditNum", + Retcode::RetCustomDungeonCanNotOutStuck => "RetCustomDungeonCanNotOutStuck", + Retcode::RetCustomDungeonMaxTag => "RetCustomDungeonMaxTag", + Retcode::RetCustomDungeonInvalidTag => "RetCustomDungeonInvalidTag", + Retcode::RetCustomDungeonMaxCost => "RetCustomDungeonMaxCost", + Retcode::RetCustomDungeonRequestTooFrequent => { + "RetCustomDungeonRequestTooFrequent" + } + Retcode::RetCustomDungeonNotOpen => "RetCustomDungeonNotOpen", + Retcode::RetShareCdIdError => "RetShareCdIdError", + Retcode::RetShareCdIndexError => "RetShareCdIndexError", + Retcode::RetShareCdInCd => "RetShareCdInCd", + Retcode::RetShareCdTokenNotEnough => "RetShareCdTokenNotEnough", + Retcode::RetUgcDismatch => "RetUgcDismatch", + Retcode::RetUgcDataNotFound => "RetUgcDataNotFound", + Retcode::RetUgcBriefNotFound => "RetUgcBriefNotFound", + Retcode::RetUgcDisabled => "RetUgcDisabled", + Retcode::RetUgcLimited => "RetUgcLimited", + Retcode::RetUgcLocked => "RetUgcLocked", + Retcode::RetUgcNotAuth => "RetUgcNotAuth", + Retcode::RetUgcNotOpen => "RetUgcNotOpen", + Retcode::RetUgcBanPublish => "RetUgcBanPublish", + Retcode::RetUgcMusicExceedLimit => "RetUgcMusicExceedLimit", + Retcode::RetUgcMusicSaveTooFrequent => "RetUgcMusicSaveTooFrequent", + Retcode::RetUgcMusicStoreFull => "RetUgcMusicStoreFull", + Retcode::RetUgcMusicStoreRepeat => "RetUgcMusicStoreRepeat", + Retcode::RetUgcMusicStoreTooFrequent => "RetUgcMusicStoreTooFrequent", + Retcode::RetUgcMusicSearchNotFound => "RetUgcMusicSearchNotFound", + Retcode::RetUgcMusicLikeTooFrequent => "RetUgcMusicLikeTooFrequent", + Retcode::RetUgcMusicRecommendTooFrequent => "RetUgcMusicRecommendTooFrequent", + Retcode::RetUgcMusicImportNotAllow => "RetUgcMusicImportNotAllow", + Retcode::RetUgcMusicImportNotFound => "RetUgcMusicImportNotFound", + Retcode::RetUgcMusicSetOptionTooFrequent => "RetUgcMusicSetOptionTooFrequent", + Retcode::RetUgcMusicImportTooFrequent => "RetUgcMusicImportTooFrequent", + Retcode::RetUgcMusicGenShareCodeFail => "RetUgcMusicGenShareCodeFail", + Retcode::RetUgcMusicCancelStoreRepeat => "RetUgcMusicCancelStoreRepeat", + Retcode::RetCompoundBoostItemNotExist => "RetCompoundBoostItemNotExist", + Retcode::RetCompoundBoostTargetNotExist => "RetCompoundBoostTargetNotExist", + Retcode::RetQuickHitTreeEmptyTrees => "RetQuickHitTreeEmptyTrees", + Retcode::RetCompoundNoFinishCanTake => "RetCompoundNoFinishCanTake", + Retcode::RetForgeNoFinishCanTake => "RetForgeNoFinishCanTake", + Retcode::RetGcgFindGameModeFail => "RetGcgFindGameModeFail", + Retcode::RetGcgOperationParamError => "RetGcgOperationParamError", + Retcode::RetGcgGameNotRunning => "RetGcgGameNotRunning", + Retcode::RetGcgOpNotAllow => "RetGcgOpNotAllow", + Retcode::RetGcgOpNotMatchPhase => "RetGcgOpNotMatchPhase", + Retcode::RetGcgSelectHandCardGuidError => "RetGcgSelectHandCardGuidError", + Retcode::RetGcgDiceIndexInvalid => "RetGcgDiceIndexInvalid", + Retcode::RetGcgCharacterGuidInvalid => "RetGcgCharacterGuidInvalid", + Retcode::RetGcgCharacterAlreadyDie => "RetGcgCharacterAlreadyDie", + Retcode::RetGcgCharacterAlreadyOnStage => "RetGcgCharacterAlreadyOnStage", + Retcode::RetGcgCharacterForbiddenAttack => "RetGcgCharacterForbiddenAttack", + Retcode::RetGcgSelectDiceNotMatch => "RetGcgSelectDiceNotMatch", + Retcode::RetGcgFindSkillFail => "RetGcgFindSkillFail", + Retcode::RetGcgSkillCanNotActiveUse => "RetGcgSkillCanNotActiveUse", + Retcode::RetGcgEnergyNotEnough => "RetGcgEnergyNotEnough", + Retcode::RetGcgPlayCardTargetNotMatch => "RetGcgPlayCardTargetNotMatch", + Retcode::RetGcgPlayCardZoneCannotAdd => "RetGcgPlayCardZoneCannotAdd", + Retcode::RetGcgRebootSelectDiceInvalid => "RetGcgRebootSelectDiceInvalid", + Retcode::RetGcgRebootSelectCardInvalid => "RetGcgRebootSelectCardInvalid", + Retcode::RetGcgPlayCardConditionCheckFail => { + "RetGcgPlayCardConditionCheckFail" + } + Retcode::RetGcgPlayCardParamInvalid => "RetGcgPlayCardParamInvalid", + Retcode::RetGcgMaxGame => "RetGcgMaxGame", + Retcode::RetGcgSendPacketFail => "RetGcgSendPacketFail", + Retcode::RetGcgAlreadySettle => "RetGcgAlreadySettle", + Retcode::RetGcgPlayCardLegendAlreadyUsed => "RetGcgPlayCardLegendAlreadyUsed", + Retcode::RetGcgCostLegendNotEnough => "RetGcgCostLegendNotEnough", + Retcode::RetGcgWatchInBlackList => "RetGcgWatchInBlackList", + Retcode::RetGcgWatchForbidSwitch => "RetGcgWatchForbidSwitch", + Retcode::RetGcgWatchAlreadyJoined => "RetGcgWatchAlreadyJoined", + Retcode::RetGcgWatchKickNoSpectator => "RetGcgWatchKickNoSpectator", + Retcode::RetGcgWatchTargetNotInDuel => "RetGcgWatchTargetNotInDuel", + Retcode::RetGcgWatchTargetNotFriend => "RetGcgWatchTargetNotFriend", + Retcode::RetGcgWatchTargetPsnOnly => "RetGcgWatchTargetPsnOnly", + Retcode::RetGcgWatchForbidBusinessType => "RetGcgWatchForbidBusinessType", + Retcode::RetGcgWatchOptionRefuse => "RetGcgWatchOptionRefuse", + Retcode::RetGcgWatchNoPlayer => "RetGcgWatchNoPlayer", + Retcode::RetGcgWatchTargetStateNotOpen => "RetGcgWatchTargetStateNotOpen", + Retcode::RetGcgWatchSpectatorLimit => "RetGcgWatchSpectatorLimit", + Retcode::RetGcgWatchForbiddenWatchGame => "RetGcgWatchForbiddenWatchGame", + Retcode::RetGcgWatchNotSpectator => "RetGcgWatchNotSpectator", + Retcode::RetGcgWatchAlreadyInDuel => "RetGcgWatchAlreadyInDuel", + Retcode::RetGcgWatchClientDataVersoinForbid => { + "RetGcgWatchClientDataVersoinForbid" + } + Retcode::RetGcgSkillNotVehicleSkill => "RetGcgSkillNotVehicleSkill", + Retcode::RetGcgSkillCheckConditionFail => "RetGcgSkillCheckConditionFail", + Retcode::RetGcgVehicleSkillCheckConditionFail => { + "RetGcgVehicleSkillCheckConditionFail" + } + Retcode::RetGcgCoinExceedLimit => "RetGcgCoinExceedLimit", + Retcode::RetGcgCoinNotEnough => "RetGcgCoinNotEnough", + Retcode::RetGcgNotInSelfWorld => "RetGcgNotInSelfWorld", + Retcode::RetGcgAlreadyInDuel => "RetGcgAlreadyInDuel", + Retcode::RetGcgNotInPlayerWorld => "RetGcgNotInPlayerWorld", + Retcode::RetGcgGalleryStarted => "RetGcgGalleryStarted", + Retcode::RetGcgInviteTargetIsSelf => "RetGcgInviteTargetIsSelf", + Retcode::RetGcgInviteTargetNotInWorld => "RetGcgInviteTargetNotInWorld", + Retcode::RetGcgApplyInviteNotAllow => "RetGcgApplyInviteNotAllow", + Retcode::RetGcgApplyInviteTimeout => "RetGcgApplyInviteTimeout", + Retcode::RetGcgCurDeckInvalid => "RetGcgCurDeckInvalid", + Retcode::RetGcgNeedResourceComplete => "RetGcgNeedResourceComplete", + Retcode::RetGcgOpponentPlayerIsSelf => "RetGcgOpponentPlayerIsSelf", + Retcode::RetGcgGameIdInvalid => "RetGcgGameIdInvalid", + Retcode::RetGcgMatchInPunish => "RetGcgMatchInPunish", + Retcode::RetGcgSettleStillInDuel => "RetGcgSettleStillInDuel", + Retcode::RetGcgSettleNotInDungeon => "RetGcgSettleNotInDungeon", + Retcode::RetGcgUnsupportSettleOption => "RetGcgUnsupportSettleOption", + Retcode::RetGcgNotInGcgDungeon => "RetGcgNotInGcgDungeon", + Retcode::RetGcgWorldLevelLocked => "RetGcgWorldLevelLocked", + Retcode::RetGcgBossLevelLocked => "RetGcgBossLevelLocked", + Retcode::RetGcgNotInTavern => "RetGcgNotInTavern", + Retcode::RetGcgWeekNpcNotExist => "RetGcgWeekNpcNotExist", + Retcode::RetGcgEnterGameFrequent => "RetGcgEnterGameFrequent", + Retcode::RetGcgBreakLevelQuestNotUnfinished => { + "RetGcgBreakLevelQuestNotUnfinished" + } + Retcode::RetGcgGuideLevelAlreadyFinished => "RetGcgGuideLevelAlreadyFinished", + Retcode::RetGcgLevelCannotRestart => "RetGcgLevelCannotRestart", + Retcode::RetGcgTargetCheckEnterFail => "RetGcgTargetCheckEnterFail", + Retcode::RetGcgAlreadyInDungeon => "RetGcgAlreadyInDungeon", + Retcode::RetGcgBackDuelNoGame => "RetGcgBackDuelNoGame", + Retcode::RetGcgConstLevelLocked => "RetGcgConstLevelLocked", + Retcode::RetGcgQuestIdError => "RetGcgQuestIdError", + Retcode::RetGcgQuestNeedUnfinished => "RetGcgQuestNeedUnfinished", + Retcode::RetGcgInMatch => "RetGcgInMatch", + Retcode::RetGcgDataVersionNotLatest => "RetGcgDataVersionNotLatest", + Retcode::RetGcgInviteTargetEnterGameFrequent => { + "RetGcgInviteTargetEnterGameFrequent" + } + Retcode::RetGcgInviteTargetNeedResourceComplete => { + "RetGcgInviteTargetNeedResourceComplete" + } + Retcode::RetGcgInviteTargetSceneIsNull => "RetGcgInviteTargetSceneIsNull", + Retcode::RetGcgInviteTargetInTransfer => "RetGcgInviteTargetInTransfer", + Retcode::RetGcgInviteTargetDataVersionNotLatest => { + "RetGcgInviteTargetDataVersionNotLatest" + } + Retcode::RetGcgInviteTargetCurDeckInvalid => { + "RetGcgInviteTargetCurDeckInvalid" + } + Retcode::RetGcgClientDataVersionNotMatch => "RetGcgClientDataVersionNotMatch", + Retcode::RetGcgClientDataVersoinForbid => "RetGcgClientDataVersoinForbid", + Retcode::RetGcgMpCantMatch => "RetGcgMpCantMatch", + Retcode::RetGcgInviteTargetStateNotOpen => "RetGcgInviteTargetStateNotOpen", + Retcode::RetGcgCreateTimeOut => "RetGcgCreateTimeOut", + Retcode::RetGcgBanMatch => "RetGcgBanMatch", + Retcode::RetGcgBanInvite => "RetGcgBanInvite", + Retcode::RetGcgTargetBanInvite => "RetGcgTargetBanInvite", + Retcode::RetGcgInviteAlreadyInvite => "RetGcgInviteAlreadyInvite", + Retcode::RetGcgFestivalModeNotOpen => "RetGcgFestivalModeNotOpen", + Retcode::RetGcgTargetFestivalModeNotOpen => "RetGcgTargetFestivalModeNotOpen", + Retcode::RetGcgBackDuelPsToOther => "RetGcgBackDuelPsToOther", + Retcode::RetGcgBackDuelOtherToPs => "RetGcgBackDuelOtherToPs", + Retcode::RetGcgWeekRewardLimit => "RetGcgWeekRewardLimit", + Retcode::RetGcgFestivalModeInPick => "RetGcgFestivalModeInPick", + Retcode::RetGcgDsDeckLocked => "RetGcgDsDeckLocked", + Retcode::RetGcgDsDeckNameInvalid => "RetGcgDsDeckNameInvalid", + Retcode::RetGcgDsDeckCharCardNumInvalid => "RetGcgDsDeckCharCardNumInvalid", + Retcode::RetGcgDsDeckCardNumInvalid => "RetGcgDsDeckCardNumInvalid", + Retcode::RetGcgDsCardNumExceedLimit => "RetGcgDsCardNumExceedLimit", + Retcode::RetGcgDsDeckInvalid => "RetGcgDsDeckInvalid", + Retcode::RetGcgDsCardIdInvalid => "RetGcgDsCardIdInvalid", + Retcode::RetGcgDsCardFaceAlreadyUnlock => "RetGcgDsCardFaceAlreadyUnlock", + Retcode::RetGcgDsCardFaceIsLock => "RetGcgDsCardFaceIsLock", + Retcode::RetGcgDsFieldLock => "RetGcgDsFieldLock", + Retcode::RetGcgDsFieldAlreadyUnlock => "RetGcgDsFieldAlreadyUnlock", + Retcode::RetGcgDsFieldIdInvalid => "RetGcgDsFieldIdInvalid", + Retcode::RetGcgDsCardBackLocked => "RetGcgDsCardBackLocked", + Retcode::RetGcgDsCardBackAlreadyUnlock => "RetGcgDsCardBackAlreadyUnlock", + Retcode::RetGcgDsCardBackIdInvalid => "RetGcgDsCardBackIdInvalid", + Retcode::RetGcgDsCardFaceIdInvalid => "RetGcgDsCardFaceIdInvalid", + Retcode::RetGcgDsDeckNameIllegal => "RetGcgDsDeckNameIllegal", + Retcode::RetGcgDsDeckSaveCd => "RetGcgDsDeckSaveCd", + Retcode::RetGcgDsDeckChangeNameCd => "RetGcgDsDeckChangeNameCd", + Retcode::RetGcgMatchDeckInvalid => "RetGcgMatchDeckInvalid", + Retcode::RetGcgDsDeckAlreadyUnlocked => "RetGcgDsDeckAlreadyUnlocked", + Retcode::RetGcgDsAtLeastOneDeck => "RetGcgDsAtLeastOneDeck", + Retcode::RetGcgDsDeckCodeIllegal => "RetGcgDsDeckCodeIllegal", + Retcode::RetGcgDsDeckCodeCd => "RetGcgDsDeckCodeCd", + Retcode::RetGcgTcCharacternotMatchLevel => "RetGcgTcCharacternotMatchLevel", + Retcode::RetGcgTcMustInSelfWorld => "RetGcgTcMustInSelfWorld", + Retcode::RetGcgTcMustInTavern => "RetGcgTcMustInTavern", + Retcode::RetGcgTcAlreadyInGame => "RetGcgTcAlreadyInGame", + Retcode::RetGcgTcAlreadyInMatch => "RetGcgTcAlreadyInMatch", + Retcode::RetGcgTcUnlockCharacterQuestNotFinish => { + "RetGcgTcUnlockCharacterQuestNotFinish" + } + Retcode::RetGcgTcLevelLocked => "RetGcgTcLevelLocked", + Retcode::RetGcgTcNoInviteData => "RetGcgTcNoInviteData", + Retcode::RetGcgTcCurDeckInvalid => "RetGcgTcCurDeckInvalid", + Retcode::RetGcgTcCondQuest => "RetGcgTcCondQuest", + Retcode::RetGcgLevelRewardLevelError => "RetGcgLevelRewardLevelError", + Retcode::RetGcgLevelRewardAlreadyTaken => "RetGcgLevelRewardAlreadyTaken", + Retcode::RetGcgLevelRewardNoReward => "RetGcgLevelRewardNoReward", + Retcode::RetGcgNotInReplayDungeon => "RetGcgNotInReplayDungeon", + Retcode::RetGcgInvalidReplay => "RetGcgInvalidReplay", + Retcode::RetGcgSetFavoriteLimitNum => "RetGcgSetFavoriteLimitNum", + Retcode::RetGcgReplayExpire => "RetGcgReplayExpire", + Retcode::RetGcgReplayDungeonSettled => "RetGcgReplayDungeonSettled", + Retcode::RetGcgPickCurUidNotMatch => "RetGcgPickCurUidNotMatch", + Retcode::RetGcgPickSelectParamError => "RetGcgPickSelectParamError", + Retcode::RetGcgPickConfirmError => "RetGcgPickConfirmError", + Retcode::RetGcgPickBackNoGame => "RetGcgPickBackNoGame", + Retcode::RetGcgArenaScheduleInactive => "RetGcgArenaScheduleInactive", + Retcode::RetGcgArenaScheduleNotMatch => "RetGcgArenaScheduleNotMatch", + Retcode::RetGcgArenaDeckNotSet => "RetGcgArenaDeckNotSet", + Retcode::RetGcgArenaDeckInvalid => "RetGcgArenaDeckInvalid", + Retcode::RetGcgArenaInChallengeCannotSetDeck => { + "RetGcgArenaInChallengeCannotSetDeck" + } + Retcode::RetGcgArenaStartChallengeInMpMode => { + "RetGcgArenaStartChallengeInMpMode" + } + Retcode::RetGcgArenaStartMatchInMpMode => "RetGcgArenaStartMatchInMpMode", + Retcode::RetUgcDungeonInDungeon => "RetUgcDungeonInDungeon", + Retcode::RetUgcDungeonRoomNumLimit => "RetUgcDungeonRoomNumLimit", + Retcode::RetUgcDungeonNotInEditState => "RetUgcDungeonNotInEditState", + Retcode::RetUgcDungeonNotInEditDungeon => "RetUgcDungeonNotInEditDungeon", + Retcode::RetUgcDungeonNotExist => "RetUgcDungeonNotExist", + Retcode::RetUgcDungeonNotSave => "RetUgcDungeonNotSave", + Retcode::RetUgcDungeonScoreCondtionButNoMonster => { + "RetUgcDungeonScoreCondtionButNoMonster" + } + Retcode::RetUgcDungeonScoreCondtionButNoCoin => { + "RetUgcDungeonScoreCondtionButNoCoin" + } + Retcode::RetUgcDungeonScoreCondtionButNoChest => { + "RetUgcDungeonScoreCondtionButNoChest" + } + Retcode::RetUgcDungeonScoreCondtionButNoRoomSettle => { + "RetUgcDungeonScoreCondtionButNoRoomSettle" + } + Retcode::RetUgcDungeonTargetScoreExceedLimit => { + "RetUgcDungeonTargetScoreExceedLimit" + } + Retcode::RetUgcDungeonTimeSettleTargetScoreNotZero => { + "RetUgcDungeonTimeSettleTargetScoreNotZero" + } + Retcode::RetUgcDungeonAllowAvatarNotEnough => { + "RetUgcDungeonAllowAvatarNotEnough" + } + Retcode::RetUgcDungeonHeartBloodWhileMonsterDeploy => { + "RetUgcDungeonHeartBloodWhileMonsterDeploy" + } + Retcode::RetUgcDungeonRoomNoExitGadget => "RetUgcDungeonRoomNoExitGadget", + Retcode::RetUgcDungeonRoomHostEnterGadgetNum => { + "RetUgcDungeonRoomHostEnterGadgetNum" + } + Retcode::RetUgcDungeonRoomGuestEnterGadgetNotEnough => { + "RetUgcDungeonRoomGuestEnterGadgetNotEnough" + } + Retcode::RetUgcDungeonRoomSettingCoinNumTooLarge => { + "RetUgcDungeonRoomSettingCoinNumTooLarge" + } + Retcode::RetUgcDungeonRoomSettingMonsterNumTooLarge => { + "RetUgcDungeonRoomSettingMonsterNumTooLarge" + } + Retcode::RetUgcDungeonRoomSettingNoSettleConfig => { + "RetUgcDungeonRoomSettingNoSettleConfig" + } + Retcode::RetUgcDungeonRoomSwitchInviteInProcess => { + "RetUgcDungeonRoomSwitchInviteInProcess" + } + Retcode::RetUgcDungeonRoomDeploymentCostLimit => { + "RetUgcDungeonRoomDeploymentCostLimit" + } + Retcode::RetUgcDungeonRoomTriggerDuplicateGuid => { + "RetUgcDungeonRoomTriggerDuplicateGuid" + } + Retcode::RetUgcDungeonRoomTriggerParamError => { + "RetUgcDungeonRoomTriggerParamError" + } + Retcode::RetUgcDungeonScoreSettleTargetScoreZero => { + "RetUgcDungeonScoreSettleTargetScoreZero" + } + Retcode::RetUgcDungeonStateCanNotAudit => "RetUgcDungeonStateCanNotAudit", + Retcode::RetUgcDungeonAuditVersionNotMatch => { + "RetUgcDungeonAuditVersionNotMatch" + } + Retcode::RetUgcDungeonInAudit => "RetUgcDungeonInAudit", + Retcode::RetUgcDungeonStateCanNotPublish => "RetUgcDungeonStateCanNotPublish", + Retcode::RetUgcDungeonRequestTooFrequent => "RetUgcDungeonRequestTooFrequent", + Retcode::RetUgcDungeonCanNotPublishNoEdit => { + "RetUgcDungeonCanNotPublishNoEdit" + } + Retcode::RetUgcDungeonNotAllowImport => "RetUgcDungeonNotAllowImport", + Retcode::RetUgcDungeonImportRoomHasMonster => { + "RetUgcDungeonImportRoomHasMonster" + } + Retcode::RetUgcDungeonSearchNotExist => "RetUgcDungeonSearchNotExist", + Retcode::RetUgcDungeonRoomSwitchLastRoom => "RetUgcDungeonRoomSwitchLastRoom", + Retcode::RetUgcDungeonRoomGadgetNumLimit => "RetUgcDungeonRoomGadgetNumLimit", + Retcode::RetUgcDungeonRoomMonsterNumLimit => { + "RetUgcDungeonRoomMonsterNumLimit" + } + Retcode::RetUgcDungeonNoTrialSuccRecord => "RetUgcDungeonNoTrialSuccRecord", + Retcode::RetUgcDungeonNumLimit => "RetUgcDungeonNumLimit", + Retcode::RetUgcDungeonInEditDungeon => "RetUgcDungeonInEditDungeon", + Retcode::RetUgcDungeonNotInDungeon => "RetUgcDungeonNotInDungeon", + Retcode::RetUgcDungeonChangeSettingTooFrequent => { + "RetUgcDungeonChangeSettingTooFrequent" + } + Retcode::RetUgcDungeonNotOwner => "RetUgcDungeonNotOwner", + Retcode::RetUgcDungeonNotPublished => "RetUgcDungeonNotPublished", + Retcode::RetUgcDungeonShareCodeGenFail => "RetUgcDungeonShareCodeGenFail", + Retcode::RetUgcDungeonRoomLimit => "RetUgcDungeonRoomLimit", + Retcode::RetUgcDungeonShareCodeInvalid => "RetUgcDungeonShareCodeInvalid", + Retcode::RetUgcDungeonRoomSuiteNumLimit => "RetUgcDungeonRoomSuiteNumLimit", + Retcode::RetUgcDungeonTowerHasBeenPurchased => { + "RetUgcDungeonTowerHasBeenPurchased" + } + Retcode::RetUgcDungeonPlayerAddItemOverStack => { + "RetUgcDungeonPlayerAddItemOverStack" + } + Retcode::RetUgcDungeonPlayerTowerLevelUpLimited => { + "RetUgcDungeonPlayerTowerLevelUpLimited" + } + Retcode::RetUgcDungeonPlayerConsumeItemNotEnough => { + "RetUgcDungeonPlayerConsumeItemNotEnough" + } + Retcode::RetUgcDungeonPlayerTowerAlreadyLevelUp => { + "RetUgcDungeonPlayerTowerAlreadyLevelUp" + } + Retcode::RetUgcDungeonPlayerUgcTargetIsNotExist => { + "RetUgcDungeonPlayerUgcTargetIsNotExist" + } + Retcode::RetUgcDungeonPlayerUgcTargetIsNotActive => { + "RetUgcDungeonPlayerUgcTargetIsNotActive" + } + Retcode::RetUgcDungeonCheckLayoutFailed => "RetUgcDungeonCheckLayoutFailed", + Retcode::RetUgcDungeonPlayerTowerAlreadyRemoved => { + "RetUgcDungeonPlayerTowerAlreadyRemoved" + } + Retcode::RetUgcDungeonPlayerAddItemOverLimit => { + "RetUgcDungeonPlayerAddItemOverLimit" + } + Retcode::RetUgcDungeonPlayerGrantAvatarOverLimit => { + "RetUgcDungeonPlayerGrantAvatarOverLimit" + } + Retcode::RetUgcDungeonDuplicateStar => "RetUgcDungeonDuplicateStar", + Retcode::RetUgcDungeonCancelStarNotExist => "RetUgcDungeonCancelStarNotExist", + Retcode::RetUgcDungeonStarReachLimit => "RetUgcDungeonStarReachLimit", + Retcode::RetUgcDungeonInternalFail => "RetUgcDungeonInternalFail", + Retcode::RetUgcDungeonPlayerPublishBanned => { + "RetUgcDungeonPlayerPublishBanned" + } + Retcode::RetUgcDungeonCustomEditIsNotOpen => { + "RetUgcDungeonCustomEditIsNotOpen" + } + Retcode::RetUgcDungeonOfficialLevelIsNotOpen => { + "RetUgcDungeonOfficialLevelIsNotOpen" + } + Retcode::RetUgcDungeonTemplateImportIsNotOpen => { + "RetUgcDungeonTemplateImportIsNotOpen" + } + Retcode::RetTargetShootingLevelNotOpen => "RetTargetShootingLevelNotOpen", + Retcode::RetTargetShootingPlayerNumNotValid => { + "RetTargetShootingPlayerNumNotValid" + } + Retcode::RetTargetShootingPlayNotOpen => "RetTargetShootingPlayNotOpen", + Retcode::RetTargetShootingConfigNotFound => "RetTargetShootingConfigNotFound", + Retcode::RetShuffleBoardLevelNotOpen => "RetShuffleBoardLevelNotOpen", + Retcode::RetShuffleBoardNotInPenumbraScene => { + "RetShuffleBoardNotInPenumbraScene" + } + Retcode::RetShuffleBoardLevelMismatch => "RetShuffleBoardLevelMismatch", + Retcode::RetShuffleBoardAlreadyPlaying => "RetShuffleBoardAlreadyPlaying", + Retcode::RetRaffleTicketInvalidBonusId => "RetRaffleTicketInvalidBonusId", + Retcode::RetRaffleTicketPrerequisiteNotMet => { + "RetRaffleTicketPrerequisiteNotMet" + } + Retcode::RetRaffleTicketNotEnough => "RetRaffleTicketNotEnough", + Retcode::RetFlightGearLevelNotOpen => "RetFlightGearLevelNotOpen", + Retcode::RetFlightGearInMpMode => "RetFlightGearInMpMode", + Retcode::RetAnimalViewAvatarIsClosingToAnimal => { + "RetAnimalViewAvatarIsClosingToAnimal" + } + Retcode::RetAnimalViewNotEquipWidget => "RetAnimalViewNotEquipWidget", + Retcode::RetCombinePointNotEnough => "RetCombinePointNotEnough", + Retcode::RetToyBattleCurrentLevelNotOpen => "RetToyBattleCurrentLevelNotOpen", + Retcode::RetToyBattleCurrentNotPlaying => "RetToyBattleCurrentNotPlaying", + Retcode::RetFontaineGatherInvalidGatherTracking => { + "RetFontaineGatherInvalidGatherTracking" + } + Retcode::RetFontaineGatherInvalidMonsterTracking => { + "RetFontaineGatherInvalidMonsterTracking" + } + Retcode::RetFishblasterLevelNotOpen => "RetFishblasterLevelNotOpen", + Retcode::RetFishblasterNotInRightScene => "RetFishblasterNotInRightScene", + Retcode::RetFishblasterLevelMismatch => "RetFishblasterLevelMismatch", + Retcode::RetFishblasterAlreadyPlaying => "RetFishblasterAlreadyPlaying", + Retcode::RetGoalChallengeStageNotOpen => "RetGoalChallengeStageNotOpen", + Retcode::RetGoalChallengeInvalidTeam => "RetGoalChallengeInvalidTeam", + Retcode::RetAlchemySimCoinNotEnough => "RetAlchemySimCoinNotEnough", + Retcode::RetAlchemySimCropExceedLimit => "RetAlchemySimCropExceedLimit", + Retcode::RetAlchemySimFarmlandSameCrop => "RetAlchemySimFarmlandSameCrop", + Retcode::RetAlchemySimCropNoHarvestableLand => { + "RetAlchemySimCropNoHarvestableLand" + } + Retcode::RetAlchemySimCropNotEnough => "RetAlchemySimCropNotEnough", + Retcode::RetAlchemySimCropNotUnlocked => "RetAlchemySimCropNotUnlocked", + Retcode::RetAlchemySimFarmlandNotReady => "RetAlchemySimFarmlandNotReady", + Retcode::RetAlchemySimCropRankMax => "RetAlchemySimCropRankMax", + Retcode::RetAlchemySimFarmlandIsNotHarvested => { + "RetAlchemySimFarmlandIsNotHarvested" + } + Retcode::RetAlchemySimTechTreeAlreadyUnlocked => { + "RetAlchemySimTechTreeAlreadyUnlocked" + } + Retcode::RetAlchemySimPotionNotExist => "RetAlchemySimPotionNotExist", + Retcode::RetAlchemySimNotInTargetExam => "RetAlchemySimNotInTargetExam", + Retcode::RetAlchemySimRoundAlchemyCountOver => { + "RetAlchemySimRoundAlchemyCountOver" + } + Retcode::RetAlchemySimInternalLogicError => "RetAlchemySimInternalLogicError", + Retcode::RetAlchemySimCropOnForbiddenPos => "RetAlchemySimCropOnForbiddenPos", + Retcode::RetAlchemySimCropOverlapOverLimit => { + "RetAlchemySimCropOverlapOverLimit" + } + Retcode::RetAlchemySimPuzzleRateNotEnough => { + "RetAlchemySimPuzzleRateNotEnough" + } + Retcode::RetAlchemySimPotionCantUpgrade => "RetAlchemySimPotionCantUpgrade", + Retcode::RetAlchemySimExamCountNotEnough => "RetAlchemySimExamCountNotEnough", + Retcode::RetAlchemySimTechTreeNotAllowed => "RetAlchemySimTechTreeNotAllowed", + Retcode::RetAlchemySimCropNoRipenLand => "RetAlchemySimCropNoRipenLand", + Retcode::RetAlchemySimUnfinishQuest => "RetAlchemySimUnfinishQuest", + Retcode::RetAlchemySimInvalidRoundState => "RetAlchemySimInvalidRoundState", + Retcode::RetAlchemySimCropUpgradeExpOverflow => { + "RetAlchemySimCropUpgradeExpOverflow" + } + Retcode::RetAlchemySimCropUpgradeNotUnlocked => { + "RetAlchemySimCropUpgradeNotUnlocked" + } + Retcode::RetAlchemySimFinishRoundFrequency => { + "RetAlchemySimFinishRoundFrequency" + } + Retcode::RetAlchemySimTemplateAlchemyNotUnlocked => { + "RetAlchemySimTemplateAlchemyNotUnlocked" + } + Retcode::RetCatcafeLayoutStageNotRight => "RetCatcafeLayoutStageNotRight", + Retcode::RetCatcafeLayoutNotRight => "RetCatcafeLayoutNotRight", + Retcode::RetStaminaFightIsInOtherDungeon => "RetStaminaFightIsInOtherDungeon", + Retcode::RetEffigyChallengeV5LevelNotOpen => { + "RetEffigyChallengeV5LevelNotOpen" + } + Retcode::RetEffigyChallengeV5InvalidSupport => { + "RetEffigyChallengeV5InvalidSupport" + } + Retcode::RetEffigyChallengeV5InvalidPlayerNum => { + "RetEffigyChallengeV5InvalidPlayerNum" + } + Retcode::RetEffigyChallengeV5InCombat => "RetEffigyChallengeV5InCombat", + Retcode::RetEffigyChallengeV5InvalidScene => { + "RetEffigyChallengeV5InvalidScene" + } + Retcode::RetBlueprintSlotNotFound => "RetBlueprintSlotNotFound", + Retcode::RetFurnitureSuiteIdInvalid => "RetFurnitureSuiteIdInvalid", + Retcode::RetWishlistBatchOperateOutOfLimit => { + "RetWishlistBatchOperateOutOfLimit" + } + Retcode::RetHideAndSeekV4GameNotOpen => "RetHideAndSeekV4GameNotOpen", + Retcode::RetHideAndSeekV4PlayMapNotChosen => { + "RetHideAndSeekV4PlayMapNotChosen" + } + Retcode::RetHideAndSeekV4PlayerCountNotEnough => { + "RetHideAndSeekV4PlayerCountNotEnough" + } + Retcode::RetHideAndSeekV4PlayMapNotOpen => "RetHideAndSeekV4PlayMapNotOpen", + Retcode::RetWatergunLevelNotOpen => "RetWatergunLevelNotOpen", + Retcode::RetAcrobaticsBattleStageNotOpen => "RetAcrobaticsBattleStageNotOpen", + Retcode::RetAcrobaticsBattleInvalidTeam => "RetAcrobaticsBattleInvalidTeam", + Retcode::RetMonsterVsMonsterLevelNotOpen => "RetMonsterVsMonsterLevelNotOpen", + Retcode::RetRechargeDiskLevelNotOpen => "RetRechargeDiskLevelNotOpen", + Retcode::RetRechargeDiskInvalidLevelBuild => { + "RetRechargeDiskInvalidLevelBuild" + } + Retcode::RetRechargeDiskCurSceneInvalid => "RetRechargeDiskCurSceneInvalid", + Retcode::RetActivityPreviewTrialInCd => "RetActivityPreviewTrialInCd", + Retcode::RetBirdBallMpLevelNotOpen => "RetBirdBallMpLevelNotOpen", + Retcode::RetBirdBallDraftPlayerNumInvalid => { + "RetBirdBallDraftPlayerNumInvalid" + } + Retcode::RetFairyTalesLotterAreaIsNotOpen => { + "RetFairyTalesLotterAreaIsNotOpen" + } + Retcode::RetFairyTalesLotterLeftCntNotEnough => { + "RetFairyTalesLotterLeftCntNotEnough" + } + Retcode::RetFairyTalesToyTotalLeftCntNotEnough => { + "RetFairyTalesToyTotalLeftCntNotEnough" + } + Retcode::RetFairyTalesWishToyTypeOverLimit => { + "RetFairyTalesWishToyTypeOverLimit" + } + Retcode::RetFairyTalesToyCustomGadgetContentInvalid => { + "RetFairyTalesToyCustomGadgetContentInvalid" + } + Retcode::RetFairyTalesCombatLevelNotOpen => "RetFairyTalesCombatLevelNotOpen", + Retcode::RetFairyTalesTicketPrerequisiteNotMet => { + "RetFairyTalesTicketPrerequisiteNotMet" + } + Retcode::RetFairyTalesTicketNotEnough => "RetFairyTalesTicketNotEnough", + Retcode::RetActivityTeamInvalidSize => "RetActivityTeamInvalidSize", + Retcode::RetActivityInvalidTrialAvatar => "RetActivityInvalidTrialAvatar", + Retcode::RetActivityForbiddenTrialAvatar => "RetActivityForbiddenTrialAvatar", + Retcode::RetRenameInvalidQuestState => "RetRenameInvalidQuestState", + Retcode::RetRenameConflicted => "RetRenameConflicted", + Retcode::RetReliquaryOfferPurchaseVersionIdxError => { + "RetReliquaryOfferPurchaseVersionIdxError" + } + Retcode::RetReliquaryOfferVersionTimesLimit => { + "RetReliquaryOfferVersionTimesLimit" + } + Retcode::RetReliquaryOfferProgressNotEnough => { + "RetReliquaryOfferProgressNotEnough" + } + Retcode::RetReliquaryOfferProgressOverLimit => { + "RetReliquaryOfferProgressOverLimit" + } + Retcode::RetReliquaryPurchaseSuiteTimesOverLimit => { + "RetReliquaryPurchaseSuiteTimesOverLimit" + } + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "RetSucc" => Some(Self::RetSucc), + "RetFail" => Some(Self::RetFail), + "RetSvrError" => Some(Self::RetSvrError), + "RetUnknownError" => Some(Self::RetUnknownError), + "RetFrequent" => Some(Self::RetFrequent), + "RetNodeForwardError" => Some(Self::RetNodeForwardError), + "RetNotFoundConfig" => Some(Self::RetNotFoundConfig), + "RetSystemBusy" => Some(Self::RetSystemBusy), + "RetGmUidBind" => Some(Self::RetGmUidBind), + "RetForbidden" => Some(Self::RetForbidden), + "RetStopRegister" => Some(Self::RetStopRegister), + "RetStopServer" => Some(Self::RetStopServer), + "RetAccountVeirfyError" => Some(Self::RetAccountVeirfyError), + "RetAccountFreeze" => Some(Self::RetAccountFreeze), + "RetRepeatLogin" => Some(Self::RetRepeatLogin), + "RetClientVersionError" => Some(Self::RetClientVersionError), + "RetTokenError" => Some(Self::RetTokenError), + "RetAccountNotExist" => Some(Self::RetAccountNotExist), + "RetWaitOtherLogin" => Some(Self::RetWaitOtherLogin), + "RetAnotherLogin" => Some(Self::RetAnotherLogin), + "RetClientForceUpdate" => Some(Self::RetClientForceUpdate), + "RetBlackUid" => Some(Self::RetBlackUid), + "RetLoginDbFail" => Some(Self::RetLoginDbFail), + "RetLoginInitFail" => Some(Self::RetLoginInitFail), + "RetMysqlDuplicate" => Some(Self::RetMysqlDuplicate), + "RetMaxPlayer" => Some(Self::RetMaxPlayer), + "RetAntiAddict" => Some(Self::RetAntiAddict), + "RetPsPlayerWithoutOnlineId" => Some(Self::RetPsPlayerWithoutOnlineId), + "RetOnlineIdNotFound" => Some(Self::RetOnlineIdNotFound), + "RetOnlneIdNotMatch" => Some(Self::RetOnlneIdNotMatch), + "RetRegisterIsFull" => Some(Self::RetRegisterIsFull), + "RetChecksumInvalid" => Some(Self::RetChecksumInvalid), + "RetBlackRegisterIp" => Some(Self::RetBlackRegisterIp), + "RetExceedRegisterRate" => Some(Self::RetExceedRegisterRate), + "RetUnknownPlatform" => Some(Self::RetUnknownPlatform), + "RetTokenParamError" => Some(Self::RetTokenParamError), + "RetAntiOfflineError" => Some(Self::RetAntiOfflineError), + "RetBlackLoginIp" => Some(Self::RetBlackLoginIp), + "RetGetTokenSessionHasUid" => Some(Self::RetGetTokenSessionHasUid), + "RetEnvironmentError" => Some(Self::RetEnvironmentError), + "RetCheckClientVersionHashFail" => Some(Self::RetCheckClientVersionHashFail), + "RetMinorRegisterFobidden" => Some(Self::RetMinorRegisterFobidden), + "RetSecurityLibraryError" => Some(Self::RetSecurityLibraryError), + "RetGateTicketCheckError" => Some(Self::RetGateTicketCheckError), + "RetProtoMixVersionNotMatch" => Some(Self::RetProtoMixVersionNotMatch), + "RetAccountTypeStopRegister" => Some(Self::RetAccountTypeStopRegister), + "RetAvatarInCd" => Some(Self::RetAvatarInCd), + "RetAvatarNotAlive" => Some(Self::RetAvatarNotAlive), + "RetAvatarNotOnScene" => Some(Self::RetAvatarNotOnScene), + "RetCanNotFindAvatar" => Some(Self::RetCanNotFindAvatar), + "RetCanNotDelCurAvatar" => Some(Self::RetCanNotDelCurAvatar), + "RetDuplicateAvatar" => Some(Self::RetDuplicateAvatar), + "RetAvatarIsSameOne" => Some(Self::RetAvatarIsSameOne), + "RetAvatarLevelLessThan" => Some(Self::RetAvatarLevelLessThan), + "RetAvatarCanNotChangeElement" => Some(Self::RetAvatarCanNotChangeElement), + "RetAvatarBreakLevelLessThan" => Some(Self::RetAvatarBreakLevelLessThan), + "RetAvatarOnMaxBreakLevel" => Some(Self::RetAvatarOnMaxBreakLevel), + "RetAvatarIdAlreadyExist" => Some(Self::RetAvatarIdAlreadyExist), + "RetAvatarNotDead" => Some(Self::RetAvatarNotDead), + "RetAvatarIsReviving" => Some(Self::RetAvatarIsReviving), + "RetAvatarIdError" => Some(Self::RetAvatarIdError), + "RetRepeatSetPlayerBornData" => Some(Self::RetRepeatSetPlayerBornData), + "RetPlayerLevelLessThan" => Some(Self::RetPlayerLevelLessThan), + "RetAvatarLimitLevelError" => Some(Self::RetAvatarLimitLevelError), + "RetCurAvatarNotAlive" => Some(Self::RetCurAvatarNotAlive), + "RetCanNotFindTeam" => Some(Self::RetCanNotFindTeam), + "RetCanNotFindCurTeam" => Some(Self::RetCanNotFindCurTeam), + "RetAvatarNotExistInTeam" => Some(Self::RetAvatarNotExistInTeam), + "RetCanNotRemoveCurAvatarFromTeam" => { + Some(Self::RetCanNotRemoveCurAvatarFromTeam) + } + "RetCanNotUseReviveItemForCurAvatar" => { + Some(Self::RetCanNotUseReviveItemForCurAvatar) + } + "RetTeamCostExceedLimit" => Some(Self::RetTeamCostExceedLimit), + "RetTeamAvatarInExpedition" => Some(Self::RetTeamAvatarInExpedition), + "RetTeamCanNotChoseReplaceUse" => Some(Self::RetTeamCanNotChoseReplaceUse), + "RetAvatarInCombat" => Some(Self::RetAvatarInCombat), + "RetPlayerTimeLocked" => Some(Self::RetPlayerTimeLocked), + "RetNicknameUtf8Error" => Some(Self::RetNicknameUtf8Error), + "RetNicknameTooLong" => Some(Self::RetNicknameTooLong), + "RetNicknameWordIllegal" => Some(Self::RetNicknameWordIllegal), + "RetNicknameTooManyDigits" => Some(Self::RetNicknameTooManyDigits), + "RetNicknameIsEmpty" => Some(Self::RetNicknameIsEmpty), + "RetNicknameMonthlyLimit" => Some(Self::RetNicknameMonthlyLimit), + "RetNicknameNotChanged" => Some(Self::RetNicknameNotChanged), + "RetPlayerNotOnline" => Some(Self::RetPlayerNotOnline), + "RetOpenStateNotOpen" => Some(Self::RetOpenStateNotOpen), + "RetFeatureClosed" => Some(Self::RetFeatureClosed), + "RetAvatarExpeditionAvatarDie" => Some(Self::RetAvatarExpeditionAvatarDie), + "RetAvatarExpeditionCountLimit" => Some(Self::RetAvatarExpeditionCountLimit), + "RetAvatarExpeditionMainForbid" => Some(Self::RetAvatarExpeditionMainForbid), + "RetAvatarExpeditionTrialForbid" => { + Some(Self::RetAvatarExpeditionTrialForbid) + } + "RetTeamNameIllegal" => Some(Self::RetTeamNameIllegal), + "RetIsNotInStandby" => Some(Self::RetIsNotInStandby), + "RetIsInDungeon" => Some(Self::RetIsInDungeon), + "RetIsInLockAvatarQuest" => Some(Self::RetIsInLockAvatarQuest), + "RetIsUsingTrialAvatar" => Some(Self::RetIsUsingTrialAvatar), + "RetIsUsingTempAvatar" => Some(Self::RetIsUsingTempAvatar), + "RetNotHasFlycloak" => Some(Self::RetNotHasFlycloak), + "RetFetterRewardAlreadyGot" => Some(Self::RetFetterRewardAlreadyGot), + "RetFetterRewardLevelNotEnough" => Some(Self::RetFetterRewardLevelNotEnough), + "RetWorldLevelAdjustMinLevel" => Some(Self::RetWorldLevelAdjustMinLevel), + "RetWorldLevelAdjustCd" => Some(Self::RetWorldLevelAdjustCd), + "RetNotHasCostume" => Some(Self::RetNotHasCostume), + "RetCostumeAvatarError" => Some(Self::RetCostumeAvatarError), + "RetFlycloakPlatformTypeErr" => Some(Self::RetFlycloakPlatformTypeErr), + "RetInTransfer" => Some(Self::RetInTransfer), + "RetIsInLockAvatar" => Some(Self::RetIsInLockAvatar), + "RetFullBackupTeam" => Some(Self::RetFullBackupTeam), + "RetBackupTeamIdNotValid" => Some(Self::RetBackupTeamIdNotValid), + "RetBackupTeamIsCurTeam" => Some(Self::RetBackupTeamIsCurTeam), + "RetAvatarRenameInCd" => Some(Self::RetAvatarRenameInCd), + "RetAvatarRenameInAudit" => Some(Self::RetAvatarRenameInAudit), + "RetAvatarRenameInIpBlackList" => Some(Self::RetAvatarRenameInIpBlackList), + "RetTeamAvatarIsLocked" => Some(Self::RetTeamAvatarIsLocked), + "RetPlayerHasTrialAvatar" => Some(Self::RetPlayerHasTrialAvatar), + "RetAvatarExpeditionSlotNotEnough" => { + Some(Self::RetAvatarExpeditionSlotNotEnough) + } + "RetAvatarExpeditionNoAvatarCanTakeReward" => { + Some(Self::RetAvatarExpeditionNoAvatarCanTakeReward) + } + "RetAvatarUpgradeItemExpOverflow" => { + Some(Self::RetAvatarUpgradeItemExpOverflow) + } + "RetAsyncWordFilterInCd" => Some(Self::RetAsyncWordFilterInCd), + "RetNotHasTraceEffect" => Some(Self::RetNotHasTraceEffect), + "RetTraceEffectAvatarError" => Some(Self::RetTraceEffectAvatarError), + "RetPlayerTimeLockedByQuest" => Some(Self::RetPlayerTimeLockedByQuest), + "RetFloatError" => Some(Self::RetFloatError), + "RetNpcNotExist" => Some(Self::RetNpcNotExist), + "RetNpcTooFar" => Some(Self::RetNpcTooFar), + "RetNotCurrentTalk" => Some(Self::RetNotCurrentTalk), + "RetNpcCreateFail" => Some(Self::RetNpcCreateFail), + "RetNpcMoveFail" => Some(Self::RetNpcMoveFail), + "RetQuestNotExist" => Some(Self::RetQuestNotExist), + "RetQuestIsFail" => Some(Self::RetQuestIsFail), + "RetQuestContentError" => Some(Self::RetQuestContentError), + "RetBargainNotActivated" => Some(Self::RetBargainNotActivated), + "RetBargainFinished" => Some(Self::RetBargainFinished), + "RetInferenceAssociateWordError" => { + Some(Self::RetInferenceAssociateWordError) + } + "RetInferenceSubmitWordNoConclusion" => { + Some(Self::RetInferenceSubmitWordNoConclusion) + } + "RetSubmitQuestEventsNotRight" => Some(Self::RetSubmitQuestEventsNotRight), + "RetConfirmContinueMutualQuestCondFailed" => { + Some(Self::RetConfirmContinueMutualQuestCondFailed) + } + "RetConfirmContinueMutualOccupiedFailed" => { + Some(Self::RetConfirmContinueMutualOccupiedFailed) + } + "RetQuestFocusModeInCd" => Some(Self::RetQuestFocusModeInCd), + "RetQuestInFocusMode" => Some(Self::RetQuestInFocusMode), + "RetQuestNotInFocusMode" => Some(Self::RetQuestNotInFocusMode), + "RetParentQuestCannotStartFocus" => { + Some(Self::RetParentQuestCannotStartFocus) + } + "RetParentQuestNotExist" => Some(Self::RetParentQuestNotExist), + "RetBanOpearateFocus" => Some(Self::RetBanOpearateFocus), + "RetQuestFocusAnyGalleryStarted" => { + Some(Self::RetQuestFocusAnyGalleryStarted) + } + "RetQuestFocusUsingInformalAvatar" => { + Some(Self::RetQuestFocusUsingInformalAvatar) + } + "RetQuestFocusOpenstateOff" => Some(Self::RetQuestFocusOpenstateOff), + "RetPointNotUnlocked" => Some(Self::RetPointNotUnlocked), + "RetPointTooFar" => Some(Self::RetPointTooFar), + "RetPointAlreayUnlocked" => Some(Self::RetPointAlreayUnlocked), + "RetEntityNotExist" => Some(Self::RetEntityNotExist), + "RetEnterSceneFail" => Some(Self::RetEnterSceneFail), + "RetPlayerIsEnterScene" => Some(Self::RetPlayerIsEnterScene), + "RetCityMaxLevel" => Some(Self::RetCityMaxLevel), + "RetAreaLocked" => Some(Self::RetAreaLocked), + "RetJoinOtherWait" => Some(Self::RetJoinOtherWait), + "RetWeatherAreaNotFound" => Some(Self::RetWeatherAreaNotFound), + "RetWeatherIsLocked" => Some(Self::RetWeatherIsLocked), + "RetNotInSelfScene" => Some(Self::RetNotInSelfScene), + "RetGroupNotExist" => Some(Self::RetGroupNotExist), + "RetMarkNameIllegal" => Some(Self::RetMarkNameIllegal), + "RetMarkAlreadyExists" => Some(Self::RetMarkAlreadyExists), + "RetMarkOverflow" => Some(Self::RetMarkOverflow), + "RetMarkNotExists" => Some(Self::RetMarkNotExists), + "RetMarkUnknownType" => Some(Self::RetMarkUnknownType), + "RetMarkNameTooLong" => Some(Self::RetMarkNameTooLong), + "RetDistanceLong" => Some(Self::RetDistanceLong), + "RetEnterSceneTokenInvalid" => Some(Self::RetEnterSceneTokenInvalid), + "RetNotInWorldScene" => Some(Self::RetNotInWorldScene), + "RetAnyGalleryStarted" => Some(Self::RetAnyGalleryStarted), + "RetGalleryNotStart" => Some(Self::RetGalleryNotStart), + "RetGalleryInterruptOnlyOnSingleMode" => { + Some(Self::RetGalleryInterruptOnlyOnSingleMode) + } + "RetGalleryCannotInterrupt" => Some(Self::RetGalleryCannotInterrupt), + "RetGalleryWorldNotMeet" => Some(Self::RetGalleryWorldNotMeet), + "RetGallerySceneNotMeet" => Some(Self::RetGallerySceneNotMeet), + "RetCurPlayCannotTransfer" => Some(Self::RetCurPlayCannotTransfer), + "RetCantUseWidgetInHomeScene" => Some(Self::RetCantUseWidgetInHomeScene), + "RetSceneGroupNotMatch" => Some(Self::RetSceneGroupNotMatch), + "RetPosRotInvalid" => Some(Self::RetPosRotInvalid), + "RetMarkInvalidSceneId" => Some(Self::RetMarkInvalidSceneId), + "RetInvalidSceneToUseAnchorPoint" => { + Some(Self::RetInvalidSceneToUseAnchorPoint) + } + "RetEnterHomeSceneFail" => Some(Self::RetEnterHomeSceneFail), + "RetCurSceneIsNull" => Some(Self::RetCurSceneIsNull), + "RetGroupIdError" => Some(Self::RetGroupIdError), + "RetGalleryInterruptNotOwner" => Some(Self::RetGalleryInterruptNotOwner), + "RetNoSpringInArea" => Some(Self::RetNoSpringInArea), + "RetAreaNotInScene" => Some(Self::RetAreaNotInScene), + "RetInvalidCityId" => Some(Self::RetInvalidCityId), + "RetInvalidSceneId" => Some(Self::RetInvalidSceneId), + "RetDestSceneIsNotAllow" => Some(Self::RetDestSceneIsNotAllow), + "RetLevelTagSwitchInCd" => Some(Self::RetLevelTagSwitchInCd), + "RetLevelTagAlreadyExist" => Some(Self::RetLevelTagAlreadyExist), + "RetInvalidAreaId" => Some(Self::RetInvalidAreaId), + "RetGalleryOngoingForbid" => Some(Self::RetGalleryOngoingForbid), + "RetNotInPlayerWorld" => Some(Self::RetNotInPlayerWorld), + "RetMapLayerGroupAlreadyShown" => Some(Self::RetMapLayerGroupAlreadyShown), + "RetInvalidMapLayer" => Some(Self::RetInvalidMapLayer), + "RetGalleryRepeatStart" => Some(Self::RetGalleryRepeatStart), + "RetNotInPlayerScene" => Some(Self::RetNotInPlayerScene), + "RetEnterDungeonNotInValidDungeon" => { + Some(Self::RetEnterDungeonNotInValidDungeon) + } + "RetItemNotExist" => Some(Self::RetItemNotExist), + "RetPackExceedMaxWeight" => Some(Self::RetPackExceedMaxWeight), + "RetItemNotDropable" => Some(Self::RetItemNotDropable), + "RetItemNotUsable" => Some(Self::RetItemNotUsable), + "RetItemInvalidUseCount" => Some(Self::RetItemInvalidUseCount), + "RetItemInvalidDropCount" => Some(Self::RetItemInvalidDropCount), + "RetItemAlreadyExist" => Some(Self::RetItemAlreadyExist), + "RetItemInCooldown" => Some(Self::RetItemInCooldown), + "RetItemCountNotEnough" => Some(Self::RetItemCountNotEnough), + "RetItemInvalidTarget" => Some(Self::RetItemInvalidTarget), + "RetRecipeNotExist" => Some(Self::RetRecipeNotExist), + "RetRecipeLocked" => Some(Self::RetRecipeLocked), + "RetRecipeUnlocked" => Some(Self::RetRecipeUnlocked), + "RetCompoundQueueFull" => Some(Self::RetCompoundQueueFull), + "RetCompoundNotFinish" => Some(Self::RetCompoundNotFinish), + "RetMailItemNotGet" => Some(Self::RetMailItemNotGet), + "RetItemExceedLimit" => Some(Self::RetItemExceedLimit), + "RetAvatarCanNotUse" => Some(Self::RetAvatarCanNotUse), + "RetItemNeedPlayerLevel" => Some(Self::RetItemNeedPlayerLevel), + "RetRecipeNotAutoQte" => Some(Self::RetRecipeNotAutoQte), + "RetCompoundBusyQueue" => Some(Self::RetCompoundBusyQueue), + "RetNeedMoreScoin" => Some(Self::RetNeedMoreScoin), + "RetSkillDepotNotFound" => Some(Self::RetSkillDepotNotFound), + "RetHcoinNotEnough" => Some(Self::RetHcoinNotEnough), + "RetScoinNotEnough" => Some(Self::RetScoinNotEnough), + "RetHcoinExceedLimit" => Some(Self::RetHcoinExceedLimit), + "RetScoinExceedLimit" => Some(Self::RetScoinExceedLimit), + "RetMailExpired" => Some(Self::RetMailExpired), + "RetRewardHasTaken" => Some(Self::RetRewardHasTaken), + "RetCombineCountTooLarge" => Some(Self::RetCombineCountTooLarge), + "RetGivingItemWrong" => Some(Self::RetGivingItemWrong), + "RetGivingIsFinished" => Some(Self::RetGivingIsFinished), + "RetGivingNotActived" => Some(Self::RetGivingNotActived), + "RetForgeQueueFull" => Some(Self::RetForgeQueueFull), + "RetForgeQueueCapacity" => Some(Self::RetForgeQueueCapacity), + "RetForgeQueueNotFound" => Some(Self::RetForgeQueueNotFound), + "RetForgeQueueEmpty" => Some(Self::RetForgeQueueEmpty), + "RetNotSupportItem" => Some(Self::RetNotSupportItem), + "RetItemEmpty" => Some(Self::RetItemEmpty), + "RetVirtualExceedLimit" => Some(Self::RetVirtualExceedLimit), + "RetMaterialExceedLimit" => Some(Self::RetMaterialExceedLimit), + "RetEquipExceedLimit" => Some(Self::RetEquipExceedLimit), + "RetItemShouldHaveNoLevel" => Some(Self::RetItemShouldHaveNoLevel), + "RetWeaponPromoteLevelExceedLimit" => { + Some(Self::RetWeaponPromoteLevelExceedLimit) + } + "RetWeaponLevelInvalid" => Some(Self::RetWeaponLevelInvalid), + "RetUnknowItemType" => Some(Self::RetUnknowItemType), + "RetItemCountIsZero" => Some(Self::RetItemCountIsZero), + "RetItemIsExpired" => Some(Self::RetItemIsExpired), + "RetItemExceedOutputLimit" => Some(Self::RetItemExceedOutputLimit), + "RetEquipLevelHigher" => Some(Self::RetEquipLevelHigher), + "RetEquipCanNotWakeOffWeapon" => Some(Self::RetEquipCanNotWakeOffWeapon), + "RetEquipHasBeenWeared" => Some(Self::RetEquipHasBeenWeared), + "RetEquipWearedCannotDrop" => Some(Self::RetEquipWearedCannotDrop), + "RetAwakenLevelMax" => Some(Self::RetAwakenLevelMax), + "RetMcoinNotEnough" => Some(Self::RetMcoinNotEnough), + "RetMcoinExceedLimit" => Some(Self::RetMcoinExceedLimit), + "RetBatchSetEquipLockStateCd" => Some(Self::RetBatchSetEquipLockStateCd), + "RetResinNotEnough" => Some(Self::RetResinNotEnough), + "RetResinExceedLimit" => Some(Self::RetResinExceedLimit), + "RetResinOpenstateOff" => Some(Self::RetResinOpenstateOff), + "RetResinBoughtCountExceeded" => Some(Self::RetResinBoughtCountExceeded), + "RetResinCardDailyRewardHasTaken" => { + Some(Self::RetResinCardDailyRewardHasTaken) + } + "RetResinCardExpired" => Some(Self::RetResinCardExpired), + "RetAvatarCanNotCook" => Some(Self::RetAvatarCanNotCook), + "RetAttachAvatarCd" => Some(Self::RetAttachAvatarCd), + "RetAutoRecoverOpenstateOff" => Some(Self::RetAutoRecoverOpenstateOff), + "RetAutoRecoverBoughtCountExceeded" => { + Some(Self::RetAutoRecoverBoughtCountExceeded) + } + "RetResinGainFailed" => Some(Self::RetResinGainFailed), + "RetWidgetOrnamentsTypeError" => Some(Self::RetWidgetOrnamentsTypeError), + "RetAllTargetSatiationFull" => Some(Self::RetAllTargetSatiationFull), + "RetForgeWorldLevelNotMatch" => Some(Self::RetForgeWorldLevelNotMatch), + "RetForgePointNotEnough" => Some(Self::RetForgePointNotEnough), + "RetWidgetAnchorPointFull" => Some(Self::RetWidgetAnchorPointFull), + "RetWidgetAnchorPointNotFound" => Some(Self::RetWidgetAnchorPointNotFound), + "RetAllBonfireExceedMaxCount" => Some(Self::RetAllBonfireExceedMaxCount), + "RetBonfireExceedMaxCount" => Some(Self::RetBonfireExceedMaxCount), + "RetLunchBoxDataError" => Some(Self::RetLunchBoxDataError), + "RetInvalidQuickUseWidget" => Some(Self::RetInvalidQuickUseWidget), + "RetInvalidReplaceResinCount" => Some(Self::RetInvalidReplaceResinCount), + "RetPrevDetectedGatherNotFound" => Some(Self::RetPrevDetectedGatherNotFound), + "RetGotAllOneoffGahter" => Some(Self::RetGotAllOneoffGahter), + "RetInvalidWidgetMaterialId" => Some(Self::RetInvalidWidgetMaterialId), + "RetWidgetDetectorNoHintToClear" => { + Some(Self::RetWidgetDetectorNoHintToClear) + } + "RetWidgetAlreadyWithinNearbyRadius" => { + Some(Self::RetWidgetAlreadyWithinNearbyRadius) + } + "RetWidgetClientCollectorNeedPoints" => { + Some(Self::RetWidgetClientCollectorNeedPoints) + } + "RetWidgetInCombat" => Some(Self::RetWidgetInCombat), + "RetWidgetNotSetQuickUse" => Some(Self::RetWidgetNotSetQuickUse), + "RetAlreadyAttachWidget" => Some(Self::RetAlreadyAttachWidget), + "RetEquipIsLocked" => Some(Self::RetEquipIsLocked), + "RetForgeIsLocked" => Some(Self::RetForgeIsLocked), + "RetCombineIsLocked" => Some(Self::RetCombineIsLocked), + "RetForgeOutputStackLimit" => Some(Self::RetForgeOutputStackLimit), + "RetAlreadyDettachWidget" => Some(Self::RetAlreadyDettachWidget), + "RetGadgetBuilderExceedMaxCount" => { + Some(Self::RetGadgetBuilderExceedMaxCount) + } + "RetReunionPrivilegeResinTypeIsNormal" => { + Some(Self::RetReunionPrivilegeResinTypeIsNormal) + } + "RetBonusCountExceedDoubleLimit" => { + Some(Self::RetBonusCountExceedDoubleLimit) + } + "RetReliquaryDecomposeParamError" => { + Some(Self::RetReliquaryDecomposeParamError) + } + "RetItemCombineCountNotEnough" => Some(Self::RetItemCombineCountNotEnough), + "RetGoodsNotExist" => Some(Self::RetGoodsNotExist), + "RetGoodsMaterialNotEnough" => Some(Self::RetGoodsMaterialNotEnough), + "RetGoodsNotInTime" => Some(Self::RetGoodsNotInTime), + "RetGoodsBuyNumNotEnough" => Some(Self::RetGoodsBuyNumNotEnough), + "RetGoodsBuyNumError" => Some(Self::RetGoodsBuyNumError), + "RetShopNotOpen" => Some(Self::RetShopNotOpen), + "RetShopContentNotMatch" => Some(Self::RetShopContentNotMatch), + "RetShopBatchBuyShopLimit" => Some(Self::RetShopBatchBuyShopLimit), + "RetShopBatchBuyCountLimit" => Some(Self::RetShopBatchBuyCountLimit), + "RetGoodsPreconditionNotSatisfied" => { + Some(Self::RetGoodsPreconditionNotSatisfied) + } + "RetChatForbidden" => Some(Self::RetChatForbidden), + "RetChatCd" => Some(Self::RetChatCd), + "RetChatFrequently" => Some(Self::RetChatFrequently), + "RetGadgetNotExist" => Some(Self::RetGadgetNotExist), + "RetGadgetNotInteractive" => Some(Self::RetGadgetNotInteractive), + "RetGadgetNotGatherable" => Some(Self::RetGadgetNotGatherable), + "RetChestIsLocked" => Some(Self::RetChestIsLocked), + "RetGadgetCreateFail" => Some(Self::RetGadgetCreateFail), + "RetWorktopOptionNotExist" => Some(Self::RetWorktopOptionNotExist), + "RetGadgetStatueNotActive" => Some(Self::RetGadgetStatueNotActive), + "RetGadgetStatueOpened" => Some(Self::RetGadgetStatueOpened), + "RetBossChestNoQualification" => Some(Self::RetBossChestNoQualification), + "RetBossChestLifeTimeOver" => Some(Self::RetBossChestLifeTimeOver), + "RetBossChestWeekNumLimit" => Some(Self::RetBossChestWeekNumLimit), + "RetBossChestGuestWorldLevel" => Some(Self::RetBossChestGuestWorldLevel), + "RetBossChestHasTaken" => Some(Self::RetBossChestHasTaken), + "RetBlossomChestNoQualification" => { + Some(Self::RetBlossomChestNoQualification) + } + "RetBlossomChestLifeTimeOver" => Some(Self::RetBlossomChestLifeTimeOver), + "RetBlossomChestHasTaken" => Some(Self::RetBlossomChestHasTaken), + "RetBlossomChestGuestWorldLevel" => { + Some(Self::RetBlossomChestGuestWorldLevel) + } + "RetMpPlayRewardNoQualification" => { + Some(Self::RetMpPlayRewardNoQualification) + } + "RetMpPlayRewardHasTaken" => Some(Self::RetMpPlayRewardHasTaken), + "RetGeneralRewardNoQualification" => { + Some(Self::RetGeneralRewardNoQualification) + } + "RetGeneralRewardLifeTimeOver" => Some(Self::RetGeneralRewardLifeTimeOver), + "RetGeneralRewardHasTaken" => Some(Self::RetGeneralRewardHasTaken), + "RetGadgetNotVehicle" => Some(Self::RetGadgetNotVehicle), + "RetVehicleSlotOccupied" => Some(Self::RetVehicleSlotOccupied), + "RetNotInVehicle" => Some(Self::RetNotInVehicle), + "RetCreateVehicleInCd" => Some(Self::RetCreateVehicleInCd), + "RetCreateVehiclePosInvalid" => Some(Self::RetCreateVehiclePosInvalid), + "RetVehiclePointNotUnlock" => Some(Self::RetVehiclePointNotUnlock), + "RetGadgetInteractCondNotMeet" => Some(Self::RetGadgetInteractCondNotMeet), + "RetGadgetInteractParamError" => Some(Self::RetGadgetInteractParamError), + "RetGadgetCustomCombinationInvalid" => { + Some(Self::RetGadgetCustomCombinationInvalid) + } + "RetDeshretObeliskDuplicateInteract" => { + Some(Self::RetDeshretObeliskDuplicateInteract) + } + "RetDeshretObeliskNoAvailChest" => Some(Self::RetDeshretObeliskNoAvailChest), + "RetVehicleSorushNotReplace" => Some(Self::RetVehicleSorushNotReplace), + "RetVehicleSorushNotUnload" => Some(Self::RetVehicleSorushNotUnload), + "RetVehicleSorushStateNotMatch" => Some(Self::RetVehicleSorushStateNotMatch), + "RetGivingNotInMyWorld" => Some(Self::RetGivingNotInMyWorld), + "RetGivingIsFrozen" => Some(Self::RetGivingIsFrozen), + "RetActivityClose" => Some(Self::RetActivityClose), + "RetActivityItemError" => Some(Self::RetActivityItemError), + "RetActivityContributionNotEnough" => { + Some(Self::RetActivityContributionNotEnough) + } + "RetSeaLampPhaseNotFinish" => Some(Self::RetSeaLampPhaseNotFinish), + "RetSeaLampFlyNumLimit" => Some(Self::RetSeaLampFlyNumLimit), + "RetSeaLampFlyLampWordIllegal" => Some(Self::RetSeaLampFlyLampWordIllegal), + "RetActivityWatcherRewardTaken" => Some(Self::RetActivityWatcherRewardTaken), + "RetActivityWatcherRewardNotFinished" => { + Some(Self::RetActivityWatcherRewardNotFinished) + } + "RetSalesmanAlreadyDelivered" => Some(Self::RetSalesmanAlreadyDelivered), + "RetSalesmanRewardCountNotEnough" => { + Some(Self::RetSalesmanRewardCountNotEnough) + } + "RetSalesmanPositionInvalid" => Some(Self::RetSalesmanPositionInvalid), + "RetDeliverNotFinishAllQuest" => Some(Self::RetDeliverNotFinishAllQuest), + "RetDeliverAlreadyTakeDailyReward" => { + Some(Self::RetDeliverAlreadyTakeDailyReward) + } + "RetAsterProgressExceedLimit" => Some(Self::RetAsterProgressExceedLimit), + "RetAsterCreditExceedLimit" => Some(Self::RetAsterCreditExceedLimit), + "RetAsterTokenExceedLimit" => Some(Self::RetAsterTokenExceedLimit), + "RetAsterCreditNotEnough" => Some(Self::RetAsterCreditNotEnough), + "RetAsterTokenNotEnough" => Some(Self::RetAsterTokenNotEnough), + "RetAsterSpecialRewardHasTaken" => Some(Self::RetAsterSpecialRewardHasTaken), + "RetFlightGroupActivityNotStarted" => { + Some(Self::RetFlightGroupActivityNotStarted) + } + "RetAsterMidPreviousBattleNotFinished" => { + Some(Self::RetAsterMidPreviousBattleNotFinished) + } + "RetDragonSpineShimmeringEssenceExceedLimit" => { + Some(Self::RetDragonSpineShimmeringEssenceExceedLimit) + } + "RetDragonSpineWarmEssenceExceedLimit" => { + Some(Self::RetDragonSpineWarmEssenceExceedLimit) + } + "RetDragonSpineWondrousEssenceExceedLimit" => { + Some(Self::RetDragonSpineWondrousEssenceExceedLimit) + } + "RetDragonSpineShimmeringEssenceNotEnough" => { + Some(Self::RetDragonSpineShimmeringEssenceNotEnough) + } + "RetDragonSpineWarmEssenceNotEnough" => { + Some(Self::RetDragonSpineWarmEssenceNotEnough) + } + "RetDragonSpineWondrousEssenceNotEnough" => { + Some(Self::RetDragonSpineWondrousEssenceNotEnough) + } + "RetEffigyFirstPassRewardHasTaken" => { + Some(Self::RetEffigyFirstPassRewardHasTaken) + } + "RetEffigyRewardHasTaken" => Some(Self::RetEffigyRewardHasTaken), + "RetTreasureMapAddTokenExceedLimit" => { + Some(Self::RetTreasureMapAddTokenExceedLimit) + } + "RetTreasureMapTokenNotEnought" => Some(Self::RetTreasureMapTokenNotEnought), + "RetSeaLampCoinExceedLimit" => Some(Self::RetSeaLampCoinExceedLimit), + "RetSeaLampCoinNotEnough" => Some(Self::RetSeaLampCoinNotEnough), + "RetSeaLampPopularityExceedLimit" => { + Some(Self::RetSeaLampPopularityExceedLimit) + } + "RetActivityAvatarRewardNotOpen" => { + Some(Self::RetActivityAvatarRewardNotOpen) + } + "RetActivityAvatarRewardHasTaken" => { + Some(Self::RetActivityAvatarRewardHasTaken) + } + "RetArenaActivityAlreadyStarted" => { + Some(Self::RetArenaActivityAlreadyStarted) + } + "RetTalentAlreayUnlocked" => Some(Self::RetTalentAlreayUnlocked), + "RetPrevTalentNotUnlocked" => Some(Self::RetPrevTalentNotUnlocked), + "RetBigTalentPointNotEnough" => Some(Self::RetBigTalentPointNotEnough), + "RetSmallTalentPointNotEnough" => Some(Self::RetSmallTalentPointNotEnough), + "RetProudSkillAlreadyGot" => Some(Self::RetProudSkillAlreadyGot), + "RetPrevProudSkillNotGet" => Some(Self::RetPrevProudSkillNotGet), + "RetProudSkillMaxLevel" => Some(Self::RetProudSkillMaxLevel), + "RetCandidateSkillDepotIdNotFind" => { + Some(Self::RetCandidateSkillDepotIdNotFind) + } + "RetSkillDepotIsTheSame" => Some(Self::RetSkillDepotIsTheSame), + "RetMonsterNotExist" => Some(Self::RetMonsterNotExist), + "RetMonsterCreateFail" => Some(Self::RetMonsterCreateFail), + "RetDungeonEnterFail" => Some(Self::RetDungeonEnterFail), + "RetDungeonQuitFail" => Some(Self::RetDungeonQuitFail), + "RetDungeonEnterExceedDayCount" => Some(Self::RetDungeonEnterExceedDayCount), + "RetDungeonReviveExceedMaxCount" => { + Some(Self::RetDungeonReviveExceedMaxCount) + } + "RetDungeonReviveFail" => Some(Self::RetDungeonReviveFail), + "RetDungeonNotSucceed" => Some(Self::RetDungeonNotSucceed), + "RetDungeonCanNotCancel" => Some(Self::RetDungeonCanNotCancel), + "RetDestDungeonSettled" => Some(Self::RetDestDungeonSettled), + "RetDungeonCandidateTeamIsFull" => Some(Self::RetDungeonCandidateTeamIsFull), + "RetDungeonCandidateTeamIsDismiss" => { + Some(Self::RetDungeonCandidateTeamIsDismiss) + } + "RetDungeonCandidateTeamNotAllReady" => { + Some(Self::RetDungeonCandidateTeamNotAllReady) + } + "RetDungeonCandidateTeamHasRepeatAvatar" => { + Some(Self::RetDungeonCandidateTeamHasRepeatAvatar) + } + "RetDungeonCandidateNotSingelPass" => { + Some(Self::RetDungeonCandidateNotSingelPass) + } + "RetDungeonReplayNeedAllPlayerDie" => { + Some(Self::RetDungeonReplayNeedAllPlayerDie) + } + "RetDungeonReplayHasReviveCount" => { + Some(Self::RetDungeonReplayHasReviveCount) + } + "RetDungeonOthersLeave" => Some(Self::RetDungeonOthersLeave), + "RetDungeonEnterLevelLimit" => Some(Self::RetDungeonEnterLevelLimit), + "RetDungeonCannotEnterPlotInMp" => Some(Self::RetDungeonCannotEnterPlotInMp), + "RetDungeonDropSubfieldLimit" => Some(Self::RetDungeonDropSubfieldLimit), + "RetDungeonBeInvitePlayerAvatarAllDie" => { + Some(Self::RetDungeonBeInvitePlayerAvatarAllDie) + } + "RetDungeonCannotKick" => Some(Self::RetDungeonCannotKick), + "RetDungeonCandidateTeamSomeoneLevelLimit" => { + Some(Self::RetDungeonCandidateTeamSomeoneLevelLimit) + } + "RetDungeonInForceQuit" => Some(Self::RetDungeonInForceQuit), + "RetDungeonGuestQuitDungeon" => Some(Self::RetDungeonGuestQuitDungeon), + "RetDungeonTicketFail" => Some(Self::RetDungeonTicketFail), + "RetCurDungeonSettled" => Some(Self::RetCurDungeonSettled), + "RetCurDungeonNotPlot" => Some(Self::RetCurDungeonNotPlot), + "RetCurDungeonNotAllowSwitchTeam" => { + Some(Self::RetCurDungeonNotAllowSwitchTeam) + } + "RetDungeonEnteredByCandidateTeam" => { + Some(Self::RetDungeonEnteredByCandidateTeam) + } + "RetDungeonSwitchTeamBannedByPlay" => { + Some(Self::RetDungeonSwitchTeamBannedByPlay) + } + "RetDungeonEnterTeamInternalError" => { + Some(Self::RetDungeonEnterTeamInternalError) + } + "RetDungeonEnterTeamSomeoneLevelLimit" => { + Some(Self::RetDungeonEnterTeamSomeoneLevelLimit) + } + "RetDungeonEnterTeamSomeoneNotInSceneTeam" => { + Some(Self::RetDungeonEnterTeamSomeoneNotInSceneTeam) + } + "RetMpNotInMyWorld" => Some(Self::RetMpNotInMyWorld), + "RetMpInMpMode" => Some(Self::RetMpInMpMode), + "RetMpSceneIsFull" => Some(Self::RetMpSceneIsFull), + "RetMpModeNotAvailable" => Some(Self::RetMpModeNotAvailable), + "RetMpPlayerNotEnterable" => Some(Self::RetMpPlayerNotEnterable), + "RetMpQuestBlockMp" => Some(Self::RetMpQuestBlockMp), + "RetMpInRoomScene" => Some(Self::RetMpInRoomScene), + "RetMpWorldIsFull" => Some(Self::RetMpWorldIsFull), + "RetMpPlayerNotAllowEnter" => Some(Self::RetMpPlayerNotAllowEnter), + "RetMpPlayerDisconnected" => Some(Self::RetMpPlayerDisconnected), + "RetMpNotInMpMode" => Some(Self::RetMpNotInMpMode), + "RetMpOwnerNotEnter" => Some(Self::RetMpOwnerNotEnter), + "RetMpAllowEnterPlayerFull" => Some(Self::RetMpAllowEnterPlayerFull), + "RetMpTargetPlayerInTransfer" => Some(Self::RetMpTargetPlayerInTransfer), + "RetMpTargetEnteringOther" => Some(Self::RetMpTargetEnteringOther), + "RetMpOtherEntering" => Some(Self::RetMpOtherEntering), + "RetMpEnterMainPlayerInPlot" => Some(Self::RetMpEnterMainPlayerInPlot), + "RetMpNotPsPlayer" => Some(Self::RetMpNotPsPlayer), + "RetMpPlayNotActive" => Some(Self::RetMpPlayNotActive), + "RetMpPlayRemainRewards" => Some(Self::RetMpPlayRemainRewards), + "RetMpPlayNoReward" => Some(Self::RetMpPlayNoReward), + "RetMpOpenStateFail" => Some(Self::RetMpOpenStateFail), + "RetMpPlayerInBlacklist" => Some(Self::RetMpPlayerInBlacklist), + "RetMpReplyTimeout" => Some(Self::RetMpReplyTimeout), + "RetMpIsBlock" => Some(Self::RetMpIsBlock), + "RetMpEnterMainPlayerInMpPlay" => Some(Self::RetMpEnterMainPlayerInMpPlay), + "RetMpInMpPlayBattle" => Some(Self::RetMpInMpPlayBattle), + "RetMpGuestHasRewardRemained" => Some(Self::RetMpGuestHasRewardRemained), + "RetMpQuitMpInvalid" => Some(Self::RetMpQuitMpInvalid), + "RetMpOtherDataVersionNotLatest" => { + Some(Self::RetMpOtherDataVersionNotLatest) + } + "RetMpDataVersionNotLatest" => Some(Self::RetMpDataVersionNotLatest), + "RetMpCurWorldNotEnterable" => Some(Self::RetMpCurWorldNotEnterable), + "RetMpAnyGalleryStarted" => Some(Self::RetMpAnyGalleryStarted), + "RetMpHasActiveDraft" => Some(Self::RetMpHasActiveDraft), + "RetMpPlayerInDungeon" => Some(Self::RetMpPlayerInDungeon), + "RetMpMatchFull" => Some(Self::RetMpMatchFull), + "RetMpMatchLimit" => Some(Self::RetMpMatchLimit), + "RetMpMatchInPunish" => Some(Self::RetMpMatchInPunish), + "RetMpIsInMultistage" => Some(Self::RetMpIsInMultistage), + "RetMpMatchPlayNotOpen" => Some(Self::RetMpMatchPlayNotOpen), + "RetMpOnlyMpWithPsPlayer" => Some(Self::RetMpOnlyMpWithPsPlayer), + "RetMpGuestLoadingFirstEnter" => Some(Self::RetMpGuestLoadingFirstEnter), + "RetMpSummerTimeSprintBoatOngoing" => { + Some(Self::RetMpSummerTimeSprintBoatOngoing) + } + "RetMpBlitzRushParkourChallengeOngoing" => { + Some(Self::RetMpBlitzRushParkourChallengeOngoing) + } + "RetMpMusicGameOngoing" => Some(Self::RetMpMusicGameOngoing), + "RetMpInMpingMode" => Some(Self::RetMpInMpingMode), + "RetMpOwnerInSingleScene" => Some(Self::RetMpOwnerInSingleScene), + "RetMpInSingleScene" => Some(Self::RetMpInSingleScene), + "RetMpReplyNoValidAvatar" => Some(Self::RetMpReplyNoValidAvatar), + "RetMpIsNotInTransferGuard" => Some(Self::RetMpIsNotInTransferGuard), + "RetMpCannotExecGivingInSingleModeQuest" => { + Some(Self::RetMpCannotExecGivingInSingleModeQuest) + } + "RetMpEffigyChallengeV4InPrepare" => { + Some(Self::RetMpEffigyChallengeV4InPrepare) + } + "RetMpShuffleBoardOngoing" => Some(Self::RetMpShuffleBoardOngoing), + "RetMpFlightGearOngoing" => Some(Self::RetMpFlightGearOngoing), + "RetMpToyBattleQteOngoing" => Some(Self::RetMpToyBattleQteOngoing), + "RetMpPaintingRepairOngoing" => Some(Self::RetMpPaintingRepairOngoing), + "RetMpFishblasterOngoing" => Some(Self::RetMpFishblasterOngoing), + "RetMpGuestMatchCondNotMeet" => Some(Self::RetMpGuestMatchCondNotMeet), + "RetMailParaErr" => Some(Self::RetMailParaErr), + "RetMailMaxNum" => Some(Self::RetMailMaxNum), + "RetMailItemNumExceed" => Some(Self::RetMailItemNumExceed), + "RetMailTitleLenExceed" => Some(Self::RetMailTitleLenExceed), + "RetMailContentLenExceed" => Some(Self::RetMailContentLenExceed), + "RetMailSenderLenExceed" => Some(Self::RetMailSenderLenExceed), + "RetMailParsePacketFail" => Some(Self::RetMailParsePacketFail), + "RetOfflineMsgMaxNum" => Some(Self::RetOfflineMsgMaxNum), + "RetOfflineMsgSameTicket" => Some(Self::RetOfflineMsgSameTicket), + "RetMailExcelMailTypeError" => Some(Self::RetMailExcelMailTypeError), + "RetMailCannotSendMcoin" => Some(Self::RetMailCannotSendMcoin), + "RetMailHcoinExceedLimit" => Some(Self::RetMailHcoinExceedLimit), + "RetMailScoinExceedLimit" => Some(Self::RetMailScoinExceedLimit), + "RetMailMaterialIdInvalid" => Some(Self::RetMailMaterialIdInvalid), + "RetMailAvatarExceedLimit" => Some(Self::RetMailAvatarExceedLimit), + "RetMailGachaTicketEtcExceedLimit" => { + Some(Self::RetMailGachaTicketEtcExceedLimit) + } + "RetMailItemExceedCehuaLimit" => Some(Self::RetMailItemExceedCehuaLimit), + "RetMailSpaceOrRestNumNotEnough" => { + Some(Self::RetMailSpaceOrRestNumNotEnough) + } + "RetMailTicketIsEmpty" => Some(Self::RetMailTicketIsEmpty), + "RetMailTransactionIsEmpty" => Some(Self::RetMailTransactionIsEmpty), + "RetMailDeleteCollected" => Some(Self::RetMailDeleteCollected), + "RetMailCollectionIsFull" => Some(Self::RetMailCollectionIsFull), + "RetMailTitleCharacterLenExceed" => { + Some(Self::RetMailTitleCharacterLenExceed) + } + "RetMailTitleEmpty" => Some(Self::RetMailTitleEmpty), + "RetMailContentEmpty" => Some(Self::RetMailContentEmpty), + "RetMailSenderEmpty" => Some(Self::RetMailSenderEmpty), + "RetDailyTaskNotFinish" => Some(Self::RetDailyTaskNotFinish), + "RetDailyTaksHasTaken" => Some(Self::RetDailyTaksHasTaken), + "RetSocialOfflineMsgNumExceed" => Some(Self::RetSocialOfflineMsgNumExceed), + "RetDailyTaskFilterCityNotOpen" => Some(Self::RetDailyTaskFilterCityNotOpen), + "RetDailyAttendanceNotOpen" => Some(Self::RetDailyAttendanceNotOpen), + "RetDailyAttendanceRewardMax" => Some(Self::RetDailyAttendanceRewardMax), + "RetGachaInavailable" => Some(Self::RetGachaInavailable), + "RetGachaRandomNotMatch" => Some(Self::RetGachaRandomNotMatch), + "RetGachaScheduleNotMatch" => Some(Self::RetGachaScheduleNotMatch), + "RetGachaInvalidTimes" => Some(Self::RetGachaInvalidTimes), + "RetGachaCostItemNotEnough" => Some(Self::RetGachaCostItemNotEnough), + "RetGachaTimesLimit" => Some(Self::RetGachaTimesLimit), + "RetGachaWishSameItem" => Some(Self::RetGachaWishSameItem), + "RetGachaWishInvalidItem" => Some(Self::RetGachaWishInvalidItem), + "RetGachaMinorsTimesLimit" => Some(Self::RetGachaMinorsTimesLimit), + "RetGachaGeneralTimesLimit" => Some(Self::RetGachaGeneralTimesLimit), + "RetGachaWishIsNeededBeforeGacha" => { + Some(Self::RetGachaWishIsNeededBeforeGacha) + } + "RetInvestigaitonNotInProgress" => Some(Self::RetInvestigaitonNotInProgress), + "RetInvestigaitonUncomplete" => Some(Self::RetInvestigaitonUncomplete), + "RetInvestigaitonRewardTaken" => Some(Self::RetInvestigaitonRewardTaken), + "RetInvestigaitonTargetStateError" => { + Some(Self::RetInvestigaitonTargetStateError) + } + "RetPushTipsNotFound" => Some(Self::RetPushTipsNotFound), + "RetSignInRecordNotFound" => Some(Self::RetSignInRecordNotFound), + "RetAlreadyHaveSignedIn" => Some(Self::RetAlreadyHaveSignedIn), + "RetSignInCondNotSatisfied" => Some(Self::RetSignInCondNotSatisfied), + "RetBonusActivityNotUnrewarded" => Some(Self::RetBonusActivityNotUnrewarded), + "RetSignInRewarded" => Some(Self::RetSignInRewarded), + "RetTowerNotOpen" => Some(Self::RetTowerNotOpen), + "RetTowerHaveDailyRecord" => Some(Self::RetTowerHaveDailyRecord), + "RetTowerNotRecord" => Some(Self::RetTowerNotRecord), + "RetTowerHaveRecord" => Some(Self::RetTowerHaveRecord), + "RetTowerTeamNumError" => Some(Self::RetTowerTeamNumError), + "RetTowerFloorNotOpen" => Some(Self::RetTowerFloorNotOpen), + "RetTowerNoFloorStarRecord" => Some(Self::RetTowerNoFloorStarRecord), + "RetAlreadyHasTowerBuff" => Some(Self::RetAlreadyHasTowerBuff), + "RetDuplicateEnterLevel" => Some(Self::RetDuplicateEnterLevel), + "RetNotInTowerLevel" => Some(Self::RetNotInTowerLevel), + "RetInTowerLevel" => Some(Self::RetInTowerLevel), + "RetTowerPrevFloorNotFinish" => Some(Self::RetTowerPrevFloorNotFinish), + "RetTowerStarNotEnough" => Some(Self::RetTowerStarNotEnough), + "RetBattlePassNoSchedule" => Some(Self::RetBattlePassNoSchedule), + "RetBattlePassHasBuyed" => Some(Self::RetBattlePassHasBuyed), + "RetBattlePassLevelOverflow" => Some(Self::RetBattlePassLevelOverflow), + "RetBattlePassProductExpired" => Some(Self::RetBattlePassProductExpired), + "RetMatchHostQuit" => Some(Self::RetMatchHostQuit), + "RetMatchAlreadyInMatch" => Some(Self::RetMatchAlreadyInMatch), + "RetMatchNotInMatch" => Some(Self::RetMatchNotInMatch), + "RetMatchApplyingEnterMp" => Some(Self::RetMatchApplyingEnterMp), + "RetMatchIncorrectScene" => Some(Self::RetMatchIncorrectScene), + "RetWidgetTreasureSpotNotFound" => Some(Self::RetWidgetTreasureSpotNotFound), + "RetWidgetTreasureEntityExists" => Some(Self::RetWidgetTreasureEntityExists), + "RetWidgetTreasureSpotFarAway" => Some(Self::RetWidgetTreasureSpotFarAway), + "RetWidgetTreasureFinishedToday" => { + Some(Self::RetWidgetTreasureFinishedToday) + } + "RetWidgetQuickUseReqParamError" => { + Some(Self::RetWidgetQuickUseReqParamError) + } + "RetWidgetCameraScanIdError" => Some(Self::RetWidgetCameraScanIdError), + "RetWidgetNotActive" => Some(Self::RetWidgetNotActive), + "RetWidgetFeatherNotActive" => Some(Self::RetWidgetFeatherNotActive), + "RetWidgetFeatherGadgetTooFarAway" => { + Some(Self::RetWidgetFeatherGadgetTooFarAway) + } + "RetWidgetCaptureAnimalNotExist" => { + Some(Self::RetWidgetCaptureAnimalNotExist) + } + "RetWidgetCaptureAnimalDropBagLimit" => { + Some(Self::RetWidgetCaptureAnimalDropBagLimit) + } + "RetWidgetCaptureAnimalCanNotCapture" => { + Some(Self::RetWidgetCaptureAnimalCanNotCapture) + } + "RetWidgetSkyCrystalAllCollected" => { + Some(Self::RetWidgetSkyCrystalAllCollected) + } + "RetWidgetSkyCrystalHintAlreadyExist" => { + Some(Self::RetWidgetSkyCrystalHintAlreadyExist) + } + "RetWidgetSkyCrystalNotFound" => Some(Self::RetWidgetSkyCrystalNotFound), + "RetWidgetSkyCrystalNoHintToClear" => { + Some(Self::RetWidgetSkyCrystalNoHintToClear) + } + "RetWidgetLightStoneEnergyNotEnough" => { + Some(Self::RetWidgetLightStoneEnergyNotEnough) + } + "RetWidgetToyCrystalEnergyNotEnough" => { + Some(Self::RetWidgetToyCrystalEnergyNotEnough) + } + "RetWidgetLightStoneLevelNotEnough" => { + Some(Self::RetWidgetLightStoneLevelNotEnough) + } + "RetWidgetQuickSlotNotInWidgetPanel" => { + Some(Self::RetWidgetQuickSlotNotInWidgetPanel) + } + "RetRoleCombatNotRecord" => Some(Self::RetRoleCombatNotRecord), + "RetRoleCombatCoinExceedLimit" => Some(Self::RetRoleCombatCoinExceedLimit), + "RetRoleCombatCoinNotEnough" => Some(Self::RetRoleCombatCoinNotEnough), + "RetRoleCombatLevelNotMeet" => Some(Self::RetRoleCombatLevelNotMeet), + "RetRoleCombatTowerNotMeet" => Some(Self::RetRoleCombatTowerNotMeet), + "RetRoleCombatScheduleNotMeet" => Some(Self::RetRoleCombatScheduleNotMeet), + "RetRoleCombatReqFriendRentAvatarFrequently" => { + Some(Self::RetRoleCombatReqFriendRentAvatarFrequently) + } + "RetRoleCombatReqTrialAvatarFrequently" => { + Some(Self::RetRoleCombatReqTrialAvatarFrequently) + } + "RetRoleCombatRefreshCountNotEnough" => { + Some(Self::RetRoleCombatRefreshCountNotEnough) + } + "RetRoleCombatQuestNotMeet" => Some(Self::RetRoleCombatQuestNotMeet), + "RetInRoleCombatDungeon" => Some(Self::RetInRoleCombatDungeon), + "RetInRoleCombatDungeonByUseItem" => { + Some(Self::RetInRoleCombatDungeonByUseItem) + } + "RetRoleCombatRentAvatarNotFound" => { + Some(Self::RetRoleCombatRentAvatarNotFound) + } + "RetRoleCombatCardHasBlocked" => Some(Self::RetRoleCombatCardHasBlocked), + "RetCharMasterKeyExceedLimit" => Some(Self::RetCharMasterKeyExceedLimit), + "RetCharMasterKeyNotEnough" => Some(Self::RetCharMasterKeyNotEnough), + "RetCharMasterPreviewInCd" => Some(Self::RetCharMasterPreviewInCd), + "RetUidNotExist" => Some(Self::RetUidNotExist), + "RetParseBinError" => Some(Self::RetParseBinError), + "RetAccountInfoNotExist" => Some(Self::RetAccountInfoNotExist), + "RetOrderInfoNotExist" => Some(Self::RetOrderInfoNotExist), + "RetSnapshotIndexError" => Some(Self::RetSnapshotIndexError), + "RetMailHasBeenSent" => Some(Self::RetMailHasBeenSent), + "RetProductNotExist" => Some(Self::RetProductNotExist), + "RetUnfinishOrder" => Some(Self::RetUnfinishOrder), + "RetIdNotExist" => Some(Self::RetIdNotExist), + "RetOrderTradeEarly" => Some(Self::RetOrderTradeEarly), + "RetOrderFinished" => Some(Self::RetOrderFinished), + "RetGameserverVersionWrong" => Some(Self::RetGameserverVersionWrong), + "RetOfflineOpFullLength" => Some(Self::RetOfflineOpFullLength), + "RetConcertProductObtainLimit" => Some(Self::RetConcertProductObtainLimit), + "RetConcertProductTicketDuplicated" => { + Some(Self::RetConcertProductTicketDuplicated) + } + "RetConcertProductTicketEmpty" => Some(Self::RetConcertProductTicketEmpty), + "RetRedisModified" => Some(Self::RetRedisModified), + "RetRedisUidNotExist" => Some(Self::RetRedisUidNotExist), + "RetPathfindingDataNotExist" => Some(Self::RetPathfindingDataNotExist), + "RetPathfindingDestinationNotExist" => { + Some(Self::RetPathfindingDestinationNotExist) + } + "RetPathfindingErrorScene" => Some(Self::RetPathfindingErrorScene), + "RetPathfindingSceneDataLoading" => { + Some(Self::RetPathfindingSceneDataLoading) + } + "RetTothemoonErrorScene" => Some(Self::RetTothemoonErrorScene), + "RetTothemoonPlayerNotExist" => Some(Self::RetTothemoonPlayerNotExist), + "RetFriendCountExceeded" => Some(Self::RetFriendCountExceeded), + "RetPlayerNotExist" => Some(Self::RetPlayerNotExist), + "RetAlreadySentAddRequest" => Some(Self::RetAlreadySentAddRequest), + "RetAskFriendListFull" => Some(Self::RetAskFriendListFull), + "RetPlayerAlreadyIsFriend" => Some(Self::RetPlayerAlreadyIsFriend), + "RetPlayerNotAskFriend" => Some(Self::RetPlayerNotAskFriend), + "RetTargetFriendCountExceed" => Some(Self::RetTargetFriendCountExceed), + "RetNotFriend" => Some(Self::RetNotFriend), + "RetBirthdayCannotBeSetTwice" => Some(Self::RetBirthdayCannotBeSetTwice), + "RetCannotAddSelfFriend" => Some(Self::RetCannotAddSelfFriend), + "RetSignatureIllegal" => Some(Self::RetSignatureIllegal), + "RetPsPlayerCannotAddFriends" => Some(Self::RetPsPlayerCannotAddFriends), + "RetPsPlayerCannotRemoveFriends" => { + Some(Self::RetPsPlayerCannotRemoveFriends) + } + "RetNameCardNotUnlocked" => Some(Self::RetNameCardNotUnlocked), + "RetAlreadyInBlacklist" => Some(Self::RetAlreadyInBlacklist), + "RetPsPaleyrsCannotAddBlacklist" => { + Some(Self::RetPsPaleyrsCannotAddBlacklist) + } + "RetPlayerBlacklistFull" => Some(Self::RetPlayerBlacklistFull), + "RetPlayerNotInBlacklist" => Some(Self::RetPlayerNotInBlacklist), + "RetBlacklistPlayerCannotAddFriend" => { + Some(Self::RetBlacklistPlayerCannotAddFriend) + } + "RetInTargetBlacklist" => Some(Self::RetInTargetBlacklist), + "RetCannotAddTargetFriend" => Some(Self::RetCannotAddTargetFriend), + "RetBirthdayFormatError" => Some(Self::RetBirthdayFormatError), + "RetOnlineIdNotExists" => Some(Self::RetOnlineIdNotExists), + "RetFirstShareRewardHasTaken" => Some(Self::RetFirstShareRewardHasTaken), + "RetPsPlayerCannotRemoveBlacklist" => { + Some(Self::RetPsPlayerCannotRemoveBlacklist) + } + "RetReportCd" => Some(Self::RetReportCd), + "RetReportContentIllegal" => Some(Self::RetReportContentIllegal), + "RetRemarkWordIllegal" => Some(Self::RetRemarkWordIllegal), + "RetRemarkTooLong" => Some(Self::RetRemarkTooLong), + "RetRemarkUtf8Error" => Some(Self::RetRemarkUtf8Error), + "RetRemarkIsEmpty" => Some(Self::RetRemarkIsEmpty), + "RetAskAddFriendCd" => Some(Self::RetAskAddFriendCd), + "RetShowAvatarInfoNotExist" => Some(Self::RetShowAvatarInfoNotExist), + "RetPlayerNotShowAvatar" => Some(Self::RetPlayerNotShowAvatar), + "RetSocialUpdateShowListRepeatId" => { + Some(Self::RetSocialUpdateShowListRepeatId) + } + "RetPsnIdNotFound" => Some(Self::RetPsnIdNotFound), + "RetEmojiCollectionNumExceedLimit" => { + Some(Self::RetEmojiCollectionNumExceedLimit) + } + "RetRemarkEmpty" => Some(Self::RetRemarkEmpty), + "RetInTargetPsnBlacklist" => Some(Self::RetInTargetPsnBlacklist), + "RetSignatureNotChanged" => Some(Self::RetSignatureNotChanged), + "RetSignatureMonthlyLimit" => Some(Self::RetSignatureMonthlyLimit), + "RetReqFriendAvatarFrequently" => Some(Self::RetReqFriendAvatarFrequently), + "RetPsnGetPlayerSocialDetailFail" => { + Some(Self::RetPsnGetPlayerSocialDetailFail) + } + "RetProfilePictureNotUnlocked" => Some(Self::RetProfilePictureNotUnlocked), + "RetOfferingNotOpen" => Some(Self::RetOfferingNotOpen), + "RetOfferingLevelLimit" => Some(Self::RetOfferingLevelLimit), + "RetOfferingLevelNotReach" => Some(Self::RetOfferingLevelNotReach), + "RetOfferingLevelHasTaken" => Some(Self::RetOfferingLevelHasTaken), + "RetOfferingPariSearchNotOpen" => Some(Self::RetOfferingPariSearchNotOpen), + "RetOfferingPariNotFinish" => Some(Self::RetOfferingPariNotFinish), + "RetOfferingPariFinishRewardHasTaken" => { + Some(Self::RetOfferingPariFinishRewardHasTaken) + } + "RetOfferingPariSearchAllFinish" => { + Some(Self::RetOfferingPariSearchAllFinish) + } + "RetOfferingPariNoFinishReward" => Some(Self::RetOfferingPariNoFinishReward), + "RetCityReputationNotOpen" => Some(Self::RetCityReputationNotOpen), + "RetCityReputationLevelTaken" => Some(Self::RetCityReputationLevelTaken), + "RetCityReputationLevelNotReach" => { + Some(Self::RetCityReputationLevelNotReach) + } + "RetCityReputationParentQuestTaken" => { + Some(Self::RetCityReputationParentQuestTaken) + } + "RetCityReputationParentQuestUnfinish" => { + Some(Self::RetCityReputationParentQuestUnfinish) + } + "RetCityReputationAcceptRequest" => { + Some(Self::RetCityReputationAcceptRequest) + } + "RetCityReputationNotAcceptRequest" => { + Some(Self::RetCityReputationNotAcceptRequest) + } + "RetCityReputationAcceptRequestLimit" => { + Some(Self::RetCityReputationAcceptRequestLimit) + } + "RetCityReputationEntranceNotOpen" => { + Some(Self::RetCityReputationEntranceNotOpen) + } + "RetCityReputationTakenRequestReward" => { + Some(Self::RetCityReputationTakenRequestReward) + } + "RetCityReputationSwitchClose" => Some(Self::RetCityReputationSwitchClose), + "RetCityReputationEntraceSwitchClose" => { + Some(Self::RetCityReputationEntraceSwitchClose) + } + "RetCityReputationTakenExploreReward" => { + Some(Self::RetCityReputationTakenExploreReward) + } + "RetCityReputationExploreNotReach" => { + Some(Self::RetCityReputationExploreNotReach) + } + "RetTribalReputationNotOpen" => Some(Self::RetTribalReputationNotOpen), + "RetTribalReputationLevelTaken" => Some(Self::RetTribalReputationLevelTaken), + "RetTribalReputationLevelNotReach" => { + Some(Self::RetTribalReputationLevelNotReach) + } + "RetTribalReputationTakenExploreReward" => { + Some(Self::RetTribalReputationTakenExploreReward) + } + "RetTribalReputationExploreNotReach" => { + Some(Self::RetTribalReputationExploreNotReach) + } + "RetTribalReputationParentQuestTaken" => { + Some(Self::RetTribalReputationParentQuestTaken) + } + "RetTribalReputationParentQuestUnfinish" => { + Some(Self::RetTribalReputationParentQuestUnfinish) + } + "RetCityReputationNotOpenTribal" => { + Some(Self::RetCityReputationNotOpenTribal) + } + "RetCityReputationNoTheDonation" => { + Some(Self::RetCityReputationNoTheDonation) + } + "RetCityReputationDonationFinished" => { + Some(Self::RetCityReputationDonationFinished) + } + "RetCityReputationDonationLimit" => { + Some(Self::RetCityReputationDonationLimit) + } + "RetCityReputationTotalRewardTaken" => { + Some(Self::RetCityReputationTotalRewardTaken) + } + "RetCityReputationTotalRewardNotReach" => { + Some(Self::RetCityReputationTotalRewardNotReach) + } + "RetMechanicusNotOpen" => Some(Self::RetMechanicusNotOpen), + "RetMechanicusGearUnlock" => Some(Self::RetMechanicusGearUnlock), + "RetMechanicusGearLock" => Some(Self::RetMechanicusGearLock), + "RetMechanicusGearLevelLimit" => Some(Self::RetMechanicusGearLevelLimit), + "RetMechanicusCoinNotEnough" => Some(Self::RetMechanicusCoinNotEnough), + "RetMechanicusNoSequence" => Some(Self::RetMechanicusNoSequence), + "RetMechanicusSequenceLimitLevel" => { + Some(Self::RetMechanicusSequenceLimitLevel) + } + "RetMechanicusSequenceLimitOpen" => { + Some(Self::RetMechanicusSequenceLimitOpen) + } + "RetMechanicusDifficultNotSupport" => { + Some(Self::RetMechanicusDifficultNotSupport) + } + "RetMechanicusTicketNotEnough" => Some(Self::RetMechanicusTicketNotEnough), + "RetMechanicusTeachNotFinish" => Some(Self::RetMechanicusTeachNotFinish), + "RetMechanicusTeachFinished" => Some(Self::RetMechanicusTeachFinished), + "RetMechanicusPrevDifficultLevelBlock" => { + Some(Self::RetMechanicusPrevDifficultLevelBlock) + } + "RetMechanicusPlayerLimit" => Some(Self::RetMechanicusPlayerLimit), + "RetMechanicusPunishTime" => Some(Self::RetMechanicusPunishTime), + "RetMechanicusSwitchClose" => Some(Self::RetMechanicusSwitchClose), + "RetMechanicusBattleNotInDungeon" => { + Some(Self::RetMechanicusBattleNotInDungeon) + } + "RetMechanicusBattlePlayNotFound" => { + Some(Self::RetMechanicusBattlePlayNotFound) + } + "RetMechanicusBattleDuplicatePickCard" => { + Some(Self::RetMechanicusBattleDuplicatePickCard) + } + "RetMechanicusBattlePlayerNotInPlay" => { + Some(Self::RetMechanicusBattlePlayerNotInPlay) + } + "RetMechanicusBattleCardNotAvailable" => { + Some(Self::RetMechanicusBattleCardNotAvailable) + } + "RetMechanicusBattleNotInCardStage" => { + Some(Self::RetMechanicusBattleNotInCardStage) + } + "RetMechanicusBattleCardIsWaiting" => { + Some(Self::RetMechanicusBattleCardIsWaiting) + } + "RetMechanicusBattleCardAllConfirmed" => { + Some(Self::RetMechanicusBattleCardAllConfirmed) + } + "RetMechanicusBattleCardAlreadyConfirmed" => { + Some(Self::RetMechanicusBattleCardAlreadyConfirmed) + } + "RetMechanicusBattleCardConfirmedByOther" => { + Some(Self::RetMechanicusBattleCardConfirmedByOther) + } + "RetMechanicusBattleCardNotEnoughPoints" => { + Some(Self::RetMechanicusBattleCardNotEnoughPoints) + } + "RetMechanicusBattleCardAlreadySkipped" => { + Some(Self::RetMechanicusBattleCardAlreadySkipped) + } + "RetLegendaryKeyNotEnough" => Some(Self::RetLegendaryKeyNotEnough), + "RetLegendaryKeyExceedLimit" => Some(Self::RetLegendaryKeyExceedLimit), + "RetDailyTaskNotEnoughToRedeem" => Some(Self::RetDailyTaskNotEnoughToRedeem), + "RetPersonalLineOpenStateOff" => Some(Self::RetPersonalLineOpenStateOff), + "RetPersonalLineLevelNotEnough" => Some(Self::RetPersonalLineLevelNotEnough), + "RetPersonalLineNotOpen" => Some(Self::RetPersonalLineNotOpen), + "RetPersonalLinePreQuestNotFinish" => { + Some(Self::RetPersonalLinePreQuestNotFinish) + } + "RetHuntingAlreadyFinishOfferLimit" => { + Some(Self::RetHuntingAlreadyFinishOfferLimit) + } + "RetHuntingHasUnfinishedOffer" => Some(Self::RetHuntingHasUnfinishedOffer), + "RetHuntingFailedOfferNotCdReady" => { + Some(Self::RetHuntingFailedOfferNotCdReady) + } + "RetHuntingNotTakeOffer" => Some(Self::RetHuntingNotTakeOffer), + "RetHuntingCannotTakeTwice" => Some(Self::RetHuntingCannotTakeTwice), + "RetRpivateChatInvalidContentType" => { + Some(Self::RetRpivateChatInvalidContentType) + } + "RetPrivateChatTargetIsNotFriend" => { + Some(Self::RetPrivateChatTargetIsNotFriend) + } + "RetPrivateChatContentNotSupported" => { + Some(Self::RetPrivateChatContentNotSupported) + } + "RetPrivateChatContentTooLong" => Some(Self::RetPrivateChatContentTooLong), + "RetPrivateChatPullTooFast" => Some(Self::RetPrivateChatPullTooFast), + "RetPrivateChatRepeatRead" => Some(Self::RetPrivateChatRepeatRead), + "RetPrivateChatReadNotFriend" => Some(Self::RetPrivateChatReadNotFriend), + "RetReunionFinished" => Some(Self::RetReunionFinished), + "RetReunionNotActivated" => Some(Self::RetReunionNotActivated), + "RetReunionAlreadyTakeFirstReward" => { + Some(Self::RetReunionAlreadyTakeFirstReward) + } + "RetReunionSignInRewarded" => Some(Self::RetReunionSignInRewarded), + "RetReunionWatcherRewarded" => Some(Self::RetReunionWatcherRewarded), + "RetReunionWatcherNotFinish" => Some(Self::RetReunionWatcherNotFinish), + "RetReunionMissionRewarded" => Some(Self::RetReunionMissionRewarded), + "RetReunionMissionNotFinish" => Some(Self::RetReunionMissionNotFinish), + "RetReunionWatcherRewardNotUnlocked" => { + Some(Self::RetReunionWatcherRewardNotUnlocked) + } + "RetBlessingContentClosed" => Some(Self::RetBlessingContentClosed), + "RetBlessingNotActive" => Some(Self::RetBlessingNotActive), + "RetBlessingNotTodayEntity" => Some(Self::RetBlessingNotTodayEntity), + "RetBlessingEntityExceedScanNumLimit" => { + Some(Self::RetBlessingEntityExceedScanNumLimit) + } + "RetBlessingDailyScanNumExceedLimit" => { + Some(Self::RetBlessingDailyScanNumExceedLimit) + } + "RetBlessingRedeemRewardNumExceedLimit" => { + Some(Self::RetBlessingRedeemRewardNumExceedLimit) + } + "RetBlessingRedeemPicNumNotEnough" => { + Some(Self::RetBlessingRedeemPicNumNotEnough) + } + "RetBlessingPicNotEnough" => Some(Self::RetBlessingPicNotEnough), + "RetBlessingPicHasReceived" => Some(Self::RetBlessingPicHasReceived), + "RetBlessingTargetRecvNumExceed" => { + Some(Self::RetBlessingTargetRecvNumExceed) + } + "RetFleurFairCreditExceedLimit" => Some(Self::RetFleurFairCreditExceedLimit), + "RetFleurFairCreditNotEnough" => Some(Self::RetFleurFairCreditNotEnough), + "RetFleurFairTokenExceedLimit" => Some(Self::RetFleurFairTokenExceedLimit), + "RetFleurFairTokenNotEnough" => Some(Self::RetFleurFairTokenNotEnough), + "RetFleurFairMinigameNotOpen" => Some(Self::RetFleurFairMinigameNotOpen), + "RetFleurFairMusicGameDifficultyNotUnlock" => { + Some(Self::RetFleurFairMusicGameDifficultyNotUnlock) + } + "RetFleurFairDungeonLocked" => Some(Self::RetFleurFairDungeonLocked), + "RetFleurFairDungeonPunishTime" => Some(Self::RetFleurFairDungeonPunishTime), + "RetFleurFairOnlyOwnerCanRestartMinigam" => { + Some(Self::RetFleurFairOnlyOwnerCanRestartMinigam) + } + "RetWaterSpiritCoinExceedLimit" => Some(Self::RetWaterSpiritCoinExceedLimit), + "RetWaterSpiritCoinNotEnough" => Some(Self::RetWaterSpiritCoinNotEnough), + "RetRegionSearchNoSearch" => Some(Self::RetRegionSearchNoSearch), + "RetRegionSearchStateError" => Some(Self::RetRegionSearchStateError), + "RetBlessingGiveNumInvalid" => Some(Self::RetBlessingGiveNumInvalid), + "RetBlessingNoGroupOrOwner" => Some(Self::RetBlessingNoGroupOrOwner), + "RetChannellerSlabLoopDungeonStageNotOpen" => { + Some(Self::RetChannellerSlabLoopDungeonStageNotOpen) + } + "RetChannellerSlabLoopDungeonNotOpen" => { + Some(Self::RetChannellerSlabLoopDungeonNotOpen) + } + "RetChannellerSlabLoopDungeonFirstPassRewardHasTaken" => { + Some(Self::RetChannellerSlabLoopDungeonFirstPassRewardHasTaken) + } + "RetChannellerSlabLoopDungeonScoreRewardHasTaken" => { + Some(Self::RetChannellerSlabLoopDungeonScoreRewardHasTaken) + } + "RetChannellerSlabInvalidOneOffDungeon" => { + Some(Self::RetChannellerSlabInvalidOneOffDungeon) + } + "RetChannellerSlabOneOffDungeonDone" => { + Some(Self::RetChannellerSlabOneOffDungeonDone) + } + "RetChannellerSlabOneOffDungeonStageNotOpen" => { + Some(Self::RetChannellerSlabOneOffDungeonStageNotOpen) + } + "RetChannellerSlabTokenExceedLimit" => { + Some(Self::RetChannellerSlabTokenExceedLimit) + } + "RetChannellerSlabTokenNotEnough" => { + Some(Self::RetChannellerSlabTokenNotEnough) + } + "RetChannellerSlabPlayerNotInOneOffDungeon" => { + Some(Self::RetChannellerSlabPlayerNotInOneOffDungeon) + } + "RetMistTrialSelectCharacterNumNotEnough" => { + Some(Self::RetMistTrialSelectCharacterNumNotEnough) + } + "RetMistTrialAlreadyUsingTrialAvatar" => { + Some(Self::RetMistTrialAlreadyUsingTrialAvatar) + } + "RetHideAndSeekPlayNotOpen" => Some(Self::RetHideAndSeekPlayNotOpen), + "RetHideAndSeekPlayMapNotOpen" => Some(Self::RetHideAndSeekPlayMapNotOpen), + "RetHideAndSeekPlayMapNotChosen" => { + Some(Self::RetHideAndSeekPlayMapNotChosen) + } + "RetSummerTimeDraftWoordExceedLimit" => { + Some(Self::RetSummerTimeDraftWoordExceedLimit) + } + "RetSummerTimeDraftWoordNotEnough" => { + Some(Self::RetSummerTimeDraftWoordNotEnough) + } + "RetSummerTimeMiniHarpastumExceedLimit" => { + Some(Self::RetSummerTimeMiniHarpastumExceedLimit) + } + "RetSummerTimeMiniHarpastumnotEnough" => { + Some(Self::RetSummerTimeMiniHarpastumnotEnough) + } + "RetBounceConjuringCoinExceedLimit" => { + Some(Self::RetBounceConjuringCoinExceedLimit) + } + "RetBounceConjuringCoinNotEnough" => { + Some(Self::RetBounceConjuringCoinNotEnough) + } + "RetChessTeachMapFinished" => Some(Self::RetChessTeachMapFinished), + "RetChessTeachMapUnfinished" => Some(Self::RetChessTeachMapUnfinished), + "RetChessCoinExceedLimit" => Some(Self::RetChessCoinExceedLimit), + "RetChessCoinNotEnough" => Some(Self::RetChessCoinNotEnough), + "RetChessInPunishTime" => Some(Self::RetChessInPunishTime), + "RetChessPrevMapUnfinished" => Some(Self::RetChessPrevMapUnfinished), + "RetChessMapLocked" => Some(Self::RetChessMapLocked), + "RetBlitzRushNotOpen" => Some(Self::RetBlitzRushNotOpen), + "RetBlitzRushDungeonNotOpen" => Some(Self::RetBlitzRushDungeonNotOpen), + "RetBlitzRushCoinAExceedLimit" => Some(Self::RetBlitzRushCoinAExceedLimit), + "RetBlitzRushCoinBExceedLimit" => Some(Self::RetBlitzRushCoinBExceedLimit), + "RetBlitzRushCoinANotEnough" => Some(Self::RetBlitzRushCoinANotEnough), + "RetBlitzRushCoinBNotEnough" => Some(Self::RetBlitzRushCoinBNotEnough), + "RetMiracleRingValueNotEnough" => Some(Self::RetMiracleRingValueNotEnough), + "RetMiracleRingCd" => Some(Self::RetMiracleRingCd), + "RetMiracleRingRewardNotTaken" => Some(Self::RetMiracleRingRewardNotTaken), + "RetMiracleRingNotDeliver" => Some(Self::RetMiracleRingNotDeliver), + "RetMiracleRingDeliverExceed" => Some(Self::RetMiracleRingDeliverExceed), + "RetMiracleRingHasCreated" => Some(Self::RetMiracleRingHasCreated), + "RetMiracleRingHasNotCreated" => Some(Self::RetMiracleRingHasNotCreated), + "RetMiracleRingNotYours" => Some(Self::RetMiracleRingNotYours), + "RetGadgetFoundationUnauthorized" => { + Some(Self::RetGadgetFoundationUnauthorized) + } + "RetGadgetFoundationSceneNotFound" => { + Some(Self::RetGadgetFoundationSceneNotFound) + } + "RetGadgetFoundationNotInInitState" => { + Some(Self::RetGadgetFoundationNotInInitState) + } + "RetGadgetFoundationBildingPointNotEnought" => { + Some(Self::RetGadgetFoundationBildingPointNotEnought) + } + "RetGadgetFoundationNotInBuiltState" => { + Some(Self::RetGadgetFoundationNotInBuiltState) + } + "RetGadgetFoundationOpNotSupported" => { + Some(Self::RetGadgetFoundationOpNotSupported) + } + "RetGadgetFoundationReqPlayerNotInScene" => { + Some(Self::RetGadgetFoundationReqPlayerNotInScene) + } + "RetGadgetFoundationLockedByAnotherPlayer" => { + Some(Self::RetGadgetFoundationLockedByAnotherPlayer) + } + "RetGadgetFoundationNotLocked" => Some(Self::RetGadgetFoundationNotLocked), + "RetGadgetFoundationDuplicateLock" => { + Some(Self::RetGadgetFoundationDuplicateLock) + } + "RetGadgetFoundationPlayerNotFound" => { + Some(Self::RetGadgetFoundationPlayerNotFound) + } + "RetGadgetFoundationPlayerGearNotFound" => { + Some(Self::RetGadgetFoundationPlayerGearNotFound) + } + "RetGadgetFoundationRotaionDisabled" => { + Some(Self::RetGadgetFoundationRotaionDisabled) + } + "RetGadgetFoundationReachDungeonGearLimit" => { + Some(Self::RetGadgetFoundationReachDungeonGearLimit) + } + "RetGadgetFoundationReachSingleGearLimit" => { + Some(Self::RetGadgetFoundationReachSingleGearLimit) + } + "RetGadgetFoundationRotationOnGoing" => { + Some(Self::RetGadgetFoundationRotationOnGoing) + } + "RetOpActivityBonusNotFound" => Some(Self::RetOpActivityBonusNotFound), + "RetOpActivityNotOpen" => Some(Self::RetOpActivityNotOpen), + "RetMultistagePlayPlayerNotInScene" => { + Some(Self::RetMultistagePlayPlayerNotInScene) + } + "RetMultistagePlayNotFound" => Some(Self::RetMultistagePlayNotFound), + "RetMultistagePlayInOtherStage" => Some(Self::RetMultistagePlayInOtherStage), + "RetCoopChapterNotOpen" => Some(Self::RetCoopChapterNotOpen), + "RetCoopCondNotMeet" => Some(Self::RetCoopCondNotMeet), + "RetCoopPointLocked" => Some(Self::RetCoopPointLocked), + "RetCoopNotHaveProgress" => Some(Self::RetCoopNotHaveProgress), + "RetCoopRewardHasTaken" => Some(Self::RetCoopRewardHasTaken), + "RetDraftHasActiveDraft" => Some(Self::RetDraftHasActiveDraft), + "RetDraftNotInMyWorld" => Some(Self::RetDraftNotInMyWorld), + "RetDraftNotSupportMp" => Some(Self::RetDraftNotSupportMp), + "RetDraftPlayerNotEnough" => Some(Self::RetDraftPlayerNotEnough), + "RetDraftIncorrectScene" => Some(Self::RetDraftIncorrectScene), + "RetDraftOtherPlayerEntering" => Some(Self::RetDraftOtherPlayerEntering), + "RetDraftGuestIsTransferring" => Some(Self::RetDraftGuestIsTransferring), + "RetDraftGuestNotInDraftScene" => Some(Self::RetDraftGuestNotInDraftScene), + "RetDraftInviteOverTime" => Some(Self::RetDraftInviteOverTime), + "RetDraftTwiceConfirmOverTimer" => Some(Self::RetDraftTwiceConfirmOverTimer), + "RetDraftGuestNotInWorldScene" => Some(Self::RetDraftGuestNotInWorldScene), + "RetHomeUnkown" => Some(Self::RetHomeUnkown), + "RetHomeInvalidClientParam" => Some(Self::RetHomeInvalidClientParam), + "RetHomeTargePlayerHasNoHome" => Some(Self::RetHomeTargePlayerHasNoHome), + "RetHomeNotOnline" => Some(Self::RetHomeNotOnline), + "RetHomePlayerFull" => Some(Self::RetHomePlayerFull), + "RetHomeBlocked" => Some(Self::RetHomeBlocked), + "RetHomeAlreadyInTargetHomeWorld" => { + Some(Self::RetHomeAlreadyInTargetHomeWorld) + } + "RetHomeInEditMode" => Some(Self::RetHomeInEditMode), + "RetHomeNotInEditMode" => Some(Self::RetHomeNotInEditMode), + "RetHomeHasGuest" => Some(Self::RetHomeHasGuest), + "RetHomeCantEnterByInEditMode" => Some(Self::RetHomeCantEnterByInEditMode), + "RetHomeClientParamInvalid" => Some(Self::RetHomeClientParamInvalid), + "RetHomePlayerNotInHomeWorld" => Some(Self::RetHomePlayerNotInHomeWorld), + "RetHomePlayerNotInSelfHomeWorld" => { + Some(Self::RetHomePlayerNotInSelfHomeWorld) + } + "RetHomeNotFoundInMem" => Some(Self::RetHomeNotFoundInMem), + "RetHomePlayerInHomeRoomScene" => Some(Self::RetHomePlayerInHomeRoomScene), + "RetHomeHomeRefuseGuestEnter" => Some(Self::RetHomeHomeRefuseGuestEnter), + "RetHomeOwnerRefuseToEnterHome" => Some(Self::RetHomeOwnerRefuseToEnterHome), + "RetHomeOwnerOffline" => Some(Self::RetHomeOwnerOffline), + "RetHomeFurnitureExceedLimit" => Some(Self::RetHomeFurnitureExceedLimit), + "RetHomeFurnitureCountNotEnough" => { + Some(Self::RetHomeFurnitureCountNotEnough) + } + "RetHomeInTryEnterProcess" => Some(Self::RetHomeInTryEnterProcess), + "RetHomeAlreadyInTargetScene" => Some(Self::RetHomeAlreadyInTargetScene), + "RetHomeCoinExceedLimit" => Some(Self::RetHomeCoinExceedLimit), + "RetHomeCoinNotEnough" => Some(Self::RetHomeCoinNotEnough), + "RetHomeModuleNotUnlocked" => Some(Self::RetHomeModuleNotUnlocked), + "RetHomeCurModuleClosed" => Some(Self::RetHomeCurModuleClosed), + "RetHomeFurnitureSuiteNotUnlocked" => { + Some(Self::RetHomeFurnitureSuiteNotUnlocked) + } + "RetHomeInMatch" => Some(Self::RetHomeInMatch), + "RetHomeInCombat" => Some(Self::RetHomeInCombat), + "RetHomeEditModeCd" => Some(Self::RetHomeEditModeCd), + "RetHomeUpdateFurnitureCd" => Some(Self::RetHomeUpdateFurnitureCd), + "RetHomeBlockFurnitureLimit" => Some(Self::RetHomeBlockFurnitureLimit), + "RetHomeNotSupport" => Some(Self::RetHomeNotSupport), + "RetHomeStateNotOpen" => Some(Self::RetHomeStateNotOpen), + "RetHomeTargetStateNotOpen" => Some(Self::RetHomeTargetStateNotOpen), + "RetHomeApplyEnterOtherHomeFail" => { + Some(Self::RetHomeApplyEnterOtherHomeFail) + } + "RetHomeSaveNoMainHouse" => Some(Self::RetHomeSaveNoMainHouse), + "RetHomeInDungeon" => Some(Self::RetHomeInDungeon), + "RetHomeAnyGalleryStarted" => Some(Self::RetHomeAnyGalleryStarted), + "RetHomeQuestBlockHome" => Some(Self::RetHomeQuestBlockHome), + "RetHomeWaitingPriorCheck" => Some(Self::RetHomeWaitingPriorCheck), + "RetHomePersistentCheckFail" => Some(Self::RetHomePersistentCheckFail), + "RetHomeFindOnlineHomeFail" => Some(Self::RetHomeFindOnlineHomeFail), + "RetHomeJoinSceneFail" => Some(Self::RetHomeJoinSceneFail), + "RetHomeMaxPlayer" => Some(Self::RetHomeMaxPlayer), + "RetHomeInTransfer" => Some(Self::RetHomeInTransfer), + "RetHomeAnyHomeGalleryStarted" => Some(Self::RetHomeAnyHomeGalleryStarted), + "RetHomeCanNotEnterInAudit" => Some(Self::RetHomeCanNotEnterInAudit), + "RetFurnitureMakeIndexError" => Some(Self::RetFurnitureMakeIndexError), + "RetFurnitureMakeLocked" => Some(Self::RetFurnitureMakeLocked), + "RetFurnitureMakeConfigError" => Some(Self::RetFurnitureMakeConfigError), + "RetFurnitureMakeSlotFull" => Some(Self::RetFurnitureMakeSlotFull), + "RetFurnitureMakeAddFurnitureFail" => { + Some(Self::RetFurnitureMakeAddFurnitureFail) + } + "RetFurnitureMakeUnfinish" => Some(Self::RetFurnitureMakeUnfinish), + "RetFurnitureMakeIsFinish" => Some(Self::RetFurnitureMakeIsFinish), + "RetFurnitureMakeNotInCorrectHome" => { + Some(Self::RetFurnitureMakeNotInCorrectHome) + } + "RetFurnitureMakeNoCount" => Some(Self::RetFurnitureMakeNoCount), + "RetFurnitureMakeAccelerateLimit" => { + Some(Self::RetFurnitureMakeAccelerateLimit) + } + "RetFurnitureMakeNoMakeData" => Some(Self::RetFurnitureMakeNoMakeData), + "RetHomeLimitedShopClose" => Some(Self::RetHomeLimitedShopClose), + "RetHomeAvatarNotShow" => Some(Self::RetHomeAvatarNotShow), + "RetHomeEventCondNotSatisfied" => Some(Self::RetHomeEventCondNotSatisfied), + "RetHomeInvalidArrangeAnimalParam" => { + Some(Self::RetHomeInvalidArrangeAnimalParam) + } + "RetHomeInvalidArrangeNpcParam" => Some(Self::RetHomeInvalidArrangeNpcParam), + "RetHomeInvalidArrangeSuiteParam" => { + Some(Self::RetHomeInvalidArrangeSuiteParam) + } + "RetHomeInvalidArrangeMainHouseParam" => { + Some(Self::RetHomeInvalidArrangeMainHouseParam) + } + "RetHomeAvatarStateNotOpen" => Some(Self::RetHomeAvatarStateNotOpen), + "RetHomePlantFieldNotEmpty" => Some(Self::RetHomePlantFieldNotEmpty), + "RetHomePlantFieldEmpty" => Some(Self::RetHomePlantFieldEmpty), + "RetHomePlantFieldTypeError" => Some(Self::RetHomePlantFieldTypeError), + "RetHomePlantTimeNotEnough" => Some(Self::RetHomePlantTimeNotEnough), + "RetHomePlantSubFieldNumNotEnough" => { + Some(Self::RetHomePlantSubFieldNumNotEnough) + } + "RetHomePlantFieldParamError" => Some(Self::RetHomePlantFieldParamError), + "RetHomeFurnitureGuidError" => Some(Self::RetHomeFurnitureGuidError), + "RetHomeFurnitureArrangeLimit" => Some(Self::RetHomeFurnitureArrangeLimit), + "RetHomeFishFarmingLimit" => Some(Self::RetHomeFishFarmingLimit), + "RetHomeFishCountNotEnough" => Some(Self::RetHomeFishCountNotEnough), + "RetHomeFurnitureCostLimit" => Some(Self::RetHomeFurnitureCostLimit), + "RetHomeCustomFurnitureInvalid" => Some(Self::RetHomeCustomFurnitureInvalid), + "RetHomeInvalidArrangeGroupParam" => { + Some(Self::RetHomeInvalidArrangeGroupParam) + } + "RetHomeFurnitureArrangeGroupLimit" => { + Some(Self::RetHomeFurnitureArrangeGroupLimit) + } + "RetHomePictureFrameCoopCgGenderError" => { + Some(Self::RetHomePictureFrameCoopCgGenderError) + } + "RetHomePictureFrameCoopCgNotUnlock" => { + Some(Self::RetHomePictureFrameCoopCgNotUnlock) + } + "RetHomeFurnitureCannotArrange" => Some(Self::RetHomeFurnitureCannotArrange), + "RetHomeFurnitureInDuplicateSuite" => { + Some(Self::RetHomeFurnitureInDuplicateSuite) + } + "RetHomeFurnitureCustomSuiteTooSmall" => { + Some(Self::RetHomeFurnitureCustomSuiteTooSmall) + } + "RetHomeFurnitureCustomSuiteTooBig" => { + Some(Self::RetHomeFurnitureCustomSuiteTooBig) + } + "RetHomeFurnitureSuiteExceedLimit" => { + Some(Self::RetHomeFurnitureSuiteExceedLimit) + } + "RetHomeFurnitureCustomSuiteExceedLimit" => { + Some(Self::RetHomeFurnitureCustomSuiteExceedLimit) + } + "RetHomeFurnitureCustomSuiteInvalidSurfaceType" => { + Some(Self::RetHomeFurnitureCustomSuiteInvalidSurfaceType) + } + "RetHomeBgmIdNotFound" => Some(Self::RetHomeBgmIdNotFound), + "RetHomeBgmNotUnlocked" => Some(Self::RetHomeBgmNotUnlocked), + "RetHomeBgmFurnitureNotFound" => Some(Self::RetHomeBgmFurnitureNotFound), + "RetHomeBgmNotSupportByCurScene" => { + Some(Self::RetHomeBgmNotSupportByCurScene) + } + "RetHomeLimitedShopGoodsDisable" => { + Some(Self::RetHomeLimitedShopGoodsDisable) + } + "RetHomeWorldWoodMaterialEmpty" => Some(Self::RetHomeWorldWoodMaterialEmpty), + "RetHomeWorldWoodMaterialNotFound" => { + Some(Self::RetHomeWorldWoodMaterialNotFound) + } + "RetHomeWorldWoodMaterialCountInvalid" => { + Some(Self::RetHomeWorldWoodMaterialCountInvalid) + } + "RetHomeWorldWoodExchangeExceedLimit" => { + Some(Self::RetHomeWorldWoodExchangeExceedLimit) + } + "RetHomeBlueprintSearchSelf" => Some(Self::RetHomeBlueprintSearchSelf), + "RetHomeBlueprintShareCodeInvalid" => { + Some(Self::RetHomeBlueprintShareCodeInvalid) + } + "RetHomeBlueprintNotExist" => Some(Self::RetHomeBlueprintNotExist), + "RetHomeBlueprintSlotHasExistShareCode" => { + Some(Self::RetHomeBlueprintSlotHasExistShareCode) + } + "RetHomeBlueprintSlotNotExistShareCode" => { + Some(Self::RetHomeBlueprintSlotNotExistShareCode) + } + "RetHomeBlueprintCanNotCreateInAudit" => { + Some(Self::RetHomeBlueprintCanNotCreateInAudit) + } + "RetHomeBlockNotUnlocked" => Some(Self::RetHomeBlockNotUnlocked), + "RetHomeBlueprintCreateCd" => Some(Self::RetHomeBlueprintCreateCd), + "RetHomeBlueprintSetOptionCd" => Some(Self::RetHomeBlueprintSetOptionCd), + "RetHomeBlueprintNotAllowFriendCopy" => { + Some(Self::RetHomeBlueprintNotAllowFriendCopy) + } + "RetHomeFurniturePosUnderDieY" => Some(Self::RetHomeFurniturePosUnderDieY), + "RetHomeBlueprintGenShareCodeFail" => { + Some(Self::RetHomeBlueprintGenShareCodeFail) + } + "RetHomeBlueprintSearchCd" => Some(Self::RetHomeBlueprintSearchCd), + "RetHomeBlueprintPreviewCd" => Some(Self::RetHomeBlueprintPreviewCd), + "RetHomeBlueprintPreviewSceneNotMatch" => { + Some(Self::RetHomeBlueprintPreviewSceneNotMatch) + } + "RetHomeBlueprintSlotFull" => Some(Self::RetHomeBlueprintSlotFull), + "RetHomeBlueprintOwnerRejectCopy" => { + Some(Self::RetHomeBlueprintOwnerRejectCopy) + } + "RetHomeBlueprintSaveToSlotCd" => Some(Self::RetHomeBlueprintSaveToSlotCd), + "RetHomeBlueprintReplyTimeout" => Some(Self::RetHomeBlueprintReplyTimeout), + "RetSumoActivityStageNotOpen" => Some(Self::RetSumoActivityStageNotOpen), + "RetSumoActivitySwitchTeamInCd" => Some(Self::RetSumoActivitySwitchTeamInCd), + "RetSumoActivityTeamNumIncorrect" => { + Some(Self::RetSumoActivityTeamNumIncorrect) + } + "RetLunaRiteActivityAreaIdError" => { + Some(Self::RetLunaRiteActivityAreaIdError) + } + "RetLunaRiteActivityBattleNotFinish" => { + Some(Self::RetLunaRiteActivityBattleNotFinish) + } + "RetLunaRiteActivityAlreadySacrifice" => { + Some(Self::RetLunaRiteActivityAlreadySacrifice) + } + "RetLunaRiteActivityAlreadyTakeReward" => { + Some(Self::RetLunaRiteActivityAlreadyTakeReward) + } + "RetLunaRiteActivitySacrificeNotEnough" => { + Some(Self::RetLunaRiteActivitySacrificeNotEnough) + } + "RetLunaRiteActivitySearchingCondNotMeet" => { + Some(Self::RetLunaRiteActivitySearchingCondNotMeet) + } + "RetDigGadgetConfigIdNotMatch" => Some(Self::RetDigGadgetConfigIdNotMatch), + "RetDigFindNearestPosFail" => Some(Self::RetDigFindNearestPosFail), + "RetMusicGameLevelNotOpen" => Some(Self::RetMusicGameLevelNotOpen), + "RetMusicGameLevelNotUnlock" => Some(Self::RetMusicGameLevelNotUnlock), + "RetMusicGameLevelNotStarted" => Some(Self::RetMusicGameLevelNotStarted), + "RetMusicGameLevelConfigNotFound" => { + Some(Self::RetMusicGameLevelConfigNotFound) + } + "RetMusicGameLevelIdNotMatch" => Some(Self::RetMusicGameLevelIdNotMatch), + "RetRoguelikeCoinANotEnough" => Some(Self::RetRoguelikeCoinANotEnough), + "RetRoguelikeCoinBNotEnough" => Some(Self::RetRoguelikeCoinBNotEnough), + "RetRoguelikeCoinCNotEnough" => Some(Self::RetRoguelikeCoinCNotEnough), + "RetRoguelikeCoinAExceedLimit" => Some(Self::RetRoguelikeCoinAExceedLimit), + "RetRoguelikeCoinBExceedLimit" => Some(Self::RetRoguelikeCoinBExceedLimit), + "RetRoguelikeCoinCExceedLimit" => Some(Self::RetRoguelikeCoinCExceedLimit), + "RetRoguelikeRuneCountNotEnough" => { + Some(Self::RetRoguelikeRuneCountNotEnough) + } + "RetRoguelikeNotInRogueDungeon" => Some(Self::RetRoguelikeNotInRogueDungeon), + "RetRoguelikeCellNotFound" => Some(Self::RetRoguelikeCellNotFound), + "RetRoguelikeCellTypeIncorrect" => Some(Self::RetRoguelikeCellTypeIncorrect), + "RetRoguelikeCellAlreadyFinished" => { + Some(Self::RetRoguelikeCellAlreadyFinished) + } + "RetRoguelikeDungeonHaveUnfinishedProgress" => { + Some(Self::RetRoguelikeDungeonHaveUnfinishedProgress) + } + "RetRoguelikeStageNotFinished" => Some(Self::RetRoguelikeStageNotFinished), + "RetRoguelikeStageFirstPassRewardHasTaken" => { + Some(Self::RetRoguelikeStageFirstPassRewardHasTaken) + } + "RetRoguelikeActivityContentClosed" => { + Some(Self::RetRoguelikeActivityContentClosed) + } + "RetRoguelikeDungeonPreQuestNotFinished" => { + Some(Self::RetRoguelikeDungeonPreQuestNotFinished) + } + "RetRoguelikeDungeonNotOpen" => Some(Self::RetRoguelikeDungeonNotOpen), + "RetRoguelikeSprintIsBanned" => Some(Self::RetRoguelikeSprintIsBanned), + "RetRoguelikeDungeonPreStageNotFinished" => { + Some(Self::RetRoguelikeDungeonPreStageNotFinished) + } + "RetRoguelikeAllAvatarDieCannotResume" => { + Some(Self::RetRoguelikeAllAvatarDieCannotResume) + } + "RetPlantFlowerAlreadyTakeSeed" => Some(Self::RetPlantFlowerAlreadyTakeSeed), + "RetPlantFlowerFriendHaveFlowerLimit" => { + Some(Self::RetPlantFlowerFriendHaveFlowerLimit) + } + "RetPlantFlowerCanGiveFlowerNotEnough" => { + Some(Self::RetPlantFlowerCanGiveFlowerNotEnough) + } + "RetPlantFlowerWishFlowerKindsLimit" => { + Some(Self::RetPlantFlowerWishFlowerKindsLimit) + } + "RetPlantFlowerHaveFlowerNotEnough" => { + Some(Self::RetPlantFlowerHaveFlowerNotEnough) + } + "RetPlantFlowerFlowerCombinationInvalid" => { + Some(Self::RetPlantFlowerFlowerCombinationInvalid) + } + "RetHachiDungeonNotValid" => Some(Self::RetHachiDungeonNotValid), + "RetHachiDungeonStageNotOpen" => Some(Self::RetHachiDungeonStageNotOpen), + "RetHachiDungeonTeammateNotPass" => { + Some(Self::RetHachiDungeonTeammateNotPass) + } + "RetWinterCampCoinANotEnough" => Some(Self::RetWinterCampCoinANotEnough), + "RetWinterCampCoinBNotEnough" => Some(Self::RetWinterCampCoinBNotEnough), + "RetWinterCampCoinAExceedLimit" => Some(Self::RetWinterCampCoinAExceedLimit), + "RetWinterCampCoinBExceedLimit" => Some(Self::RetWinterCampCoinBExceedLimit), + "RetWinterCampWishIdInvalid" => Some(Self::RetWinterCampWishIdInvalid), + "RetWinterCampNotFoundRecvItemData" => { + Some(Self::RetWinterCampNotFoundRecvItemData) + } + "RetWinterCampFriendItemCountOverflow" => { + Some(Self::RetWinterCampFriendItemCountOverflow) + } + "RetWinterCampSelectItemDataInvalid" => { + Some(Self::RetWinterCampSelectItemDataInvalid) + } + "RetWinterCampItemListEmpty" => Some(Self::RetWinterCampItemListEmpty), + "RetWinterCampRewardAlreadyTaken" => { + Some(Self::RetWinterCampRewardAlreadyTaken) + } + "RetWinterCampStageNotFinish" => Some(Self::RetWinterCampStageNotFinish), + "RetWinterCampGadgetInvalid" => Some(Self::RetWinterCampGadgetInvalid), + "RetLanternRiteCoinANotEnough" => Some(Self::RetLanternRiteCoinANotEnough), + "RetLanternRiteCoinBNotEnough" => Some(Self::RetLanternRiteCoinBNotEnough), + "RetLanternRiteCoinCNotEnough" => Some(Self::RetLanternRiteCoinCNotEnough), + "RetLanternRiteCoinAExceedLimit" => { + Some(Self::RetLanternRiteCoinAExceedLimit) + } + "RetLanternRiteCoinBExceedLimit" => { + Some(Self::RetLanternRiteCoinBExceedLimit) + } + "RetLanternRiteCoinCExceedLimit" => { + Some(Self::RetLanternRiteCoinCExceedLimit) + } + "RetLanternRiteProjectionContentClosed" => { + Some(Self::RetLanternRiteProjectionContentClosed) + } + "RetLanternRiteProjectionCanNotStart" => { + Some(Self::RetLanternRiteProjectionCanNotStart) + } + "RetLanternRiteDungeonNotOpen" => Some(Self::RetLanternRiteDungeonNotOpen), + "RetLanternRiteHasTakenSkinReward" => { + Some(Self::RetLanternRiteHasTakenSkinReward) + } + "RetLanternRiteNotFinishedSkinWatchers" => { + Some(Self::RetLanternRiteNotFinishedSkinWatchers) + } + "RetLanternRiteFireworksContentClosed" => { + Some(Self::RetLanternRiteFireworksContentClosed) + } + "RetLanternRiteFireworksChallengeNotStart" => { + Some(Self::RetLanternRiteFireworksChallengeNotStart) + } + "RetLanternRiteFireworksReformParamError" => { + Some(Self::RetLanternRiteFireworksReformParamError) + } + "RetLanternRiteFireworksReformSkillLock" => { + Some(Self::RetLanternRiteFireworksReformSkillLock) + } + "RetLanternRiteFireworksReformStaminaNotEnough" => { + Some(Self::RetLanternRiteFireworksReformStaminaNotEnough) + } + "RetPotionActivityStageNotOpen" => Some(Self::RetPotionActivityStageNotOpen), + "RetPotionActivityLevelHavePass" => { + Some(Self::RetPotionActivityLevelHavePass) + } + "RetPotionActivityTeamNumIncorrect" => { + Some(Self::RetPotionActivityTeamNumIncorrect) + } + "RetPotionActivityAvatarInCd" => Some(Self::RetPotionActivityAvatarInCd), + "RetPotionActivityBuffInCd" => Some(Self::RetPotionActivityBuffInCd), + "RetIrodoriPoetryInvalidLineId" => Some(Self::RetIrodoriPoetryInvalidLineId), + "RetIrodoriPoetryInvalidThemeId" => { + Some(Self::RetIrodoriPoetryInvalidThemeId) + } + "RetIrodoriPoetryNotGetAllInspiration" => { + Some(Self::RetIrodoriPoetryNotGetAllInspiration) + } + "RetIrodoriPoetryInspirationReachLimie" => { + Some(Self::RetIrodoriPoetryInspirationReachLimie) + } + "RetIrodoriPoetryEntityAlreadyScanned" => { + Some(Self::RetIrodoriPoetryEntityAlreadyScanned) + } + "RetActivityBannerAlreadyCleared" => { + Some(Self::RetActivityBannerAlreadyCleared) + } + "RetIrodoriChessNotOpen" => Some(Self::RetIrodoriChessNotOpen), + "RetIrodoriChessLevelNotOpen" => Some(Self::RetIrodoriChessLevelNotOpen), + "RetIrodoriChessMapNotOpen" => Some(Self::RetIrodoriChessMapNotOpen), + "RetIrodoriChessMapCardAlreadyEquiped" => { + Some(Self::RetIrodoriChessMapCardAlreadyEquiped) + } + "RetIrodoriChessEquipCardExceedLimit" => { + Some(Self::RetIrodoriChessEquipCardExceedLimit) + } + "RetIrodoriChessMapCardNotEquiped" => { + Some(Self::RetIrodoriChessMapCardNotEquiped) + } + "RetIrodoriChessEnterFailCardExceedLimit" => { + Some(Self::RetIrodoriChessEnterFailCardExceedLimit) + } + "RetActivityFriendHaveGiftLimit" => { + Some(Self::RetActivityFriendHaveGiftLimit) + } + "RetGachaActivityHaveRewardLimit" => { + Some(Self::RetGachaActivityHaveRewardLimit) + } + "RetGachaActivityHaveRobotLimit" => { + Some(Self::RetGachaActivityHaveRobotLimit) + } + "RetSummerTimeV2CoinExceedLimit" => { + Some(Self::RetSummerTimeV2CoinExceedLimit) + } + "RetSummerTimeV2CoinNotEnough" => Some(Self::RetSummerTimeV2CoinNotEnough), + "RetSummerTimeV2DungeonStageNotOpen" => { + Some(Self::RetSummerTimeV2DungeonStageNotOpen) + } + "RetSummerTimeV2PrevDungeonNotComplete" => { + Some(Self::RetSummerTimeV2PrevDungeonNotComplete) + } + "RetRogueDiaryAvatarDeath" => Some(Self::RetRogueDiaryAvatarDeath), + "RetRogueDiaryAvatarTired" => Some(Self::RetRogueDiaryAvatarTired), + "RetRogueDiaryAvatarDuplicated" => Some(Self::RetRogueDiaryAvatarDuplicated), + "RetRogueDiaryCoinNotEnough" => Some(Self::RetRogueDiaryCoinNotEnough), + "RetRogueDiaryVirtualCoinExceedLimit" => { + Some(Self::RetRogueDiaryVirtualCoinExceedLimit) + } + "RetRogueDiaryVirtualCoinNotEnough" => { + Some(Self::RetRogueDiaryVirtualCoinNotEnough) + } + "RetRogueDiaryContentClosed" => Some(Self::RetRogueDiaryContentClosed), + "RetGravenInnocenceCoinANotEnough" => { + Some(Self::RetGravenInnocenceCoinANotEnough) + } + "RetGravenInnocenceCoinBNotEnough" => { + Some(Self::RetGravenInnocenceCoinBNotEnough) + } + "RetGravenInnocenceCoinAExceedLimit" => { + Some(Self::RetGravenInnocenceCoinAExceedLimit) + } + "RetGravenInnocenceCoinBExceedLimit" => { + Some(Self::RetGravenInnocenceCoinBExceedLimit) + } + "RetIslandPartyStageNotOpen" => Some(Self::RetIslandPartyStageNotOpen), + "RetWindFieldStageNotOpen" => Some(Self::RetWindFieldStageNotOpen), + "RetVintageContentClosed" => Some(Self::RetVintageContentClosed), + "RetVintageStoreContentFinished" => { + Some(Self::RetVintageStoreContentFinished) + } + "RetVintageStoreAttrTooSmall" => Some(Self::RetVintageStoreAttrTooSmall), + "RetVintageStoreAttrTooLarge" => Some(Self::RetVintageStoreAttrTooLarge), + "RetVintageStoreContentInterrupt" => { + Some(Self::RetVintageStoreContentInterrupt) + } + "RetVintageVirtualCoinNotEnough" => { + Some(Self::RetVintageVirtualCoinNotEnough) + } + "RetVintageStoreAttrLessThanZero" => { + Some(Self::RetVintageStoreAttrLessThanZero) + } + "RetFungusFighterCaptureCoinNotEnough" => { + Some(Self::RetFungusFighterCaptureCoinNotEnough) + } + "RetFungusFighterTrainingCoinNotEnough" => { + Some(Self::RetFungusFighterTrainingCoinNotEnough) + } + "RetFungusFighterCaptureCoinExceedLimit" => { + Some(Self::RetFungusFighterCaptureCoinExceedLimit) + } + "RetFungusFighterTrainingCoinExceedLimit" => { + Some(Self::RetFungusFighterTrainingCoinExceedLimit) + } + "RetFungusFighterContentClosed" => Some(Self::RetFungusFighterContentClosed), + "RetFungusFighterPlotStageNotOpen" => { + Some(Self::RetFungusFighterPlotStageNotOpen) + } + "RetFungusFighterFungusIdConfigNotValid" => { + Some(Self::RetFungusFighterFungusIdConfigNotValid) + } + "RetFungusFighterFungusNotCultivated" => { + Some(Self::RetFungusFighterFungusNotCultivated) + } + "RetFungusFighterTrainingDungeonNotOpen" => { + Some(Self::RetFungusFighterTrainingDungeonNotOpen) + } + "RetEffigyChallengeV2CoinNotEnough" => { + Some(Self::RetEffigyChallengeV2CoinNotEnough) + } + "RetEffigyChallengeV2CoinExceedLimit" => { + Some(Self::RetEffigyChallengeV2CoinExceedLimit) + } + "RetCharAmusementStageNotOpen" => Some(Self::RetCharAmusementStageNotOpen), + "RetCoinCollectLevelNotOpen" => Some(Self::RetCoinCollectLevelNotOpen), + "RetCoinCollectNotEquipWidget" => Some(Self::RetCoinCollectNotEquipWidget), + "RetCoinCollectSceneNotMatch" => Some(Self::RetCoinCollectSceneNotMatch), + "RetCoinCollectCantEnterMpMode" => Some(Self::RetCoinCollectCantEnterMpMode), + "RetCoinCollectPlayerNumFail" => Some(Self::RetCoinCollectPlayerNumFail), + "RetBrickBreakerPlayerNumFail" => Some(Self::RetBrickBreakerPlayerNumFail), + "RetBrickBreakerStageNotUnlock" => Some(Self::RetBrickBreakerStageNotUnlock), + "RetBrickBreakerNormalLevelNotFinish" => { + Some(Self::RetBrickBreakerNormalLevelNotFinish) + } + "RetBrickBreakerPreLevelNotFinish" => { + Some(Self::RetBrickBreakerPreLevelNotFinish) + } + "RetBrickBreakerPreStageNotFinish" => { + Some(Self::RetBrickBreakerPreStageNotFinish) + } + "RetBrickBreakerWorldLevelNotUnlock" => { + Some(Self::RetBrickBreakerWorldLevelNotUnlock) + } + "RetBrickBreakerDungeonLevelNotUnlock" => { + Some(Self::RetBrickBreakerDungeonLevelNotUnlock) + } + "RetBrickBreakerCoinNotEnough" => Some(Self::RetBrickBreakerCoinNotEnough), + "RetBrickBreakerCoinExceedLimit" => { + Some(Self::RetBrickBreakerCoinExceedLimit) + } + "RetTeamchainWorldInMpMode" => Some(Self::RetTeamchainWorldInMpMode), + "RetLanV3BoatPlayerNumNotValid" => Some(Self::RetLanV3BoatPlayerNumNotValid), + "RetLanV3BoatPlayNotOpen" => Some(Self::RetLanV3BoatPlayNotOpen), + "RetLanV3BoatNotInWorldScene" => Some(Self::RetLanV3BoatNotInWorldScene), + "RetFleurFairV2PacmanPlayNotOpen" => { + Some(Self::RetFleurFairV2PacmanPlayNotOpen) + } + "RetFleurFairV2PacmanPlayerNumIncorrect" => { + Some(Self::RetFleurFairV2PacmanPlayerNumIncorrect) + } + "RetFleurFairV2CoinNotEnough" => Some(Self::RetFleurFairV2CoinNotEnough), + "RetFleurFairV2CoinExceedLimit" => Some(Self::RetFleurFairV2CoinExceedLimit), + "RetAkaFesRhythmLevelNotOpen" => Some(Self::RetAkaFesRhythmLevelNotOpen), + "RetAkaFesRhythmGalleryInitFail" => { + Some(Self::RetAkaFesRhythmGalleryInitFail) + } + "RetAkaFesRhythmNotInExpectedDungeon" => { + Some(Self::RetAkaFesRhythmNotInExpectedDungeon) + } + "RetAkaFesReasoningLevelNotOpen" => { + Some(Self::RetAkaFesReasoningLevelNotOpen) + } + "RetAkaFesAstrolabeLevelNotOpen" => { + Some(Self::RetAkaFesAstrolabeLevelNotOpen) + } + "RetAkaFesAstrolabePreLevelNotFinish" => { + Some(Self::RetAkaFesAstrolabePreLevelNotFinish) + } + "RetEffigyChallengeV4LevelNotOpen" => { + Some(Self::RetEffigyChallengeV4LevelNotOpen) + } + "RetEffigyChallengeV4GuestNotReady" => { + Some(Self::RetEffigyChallengeV4GuestNotReady) + } + "RetEffigyChallengeV4DuplicateAvatar" => { + Some(Self::RetEffigyChallengeV4DuplicateAvatar) + } + "RetJourneyActivityPickParamError" => { + Some(Self::RetJourneyActivityPickParamError) + } + "RetJourneyActivityPickCondNotMeet" => { + Some(Self::RetJourneyActivityPickCondNotMeet) + } + "RetJourneyActivityCoinNotEnough" => { + Some(Self::RetJourneyActivityCoinNotEnough) + } + "RetJourneyActivityCoinExceedLimit" => { + Some(Self::RetJourneyActivityCoinExceedLimit) + } + "RetPoetryFesPitchPotStageNotOpen" => { + Some(Self::RetPoetryFesPitchPotStageNotOpen) + } + "RetFilmfesBallGamePlayerCountNotEnough" => { + Some(Self::RetFilmfesBallGamePlayerCountNotEnough) + } + "RetMpFilmfestShootingOngoing" => Some(Self::RetMpFilmfestShootingOngoing), + "RetFilmfesBallGameIsLocked" => Some(Self::RetFilmfesBallGameIsLocked), + "RetTreasureHuntV4CoinNotEnough" => { + Some(Self::RetTreasureHuntV4CoinNotEnough) + } + "RetTreasureHuntV4CoinExceedLimit" => { + Some(Self::RetTreasureHuntV4CoinExceedLimit) + } + "RetLostSamachurlSneakLevelNotOpen" => { + Some(Self::RetLostSamachurlSneakLevelNotOpen) + } + "RetLostSamachurlBossLevelNotOpen" => { + Some(Self::RetLostSamachurlBossLevelNotOpen) + } + "RetLanV4PartyLionPlayerCountNotEnough" => { + Some(Self::RetLanV4PartyLionPlayerCountNotEnough) + } + "RetLanV4PartyLionLevelNotOpen" => Some(Self::RetLanV4PartyLionLevelNotOpen), + "RetActivityContentClosed" => Some(Self::RetActivityContentClosed), + "RetActivityClientPlayBanMp" => Some(Self::RetActivityClientPlayBanMp), + "RetActivityClientPlayFrequencyError" => { + Some(Self::RetActivityClientPlayFrequencyError) + } + "RetActivityClientPlayOtherPlayIsRunning" => { + Some(Self::RetActivityClientPlayOtherPlayIsRunning) + } + "RetActivityClientPlayDuplicateStart" => { + Some(Self::RetActivityClientPlayDuplicateStart) + } + "RetNotInFishing" => Some(Self::RetNotInFishing), + "RetFishStateError" => Some(Self::RetFishStateError), + "RetFishBaitLimit" => Some(Self::RetFishBaitLimit), + "RetFishingMaxDistance" => Some(Self::RetFishingMaxDistance), + "RetFishingInCombat" => Some(Self::RetFishingInCombat), + "RetFishingBattleTooShort" => Some(Self::RetFishingBattleTooShort), + "RetFishGoneAway" => Some(Self::RetFishGoneAway), + "RetCanNotEditOtherDungeon" => Some(Self::RetCanNotEditOtherDungeon), + "RetCustomDungeonDismatch" => Some(Self::RetCustomDungeonDismatch), + "RetNoCustomDungeonData" => Some(Self::RetNoCustomDungeonData), + "RetBuildCustomDungeonFail" => Some(Self::RetBuildCustomDungeonFail), + "RetCustomDungeonRoomCheckFail" => Some(Self::RetCustomDungeonRoomCheckFail), + "RetCustomDungeonSaveMayFail" => Some(Self::RetCustomDungeonSaveMayFail), + "RetNotInCustomDungeon" => Some(Self::RetNotInCustomDungeon), + "RetCustomDungeonInternalFail" => Some(Self::RetCustomDungeonInternalFail), + "RetCustomDungeonCanNotTry" => Some(Self::RetCustomDungeonCanNotTry), + "RetCustomDungeonNoStartRoom" => Some(Self::RetCustomDungeonNoStartRoom), + "RetCustomDungeonNoRoomData" => Some(Self::RetCustomDungeonNoRoomData), + "RetCustomDungeonSaveTooFrequent" => { + Some(Self::RetCustomDungeonSaveTooFrequent) + } + "RetCustomDungeonNotSelfPass" => Some(Self::RetCustomDungeonNotSelfPass), + "RetCustomDungeonLackCoin" => Some(Self::RetCustomDungeonLackCoin), + "RetCustomDungeonNoFinishBrick" => Some(Self::RetCustomDungeonNoFinishBrick), + "RetCustomDungeonMultiFinish" => Some(Self::RetCustomDungeonMultiFinish), + "RetCustomDungeonNotPublished" => Some(Self::RetCustomDungeonNotPublished), + "RetCustomDungeonFullStore" => Some(Self::RetCustomDungeonFullStore), + "RetCustomDungeonStoreRepeat" => Some(Self::RetCustomDungeonStoreRepeat), + "RetCustomDungeonCanNotStoreSelf" => { + Some(Self::RetCustomDungeonCanNotStoreSelf) + } + "RetCustomDungeonNotSaveSucc" => Some(Self::RetCustomDungeonNotSaveSucc), + "RetCustomDungeonCanNotLikeSelf" => { + Some(Self::RetCustomDungeonCanNotLikeSelf) + } + "RetCustomDungeonNotFound" => Some(Self::RetCustomDungeonNotFound), + "RetCustomDungeonInvalidSetting" => { + Some(Self::RetCustomDungeonInvalidSetting) + } + "RetCustomDungeonNoFinishSetting" => { + Some(Self::RetCustomDungeonNoFinishSetting) + } + "RetCustomDungeonSaveNothing" => Some(Self::RetCustomDungeonSaveNothing), + "RetCustomDungeonNotInGroup" => Some(Self::RetCustomDungeonNotInGroup), + "RetCustomDungeonNotOfficial" => Some(Self::RetCustomDungeonNotOfficial), + "RetCustomDungeonLifeNumError" => Some(Self::RetCustomDungeonLifeNumError), + "RetCustomDungeonNoOpenRoom" => Some(Self::RetCustomDungeonNoOpenRoom), + "RetCustomDungeonBrickExceedLimit" => { + Some(Self::RetCustomDungeonBrickExceedLimit) + } + "RetCustomDungeonOfficialNotUnlock" => { + Some(Self::RetCustomDungeonOfficialNotUnlock) + } + "RetCanNotEditOfficialSetting" => Some(Self::RetCanNotEditOfficialSetting), + "RetCustomDungeonBanPublish" => Some(Self::RetCustomDungeonBanPublish), + "RetCustomDungeonCanNotReplay" => Some(Self::RetCustomDungeonCanNotReplay), + "RetCustomDungeonNotOpenGroup" => Some(Self::RetCustomDungeonNotOpenGroup), + "RetCustomDungeonMaxEditNum" => Some(Self::RetCustomDungeonMaxEditNum), + "RetCustomDungeonCanNotOutStuck" => { + Some(Self::RetCustomDungeonCanNotOutStuck) + } + "RetCustomDungeonMaxTag" => Some(Self::RetCustomDungeonMaxTag), + "RetCustomDungeonInvalidTag" => Some(Self::RetCustomDungeonInvalidTag), + "RetCustomDungeonMaxCost" => Some(Self::RetCustomDungeonMaxCost), + "RetCustomDungeonRequestTooFrequent" => { + Some(Self::RetCustomDungeonRequestTooFrequent) + } + "RetCustomDungeonNotOpen" => Some(Self::RetCustomDungeonNotOpen), + "RetShareCdIdError" => Some(Self::RetShareCdIdError), + "RetShareCdIndexError" => Some(Self::RetShareCdIndexError), + "RetShareCdInCd" => Some(Self::RetShareCdInCd), + "RetShareCdTokenNotEnough" => Some(Self::RetShareCdTokenNotEnough), + "RetUgcDismatch" => Some(Self::RetUgcDismatch), + "RetUgcDataNotFound" => Some(Self::RetUgcDataNotFound), + "RetUgcBriefNotFound" => Some(Self::RetUgcBriefNotFound), + "RetUgcDisabled" => Some(Self::RetUgcDisabled), + "RetUgcLimited" => Some(Self::RetUgcLimited), + "RetUgcLocked" => Some(Self::RetUgcLocked), + "RetUgcNotAuth" => Some(Self::RetUgcNotAuth), + "RetUgcNotOpen" => Some(Self::RetUgcNotOpen), + "RetUgcBanPublish" => Some(Self::RetUgcBanPublish), + "RetUgcMusicExceedLimit" => Some(Self::RetUgcMusicExceedLimit), + "RetUgcMusicSaveTooFrequent" => Some(Self::RetUgcMusicSaveTooFrequent), + "RetUgcMusicStoreFull" => Some(Self::RetUgcMusicStoreFull), + "RetUgcMusicStoreRepeat" => Some(Self::RetUgcMusicStoreRepeat), + "RetUgcMusicStoreTooFrequent" => Some(Self::RetUgcMusicStoreTooFrequent), + "RetUgcMusicSearchNotFound" => Some(Self::RetUgcMusicSearchNotFound), + "RetUgcMusicLikeTooFrequent" => Some(Self::RetUgcMusicLikeTooFrequent), + "RetUgcMusicRecommendTooFrequent" => { + Some(Self::RetUgcMusicRecommendTooFrequent) + } + "RetUgcMusicImportNotAllow" => Some(Self::RetUgcMusicImportNotAllow), + "RetUgcMusicImportNotFound" => Some(Self::RetUgcMusicImportNotFound), + "RetUgcMusicSetOptionTooFrequent" => { + Some(Self::RetUgcMusicSetOptionTooFrequent) + } + "RetUgcMusicImportTooFrequent" => Some(Self::RetUgcMusicImportTooFrequent), + "RetUgcMusicGenShareCodeFail" => Some(Self::RetUgcMusicGenShareCodeFail), + "RetUgcMusicCancelStoreRepeat" => Some(Self::RetUgcMusicCancelStoreRepeat), + "RetCompoundBoostItemNotExist" => Some(Self::RetCompoundBoostItemNotExist), + "RetCompoundBoostTargetNotExist" => { + Some(Self::RetCompoundBoostTargetNotExist) + } + "RetQuickHitTreeEmptyTrees" => Some(Self::RetQuickHitTreeEmptyTrees), + "RetCompoundNoFinishCanTake" => Some(Self::RetCompoundNoFinishCanTake), + "RetForgeNoFinishCanTake" => Some(Self::RetForgeNoFinishCanTake), + "RetGcgFindGameModeFail" => Some(Self::RetGcgFindGameModeFail), + "RetGcgOperationParamError" => Some(Self::RetGcgOperationParamError), + "RetGcgGameNotRunning" => Some(Self::RetGcgGameNotRunning), + "RetGcgOpNotAllow" => Some(Self::RetGcgOpNotAllow), + "RetGcgOpNotMatchPhase" => Some(Self::RetGcgOpNotMatchPhase), + "RetGcgSelectHandCardGuidError" => Some(Self::RetGcgSelectHandCardGuidError), + "RetGcgDiceIndexInvalid" => Some(Self::RetGcgDiceIndexInvalid), + "RetGcgCharacterGuidInvalid" => Some(Self::RetGcgCharacterGuidInvalid), + "RetGcgCharacterAlreadyDie" => Some(Self::RetGcgCharacterAlreadyDie), + "RetGcgCharacterAlreadyOnStage" => Some(Self::RetGcgCharacterAlreadyOnStage), + "RetGcgCharacterForbiddenAttack" => { + Some(Self::RetGcgCharacterForbiddenAttack) + } + "RetGcgSelectDiceNotMatch" => Some(Self::RetGcgSelectDiceNotMatch), + "RetGcgFindSkillFail" => Some(Self::RetGcgFindSkillFail), + "RetGcgSkillCanNotActiveUse" => Some(Self::RetGcgSkillCanNotActiveUse), + "RetGcgEnergyNotEnough" => Some(Self::RetGcgEnergyNotEnough), + "RetGcgPlayCardTargetNotMatch" => Some(Self::RetGcgPlayCardTargetNotMatch), + "RetGcgPlayCardZoneCannotAdd" => Some(Self::RetGcgPlayCardZoneCannotAdd), + "RetGcgRebootSelectDiceInvalid" => Some(Self::RetGcgRebootSelectDiceInvalid), + "RetGcgRebootSelectCardInvalid" => Some(Self::RetGcgRebootSelectCardInvalid), + "RetGcgPlayCardConditionCheckFail" => { + Some(Self::RetGcgPlayCardConditionCheckFail) + } + "RetGcgPlayCardParamInvalid" => Some(Self::RetGcgPlayCardParamInvalid), + "RetGcgMaxGame" => Some(Self::RetGcgMaxGame), + "RetGcgSendPacketFail" => Some(Self::RetGcgSendPacketFail), + "RetGcgAlreadySettle" => Some(Self::RetGcgAlreadySettle), + "RetGcgPlayCardLegendAlreadyUsed" => { + Some(Self::RetGcgPlayCardLegendAlreadyUsed) + } + "RetGcgCostLegendNotEnough" => Some(Self::RetGcgCostLegendNotEnough), + "RetGcgWatchInBlackList" => Some(Self::RetGcgWatchInBlackList), + "RetGcgWatchForbidSwitch" => Some(Self::RetGcgWatchForbidSwitch), + "RetGcgWatchAlreadyJoined" => Some(Self::RetGcgWatchAlreadyJoined), + "RetGcgWatchKickNoSpectator" => Some(Self::RetGcgWatchKickNoSpectator), + "RetGcgWatchTargetNotInDuel" => Some(Self::RetGcgWatchTargetNotInDuel), + "RetGcgWatchTargetNotFriend" => Some(Self::RetGcgWatchTargetNotFriend), + "RetGcgWatchTargetPsnOnly" => Some(Self::RetGcgWatchTargetPsnOnly), + "RetGcgWatchForbidBusinessType" => Some(Self::RetGcgWatchForbidBusinessType), + "RetGcgWatchOptionRefuse" => Some(Self::RetGcgWatchOptionRefuse), + "RetGcgWatchNoPlayer" => Some(Self::RetGcgWatchNoPlayer), + "RetGcgWatchTargetStateNotOpen" => Some(Self::RetGcgWatchTargetStateNotOpen), + "RetGcgWatchSpectatorLimit" => Some(Self::RetGcgWatchSpectatorLimit), + "RetGcgWatchForbiddenWatchGame" => Some(Self::RetGcgWatchForbiddenWatchGame), + "RetGcgWatchNotSpectator" => Some(Self::RetGcgWatchNotSpectator), + "RetGcgWatchAlreadyInDuel" => Some(Self::RetGcgWatchAlreadyInDuel), + "RetGcgWatchClientDataVersoinForbid" => { + Some(Self::RetGcgWatchClientDataVersoinForbid) + } + "RetGcgSkillNotVehicleSkill" => Some(Self::RetGcgSkillNotVehicleSkill), + "RetGcgSkillCheckConditionFail" => Some(Self::RetGcgSkillCheckConditionFail), + "RetGcgVehicleSkillCheckConditionFail" => { + Some(Self::RetGcgVehicleSkillCheckConditionFail) + } + "RetGcgCoinExceedLimit" => Some(Self::RetGcgCoinExceedLimit), + "RetGcgCoinNotEnough" => Some(Self::RetGcgCoinNotEnough), + "RetGcgNotInSelfWorld" => Some(Self::RetGcgNotInSelfWorld), + "RetGcgAlreadyInDuel" => Some(Self::RetGcgAlreadyInDuel), + "RetGcgNotInPlayerWorld" => Some(Self::RetGcgNotInPlayerWorld), + "RetGcgGalleryStarted" => Some(Self::RetGcgGalleryStarted), + "RetGcgInviteTargetIsSelf" => Some(Self::RetGcgInviteTargetIsSelf), + "RetGcgInviteTargetNotInWorld" => Some(Self::RetGcgInviteTargetNotInWorld), + "RetGcgApplyInviteNotAllow" => Some(Self::RetGcgApplyInviteNotAllow), + "RetGcgApplyInviteTimeout" => Some(Self::RetGcgApplyInviteTimeout), + "RetGcgCurDeckInvalid" => Some(Self::RetGcgCurDeckInvalid), + "RetGcgNeedResourceComplete" => Some(Self::RetGcgNeedResourceComplete), + "RetGcgOpponentPlayerIsSelf" => Some(Self::RetGcgOpponentPlayerIsSelf), + "RetGcgGameIdInvalid" => Some(Self::RetGcgGameIdInvalid), + "RetGcgMatchInPunish" => Some(Self::RetGcgMatchInPunish), + "RetGcgSettleStillInDuel" => Some(Self::RetGcgSettleStillInDuel), + "RetGcgSettleNotInDungeon" => Some(Self::RetGcgSettleNotInDungeon), + "RetGcgUnsupportSettleOption" => Some(Self::RetGcgUnsupportSettleOption), + "RetGcgNotInGcgDungeon" => Some(Self::RetGcgNotInGcgDungeon), + "RetGcgWorldLevelLocked" => Some(Self::RetGcgWorldLevelLocked), + "RetGcgBossLevelLocked" => Some(Self::RetGcgBossLevelLocked), + "RetGcgNotInTavern" => Some(Self::RetGcgNotInTavern), + "RetGcgWeekNpcNotExist" => Some(Self::RetGcgWeekNpcNotExist), + "RetGcgEnterGameFrequent" => Some(Self::RetGcgEnterGameFrequent), + "RetGcgBreakLevelQuestNotUnfinished" => { + Some(Self::RetGcgBreakLevelQuestNotUnfinished) + } + "RetGcgGuideLevelAlreadyFinished" => { + Some(Self::RetGcgGuideLevelAlreadyFinished) + } + "RetGcgLevelCannotRestart" => Some(Self::RetGcgLevelCannotRestart), + "RetGcgTargetCheckEnterFail" => Some(Self::RetGcgTargetCheckEnterFail), + "RetGcgAlreadyInDungeon" => Some(Self::RetGcgAlreadyInDungeon), + "RetGcgBackDuelNoGame" => Some(Self::RetGcgBackDuelNoGame), + "RetGcgConstLevelLocked" => Some(Self::RetGcgConstLevelLocked), + "RetGcgQuestIdError" => Some(Self::RetGcgQuestIdError), + "RetGcgQuestNeedUnfinished" => Some(Self::RetGcgQuestNeedUnfinished), + "RetGcgInMatch" => Some(Self::RetGcgInMatch), + "RetGcgDataVersionNotLatest" => Some(Self::RetGcgDataVersionNotLatest), + "RetGcgInviteTargetEnterGameFrequent" => { + Some(Self::RetGcgInviteTargetEnterGameFrequent) + } + "RetGcgInviteTargetNeedResourceComplete" => { + Some(Self::RetGcgInviteTargetNeedResourceComplete) + } + "RetGcgInviteTargetSceneIsNull" => Some(Self::RetGcgInviteTargetSceneIsNull), + "RetGcgInviteTargetInTransfer" => Some(Self::RetGcgInviteTargetInTransfer), + "RetGcgInviteTargetDataVersionNotLatest" => { + Some(Self::RetGcgInviteTargetDataVersionNotLatest) + } + "RetGcgInviteTargetCurDeckInvalid" => { + Some(Self::RetGcgInviteTargetCurDeckInvalid) + } + "RetGcgClientDataVersionNotMatch" => { + Some(Self::RetGcgClientDataVersionNotMatch) + } + "RetGcgClientDataVersoinForbid" => Some(Self::RetGcgClientDataVersoinForbid), + "RetGcgMpCantMatch" => Some(Self::RetGcgMpCantMatch), + "RetGcgInviteTargetStateNotOpen" => { + Some(Self::RetGcgInviteTargetStateNotOpen) + } + "RetGcgCreateTimeOut" => Some(Self::RetGcgCreateTimeOut), + "RetGcgBanMatch" => Some(Self::RetGcgBanMatch), + "RetGcgBanInvite" => Some(Self::RetGcgBanInvite), + "RetGcgTargetBanInvite" => Some(Self::RetGcgTargetBanInvite), + "RetGcgInviteAlreadyInvite" => Some(Self::RetGcgInviteAlreadyInvite), + "RetGcgFestivalModeNotOpen" => Some(Self::RetGcgFestivalModeNotOpen), + "RetGcgTargetFestivalModeNotOpen" => { + Some(Self::RetGcgTargetFestivalModeNotOpen) + } + "RetGcgBackDuelPsToOther" => Some(Self::RetGcgBackDuelPsToOther), + "RetGcgBackDuelOtherToPs" => Some(Self::RetGcgBackDuelOtherToPs), + "RetGcgWeekRewardLimit" => Some(Self::RetGcgWeekRewardLimit), + "RetGcgFestivalModeInPick" => Some(Self::RetGcgFestivalModeInPick), + "RetGcgDsDeckLocked" => Some(Self::RetGcgDsDeckLocked), + "RetGcgDsDeckNameInvalid" => Some(Self::RetGcgDsDeckNameInvalid), + "RetGcgDsDeckCharCardNumInvalid" => { + Some(Self::RetGcgDsDeckCharCardNumInvalid) + } + "RetGcgDsDeckCardNumInvalid" => Some(Self::RetGcgDsDeckCardNumInvalid), + "RetGcgDsCardNumExceedLimit" => Some(Self::RetGcgDsCardNumExceedLimit), + "RetGcgDsDeckInvalid" => Some(Self::RetGcgDsDeckInvalid), + "RetGcgDsCardIdInvalid" => Some(Self::RetGcgDsCardIdInvalid), + "RetGcgDsCardFaceAlreadyUnlock" => Some(Self::RetGcgDsCardFaceAlreadyUnlock), + "RetGcgDsCardFaceIsLock" => Some(Self::RetGcgDsCardFaceIsLock), + "RetGcgDsFieldLock" => Some(Self::RetGcgDsFieldLock), + "RetGcgDsFieldAlreadyUnlock" => Some(Self::RetGcgDsFieldAlreadyUnlock), + "RetGcgDsFieldIdInvalid" => Some(Self::RetGcgDsFieldIdInvalid), + "RetGcgDsCardBackLocked" => Some(Self::RetGcgDsCardBackLocked), + "RetGcgDsCardBackAlreadyUnlock" => Some(Self::RetGcgDsCardBackAlreadyUnlock), + "RetGcgDsCardBackIdInvalid" => Some(Self::RetGcgDsCardBackIdInvalid), + "RetGcgDsCardFaceIdInvalid" => Some(Self::RetGcgDsCardFaceIdInvalid), + "RetGcgDsDeckNameIllegal" => Some(Self::RetGcgDsDeckNameIllegal), + "RetGcgDsDeckSaveCd" => Some(Self::RetGcgDsDeckSaveCd), + "RetGcgDsDeckChangeNameCd" => Some(Self::RetGcgDsDeckChangeNameCd), + "RetGcgMatchDeckInvalid" => Some(Self::RetGcgMatchDeckInvalid), + "RetGcgDsDeckAlreadyUnlocked" => Some(Self::RetGcgDsDeckAlreadyUnlocked), + "RetGcgDsAtLeastOneDeck" => Some(Self::RetGcgDsAtLeastOneDeck), + "RetGcgDsDeckCodeIllegal" => Some(Self::RetGcgDsDeckCodeIllegal), + "RetGcgDsDeckCodeCd" => Some(Self::RetGcgDsDeckCodeCd), + "RetGcgTcCharacternotMatchLevel" => { + Some(Self::RetGcgTcCharacternotMatchLevel) + } + "RetGcgTcMustInSelfWorld" => Some(Self::RetGcgTcMustInSelfWorld), + "RetGcgTcMustInTavern" => Some(Self::RetGcgTcMustInTavern), + "RetGcgTcAlreadyInGame" => Some(Self::RetGcgTcAlreadyInGame), + "RetGcgTcAlreadyInMatch" => Some(Self::RetGcgTcAlreadyInMatch), + "RetGcgTcUnlockCharacterQuestNotFinish" => { + Some(Self::RetGcgTcUnlockCharacterQuestNotFinish) + } + "RetGcgTcLevelLocked" => Some(Self::RetGcgTcLevelLocked), + "RetGcgTcNoInviteData" => Some(Self::RetGcgTcNoInviteData), + "RetGcgTcCurDeckInvalid" => Some(Self::RetGcgTcCurDeckInvalid), + "RetGcgTcCondQuest" => Some(Self::RetGcgTcCondQuest), + "RetGcgLevelRewardLevelError" => Some(Self::RetGcgLevelRewardLevelError), + "RetGcgLevelRewardAlreadyTaken" => Some(Self::RetGcgLevelRewardAlreadyTaken), + "RetGcgLevelRewardNoReward" => Some(Self::RetGcgLevelRewardNoReward), + "RetGcgNotInReplayDungeon" => Some(Self::RetGcgNotInReplayDungeon), + "RetGcgInvalidReplay" => Some(Self::RetGcgInvalidReplay), + "RetGcgSetFavoriteLimitNum" => Some(Self::RetGcgSetFavoriteLimitNum), + "RetGcgReplayExpire" => Some(Self::RetGcgReplayExpire), + "RetGcgReplayDungeonSettled" => Some(Self::RetGcgReplayDungeonSettled), + "RetGcgPickCurUidNotMatch" => Some(Self::RetGcgPickCurUidNotMatch), + "RetGcgPickSelectParamError" => Some(Self::RetGcgPickSelectParamError), + "RetGcgPickConfirmError" => Some(Self::RetGcgPickConfirmError), + "RetGcgPickBackNoGame" => Some(Self::RetGcgPickBackNoGame), + "RetGcgArenaScheduleInactive" => Some(Self::RetGcgArenaScheduleInactive), + "RetGcgArenaScheduleNotMatch" => Some(Self::RetGcgArenaScheduleNotMatch), + "RetGcgArenaDeckNotSet" => Some(Self::RetGcgArenaDeckNotSet), + "RetGcgArenaDeckInvalid" => Some(Self::RetGcgArenaDeckInvalid), + "RetGcgArenaInChallengeCannotSetDeck" => { + Some(Self::RetGcgArenaInChallengeCannotSetDeck) + } + "RetGcgArenaStartChallengeInMpMode" => { + Some(Self::RetGcgArenaStartChallengeInMpMode) + } + "RetGcgArenaStartMatchInMpMode" => Some(Self::RetGcgArenaStartMatchInMpMode), + "RetUgcDungeonInDungeon" => Some(Self::RetUgcDungeonInDungeon), + "RetUgcDungeonRoomNumLimit" => Some(Self::RetUgcDungeonRoomNumLimit), + "RetUgcDungeonNotInEditState" => Some(Self::RetUgcDungeonNotInEditState), + "RetUgcDungeonNotInEditDungeon" => Some(Self::RetUgcDungeonNotInEditDungeon), + "RetUgcDungeonNotExist" => Some(Self::RetUgcDungeonNotExist), + "RetUgcDungeonNotSave" => Some(Self::RetUgcDungeonNotSave), + "RetUgcDungeonScoreCondtionButNoMonster" => { + Some(Self::RetUgcDungeonScoreCondtionButNoMonster) + } + "RetUgcDungeonScoreCondtionButNoCoin" => { + Some(Self::RetUgcDungeonScoreCondtionButNoCoin) + } + "RetUgcDungeonScoreCondtionButNoChest" => { + Some(Self::RetUgcDungeonScoreCondtionButNoChest) + } + "RetUgcDungeonScoreCondtionButNoRoomSettle" => { + Some(Self::RetUgcDungeonScoreCondtionButNoRoomSettle) + } + "RetUgcDungeonTargetScoreExceedLimit" => { + Some(Self::RetUgcDungeonTargetScoreExceedLimit) + } + "RetUgcDungeonTimeSettleTargetScoreNotZero" => { + Some(Self::RetUgcDungeonTimeSettleTargetScoreNotZero) + } + "RetUgcDungeonAllowAvatarNotEnough" => { + Some(Self::RetUgcDungeonAllowAvatarNotEnough) + } + "RetUgcDungeonHeartBloodWhileMonsterDeploy" => { + Some(Self::RetUgcDungeonHeartBloodWhileMonsterDeploy) + } + "RetUgcDungeonRoomNoExitGadget" => Some(Self::RetUgcDungeonRoomNoExitGadget), + "RetUgcDungeonRoomHostEnterGadgetNum" => { + Some(Self::RetUgcDungeonRoomHostEnterGadgetNum) + } + "RetUgcDungeonRoomGuestEnterGadgetNotEnough" => { + Some(Self::RetUgcDungeonRoomGuestEnterGadgetNotEnough) + } + "RetUgcDungeonRoomSettingCoinNumTooLarge" => { + Some(Self::RetUgcDungeonRoomSettingCoinNumTooLarge) + } + "RetUgcDungeonRoomSettingMonsterNumTooLarge" => { + Some(Self::RetUgcDungeonRoomSettingMonsterNumTooLarge) + } + "RetUgcDungeonRoomSettingNoSettleConfig" => { + Some(Self::RetUgcDungeonRoomSettingNoSettleConfig) + } + "RetUgcDungeonRoomSwitchInviteInProcess" => { + Some(Self::RetUgcDungeonRoomSwitchInviteInProcess) + } + "RetUgcDungeonRoomDeploymentCostLimit" => { + Some(Self::RetUgcDungeonRoomDeploymentCostLimit) + } + "RetUgcDungeonRoomTriggerDuplicateGuid" => { + Some(Self::RetUgcDungeonRoomTriggerDuplicateGuid) + } + "RetUgcDungeonRoomTriggerParamError" => { + Some(Self::RetUgcDungeonRoomTriggerParamError) + } + "RetUgcDungeonScoreSettleTargetScoreZero" => { + Some(Self::RetUgcDungeonScoreSettleTargetScoreZero) + } + "RetUgcDungeonStateCanNotAudit" => Some(Self::RetUgcDungeonStateCanNotAudit), + "RetUgcDungeonAuditVersionNotMatch" => { + Some(Self::RetUgcDungeonAuditVersionNotMatch) + } + "RetUgcDungeonInAudit" => Some(Self::RetUgcDungeonInAudit), + "RetUgcDungeonStateCanNotPublish" => { + Some(Self::RetUgcDungeonStateCanNotPublish) + } + "RetUgcDungeonRequestTooFrequent" => { + Some(Self::RetUgcDungeonRequestTooFrequent) + } + "RetUgcDungeonCanNotPublishNoEdit" => { + Some(Self::RetUgcDungeonCanNotPublishNoEdit) + } + "RetUgcDungeonNotAllowImport" => Some(Self::RetUgcDungeonNotAllowImport), + "RetUgcDungeonImportRoomHasMonster" => { + Some(Self::RetUgcDungeonImportRoomHasMonster) + } + "RetUgcDungeonSearchNotExist" => Some(Self::RetUgcDungeonSearchNotExist), + "RetUgcDungeonRoomSwitchLastRoom" => { + Some(Self::RetUgcDungeonRoomSwitchLastRoom) + } + "RetUgcDungeonRoomGadgetNumLimit" => { + Some(Self::RetUgcDungeonRoomGadgetNumLimit) + } + "RetUgcDungeonRoomMonsterNumLimit" => { + Some(Self::RetUgcDungeonRoomMonsterNumLimit) + } + "RetUgcDungeonNoTrialSuccRecord" => { + Some(Self::RetUgcDungeonNoTrialSuccRecord) + } + "RetUgcDungeonNumLimit" => Some(Self::RetUgcDungeonNumLimit), + "RetUgcDungeonInEditDungeon" => Some(Self::RetUgcDungeonInEditDungeon), + "RetUgcDungeonNotInDungeon" => Some(Self::RetUgcDungeonNotInDungeon), + "RetUgcDungeonChangeSettingTooFrequent" => { + Some(Self::RetUgcDungeonChangeSettingTooFrequent) + } + "RetUgcDungeonNotOwner" => Some(Self::RetUgcDungeonNotOwner), + "RetUgcDungeonNotPublished" => Some(Self::RetUgcDungeonNotPublished), + "RetUgcDungeonShareCodeGenFail" => Some(Self::RetUgcDungeonShareCodeGenFail), + "RetUgcDungeonRoomLimit" => Some(Self::RetUgcDungeonRoomLimit), + "RetUgcDungeonShareCodeInvalid" => Some(Self::RetUgcDungeonShareCodeInvalid), + "RetUgcDungeonRoomSuiteNumLimit" => { + Some(Self::RetUgcDungeonRoomSuiteNumLimit) + } + "RetUgcDungeonTowerHasBeenPurchased" => { + Some(Self::RetUgcDungeonTowerHasBeenPurchased) + } + "RetUgcDungeonPlayerAddItemOverStack" => { + Some(Self::RetUgcDungeonPlayerAddItemOverStack) + } + "RetUgcDungeonPlayerTowerLevelUpLimited" => { + Some(Self::RetUgcDungeonPlayerTowerLevelUpLimited) + } + "RetUgcDungeonPlayerConsumeItemNotEnough" => { + Some(Self::RetUgcDungeonPlayerConsumeItemNotEnough) + } + "RetUgcDungeonPlayerTowerAlreadyLevelUp" => { + Some(Self::RetUgcDungeonPlayerTowerAlreadyLevelUp) + } + "RetUgcDungeonPlayerUgcTargetIsNotExist" => { + Some(Self::RetUgcDungeonPlayerUgcTargetIsNotExist) + } + "RetUgcDungeonPlayerUgcTargetIsNotActive" => { + Some(Self::RetUgcDungeonPlayerUgcTargetIsNotActive) + } + "RetUgcDungeonCheckLayoutFailed" => { + Some(Self::RetUgcDungeonCheckLayoutFailed) + } + "RetUgcDungeonPlayerTowerAlreadyRemoved" => { + Some(Self::RetUgcDungeonPlayerTowerAlreadyRemoved) + } + "RetUgcDungeonPlayerAddItemOverLimit" => { + Some(Self::RetUgcDungeonPlayerAddItemOverLimit) + } + "RetUgcDungeonPlayerGrantAvatarOverLimit" => { + Some(Self::RetUgcDungeonPlayerGrantAvatarOverLimit) + } + "RetUgcDungeonDuplicateStar" => Some(Self::RetUgcDungeonDuplicateStar), + "RetUgcDungeonCancelStarNotExist" => { + Some(Self::RetUgcDungeonCancelStarNotExist) + } + "RetUgcDungeonStarReachLimit" => Some(Self::RetUgcDungeonStarReachLimit), + "RetUgcDungeonInternalFail" => Some(Self::RetUgcDungeonInternalFail), + "RetUgcDungeonPlayerPublishBanned" => { + Some(Self::RetUgcDungeonPlayerPublishBanned) + } + "RetUgcDungeonCustomEditIsNotOpen" => { + Some(Self::RetUgcDungeonCustomEditIsNotOpen) + } + "RetUgcDungeonOfficialLevelIsNotOpen" => { + Some(Self::RetUgcDungeonOfficialLevelIsNotOpen) + } + "RetUgcDungeonTemplateImportIsNotOpen" => { + Some(Self::RetUgcDungeonTemplateImportIsNotOpen) + } + "RetTargetShootingLevelNotOpen" => Some(Self::RetTargetShootingLevelNotOpen), + "RetTargetShootingPlayerNumNotValid" => { + Some(Self::RetTargetShootingPlayerNumNotValid) + } + "RetTargetShootingPlayNotOpen" => Some(Self::RetTargetShootingPlayNotOpen), + "RetTargetShootingConfigNotFound" => { + Some(Self::RetTargetShootingConfigNotFound) + } + "RetShuffleBoardLevelNotOpen" => Some(Self::RetShuffleBoardLevelNotOpen), + "RetShuffleBoardNotInPenumbraScene" => { + Some(Self::RetShuffleBoardNotInPenumbraScene) + } + "RetShuffleBoardLevelMismatch" => Some(Self::RetShuffleBoardLevelMismatch), + "RetShuffleBoardAlreadyPlaying" => Some(Self::RetShuffleBoardAlreadyPlaying), + "RetRaffleTicketInvalidBonusId" => Some(Self::RetRaffleTicketInvalidBonusId), + "RetRaffleTicketPrerequisiteNotMet" => { + Some(Self::RetRaffleTicketPrerequisiteNotMet) + } + "RetRaffleTicketNotEnough" => Some(Self::RetRaffleTicketNotEnough), + "RetFlightGearLevelNotOpen" => Some(Self::RetFlightGearLevelNotOpen), + "RetFlightGearInMpMode" => Some(Self::RetFlightGearInMpMode), + "RetAnimalViewAvatarIsClosingToAnimal" => { + Some(Self::RetAnimalViewAvatarIsClosingToAnimal) + } + "RetAnimalViewNotEquipWidget" => Some(Self::RetAnimalViewNotEquipWidget), + "RetCombinePointNotEnough" => Some(Self::RetCombinePointNotEnough), + "RetToyBattleCurrentLevelNotOpen" => { + Some(Self::RetToyBattleCurrentLevelNotOpen) + } + "RetToyBattleCurrentNotPlaying" => Some(Self::RetToyBattleCurrentNotPlaying), + "RetFontaineGatherInvalidGatherTracking" => { + Some(Self::RetFontaineGatherInvalidGatherTracking) + } + "RetFontaineGatherInvalidMonsterTracking" => { + Some(Self::RetFontaineGatherInvalidMonsterTracking) + } + "RetFishblasterLevelNotOpen" => Some(Self::RetFishblasterLevelNotOpen), + "RetFishblasterNotInRightScene" => Some(Self::RetFishblasterNotInRightScene), + "RetFishblasterLevelMismatch" => Some(Self::RetFishblasterLevelMismatch), + "RetFishblasterAlreadyPlaying" => Some(Self::RetFishblasterAlreadyPlaying), + "RetGoalChallengeStageNotOpen" => Some(Self::RetGoalChallengeStageNotOpen), + "RetGoalChallengeInvalidTeam" => Some(Self::RetGoalChallengeInvalidTeam), + "RetAlchemySimCoinNotEnough" => Some(Self::RetAlchemySimCoinNotEnough), + "RetAlchemySimCropExceedLimit" => Some(Self::RetAlchemySimCropExceedLimit), + "RetAlchemySimFarmlandSameCrop" => Some(Self::RetAlchemySimFarmlandSameCrop), + "RetAlchemySimCropNoHarvestableLand" => { + Some(Self::RetAlchemySimCropNoHarvestableLand) + } + "RetAlchemySimCropNotEnough" => Some(Self::RetAlchemySimCropNotEnough), + "RetAlchemySimCropNotUnlocked" => Some(Self::RetAlchemySimCropNotUnlocked), + "RetAlchemySimFarmlandNotReady" => Some(Self::RetAlchemySimFarmlandNotReady), + "RetAlchemySimCropRankMax" => Some(Self::RetAlchemySimCropRankMax), + "RetAlchemySimFarmlandIsNotHarvested" => { + Some(Self::RetAlchemySimFarmlandIsNotHarvested) + } + "RetAlchemySimTechTreeAlreadyUnlocked" => { + Some(Self::RetAlchemySimTechTreeAlreadyUnlocked) + } + "RetAlchemySimPotionNotExist" => Some(Self::RetAlchemySimPotionNotExist), + "RetAlchemySimNotInTargetExam" => Some(Self::RetAlchemySimNotInTargetExam), + "RetAlchemySimRoundAlchemyCountOver" => { + Some(Self::RetAlchemySimRoundAlchemyCountOver) + } + "RetAlchemySimInternalLogicError" => { + Some(Self::RetAlchemySimInternalLogicError) + } + "RetAlchemySimCropOnForbiddenPos" => { + Some(Self::RetAlchemySimCropOnForbiddenPos) + } + "RetAlchemySimCropOverlapOverLimit" => { + Some(Self::RetAlchemySimCropOverlapOverLimit) + } + "RetAlchemySimPuzzleRateNotEnough" => { + Some(Self::RetAlchemySimPuzzleRateNotEnough) + } + "RetAlchemySimPotionCantUpgrade" => { + Some(Self::RetAlchemySimPotionCantUpgrade) + } + "RetAlchemySimExamCountNotEnough" => { + Some(Self::RetAlchemySimExamCountNotEnough) + } + "RetAlchemySimTechTreeNotAllowed" => { + Some(Self::RetAlchemySimTechTreeNotAllowed) + } + "RetAlchemySimCropNoRipenLand" => Some(Self::RetAlchemySimCropNoRipenLand), + "RetAlchemySimUnfinishQuest" => Some(Self::RetAlchemySimUnfinishQuest), + "RetAlchemySimInvalidRoundState" => { + Some(Self::RetAlchemySimInvalidRoundState) + } + "RetAlchemySimCropUpgradeExpOverflow" => { + Some(Self::RetAlchemySimCropUpgradeExpOverflow) + } + "RetAlchemySimCropUpgradeNotUnlocked" => { + Some(Self::RetAlchemySimCropUpgradeNotUnlocked) + } + "RetAlchemySimFinishRoundFrequency" => { + Some(Self::RetAlchemySimFinishRoundFrequency) + } + "RetAlchemySimTemplateAlchemyNotUnlocked" => { + Some(Self::RetAlchemySimTemplateAlchemyNotUnlocked) + } + "RetCatcafeLayoutStageNotRight" => Some(Self::RetCatcafeLayoutStageNotRight), + "RetCatcafeLayoutNotRight" => Some(Self::RetCatcafeLayoutNotRight), + "RetStaminaFightIsInOtherDungeon" => { + Some(Self::RetStaminaFightIsInOtherDungeon) + } + "RetEffigyChallengeV5LevelNotOpen" => { + Some(Self::RetEffigyChallengeV5LevelNotOpen) + } + "RetEffigyChallengeV5InvalidSupport" => { + Some(Self::RetEffigyChallengeV5InvalidSupport) + } + "RetEffigyChallengeV5InvalidPlayerNum" => { + Some(Self::RetEffigyChallengeV5InvalidPlayerNum) + } + "RetEffigyChallengeV5InCombat" => Some(Self::RetEffigyChallengeV5InCombat), + "RetEffigyChallengeV5InvalidScene" => { + Some(Self::RetEffigyChallengeV5InvalidScene) + } + "RetBlueprintSlotNotFound" => Some(Self::RetBlueprintSlotNotFound), + "RetFurnitureSuiteIdInvalid" => Some(Self::RetFurnitureSuiteIdInvalid), + "RetWishlistBatchOperateOutOfLimit" => { + Some(Self::RetWishlistBatchOperateOutOfLimit) + } + "RetHideAndSeekV4GameNotOpen" => Some(Self::RetHideAndSeekV4GameNotOpen), + "RetHideAndSeekV4PlayMapNotChosen" => { + Some(Self::RetHideAndSeekV4PlayMapNotChosen) + } + "RetHideAndSeekV4PlayerCountNotEnough" => { + Some(Self::RetHideAndSeekV4PlayerCountNotEnough) + } + "RetHideAndSeekV4PlayMapNotOpen" => { + Some(Self::RetHideAndSeekV4PlayMapNotOpen) + } + "RetWatergunLevelNotOpen" => Some(Self::RetWatergunLevelNotOpen), + "RetAcrobaticsBattleStageNotOpen" => { + Some(Self::RetAcrobaticsBattleStageNotOpen) + } + "RetAcrobaticsBattleInvalidTeam" => { + Some(Self::RetAcrobaticsBattleInvalidTeam) + } + "RetMonsterVsMonsterLevelNotOpen" => { + Some(Self::RetMonsterVsMonsterLevelNotOpen) + } + "RetRechargeDiskLevelNotOpen" => Some(Self::RetRechargeDiskLevelNotOpen), + "RetRechargeDiskInvalidLevelBuild" => { + Some(Self::RetRechargeDiskInvalidLevelBuild) + } + "RetRechargeDiskCurSceneInvalid" => { + Some(Self::RetRechargeDiskCurSceneInvalid) + } + "RetActivityPreviewTrialInCd" => Some(Self::RetActivityPreviewTrialInCd), + "RetBirdBallMpLevelNotOpen" => Some(Self::RetBirdBallMpLevelNotOpen), + "RetBirdBallDraftPlayerNumInvalid" => { + Some(Self::RetBirdBallDraftPlayerNumInvalid) + } + "RetFairyTalesLotterAreaIsNotOpen" => { + Some(Self::RetFairyTalesLotterAreaIsNotOpen) + } + "RetFairyTalesLotterLeftCntNotEnough" => { + Some(Self::RetFairyTalesLotterLeftCntNotEnough) + } + "RetFairyTalesToyTotalLeftCntNotEnough" => { + Some(Self::RetFairyTalesToyTotalLeftCntNotEnough) + } + "RetFairyTalesWishToyTypeOverLimit" => { + Some(Self::RetFairyTalesWishToyTypeOverLimit) + } + "RetFairyTalesToyCustomGadgetContentInvalid" => { + Some(Self::RetFairyTalesToyCustomGadgetContentInvalid) + } + "RetFairyTalesCombatLevelNotOpen" => { + Some(Self::RetFairyTalesCombatLevelNotOpen) + } + "RetFairyTalesTicketPrerequisiteNotMet" => { + Some(Self::RetFairyTalesTicketPrerequisiteNotMet) + } + "RetFairyTalesTicketNotEnough" => Some(Self::RetFairyTalesTicketNotEnough), + "RetActivityTeamInvalidSize" => Some(Self::RetActivityTeamInvalidSize), + "RetActivityInvalidTrialAvatar" => Some(Self::RetActivityInvalidTrialAvatar), + "RetActivityForbiddenTrialAvatar" => { + Some(Self::RetActivityForbiddenTrialAvatar) + } + "RetRenameInvalidQuestState" => Some(Self::RetRenameInvalidQuestState), + "RetRenameConflicted" => Some(Self::RetRenameConflicted), + "RetReliquaryOfferPurchaseVersionIdxError" => { + Some(Self::RetReliquaryOfferPurchaseVersionIdxError) + } + "RetReliquaryOfferVersionTimesLimit" => { + Some(Self::RetReliquaryOfferVersionTimesLimit) + } + "RetReliquaryOfferProgressNotEnough" => { + Some(Self::RetReliquaryOfferProgressNotEnough) + } + "RetReliquaryOfferProgressOverLimit" => { + Some(Self::RetReliquaryOfferProgressOverLimit) + } + "RetReliquaryPurchaseSuiteTimesOverLimit" => { + Some(Self::RetReliquaryPurchaseSuiteTimesOverLimit) + } + _ => None, + } + } +} \ No newline at end of file diff --git a/hk4e_proto/out/packet_head.rs b/hk4e_proto/out/packet_head.rs new file mode 100644 index 0000000..6e6c1dc --- /dev/null +++ b/hk4e_proto/out/packet_head.rs @@ -0,0 +1,48 @@ +// This file is @generated by prost-build. +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PacketHead { + #[prost(uint32, tag = "1")] + pub packet_id: u32, + #[prost(uint32, tag = "2")] + pub rpc_id: u32, + #[prost(uint32, tag = "3")] + pub client_sequence_id: u32, + #[prost(uint32, tag = "4")] + pub enet_channel_id: u32, + #[prost(uint32, tag = "5")] + pub enet_is_reliable: u32, + #[prost(uint64, tag = "6")] + pub sent_ms: u64, + #[prost(uint32, tag = "11")] + pub user_id: u32, + #[prost(uint32, tag = "12")] + pub user_ip: u32, + #[prost(uint32, tag = "13")] + pub user_session_id: u32, + #[prost(uint32, tag = "14")] + pub home_user_id: u32, + #[prost(uint64, tag = "21")] + pub recv_time_ms: u64, + #[prost(uint32, tag = "22")] + pub rpc_begin_time_ms: u32, + #[prost(map = "uint32, uint32", tag = "23")] + pub ext_map: ::std::collections::HashMap, + #[prost(uint32, tag = "24")] + pub sender_app_id: u32, + #[prost(uint32, tag = "25")] + pub sender_load: u32, + #[prost(bytes = "vec", tag = "26")] + pub span_context_str: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "31")] + pub source_service: u32, + #[prost(uint32, tag = "32")] + pub target_service: u32, + #[prost(map = "uint32, uint32", tag = "33")] + pub service_app_id_map: ::std::collections::HashMap, + #[prost(bool, tag = "34")] + pub is_set_game_thread: bool, + #[prost(uint32, tag = "35")] + pub game_thread_index: u32, +} diff --git a/hk4e_proto/out/redis_data.rs b/hk4e_proto/out/redis_data.rs new file mode 100644 index 0000000..19c24df --- /dev/null +++ b/hk4e_proto/out/redis_data.rs @@ -0,0 +1,41 @@ +// This file is @generated by prost-build. +#[derive(proto_gen::CmdID)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PlayerStatusRedisData { + #[prost(enumeration = "PlayerStatusType", tag = "1")] + pub status: i32, + #[prost(uint32, tag = "2")] + pub gameserver_id: u32, + #[prost(uint64, tag = "3")] + pub login_rand: u64, + #[prost(uint32, tag = "4")] + pub login_time: u32, +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum PlayerStatusType { + PlayerStatusOffline = 0, + PlayerStatusOnline = 1, +} +impl PlayerStatusType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + PlayerStatusType::PlayerStatusOffline => "PLAYER_STATUS_OFFLINE", + PlayerStatusType::PlayerStatusOnline => "PLAYER_STATUS_ONLINE", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "PLAYER_STATUS_OFFLINE" => Some(Self::PlayerStatusOffline), + "PLAYER_STATUS_ONLINE" => Some(Self::PlayerStatusOnline), + _ => None, + } + } +} diff --git a/hk4e_proto/out/server_only.rs b/hk4e_proto/out/server_only.rs new file mode 100644 index 0000000..0070632 --- /dev/null +++ b/hk4e_proto/out/server_only.rs @@ -0,0 +1,132 @@ +// This file is @generated by prost-build. +#[derive(proto_gen::CmdID)] +#[cmdid(10035)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddGateserverNotify { + #[prost(uint32, tag = "1")] + pub listen_port: u32, + #[prost(uint32, tag = "2")] + pub outer_ip: u32, + #[prost(bool, tag = "3")] + pub use_domain_name: bool, + #[prost(string, tag = "4")] + pub domain_name: ::prost::alloc::string::String, +} +#[derive(proto_gen::CmdID)] +#[cmdid(1)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct KeepAliveNotify {} +#[derive(proto_gen::CmdID)] +#[cmdid(10198)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SavePlayerDataReq { + #[prost(bytes = "vec", tag = "1")] + pub player_data: ::prost::alloc::vec::Vec, + #[prost(uint32, tag = "2")] + pub save_stat_id: u32, +} +#[derive(proto_gen::CmdID)] +#[cmdid(10112)] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SavePlayerDataRsp { + #[prost(int32, tag = "1")] + pub retcode: i32, + #[prost(uint32, tag = "2")] + pub data_version: u32, + #[prost(uint32, tag = "3")] + pub save_stat_id: u32, +} +#[derive(proto_gen::CmdID)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum ENetReason { + EnetTimeout = 0, + EnetClientClose = 1, + EnetClientRebindFail = 2, + EnetClientShutdown = 3, + EnetServerRelogin = 4, + EnetServerKick = 5, + EnetServerShutdown = 6, + EnetNotFoundSession = 7, + EnetLoginUnfinished = 8, + EnetPacketFreqTooHigh = 9, + EnetPingTimeout = 10, + EnetTranferFailed = 11, + EnetServerKillClient = 12, + EnetCheckMoveSpeed = 13, + EnetAccountPasswordChange = 14, + EnetSecurityKick = 15, + EnetLuaShellTimeout = 16, + EnetSdkfailKick = 17, + EnetPacketCostTime = 18, + EnetPacketUnionFreq = 19, + EnetWaitSndMax = 20, + EnetClientConnectKey = 1234567890, + EnetClientEditorConnectKey = 987654321, +} +impl ENetReason { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + ENetReason::EnetTimeout => "ENET_TIMEOUT", + ENetReason::EnetClientClose => "ENET_CLIENT_CLOSE", + ENetReason::EnetClientRebindFail => "ENET_CLIENT_REBIND_FAIL", + ENetReason::EnetClientShutdown => "ENET_CLIENT_SHUTDOWN", + ENetReason::EnetServerRelogin => "ENET_SERVER_RELOGIN", + ENetReason::EnetServerKick => "ENET_SERVER_KICK", + ENetReason::EnetServerShutdown => "ENET_SERVER_SHUTDOWN", + ENetReason::EnetNotFoundSession => "ENET_NOT_FOUND_SESSION", + ENetReason::EnetLoginUnfinished => "ENET_LOGIN_UNFINISHED", + ENetReason::EnetPacketFreqTooHigh => "ENET_PACKET_FREQ_TOO_HIGH", + ENetReason::EnetPingTimeout => "ENET_PING_TIMEOUT", + ENetReason::EnetTranferFailed => "ENET_TRANFER_FAILED", + ENetReason::EnetServerKillClient => "ENET_SERVER_KILL_CLIENT", + ENetReason::EnetCheckMoveSpeed => "ENET_CHECK_MOVE_SPEED", + ENetReason::EnetAccountPasswordChange => "ENET_ACCOUNT_PASSWORD_CHANGE", + ENetReason::EnetSecurityKick => "ENET_SECURITY_KICK", + ENetReason::EnetLuaShellTimeout => "ENET_LUA_SHELL_TIMEOUT", + ENetReason::EnetSdkfailKick => "ENET_SDKFAIL_KICK", + ENetReason::EnetPacketCostTime => "ENET_PACKET_COST_TIME", + ENetReason::EnetPacketUnionFreq => "ENET_PACKET_UNION_FREQ", + ENetReason::EnetWaitSndMax => "ENET_WAIT_SND_MAX", + ENetReason::EnetClientConnectKey => "ENET_CLIENT_CONNECT_KEY", + ENetReason::EnetClientEditorConnectKey => "ENET_CLIENT_EDITOR_CONNECT_KEY", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ENET_TIMEOUT" => Some(Self::EnetTimeout), + "ENET_CLIENT_CLOSE" => Some(Self::EnetClientClose), + "ENET_CLIENT_REBIND_FAIL" => Some(Self::EnetClientRebindFail), + "ENET_CLIENT_SHUTDOWN" => Some(Self::EnetClientShutdown), + "ENET_SERVER_RELOGIN" => Some(Self::EnetServerRelogin), + "ENET_SERVER_KICK" => Some(Self::EnetServerKick), + "ENET_SERVER_SHUTDOWN" => Some(Self::EnetServerShutdown), + "ENET_NOT_FOUND_SESSION" => Some(Self::EnetNotFoundSession), + "ENET_LOGIN_UNFINISHED" => Some(Self::EnetLoginUnfinished), + "ENET_PACKET_FREQ_TOO_HIGH" => Some(Self::EnetPacketFreqTooHigh), + "ENET_PING_TIMEOUT" => Some(Self::EnetPingTimeout), + "ENET_TRANFER_FAILED" => Some(Self::EnetTranferFailed), + "ENET_SERVER_KILL_CLIENT" => Some(Self::EnetServerKillClient), + "ENET_CHECK_MOVE_SPEED" => Some(Self::EnetCheckMoveSpeed), + "ENET_ACCOUNT_PASSWORD_CHANGE" => Some(Self::EnetAccountPasswordChange), + "ENET_SECURITY_KICK" => Some(Self::EnetSecurityKick), + "ENET_LUA_SHELL_TIMEOUT" => Some(Self::EnetLuaShellTimeout), + "ENET_SDKFAIL_KICK" => Some(Self::EnetSdkfailKick), + "ENET_PACKET_COST_TIME" => Some(Self::EnetPacketCostTime), + "ENET_PACKET_UNION_FREQ" => Some(Self::EnetPacketUnionFreq), + "ENET_WAIT_SND_MAX" => Some(Self::EnetWaitSndMax), + "ENET_CLIENT_CONNECT_KEY" => Some(Self::EnetClientConnectKey), + "ENET_CLIENT_EDITOR_CONNECT_KEY" => Some(Self::EnetClientEditorConnectKey), + _ => None, + } + } +} \ No newline at end of file diff --git a/hk4e_proto/proto_gen/Cargo.toml b/hk4e_proto/proto_gen/Cargo.toml new file mode 100644 index 0000000..aa7ed1b --- /dev/null +++ b/hk4e_proto/proto_gen/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "proto_gen" +version = "0.1.0" +edition = "2021" + +[dependencies] +syn = "2.0.53" +quote = "1.0.35" +proc-macro2 = "1.0.79" + +[lib] +proc-macro = true diff --git a/hk4e_proto/proto_gen/src/lib.rs b/hk4e_proto/proto_gen/src/lib.rs new file mode 100644 index 0000000..330bd38 --- /dev/null +++ b/hk4e_proto/proto_gen/src/lib.rs @@ -0,0 +1,27 @@ +use proc_macro::TokenStream; +use quote::{quote, ToTokens}; +use syn::{parse_macro_input, DeriveInput, Meta, MetaList}; + +#[proc_macro_derive(CmdID, attributes(cmdid))] +pub fn cmd_id_derive(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let struct_name = input.ident; + + let id = match input + .attrs + .iter() + .find(|attr| attr.path().is_ident("cmdid")) + { + Some(attr) => match attr.meta { + Meta::List(MetaList { ref tokens, .. }) => tokens.into_token_stream(), + _ => panic!("Invalid cmdid attribute value"), + }, + _ => 0u16.into_token_stream(), + }; + + TokenStream::from(quote! { + impl crate::CmdID for #struct_name { + const CMD_ID: u16 = #id; + } + }) +} diff --git a/hk4e_proto/src/lib.rs b/hk4e_proto/src/lib.rs new file mode 100644 index 0000000..780c519 --- /dev/null +++ b/hk4e_proto/src/lib.rs @@ -0,0 +1,16 @@ +include!("../out/packet_head.rs"); +include!("../out/server_only.rs"); +include!("../out/bin.rs"); +include!("../out/redis_data.rs"); +include!("../out/cmd.rs"); + +pub trait CmdID { + const CMD_ID: u16; + + fn get_cmd_id(&self) -> u16 { + Self::CMD_ID + } +} + +pub trait YSMessage: prost::Message + CmdID {} +impl YSMessage for T {} diff --git a/kcp/Cargo.toml b/kcp/Cargo.toml new file mode 100644 index 0000000..a5b9769 --- /dev/null +++ b/kcp/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "mhy-kcp" +version.workspace = true +edition = "2021" + +[features] +fastack-conserve = [] +tokio = ["dep:tokio"] + +[dependencies] +bytes.workspace = true +log = "0.4.21" +thiserror = "1.0.58" +tokio = { version = "1.37.0", optional = true, features = ["io-util"] } +xxhash-rust = { version = "0.8.10", features = ["xxh3"] } + +[dev-dependencies] +time = "0.3.34" +rand = "0.8.5" +env_logger = "0.11.3" + diff --git a/kcp/src/error.rs b/kcp/src/error.rs new file mode 100644 index 0000000..0991d6b --- /dev/null +++ b/kcp/src/error.rs @@ -0,0 +1,56 @@ +use std::{ + error::Error as StdError, + io::{self, ErrorKind}, +}; + +/// KCP protocol errors +#[derive(Debug, thiserror::Error)] +pub enum Error { + #[error("conv inconsistent, expected {0}, found {1}")] + ConvInconsistent(u32, u32), + #[error("invalid mtu {0}")] + InvalidMtu(usize), + #[error("invalid segment size {0}")] + InvalidSegmentSize(usize), + #[error("invalid segment data size, expected {0}, found {1}")] + InvalidSegmentDataSize(usize, usize), + #[error("{0}")] + IoError( + #[from] + #[source] + io::Error, + ), + #[error("need to call update() once")] + NeedUpdate, + #[error("recv queue is empty")] + RecvQueueEmpty, + #[error("expecting fragment")] + ExpectingFragment, + #[error("command {0} is not supported")] + UnsupportedCmd(u8), + #[error("user's send buffer is too big")] + UserBufTooBig, + #[error("user's recv buffer is too small")] + UserBufTooSmall, + #[error("token mismatch, expected {0}, found {1}")] + TokenMismatch(u32, u32), +} + +fn make_io_error(kind: ErrorKind, msg: T) -> io::Error +where + T: Into>, +{ + io::Error::new(kind, msg) +} + +impl From for io::Error { + fn from(err: Error) -> Self { + let kind = match err { + Error::IoError(err) => return err, + Error::RecvQueueEmpty | Error::ExpectingFragment => ErrorKind::WouldBlock, + _ => ErrorKind::Other, + }; + + make_io_error(kind, err) + } +} diff --git a/kcp/src/kcp.rs b/kcp/src/kcp.rs new file mode 100644 index 0000000..9e1a0be --- /dev/null +++ b/kcp/src/kcp.rs @@ -0,0 +1,1528 @@ +//! KCP + +#[cfg(feature = "tokio")] +use std::pin::Pin; +#[cfg(feature = "tokio")] +use std::task::{Context, Poll}; +use std::{ + cmp, + cmp::Ordering, + collections::VecDeque, + fmt::{self, Debug}, + io::{self, Cursor, Read, Write}, +}; + +use bytes::{Buf, BufMut, BytesMut}; +#[cfg(feature = "tokio")] +use tokio::io::{AsyncWrite, AsyncWriteExt}; +use xxhash_rust::xxh3::xxh3_64; + +use crate::{error::Error, KcpResult}; + +const KCP_RTO_NDL: u32 = 20; // no delay min rto +const KCP_RTO_MIN: u32 = 100; // normal min rto +const KCP_RTO_DEF: u32 = 200; +const KCP_RTO_MAX: u32 = 60000; + +const KCP_CMD_PUSH: u8 = 81; // cmd: push data +const KCP_CMD_ACK: u8 = 82; // cmd: ack +const KCP_CMD_WASK: u8 = 83; // cmd: window probe (ask) +const KCP_CMD_WINS: u8 = 84; // cmd: window size (tell) + +const KCP_ASK_SEND: u32 = 1; // need to send IKCP_CMD_WASK +const KCP_ASK_TELL: u32 = 2; // need to send IKCP_CMD_WINS + +const KCP_WND_SND: u16 = 32; +const KCP_WND_RCV: u16 = 258; // must >= max fragment size + +const KCP_MTU_DEF: usize = 1400; +// const KCP_ACK_FAST: u32 = 3; + +const KCP_INTERVAL: u32 = 100; +/// KCP Header size +pub const KCP_OVERHEAD: usize = 32; +const KCP_DEADLINK: u32 = 20; + +const KCP_THRESH_INIT: u16 = 2; +const KCP_THRESH_MIN: u16 = 2; + +const KCP_PROBE_INIT: u32 = 7000; // 7 secs to probe window size +const KCP_PROBE_LIMIT: u32 = 120_000; // up to 120 secs to probe window +const KCP_FASTACK_LIMIT: u32 = 5; // max times to trigger fastack + +/// Read `conv` from raw buffer +#[must_use] +pub fn get_conv(mut buf: &[u8]) -> u32 { + assert!(buf.len() >= KCP_OVERHEAD); + buf.get_u32_le() +} + +/// Set `conv` to raw buffer +pub fn set_conv(mut buf: &mut [u8], conv: u32) { + assert!(buf.len() >= KCP_OVERHEAD); + buf.put_u32_le(conv); +} + +/// Get `sn` from raw buffer +#[must_use] +pub fn get_sn(buf: &[u8]) -> u32 { + assert!(buf.len() >= KCP_OVERHEAD); + (&buf[12..]).get_u32_le() +} + +#[must_use] +fn bound(lower: u32, v: u32, upper: u32) -> u32 { + cmp::min(cmp::max(lower, v), upper) +} + +#[must_use] +const fn timediff(later: u32, earlier: u32) -> i32 { + later as i32 - earlier as i32 +} + +#[derive(Default, Clone, Debug)] +struct KcpSegment { + conv: u32, + token: u32, + checksum: u32, + cmd: u8, + frg: u8, + wnd: u16, + ts: u32, + sn: u32, + una: u32, + resendts: u32, + rto: u32, + fastack: u32, + xmit: u32, + data: BytesMut, +} + +impl KcpSegment { + fn new(data: BytesMut) -> Self { + Self { + checksum: (xxh3_64(&data) & 0xFFFFFFFF) as u32, + data, + ..Default::default() + } + } + + fn encode(&self, buf: &mut BytesMut) { + assert!( + buf.remaining_mut() >= self.encoded_len(), + "REMAIN {} encoded {} {self:?}", + buf.remaining_mut(), + self.encoded_len(), + ); + + buf.put_u32_le(self.conv); + buf.put_u32_le(self.token); + buf.put_u8(self.cmd); + buf.put_u8(self.frg); + buf.put_u16_le(self.wnd); + buf.put_u32_le(self.ts); + buf.put_u32_le(self.sn); + buf.put_u32_le(self.una); + buf.put_u32_le(self.data.len() as u32); + buf.put_u32_le(self.checksum); + buf.put_slice(&self.data); + } + + fn encoded_len(&self) -> usize { + KCP_OVERHEAD + self.data.len() + } +} + +#[derive(Default)] +struct KcpOutput(O); + +impl Write for KcpOutput { + fn write(&mut self, data: &[u8]) -> io::Result { + trace!("[RO] {} bytes", data.len()); + self.0.write(data) + } + + fn flush(&mut self) -> io::Result<()> { + self.0.flush() + } +} + +#[cfg(feature = "tokio")] +impl AsyncWrite for KcpOutput { + fn poll_write( + mut self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &[u8], + ) -> Poll> { + Pin::new(&mut self.0).poll_write(cx, buf) + } + + fn poll_flush(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut self.0).poll_flush(cx) + } + + fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut self.0).poll_shutdown(cx) + } + + fn poll_write_vectored( + mut self: Pin<&mut Self>, + cx: &mut Context<'_>, + bufs: &[io::IoSlice<'_>], + ) -> Poll> { + Pin::new(&mut self.0).poll_write_vectored(cx, bufs) + } + + fn is_write_vectored(&self) -> bool { + self.0.is_write_vectored() + } +} + +/// KCP control +#[derive(Default)] +pub struct Kcp { + /// Conversation ID + conv: u32, + /// Maximum Transmission Unit + mtu: usize, + /// Maximum Segment Size + mss: usize, + /// Connection state + state: i32, + /// User token + token: u32, + + /// First unacknowledged packet + snd_una: u32, + /// Next packet + snd_nxt: u32, + /// Next packet to be received + rcv_nxt: u32, + + /// Congestion window threshold + ssthresh: u16, + + /// ACK receive variable RTT + rx_rttval: u32, + /// ACK receive static RTT + rx_srtt: u32, + /// Resend time (calculated by ACK delay time) + rx_rto: u32, + /// Minimal resend timeout + rx_minrto: u32, + + /// Send window + snd_wnd: u16, + /// Receive window + rcv_wnd: u16, + /// Remote receive window + rmt_wnd: u16, + /// Congestion window + cwnd: u16, + /// Check window + /// - `IKCP_ASK_TELL`, telling window size to remote + /// - `IKCP_ASK_SEND`, ask remote for window size + probe: u32, + + /// Last update time + current: u32, + /// Flush interval + interval: u32, + /// Next flush interval + ts_flush: u32, + xmit: u32, + + /// Enable nodelay + nodelay: bool, + /// Updated has been called or not + updated: bool, + + /// Next check window timestamp + ts_probe: u32, + /// Check window wait time + probe_wait: u32, + + /// Maximum resend time + dead_link: u32, + /// Maximum payload size + incr: usize, + + snd_queue: VecDeque, + rcv_queue: VecDeque, + snd_buf: VecDeque, + rcv_buf: VecDeque, + + /// Pending ACK + acklist: VecDeque<(u32, u32)>, + buf: BytesMut, + + /// ACK number to trigger fast resend + fastresend: u32, + fastlimit: u32, + /// Disable congestion control + nocwnd: bool, + /// Enable stream mode + stream: bool, + + /// Get conv from the next input call + input_conv: bool, + + output: KcpOutput, +} + +impl Debug for Kcp { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Kcp") + .field("conv", &self.conv) + .field("mtu", &self.mtu) + .field("mss", &self.mss) + .field("state", &self.state) + .field("token", &self.token) + .field("snd_una", &self.snd_una) + .field("snd_nxt", &self.snd_nxt) + .field("rcv_nxt", &self.rcv_nxt) + .field("ssthresh", &self.ssthresh) + .field("rx_rttval", &self.rx_rttval) + .field("rx_srtt", &self.rx_srtt) + .field("rx_rto", &self.rx_rto) + .field("rx_minrto", &self.rx_minrto) + .field("snd_wnd", &self.snd_wnd) + .field("rcv_wnd", &self.rcv_wnd) + .field("rmt_wnd", &self.rmt_wnd) + .field("cwnd", &self.cwnd) + .field("probe", &self.probe) + .field("current", &self.current) + .field("interval", &self.interval) + .field("ts_flush", &self.ts_flush) + .field("xmit", &self.xmit) + .field("nodelay", &self.nodelay) + .field("updated", &self.updated) + .field("ts_probe", &self.ts_probe) + .field("probe_wait", &self.probe_wait) + .field("dead_link", &self.dead_link) + .field("incr", &self.incr) + .field("snd_queue.len", &self.snd_queue.len()) + .field("rcv_queue.len", &self.rcv_queue.len()) + .field("snd_buf.len", &self.snd_buf.len()) + .field("rcv_buf.len", &self.rcv_buf.len()) + .field("acklist.len", &self.acklist.len()) + .field("buf.len", &self.buf.len()) + .field("fastresend", &self.fastresend) + .field("fastlimit", &self.fastlimit) + .field("nocwnd", &self.nocwnd) + .field("stream", &self.stream) + .field("input_conv", &self.input_conv) + .finish() + } +} + +impl Kcp { + /// Create a KCP control object. + /// + /// `conv` represents the conversation, it must be equal in both endpoints given a connection + /// `token` is the token for the conversation. + /// `stream` will enable stream mode if set to `true`. + /// `output` is the callback object for writing. + pub fn new(conv: u32, token: u32, stream: bool, output: Output) -> Self { + Self { + conv, + token, + snd_una: 0, + snd_nxt: 0, + rcv_nxt: 0, + ts_probe: 0, + probe_wait: 0, + snd_wnd: KCP_WND_SND, + rcv_wnd: KCP_WND_RCV, + rmt_wnd: KCP_WND_RCV, + cwnd: 0, + incr: 0, + probe: 0, + mtu: KCP_MTU_DEF, + mss: KCP_MTU_DEF - KCP_OVERHEAD, + stream, + + buf: BytesMut::with_capacity((KCP_MTU_DEF + KCP_OVERHEAD) * 3), + + snd_queue: VecDeque::new(), + rcv_queue: VecDeque::new(), + snd_buf: VecDeque::new(), + rcv_buf: VecDeque::new(), + + state: 0, + + acklist: VecDeque::new(), + + rx_srtt: 0, + rx_rttval: 0, + rx_rto: KCP_RTO_DEF, + rx_minrto: KCP_RTO_MIN, + + current: 0, + interval: KCP_INTERVAL, + ts_flush: KCP_INTERVAL, + nodelay: false, + updated: false, + ssthresh: KCP_THRESH_INIT, + fastresend: 0, + fastlimit: KCP_FASTACK_LIMIT, + nocwnd: false, + xmit: 0, + dead_link: KCP_DEADLINK, + + input_conv: false, + output: KcpOutput(output), + } + } + + // move available data from rcv_buf -> rcv_queue + pub fn move_buf(&mut self) { + while !self.rcv_buf.is_empty() { + let nrcv_que = self.rcv_queue.len(); + { + let seg = self.rcv_buf.front().unwrap(); + if seg.sn == self.rcv_nxt && nrcv_que < self.rcv_wnd as usize { + self.rcv_nxt += 1; + } else { + break; + } + } + + let seg = self.rcv_buf.pop_front().unwrap(); + self.rcv_queue.push_back(seg); + } + } + + /// Receive data from buffer + pub fn recv(&mut self, buf: &mut [u8]) -> KcpResult { + if self.rcv_queue.is_empty() { + return Err(Error::RecvQueueEmpty); + } + + let peeksize = self.peeksize()?; + + if peeksize > buf.len() { + debug!("recv peeksize={peeksize} bufsize={} too small", buf.len()); + return Err(Error::UserBufTooSmall); + } + + let recover = self.rcv_queue.len() >= self.rcv_wnd as usize; + + // Merge fragment + let mut cur = Cursor::new(buf); + while let Some(seg) = self.rcv_queue.pop_front() { + Write::write_all(&mut cur, &seg.data)?; + + trace!("recv sn={}", seg.sn); + + if seg.frg == 0 { + break; + } + } + assert_eq!(cur.position() as usize, peeksize); + + self.move_buf(); + + // fast recover + if self.rcv_queue.len() < self.rcv_wnd as usize && recover { + // ready to send back IKCP_CMD_WINS in ikcp_flush + // tell remote my window size + self.probe |= KCP_ASK_TELL; + } + + Ok(cur.position() as usize) + } + + /// Check buffer size without actually consuming it + pub fn peeksize(&self) -> KcpResult { + match self.rcv_queue.front() { + Some(segment) => { + if segment.frg == 0 { + return Ok(segment.data.len()); + } + + if self.rcv_queue.len() < (segment.frg + 1) as usize { + return Err(Error::ExpectingFragment); + } + + let mut len = 0; + + for segment in &self.rcv_queue { + len += segment.data.len(); + if segment.frg == 0 { + break; + } + } + + Ok(len) + } + None => Err(Error::RecvQueueEmpty), + } + } + + /// Send bytes into buffer + pub fn send(&mut self, mut buf: &[u8]) -> KcpResult { + let mut sent_size = 0; + + assert!(self.mss > 0); + + // append to previous segment in streaming mode (if possible) + if self.stream { + if let Some(old) = self.snd_queue.back_mut() { + let l = old.data.len(); + if l < self.mss { + let capacity = self.mss - l; + let extend = cmp::min(buf.len(), capacity); + + trace!( + "send stream mss={} last length={l} extend={extend}", + self.mss, + ); + + let (lf, rt) = buf.split_at(extend); + old.data.extend_from_slice(lf); + buf = rt; + + old.frg = 0; + sent_size += extend; + } + } + + if buf.is_empty() { + return Ok(sent_size); + } + } + + let count = if buf.len() <= self.mss { + 1 + } else { + (buf.len() + self.mss - 1) / self.mss + }; + + if count >= KCP_WND_RCV as usize { + debug!("send bufsize={} mss={} too large", buf.len(), self.mss); + return Err(Error::UserBufTooBig); + } + + let count = cmp::max(1, count); + + for i in 0..count { + let size = cmp::min(self.mss, buf.len()); + + let (lf, rt) = buf.split_at(size); + + let mut new_segment = KcpSegment::new(lf.into()); + buf = rt; + + new_segment.frg = if self.stream { + 0 + } else { + (count - i - 1) as u8 + }; + + self.snd_queue.push_back(new_segment); + sent_size += size; + } + + Ok(sent_size) + } + + fn update_ack(&mut self, rtt: u32) { + if self.rx_srtt == 0 { + self.rx_srtt = rtt; + self.rx_rttval = rtt / 2; + } else { + let delta = if rtt > self.rx_srtt { + rtt - self.rx_srtt + } else { + self.rx_srtt - rtt + }; + self.rx_rttval = (3 * self.rx_rttval + delta) / 4; + self.rx_srtt = ((7 * u64::from(self.rx_srtt) + u64::from(rtt)) / 8) as u32; + if self.rx_srtt < 1 { + self.rx_srtt = 1; + } + } + let rto = self.rx_srtt + cmp::max(self.interval, 4 * self.rx_rttval); + self.rx_rto = bound(self.rx_minrto, rto, KCP_RTO_MAX); + } + + fn shrink_buf(&mut self) { + self.snd_una = match self.snd_buf.front() { + Some(seg) => seg.sn, + None => self.snd_nxt, + }; + } + + fn parse_ack(&mut self, sn: u32) { + if timediff(sn, self.snd_una) < 0 || timediff(sn, self.snd_nxt) >= 0 { + return; + } + + let mut i = 0_usize; + while i < self.snd_buf.len() { + match sn.cmp(&self.snd_buf[i].sn) { + Ordering::Equal => { + self.snd_buf.remove(i); + break; + } + Ordering::Less => break, + Ordering::Greater => i += 1, + } + } + } + + fn parse_una(&mut self, una: u32) { + while let Some(seg) = self.snd_buf.front() { + if timediff(una, seg.sn) > 0 { + self.snd_buf.pop_front(); + } else { + break; + } + } + } + + fn parse_fastack(&mut self, sn: u32, ts: u32) { + if timediff(sn, self.snd_una) < 0 || timediff(sn, self.snd_nxt) >= 0 { + return; + } + + for seg in &mut self.snd_buf { + if timediff(sn, seg.sn) < 0 { + break; + } else if sn != seg.sn { + #[cfg(feature = "fastack-conserve")] + { + seg.fastack += 1; + } + #[cfg(not(feature = "fastack-conserve"))] + if timediff(ts, seg.ts) >= 0 { + seg.fastack += 1; + } + } + } + } + + fn ack_push(&mut self, sn: u32, ts: u32) { + self.acklist.push_back((sn, ts)); + } + + fn parse_data(&mut self, new_segment: KcpSegment) { + let sn = new_segment.sn; + + if timediff(sn, self.rcv_nxt + u32::from(self.rcv_wnd)) >= 0 + || timediff(sn, self.rcv_nxt) < 0 + { + return; + } + + let mut repeat = false; + let mut new_index = self.rcv_buf.len(); + + for segment in self.rcv_buf.iter().rev() { + if segment.sn == sn { + repeat = true; + break; + } + if timediff(sn, segment.sn) > 0 { + break; + } + new_index -= 1; + } + + if !repeat { + self.rcv_buf.insert(new_index, new_segment); + } + + // move available data from rcv_buf -> rcv_queue + self.move_buf(); + } + + /// Get `conv` from the next `input` call + pub fn input_conv(&mut self) { + self.input_conv = true; + } + + /// Check if Kcp is waiting for the next input + #[must_use] + pub const fn waiting_conv(&self) -> bool { + self.input_conv + } + + /// Set `conv` value + pub fn set_conv(&mut self, conv: u32) { + self.conv = conv; + } + + /// Get `conv` + #[must_use] + pub const fn conv(&self) -> u32 { + self.conv + } + + /// Call this when you received a packet from raw connection + pub fn input(&mut self, buf: &[u8]) -> KcpResult { + let input_size = buf.len(); + + trace!("[RI] {} bytes", buf.len()); + + if buf.len() < KCP_OVERHEAD { + debug!( + "input bufsize={} too small, at least {KCP_OVERHEAD}", + buf.len(), + ); + return Err(Error::InvalidSegmentSize(buf.len())); + } + + let mut flag = false; + let mut max_ack = 0; + let old_una = self.snd_una; + let mut latest_ts = 0; + + let mut buf = Cursor::new(buf); + while buf.remaining() >= KCP_OVERHEAD { + let conv = buf.get_u32_le(); + if conv != self.conv { + // This allows getting conv from this call, which allows us to allocate + // conv from the server side. + if self.input_conv { + debug!("input conv={conv} updated, original conv={}", self.conv); + self.conv = conv; + self.input_conv = false; + } else { + debug!("input conv={conv} expected conv={} not match", self.conv); + return Err(Error::ConvInconsistent(self.conv, conv)); + } + } + + let token = buf.get_u32_le(); + let cmd = buf.get_u8(); + let frg = buf.get_u8(); + let wnd = buf.get_u16_le(); + let ts = buf.get_u32_le(); + let sn = buf.get_u32_le(); + let una = buf.get_u32_le(); + let len = buf.get_u32_le() as usize; + let _checksum = buf.get_u32_le(); + + if buf.remaining() < len { + debug!( + "input bufsize={input_size} payload length={len} remaining={} not match", + buf.remaining() + ); + return Err(Error::InvalidSegmentDataSize(len, buf.remaining())); + } + + match cmd { + KCP_CMD_PUSH | KCP_CMD_ACK | KCP_CMD_WASK | KCP_CMD_WINS => {} + _ => { + debug!("input cmd={cmd} unrecognized"); + return Err(Error::UnsupportedCmd(cmd)); + } + } + + if token != self.token { + return Err(Error::TokenMismatch(token, self.token)); + } + + self.rmt_wnd = wnd; + + self.parse_una(una); + self.shrink_buf(); + + let mut has_read_data = false; + + match cmd { + KCP_CMD_ACK => { + let rtt = timediff(self.current, ts); + if rtt >= 0 { + self.update_ack(rtt as u32); + } + self.parse_ack(sn); + self.shrink_buf(); + + if !flag { + flag = true; + max_ack = sn; + latest_ts = ts; + } else if timediff(sn, max_ack) > 0 { + #[cfg(feature = "fastack-conserve")] + { + max_ack = sn; + latest_ts = ts; + } + #[cfg(not(feature = "fastack-conserve"))] + if timediff(ts, latest_ts) > 0 { + max_ack = sn; + latest_ts = ts; + } + } + + trace!( + "input ack: sn={sn} rtt={} rto={}", + timediff(self.current, ts), + self.rx_rto + ); + } + KCP_CMD_PUSH => { + trace!("input psh: sn={sn} ts={ts}"); + + if timediff(sn, self.rcv_nxt + u32::from(self.rcv_wnd)) < 0 { + self.ack_push(sn, ts); + if timediff(sn, self.rcv_nxt) >= 0 { + let mut sbuf = BytesMut::with_capacity(len); + unsafe { + sbuf.set_len(len); + } + buf.read_exact(&mut sbuf).unwrap(); + has_read_data = true; + + let mut segment = KcpSegment::new(sbuf); + + segment.conv = conv; + segment.token = token; + segment.cmd = cmd; + segment.frg = frg; + segment.wnd = wnd; + segment.ts = ts; + segment.sn = sn; + segment.una = una; + + self.parse_data(segment); + } + } + } + KCP_CMD_WASK => { + // ready to send back IKCP_CMD_WINS in ikcp_flush + // tell remote my window size + trace!("input probe"); + self.probe |= KCP_ASK_TELL; + } + KCP_CMD_WINS => { + // Do nothing + trace!("input wins: {wnd}"); + } + _ => unreachable!(), + } + + // Force skip unread data + if !has_read_data { + let next_pos = buf.position() + len as u64; + buf.set_position(next_pos); + } + } + + if flag { + self.parse_fastack(max_ack, latest_ts); + } + + if timediff(self.snd_una, old_una) > 0 && self.cwnd < self.rmt_wnd { + let mss = self.mss; + if self.cwnd < self.ssthresh { + self.cwnd += 1; + self.incr += mss; + } else { + if self.incr < mss { + self.incr = mss; + } + self.incr += (mss * mss) / self.incr + (mss / 16); + if (self.cwnd as usize + 1) * mss <= self.incr { + // self.cwnd += 1; + self.cwnd = ((self.incr + mss - 1) / if mss > 0 { mss } else { 1 }) as u16; + } + } + if self.cwnd > self.rmt_wnd { + self.cwnd = self.rmt_wnd; + self.incr = self.rmt_wnd as usize * mss; + } + } + + Ok(buf.position() as usize) + } + + #[must_use] + fn wnd_unused(&self) -> u16 { + if self.rcv_queue.len() < self.rcv_wnd as usize { + self.rcv_wnd - self.rcv_queue.len() as u16 + } else { + 0 + } + } + + fn probe_wnd_size(&mut self) { + // probe window size (if remote window size equals zero) + if self.rmt_wnd == 0 { + if self.probe_wait == 0 { + self.probe_wait = KCP_PROBE_INIT; + self.ts_probe = self.current + self.probe_wait; + } else if timediff(self.current, self.ts_probe) >= 0 { + if self.probe_wait < KCP_PROBE_INIT { + self.probe_wait = KCP_PROBE_INIT; + } + + self.probe_wait += self.probe_wait / 2; + + if self.probe_wait > KCP_PROBE_LIMIT { + self.probe_wait = KCP_PROBE_LIMIT; + } + + self.ts_probe = self.current + self.probe_wait; + self.probe |= KCP_ASK_SEND; + } + } else { + self.ts_probe = 0; + self.probe_wait = 0; + } + } + + /// Determine when you should call `update`. + /// Return when you should invoke `update` in millisec, if there is no `input`/`send` calling. + /// You can call `update` in that time without calling it repeatly. + #[must_use] + pub fn check(&self, current: u32) -> u32 { + if !self.updated { + return 0; + } + + let mut ts_flush = self.ts_flush; + let mut tm_packet = u32::max_value(); + + if timediff(current, ts_flush) >= 10000 || timediff(current, ts_flush) < -10000 { + ts_flush = current; + } + + if timediff(current, ts_flush) >= 0 { + return 0; + } + + let tm_flush = timediff(ts_flush, current) as u32; + for seg in &self.snd_buf { + let diff = timediff(seg.resendts, current); + if diff <= 0 { + return 0; + } + if (diff as u32) < tm_packet { + tm_packet = diff as u32; + } + } + + let mut minimal = cmp::min(tm_packet, tm_flush); + if minimal >= self.interval { + minimal = self.interval; + } + + minimal + } + + /// Change MTU size, default is 1400 + /// + /// MTU = Maximum Transmission Unit + pub fn set_mtu(&mut self, mtu: usize) -> KcpResult<()> { + if mtu < 50 || mtu < KCP_OVERHEAD { + debug!("set_mtu mtu={mtu} invalid"); + return Err(Error::InvalidMtu(mtu)); + } + + self.mtu = mtu; + self.mss = self.mtu - KCP_OVERHEAD; + + let target_size = (mtu + KCP_OVERHEAD) * 3; + if target_size > self.buf.capacity() { + self.buf.reserve(target_size - self.buf.capacity()); + } + + Ok(()) + } + + /// Get MTU + #[must_use] + pub const fn mtu(&self) -> usize { + self.mtu + } + + /// Set check interval + pub fn set_interval(&mut self, interval: u32) { + self.interval = interval.clamp(10, 5000); + } + + /// Set nodelay + /// + /// fastest config: nodelay(true, 20, 2, true) + /// + /// `nodelay`: default is disable (false) + /// `interval`: internal update timer interval in millisec, default is 100ms + /// `resend`: 0:disable fast resend(default), 1:enable fast resend + /// `nc`: `false`: normal congestion control(default), `true`: disable congestion control + pub fn set_nodelay(&mut self, nodelay: bool, interval: i32, resend: i32, nc: bool) { + if nodelay { + self.nodelay = true; + self.rx_minrto = KCP_RTO_NDL; + } else { + self.nodelay = false; + self.rx_minrto = KCP_RTO_MIN; + } + + match interval { + interval if interval < 10 => self.interval = 10, + interval if interval > 5000 => self.interval = 5000, + _ => self.interval = interval as u32, + } + + if resend >= 0 { + self.fastresend = resend as u32; + } + + self.nocwnd = nc; + } + + /// Set `wndsize` + /// set maximum window size: `sndwnd=32`, `rcvwnd=32` by default + pub fn set_wndsize(&mut self, sndwnd: u16, rcvwnd: u16) { + if sndwnd > 0 { + self.snd_wnd = sndwnd; + } + + if rcvwnd > 0 { + self.rcv_wnd = cmp::max(rcvwnd, KCP_WND_RCV) as u16; + } + } + + /// `snd_wnd` Send window + #[must_use] + pub const fn snd_wnd(&self) -> u16 { + self.snd_wnd + } + + /// `rcv_wnd` Receive window + #[must_use] + pub const fn rcv_wnd(&self) -> u16 { + self.rcv_wnd + } + + /// Get `waitsnd`, how many packet is waiting to be sent + pub fn wait_snd(&self) -> usize { + self.snd_buf.len() + self.snd_queue.len() + } + + /// Get `rmt_wnd`, remote window size + #[must_use] + pub const fn rmt_wnd(&self) -> u16 { + self.rmt_wnd + } + + /// Set `rx_minrto` + pub fn set_rx_minrto(&mut self, rto: u32) { + self.rx_minrto = rto; + } + + /// Set `fastresend` + pub fn set_fast_resend(&mut self, fr: u32) { + self.fastresend = fr; + } + + /// KCP header size + #[must_use] + pub const fn header_len() -> usize { + KCP_OVERHEAD + } + + /// Enabled stream or not + #[must_use] + pub const fn is_stream(&self) -> bool { + self.stream + } + + /// Maximum Segment Size + #[must_use] + pub const fn mss(&self) -> usize { + self.mss + } + + /// Set maximum resend times + pub fn set_maximum_resend_times(&mut self, dead_link: u32) { + self.dead_link = dead_link; + } + + /// Check if KCP connection is dead (resend times excceeded) + #[must_use] + pub const fn is_dead_link(&self) -> bool { + self.state != 0 + } +} + +impl Kcp { + fn _flush_ack(&mut self, segment: &mut KcpSegment) -> KcpResult<()> { + // flush acknowledges + // while let Some((sn, ts)) = self.acklist.pop_front() { + for &(sn, ts) in &self.acklist { + if self.buf.len() + KCP_OVERHEAD > self.mtu { + self.output.write_all(&self.buf)?; + self.buf.clear(); + } + segment.sn = sn; + segment.ts = ts; + segment.encode(&mut self.buf); + } + self.acklist.clear(); + + Ok(()) + } + + fn _flush_probe_commands(&mut self, cmd: u8, segment: &mut KcpSegment) -> KcpResult<()> { + segment.cmd = cmd; + if self.buf.len() + KCP_OVERHEAD > self.mtu { + self.output.write_all(&self.buf)?; + self.buf.clear(); + } + segment.encode(&mut self.buf); + Ok(()) + } + + fn flush_probe_commands(&mut self, segment: &mut KcpSegment) -> KcpResult<()> { + // flush window probing commands + if (self.probe & KCP_ASK_SEND) != 0 { + self._flush_probe_commands(KCP_CMD_WASK, segment)?; + } + + // flush window probing commands + if (self.probe & KCP_ASK_TELL) != 0 { + self._flush_probe_commands(KCP_CMD_WINS, segment)?; + } + self.probe = 0; + Ok(()) + } + + /// Flush pending ACKs + pub fn flush_ack(&mut self) -> KcpResult<()> { + if !self.updated { + debug!("flush updated() must be called at least once"); + return Err(Error::NeedUpdate); + } + + let mut segment = KcpSegment { + conv: self.conv, + token: self.token, + cmd: KCP_CMD_ACK, + wnd: self.wnd_unused(), + una: self.rcv_nxt, + ..Default::default() + }; + + self._flush_ack(&mut segment) + } + + /// Flush pending data in buffer. + pub fn flush(&mut self) -> KcpResult<()> { + if !self.updated { + debug!("flush updated() must be called at least once"); + return Err(Error::NeedUpdate); + } + + let mut segment = KcpSegment { + conv: self.conv, + token: self.token, + cmd: KCP_CMD_ACK, + wnd: self.wnd_unused(), + una: self.rcv_nxt, + ..Default::default() + }; + + self._flush_ack(&mut segment)?; + self.probe_wnd_size(); + self.flush_probe_commands(&mut segment)?; + + // calculate window size + let mut cwnd = cmp::min(self.snd_wnd, self.rmt_wnd); + if !self.nocwnd { + cwnd = cmp::min(self.cwnd, cwnd); + } + + // move data from snd_queue to snd_buf + while timediff(self.snd_nxt, self.snd_una + u32::from(cwnd)) < 0 { + match self.snd_queue.pop_front() { + Some(mut new_segment) => { + new_segment.conv = self.conv; + new_segment.token = self.token; + new_segment.cmd = KCP_CMD_PUSH; + new_segment.wnd = segment.wnd; + new_segment.ts = self.current; + new_segment.sn = self.snd_nxt; + self.snd_nxt += 1; + new_segment.una = self.rcv_nxt; + new_segment.resendts = self.current; + new_segment.rto = self.rx_rto; + new_segment.fastack = 0; + new_segment.xmit = 0; + self.snd_buf.push_back(new_segment); + } + None => break, + } + } + + // calculate resent + let resent = if self.fastresend > 0 { + self.fastresend + } else { + u32::max_value() + }; + + let rtomin = if !self.nodelay { self.rx_rto >> 3 } else { 0 }; + + let mut lost = false; + let mut change = 0; + + for snd_segment in &mut self.snd_buf { + let mut need_send = false; + + if snd_segment.xmit == 0 { + need_send = true; + snd_segment.xmit += 1; + snd_segment.rto = self.rx_rto; + snd_segment.resendts = self.current + snd_segment.rto + rtomin; + } else if timediff(self.current, snd_segment.resendts) >= 0 { + need_send = true; + snd_segment.xmit += 1; + self.xmit += 1; + if !self.nodelay { + snd_segment.rto += cmp::max(snd_segment.rto, self.rx_rto); + } else { + let step = snd_segment.rto; // (kcp->nodelay < 2) ? ((IINT32)(segment->rto)) : kcp->rx_rto; + snd_segment.rto += step / 2; + } + snd_segment.resendts = self.current + snd_segment.rto; + lost = true; + } else if snd_segment.fastack >= resent + && (snd_segment.xmit <= self.fastlimit || self.fastlimit == 0) + { + need_send = true; + snd_segment.xmit += 1; + snd_segment.fastack = 0; + snd_segment.resendts = self.current + snd_segment.rto; + change += 1; + } + + if need_send { + snd_segment.ts = self.current; + snd_segment.wnd = segment.wnd; + snd_segment.una = self.rcv_nxt; + + let need = KCP_OVERHEAD + snd_segment.data.len(); + + if self.buf.len() + need > self.mtu { + self.output.write_all(&self.buf)?; + self.buf.clear(); + } + + snd_segment.encode(&mut self.buf); + + if snd_segment.xmit >= self.dead_link { + self.state = -1; // (IUINT32)-1 + } + } + } + + // Flush all data in buffer + if !self.buf.is_empty() { + self.output.write_all(&self.buf)?; + self.buf.clear(); + } + + // update ssthresh + if change > 0 { + let inflight = self.snd_nxt - self.snd_una; + self.ssthresh = inflight as u16 / 2; + if self.ssthresh < KCP_THRESH_MIN { + self.ssthresh = KCP_THRESH_MIN; + } + self.cwnd = self.ssthresh + resent as u16; + self.incr = self.cwnd as usize * self.mss; + } + + if lost { + self.ssthresh = cwnd / 2; + if self.ssthresh < KCP_THRESH_MIN { + self.ssthresh = KCP_THRESH_MIN; + } + self.cwnd = 1; + self.incr = self.mss; + } + + if self.cwnd < 1 { + self.cwnd = 1; + self.incr = self.mss; + } + + Ok(()) + } + + /// Update state every 10ms ~ 100ms. + /// + /// Or you can ask `check` when to call this again. + pub fn update(&mut self, current: u32) -> KcpResult<()> { + self.current = current; + + if !self.updated { + self.updated = true; + self.ts_flush = self.current; + } + + let mut slap = timediff(self.current, self.ts_flush); + + if !(-10000..10000).contains(&slap) { + self.ts_flush = self.current; + slap = 0; + } + + if slap >= 0 { + self.ts_flush += self.interval; + if timediff(self.current, self.ts_flush) >= 0 { + self.ts_flush = self.current + self.interval; + } + self.flush()?; + } + + Ok(()) + } +} + +#[cfg(feature = "tokio")] +impl Kcp { + async fn _async_flush_ack(&mut self, segment: &mut KcpSegment) -> KcpResult<()> { + // flush acknowledges + // while let Some((sn, ts)) = self.acklist.pop_front() { + for &(sn, ts) in &self.acklist { + if self.buf.len() + KCP_OVERHEAD > self.mtu { + self.output.write_all(&self.buf).await?; + self.buf.clear(); + } + segment.sn = sn; + segment.ts = ts; + segment.encode(&mut self.buf); + } + self.acklist.clear(); + + Ok(()) + } + + async fn _async_flush_probe_commands( + &mut self, + cmd: u8, + segment: &mut KcpSegment, + ) -> KcpResult<()> { + segment.cmd = cmd; + if self.buf.len() + KCP_OVERHEAD > self.mtu { + self.output.write_all(&self.buf).await?; + self.buf.clear(); + } + segment.encode(&mut self.buf); + Ok(()) + } + + async fn async_flush_probe_commands(&mut self, segment: &mut KcpSegment) -> KcpResult<()> { + // flush window probing commands + if (self.probe & KCP_ASK_SEND) != 0 { + self._async_flush_probe_commands(KCP_CMD_WASK, segment) + .await?; + } + + // flush window probing commands + if (self.probe & KCP_ASK_TELL) != 0 { + self._async_flush_probe_commands(KCP_CMD_WINS, segment) + .await?; + } + self.probe = 0; + Ok(()) + } + + /// Flush pending ACKs + pub async fn async_flush_ack(&mut self) -> KcpResult<()> { + if !self.updated { + debug!("flush updated() must be called at least once"); + return Err(Error::NeedUpdate); + } + + let mut segment = KcpSegment { + conv: self.conv, + token: self.token, + cmd: KCP_CMD_ACK, + wnd: self.wnd_unused(), + una: self.rcv_nxt, + ..Default::default() + }; + + self._async_flush_ack(&mut segment).await + } + + /// Flush pending data in buffer. + pub async fn async_flush(&mut self) -> KcpResult<()> { + if !self.updated { + debug!("flush updated() must be called at least once"); + return Err(Error::NeedUpdate); + } + + let mut segment = KcpSegment { + conv: self.conv, + token: self.token, + cmd: KCP_CMD_ACK, + wnd: self.wnd_unused(), + una: self.rcv_nxt, + ..Default::default() + }; + + self._async_flush_ack(&mut segment).await?; + self.probe_wnd_size(); + self.async_flush_probe_commands(&mut segment).await?; + + // calculate window size + let mut cwnd = cmp::min(self.snd_wnd, self.rmt_wnd); + if !self.nocwnd { + cwnd = cmp::min(self.cwnd, cwnd); + } + + // move data from snd_queue to snd_buf + while timediff(self.snd_nxt, self.snd_una + u32::from(cwnd)) < 0 { + match self.snd_queue.pop_front() { + Some(mut new_segment) => { + new_segment.conv = self.conv; + new_segment.token = self.token; + new_segment.cmd = KCP_CMD_PUSH; + new_segment.wnd = segment.wnd; + new_segment.ts = self.current; + new_segment.sn = self.snd_nxt; + self.snd_nxt += 1; + new_segment.una = self.rcv_nxt; + new_segment.resendts = self.current; + new_segment.rto = self.rx_rto; + new_segment.fastack = 0; + new_segment.xmit = 0; + self.snd_buf.push_back(new_segment); + } + None => break, + } + } + + // calculate resent + let resent = if self.fastresend > 0 { + self.fastresend + } else { + u32::max_value() + }; + + let rtomin = if !self.nodelay { self.rx_rto >> 3 } else { 0 }; + + let mut lost = false; + let mut change = 0; + + for snd_segment in &mut self.snd_buf { + let mut need_send = false; + + if snd_segment.xmit == 0 { + need_send = true; + snd_segment.xmit += 1; + snd_segment.rto = self.rx_rto; + snd_segment.resendts = self.current + snd_segment.rto + rtomin; + } else if timediff(self.current, snd_segment.resendts) >= 0 { + need_send = true; + snd_segment.xmit += 1; + self.xmit += 1; + if !self.nodelay { + snd_segment.rto += cmp::max(snd_segment.rto, self.rx_rto); + } else { + let step = snd_segment.rto; // (kcp->nodelay < 2) ? ((IINT32)(segment->rto)) : kcp->rx_rto; + snd_segment.rto += step / 2; + } + snd_segment.resendts = self.current + snd_segment.rto; + lost = true; + } else if snd_segment.fastack >= resent + && (snd_segment.xmit <= self.fastlimit || self.fastlimit == 0) + { + need_send = true; + snd_segment.xmit += 1; + snd_segment.fastack = 0; + snd_segment.resendts = self.current + snd_segment.rto; + change += 1; + } + + if need_send { + snd_segment.ts = self.current; + snd_segment.wnd = segment.wnd; + snd_segment.una = self.rcv_nxt; + + let need = KCP_OVERHEAD + snd_segment.data.len(); + + if self.buf.len() + need > self.mtu { + self.output.write_all(&self.buf).await?; + self.buf.clear(); + } + + snd_segment.encode(&mut self.buf); + + if snd_segment.xmit >= self.dead_link { + self.state = -1; // (IUINT32)-1 + } + } + } + + // Flush all data in buffer + if !self.buf.is_empty() { + self.output.write_all(&self.buf).await?; + self.buf.clear(); + } + + // update ssthresh + if change > 0 { + let inflight = self.snd_nxt - self.snd_una; + self.ssthresh = inflight as u16 / 2; + if self.ssthresh < KCP_THRESH_MIN { + self.ssthresh = KCP_THRESH_MIN; + } + self.cwnd = self.ssthresh + resent as u16; + self.incr = self.cwnd as usize * self.mss; + } + + if lost { + self.ssthresh = cwnd / 2; + if self.ssthresh < KCP_THRESH_MIN { + self.ssthresh = KCP_THRESH_MIN; + } + self.cwnd = 1; + self.incr = self.mss; + } + + if self.cwnd < 1 { + self.cwnd = 1; + self.incr = self.mss; + } + + Ok(()) + } + + /// Update state every 10ms ~ 100ms. + /// + /// Or you can ask `check` when to call this again. + pub async fn async_update(&mut self, current: u32) -> KcpResult<()> { + self.current = current; + + if !self.updated { + self.updated = true; + self.ts_flush = self.current; + } + + let mut slap = timediff(self.current, self.ts_flush); + + if !(-10000..10000).contains(&slap) { + self.ts_flush = self.current; + slap = 0; + } + + if slap >= 0 { + self.ts_flush += self.interval; + if timediff(self.current, self.ts_flush) >= 0 { + self.ts_flush = self.current + self.interval; + } + self.async_flush().await?; + } + + Ok(()) + } +} diff --git a/kcp/src/lib.rs b/kcp/src/lib.rs new file mode 100644 index 0000000..0f9e066 --- /dev/null +++ b/kcp/src/lib.rs @@ -0,0 +1,17 @@ +extern crate bytes; +#[macro_use] +extern crate log; + +mod error; +mod kcp; + +/// The `KCP` prelude +pub mod prelude { + pub use super::{get_conv, Kcp, KCP_OVERHEAD}; +} + +pub use error::Error; +pub use kcp::{get_conv, get_sn, set_conv, Kcp, KCP_OVERHEAD}; + +/// KCP result +pub type KcpResult = Result; diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7ff6e8de45c5d1d2befb8a66f89df81f1c10fe GIT binary patch literal 1750574 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ÐOTH_NW$hO9TzP#1FvQ-ON%9`(Pg5=^xgTZXbt- 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 z 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

-itOINseZW7uUI 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%0DL{68?6n6 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νjH=J9Y9;Sr2&m*s=-8{4J6d*9=@ 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¨z)`B$tnFZ~p|f)k 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

dE4)?#L`qDI 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%0A`YA4b8C&fPv-`35c+mM#Q?c-+ueyZ+`jy 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

)@Zt-+ZY>Hu@#ILNb=&UB?h2v+ zt|fFFhtqJLyOD?kT>^#du$olCf!K`=i8Z%IQFunVipa^_ylp$nc`~kzT!az5GfsiV zR8@7|W(_g!UcLtQ)#1_FAlr31JR1(`t=-Z6hdh~#lCB6ILhz6@TU~=Ad1~$Of$!|y zcSk6){*U>5~9l_U)jk=(VGQ;a0NO1jq)7sE=q$E+-ttv_kU~;f?Mj0J$%<5nJMfvW1bSpLUxLw^}@UpW>C5?F)$RYu`dvG87 z`*iu*7$WzN{n`~7)moGRd1X)UtfrML7D{1zdzczO8?mgRZ{I!o^yuub?mSq4y8Ekj zi^un-Ke+qp_E!D))?i5TAMPHWpRWG=M;|Pfxndo;B}+#Sm!E#p*z-nA5I|f#!^zaa zWvOhc?jRO0vk2H+jaW!T*vYwQo|#}!2$KNZx(Cff=f2FA%YJZ5`{K7oaerqvs^SI+ z$PAH-(YE@d8d+7p{`EiGKe+nazx7oBzwr6r_`kmKKTD*#uB|_!`ZCSj(}q$2zzo?k zlep={_{yA^s?BhUBhB`=ua-~G&JP1SgrQ2K5L$Wthp!z}dlxfGHfSzfPm+Zqvol$8ioRhf{(aQ)!y_3ybb z#|Q}!=D|RMq!9n&&G(=9#{V&$?L76wKmY07e@V4eJr~-Y_@ni*NvShsP!+;>T>s?g zNQ^mzDThg@CNdaq-nak%$1AVA^2Qr)T)%$(PyXajZr!@|+H0?U?Q38A<~P6jm9Ko| z%U}NT-}P1I1)5wEhc-&=LW_obKPaFL#oU=WGzj7d1Y=%~2~paXUDctnS91_FISG-P z#vNNT*&sv+nYn7t#A*&kpx&=y29{n?phiMHCV9iVx-jn)aS0XXj+>1nsM|96os)Dt zPuYAlBr-&Jpzs^dZcQgKn0!2-OZq7shD#V+0-j= zav@m1ZH-lK5nc?AwoHg-L>G)bLwI>U^okxEDbX^Gmu&7d#$LnESm@6Sc1PC z(VKJtC^Fo6Bn{0!C&pfq3lP6I($r<&q+XP1qF} zg}&b_KTI7#IAvoNHLI#RYX%U4FcUL0ch#USv#J=QnF3BuW^ia=c1PAs5aHs_5;Hfq zDn>UI5rY>OXP2_~xqL)YpjYH2%C~HTsSKm3NTAx9Z{MRY-Lk5( zl&Pdrnkj+RG$m`ZIa9^r<(qz{Uk<9l zl)(KA1b~`LaRIw$LIl{$j?p`V0<&74+Z|kL92muId+|z>$0<>7Kg2Gk1$>6 z-o%Cjl$mwgnH!|!P4rpr2-HW5hQOsXj1|{0h)~X!)rEV@^YNnj_`$MOe{6UB*xsL%9fGn6I}?nqQQRLr-Y9met3A6 zcAlB+&Lo3CJU?4ry}b3G{g+>zue#YwGt85VQ3{?+M@%fB9414dd8eU{w@Hqiv!$VU zGaFYgK7Vcaxu^CIcK-6~-@JPL;G-Ykd*l1>?C$LaSGCa`wXV;Xr}y~d2ZLXHCf<23 ztk)^G6B$k_mMA1pPzb)a9omH3M@?PJ)zQ{?yuNpm?=F_3I*MR*qE6NJULFq2i^mk@ z3UCmUIY`Vb0KqAciH9{jC(q_0#RONbhhj@dtJ*r0MaZ{-WUQt}x+k&<+?DXzq-7V# zZp?)mCXqRc3?;PL223N8F~`6R@)a~&ssR9vKytq)&gvuLvda+>cMoI`Hb)2)q$Yx@ zNg?p{_a<-bZ)~cMSP~^@gNQr>(TF#$oQrd~+%skRz!%*MZ3<7?G%MaKT{mhZqK&Vd zH-wJ3hE-sarq%C$^6_i8Kbnq5O77XRXEK^rgZX(^Uy7Af zt98qSXCI5>N?;IBFp6Lybe7M}lN%A4(_R=p5y#9NL80FgkuxXr);w!bXBW6a&BHA* zC1mT!5!`bOJo4&>#1Lka7&}Y({G@}9Qf%E@w>4=;u3VCNsqVu}im9CX4KGl9qQy_p zV-m4RLFtRK!rB9|6GNzIkNgVB%d)>m)&1k<>|`~n>z_L?%AQ2So|#b{<*hf*UVXR@ zFU7^o{$@VEe?Pa4yPFvXu})*!UFYS}jQ#cZ7JqZ6?LhzRt1s5ynmB52R7{u!M ztX(eK>7*u-@o-`Tm|C;$=JWMdlON)>&|%VOD}$Qc}^ee>kxhJnR+;hRpck141*9D z(shknFIiVJ7|vOdQYMyt)Cmb2BK|mNSQxICUT~@ci%__wxVNk(R zaCX6(D390{R*%N+z_t-_T@POU(ZlMQ+09wF^~4hohGDj|wY_r^DbCL`7d~kW3hT1Q zNRvqCr|;bS`4^wM^_cgrk+MBvi6SB~#4?CNC}|=7D45y|1!r3n0IHjPX8E5k(oZ>w zsrVcVBWu-BG7cd!i-DL!b_!Mkb2MjFhg89mW;b;MkaDuzx+`GJ9IDNL5gx!)YD~?B z66UAI;#@@i@G^+^i=bXYPh{{O$3WP4f=l)hV945AXjZG$s%eOLScSMfK0a@VT+IeU znvLswM+?q%w-l}y!@3zh@yYW1ZaW-$R9lg`|Kx!_vun=|>_@lPMDUE9)3S@%&D=!% zAmsP%E$371G=Qa=j=Do_vep$}zBaviKc8g0bBwJmjZv1T%}1vo#lU>JRekHjJAu%3 zHmu?(N3Q7ktFwpwfGl zNI{dWaC(*~A|(yU2QhB#OV`@Y-XPu1fdgs}9#iE~F?H5u6QYiN%%s`X%p4R1Pz7bB zk?rr~7iN>4=~f*!K}oJeBIOC)cTM(a0`$&1KR!OW*L3G+=U<#{?OeNd^ZNCt505?> z)PoqJ=_6-$xmJBc)^HSJ!hfXJaaGtmV`8^JG>e9Mx zr=#$T&)-PuufKUG)B*1F!?&_I0)xnvUG>WD;L?8h{!^dXH~RKZ-~RO%pSLQC?g<}@ zx2E2~7pv8>TXjZ&N8(B$k)z69HQlL3lQ@VH0`X~^{;o08r=Nb>G|kH|zx>>D&jEPh zg%@tzxN&%R_~C~i;_v<-Ct-Gi>BXDcM{Znnx;=rMjEUSWoF7~&%4sl|al%xQ^k8WN zp)As!4L6Z0>DHO6U_@Gy2>qC&XH~J4snPkju_KLX*)McLr9#ovwq(|a`$XyHG+sMtF zgFtg;B6Wjv5HWZp9G*8P%Qi{@PoemfnaLC~Nqn_lY?fV79hm&Zk?-ezUu z0aN+;fra{Gt(QJzg~U>?3N{B_71*tOEfJG|MVLuEyOFzlO4?*^TB~9VfeAbw$fyoQ zpTtC}YK697)FX|_nLxd>kC;$6Ru|!ny|0iNfEkKrL#_8J7A;9{1HI5znGsXg9^A;Z zaTGC`YOD(L)twCmhFPi{LI^=swd4ZQX7=n*v!ZfmqPA<9IYcp4ata}E2$nmR%1O&g z2|aoyhbT-Gf|%t3)k^AwEL?K9JXC?*la+C$JCL#ola>)95c(J1+a-jAnR{YI-&EV? zd=jX8c9(ufTOu}5WF{r)jp6R9XdCTPnPYCw6YAg6a`$vNl zH@5%hYWuv4o4kWQVB!L%bz!}PQ0gsmWjaZDBN-<^S)M!?Ufv5M!6zr(Vr4gH1BR3O zsIu9ly1YL+Z9BM1@JvY+WN}yxM`1eD&>`Pn-&5patOq=camw(djNZxuVKBtViq^ei z&Xp4=sWCZ&+DuVYEq9$B&2dQhXn{#hw`K@Jxicqbu(LaZglgf;)OESsv`owqRbVEl znwppK05fT}Wux^VT$zk7PY1%K?FK6V8P6wKlKZ7xHr!f z@;Z|j0#|VWgGwY{X}yWO*MRt=c@2YM_KF#9$mKvq=uM{mXgu&{L**KB(F{VU z@zs%@M^6?o)?kvU zd+o=6(@d`&RLteCnYxqt>gvsd!E{SvWTI4g90BJFZ)GJenX1OQt*Yg{w+@H1bosG} z*)HWL4N_Hfus=JWuYdD5f8KNR#w)LW@z;OumA`uBV1NA4!v{^fw#ne(did=1!8gAB zy+8W=)4ThRtvFbg?Ap**Ky!y1oY8QeWtAFbOJnt41=$jdqmYF>x#GyC13 zPPrJ6m{EYUUxaMl8C#QeCLG*@Jj+Vxn=7X{-*rv`SqK|CkaJ z+*RN+t}5vhW0KI2Byzz?8xsP=jVnil#8|h`AxX^~n9ZrC7{b)u*wmq$$P3?S6P=mJ z3v9$qd!Jzt(VoFnScb@^y`!YuO8^)KH!F*61LrX0~skH)+k4|X4q zP+~fZ$<_dM&898V8O~RE@Z#u_F^iPEg_dUE^94C85-Hd)iUU9TI<`qu3e-pwcT#jkwkF$t1V zf)PW+aWp3%zIC>Amb^%M|Nim#@oVOmyWF%X zXIeIC(R4w4*;r1UKwK?%`RZe{!Jx{?Tr&cdr&i}_L}kIiW1X%h?@!yw>0&v(5{Pxt zTE#N&lIFbfJS53X3}N?<+|-a!i@Vc86DdK&giNK$ov@SZGW+h3oXyv`aF!PxaVWG>ZfVhYR&P2Z3Q)fnZ1nK{hi}|XRE@Vrm$t52tH^eCaylFgf=j3t z;}Os2Et@UZ6r;@_cC+U$J^i^aU%vjBdC_pPgF@gCW6?}`?us9zz$NfVV@zQ3;#@b^ zvh3{rHJpp49?tB6XsZorqD?cb{1h`;uva= zwOi751q$v|xSj$c=e_^{IP^@}Ql>M=Knzxxo9kxI5PRr`dFj12@KAT}I;f?TJ2(hz zUDq@XOF#7<4)}nF^K~lxmRNBWB)Qfu>(w}!>Gt6>S0?GSIXsFs=<=#-*?;z7{)HQI zcN<3ywW(w0W<|7Dle)0#`6^p{?&W<)>c~%ja(Gs!?aSNDv^5+YT%J7m$;tjRG>&>a zrysw0c;^$MX!kolJ6w-dv%C)PzSkJSU{F2(oGfzQ-y6L9*6QF!XpfAKXk7Ev&(EsL+f^&)bfBX+ z!uh~VC<~c-RH{ShLN|;|HJUkVHik#izL&$+HU8Y}U^1*Dxo(bEGvWa8UisjrYB^uX zom6#uXI91V>Z{-S@<03o0KfVxU-|QY^FOZFtwf>r(QryO4E4>&qZpjcIHX5XUwk?o zOpcE3m(QMl^2Kj|_uplst>M{hjCk0oB<3`u9)v58vf*eRS)k_JhB! zN81*{vRPi<8K$fcAKc&C-j5+>&t210^)SlBRIgm$`OV*W@%8Wh=##UP-JRXtgLrP1EF@Z{NOs`}XY^j64t4HiJQDHVDNK43&60z`(A?=J0Z)ea&NaSfX{ zes=F{cY6&n1Q#H{yM(UOf~QtTRuGvwn-LR{u=TBr z6&QOzGBbCloV+tab~S4ap(Mr-E3C_jiO4wwaWiKQ#O=zvbr+(6Sm6d@Bj<8DP)TUo zFmXteMW##;D;`y2;sDEpWTlCvfp8d*S!V99R5Oo(LFmv~DgGU1$|40r06#F%lx1nOUs32=1ki&+3sYMg13gywjr_ zprD#ObqpYEOhjH-?*$`;?8s&;uxv1|YaWD6;fyl=r;8f8m%I0>7$+tnBBCICQ4ANQ zVrfBpgQuE%(vd=YF3E~QKi^7^UlrMI`wXOzT*SauV49>7(iG@MQ;h6=hM#3;6xG+QtQ>|aI z!a19{xw|?;RfRba1)@Y{FK!#qNpImJ;?f)z{BEI2tE#1v=EqdPEr6MG53MC;akn;E zm&~2rwag&2=zpCYFtaY(s?+mzUU!ZF;Ao!-paCD;W%Y z=xXfsP@=Oxvg@#*Z3Q1&9O}xByY!cEPrnW&z5|>MBvgnw+&_$HBl#`An*a`_Y$`$o7|{;x))E(f z^yXV{>egqox`DOBXgv5&zWT+jgZjR%JhPk;K;2VeQhujFj+zWMI2{nGP;LHz!^r=BuE=UsaCnP-pw z=7aa%eCz3#p8oixty-!gGc(nivjWl+)n_Po;BqcVF=h*a4$+a6#PREW!e;*y_lEWwcI4G4ygOmk|K4c zXL)^3*G~L}`qp4;XyhsBC&$Zbz?Wykz+8rC<|aW>Hgi8+rGIes$vgK>Z_f5UJ)a*n z=kdy!j+fE#@h6M>AK1=8{lfJDMb{=X5p!S;>TY6Lnb{a1@y31aX{7a484iduU|9{` zBy&e7mV2@ims)YbJi9Q(VI@LvWYf;=gZBI^w^!S^Eu+>UfooVYB;p`2a0b*Zd#@!W z>LVWAy-;N~!H5R$H;tvNE-PK;a>V_Ae7#xBE?0J*_pY_}uBvbP=Q9sHBoBw?(CTin zCAB7N3SvoZO%a0FhTy~wj0Ayz-1s7h6Br1D+!zR87)F2?h~SG@2s~(r+^`)vmZO%` zP4&#~X0u5i4u^+l`p0jos=e1*x!Cpn>0Z{(pT{yY_z9`#vvabpRE@Q;E_M zEgtq?oX$_C<^dR!ZJC>BGE>~Sm_B}UyBXEL^>6NtZ^zL#w`;E^@~PVwZ-?ubXZw{% z%DrXXos4W}+Vz^%Zr-@2W{btDU#-@Wnu?jY&seQjN2g0C?)#Oi*QE>*v~Ec#NMwUu zJ=p%P2|+`_kTFt9eW&wP0@teQ&Xc+(_-uPZY<!q)gdY=~8xP9IBw#Nc4-utf2hp}_xY3&Zr7V35U)@$E5JX~MC zaci=*W4)<)rl{*Pq9nqBU0v6GibNmIxu&%D^o^%~^cSW(Q}tYYOhwFX>WY}ffs_h; z$TV-Bk`3e6VZM=sid}l}_?obTIVW?F8iZ*&j%}Y(rmVq@n5+^3peYRl9Q8K!AP`d} zK|%mLG7l}cC`U+ViKwS)<(R_~Dh$hpt2#h+2xYW60JDY(kuyPIunbivA*meRwjGEi zl1Kq~5I})+xnB1vg}|=9TCRwQedycGK;48G>Ur&Uy_Z@vVz|>C*I_Z?*^H@p#|%FW2=# z=C9``F4VK_aPkK2j9hm^H4TeyJ&M&Rgz=acV|VsV?~!wj9021`i)w-!Gerbg>fqac z^K$*d-gq1suBrH!9hS0H)wpCM%&b^1%sz_sEm!l=sA=kW@7~+@@87+A`TEw@&hyW| z@|`!o9HI!u<&UM*RaI36{2ysk!1qW~g+u+(R3oJ{o6hE^$Bz#m9PD4ZeDUfJe(J~n zRiEwJ zrJcX|tDpJnfA^n+QyI;+qzZwtoS)P&{_;=1@PGf=oxk?0|MB1b@BYre`{%#)#EZ{M zsQ%~w<)8fFe|WvL_qbC^3y~l)5{hcQKX}~#`_JEd<@?@!@ZgE@q>2|Gb$2^j2g58h zTU$HVs_m_?MI0gr#^ww??6=PQh5kaBNkl~C&RT>jdx{n{(9 zyz>7ePSN1IC5X_lU8QqbxpWf^74ZY`4xz9CjES^#e*#83Vml#6)_p<4I&u&pDeI8T z8Bof_Be=l;DJF9PtkAd#@E*LD)NMmdERt8O znIdyF9`)IsY^^@D=58p&n_JU|EFKXYiTsR&WK8lAGP5+(p;%6sfI?O-d*6YrWeH;7 zQj*ncCIkm4qjzRQHZcf+BVcG?R#2|+8cray0A^DUaE$;Xl{z^mEgc2!fRVEk1nh1g zWJ8LoW*WV?N{i`0NrFS&1ED7}9Ui$Jz9u3*GhqY#n_b0Z3-NR+Y!N-$=)lW67`-I)Oc!lF&{E{hi?@t~wI zQ=j#CzMiksfCRG5XmbOT#>O#IHst`|rsgq75H7Z$60HnF-!ci65(6i9D{2jM!3@=c zb)r&Dg#oIFb5gYxW2qx&Q?oisN%PqzHVCu9awTM549OHiDGcG_YxroR{5?hpE^!JP zB)@Z4U}0iymONJ@)8eaA)lw~D1c*R{RgIa1DM~q9mY+yT#B6A;RP{|I3j5H-NMXX0U@*h=iK%_^O4iI~riPLbtea4`dVJi~HKvo0 zvR6#5-e->j0Bz?VJm`<3XGdN0sxu}x@G^-ir|cqybvIyyh}da^_P0S1C~_D9Rfrd6 z{Npd|UEPgabyM!cr26=@KUuV;2fWKxu~ZG-SW)*u`oU*xE5>ElD!|;Zpq3FhnyEXR zQS@enQLl5M*zwtY>!&(vXm1qRAOy?i(t8glk(9K=+07IvHFFSPQiXtw9_y5|ItzzD z@1L~y=BtBg{NY=>ThnpbL3BymE*DW4Br!TOxf9flJR1jrFjCU@?k(Z8zf%*@*0^F} zS7-r-nX&|SBn(a;bzipKe3g>x<$gJ?NXY^4`#8|Gg+Xllo;LZ5_y;tz1Zl(%# zufpK7TlOV-UZ$Tz%*Ra&9j&~7qIlC#&FV0OWNwMvn7E?Z*y}NxiH}AcokInRJfw%{ zJXg5M0+w~n{Mf2uWK6o76X_`Hph5p-W=mGJgq~5kjtB$K;%`;?uOwV>IM|0%HgEs za4`2d^}tsjefSz4@DODL8G8k8=+xkpbxaV9cWJ`Kl7KSBVj5~hHZ(ARgo;~}s9Z|h zEV2qN)C$-jo+~i){ZSF$T|njDLaw^6p`xr!Tat!#CeOuDJV; z{?c=w`Kcd1I$mDbpOyAlcN|h)+WgiyVpTzUCnChz#cPLeJ#44x%w9UEZ@A{%r=;tx zt=XkZyN9QJh~eix`y+pPaqo+N@>K&e-Kd?9V>;`4?Y)a`)=Z6;4j| zyNSs=HXj!h>(B8FkEw#s>x(y+fIka`ZGcC=8g zs3$*5eGh37V}A0u~4AfHGWh_cC7+z&@IB4-Hux zY80K{(!fWJo8`_Z>7v2g11ikT0gt*-Q8$mk#`06(q|nV=(tFE^b)|hmnrmKaS}ARf zwx6mlUK;NL!vrwKx6M7hl}jY2IGl z|J^SvdQ0Qc7;4vMr5<-5V~c#*$-|KWIgHr>)}0*8PnkiAe% zxMDArz8)Ntz~;^ZVG?1GtJ2Us4T5_JOpIRb{nUNXpR7DLguB4IddBdmT)BV-CFSTt2g#z#k|sq322 z{PKm7QM`Nqw5jFhr7aM*mgkGPO-6*OPs8&Lb|MP(Xnz(CYWZ-jQu%6`R_mO4+TNOC zm^zx<(7epVC#Pqpi__C(di(WvzVY_KFa7AjL%Dm&ub68xP)!8-0BN)#`mW{1n z+FA7V$42S>d9G0JHjxQ2Qot(rE(oicghky`BufP1tGe7W&$<_#jI@V=6BFrKXVlO?grIiylIE^TGN%+7UgC8*XU_?Mgo?ossbtK>=DNx6(q^=B{`3zCLJ$+V zdCs{UWX+VIEOB!m``|x-x|f-j^Csiv5I2PrxH32GEaeXH7(xg{X5@gI_S*HS7#Y+M zs$uY)Qm(7Gvpsrz;@vt;r*%r|a3N9il!AWv%=Fq@&pqGeJKQaE*Q%O-_db5$S$^qO z{Nihity&j-z35QYVz6dbuTnlcT)yy9wO*v-!#31gBDU_@?|dh@+T|yMh+Coy7vpoQ z$(?Ssz07V*f#^dP^{=ko`_TPQ;E1?;c<^03@cPG|4`mE$kfjo?Gk5 zerliTjt}*%JKtO_{>FdvlYj5mf8r}&{Z@6Qj@%Xu$)BpV+|MP$NkAC3V-qt_b$Rh;zL?wCvb#gZf z?B-IWMpa@d13d$v1zm2S!JI+>Q}HU9^>8vC zuJAY}4VDESwv29u@4>AUdi`*(3L}&{x#1CV2PJpU&dddjAT(5IhbRQ7 zVKO3DuPRaVlCBIwZZL9j=upK1RTvP2o5+EO(Ah9>B{8@#0ThH{U}iEmJI5oJWC3yE z$rjnG%$aZwkRS410|TW<(dHnclr?27{>7}GR2@9{g5X3(%*-A`<(AbTVnm`&A#4OW zvl5bZSc%no$ychE#03!(k*YF_xk(5Pq^vQDQ%HSBL?Ogpa}-unVHP1(BVwqLxZ2RK zTvbukTo~{W#LcUUvRX|+t8T>M{hfSh58(*5~Q~TX>``dgrY1-Q=#BG?9x!2ylysKY7+EeF^ zRyN50=Xeuh-m39XjUF%H+A%F&g$#6C9@bQ=kE1;UC#XW zVfWextDkc0P=zVYp)idn09&%3NkyzGfMb5UWJp-*<%W7G(n@y_9 zLTLL8P@9pGn!6j!EIDOEMHHIYEBb6%*;N+lEM3s3IMB*<#j1BfxOl=@~W zqYs6ek-Ld-PIj{BwkOpyH|i_g}7a)%lqr9sxM?e%EhpDy#V zw~=^N#S(bqLFXA>X@y$vPU61lU#E>xmy5b>W@ZkvN=S%IEhSH7p*x?WI^GLH)4uJyA;)_H6wUrHh6OH2}VVeBEWOW1qzj# zQMiK!_tao9!SEItb_c`nQkuB=oZnF3%Y}YTgdk-RJ5OK_FV77=(%s2m<>eHK3%s)& zXvm>jpdg#?s63tO%5XKDmkAi@x%SKhR}WNFGs-sjXv(`j5BJ7^=CuMEAqpgLC2}zm z61WE93egS1E>0CmaJ~=^*6Y}7jcNb@ zAOJ~3K~%iBTiR_2bUg1KrF?apt1+b`2{a**aA|Lv>~Q_ytq&e--Ms3AScUn?y6RG0 zg{0|=U;gfoeddKvf9iJE<=_A9f7_-UD|U{ZwrB6Xee3&w?Df~aa_`-@E?<4(@yUgD zaoDHB#$`Nd0z};-LKCVzqaOLOturt-KxmI@RF$W-I3h9FYqE8qT!j&&W)|@Y=yBVh znI02Y*~c-?g|`?_ggV!Dm)DPbWwi^;7ZDCZcnltqwU&Fb9yZVVfcz3GE2;U~Z9n>` z3J+b|K1rZT#2Fpz(38RD+QVt&am)gE=T;L35{5T1mK~S5WzUv1R$~G|Scr@FvBbvI zuxXMQu#BZht89`>wrt?K6>j0c0H8va*d%$pRG8qrey7~%gR9Xu00F2g!Lyq}&$MN- zxpfPe8WOyRyu5w+YIDVbAe_4XgGcK-_YavghQ*tw>yhzEN==$Qj&Gd*ByF%Y&*J zQK&eCAX4^yZaJ$vu?U7B!mx~JwxLb6w6thmt@Fb3W7h}12GKPhHx#mY@kTj$5+s6> z^{&H8xoH&L4Hrfpm1u(axNTQHS5id=nTP?daCgM;(LlYxBQNGkEcoMeXWHRG4%}9l-qUN_f*9Yf)oX$iovr+30=y^ zizSO!RXCfkx-NxL9RoRR)wNA*$Pr>?2(FtVIq|{=bI8ti+={w*L=PVJ4<4O7^VAb{ z18hc&rVxe*B{!I*gonp-%JTBF({J3r_xXE^t5@%~lE>))JJMOE&A?T31(t1yEJhlTo*7J6KKVIYKMetvv+eRh&Z z({-0tU3ze~isZx^$MwrU{SzO5`4e4O1P(!hxstOmHG$oexI+rQgaK7GW(Nigs)NnW zofgH(Z&rxoyqPSaYAOekA*PubbF5R=(RVsikPqU z-N*RUt@!4b>}=7~G%i}ZJfhP+wOw8uulkdAzD(oToSvS{k5-qjjHeTM<&#^V|C7g` z{^SG#H>@9xR&76XK0RE=t!h$*)Gcm)>T<7|vd!CNknrNintKl^FIrEt7p`rc9CuG% ztZUY+JNJJspY z`v3Sp|IxG0zWDU57q@1+sqeq?<`=&H%~vhuYuB!wElyW=Rt|);Gs34%((MWr{={rJn1N1&~@5B)Fqjse%cI{n=iZ6ylTpX8G)+o9V)v>*M+S@Ycb> zr$6(`NzRv^dG5dZ?_YZ7!Gr5Rclvw(^sRsSd#ee2dsNT%F8%UnfAAY`Kj6My9Clm# zm#S*ir~K+`Z~y1N`2Amd?XA&riX^YUdIoc)DXJ%k8AD9)Gyt+Amjpg42>{7=_) z>-Bmx8vU)m^|t`ryLa!`fBn~Ad+oK~_>JHA2mjz76u8Zw^YNjV7> zNR-V>J}^pjf+P;}rbRZ&IAi!m&cLRd&xy(qcxd%d8h{!EGS^}E@8@+MLyTd#5T!j3 z1DU3?jq%CgOj-a}gDXXgmD2~9v;YbeVtCoJWFQa<164n&LmOlvX7a(+P$sQjHpRS= z5H^kBhjEhZGInkIY`rH^F2(Y92o;M zN^uT4v4KG3Ova$%RT-LBOZWT+0-&3Lq7~jqsZ3BKCRjP0_~3~*FNLlOE;nIuuVizf zA`yCNo-S182=FHQV%eAgb0h9H=wNp&i6MZA7|1=Nv1lULncr_kzh z?uZA*7Z005XrVil{MgX^Vw++>3@n3k9C6;*bW8Mxfb$eEL5q(I>OQWSh;-nNsY6 zaI&dt+v~d3d6!qcW-TiYmD^6(g$;!7yV!sFMn4(lE^$iQCu`RV;(EmH3Z)o#*~BPuB(DL_*KS}=+@7HT_P zuRG1j%mYPu)dq^v&Zhy~Ce=djAKW*)jE`N=<`oGG#sC`P7o^cvoiL;8;#><|(%Cx|n~#9LC0NGcYlp`)N2zYON^j!Ydy z+_MKD0-3Eh6C#H#V7-}|_i6ydp`~BVyk@T)*|1h0gP#baY<(gZ;T>+2y?2G$N?qLp zY#ZFUXLv>EKx^c3ca>>`!x+p&#UfJVL~}Q#jpK3<0%(|IIS0WOqi?`J`9sK zK8K8MEb~LQ+8o1vL0#OF89PdKL81RJQ64hF26rB`hjPRj&JT7zlrPE1Qa)l{Li!G4 zh&eX3onn6avS=~&PThF8vflTI{M~FegEuIxKv6-u6Gw;a3K9L%1 zOYd{Qh-saZxBc;BKrj#kLl+jz+ z=20mH1#bYkgPEt;CpHIGM?v8ZdpIU8TQn)vTbsGihAlccfi~Mo)6Q&e{ZVe0XcKZY z=`8~Y9Cqul7kMOcdvc|rJ+&SL)%NlH?65uDy<}_dm{{SD7FCnBTxM5jKeAMi69aMF z;!$u+v3-x;{PHRH&uu8*}Ov*Xit*_}OqKsR=<8^^T>9ORli z?bV4v%vLz@%mqwta3|KRDQnq2t7X7pYUUN-8n8F)k~o zuo819I-!yE3O5tDh>?A(weP!q`|0tm(X=KYrF1r5JzT9H9(K>%ya-Uv?&Qp2-IM2b zdsd~E4LmCX&V?pau3(7K7+yH$O-f)bN3 zvu=j#X3B&hOajaHczt@*ohfxyGqI+<{Y=hy*Ozo$uU7uvKCUd&X@V{M^uYH$hlXR_ zhk3QwXPF~R*w+-qxb-fGGaQn83uS~#tP|o9SrE>yOQmGS!6PA4#pD97gVpuyNgt=? zFk~#M&^2uA>*u)cBqv`_DLR%%>*d;cY+DmtxVYnEbjqgvwcU%YTmF65mO%w-bC3`9SEd%Tz z11tpW#H6b1%nTj$l_C9GT>Uv`W)3X7vpT6&an+l#Au~-Y=|q-i;r;iU-6wHvE8idI zqf_zd@4VUZY4yyL)vI4mx$D!qqMg7@A3VnHZew9jtv6URq7N395{<_7F(m~8+GJ%p;b-a{L<<5+ZSK?_=RtLm%YU^&+R$r%@5X3 zKT)5Y_S;*{_D=ODuPy{tb%8Ud8!y%|#xA9|?yN6di1!|~mkz2)MW)!<1;8oy04-SI zZkkCVK&|H%7#a8O438d@Nf557nfp8)9X!)Kck#l-oV64kx(o+#CiWs7nhRnXt(T!z zV42S!tyV`N_`z(~O`+z%)@-_N`?v4B_WJ8z4nZV{YWl(#|E;Tz>#CWI&*qCSf8~$n z^F>`n5gCm~n(gu7!+-g^zm<|Q(`Z~hI6C@Q|N5Vsc_kb|qF~!w(?02)H(vkhS69*h?9W%L|L}*OJ6kO3rfKu~`uNt-+5F%9(ZBe^Kl|P7u%EQs-<}<=#4RnB zkWn_%-O2c#pP4y3Ejv3pJ>^)}QR*u0U5~p{%>33LfA#feuV26U%+rq^FSch@sHabV z`jxW>m!G)uznTF^2Rl3UX!P<6x29Dy+ih-KyYRF*nICONXOBNYZ#`(g?|59Fj`!|AI*$A6dvCmP zVdwiKiVQTqFmiChphlJB>v?_UpY!>HKlp>+|NY=&OuXyNwctW%6o{}H4&Rb9oacM8A9Mlh4kcB##27T_Vpw5 zLlL3}Nu->8x!hRBC4s)lP1*SmGVCdcFaSZmS3oeDvZj?}q6+q$7*?!AW=Lc_v_rWP zvLg^t`QkzD9tc|}N7H^i1SyO1%E;O0>u%X)csYiW&~SH_EfoMGE=yObZ6A6@i>e}A z4*EqaVImgT=0M9EcbW|q5l$r2kz^aJ>LOgA^2O*;GAcyqRr{3tY|LB*uA-cK|7CL% z7iKvTnYvm@vzNQZ;AAk8F!&A!lOh#3!!RFkE9Qtz(8r01nAfc?*4-*;aS#NiAQG8F zplYbtb|zM*)w-wsv880Lg=$1p0Wige5hFRP1ZE;NXM&rRK-?gV6%DU|SIbV#jG2Yt zITKLDNXWt>A~AAVB3ML-;U-e5quH{q*B*l-la&(KKnx1PMRzVuyltDR%7iH}s~d<3 z>_s?ZDFR<9DD+`Hb-;$&+Mq>J8JL^qS$)-Mm$PlwqU`5Oj5ER9*1az~?GhOnY+RNR z29XPsFjqpa+~|bU$yp|#Yqi`)%;Z+kF%G8(hyC%quWAN!@ksU#gNJ~{QoBS|h56c7 zZBAJjsXSGI{dRrw9p6j29JLrw2g58xzI9>r^u@_1o|<0YomCb0U0xYV-im7U&T&g917`sK;Ys^vZ!SOc@yN#RFjjKpjlxTyARcLJEA|c|gfUkm zu9I5o&PZf;yB4m`R%zWW+uld@l;8ojKjR~INbL)%b6#uCj^oubb(smmG!B7j5xH2p4mp{HY3dmZLo2;rJs+zDniZKW?vU#6VaAFUR{NAJWgOgT-9sITT zPhP&>Ok(J=vGAtJ(~jreNtYL^yfu#3cB`yV^{QrKDzqgdFHOD7QW&PiusW_lQd_oE zN*T-pB$EqS6j;JFFYdv0w4-Xab8K+I{6xTPAQpXB37!vsg%G1TIRzJA$pwh zQPQGvHX zdH#wNT-`#!Ysnw$g_1VKu{*}LU<;uOZ_K4&OVN zeV6caKl5XsIBo4;{PyQV*BSDM_fLiV`6n-a?%)3VAO4A}VfW?!+KctQmX`08cSo5J zxqF0db2F{T`s_>q3&#M01lOEQd!#n!-u+bD)_o>jX0!kkCy){5L|OY)vU}_HN7VfXqLU=VT1 z{*}>$(gt~6(A~pQ;hxO0TW@)xdFkEUvXMm+b~eueVHT?WSWO|FW%Fve=;!{PnmOmP z6`IXF!^bq-X-p89 zt({5U9VaH5#-U1uiE=J*;Emi3cji7Rpn!|8o0(}~A`%dgvRQ^xAS!*+04LWKtR?N> zN~Z25$L&OFxi7RAcLKIhU)BA|0GU8$zc|(-Y5RP3+%@B9b?T`*vitYxxWl>x*SU22 zx-+onv2N+m)-;K;INBmgmXu6AUI?ckV8Y53gpeMQXBDI~|Q?UAsP6uH&jPS{|RSNH{henHp*kOzHd8E@q){uN+DUKP+2vhK-3Xc z0mMZw6;rZRqLG!TL#`e;lpK1+Ecjk z#EwKULrRNd)vj54PWx1!%nuj$K1f-sag%d`OE*7Voc24HuKd_%f9~RiZ3}5ZckidS zrgGI%A0>?IX3{jPylnlnNn>F$RkaLWbV$daB ztrZBvsM1ka&3M$5f>HBa*jyV~s_>;~_-C`@^C2r=I**)c_MVcZAx2^)MNu3O27{CK zwo25x<(ek!kp}uuV3$pR9>ckKa|GjIr>^9bd+kyN``}%4xS0Y14}>x0Zz=JrZv|3-pQFrm`$?fZlucvhSfkx7JrF!xECXWyGVWK{fvqiBdpYX4L z$sRmBdZF6mQ9qenynX5H=)QuM>p6ewrG1cFwzEaIc6#aQoukJOUw&@ui(kucK8Tl} zg-8@hs}=gW&(`a@s$PEff~gUUL$6(}>mX~%&wXsXp0|73yQ9(g%H^oG-nqF;Sl@rJ znoVSD2M-^ta5*@MAdjb2)?6m*0n}TrMOGU=crL28cciNt9g&=kwS~#NmXrCb(dGf2o(03 zQRg~Ey*+6{jSqkL?D^9x-+b%!uYBX3=U;p_uRH78(+}_Ur##Wyq5s^>?U#Pxr!0>4 z4le8v{^o!2*&qGUm;dTt|DTRmr=gi`Peym{J^UMg`)7GJ{U83`Kl~fN_DheBSFe8M z+cDN9oTHWiYMScDKeN9-s_))Ey0e%ZEZpL_+R1=r-<5l+20C zuxp4C4k?0x3^LeaXc&-goJ<>0h(RS3JoJ~GdzXq;Ww?Qz9BgnZYU`kU6&Khh_vS`r zXiUY{DMaod_H6J0W^``o8X!1Dh#F*?auteDG{nd@MO-!nt%sV?O~IIxlR~M$o(4Ix zbdGU$IoIOI8E`8i5jlqPcwzE#1qNplxF{P%1!Ruqxj4_L&_>u58%>j`2!-mUHG|0u zAKOvbBQ$7yg&qWQWFm%@5JdSm!)Uvpsmu$A%85|=nFT{~$&H9n4g7m8ClV$kqj5W* zb|>z`mjibZQuX<&Uvzl@IRPM&FwDu--E!eir;RpM4oJh-!VGtzq43Jid8fs% z0U8Xt(-FC|6|ug6qDYvD3on_#!j`m4+N+yU#Z<=u$wl8|ycq_R1tgDBjOZmR;9v)e zBxJ+d3T9R{FUYE4>|2b^N-S=!j?|^Dv&Ci;Ng|`bqlzU6+?d5TEC(xOf!cUXq&w%M>9BEQb(MPT7e_3lYqRg1qD^u@Y5dCxcco zWYsDJ0NLScFhdA|i2_8(og^2N29;b=pB?aV9dZnol4Ao_Esv~oX&?7Z)hl7MDG-6X z^AG|hVmH<7eM+iB!K}KemS2$Ek+LO)n)W&zw#zM1YLbgASOs}%udnNVy{4S~=(J4< zbtRLLfRTz$%-*UyS*WE=?l6UkFxah>7=co+L1bsjeP&IT;VDBAP}Le|2cbTiCy*Dg zK?wZxrOD5J{NlC!S^{wi{X$A8srXC^M!)Sd0|ZZ*n!wlh>!squMSpbIwQXkESYMsY z>9zM3FFv(Bu1Ch3nC`H6V(0@Pp3*_mHMtnTB<0pkUFzDDa~A6(C5Zv0V3k2?lL`UO zV`hpsx9Z$w1FhF7i8E7P;o%bNcKyL&f4Dr$nspsMpvmcK3Lr9*h_LT$)pcD@YBBS5 zpDPJfEpUE(Hcy%!ANSvWZ~kDRZcgHTXP^7Z;V-f3;P)+qV+{APFRzc=U<%A7@AjA$|X!0^ThGdw#?VGipYbPPrtPPOhwr|3FQ>ja zdUW{JZ@=`?)t~&Ct62YiNJ%`aS-9iPr)s8%N@XdkT8TxN#=03ZNKL_t)0 z%_$M}F`r5@AHTP@&s?}lckds@tJM5+V1kSOsA-O^W}IvUmHn?7GhUzA?s}Yps1d=hUepi^XCUi+72lBw9C1 zb|>;Rf{bn(jX2#wkN_Rz)kuK+1wkhd$%8uxkh}!QL(+LjVyBI?(ihn6#Fo%eJ8ns~ zb-z#~MHN~1I_K=$T5HZRMjqx|n>0EGk|RJMSgdpQ*?X-u$L0He-;5m0?$W@QE$3|P z)Dbh0BfE!2B-Tg}3PeP#ZdtWB>Y|e}2e1>VJIn(^B)D11nI!}Uh;76{=gtB(FWS;_ z_){szoF+33J5kwE)jz7}gsHWxy-pPenIogx@ePz+)qO_1q}kIsJjvXJ(dG1bw4nmSKro7*IHq#5;59o`?oe8sU{!D!O z?q=}8N3{^Ply?e{8w*88GM8x^QA^}NC5gt=V6_#q5?27vS~VO%T}U!BaZ_~L=4QlT z?8x@+d$qxGVOu7*4BEM7H?Cd?A`m?GrbFLvRd4SetcSs18{H4OOKt#!nB1AT1?%ktH)1dc7~7p zJ&Eu4n~?g?ywHylB5}-%bH&+OpR)bverb7>frsl+rHQV&A4Au8V6Z-*iz7WcK3OeS zD-xJzB1*2kJ{+k(mU$YOz(JZJWCzly%(+$iHk3r>Lv=hrI>-n7Av0ZQIyBuB{LT+_C zyrJ9uW*Aq*t4`4*rxtH7+?BRolG12k0OS;vIi;d-BNBPFB7he19FU?kq z5b>DaJntV7q}T0nx0-cr*F}TAH~#3sc=sq=F`J+pqP$+sXo=9{b0Nr~1M>LQaXzQ28yX*UxE}pq1j~`oeCXXNW_a4#3S-N>W-2K|- zUKgK#X66~+{*E0dj}qbMf%@dv9O9dHjVhoUV@b{)2}iaxKhneCRT- z+Bcj>m!JE231QyEPTXVQ#ccL7ADUfUYRHJ0)Y!~Saoq7@8RJ3&$$U2d`0JK6o%Lzn zgeZMdo1er>PlWAxzI?Tbo%U&TP;g|JniIGs4^2yOST;fsS#WT-$da5OH`e3sJX z?zx-un`UDv@y#uUP_#O5r%Jmnmx-F?LUHlQ*k6_qDd}cAlr9X+qiIeV1w4SNBPf;0 zB*k%>NM}wiQ>5su6A80NXW86@TuWXf1O@}ncKdc1X0y43;3d)*Hcdkd+|#;70yFXY zxz!8byVGBJ`p)^oZ8zBErnz=?cIkBaAPp(u`f_#c;~&W~UhKD)?PPwG%^LwZ*8L9d zsm{I2DEGF$ZW_!FQ1FkDh$({+r+L-?fiF_t}&FTl1hbFS|(7OCeY3 zY$yU4H#3+``HBDP*K4o6cIC>IuYUEbzx~_4{qoB%f8{G*`NlWC(RJN#{^oDS82_rj z<>o1ys=*Z$iI5p1kz(mIBMOe-6quL`2*7d}vsLH5(?MWaDr~9B&dk%BH|e`dbP?6yvD#{s$8+gUxZF_H2~m(kZstZL zlM89``4ov3xtTcvlen3a5jr5N73bPC>w+`f$e2bmCMqcUk(lucPkuvFTDmA z{uBzKL)D2PRqs|l0%ZrWRf$(&NC5`$`*mHdddR^g7;oZ0XwhHR>0TW!W}|Mnn6Dqz zAL9h~D3sLJn_)NF0dF#KPcTuX3Xh4MtN;)#D*&DlZNelBGpbWTs`R!x!z;pK)Z@d< zn-DI|LNYV+CWV=$CVPKJMpLTs3M$PI}v~DU0BrH=bbnO-CaGe&3R=Inq9t+9Tmd)eA-I|)WzFj2nD^P#-3Xy+T0s}16wYXU7@C@a$Wq?-X*=XW$(=wo z<+jA&0U}aow)L{9wxhBvtpsBLB5Y>FmHn(*B!LbmHDf6?cVZH=)CP*e7_Ewy%Vr2< z=ETsf6aW@5jGWYssqh6NIOpud#le)aY4i|y7*Q6rR5w(ZV#D0IViBwCkq@`g`v`-q zx*5|xX?c^)OpELe?gUjEvTp~y7<8Xi&A7~nr%7HJfH#CR(7q>g+h^Wq-uFJALmie4 zL@C*>H;UG_455dQaL5_aaeCtb|U!g$J-}t#(pZ@em|KR`l@~?jJ=ND#rd`kUo8@AvGGIH|lZd5{4n+8e8euP8ZU4loD zL9-GOS{49Ivf#$tVNla&xpgM@GBM>#EH21t%+6-sfKEu9DRVIQt=o))nD*#q?P3<@ zC$srG_w>u(x&7G}^U2(|HuhPH(Qz5#JT%0VL2A~!m7%1X!HFCUmWkUhfD(fW13}7v z=|l$>H^FlTGNwXrV&0>C@SSOLlYz*@T`HQhMqv`H1j|j)1ceo#C6OcoVG1P) zU}lo)0x!jGakJ92P2}Pf9^AG%8q82&3nQtYyCpmnbEc+o1QJD|ta=7@Ze7tZ0VDh} zHOsCEEW6QC+NIGpJ_;y?h6`R2JVEE`Z|i_%_rl$jT1vY5X&=qRVp@D?R+^qVr zDHDmXo4AmYVMff9-Sfu1fnDLnzCUlkeO_-bHoNisQQr61$Be7p$@KtA4?@}*V3auJ z;LHeUgmCIO8YwptkLO{>p%WMO2>R9!?{2rlOV{SJw(VwJ7n?J_=qQ}dmu)+Pm?8t7 ztXCbgr#W|d*N&QwR`afv5Oj6iu2x4E_wH)el=R_6Z)%}&AyrD5n1eKt){mvrhfkdJ z8g{|biOlcl<9%;4=_I?dD%k?#F_u|d-`lXk2;1Vlo^=ev<CpD}U{>>vvYZvE7|X!O`LpuN;W$=$)38?rU$eb8slhdWJ&0J&qDwF%L-_V!U4 zhP+q?pEs$Ktwm?PI2$fxv-Cyi!`op!Po3*1A=plb?S9;Dc71>O+3Qzd{P}r1ZzIRR znv|Tfr*qtUs=Fe>aJv}JethqZ7}{~3LJ+tca-UO2ZCSLGuE8q)&1+&$fu+K8vAK|% zBdzy+vKTrdRtFP{gwVukDCH9h26gsS))3{J9pwL$ZK;wGYhH&7M35D^*Ug^Jj1rtn z!|Ig^3?f7phA;;@SY?2zmiFv}doF#RdM0Y%Ht06wl`yJ{B(u61vL_;TFqAW?m|EAh z(lN5Y`O>l7e(3Y3&iei|SZo{LCO6tBEyKgpW|g0L&MzM2pZnZ%U;guV-+a$L_mTPc zzPAVvRj>}@%FfJ^HmfTRj4z%hw^X#yMO1y zue|!!uYCT8fA-x^{qpA|NHgoc`Vaqb{q|4(tN-yofBB=YJi2`!pxJ!(@z1=rzSt1k zXFm1eAHVhP=RW(||MU;P9+|)L-~7-2+28-i^X2L!HgDW{*cEIZ2|1bPlar^OyLA)- z<=yc7jVs@mkDveG+fSr7ap~o4y0}=ZzWaau;ZyW8{KU1{`A?r%Nnk6`gsD3-GM${x z$=wYoo7ex>uaAA~W54xVzxBJn`@3KI(wBC--D*0Qe+MoAyc2oRlqdEDLH{fwO7-&9ARQWl?PTQ0nW*-gP6iAXYtkj;slp=FCs};$9s}wAw#z z`%Q_%Gbe&Gb2eS?#(gRipmIU+gutp-kyQg9gjvls8!@CXd@BUe&8r{?1oQfFSJ8Tv z)43X$&_q62MQ3I+i4wVzq09>q+Jt$t9WJ(g)|x{ljJAnIaY`VYIGTlFVuoz*YyEs0 z$QEUuO=UGPvS}&1{eYieW)GC0L30*cH*JcB|ga}V=hG8p=vR}+=2)( z#lYrXG<~K<C{GwR~Teh<8lE?;(W3DFxupLqxscGVnw8{<3R9foDg_%f;pmahc z*1b2}q3Y1wk7?JBL&~M&uOR^SNRuJ^dY{hrd9%}fF2-CG416JiQIRUa@9yItzp?t+ zr_aW0F$m_a+0&Rrm_pd^)BUrYvk!(YfEdR!IlIV1f+G#tXQ48+c01jUa8elcLnbB? zb44~9&4V=09^=N-r=S1m6(&N;ZqAWo6H1rFgftd#iwl#v_bJ2m@p}L8Vq{Ru{(FCR zasRxR$(6|j7I4tE)k~NCi4(efe6dc=j5{+asOU}_08kj4v%w^oHWCBKDo?~=6^KU6 zEpgxgFHj~k5@ue2?(EX6C27**p(o{paT|v1BK67oK0O>R0_I1{#q(E=UVDx%c7tcz zdl&{ZjMa?I-QBj^u~$7kUhGr4|8Tw2{o2x2bx62&*}GZX_aL@qC!fC29$ntNH(bmN ziNwbgIP***1&uo&^3f{2{?U{ixmBo{H;ZV_8ilPULN;t9stt>{uoII6A|{0QlRzL< zP*KL8ABY=1)Vi2%oJsFE*-eX9XrgNX6REFGKg(Ns7+_Dk*XngcwIfvY*kSg17Vrc`H(NF|MP>RvD%U=ol^nM61k z6qtj%pe%sI5F=6GV2ab|KQ5u4vm zdNnN5_y72tf9>^?lauA2{Ijog`RCGhNiMU^OV^%SE_Zj%^tGEGyKLQl_4J1yoQ2aP z9Y%fo{^zefy>c2J>_hgC#o5D=7ZP52A*9;{$^(Jt`(bNDpm}T&Efw_y- zyuuoFN^l8bWi?yC9Of#HKor3+Fo)|`Znf=P)zdhB`CC8z(cKL^{_1O(6K@Mu+i9C^ zbS0*SsV2#2trpoqOj6a>wc@WLP;+-vH-N@e#C3-*4Ms))R zN6pZvYWxFevD!k5s&^_EDDX6m;<|x4#OWUJRK;maRxqXML7_0Y!@GC)=er#_mPeO{eV(@h3J4COUf*Lna$l3s zbH^j=u5YYSxx@`+C!%9tWg4A*@X?7Gd;xjNJ3)vIsqr@T@ZKe4NtUR$l*oG7t$aSy zurZPunM+F>70+;W18~yFS>A^fW<`x?tmG|^TN5W__@2?XVD;faZvyp{ddbSx$w{`& z6LKH=$agbk!7Gh=Mqr|a~o}VkndlQH|kQD=#VM^5KG}n6d_>6bp#Pr^n;1CAT|e+ zh(rz~!ptx~beZ*(ETVZYIquaz=q1#Erh1kpvrG|AW{iWM4|L{~%M*YRjDooZiVZhJ zLC{LsaaTDE5tmd9&)N^xm&3wI0hkV|w$=L!2yqv{uI@<8V|MY7*>$(LSnV!n&3*68 zdBzd!*{N+LG+jLD#bXn_Yn@~~X;+Km$2&dQtk<*I{`J>S5!?ORXt>o=AP+S~Y}pWeA~OvRNk~Mj{ptmU9t;sbw&2(_;YY za6)$Ln6g?XCc-R)$NgyLYfncJGvQ=53>gfeaBcR|jpb{W)F($&5Dr|(DqP56X4BJc zYX2)xUyB1o%}td=+O`oe674nahy_+E9fb#So}>}vh$6+>tZpUMy?QxHxj|geYa*Z*y#kncZnjda>^3O%81+cInEKb}b8l$b7n*KV0vhe}=#F=8LFxX|Xf*Y6QcFE?zZp}*(cBgiF3%P-@&VfLOmq6o3qSkOmp}gaCqKRUq33RV=s8z) zuKn(bpF3C_qT4m@MEI)`h0obCQWS+ zA|euIG0WuWmWx}@E!!rvT{myLn`w9NnU8PJe*dW}pMK}!{_2@$Us-=o?|cp8QjX?o zU9uAS;|srWb;tks=rzS1rhn;7r*$~&wh5Z+2ovKjLYTn`1ts*M4?a9k3Jjt z2(~aZ61o^Ah@d3Ws+niY1Lck9v%-!JGWO}M+j?@^J$0&DtZ;O2%z4d21EC0x>PTDN zi;L9CQEG>k7c`fJaGgY`Yb~FtQ0vMd>3#UjgnpvJxzK`o(h}@dN3*J4*r!!oQ}o-@ zx|$17it38o&2{o878e;%M14iP@PT<5N<|C+@B3OSE^%5-6$X|Y5hWDy6iT7s)AO>t zW0*i3UQ?2Bc-j)GG>rkkv%<8tBUL(9s2pZSEI=%t$C8vp$Z%IHydf%i=!7z5K&{cM zvZ_pp4vZdh7bZ0iT;DBBRIh>{DTS3;k^fL&-w-hUtV!2Z&I1%}-NAD?ANQ?mNq8d| z!Be*Fe%$xjrWk+&V~v@#Qp_fdtx!r@veTK0_{(_;g(4tpJ-Xbh>yo*k+#Nt*7C|8$Ak`%ercmPFSv2KRpBs=3{g8H}6&_VvDrPGw z&M?x3n{3KS!7dWaK>{IGwdp36a&?r~Qk1S{PGoSXnUk9$h%glmCzm-@Gw-Oj0!9?P z1YjK^>1*{s!{I?H^}jJgtRNkk5vknY8SOGH_% zj8Q~j=EG?FF{>JZojjYlL)ezHaJp(+*TI63r$OIar?Z`(pV{M_w_`!-lpDN+mm#}n zHFA%E0=pU1kkvhB=`tH!S!wJ$ueK<>?noh5`OGLf5EBT@$CR`xc`$?|@*_wH}b_X9{yXMAU!G7YO^ z4xL)GS%a&WfDY}Po@i-BwBq2*dwaN3Y}E&K1YU(1K<0Uwnh+W|=Bhe20#l+HICy9{ zWF3brJKJ=!Nc~!wP0dM0OPWkwzWLsrPd;~jG-lV)J(&j2OS9P#ql>#7e85o{%##k7 zv-?ay){r~W&?BYb*)qAocI)kEV|E-1ot$JW8OW3aH#7GcF+xB9*6Ym-;*6F=g1EDo z5z>+x>!SPIVYPFMUI`QvV-?eIoW$!Cr;d4WcpR6<%_Lr}!q4}|L^$vY>k(Dm#Wgbo zhY0$q%%X#O^dR1x(dg`bi4lK+B~DIq9>W0AO5q_Hq$h=niz@z z6(uxi&P82Sm)Ny}ceq=gz99)Qxp3=*WC;`%usoQ%5GgFX@1V)DLo<9di_9Gbt85U6 z!vtqEXtsug4Gb10Gc@H_S-Ie2m`m*W6C_7Uw{2`y#?9;}jz`)qKsBJ=|ZuVkx^+T@0o3pQe<(n_Q z`r*%h;`*2V=~vn-kB*kDV@Zp@fgGC7`u&i>+tI%J?K|6k7mi=_MfdEbx4!z1e!p2R zp1k_R@y+!U;q`Za`or^n{mP49xcTAP#kjn2m*c)&zbHx&pWPzi3kzJFT7JWL@T%AHOPfUKy(#}zFjfr_bL8f!-)@IKCz?@z>!|q~A8AXO*TG7nO#y?k!X^W&)~d<1@Sd!)6UuU83T>*f zR|i4iq{%N>#uB5;c8IBQFO?@VfLyG2LgfP++3WBC03ZNKL_t)qg%eE<(;`#k=?

U)r1I5EfTynV8Tje?EI5{Cw=$Z%Tql~){x8nV*xjA3Wr4iD= zsyQds{n7Esvo{x}IlHNHwy0z8?n^mgAy)@cDN={x~tuDLCX(JU;VBiB-VCngmsNqNJRh zC|GkrXWOzS6AL=uqTkyDQC@5kOamY`1sWKlw~<^if3y;LvYMb>B`mar$2bgnzPGS z+dusm_xpR}PprB5QvT$pPlxT%MZPFA6)1MkL1L|Vv!g!=3!*s_vaq82{CeMdr3sx zkln!JVA_ZXv%1AHB34eGiR3u8qxA+#ZXHW5escG$=}dE6E(bMkBqhDxzH)QP|;$WYA#qGSFnT-h(Q>rH|$AV$j!(lyBREzvrmGVmX1S= za5pD&E8)*nF2pIqEwXemZau*vA-H4Ax!)MEN)uQ@QajrXyziUHO&jJ->(dUUlx4F< zPL|DPJHGTZ{h!~sY<*syJ{*)Nc{XjE*g~4f%Phxn)`i$s)vl}OhAp=3pZw&@&%gcJ za<XB3fO(H13BwpDho4uO~Uw#z(tPeDXC(n}?hAfA}~5+THhVH{7^ssida+ z4>^zRY-Kv0p3LBR-ZVmfy8hlp`=JZ{CzjsmnnpxctL}@Reo9S2?w*Ou;aCJUUgh%j zMk5jm6eRHBH2qhf$0&c2XfWuh0c;$*vu;QK6g0NMlf{S<{jOykL z7%{P;Y_Z>WMZ0H3(Q5d_?DA?laXPd{C4;YA1Lj~zErkxhxaVouP^J)dm4LeVvpTrZ z-dGBe*1T%SfB=LMq5QE@VWI!?U`o z)~=38%jd;a+)G+zmJ=!6nZczPBN8Ge6sh0ph>IItxLEs@GyJ zR_0v@Os2{VA|a-nvxB63@FkwZoSC?$!Iz)qA#&4%QrWtbIAzzAvl$F183G23SpjMS zO-)y6x1EX0j8wCxGS!qY?1y!qhvaI7e}!1m35w510RgeIlc~Gfa@m^MIAj7bOBtn= zX^5~m*AZ|LC^-&>ToNG=n`fYm-l>h8Qs&5DHiw!D1qq~z7-CLIgi2Uolu#nt+zljC zH;A?sQ`2Nw)d>oM@f4<1%ln+Qs>BH-D5O{-E4n#1Cnz|WlNvUo?RzzN5ND$KES@ad zRTEiyvy_HtB;uIOxoPa#D`d~IWq-8U{n7W%y@*1{g}4zKeR+GAo}NA44J3u=?`F<` zr{s?ZdULl37@M&TZVxxJqs4<2dn#R)!(E9;MdqDRPDveI6Ib*6coXBeA4cw}4R~-t zx8HsjLa~*07Q(DqNQj6m?a|T_(`GjYt3X+{)PvfY9?zY`E!b?KU%W;Qftc5h1P5fv z;RG=0I>buQR44hr=pK<^%2NB)+J# ztKw8HzeqV=y#CA5-ukqYJA9Y&YPcG}%Qrb_R0-@{Az;&F3Lmt|)j6-%1Lpnl3m<&w zMYUSxT|8OAr#V)6w)3Pfa(9Q8#=Hd83Cp3`c2HZDCX*Kk#6WNctRQWO1OQ0fu>xgM zC6}6i3n{-7toV|h>=JkTsH!F7L(LUJ0*0dlm9svAvY^P8i^-k{kwQaK)cgPxt`2jp z(v`a6DGHSOA<;CIoBrVgX39xa_ZVkua0=~?CsmO z-F^2j{^Fm1{p)}0@BI3W=dUfupYDdEqmRNFyi)Ja&epoyzjx=pl3cudcXf2>2e!EQ zNxJp&OFz^85rd$^KSpCSM|dmedY2WeC6!X{#)O8qgyPm+@SH? zuOH#ke4)vh0|-Ta;GT;1hKREpAg=0E1nQQvtC^`a7Glsk=QIOBh}DT%P*E>a!C>YS z7*ic7%b54u-EDwPDTw{@>vJ*GhrUxRNzkP}F#yQLdtFYMf`KgCx;j)X!a|)u57QN0 zd5s5;e#xvUlq;LYOxkQd0S`W4J_DyKh)nb0t|fCEQhu3Gs(js=mqi5F8Zk<;~1-Z)F}y=HPS z)53!~i=!cSr?R{<2)lsDN@qKT*(4Qp5G+(SpNepqkmVA#N)1tAu^Nco)u>Uv9A<4~ zX5q+4!$@)4`=f@vSv=du5TbiZ=6fF>>9||XueH7eTa=bm;o4Blm<_$14a15M**)hN zB&$DK_aYH4&e-leW7`BeU%&OtGyLy-=&3LN>G?Z%alF{-_(sl~bF7sX=l&>T-}vPt zUX7eb9b3Q%0}VYw6XHhBO;b^cF{_Li*a>Mpu4goNat=tIqQvBB;PEWpb23w$`?}*9 zoLXr&=(9OPtnl<4MBZn$(m=toN(dgDvdI{7X;OxcL%z!HRs z2qJKE_&=F;UkUiuCOwSXSZ|u@vgZSyesKQ?4G!9v_*<# z%#Xl}Rot2ywwulIUX_Sq#BwESsquw-+i-KV)El?DmtH|NeNi?5>_HAYn-M&h7JVek|%X32@}B?h0^* zY8;5UmKjiZVR~2{r2&me4J;)R1i&?qUIq(Pn#lLvpi_qq34w;ONFD@;flQDyrO}v2 zVgZp7`Y{jV=yS|x4a&*}L=>_)!Iqt*?4SPd>Ysl*{pdUL#Ix@;fm@PeZssAV>!q#* zLNEg|g9*)?nuus_@u~Tj{`l|z^O$;Jox7IkN?eg z-gx7um#^J>bav&^0-z8BK$=xGQ`MkjiWp%OEz!Z^{#VbZ{{Mb8ffr%~hi#B|jL~34 z^gR`@L`@{XO$|m&!I{yCbj@ltr>GocKM=7O?vhuK__P9y^BqnDyM?bW+L~xL7N<@MG?U)UZ!lNiZ~3krjDJ7O5!i9R2k&% z2&C>_Dlq4=P2xfoa5i-+p@WA$Y+CGVEyasD5AYIL=2Gjix{HVh7w`LQdXzMq!{0*n zKh~h80yr$UbX|V36}0nyG!ZJ>%WC3v(`o3iS~SaeyxA`rO1{t3?;j7zGWEHU>j7XdrCg76LJfjvNq4aQG?)hr_ zU}vYzejLVJUbzqlMiYn`#3Up|fS^`J?xbcFDDTyEQX->LG7&yLS}bR?-7w^=UbJ{7 z**L^tjv>>inJMQ?a6~!WFO!`fTZFY9LOkEUaeCoN_8fO0oQy7u_5}8{t~C_c?0}!Q5jE zrWymqAVDPM+%T7fAgXE>E?ojESPItN$V&7tRYX2R-OJROg-Te|8RYg9kaLy%RJ7*W3 z5ib_8WJL%I2k@lBbD$ve8X^WMtbp+^3423KTv%!)8S7v!gTLQ#p&$*x^B5*mTkW$B z={F4*(-UTp58y#3K`IVW1WuslKnFY6;iixXn!Id=X<9@RQ4YZSG}FTq&8NrO`$ygf zoU?~*5Pje^mse&*e*D2#dkEf`4z}rugPLVgvn{ErpANE#$)aA~kvgtAJa-O^sL5Ae zyU!ZCS2ds2IQ4;-e2`rn>UPw@K~1nA;4gnvMaEqRYSlyf0Ro#Jv{gQxYd(o_D`Kt= z1(}LB!HO*kuw2$W6R)p!&IRsNpORFkQQ`2UE~i&j<(C+|6UD2l%&4klromzn zr=tW4mXFx#-!+2}6SMotJKy`!yYJmy@3wDz^G8|v;~#%{x9=BMo_X?xm!gQ7oBL+H zd-vYv(oxs1w{Kj$b+Vve`^Bp+yWH7n)9shn-gxuDVlH8^`1&{Ac>R@Yk8a=p_IDr5 zy0h0ldSkS>-tCxtclPMrhiN{G>&^a*2D7Io%8EaK?exi~Zt|1Q6UBG#K6>Nr+fP6J z%x6CP`k#OAC!hK^el_j4ciw(`AH&U0Kfn9wcff_iWehPgmbP+~w3J7s^Do@u;@#sA z$jC<{)6BvKKi&pp{FO>2a2b<3Un%P&&qG8x?HJuvP@5-$=O@}?1MA0zkHFu|3W5Z zWW71?!52U!q_Sr6aHxZ^Nzh$57Nu5pDS~Y+C0sQyIZJH>xd^%o+?|PG<=s^fsn-v& zfxtwKMwbj{D3`sYM^Ip5umcb(P&gkl3~oq(HN}lWc$Y6@|EAudO z&!)Zhn`~Pfhe)|?oMc75qwzfL2g|*chy%Lp990K)xJdS1eIMm$#({X7r4N=idz;T! zOf=@rQA^T9VzNq;T(&GFPKimU$B$s_^+JeW+)n1`vy9_pe>-hOwQqMtXcUUe?vqFD>7czBDmV zUmwGf`{cQE+nb2>X56Qf)s5x#TeNDxJ<-rMA!l~gqod|+`p$NHMj-dRarK*j^>eKF27Oo zv;AI9@^&q|?MUJ$Gmb6AOXmTRjvmLZv!tub`swS}k5`Lvv(pip$IU}qpQfuParLqJ z)o0?x1L7bTyZ-qX+rd~EPn<4JpEz<4r$;l$#gmttn>Q~vUE`9RjYxreu~u*(`)c$lZOP zEQZju;Y31G0O=y>(b>%xZ+%#Vb5bwCMXFpQt#AFw7k=g6+CRDtK&7F>cD4qd*Kh!LBX?&o|3B2dSyzzv1L_8n?LV^bbFGh`! zk#Qqq+@?*pF_gQj+%A zm+8jq{q+7}*<8QX9jx}=IXOEzkdy?}xrM<^Jm1kO8iP>Z2@5>n{zu=v`TQ6DS%9bi zs}J4(=sSz_FsjXJJVHc-E-cL|dD#pIOJfotk+gj6B}qcWDY2`M24`afv_=@zDP}GF zX3tnue+r+;-CoR@D9BCLihFBZR&JbDjv*Ma&CZ5R^N{P)(gv>nXb7~e?O!QF<;`qg;cqIUHK#ac+93zgjLU4d{s|)DJjM(^QlRC0qF25|dg0vbC3DuFDO%C1EQrk+Pvp>g8c8!)D4XF?QEdJV`P@ zsAH-PynENDS@oV|enwPI$}*>Xq* zd`J`srNfttUQGo6yz3Id;3}b;ND1(W5p+|Q@WZjy2Ws@D~o~HsY|Kr22ffs_d>fY19ujLyaabFn1x+S zD%wwgv)x!Np4pQdhxGh&4q6v?Y1YNxebx*5UUfr7lGawIvFkiu8?Foqt;1r_A7`@Ew z%ytt5Topf*XT!LL%$05@ z6%AL}JiK@3eM-yce(rOZyJ`2~JL`k}2dC5ZFMjEbqi!+uRut~p^xmWG>n~k@>-6Hz zM~}bs<}*i2fvbxV*}?Jpul;Mk_^q$~^y`1{{*8xsUw`9QZyYY~zx(0KuRZspAK%+u zZqCMZ^F~Ss>pLHvzV_0MY<^KXxT{%^fR3*pKlki2PfE^$)3W&P+o!L*{PLTh`_wnS z`TaXTdH4MB!+Y<(`>+1$pLTkJtec#cgEJG%+1a6$oD*#1c)6m)bRkXx4O*i)y2U`U zc3F4C+q_ZpQJq9~rIfr)WZW~khk26{G^BW*Vo=mr;N(Bg8BzbmNj> zN@Rv8f+FBHUT3a8gNSX3n^jaii&S5h;Mq~t>{)xzEu34Q!oa1@qPTljr4?@${qGUhSW)%mK`UM{nTQEZ&{P zzuwY!La1s#vv_&rR99h@Q{#^kR~<`*>Y5bRJs?X*gu~QXltBsPYD^4=o2k=eG8h>+POvQa7rev=uA#w1)X^bC>iIHWHl3ItfKD+@9Fx zQI0cG1yIm!<@)V|m6LCC+3KX@DQwc+Bhs|6OE9FE_#S9)((S}L$U%nhrW4Ygc<#H4 zGucq0RJz@kZd_0M`>Sob93|bQ2exSFrKtrunm1|*2;Usjib+vdyiIW z-=$zm(=>I%aCERDwz4Sz8JWWdmVz-sD#_XLeE*uN7MmVS_ua$d79Ns};75YPJwn|b z787oBe|)-q`~8QeSg-d|-wW6Az6cY-VA{j8*x<#r6eXs_MAACI$}KR%hG+oTh(OLz zcP+>pJT5*ZBtVFgAySBPWMH$ixo&NjJu@T`z%<}65i>FqCxVy@#ND%5$=S?;;H+?S zE7-YNvrIJ11HE`{h!P8Ti-Bmt3v=b->Uzc}e&d5Ob>|n$M3b4GTz1d@!hK$EDXSb^ zuJ@0hJbAp^*=x_Q%=KI*>5zB%`pt!9zwtVAUS%ySrhGXq2Rb+!;4s+X@qXVi;7`t` z7hYapKfZBrAbGc4Upp8Jxd{m_b{kpY&Cfo!r0$}Om1@@en!BB5O5?(50z_@{!p;sD z8#yIPYG%cr`I=mV7di+er6|)iNPh(&wW3B?pI>`r@#bRarfKUX3~ZyAixyyB ziz!J8#Y8O)+VX5x-0iI&y;FE9X#<2$YjeAC5(r$#nL*Ts0kJh9*d5@uvey2u@~3?s zMVL8V?smKF6oW}~qgKzFdoC7RkIzM^d)Hw|EG!__ti|ln>6W_Qy+7_{vpPArzO9T< z0Rh)&IYPDT7Sst+auHAm>4-a7Ft}4XxqQT_=hR!7p57dOcB=?7PI1-U-MiDn2e03{ z_Ss+htJiP8{3rjyU%qqlpM2*V-#%I|_J;J6kIz$w=ncm0_NPDi;Qq;LHx36zVWwpw ze(;T3ul~9G-rtgocaN{#KElI(1_M=Gq~v7neo;*| zF(O_q_^t2##_^3e`e7e`ywA8h`@tXl4+nb@ALMgt`E1bOZZV~q6^l-6s>!7r)d{|< zT^E?h*dY-(@20I4GBC&fRCn1>*u}Ha%sR*k(zwcVk5nrH^Tf5D@aC6cVfir=!7225 zB+YOlP@5=`!>77!g%wN!2olDSFl*gOr4D)`STMba0GGOhTJ=(D4N+-s+$5WQr=uTZa*46f-%zIza~@Q(3AG;(DyX_wkS`QsDV!CL%G!V34T_i&v^k zgPy%=3o8!R=2NqgAljs(rn-TQ+?}jN+6TH4Zj$Vr&0!%$q$!6-m=TeIRE>)}L5b9y zn026RrV6-EroqJz74c3SOERFJefG!YoZ;Guc~EM6z1&^`rg7Uh-%a?~l8uMb!|e?51#s5tiy(xGI~0lbgCa0YU(rOL2u} zAf=RxamVaXbzyYm5OTv_hpN8s)Nvia4QclOeu)xdw{%g-~$`;YB#Jq&#}PJXc+p6qsCc!@eGPA<|1QV8?avwPh`|M6+Q zS?FY!-#hg;ZrwZ?r;i_<^!@Vu;-XMmuMTt3-cfcKNCqPa7EB$}AiOuoa*0(>%O#eb zEfxc%E)jFc*_hyKYE;pN&osf(6_N9)8G5_8vGP#`k&J4zX6YxPGI>Q$0-E9=*4AZ=X2>IU4X?mxbB4Myfok)p*yycE^{!;v-g-yBk|))fRX{du zZ6+LGkkFjtGP8>s)HiPjjfYXMegkY;JBpb)+4oc)(*BV zJr8dP^xK(AL)uU@1 zwCGwbunTh!sXeS}yo29YtHSu3tU6ad#gKu6!3L`jJWCAB<~dLNWM%PGEFvxuI~yRd z(W!GR4>*1D`ltW5!=<7dxJYFuTV_`NFz)OZBef05z<;mNJ zyp-iY(jn(2sIs9?U;M>ao`3bmH^2MgKmI%a%U;4ye((2i_VS09{d(WI@ZFn-5B~6v z(o{(L6zFpJE)f%GSS((>eLUU!c!MwM(B0W$v)LRR92_02{^@W2{ZD`X^nk-21Z z7`(U4F904_jDA*vRNvW#4A&QFhQ`~A5PcD5wtmI9CA=3Jj6N?l^-ZVwWvEk|nf2LJ z^=J!d1G{S>)QY;c^3PtYGc7Z|Wj4$}!?vzw8X@Fw7=Qg3Ak0?N01<_OH;k{!sX&Q1 z2|z0Gq7l#KI$hPnEzatymPfVyh-Z*m0&iv7IaPwM)K$4`EI(maKx-}SD4N|$MMJHv zS42d#vAo;j@nXB`GFj%$#|zu0;>=Fuqbv#CnXea%wU-Y4P!7JnET10rWXk(Qww;{1 zhg&@>dz3LuV{ztgDNimkUB6d=d;SDg5~YH2LR-+ijf|I`Z}48S&VY$Z0xKX6WiYCm zrWA87J!k61qrrZd$BWID0|Bhj5IPVQD<}3u+4?kyiLqIBVw%iDVp8C4E|LcGDY3)% zsV}+gX00=^!1YY0YiaB`_36f9kkje@W?YT5y0q~H-rwP|+i0fASH(&f@to4{y(%4g zUKpQGxLD!#a_ANdF)yC|-o;%bP0Y{X)eRmlad2u+j&R*@0Yc|pN-3A@?!=L|78_73 zvQ0Da6w<2d_a9w;boUG-%e|%a3z2wsg@}X&1k>6UnWDHFJarNs71zG1?Ikhs$JUUD z65J-sV|j9EPj)^Mcn=4i4h%P_5Gy)CV(Q752?HC$dKwnIPuwLez&e1t=p)FBsTM10 z#U=+FDSL@WuSEU?O0=~Rxod6)@3G&fy_9+*U+{rAt50U`WM}dt#^%YRj(n2dbdq#% zAxD=*(XlS~SKU%JAB@umA3t~~`-^MGtMOFN&rX-eX}e`7?$-X~!>uHS;?)HjBlfnO|RCzje5}b~tXG@?tQ`!s*)T__(+C@_nM!z)4kw#0jRp?s@`XNQO*Q zfR2OJ8t^AOY>D24PVD@=?3jb;+|tR-Sx_9CaoX=>AQESDTM(;rC!8g>${KtRspZiPu)r;+FC5^qp zOc4$#Y?tr9U(Qas>w4(f$)nq^e>yt5hiBuT`P_@2x^?&;{*T}5x=Ff0Qkr%NMKg_&UyF(c^c2 z`#*BI1@zQZnQ=krsm_9~cE85DAz@~B(^A|=lskJ1CKPg+@!om`V$4>{&9=1EE!|Qv z2SXLo`khdVF%YqvTeq4tyk(Ro!{tw{L2;_R458hTXBGg1k6RH}FD3u4FRR?^m? zTwtCW@G1Zjucd2DjY2L|VjrxM69QFYI#Zh?akWUOp%LzGaY!?V2+b-1HEJa+uB}lL zu7FK%=WMgtp6rgUA7i-;0b>XT znOL&-LOaL4kdsdu^%$92--|m+v6T40^X}rKAZ0R~=uhU<3qjbUawXBC(g~C2?0pyXc{Wq1GlNx1QDwc>QJ>W=oMPqgf4 zHSl7=!$6dnC^3n!bE@I!6~1WxAq^L5O%F92p@t7Muap^_s-Q+A+MuC-^B!RH2!7_> zpe@B$&MQ|aP5d#IIJ;_p5Ts~WVD&*=Ye#3Wz#8k8S@9Hmy3K2P{x;9AP;K*aY>8|2 zI@FTB(VOB3tEjt{wiUfX)G$?cXLUWBuT|5?x@!Z;u9{JVqNPpED%{k}z1zL0?#ywC zn|RlmoRS)EwJn-d;oHDz$~$ZD>TO z_WiA=ZLzO2RvG%mr=EnTkRWTOO!Z+3wF5P#S&Y2gj4HjwQBy2aO3Z{Lor1PI8+RL1 z-(SZCpT8+?!At_<7)plwLdErFz^j&+!DBLS-D!of7?Jlo|EF1-?oFFlcbA4Q5=vD{ z5;c-CsT(nAj08~7+^9edD+b;?4R>#L6m}=k2 z3%3sskM`bq=kEI-$^0lu%IDGL1K3u52$l)vI zzT8{A@X0s6_M_kH#~nyEQ~BwK4_<%ygMvM@^vs=voj^+d!|a>vqYY+5QRO96!O6kYuZf7pE{%jIu5Ku% z()U7049f08!t~y#sh3=gB$zQEu&N11Wfw#Xo2#$80JEhe3@7lxUU#xHcHQQzR@iMa zcgvj@vBFl^c4DPBS~`T?;YJpNTOp8(8u#mU&i?3hBT^1KkQ8@!66$(#kb*rk38g4% zJYW?fi;c#(rWuR7ut$DneQ>L{ygUUep%EM#@KbG@>RkRQ8Xsm%YKBqk@3z;ZY8We_ zHGYoUB5(!v#-_n->R6Y%D+ct8uZ0Y$Zs$BFbT(Lvsr_??@)^xS9<{Qr%!c5paos4c z;*}^E{Y?a27bn6~W_;~{<8n926&gp|8oW;P_T?xrch9hl7zkHJ8@p>A=*@a%;$Uuq zxHp%@+v!p#+d4^#Jj1R7!PAXS4h(w0vXmagYUeg~qyLa{*=O-G?Dw?gUVN$7vh0^f zkIKuh@x^04?@kYC|I#*t$ch(_^ij`U(elJEJ^N9Tkw$3h&LK%WP;u+coyb#)xp)k7YkA-eU9FFzJCHT+rm`(Qj@Q_tHUbj4kRgN%W_i+`xjPl;h;iZj?C|zPZ|(F$ z`sjK8e5;q7S;&|mD_(ZIc*no<-N-tK?Wx2X&B|Kb2c*?Sk))XB<{`ylu0kt7a$_i z2rnZPjGN->YJ`Dga!*u;IvfEgolrJ5Q&8s)$PlfE>3a7@m*no_C&ziY=m%MJ7KT+< z)6>LrY)va!TU+cQbUisex&P_^?2io`{lE12;;;R7`R!j?_6fKpR#i_S@(Ox?8`uU1 zncBdjrb)vA*AMT$|M^dUIbS@oAm=tVnVGs~^QmkuwjX>j&F*wS)B5 zUV5?~hW&2L=F6^8W7ubR1qNBI@@fu26s29l{vNB|Q-ug)_S(MM6(c=1SU_4SH%^`G z6M4~#puI^S?K@1PSA{9e&A>5mh;om)&|z!_n)MR4|}cm+CuC3a;ZW}bNf01`lCl>lO4>r?-y)rOA%HSfu}ax**y zgU}Stb60UY494 z%;H*f=sFfE*+jx9*WIm4eMFB}t5|b|t0_Avvk1@9AQn!AI)agym*k04aP%T6JMdY6 zAObedT9|~SW2WP^^ouTMHT37ZqEm^ocbsg|@mT!fN1LJVreXr)4)5MQ|N7e}r`yu^ z-T7uZGZO|)W0}UIb^n=LNAEw{k(Win!gp`H7JEh{3R2FVm5inDbkVOCE12m^H*Y(v z?-O^_iI9M>-!ZW?X$Ub`nqyL9cLW|&xhh;+k>IGb9JjiHJRS8GJ<64=!^!!o`+1s8 z)tdcag+{1Hg}drHG80C8UK?tN0A?+o&yN@ zD$S~W7d7n>+Ah~5FL4))qD`@8V^Oc9*U7Bcbc=>$x;L~RZOG$SCmRNt4gG11zSwaq zghy8$6N9XjwCIPlN{e+aRuoJQUnNe|{vL#`M7aug& z#8R842itsosml&sg0`8A*U4c$x@e)p6_oMNRTY6)U)u38YFKbT+p-H5hy1Z`d zk!=`nwR`-S5POhu9pn~#Y5^P98%2#k$c;@GLMg2?7ALrH$~A?90F1$_HOdjZ$81go zL6^Z~6l72$GV%zcs2efWZ$0Yv_PyKCfpj+(i~i4l<dp|nMwAJ!(d-}cq{p3?W|BE;|dG_d2&a7qXQX-<1_@!50 zT;Lz)d+#r9y>yZ34?osVyhgWPxUFB!9kv^cZ=Vz%`IvD(U%3ItX{tF;ifPp() zD$yp!ca5Is&K?ZTPRYCoVi_OF$g%TmE*emUi;vojWf-P#C*razm9hq}1U4rC63M}V zS*Zh&CRzTqv|t+&_I%2l z&DoS+IX>uC*Yb9Hc$pq=%eLf2+V!0;dm$LPixwhD9ZOnT-jW&;L!F7MMnBxiF_S#v zg<)bR5{FY|eO8aNr>LfN^zG0_9c}APn=HnEnfb3Xpx+iEMD77KRTSnGpv}!^bG=H+ zM76f6d{b`-ce~NCJae^stCJp7xC-I)R9D;i8=??K6;#fMRx`As*%Ay56l>I#dG)b2 z9Jr#AU2P3$=5g~D*{+INHkf+mAm#DADMSy_2vc>rb|Plxd2qex;Z(9ugDfa2EQI%= z7cFX!g-@oOJ6oNnGg98zxo~$$7Ykb)NPmh)f@S7MUB4&;J^$y^D|qg7Jb(1QKl5CM zn07p}#vXX?{%ZktQHv`ouBd06RL=%%B+1Uv22J1#`_4o)Iq#X#-~Vq&*~ z#0>JOm~=z5MbY}jV<0_**};JK#w1S6HjzHK$k*7VNh}y6!OHmD!H{S<2|Ja<%D`}~ zKRX2Va(b*roYl!ZtFHP!gBW~4AKs=aX zPbuZ@a;a59QWYo7(&Cl}+%2G_4G`i`z03|4Z{ppv*o zhIp_9nXbgN6y}(*wVGlAAQ-&La}BO$mVG;wOBd_VcNhdW00{R?oH#Lr9L&;V7%`eN zND9ipyh>@2)SS^UYX^#!?KW>F1EKFy@oB{6fR%w=O=!j ziEq&JAX4ace9Fw6ZL~{5e_qbUWSfZ(k9E7{w1iHw+S>uXGg>j0)IZKAx!c*Kj~{Jr z9_^=tZnrHdVY?}s?A;GOeEp?s!?Ens&-qIq_p3Y=5YX?X=hlZ{-tM-LWc>^0klhxk zd+6|i(z#{Dki^Z#ZP8FSxDZU$t+*v)^E6^|m=f>tGT00jg{Kqy7&9eL7xUsz zQ9u5F@#&lfbXG2UF|n|) zusb5y29_sPkAAk9m8d#}iq1g3b)X;8Rl9-Oo4V09Yn}>`sd^{0Sh4{j6a#VU#m$+M z1Bs)Qv|8B2b_Ir2#89P#E7Wp1LmWo!8`vDK1A<_oNHTLJ}Yym)GFN+4C7*bT-MV|oqdc+j$% zh{BtAu$^7qia`yP0|J){&7(ENP9-bV3Zv4eguK)doCW!bW=^@m;Q_a6tMt%lQZckw z56H6OZa|xiQ%x84Izn@I@1x}+C+Iv}Ww|3^(o?#25i3 z!F>q$V`k(LlNFQNWLZ!h#$b7Y*gX@dxDlL$l2)YyG&ly^l$E9W3^Q)*5!4iKA_I-sPMV|jE)L$@nM zr|j;w!mi}hb;Xp36wdJME?s9tiBv%h^Z+La!9Zq41XD{92|+C6p&jJ~^+KX#%1nb0 zF-Qh-&@LNyeT7Gf1+-N&gEP4jSyg432@5){y>-k&3Zv2YAdlqu*CYydW-^lql#O#8NMTQ zv(}s%Y6wI{!ZH79#mk>E4)IwR)~Gvet!$O!Jmad}Q5?XPpHW2F%&M_iIIlXit3I#o zz;V)HhdOhkP-yT@yK*zC=27C#OtZ#Pt42*%&`#YO;m(p4i}m{O zXfZ5_sHp9BdCVnz(bvnt)cd|SM=519mhCh~xSTnX5P>D}c0?}b=ECf%5de{dydRvp zvx2j->uA~+9~SOTHeZyO8P==P9<}-e&8Iq#RDf#!Jd--y8#|XOKdE+n<`5?4BuR+( z2nz|1Ic)nRPO?=d^G1d|=#sAeVt(=9?ROqLc=Y4H z^`HOEU;TIg1{+n|debB#;*!#P-+$|;@8262udQFd{qiSY{O*7EKYeg&AOE9&_*eh> zUw-8auR5S^%)u1nqvOLjU%UO?J3q-Uzv!N^VxD5 zADB9KqQ$8Sid5B6!x~Mm_;+xvGrfW)MhhLQv)1s$?9M;|IgC9ybTWzcp~Q&AId*I{ z076i5VzS9JBwC@bWMV)_lEQ`ARGqmaVy6xUl7KH&?SY!QEBwhOa|;-ODG^3?n_Pxo zQ{MrrWk-b7BAHH|dzs1!4p#e)K9y{F(GAZYce^|mdIC!3YfwTd7#C@Jq$<|)XhJ=6 zPT3dEE2fT#EwuYF+eJlvT}j=-FVtdmIKNCD)FW@=xcZ{i6|PR;eg<8Ng0Zna>hi>O zlwKjH3Z!!@MYWAF001BWNklrhj}HP0sX5*9&Laz(>bYy@?1gV;Vjkms9LW#G6c<_IjVF&q6N(?%=INA8tSmb z&{+NzAVXqirl>tbYzzmCtgx}mMR(~+gDu=uhz&MTF}gqKF!>}96Frm5+kSK77iV;m zMT<9la9~a*xzo)rO@(IKI#baiEYx+*xl<8VN%@No|Pi5%mXGz z=O{3VP&ud*#DsxVA$e?Vv+nyG<9$O)orS?#<$_TzxnluXNQ{eXyWQ@Ej73a6ndMAe z@Oa9_2O@MmmmM>uQu5-~QrAhV44-u1#ha_iDZBT((TCm(l332AUo1&_v7Ip)tDzsu zX6m01^CjIa{ET}?kSE&{z*$0ukj!_**>uaE%nG^$0A`sKz$^R-BNQ6T=*yH)&7WMU zzB=JkGL3n;>QbV^{Z*IJZY&PhVv7~jrEbnVdj?fr29biS_|7o8Yws&3aw2n6Q*txQ zYDUzNW+x%;lk6o16A24}L(UF>Aq!bXg*B07j+A;I63cyhKc~&4#_W{bQxWU0 zuW5PY*4U<<*fZtU(dv!vnFsGY{Lzl+ba&D%Wg5|)?N&F|7iqg&%AK?E?wzkcd+Ykp zFV>uPHaR&<2QwME{>WsIBVLwVxLar$vnvZgOb&r4xdF*RLI&ED0wMwLd@NQ7#KHhAVv@@sf$=xLX845!S9nG|GZ z!abpz>$Dk)45xxvFwIO+47ynN2S5I|&OY&9|KA0P{y+K9Km77~K~7o3YqBv3z*YNV zttXfnQ_|Az+X_iQzgqt7-~6xs(!cm`kK6kUXNIdv-i3}*_eeb;ePB@u6DrBHOPd}(C&D!r%&1Ys`8Wlqhe8qs zh*j@%t~TJV?xP|x+&$IwqL}D{5bQEiudd-$G>1z5p!Ot{;zVGLu}GyHvt1o|^X_O5 zUUj*ciEowm2?D!e9t*^b%S^&Gr4Fwk3^OExlQT$bLSgMUV_2Du;1;&X^Te6j336SC zgXwu?3_F`@3Jd`khJi;wd!cX)Nt|1caB^vLcaXbRiyU|2I3QwzG3|=EQs1~$j>;a2 zw2hfq0eEpxaYxj{W{}VbHMat8)DWdGD@ek`A!jFtB!L!UsRSK0r)nD?%Dym~2^2K^ zvvi6lwNflBE`$LHZ%T4AmWFMC6iy^)4vw*Mnnggh6Wla1SB>CBGYE-8h)cztxJGjj zht`xD1QGR}QH$Ir%)UL=s$MR7RR>>9Vk-$>-Q9>yodGbh;QraJ>!n|&-C{2R9b;Fi zh{ogu-lnRB?UQ=}3q^)fViu;bb+uw5>}KT73>YMFDTPD;?-O?b$a@f~rEQN2b9!Smb)SIFv5zN zv^>Dp#}j*fpHQn}n%jvwyski2U6NWPXhW^goJVGM5Y2<;U~|?<;k-o5_qx{ntw=+w zIh&rXP3PMHJdTK)z@+^aW(diEnt5}@c#409fv$S9S8>e5qbvLxT9t~wM&9V%cnSuc3`L%&KiW*gfr3ES7VtixuB5fzzje34DEqX~ktGXHbPK0r??VeoF;ldxhfAN(!1VpNFry}!$+p1a7 z>X?~Gz4Q3itIutA<(>B**v0Ac zDD58|#*{@w9QMYa{^hs-;CqV2-}n#yz4w3o&|bQJ=eNK8#(MSA7k+-yY0+{O**RXe zi$~}8FYHhK^?&{IZ#{gAx?5lR%m@GAfBnU0kM0cn-}&0_Kl`OWcX){1Xou_Sy_oub z|LB0^wK+i>GCpM&(g>`$8iU}enaB)h zUGb#maR{g$PMA=rhY_s^jEKlg-8Jy3dU=QqDLBYXkj5-9t)-H|jNFY*{p3{6?xY6` z?VcZREq!mI-N*gM*UOD0(t8Kc5BbMOcChp9BYM4!^e2TrSm4UkT42YN$p;4dHKm1Mr+`qDyCYKG(Yd=9-h80nc^RKy%JP8s9~JjZG7vOxY2236 zQa~adBQ4p;D9Ke)a1-(hib8$kcZc#!=IsTYx#J`Ju)~T+-ugz9Wzj=EoHUzEhJxaE@eV+1 z+{oCBzIDhzdkb2-o9cMt9~oeyP+#1#k9#jZm-vOvxY%YAAz2cw{l#axmq#65e%U^G z{P_pv(Z%NbSX~y=-KE}m;n{v~le)BAr~PZsiv&JLN(N&AfzYw^tM%nHZYeXEcFM#Z zB_IiCvdr)aDn?A5P9~HbJ0hssq!ZOTUIp+NY!hdw0G(5!`hE^9#iuZy0r+Cf3!$Ae zoP~%t#*^+ADo<`4>rs(X>rz3u02ZAREg4I9b#8tRm2^>=cCpJ8EABq}q*M-8`*(lm zuK+|YY~oPifvYfqYisKb(FWtHZfa9WAlB^JXSJ=qGhNl)k&B*PY=TVN=CiIBR0IPlub%i10YIk6i%*wq1!D`x7<9zJSBKv)o=0w3lfGN6lceld-k zj1GFxQ!dkcKl#D$|Kxj4_yixl_`+=fAKrWN`#*U1?|$_=_fO8QUpu_};om-fM(@7+ zy96`WkWrDBGCtzrTFjrm^R>I!(7*gIyfQ3Tw{G8H<`-_PKHk~B?e|?V<6cDCFq52_ zBaJ`+5>j|_Vj@p)b~0xz3FtODY?QK+BBdlO12a2UlR*|SxEqSO6Eq^ztUzF3GlDUg z1#n49MoEXxczG;7b=VQkBXto$&SD{&9heyIDO(Nib9brpJ%AvgoHlnM3L%(-+`_9P z?5D!mER_6Bf96tSgX?E@sk)lh)D1ee#}FT(fm}4FlSZ>qB6!r%2^VkrF-I4K0p>#P z)^sRAR3?HWQ6=>l$YB=IfVx5Kjlod=K2-1aI;d*ghL*chubB{vyO0%kc63BUsC#;Z7cj$3d=@t} z%CX1q_aWy2OaKBdfaHJw{ zs|1l+aWCY_Q4DO(VXPHTjk;-l!%OYXDQHP`Oz%LH;9+V?i6df<8cC$qzHpZ0AkUh@ zAE~tXlZr8xST@~fH;5Pw2Pj)tlG@)h6$ORcXq{5mgtfS+!WB-iW}9H<^UVqu^hWFO z7IqoFHO|5T?+VBq%-jnX^NvUf%)z{sTp%pPeWS|6?w&|0`K&-dVBd`t3uJVHRtrT` zVBSl}UX0)Zg(0QH9{0Mik@Kcmo-$~%FtGu*tJElt$t`@9fq=V$Fx_}b1S7Nd=vStq z5laMk1sEMV9w#C$h3=}QG-xUJg=O-NiIKcieh#r1kkVl0hes(`lWSE_GV;mH)Oy0g zbYKi@4toA*uk&f(u#{LuA*M(=5%_hgl?d~|^S{umKZ;&$$YBK~BxLGi4MSUFq zwkZKWMX2iEYHg-)8yb@v;DJxE?l-ud<2LTURrcr5^VGIcMjLxd+c6lL_^qCA=vimz zYQy$60wF)u6Kqq{`L6jC!S}V&Pa99`ETTSh&$zw9V4-(3uTypN{6yFrmCXUBBR4VL z`S}HT=l&aa?maT=b0F5GzP!H8>|X(M^Mq);>Vw%`8X_(wlKFR~PS>;ug@gGQpml2`&XgwTj3(10XmC}eFg zFhqyRW-Ib0lY5!vX7k}dd+^phEXTL*8rGbgSIfH8q?xn0Sw@=kxV8+;vy~ZZ%m4ek z&tKh~RICQ-<(>7x7tFm02Apc^kfMywuhx5a=1757+$|Zv)w0a)PAi4oqmalNk(?5l zoKg`LQfy}qNe3d~LeG;BAcuu|J_3N-{;hs~J#gF&7w!`}y6UCR)^{ov)3U;Pt*^5yN#k+wU2^4ZV*Jk1o*qDfHM{rEdS z{^$SXyZ_OD^IyNY9{=E<{oP;r%YW^oo2SqIm;dwU|H@yUrWaT$!C7f23sTVCH}3r6 zpZ=5Y{j=|V_t*a3xBmUVbouDcpPin6KDHA>;Lrm4}SQiJNN$Js#TC>iq<FLuxC zidGfvCNZ~Gq+*=aY-)3~8O>?M!)&uMS1OsxXy;``Z}!fi4WCl`k)Z6H3bBn-n||=M zr~g?Vtu6iF+>gEHQJv8tZjR_1G3Qf#-1Z-h+Jx7P+B33r{u6HO{?{bmZFBY-kLp~9 z{%dZzft!?jV?VJ=^)*xmDL7IND4P_YVsZ8DwUdN=*rh9bHr3#h_QinoDJy!+4&>;<;e;GwXH67N$pAe2ASF^RL&m1zroqH8 z0EHzbQwDvPT2!($!!-H*TYLhr?(a>Ua=voOjHf1#JNI~}F?Y@P?bUSr@P*AeVYTJt zj0f-vWy-NeDF<3EVQsRqWHV~TC-?GA0%;j>ylJ-|X?I^ZIK9)+*Elw<6Lu3G!gQ>+JtbpTN|B$EPVXbD|Vj_eIZ-y3J3V)<@-=cMB|{j&>V;j5SSGSxi%c3DqcVqWhoZ?p;S{_6D1 zPUW!kn{rgqjXp7!KtrNxaZW{Z3RO2iA${IuiWi4m-u>WcFL#MY_SVWJ*;d?;v+a&2 z_lNWT@apc%mw)Qj@uQp1{LB4iUfw^vvwKu_r8Z2(P~~(&Z^zz*lkA3Zx0unZe4=$} zVZS^^z`NA4iPmUDGq^@606M>QJIFA*t_z6CV4amgGgv5*UR$l+AR-M+?^sX73SI8^ zSEZh^9&~s!zLaw)UsL&Ot*l{i_bIb>@<`+eWyQv@>wRI(1{7j9%accmKl_cZQ4Y)< z^>H(B_cBAW+-<7=b6xp7)TnUW-G>gv3l4)2+>n zeYp}&rc2mmio=$tkB(xFjMFLFB;>?SIca91VmAS>4wCg{&};wL{w&f!9WL+v~$C2Q425g@#>S?SEpb97wwy0fApXHhyO-r>K4QUz-*@=7>3DF zrnvx;)@UNUYtI1_Jyjx0YC2V0XaNTdD4pRt6`PA?XJq$xXUL46JW?D1a3ZWgZf;JW zd>Z|G29Q*nu(+KZE0jVgOwr4PnHRIEdj&=IWcw^VjR9jS#N8F(qMe8b%Q5VNC zP;%G@Gpf^WUXw&faLANg8=KgOv3BArQa zW>|Efr#I)X=>RZ<)->R(o z!=urbHq1x}Osq*vUW_5ICzO%VO*`EN2;Gk!p;Q2xzyg(GEosF|H;fm&V9%~OaCS>F zWTXnUq$sqlA2Fn%Hb@wp@B=g2GC?k)4HzRceG|@&dpLX2LJBI~+$wR&@znrjK$^d& zi$qf%z?)aMUw`*=*_K=LbwNZaRx_)koB6>RWM-GxZ+Fqg3fh|TtpIZPcfQ6Ifis51 zO>8zo@y=}ZenW6m^p4K_b@#L_&$n=l9`~Kwt;4fGWV1;b_tk4-l5IlRX3A~wIRCh9 z9KgW;w>c-bFX4984ez-)|0icnT(9ltf5CRg2B%^M6g%K&Tr`KT1KL5A0g;Ci|0T{E9~xcH!>s` z*pN|$>_T#SkK__J=vjbf2WGoEZq~qnl%0f9BU`8uhshs5oTA3*v?`lBTa{pLe%KdW zEvxLqI#IqBHux%E#U^(zHtl9wB=;AkB|C~sr5C$N)Wp_xQQ0KT(_~?pgyC{unp;NP zJIr5w^Wl%4etbN_eX<&>b~)`w@JBMJR&!0Ci&~Z<9+&mmXTD7MQF`N&kN4BX<;Aid zV`;C_UY_#lG0(1FAD-5;er!XH%(QL_qdZq|p?0S585!-A>E0W-?^0dHZYm0~hyd2? z39$%x=Qj7XoKu!a$u*i~w0xZ_S%toFfJ8Qku@sifPC!$QG$YfZC7G4GDf2*{j+z_4 z^2N8`dvX2y-}&BK_YRsambDo`aH(~_n~n>L{M~PS^RpAL{`fz_#e*5a_z2Epp_8Wieji33_7yiPpzFgXa`}d!Ha&x?? zmxt0)1`CO_y2iJ^`T5`Z`1E|OIqja_u5~%xzklZ!fAx<)dGEu|{gHQn^GC1NynS&0 zjh40Bh>58#QWHiLJq2!5ZV+UH0GS~b$Z*mU6&aR}J}n@Cl&WQs3|z7~kXdNfGL2+6 z;~fZoGfp9sniVT*PNS6OuFjExZ+t}qZJbr>TyqCR&01}{UCw1?eJqTu@naoTRi@OSVy$rYDZgqK;BwBAr6Fvj6)E!ZdN2H8xno4aAwmUQi zb~Yd8!aK&hb6J+9C|@qMMzm$gOc@*wKti~%x&O%UDBOOlT%2_LeU2w z5wu8IW}q)mnF)79cqv$0BV1CD6AgAqHK9#@IQZoe&r@-c->7_^^=g_;Sqk$(dH3zz z<2}m_t}fp=eDvb|SM57Tb56yi)pWhB!*y6S~?ZKStbeq5GEv*tbTALiC@^@e@vlf!S9760PBkG_0;@3Wtq z5|*(}m`6uxlGA6~m5xTFkYcr&OI~|UDMN;N7set@MmN|F4|lAFU81ddQs$wQ!#ojQ z)Axm+p3xj8a^(6A>1=OY&+F{YNXUbSAv&Vk4~f&N8micE!pRFSx&K&ssyB{u9mm_a z{p8~Nj8g4-uJ;c0EuCw{C7)+z~D8(0ccC z%$pTr7VO$v{Nnrgy+AeQrFQOm;Fr(K6U;YnT~7C|-+t@xXP(^o?#fq({a%21o-^oY zS!2|l*K8AgZJb@f*jb4&_yRyR+YR8^A_Q-a?g5)_-D23G?u06L+a<0nEzJBJdy@p_ zBm-+U6X()9DtEV3&a-C-WGiZ^{ng`xmjQ~1BqQ?W>D8Nui@S%YoANpVa_rGcTpV{wUyu7+P91hDemhN@A^=UUB?!frV zzwnuV=g)uJ>Bf?=ILgkOkP+NX)8u7x>y2&=7c%Jy2Ij=va<1}73|b^;-gT*z;BF+6 zYf9+k?9KYa`bUgzy5we{+pe!8GLg-2YdlTffUsWrM5RfRPqN83Z;L?_%1E_ZZ`8S^ z0|6i-`ouMOQhgn;G3mRsQp9Gm(-$B;wBE=rWW?(cs=G~ZV2y@Q#=2WAgkcs%(x~XB z@!BjMAg7q3TlS2Ylp7r)6q`?_Qxev0{?l=s4QrLQb!+#}%GB^y$7m09CViX<2?NTB zu9g!6vNK~~(7CcBO58lStan?(HDC~wwk6crEMu74SbuOfwD=^mWhpjRVc9=#bS~SN z-$<8eJ^YYTnhjePA0h*Eev1GnV=N5%QQdxYx1}W0kwOi+kNEU%NYNcEd*Y$VPUCU) zXEhT6;s5|307*naRNebU)UHtM3bFB+H-&w_>N=~2J(6+24T=EWGVofgG_HSlV~{mdi9#RfD`BlW$ak@0Z`8J$xzX1K9AR!{Qg<^>fNFq`$Q+)6 zvThX8Oc{iu2sMX8JeL+fRL{AgU0GlCe_LdLIHFMvO4OoaY6tLAa!p%$# z$aGou9z%copON=oTqvE`L{1WJJ}DOJo(=9Yj0>k!9XQfbi^??A8i?VOc@7r zr5Hp;A~sNhG$C#CSQ@qugZ8+oABLChCW#ZA%#kl7f&JBT^eMb16#C)!-|v@P5lJ@| z=MIo73(cU?F~R};^<=0NF=8Oq<)>Za+rR9d85~QxAYs-KJL|~ZMh!Xx?En;+l8Un@ z+T^DoZ){|qO^Ts2vFi*=4gBj&Y0%~?haqC?v)+KSH<@U^71SXJRGsMSWTQ4 z_Zv`Vn@DxoSV?f}9@8Azen3+;AOmow)KvOby=J$&lH5c{-c2}$_4N?j839W+sAsx# zKCBJpn$;Ew9D;Q2DVhvsh(78HcqMkpQe<}Wd!OAXl;V#|?)SUv>)ZX#U$jK)qoJGk z9)$-FrI|a(XtAs{hCv`lhJtzV(tqLJ3C)iC7xR;w6T^xP3b4SI*%Xj1H5_?b+EQy~ z^qD<{BwW+Ixty{+yYr?H{e-B2S=YC*B`$;ULNMj0cBvUYzn*uY9gX<7F>Y@+R+vs+LT`O`QopNoet9n zuTEu}PU){G>@YLy5-m2`AiHB@uLYf-4?q#I=|%f+H&#H~0vl#BLvc>U5v`YZr?jdj zR>9dd(t|6Uo5E<#t{?Z##@HDXv{aZNnR)F$IV!A|m7?y_3{P@LrA;MjGR+*CC{|1_ zUrn?9Ht+22U0l3+|Jl{Er(d|Un=WTUnR<1sAAb1B!w36^-}=_C{OZ5`y?^kxKKCE| zr8}Sd?C1W*UyqYs{?TtuAOoS@cy&FY9@ zm57d5aNrw+kcl=x=O}c$SOJd@|;54lJ`oXT9YRNz*<`c zQ@F1EhgMX`c{sJ5`CwsH8q6SohAB`L*wIpHz(j@}W~)dQuzTtPweh+apd&vCznR^bG(?&7Hg@-X2NUal z=H09LC#hX2cA_K%bFyjD+;R!tc6eG6CufxzuItq)mzZxN8Z48%!P7M(t-O8bjcYt_ zK-$v@O+6^VS1WVPD@POOo_{de<#YaCMZJIEi(q1fRlvTM1dnuMA2#e5(wvbT^MJE}L?U;)gs zTa<__v@&d7P?I%KEO*wN?Yt-6Nbf41OwnC~GJME%kVFe4an4$Io2-{?OUhv>{d6s z`JyeWn_ctj+FxAc!x#8?@;%c168A25%WXTAdoOs)EjetTJSpM4L7j@#Y$V++S>#X!jKrCXFc_+$wvRHZd9`++{+9Zn*pp*qm$pDi`4zQhqbkc zNRdX9Cd=8P;97Z11y$r-;=nAPa4)lQPn$_9GcsEwvo)OfXzvvezBZXs_DH;Lo! z=CIltvs))BOuN1B_T08gWh(Fe@TdRi@BQw*yNCbwfB4_lh>OGCsp4L1eY5a?{yTr? zcfRq)S3mg4Zg+Tmd1s#H4?p;EYb|6fTy9?6dGj-W^p`*LU;fo!ee~u7H_NtWT|`Wd zRGH1pL@|Q3rQnG}(vt<4(mZGqN@^a#Zmp{wdv}*qih+cjG^1>TrAY_9lZZ-Z#M2Dn z3g(eI8ji}aLE-frJDPs5ecO}_9>?Y|8&LB?h-HmYmaIpe_8w;pL}Qb}9u)a0gl6bM zF^VqLv8S^q72F1Sstb%e`KWcnpfP*Fqy+r6&_g6z4v|W0y_re^-FZSS*FKk}P#nxo zKIl8TO_m366PI=3cW(Z^y&2ww9;0w#^Kd$QKyJh;qPII+;P56)1h=ZY{axYp%-InM zz5f5PE*yBr5J`0=ur#o(!MN!>slHbWZ9{o)EMnNtYnz{Z>sM@0ygJvTN4*Xg)#0tw z*(fBHXam#De(ClFY;+Ogco$Wh|F{7Ob0Xx_&U#W_2fm`4r%0CAt_~7#brxI>Nfb+Q zq~vYrgz3OdSVXwHnMmuC&SYpU%gk<1fss{sj-m(A9fPUa)(cMosQpWhh zNF>zt52-XFK!#|YMbn8NFen5nL!xLz1ikxHSz9`vpB{ulEgQB5ldmDSZC4sOz*#bs zN)b6tJBEU-kMdT0JB-cTmEB?)1EDcY&Omh%3NvRkD-*gBa7Yc4#zK;q0JDK#7oZJb z1!h)-OdXssST7XD>|+Dq1|m%&Fim!+c&M)G7$&EXm-g<(^p%63mgR16B5ztHdIWtZ z7LS$2u;=JYj9y!~`PXg4iw$*sZTh?!jBlt5D9SoB3ma$)^+S!WF~QlhyrUBe+EDMR zuST$1znacE1-G+fVFzS*HrMD9R9g4QqZ}G$mIL6WGL0rhaW85S>7bO;-sTKa)3kf* z@#9!)t*x$0t4mu>OPmmqJu~^!49hbTMY#DUs3}mA!^>t9#-mfxhR9<3TVwUEZ5wYc zGPOw~dYqLpEmN#YKuN2L=mJ*Thz$MZ$kx3gbYWUmE>hla{n9aFqtkculoD7%GIWu( zqvvFshhWau5}BD$DNA+{r%`Fd%DTDM>cx17B67kq2wOEG*^z7(J6OFT5(k7zTW|V_oEJCwK z*PA;{(5dQFTZ@+HA?f(RhsSsBb9Q*~iO`g)CZJl~dtRD}(}#%?x?OX*S!=`Xn(?e^ z^XuzX$IZKz70B684Ew^#Y^JRe%qDf5a1>wzSA$E+wBx$EWoj5cx&hg0ds%az7NKNz zF>OR&>*XQsS%DY6SgQ+aN~4lBN(xad&>V1Sg{Tih&mcW187-@$2YEohdOB2do1~dFMhD zb~SUSRWmh%233Ykd;`lbUM#=!(Q@bh-CE=6(--;4$6xtVzpyitlu|K!c2gg{_2Bm9 zhY$YnpMCx>|Mu;7|91V_qvi8oxc}xC?|uFaKKlW(xEsu}onYd6YttpMDC4l3zVa8p z6`wq~An&*5`LF-J?|k8%Wxi7ixVD<^#WTXq-0;&U&%X7uU;e#+_?xg_s%Fn#9PeEo z-udD?AOGODCfB{o2emcUY#A_hq|l^IzkuR7a!_(?`VPoz7^Mn9(aXA$O*R!BTL=`* zwPsFcs@4h-4MNo3Z)Rg5p~w@g)U1G6b69rXzY%~t3AW0yLo%SC1u%&|CJp0cd7%;*&vO*I}M9F(Wy9ahUSZ1@)7+ zWqnoGPfn*(#sRuF?{^t{!nC?#rz5ehwP6@zXe)i{PIj-$Txg^2ZnUPe3UAQV@@xgY ztv|Ot*kG=zI5rgLJ6*!#+AlGG%a;qYQ}?$9jm}3t>u-& zg*jPMuojD!7x-YGZ_K-W!>h;n=t@^Jc-v%UrTb1hFfzUSwU?ZlQ2^aDa>t37D{3G+ zkbKP-KX1R3hxQZPzPf!@%p;npsZ49FwPh|aYcJ;~kK50zy4vAFSQp#`a2r>@@QpA2 z*6;GYr|*4yGkxV3Zw|b8<ReNQ=zntDdGPIgJnTM%`*B{mY_ny6ZH^1?~A12mH zx+W(S3O4p+ENzjYuo}&6+VZr9U~h5}K`+BJcw5|sP?BkV4AA5;Gbc7}0-DXzazL#e zq;OcVB8iPAOX&hLY-zS+=s|oo{7EahTkj;JSq*`7Z|1MQFxz~0KRv;1zP$5Rnedpm zWNmdfmsEqMhvn|KE`Q;-PXF{Rdzd;EpOD(&0`v4y{=Ogir2Y8FCGF}l-hDPdyU7>I zmawEIlqCZ+C>rg8(-F5jmQ)0+K~5tWY)H~+@LROYt&xhBB+auCw^~g+wPi9RIl1q= z?1~*YnX&>EgUVsB$?&q+R4xEsOpxo;+8y81lx8M8JGRsDCKM0#^#c!XtOB7Hy*&B5 zpM96IwXI%Ea#*&IJBw>}Pbiv}HELp-cg2fR=6x}3>L2_-9Dwqg=%6GFB)Uil=P_b) z;xM8osE?Mq531Z`Spy8vc~5)W*4@sLeeIf5P&bBKsDbSIwf@>U49_Q70h^-&Ep*Io z6SHSz8`C$kD=UQv0iN`8PDGC-6)`8qZh}-&W^|eXzG*BTKD_wFKlb(ICpSNO|H+(X zxN=C@V%qKA|LFaDzx2iDPoLuYq>kB;8sFLxC5>@eHM_jZB+?Q{(Fu22=?14VgPRYpAV5Gh zt#0eYG*oCwRb`K$$7V7>>lB-@Wy$X3)CuvU%xxAq{j)FQ{vA@xv#jJbAMISFwqbv$ zLzM7d>d0i5gCV02N4-;2CwXrKhq0mQFW%9RzPIdU+BhY=y19bxII21rT$m7{;ieKvL~lOhL3wRxhsZ9rtF zhdNCjt?JBmh1ychhl)C-$Z+#6IGcT76eWY8bx6qzi3rqa*qDu^v9P$TNs%OA-l)lJ z;HAo)S(42<017ii2rg$%B-u0=POZvc)F`k$dAXa*#5ebMO7YL{?RZ+HygnY4F`I^F zV3_ZJYN^{vfBxFeV*AdkOAROQI5Rd5^H9MhFcGa|UbF^MSQT9{*pI70Ew}A%V8E@& z0W5Fn_Sv(LMB9$v=!h|>K)!vGv&)vXd7Pg~eITG|GgZP^?+dVLO+#nA!ca~p6q{4| z@Z#dh)d>oPq9MYY_O-dqrY1l>nShAat(lC-K!eqk(OXx)0*xd2avi2uO!SPz1Wld+ zQ;u^Fc6UUAj0{=n@^%MTv%4^vO=Z`}gWz*{a5!8A-nraO#aX6ay@31~foazIo>Ci-fR*&_}RFndt^9WSpgrUR`hEu(T) zJq4!s8te6K%_9~p(1S@*A+fd;wYId$q8TtTdptv4XS+(iarfRVJ7#T}H!TQ(zIVHP zuov+!-#=ZQcJDkm?8(c05pbGPtF2Y9_VX8h_R+^nw#XWt%qbb&=|V^aSh{FE7#TFD z;!d%};SSQGTe)e7>}`}prLrNTQ>r5t=om2pYl_6=K0z-RL3$OB)=R z$B!P2EirWO{@owG_t78v*ckEAx!9$-=ygMQ?n{&A*C34^D(+wEm+5?Wvxv zsyj@N?JYqCC6sD;#L^qlh6QvfgLW6Yn)--8Vf2PUy+v9YX0-0+5}8g*u2W%cnkGf_ zU^9|}yCnL=`iU+NyF1gqc7GhHQGG%R%2kq?t$4{os|a>yp2SqFq)kP)tJ+ws^{z%7 zP3F)|tPKekvqV_;h0iooYwS#UcNU`6XD_RJfuzv&T)w#Kh6vKk{Jr+Quf@++1g29e zqf%3db193=EkeFF^a=_~%Vf@ds&yF)CgXZjkEBhuUvxvADi->wq#b;B+fK4|@`Kqr zs9~wJxL@w(?$u%03#(a8Bojf*cJGh;-2U-LyN}Czx2^rie{_43YkhU^EE#+fknFlXyYJ75hfo1(!;Rx^Q|*p1#(r_g2{Q+$;nEA3VP|b(^u|kB8?3<$ z4zm=*s7waj6{<--VK3<-<*(p!^(w@af zH}OfcQ?(LtdU|X>#6JlwJygReB;Ayb0!C&jev`|X4+T*HICxUs6i#{K(ak&kVTo!O zCKy%i9!uFxJCxhDfd0;OQ1OEmr=9BYX)IOhA;R}}`v4s(KrlhOVFppmp*GueU5{3X z7L;A;ZYk!3phkok@&}i9?%cg-*)hS=IkN7Vg0jGb$OtuX-p#YmDVcSBhy*DbhqF4t z?&#WK-Yq%_LW(%^E(>s;qeVjoeeiX23y$br`xb|t2qB|MF%=PRXdbtUYuYukptvNd z#|m|BW=jEjMOjH}aLUQ>!l93V4a?WQOYeK}9xacqzL)j4LA5-ht2jV{lW_!$Y);)E z?%wAw|KV@{vw!fG#}6r+JOF;C1^tQl703Z!*neYEJ35{@~n?<*osBb|Uv^w%p}>!_NBo%E29e99~ZP?gTr(`?LueQX_=k!>5B(f_hb zV$Cfh+1-7H_`CCHhIZaYgmy=WEK*R|$Q0?cGc%=IU*>f4uEA8o;NT7+&Q@zpQ0bHG znH@c@J6e|=4bAIVfaNy#YCP6FgB;c+GF`SapkJZ|jAM_D;n}v?{ESAy$d*F|sS!zM zn~(>TywmbyJV1Y)6TF@5Zl?k!380uDl%dffOIM1Zbo1TBw24*{Sd-BbK%v!0W{PZm z0wl8QZN)&EvDJEPO0wgIZFA2VjPow70RS|igA2um84ZCY!ZugvtwZYN#3Y&9wh8Ph z364zj-sNDBI6}kN9PZxr1?nsM(IlzKtUKHr`X5k4>tj*J=ZC+t25v$NMaOZxOBJBZ zRbtDSi$|o>`t;blYH40L?(e>3h8y2L%vWn&)eLc%ieNRWz(hm!dG z-HWR=GUCsF{c)FqD)V-2%TlTO{ZC%KFkDP_tZ}x+7!&KZM(yzK>vk7%8pvV=#KHZt zOrO6yn|XF&J4v_Mi=RJxGNn^QjaX}QcJ2`}#ohez)#=n4`k*$bbEq0lZZ)k-=eq8L zo2z&9vO%nwCIyEIR->-@H=YdTZto6@ zR3Kr#lTO0D-DKUgGG%m%t9ZS}F7&EtxxT8cEfE0MNG)huK6rT(sU|sDAwkwx#WzbA zj-FYr-O4Ut5*x%E)LX%T@Gd6Gt}cqPVh@DDLjiPBB0)q#jLsBLOTxq^87wm>G_Vv) zF|*PQ2up3-1SL&GF(>^*{~;L-meGxQ9Kmo(AzhU_>&bm~H~XlE)R5CfF+gSR&a1^8 ztxZ$$jIVv>(R6iveOy$~mbwZad0f(kn)OP$xqEp0bN3$Kd+>5yF4kj^PiZyP4oJm% zG+e~<+x66BGun#2+Z4?V(`+G5DgyD_vp+=ht0=JPpUd%0OlFgK1U^7NvY&DtHmbC8lTS?3>W z9MULmVpon=iB&7h!mR*q@u`sBr{>GA&hdU^WcPrvYm&+PYy z+?+Gb?BRpU@BHg0-~7ts&wY8(!~Enued%+TvPU*OYV~^~ig>KgrgYTfRkXG1orJ3KGS;b8$A|7~{(5C3&$e>SIRkWKj>VXfb59dN z8VxQ1dt@pK2bR`pM^aDF%@%zPnQFOc87jEVE_|cTc2`r|)=k}a*^W&sxnvV?T|w&c z{kva$aOeKMOlDW7>zC`Q##i#n{hevPJFk{k%jtGgiw{Oo-%;78!Jf_icUzG5!a6oV zTgg2Om(Ji2HYMojsJSgh`}$U!4s`oRojt$xC}ZoCIxEc2euQIpJ4E>#C$;l? zijE$op{XV4GB<>ED@?T1wV$Tv8vIw2lFsnZ(e_$$)>h6N?KEv(aCx;=XHBVB> zmOis}n;Yb z;CuS+&**2|=9*D*x<$EzsP+uJ1X@>Fx>+jLOhZg|=-lZRS4Ce*HTmjNm)Ci_)VQhN zueB#`M8&%H)4^_|Ws0P!u@Np{D(*I&v=o_5K(mm*tZ3sf+Avz`XKl@J`u*w9U-1(2 zoGdJRaB^D^S*8az5hyaS++Y>CBi964+k+BLnawbf`=*LqvEF8TfRepiBce68$qKx1 zT~$K~l~TU&_9J$W?!oKtAi9kakk+EzuIpicad|kTA_7cLB%!)4BqsCog*U`HD1hKf ziAq>*yKn1L`zDYx5a#`klJ_9hp&|luI2MNj2t_k%$XoKd#Wn0`?jtX4%n_~EED@=! zsbG(M8=RJjZg98%pQ<lwr#hMUf(^$YM3jzKizWd(Pf_%{lxq*S=8- zWCoBKH%`0vT64`g#y6Um$HMB(7CSbyuj)FD!!7+w`#tA#PL;#S;U~8K_ zU$$kQn>0oT*+XV#9xqhkdJ36+AWtgqbqqT|vy4PBSPEEMcl7R;*^>}nZ+U~mW_!0psYv+V zxfqhW-4woxWz0Rjd0jU8n?Kp*ryl(J7%w6*_8w$#X>i){uYD zE>-%B(XtX@N-LA$?uFXPnWNF0`_ejaQF|+xdtl358@URO4oRa+V0FjXc+4izs^%ye zmla(YHG(gx6trn9=TQ@FLlZZJq(yKjWF33QCC4~#+XV4q;u^!VY0^YRQJiw`vH>0P zRO$4xM;)$8DHhe*d97YAwR_gQsp^~J77v?P-ii5SoFb71b-`%aJHSkJb-JIV@*s|djPR095G^$~+lP~^5saY(%zcpaA&AX%YP2e9K+aH`1Q~C_+{yxc#!P3V=g9 zbJvj`Q^XWH62NK#v_?Kg+`D-2=~vGtZ!7u6#evGDcb^*TwF4E3wq{Cx|o_W%_~LfE|e*m6$-L1dd4l3KyI5! z8*r9xdv4qLwC2sS9F7OjCaNzR+^QHivkaXhGn3S=eZfahU)8tRra7}y*-9ak`L(M{ zb9;C=&U3poyWO^5Jim=~%aoZP%!0Xz%dUAYlVXo<#zdO6H9#neeixaUM!c-kr`>79 z65wY(XjOGnC9GUiAQEm-IT&RPN=g9^@wBOM$R;^02rHnBBzR3}jCE_*%1t={Q!ge% zGSy%zy>73hCebY*6j+eVdfu$o7>!hBuWZi*Q>|IADWfUmAvYq-WuCHWOV+S=4;_Ot zdJX#4$=#7ARtnyM$Yo2(z30>>32qOj_QBJaG;EpY9`oeSR$tU^PiqQ7>(OUi%q`n> z$CiKd@zWR9KXA6moW87E0=L%@%H!m>eVGo^vzNg#V0So-uBn?l?_IRBWUbwk!fl}} zV@kI2%0!CniA_2w4CZDj8Em4mt4j>5$^@fg8;T6%97cFDlxrxVOW_11s2B|3DX>^7 zdArFdQUPSZjp`||_pDxXb2G3}UJYDhf^=)F0)WkESrdVMxLGA<%2TTpiqb)30Hv;C znp+ZWP<4k(mxku7wa79#TN{1hhwDdDD8QO$| zZ{Wp)%g>*`y#Dgb-~I>x=y}BZ?>$*Ixskxt)#cpUFF$UG9g(l>!REHEuikm~N1ee@N#bdxn_YeVI~Z5>oka|^*D zCsBQa!GtaumOz0x01(Rps^%J;4WwD>CUkHuuF6JoM3IWBUJ99%;Vjd5hC9Y2Ey>*A z6MKksxXzig41qSOBVF9OjtxONhBlluDM?#P(3+#Tg49J=5$lxVY1`=K$}DShy=+;bHw(5fodePgpR7##k# z+z0V7L|$<6c)WPa@%*%`TUgPF;9p&z{^~3L#{G-G|E;eb++MBmSD%0Ri;q9LHf)*S zeEaQt)0@Bi#ZOf!F2f1yrIs>QPil`$$8Kua>!a7Ertx2|0~U8_{@4MBZT)VG#-5=* zx`pBnJ{VQ$9p!3pD{>SpylZmZJ$K@@*Kd^T!<#*R)rcZ@6Z`1h41y>vg@YeI$xoMD zC4Cs5zRzzoVQv@qaCP<*K+htQt)hB%ayI5_xZ>QEJ!K_VP;N<=HA7@~ft-|-g5uWJ z`C@{bDo6*Mr|I~3rU%g%Kp~@=A`3T*fFaD?WWys?_A&D!pyg|aSxI?^%B&~o zShR+)rV^FvBxCe2S$zRLMQ^;|B@cNje2;p^nhA4Ps!_7S6r4}X8ul{Q+s&0+V$8+^ zlOteeJvK4Q-kv1IiM~mYbxG>C+fB2!ME?js`H}wPhkWD1`01R}jc(tb-Z|K_v-i)} zzq>jd8rwNud=fwVB7Sy-C*S0Ehs6{)Z?~JBKaHON(>oX6{?+=k`C<_$`3=5G#Mbgj zeD_oP)OmB99zO4%7;&Q|^B3>VZ+~?D#gq0u@pNx`+?sD&fc>Yp|ML46zoUrR??+^F z(0rE&4(E%&ExJH)yVbL|>`9%4_A0ury}j_PYcF?AJ%_c#Xvp5$G|6TcH@%nN{#>7w z?<%6>0M7~CKn2)a+|Ex4Ky-s;YnQKHPM<&R&o*qgwoVrYSVPlDKr%DFTwlE0{>_W! z`j^{JecsODTaRnpmd0o8F%b<7R5CIEqIo6JqR|3rq*;rM>Q&d&)oIn4xyR$CRp4Q| z=&5ruEX>T=0yN{%i9|X!;KHYi%}=^L2FgAk*sSXahD|f_K;6bVn?iKZ#Z7T$XKKr6 ziRZY9^HwG=kK=4^Xlsu(5D9PXy?5W7=V^J7L*`uXY z`14W}iB?9#*SFO^{l0S^4W(%AN0y;?F=>-v+%fNzQu54{LWoUqYj`&CT7J{fNdgVI zWNuv{;EX&mR$`03B`(wsbkYrMoCr1g&f!jp@NuG7s)$A$t$CvQP~*z9eW^C1-!14> zQ6HKYDkb?TZ)7g`y0EVQEm$F>MJ3TlH#F*YgRqrLOBC2&+%cLSm<iG^^{&m0J-Hc4To_RRxDo5+i*rPk? zv|_}Em1VTXdiyIxN$$%DXc-kXwTH9-nS12WFwvHCO*t#X$uy&=I>qSnP@*9c2bYTrU?>JWG8lmx$%a8OxYz~B90^}LWAjcJSV@j`bwvbr zTzuo6mtEM)OoFpx%aPNkeIfgGC=?@PC0w^1#j86>Q&vSvtHWMdAz?>Yi*Pe!Op}*D(#zfh4jG`gGCehdG;bD>`|No*!wwCgoKC{s>XQ`UM4<~aBDSzY z+sLzJ51AC7nC4xW;QpQ+B7xy zTCEHQ{fjwM8}%O$=r5LtFcR~QvGy&zCLf)o3`AdLatMZv^)QRmDEc@$|~$} z-w?)R!HQBAAX{CYnchnOC1@=lrFN%qExGOk&1(oJ;Hk*&Q2OM`G&(^rrqTGPfl!(` zA+N?ig~-G1sU6NwVMO*3Hd(L5FAH*sNJEyC&0xB$$}AWWpIT7)CXB!I|l zL}o4yg)-$tbM>^?YF>zD1jMP5eWA=Wu8A5ZPs-Wx@=QUKF$H&aX|~ZNcW_Iz8kT`3 zwgSUNO17^E%r2B0EIX|=j$N&Kqd5w>ov)XgTaz?qt=DT;(f9yjBhx_h&H5&~b-!rG z$@)sdBH^09_2xHTUgWPn`0&B~_UNq#|N8&>x8HsH@y&U?f1IQ|&h5d~@slsE|Ll+d z-6Jm3lSkY2sU6O1E;$Q4?0R28u*2c__PZHj?lhNA5zTsMKgacx)A{hTzx}yP_h!BN z{FAT0`^I@q8q6$(i{r&|dwza>^R;*1`QFzbeel6g^0)q=hsf;Dzq)?*^6K$BmhJxJ zVQ!gJrnL37lq|-iT*_uxf>#8XyTO7GoM^2$be5?|FtrIO%dOyBSvetHTfz;aP2+?IH%dw;jZsthT5qNZ z4oQC>^!~O1T!abAVS=##zAbECQWEt z#?CPq%u@k9(`1w9Oj|5nP;3F4h@N4t=qf@i1V_RwGjmJhFj6GK(^Vl9vdDDt<)(vw z$%{1|Z~$2GhziJ8Dq?l@cH{XN1_y zGb4i86T0y)9&mC_b6gP~N~RzBlT-UpBkP+2yXA}ds~7z`l?IuyZ#nx|CqlMtU0QCo ztqv-$)F0*j+c;x5?@Ya4p`Da8UD7q#%{ckcM_i43C>+AoS~h2PsQL6zvqhS2?k(T7E_Nr!NmVJYx8Hd5(dl_%g_mVLpHEY>C2hIBjb-!y<$vp6f9I2z%isIK z8^80r-}(=J?>FCk>wa@PpUTlfv!*$ z`4}sq$M_slaVP992jYn26ZRDQ-JxHf-f-^ePJo!hwKcSKgB8VHdj+7hJW#unL31eT zOa4|s`#U zf+H0d4W(Bb+XuBbA%@yZMq!dNLz64S*)4lc(;U4&G}rF;qc`=Gg9&6+sJVh$W~tup zMCbKp#9~;8P$jI>cHJMVyxnc9AgxYY!-|>N%`JQ0T^n_A3kCKfG6y!ap4h6{j9sYZ zISgU-BZm6C_PI?pzhKESZaQnRtDr0~rn9$eig4SfUXW->?gY7|6_p>Rb-BaupXLx$~6 zUnl9z$eWwfIpbAV{a6r@d@$j9*%Wa<^6Au;O>Mq#L&j!i%eqEp&sbqYssb2rWp?j! z{`izLJ*3unN`$cXAr06h0q4wN!qw^tHe@J5uTE~zhlGffCD7rn$ZEbb510;K0hgIn zT?UykV)(|~I~^hwD)$dy=n~i*NwlCcGtHqwnZM3kQ;k265+;F27vUWcG5|O#xWOua zB@@Vy1F@lWtPRltGOaebtR^rB3q&8QTkPjlrDgPrXo1_f<_6U|%RRo;06?tTqyt8s z0Fyv$ziK_(Lmqm-h{<4`othE=dRDq6Oj2T^VzZclo{^$O8r`g&`{27YH#cR-$?R;? zMlymx+MGgw6gooa$V8g0-9__O`ve0{TRRRm&(aEATr|wKtv#eeb0Fr4q(|1MGBXuK zNb`ZGtrQ`c%3v>$^b|sq6jdj8tO5-l(a2kpgu{Z_IFgt}tkO(V=Fu#rbLk!34jCzI znU{1$0Gfe&9Pn6loR#;$oXjYjZCQC?SX1-N1_K$8l{lCN@P5jL89IxFHM|(SLS}-Q ztJx%!I+1cB59CCF>SClS*r8`gLN7iGZKS3!C9lH6%*N5U1~!Rc3X$2PQ*d`T50JLG z8Nu$HJAqs}viJEgoqLboub*Cj{C6L{|DE^d%gg6aUtT@By1hLenpGajciwya)%CJo zKYjMAzqQ}_t*<|M`#pct+U;h|*a|36${IqP=Ysml8%TQiC6RBWJ^JcbAN|$8`SAYN zzWe4kzwz~NzO#yoblMhiUSjr^eR=Wp`MXcv{QLj#_dodG|D|5M%qQEQ(vJRGsu1oMCcDc4SZ8Cg)}?%*>2wL+>~$Nms@IQGuoo2yn0s zB~J+kpg;y%HK@f-^-P)>%^*eu+miWfa-51%6ND}{QwnTwV{QghhfS6#bXgU=07`?g zH=qP@0~nPAJ%m%$klpN!(nEKvel;`7`f7~bN!>A|LVi1FD9(V z><`x$_iXw6vrp&N4#&9!t#!fk^*Q>kMj6BDyHW8du}9}A_ruSfqfdA9&Js-F4lFea z^SqN_l@#bsn8mwV>-CG^uf2%+Er(s@-*fumj_-k8LRCe2FJGR<7?x^; z-pAVlD^o?SPb*~scel=Nof(p)8+-8bh!?kN<{gm4) zX#Om$XJ{>3W<>y7TyHN!*WbG0FM0)sD_GiO8R?t@%alL(@a9*l&@}SZ`bt|{V(k$L zJbQUFw`1mZpZ7n_zkaz~yTjbp><(PVi;RtC8eYm!> z$cDq;Z2xbULXnw7Z0u&!m-;*5ysiDsd;jQ@?a#hCf04=0P9J^a!FO(#j~~oW+~-w` z^I)cAuE+)<^)hdspPu#0_37#9H!r?r`$8-!OQuOgZV5OHrNHHW{f$dI%cU{l(o?q? zJ>#<7KVf@IhcE$pGvA)ffX?Z9jcr(y3~P3i-{d)iZVsq#Tc#FmZg#XOlg-+e@D?MK z*tlrBHyyXg*0ZN5Ghimed~RA3b882-Ugoc;?gBwgY)#hSonhE6aWGD1oJ9A@k&o@_ z66B#HClZ%wiN2vbdB6lS#d^;#E{zBCD=k9fhMu;Bf3DNzd`IcCd zxWGdwot&It1FiJ&v|7^d3|p`J>U-2fO+zj$*uRL z=a$e(u_;!?8OpNwcwqpFY;H$KnqANy+r3#fi4_IoVnb`zNEm#?Ut4LGfdRg~TQKYN zR;@Khc{7I8YBb-VlnORj1fkrPSC1att1jQ|+5Yq2f8&4pr*Gwr1Ni5Edj3ED+`sdK zuYd2`55M#McYg4Lw~d}amjLyx3nFXtbq@HalT29*;Z3o0DiN0oOBu)wQ{Z08yAa_* z^fi~&28)vt}ve){{~qBVvR=l*FvyB*<;ab-RsVJ52NB z$ZUl}C_}x5DXKLCu$!~IT~0Q1w`Q54((PIuNw`x2hVnkgqE8Mkl6=@Y?i7~$*Q4q{ zjXh}>k6<4})kSD~Q*7wa>L<&_mAj9%P)=s5|1Y5&ZNB$M>bu$1Hef0s-@!i>Z(g6;&bh9(6ZR(>dNXK{D#slTKv4{s(cQZ9&e1R=RbkZvsBaiu zW3=YB6J~@v#*lhe2W_uqXh6x8p`>JuR34qFbf?vdUREn8-~?>4x=&XFdrF+C2KnSs z$+s9z-z^ouIm_0JM3(A8y(aLf%=(ZrL@V#-D6q=l(Ic^US9c8|ieOnOlHAt^8glP9 z84DLy=4leus2VCZ8$09O@@eDaseZAUGI!yrs&R=@@hU5KGo#BYD&UTF8X&Av&j6^y zn+m zo~^-=JtH*u{ll!Cfgy6O!LkjGH};*_INBtmX*I^_eYB!A0p>_4fs`iTi)f!ezp2ax zGZwr*VMju+7cZ`Ffe$YO8mH!) zl380vnPDt5X168e)a27yx%R=J4}+(Q(Q|2vLFL!J_R?sFVtozqNhX9A88A0yP>elv zVq8Fsnz~nJ?C8(GmQ`aFjNYkCPw|%MY!ygCDL9 z$omOIIxHL=S-rCdiZpA=ht<-WZH|1^(VY}}GLdt&F_<#nx+F#5K=qzVII*hGWlY&* z)|>z~(7_8Z?@lX#8<8GEtHmu4swh%rGKAdcS}6(+WC;Rj6f_lR-;ILPGSrQeam`N9 z>r`A*D$tu541hZ(cNvTR**9(B0K%M`tw?15?Bg##{M9G_(SP#~;O+YP3uS+KYFC#! z986lTE)N%T`|Rq;ix2+z;pwA$Kl-mvm-mj_G_o7U*eVerLbV-m?8*sW&TkO7`SRJn z`lFxTv^U;(_uaU;xq9^IvuEpr`%{n19xq>Azw^dbp4YEF`Qr5c`&Vzj`_6-VxP8v{ z&6`(WwAn7-`o{IM8&Q!<+ObkMYYhi$o|MWQbH5tGX33r=LWjA&0XeZJSQkcIfr{gZ zN$SEhK^8|b9f{1+`O|t`oW+w!Q^Juh&`ZQzf?vXvNi?<&BTd{~nFDRvf>ZggGlNt~ zZVQVdxsZ_+(>1fQ9<<30mJ-ZK@H#d5a8%7nn>?u|7jgp=loYAC*#zZam)P~XK@6ff zy%`e|?ov58vb#u16WM5cNh>df%MM5=?Q`|x6EY$8N##fiBZ_8m-?w+PU1{C2-*!Cf zYRAX#KE7D4mtVd5{6U`Io^LOJ`55T3%Zn=EMstZ{gf6}QoulNu3qsicaJNHZpCS+T z$|wTIo0AfXUx$#E47+X`a?cSN^P<=A=sWk|VEn$G_f~B@GL>@w6oA*z^y)tCCWbiK z^%iF@q(^p5k{PS1;;*j&{w2*ea zzWlS7e**Py`VYUx?_!u+L3$viH0jj0b?r~LS4#iImp^;|&F`C+S$K%`{(Ae13mxC{ zAE*vbwGr7q)gKBsG@mZ)aPARG0XMq+Ui?r@qC(?VyEmQM7q`4#`v6+^h>mVbNnzTM zN3=aOnT|#xkS^;Pjh4ctx5*rJJ_Wj=OM-(L)*M(vGui5-CXgs3rz0FqsdL}RAzR9* zu~ZV8;Ip-dY&6~HMR-1$uG+SK(65trNq@@^fUeCRIHTuh{d%Q+k>@Yh7iVTx7e~Hi z7ZvD)mYz{2)skFLAt02pa?l^VJ$Ad&{iK7|nzd%{y!Gff&lDnJ>%9m2D#M-?1xw{} z>P=j?j_9y1i?TJG@Ky8qzz1des4Zo0N9ByxWTKq6?q$0(TqMADr)HlT0u>?*) zSB6=tCFRy;q?VOhYk=CNO~giZAwZkV+-nUqmVulXZjX6!Dfh8VR>X%Nd7LqqfpbW? ztKY=(#6X$MO)N9}FplgR*4%5(F>-*S#|HKFTyitJx_5cIK098_&z`;d;d_Vw@t@rP z%RhPf+rRsDlE3+%{^9TalgD$j`B209ok9`=z-8p&FlER`YO3K*fUn&51#M7vZft>j zi5YN=owUG*N!WDs3p=#d?&K#C5fNJ`BL$S?e`;JT7X^DbJ9ILfOr4RY*psq~cBKfM z*MMv~w&UzHShHOe)g=QhrP<0}vnLH_Z#BTAS@!h8TmXs!D2@}L_HNM*cPZwu1V-+i zr!orfs$Sx5AKOWbd+=Em2eu#FNoHy?8%L5|_>-yXmnH6?Fx3Gk_J&Srqss5oSua2$ z8ep(q>~N@fL$M>Z%(zwS6=fo@!8IJFHyH}UJOX2CrygUqVO^tAB3}tF4SJpFkxd+s?K?`4;3Ss5N!?3 z?pgG5-~5yhP)A9v>Ie>uXxUQ}97@l-0#JAMP$AL5 zlHKRHUTpuJfnqor$SAuUnT^#y5Z$CO=V9_n@nbdTS#HZQgf5OmW(Mh`dH_YWVEK<< z-rW4f^)=wlXoMLjGZUMYe}N4U6d1mn>KPHB6-2a=3QkF(B1cUIF>2*3_FURzPSuUv zqtqub(%nkaC}L_wuO5?jH{=$p(8Wwifej^-Gc$L@vW1i->dNuqhP2A>DOVLu*`Fy_ z^r54zb|ENkIl}!2@@Slrhsg|nyqJu573v|0%N9L(-YRAX$NBL1z9pTxU0uva^H9?K z_Po3(CzN?enQ`uddBSd2<%D^*b0|A*GCg&ZfrP}POX8a9qD62V9Eg2-B=NfEY>dcL ztRXOah)L_&B^om6&r=UA=VmfWOi@A0jYq0Gpfu7`cx=SpjMj>f=yut zMViq|GcbHuxw$iI!PCaWl&`(!O# z+F)~!3YMLmt#NAE9NtNzmhRq^8T2hmj;u_q=g=xSw&fgPx*;;9bx&Encl4vtNh`jS z6H1sh0#pNA>AGX17zzOFnTbrq&_GZdR-{pt$Z#?H(fke5G%LXvj%Qq_Vu{&|1xc;K zr)leX?pS(EQ@eyNh;@tREfqrVtKB3_T(|JHk2vWKIL1ai;Gf!!~2cXIA z5_YSYSf)BGP)f5q6L$b)CsKLv0-&fhFT?NFCE@_cwI!J~H61bz5#2$sP<(^7EUpQN zDY03rD#CT3nT(=ZqxtHMpr;@^nKKa?X7<3^vki0T=~plMnpcmmZcp2`teLq*ZqaR< zzIw4dd2{-~x8HdB{Pc@AzVrWG$8Y?vfAquu_V49`x4jpy9fTC2J^ux6tO~S6?5zI^f4}IQ z`d5GJzxUgrp3!gCe!6~nzJ3qW8#& zB2+CjI+aC$Ro2GCj5M$NiAJ>MD^jQ#CxhCAR)H$CUhAVO7H8Bmqr(C<(xKmYu)a0N z8?>eScALw(1WsSGmHmtLGaQs(w_a~&3}n1Uba>t998Gu#xnpAQs^?L<`2R6Diu*Z&>lQS9c4;Zm!4|FC9=uU&*gNU?toRmJEletwDj zm%2adRoSa}dCluL@lGHDny8-rMmJaXaOJwOl5hp0aay!A%&+>=@pmtIa4jGCTa9=JuPt3xzpZls062~e{Gi0s)TjDDOE2u7rMi`#;bX5fMd9KzSj z?6Ce4cw|pr#f#Lr$3!IA%%TS>eaVtf&xh-bnYggDW^1q0QjKP-W*5z-W(t*@K+Hn^ zmnrGcPq#>NS`W9DbMIY1R*bTuh8{gau;3zUgA_5(G@0Y*>hB%rCzqEGj!!oRc+>Hz7+|zeHZNDIx;#ReXHjUNR}#OM5nFg4wL)df5->q+OUGMdtOk zv{wCio!9Fn@Ss_Xo(dvOWvr-#1N%QdAdCEvg-_5 zDjQnSOkQozF7*)I-+FkI@@anfN}nC`;v(NX<*D+~4qJQw-R~C(wnCCj+z_9{Czs3R zB_CfMuR7M5mo%DLN%iSeDgX&@+t*H5Zn1XW+;8^{jh^CiIoXT&>Q#KT`nkz~CB)lY zFVQyB5t`6$m+N+zQ8TFog$-ey(feXW38^qUEE#lXuY!clJ%OnGA2iQQklF%*PYN0i zHXWvETbF02lUX|$4`wTH32V-GXb0eFD$WbGOS2){NeJbdpvcp1n=3WNvbhvsvW`PKC}gQJ^(*r;mgO+MR||Nn{UoC_!(n zRWm@{h$H~ts3j%nY+N&LGhRVGnQ%8Y)YpylN@Zkb`E8S4== zd<7FU%?C&mdHmYf+He2pyZ`im_yZQw3i$2+u%>wVHC6psfP}&Fv;r2>%qtfS)u<6V zN#@3K7}8TF+J?5m(2mKLy+G8|5Xl6~kHu1YScEW;QDw`pc>*TCQ{UDxn9DQkCXUv~(+x;G7KJGcGIu7=*|p<#qg8)!DzHfXxjpaDsgaD!y!bpwpdA&8J@ zgTho}_2PNmu@LK?EnN-v?n2e0d#-}+=2w!zRWd!M4?kGhLu|Xs7er#7jq4Hpc?0}7TUm)bUA(gHXc4v18 zfD)Ib+y^$SPCQQQL<3yqq(Q3%{*G3;>#Bef6O|p(b~tD`P6Wv4yFf+;6V#JH_T)xa zM4K(U3f*s1D!QX39h!kHqkN?u>OEmRl9_7K224~}(8e8@DIZEYph#qi z(uG39v&0gMmdMUsBUy2b1{3n(e1cH8XzjwisLpqJjLfVos79k=RB`)Y1OjuYGdZFK zuy@z)?t>k{zyWVEBMOi~4aFp|D>0CRRlO@)faW#$qlC%LsM)Q0=6iW5vZ~*qw9maA zCu1gz44|Uv6Kt^Iw4q4$P|qmiRgE!f)+#fgq6yTyre@Jqc_A=vo5lbkb5k`((93s8 z6s4?^c#BYwVoe!a&p-lfAeNO0qe5~wDKgR7sHkO73Bjc_kaoQj{higVbFy5fRthUP$MONN*V8V{zY=YFqwg0G&R zL)k?omdvO`KW-^iG{MF+QXv1A=nPtjvQiCo{DP{)T zS^`$UU@QBz8B*pMGB=1J!@|U5SdtRdEd+-Wc8Tu5D!5xj9;`aT9>@iRJdqQtNij+{ z5Z0I>&rIhy4oYZ~^)UB38YtB!&=)>isOa-Ibl$m+m*#)djU|}x4 z;S2&xkL*;J8_;A;tzkYk0*@UOE&Cei$~Ax#Hf5@>$&MA#Q)%o=r!mVMl>qVLX1TT& zxncKk-@lxod^BkWAZ#iTnY~OEz{?fdW5AWrrX$qpL3#nX%?VA z9^JR1%%$iqVzP=#X>c!mfSQ3`GC@NjW<9s;3I@zA*XRd+!gW48I={I2@i*VSdi3BI zA3V>9=)Lz`wzxbVjCk>CdGh%3hws1j`S-u|v;XHW{@JUq{p0`nkAM81{rKwr_idiW zpnICwb`JDVvLs=B**^Z$zxwn4^Z)*vFZ$2!zyGZteg8lCFaGfA$&+7xwnb*{W3%(J zX6EsD{P1VLT5nH%iw6%L-hXhrygI%3;@QEIar*rBrf;_Zy668-)tmInwq@6OW6Zhs zjyUJsDqp@VnVC$I$rPEaBwMm6KpjJ{2}lM6!w~G2;hukvTkhC^TL#>5A*f*(kOf-} zRTSi;Kru;?NhY&=^{q}7vDcb&xG~p`n|_Ulhj(#q#EIB@ueHV;;~Q4%dd3I@4Uq}E z%G`X}EC6k3r*q_z3@(OqSJ4b%Cg@BwSI^8eSSAE-0eFSSA(*>422IhkI~*`@Z4g=w z&)IWqWT-ku*vOF+br4j*nj?`t@&?UX#cjA!Cs7*!G${?|n!ODLR3@y_iKZx76VO1H zdZ_LxRVG3LaSl1MN0bRf6V)Pj(~J;jX`p6ca6nm;-umJIjHrwViHB{VDwWA*Y>9=o z)vka67OJLB-nG^{K|>hq1@-xM`Ynvtx369&)$g~gN6csvU^g}X*auuSCg$GaTY7)( zA@{BB+#6rcKlr&$y|NAHGT@r_&vIv93bqSHU>DdxZDFVJbw4h=^E_R~W}w8OHPqbc z2p|=kGFeW1qCj}>wln)*QwObAc$g9H@zJC1Th|{%w>3eslbNq#L0+Sh0njA6{#_p6$%^H9n z!`LQTcuJ7k0_zBk1YCkcgYPEyfZi%rF5ZU11H))yDCNdh?nu^@BMZZ9=t@+(&pGZ4 z_R+9@_x&sX;_bTPZaCJ|HajN3%v^kdSsw$`ReOQ)dK*1Q6BX*W<0UgGOFTxJmTY*& zd`d<+-3B;MOrC@VK=6K~Aww&HE*)7VpqXT5045u>Q)pPUz?nvOrJ$r^`P4sn94FAu z@$fbL#+&w`P9KtNT>k2_zwu|cf4sW=dH?RW_}kKEWY^pK?d~n!WPEsgejLLHJ)rl| ztxZd34t#2#{A~RA?c3Yie*cDdU&*gLU!HxAUoho0uWJ?>IR?fU+y;4XzhS@P(z{%8<(Y#ZfJb@`qtpd-H>rcs4yY3CJ0YdykjE zC~6J_R0box`P5tH=6?73%trYcn<$qWeb|wN9NEB)f@Z8+FifYh0e}u zQcbhj>jxAGNT3p>-5@mQY+y|>;8ny)ljLUgc~<^xBGPoRgJDJo2uWKcXbs|G$OLJ~ z$a$VzQ$yL6%^R&1zoZ!Xnc4!6Jsv{<-ONoRA!C5*qu2SpNGYwzCUOgt2ajuAs-p`7?mO1+qPFwIz*vmr2JBGqR7M^;X42kKAkYwetONI3!! zX2IW#D*FV1VD4Ru&s||dh-edeg*MBAPJqAW)W#_DVdqFyoxnAFk6`N z5SU4grzl@u)FYe#5urTMP6lxeRRs!Nlh;@O5D9ApY?&Bcu5gjShBbQ_t_WMfB;`lyQ? z(gc8MwjOM8bYTl{Z6cQgmjX!6rrOLduPC-~MX;LT=Q;rZ=UqmPF*Z>ga})qcHuK8@ zFiN$TL9zhNRZzcLViv-LsMsnpz|ARrDBkOl#KcbB5J;1Bf^cU55g37gFk&?6j@t zIBz86cH=lT3n3$<7nB`r0uMlDP>`shH9 zaWFSnS5?^vv;*Tlsfy&XT#7q==VE=H56_v5o{uX6G3~3SIk5qFRyq-eKFWR)5Kbdg z!@W5JnE`CmWJ-=`$;cig*#TslYUoE@xjm-2^O`)%Q_LDdrr>Y{Gt$&D0mYWjpWpmf zfAwqs(;xis<>R>l*UNgw_}qH)@%HLhj`4VVfA^)QKm7h*{@{mik#RnchY=5_{M<8i z;U_66He)fZZ@~{8+4}bEReg5IwUw(Fc`tSX%zxMuDzxetAAAJ1w{TIhArnUd+vu8s% z91jm~U){cbYs-34+#J>){^_6R{ZGIA)h`91^L-zAxVp~X(+x2Qa|1LrUI7J_My?Qrm2y(IzBDG)C^9CW=+%jTuqjH%BLKSPb zVuLa>4YJ4MFHg{YREP^~bstXUh$#W8!Ensi1%u$WXM_TyXb>+>qC;N~R`#rloJ_N30`Nxr>ni0*pp$ zq^wiclcCIr#wAK#&q>YhN#=QJe6d`As2{z5_{MiX`GYeTk4L&p7TCyEzjO@AGYW8L z0Mg)>z zhkW48Vuwv{09>yx4!+#RYs9ix_BbO=(9z5V171Bo9^Hd9XVGSJb|V-PNd~%2>)pKU zpC6v3#eHUEX7GqM!Z5$r@{pf?l!4Gfa zjnfXqmg9`=X*}x#95}~lOKiITX}r1h+b_oZmWo6|x4IpOw|IMpyA%4W_Q?rv#dtY3 zDOQ;b5n6y6y@#~Ww#1YS%>x`?UGd_sz6O0X$w$sreUV95$-<)5@ z;-^g~%Y*rHSm<1=z1{9hZE14BCM8iCTUh7`olOpVVt#X2S8q#e%U(uXhJuhz7+qo7 z8mudtQ_UhU#`xa%fAUwp_0_BOs-Uzr{GQRKNExg(OP^2$TgfvZv%|F?*0xT8eg;Y; zAd?xVh_iqZAq5R%yAPd#TjV)%Q}zlRjxp{|cRz~TQ*P$InqASFng>%k6mKowWM`|A zZgU#xtednd{Rk<}qc^dcKlj74cJ<6}uFS96)s0=dSab0iwJ~Ir4;-=RtU~h@3Pd+sgf@yDveqSw`*qL}j9TlpzpwG?sNnMw(R4D@k-@Ad5SWOKqoq z&I~eBqI(7J#Qg3#s0-X^SH=Vg4l2{!CLBMelQ>Z&*3;rl+j9oCH|`m`BY zzQU6 zw{#c-DvS{XGU3HWmI%*EohhkHnz=RvJMRIB{f_`OURw5qy&vQP&x7(!%3r7nihTmchMPESFN zR=r5mJSUhTGmp*6-dfMnsLQ;erM1QBa9 zRSkKT#Ya{F5rZ;DNw%T0z{DnGj3CYf8RI}dDHrHyh$)o_14FQLCbnUjrY?ItW3D=+ zLT2W))iI1!l)j1Sn%|==2OSEPTTEMdcjYQYnsnMiIJ`D4zULyY9fdx5jQHGw1kaMC z%wm8ml4cR=Ql<_IQBk)!STUFhnWQ_2iH#>MLYyI056Y(=E?4DN_TvTSktk9UBCBz# zmXCBO%*KEzqukq5-6s%4cz7zIS)nLnGDEbapaD@}-!@WXxYctJMF<+ifGv`UUMh0k zIwXJ|z4X-~EvQLX!M4*Ff!W+%Go7NJw^q3$2^a&CoxoR-19;MS&1B+{h7g?%xON>5 zY|Y;EgZz0_$Q%UoTyjkq9EJsg+T@{BiL@H8))(7q) z$FQzYYENp{p*YMBXQVKQ+e=DOVXj7XO>L2ouM~5Lb$ZCU)j=z+D8Ao>0@M-Q_ws#27hbGG1APaG*g@ z_J8}#x3Kq~zBs7$p0}?~FMsmW?cw2c8XNM%&+fkV z@BiV?{>E>9<+r}`jqzXpC;#w&{0H$1-}$5Un;-tcpWc7=e|-ISf8+gM|MuZ#xy(BN zY!Bzp{@suM>>vHJKm51ffBpWieEIMFo$64%S_!ocuJ8wVJ)r;p`jvs#*zxtbByife)#}C)nR~iD%MA|B4 zWOE>?l&tA!$Y!SvqH)V$QXH9XmZ7qurZl=G<;($Fo3RO|v?yu1Wdh9XLyKEv<{9Rh zDZ0XpryU&HKv^Ll3Hp|V(gOfb>^q%<5Kll1%-+37Z_CJmeN@9axy%8DnT5b;W)G1L z5?0d>^&w!4QJZz6WyVrBjAV$qTWCck1C&ilkp;F-Sw$wms$Pi@JTz?FoC1t)`~dHH<6G)`b;2;I8>x=EA@<1x&k?E{><4 zD-gOQ^tAtI?bGH?n|RkcqrFpjZvB*%j;xJO?acmv@ThkZ(mPFRrwkD0!7J%7Viji~ zko7@=;L#jCPOl!H{`BMiaKHWFW8Pfx8(%no{>7D+L1M*rF}8y%UEdf{%tAL&UWaz)&`0q!dXe5*;zf z20E}(p^AKDWN+?c%5h$i7vcxb=w3g-91tw zv5#}*Fdj2Al}aCLTpJ&vexG?BQOHQMrf|n;%X21r-^c|5kzIF3+&~@d;V`As@7B+< z59j*%o3CVh#nbx2Bd)Gq-r0yD!CV$dV6}FZNG#Thu9|6KX{^K9&!Nvsf;2>oRJz(Z zwnlz{9~{tXsT$G$@YV0rIXDQr^-s1K@Aa#X@p44O$boa#p~Ezk-+l83-+20^Jmoph zmiC#y{OIAMO-icA_VV#fdc4iYzZ^dei;fYQ16YwkJofRb|J&y0%x&p0m4dTteG z$;48;V^465(V0w$QpQ71cP~1xmxaYy0BSQg)=`lZTxf=4W2Q;#W4;ZcagE-G#d}M8 zXzL)hJU={cch=GPL`t@fQv$0b1%-xbC9e!oYfegPo*~Cg- zUmYJGw@+U^{=%28QW~Q#zLu5}5dh5H=;p{_=GL5xeV)MLPOGhE&QonY14057cghWV zfNn81aERrguJKz!5z%AoTgI@_(r((}#u}w142e*l5g&0I1lOg61t;eK6PS74c?!pS z%gqZvK3lF1@CD0i$E$W&ZAn>~cHJ#XDpQPp^0LTCgqjzLfDyF`a+9M>ChxXvWnV5F zxd;?rH!cn;R#COjGj@fQsuspf087W8l}AAFxQI*&S<&bKAxoHW5Ei8coJP=T2KX4& zZH19j3ruM{C(T>K?BLteJ%OAehBQ(c5Y(C-RxazhdUGZ+rYSidsW*rd(5E4GHzJ`@ z?8f=q!ARe$95gLNoOW{5UF8&DUU_PBTHBwN7^-vtyri`1_v3zGzbtW={U|P0;ddVQ z1YPAVC>Ke|Q2U^@wyLR79Etk)i^IwNucCG%3wzZ06qTO@>2n$18*HT_knK8UZ51S& zA<$hr+c}U^G{vR-M~0FP_I>m24xI0}WP%y{s@JV~W!X&X)pI9dGoy-sN(EcqnZ{5v z78HDJYEg(x-)r4#&yw2x+he-Y0L=ti?Qg0b@6y*hzme*Ku9IoK>x;5fHkvstoTXTr z!7t2O%V|Tb^y+Q}lBOPxV&1ojdD|D)lJ;tZnS*2>31A2sHOA9Ox>qS7W_zq zlnMcCfZTA`$IFN9Ve}vVKiCu;1Qc&esy64Hc)Hb&%3a$(X% zq!fn)P`q>r`u4Bi}nV z@0nh~`)QD4DUkJQsm$HPM@}VTPHp6Y^5C25Kv&`?68!lG^&pqsk~>hwH8YG_Z-sj7 zNPKRp&V9cSk zinkcV3^mszw$BAZF+?&((gbCOTJnWy3p4U`(%a@czSo-Dl6tWe2S7(~453+sHKrlQ zAQNxzvjZ>Iyk0Z{p9CHyMAo3{{-HlT`lpZMbh)tsQzq!pTnYB^R1Gjl42g)`Po29% z7qKf)^ADiQ$SesY0;~~89kZe8FsZRwjG%G$v81JpF+!>*?4%zYjn{5ZuCGtqKzg%y z7#XMcTWn+S&m%Kou$NpxQQ-S-^_{Gm(G9wB?$! z3K9h^ZasA*0FKlNu%R~;0u8yu*ua|=eKn_#k!1MrkeWCG12WSU@aBHp-`y|HvlPkq zz>~%UT&r)(^3`WAbUb|iz0ZC2@xMGhJU%=;tSdhH^iIF=)x+9;;mc3{_|IPc;h)(z zzxMg>{QJMPQ2+X${$YFmC`K(dTfJU24E%^5|?W=Wten*_LWxJ>;DMtL_wyI!?Nulc|Bdg0>(vs8MQ& zK$hd2Gc{LjSq^oUeIAS3*y{3`4nbYw1a=`TBA5=!339|Fdb+V?)!UYF-a@(UQ_0#1 zACy2@; zHljPcc{?t9Pyh>dYw0da?eFXI7`V8jv~!>;4Uqee?Xr>I9nKf-`4oWblg)|2;EZ9; zxxDQ!z60HHiA&i2H=)J`7rm-{R;%m=JY;$;zPX2irQBz8$`MX|;|qsxe(9?O@3-w= zeDCh+$@r6>J^b=7EbqTJw!C#bX?FN@`|QmAT+iROmoM|pH~6)N1F9S+J@QQWDetfC zxbo_(lcJu1S%^#_jTV^(Kip8E)_iOc86$=q$Ymqe2GHDAi&NEDxO)#7Y`_*Iq7bB6 zCy|ic3Tf{Y7k4*hpK500#AjvdNYL$|wh58Z3L;XXiz8r%3f*PMkeN+-ljm#mijoBS zIpF4|EqJWpLWh*LjVNM^B?>uh#zsGnoH+(^Ztw&+v%<;EEp{(NmB`rK#Ea;nF%UD- zVJR$R>t)7Kn{HVwRBHux4>nSkjeT+-|Q2C&-4h2nO+x&y`-q$T<(ou-to z9Iv-mZg(G?)oIM$yg@QIcVuQ-e73!M`|_=sEyQ{2mE^3`;D$Wm#KkiFacm;3g3Q39 zW-Z*hAp$A(jH||O!-NiI#)EN*@akVmSo0hT=3#AgM8a$FtvpiQl7_{O4g+H#mA051 zEpY$paX6QQ{CpZqd-7tjbNYceD;|2bwTW$TGbbYNcseduFr3xNHnIyA%F{S0M->Jo zXRDUM2rOtC8$xd$A0l<$;!$@kAhFRFtAaQ-YQyXRTFB44KjUh|7%{2`tTh)wHMf;* z;o-<;;6dKlj&u3S-;2eun&omKM`q!~T-khATNaHsDA`T&@)`nLpF%VbDh6<;u;p&GU^ z8+rj|G|>9M$ij>hg!w%06EM$$Ta~*kr&dTMszA$)&B!Yn;f0_@ay(Ke<}LAn?7ND- zqii%!CWOqI6^m?Nsd5a=#*C>kP??g^CBKy8k=EM5tbuF|lG#=XcCucFU`V?ec>l~W zBWB#s<~6+85$7|<9*|GNK5`edX49W`UixHBBcY$8fX^rF)Vd@mN-nYePi7zMoVT$0 zeKK>uUiJ`v<)&ETC6xuv*i&AdI#FP*{!_=q z>@IgzG1b03-1(Q!*+{DElZr=w!NQz=2>DY}WCM zy{DJinm9`#IN?$Pk3B~!Q%jo_IU|%AG$wd=juC0b#pf|->aIHjWg_H>$V`e^y%?p_ zT1G&aNR;{;0)4d@AS)@{mR4pD=;BYAj z+!+wW&f}gfjY(3D4AFg82eEreKvw(#DlilFNXcZf11t<+m8@n)WV5>aED9wP6^KX@ zF`$&2ZRg&M)$Y)zm4U9UHBV0HkBnACE%VG6vIdxY?qpW(k;ae-YOt>!^P6kDx6r&E zn%qCKiXhkRIV-fQm-V!5AH96|^v&bPZy)~XXLomZ=ljRcw*Jd>nJTU|?Y|TjqG_6F zL_9YYE>#ZWpt9Dlh1PSxlB1%iwkvlv4XA<~$}|DGz(})6HbavFGo4y*I{?sDXh{a*3H_vANMM zCDue{(hQa`Dif3XPr@n~PZp>k(HzZbW?Wj`Gmir*nXnj1E9Fd;3_rmaH{{ znuS5n8@0N79*t{i03GZC&5vtZvS)<21)TiolmS|*^4^)1_${GYGhJMtd(LNKZ3XIi zFl!Vpr_*;MhZ-d8OXa@AVlL2g0jj|73=acYWrzYNLrNs81jBdY`L@MtZS~)e!yJ@V z@h^JRNmT{9CwTw{3^|L{_5-u_%9xxTCnfmV<=xkBXOJqLeI%*qs9xa-2580dYgJ2v z#dzN0j$93qsO)e(X$R2_M!np?p2{%=R)iU#FtGWOij!frJo>?nUugW? zpZ(o8Tl-)B+yCL0{`&8H^_Rc?;}2hd?@xY=b$R;qID|3s&~!eX&JXuv^tF*AZeP8O z$eSlmKlzjIfw#Z$TfhCe&%gNTpMQjCZ@2N{W?kC6*vjt_RUDTB*?T>OFh;q*l@sA6 z0FXd$zriBXXlAKoI18Ti_Qb{{Sa38m$c)A=!V;-k25M6ona9L1BqCT;k&44tn!Coh z%vv}&Q|7r#P)-u;nOtfjrKp&(U{;dBBxP1jM;S%{xfgqSZZ#q>3hr5*dq5-0E8PrN zt&IqCPo*Gwb7MGHa1iENgp~ktlNO%6<8#_9w`Yr9=>D49nnA)9t@iCcyOyvJXdrNK z-=!v8hFJUN3b^b6=6AGjFE091K~`t6j*#5<0J}1kyC!wX>s>O{c?n;e;lg~Hdva-) zifgYsUrZPJ(K|8+5`Zt#GukyP4^fYlxi^f+IbNxgm&{vR%#37cJYSB#_a8hTTg3MA z&70E)p9H@Caju{IYJ9ah&fsVEQDkn}U-{dsZM|FXJ(p~PLjX6NCkJEi1TD{HWIYCr+DqQqz*MBLm}LeSvgV2o zxH|$sXpGFoGbD$HlxRzl1|a5^=H!41|C-5a*S$tNzzh)-5eq#s$>xho>X8ev)w--9 zF(c-Ik7VM|T1L2`2&L0YXhVy+nwP=wEV3VH23Y+wjj9jn|8?}yXu{pub!=vag1`^&(=Me{EDpNVe zFn4z#EfEP@s&$v15j3c$yk?PuooJ*i8Oo7R+ppO~Dxx<3i>cVba($~ zMx)tqYbIwX;T)MQ18&M7l4L*MXChT3GGE+HUgMys3e*wzr+}1Xj`ZYB`1|fpx!ibL z)^%ME?%Wh(^oSUREkfmIxsqqg=2+a0Tn<E?e5N9-VME?C((Tdajrl7h8iloDI7trdqG&{MU9p0#l+fIHnn>0IyRN zJB>}sMh9CO6PECiE6k8f77&LtqbX4vF)-u+Q%*DYCFO9D!J-Gc8R@lmW<)fmv>_f8_snyv*>`5_cGsDRL(*sz%?&Ka*3LC&qUQ{GmC4uUibeA| zi3#k}6(A!*DKT3ap&C(xtdd7^DggG5T?mqBEEst?`sGAOj_E3$UJ^3*9eKrqa<0Qu zZ?tK$s@@juiVR4&dqheo2W6(rIDI=rS*mt4PuW;(*CM8LC!*%bW#gg{qvj8F!HBR$ z(|`~)FiMJ5N_aW?*K9mMMx^a$hXd#2DvJt`vYO~Y>tZo-Bn$LA{n^!zU0a!%Q!783 zE}B+W9xzKp!u~m_%#U?F5890Ar}EP7o-8+3DRZS&oA%n5%lNK5u~qDn$&0Dyl7GY= z`~YJQQ0-UjY@eIqJ7WZ5`u(!G6;(aFocuHD(5e9$JGa#EnA%46Niw6PR@|i-s?``- zL;itTWlH3=7l94sy9#J3oVy<_BWCP(UUkJ9lgeYYn~aRJ#;$PX^m&@9FC}*18Hu{G z_N$TQ1}GfMM8HiNmm;T-SFSwY^Nnzyxz39fZ6+~A7?f#K%kVlr8piB_Mutk+Y7_x) zbQ)-0JuHRs^vRDcdfarV8zTm3Caq>8)Cf0?RCCPmsT(rQP=3*MS)nM+w;FI|8sRyx zw5j8IVpPkPmE+ik#?`_mXX)^&Y6 zpHr0Nuq%U7&qyc2l;<3a9jM2m^&3u!?Agh);!##W@CfD1Y?J^bWI=dK6|CcTvB_rt zUm~VX1dOb&TV>}`s*|azY^tUg80eWGz3xV5H@rtaX%Jgxa50VHTA%<-BNKh`7O|Cb zGX^Z_o^>`!$aC*iMO1}*b-fYgPNFccw>@qyNb97l@xVF|j-+GE>`Xm2)rH2=fa(_> z;Gy0IlmTbSPQ?+Fnty|?X|mjRHLK$kcWf?%2WqLocnlxD@ubSlz9*DFhPLxZzfAKvvd06Gk&2Z8sJak4S$|63j$^BQq z{Y(GmyZ?My*I)W8-~8DRe)j2ypML!}evN;Q&tBes;k{>9$M&W7k3ags%kQ1zTVFkV z>+8QL!)c2@{iDD5ci;W9uU#Lme)AW;^5yOBFFyG1{`>#^aD9FF%2(H$sQC4;*qqFl`@uDgMp?o+no`OyG&@2q&c{3>?k%>}!lvn7OYJT}Yvty%9Sv%`0Cef*ySSQW zUg@1kRWq$gZI~U_+IdiO?7*KhL+y7^{ZHGVe-A}6M#-2B?n3UfR*CH|lL z;jEGICAV-Hi;35;8}LYjo3-X6w2hc8YZ*OGZpMn7SG^j&T70E&EJ9sp`HSD^uXD2> z;roC3Yp?r{f9J2R$+!|c{S-YtU*q*llZTC&d25C-6ai-NG36^8xn(^s(-X-&G>a_P z^F*kuMyuj?EUKEN=`7g6!b&Qe(S(f>TnK|BGwtH&c4o|);`tSbh1GL|)K=fuHzcqw zP}Jrf1f3Ex3Z|3-&=W^DPz$mb;Z`6cWg#^^F+_ zzdX>LvMalOz}>D`Vs&5q>NM`ldv#p(Z2i)~Z;tlGQ+(@$)9dZ~ky9dV)}&n8AdV?R z@}wakOPla?Fgw6)Ti(jDaRJh-6~etXy@0G40p=p>7i%BW!BD_+4{K-Xo;7REKL3WK za}pnf>`AA=T()sDn1Cf~*env&r&M;b8n+y2gE82ai|epXscyXwGsBiLt_P0@Z1Y?| zmnE|$1tu1=mV5|Z*JQqDtU8&-I?UFTMIR?4-s>rv-Hp=S_GV*#l=oD8Vw; zNHdCE=W!OUSy`F2sh}}rBchM-aDF@?qzpmI7{O&cT_!(vId& z&7b+z4cFC<2Rk0yf;tH929=zxb+tjRYkxkjrHn|+wi;`gSKBvSP}aGZ!({-Rbm2gC zU}x5u#j1gB2W(<`$BdNC1EwiQl%6~S$jC&}k`3)Cbue2Ju>*a|)nF3{TpLJMuDAw} zRj@>(R?h*#Y~&!4uvC^~t9-IE+e5nJ&;Ub|T;1{nJsO5l%_T4EO>=iiNHt{1NZ6a` z*W>l%kxK+4hBVvWDKn!?S-rzFhwVbpltIWwT53R}j_XRak^7~rnPs!flw9R5nK-Jd z`n@EZE_?04-Qv%g0(|FEK@puw9NB{m#;Cj%c8s6RBxH_Yxy%zuL5i5Slw>7`)u*#3 zqjsN1fW#1;$jnQ`bl24;5)0r0HD`=miuY8S#H>?EB%B1RR?ix-A`OzPWQR?h%YPlv z=Zo<%ME4p8Rn^(lQEbn_3pB?3>Dh&773_t=G!1p7d6gtrfzo{lmvNb|^W6+BO0 z>$886L>=;MSEH&8r@qiVVOngf8hBd)-IJGjJtj%rU_xO+0|2-%vtCj(VGNn=oUuKK z4_VDW&9DlKQ|5JwN+UuddSRmBFl8aJ%5_x%eIP6KD#?_h$zhOTL|IgvG|`&r&1?S%%UtwZFhobszp`R$B|Q#@V)18hRX|J&uPX}OQ;*M? zjnzcjE5fX9nbM9V(g`!`Jr64lJO|w6P_I8W7&s~#N@c(dUs&<&C;8qXky5XAP1$8A zHhuOi)Qzg5iF&&9V{FES$QAL7Y6e1QFvzCdj7&Td3F|3!1@m^G!%Cd3=Zr4t zi+L;8EyZ`UbL~c$>3*8_m>KFT2jVmf%z$|AyJPNg)G+#_=n|XK`9``sqd;xf(7JH+ zut!-7pIOd~gp-N1|BtFSX|^r9uJgv2bM1Z3Enb-gGZVE45+qnkU@3~UMM(^YRakaN zc7)tf*d0Z<;eX-3;GP?jI+ATkVcB6x6l95&DGDS=m;?bP0VEPYmM`;__ug~%UULpN z=Gy0_vVjQ1%Y5&=d-h&y7Gr#4v#X1zoqpB+k3k+`vM$N51*|I z^ubkk%YcS8{UqAh`s-3s+opabIb?C%453hE%UFqTBjH}bwOuq|p|URh0?wHg@vm5) z!NJu^@EG+>%7ipna%w|tbpk~^7dTh_5fa%>dxeQ{a3flqp2;R*-gy=drS&ITfB54s z>Njsbc>3hCpZ|e>`_F&vo$tO2Yv*^)zVekf|KeZ#F{gdsOLyOV`|7Q4edlZc&+9+- zi$D9F?>;>~do(@#7Q?>$&9@)E{rUmzww=BD=YQen|LTAC;>TWj^yuoPm+n1#@4est z;+HS(?Z5C>e<`Q=i~sAdf8%$4^9O$Auid^lyM1m~iz1Yf4<3A=<8rg=+08QDyXR-; zSC1dvx$}zF^(TMk$L_v->sP=0c4I@2TW32MmnGINGg}jRvsw)hI}=dk;BlIF0c$~s zQZz8ePQ*3KHEBe*M zRLK5pbvKRZ-eJlm4Y+K6?2+V>ni@bk7+}fs*$g2WC)2qbgy`YU5Ek{6_GZ?6=k3hb z+3eCxsfpPP#2SjsgNLT<7X6kTC#7k%9wZu2IO}X#QQQNn004#E92V_OuT*vc8;bg^ z9{5N{cbX982_`{pitO>uK2Lt;RzioiZ|SGRzK>PiNEPkKNkM zeDzBoUOruKB1+8w5)NN7Aa$)2BBDAKx4{=t=E3{qmAY(}o(%ICYa2+B=H9(q>Fg|8 z`rP(=yLXe1WNWP1GtJy>>$*>tf-ILG8-0mx@RZKy`6dq=bs<5M!+Q-sShBrHk#S~I zM>rK3!B$2iSgD31g}F#|pkxu%yoqHhE0=!4;0~LGbNK4(4K$rA2zG^ZT-URiGP^^+ zmAElH$V2O->jZ5!9;Gh8t*NCJ0-Jkd};8I(Uor>i*WS zTMG}v(YVg5gs3S9yhieklbZpB9xktgjZCMF`a<}=9WUE))pEpP&Giy-0k};}gw$;B z#H>d3ind%8RW`TChUynM&Mn&l#<_I{Sv~zYHaSEF-iXjDvwgA=S8+J>STm2vBapM1 zyT~;IW@mJSiGGLE-8Ns^*^FuSY0rst1(8^Km}{EaCTptc%(xZSo>9EU%8F8lf>^7K zFCPtn=)Fvq+n!%qiXvOrOjks9m9aD)c_&4 zpr3J>_mP=WoiqomLq_-@q_OM_J2y$kq0G~?-SdQr@=DdC%C%YZnnKgI=A`D5?eQU@4eMQBg`29}qd< zaJ3`O`h&sdBSo=zR>R&na`03xr!DCX!{4zrG&TJ)+a^=ox|)sofX$#$=>B0A87Psl zFE5vq86xDyOts8ri4alnX1Xx1H(4or(Tp#(|-!AFst|(!miD$1Pc+&VBT(!4ut? zLldQ8aET-s9Q2*qr36$6nbC0-hdwa1L2tjV%%C^7G_u!sjdAYvP(7-NG_R#F8qLOz(2@z-(q-ZT0h*d+U@~*3 z1G8IIMFuggJdcnRSW1+dx}-j_$Hy*lZ%0DCGkd^jWDyWkv3Bj6iO5rS;ILt{H9sEK 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 z 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

)Wx)v|F^sh`6BmQ7-j>D9(bSsw+>(xr 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%0A&P8ad7Al}I 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%0A@+EN4_Gss;^pf|46c&>Qb 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�h&k`vJ>0u{e)-^HJ3kv|XYOV`cAHNm zsm{A%nBaQ@6r!xU>`>-85jJw3j;DEheER6wM~|N09C4Z^p4K8UEFE!x-Mh30_s{M< zxKq;rRVpbe+$H?X-LLCNx@435FO7nQop*ExW=@K9c-3eU30rkYDhW3B_!Na-h4$8B zRWh=y)Qo zqz*5e4j29nGdCYv7E^mcH6k&V*G`IhyrRT=RPOG6YHBHgRe>VgB5tLWJjO}IsUoM0 zkXt!1we_g(y*=Q!u0YwU6lPy6XR!?QCmm zOrBW9R5@%3=z!#{y)Ip|bp~r+jm|;{=-~rr+c@(vEG+|(GbZiF3U7RIGmSS9BT03-@&}y)Kr$^W(-iCv%RtSt zC}=0AFcp)t4@-(nYs9ixJO<=0WU?BdSS>yjmKNro<&UbCS(d!o_GWFxfvkB`7)*rp z2KKLy9vg$@hMjiFu#bDn_7`x+(CHaXFfOJ{vCzQIXjLe?An4{nn}mt-B(vHUSuwwf zNTfm+IpapCYA_;|>`Jw2B{)vNApc@$xI~wN&5$E4N`}=2V0(zVoa*cAdSwGSthPvQ z^;?tF42Kq}wM}kByHH^;^G#8?$4)4*OcMO2$wQH)%T?z#!90mwS}Ck%V=h1qf34Pi zCfB7hti2156WU-==ZdzAJ!eX3aRtE?;iB7!V{ch0277>ZbSlBwcNWBsTZm+b;l*Ww}NJI-w)wv=09qEbM2@!<*%)m^!H}}8088pmc} z7$SxY4MHjw-y$;*l0t-uJ5I|u9c$EA<_eAiuSG$6AHs^tHN#;?s6kyYb)3nBn!AhS zfY@=;hc!kZa+uGkp{C@S*k06?VP2%Gj9JeYY`a^SVC|o7)?*Vfxw0JwLGT1g3goWX z-BmoXD%M8QZ26ZAy5z2pyqFzj@R4Xl$u3tNWvaBfIJJGeOvb>JOi> zGyKy{+j$gUb}ep{vb``e0(_E8r27!7SPbNxaWt5w!ld*Rx#X@U-W6RJY0|S^=oCb& z5L-QKwtL4}N4@n+jo5PSL|;3i9af?AO6h1S2$4QC=XsQ7nssk(*esDqPrOpHSt>=y z^`D6*CRXf3BLrPxfX{*}Dd=eb*S$+CI!nKi4S(%mvmEn2z8 zW^zls&6W@CJ&d(fw@aCgA9&Y#F zK3#s>i+guI9Iu_WH*Wk8hwW(g^eWGuyoe`{^TX$d z53u{#K4r&;$fu$}Jx`~Y^Xl1))79~KGq0bYj;DEXdAPhhJHK~%xU-G1jl&_$tmVeB zq{NCJwSkEvTDV$Ionla6%(Z9LO9GyLb$z_LI^CY~c)~HdI$)!ks@%^HxO28$UY@x- z3GtF=(77$T1~x_&sIBd23|85+RS`J5YQd5$k79{iD9R&IVUVVBmm02n$qc|Y7M5wO z;x>%GL1jo{86~CV4NX`0jtLN}Y$yqKhXXc)7o!+d*obA@@d7|*;6%F7%+gbic519s z6k3b+X?S}9`&45v7`Ytn>pV4{stwHOU|c7M~fKvQ(>y%BkeBJ9?` z=|-%RlLBhE`OFE;H&o>=~KzZxc*wxgAGWHK==UBSpxjWCxziBY z%7ci6iK^WtaPjqFeel-(Qt#gNwGy?LYVj>exG-7LdS=V5h>UkR{;Hhl$S8D6&cOY- zmaC2->$-~?Ya+YZD4oIPT)Rlm3|2p$>xC8y(M4Z>(QQ*1G%+u#I9DHkGILGWth4E4 zk<>p+EpuOLI`y(+awP)vL)#$zfu8nd=2A9I4FW)N2(3 z`j7tJe+j|)T`8Fxg=?`m2rN>cK~8_)|5-JCE3SOcx{+gZ*`4YVq`If-t}$1xSuBUR zn`92|BIlYKTl1}D;jJ&C-VG_RoaLPrFnYVJe7Ludt-Dxfj$LxI2p#kxTDCLwWmYe}6z%+%BCdEM zqf&+=aF#Vs`+Rjz3<}UxKBt&dH+^Z5#E&4^iY}QWT~Xx5LLGeizm&gAB;%T4thYB0W1XXEmzwYwzbQ$mNoYRJCo9T@*l> zyHvfoV^Q}MlBkTxK+RGVklka-%ydnR4k1udG~Af=F}k$~_X#XY?HFZB0q2E=vVEPw zOT{xLtW(OGHLG^?HPgqct1+^K8>7+?iTKuFNZmPEGl{LA)>gfu>r`T)RJ`sbD!nE7 z4uLHeBosY&MqT3F>Pjj(j|*Vw=Fsx8??QATs3qS;ts+)zy+me$md#eHP6lnTy0H`v z>V21BR)RAjepVE;<(PkxQPcgIDs#CFvqt+b9o;IVX-{=m0oE;}{K%G!6pLGADko+| z`Hjdv@xJ9|npw5VF+5@s<$X8CjI}Wtp?ahUA!KE{Jwdz+)Rh9YHluET4NisbjUYOu zEUl8;D!9sb3e;k(XOlhqjw-Z%Y+Hp${*IbWSyx9_0<7E0LpQ?iUaQ*g4(F_`oo$Jk zQE44>1cpmZ;!eo;!)xAU-5y3YTv@?-^3Ur(-nZ-Swlv+_nd=@+*l^lL^K7x|E0r;H zh+u6M(FMX#PZt1u{_`LG*k`}?$Nu=A`m=xT2Y&UJe)&g#E`iSzJPgaUn58oo zUc$_&EScy<2c+BOMRAa@!_DpS#nnwKf()?Xr=x%4{rJ>3zx|*6r@!y@H~jqG1M?B) zZfSN7yn(~pIDa$o3ZDH6@(Y<0Gmi6kdv$ZXI$b@#xq5cY$jgiE;{N&Ny|eB7Y#fI9 z=I*HB@H+&c!{@C}02@P0RVB5ZY6BI86=BF3F_CsWUf;f$&mUhseE8)01~)e`39(sr za?69o<;A%F;QaNs?;Y-(`L;Fx4~o{Q1Q}zn2$VTF{|x@OiDyb$#6Z^UaTHDA%NZy#&4*{@njQH^Km z`|2fCJ4^SO$uTLdAbR;JY}8O-gGKdscX=Fz%%eZBBEOWt&0n2FD6GrG+%4UEs`W}C zmkH@&_C$rCwMdc~)J8J);kuclXI8b!*B$KpKM8BsUo#|}svYRIVcj_^zvyH#IbK_w zHLIs=Sr=U2Z;w5MGrq{aT69|1HNY<1q7(RwA|vL^$e0lkl7f^1#xjF*awswCN<8;! zv_h6Ay7hW!mdqtslQE0h$drk4_68lMSBZ%37D)CpqEW=|G5X6AqH(jA{!y?T0EQ#f zFrlE!rcgR=^3V5O+snsnRtFKA}LMJp?L zUyf2KJ$uDTby2JpOdh0Kbe;{{t(o8l)(1*Cl6vtbedwApu$bnTayWkX-fWFAdp}}l z0+p)AC_5vb_v>?JM`PpFSBizsVT$m6Z&@8 z(Zp?#);A_(KN|~5L!gNZvBQ5ak(2fHBM_Er)<-kCU~BGZYKXzADnV_~2?&azAA5aI z#tv6>!taXCCJ|R(!u26DX76(l{;{!)+5Hmkt-sbnZ6%VdI(C1onMG(gbkpoej;VtslBFbR2grUlT!g-r*NkD#JcaJVxkyiP?-etM&vLogBiBYM|;QD-wb!(A8DSn)QPU#XOFAGplRoN+dHJ8ZO8wr zxw*m>nNh>nbQXDxq>z$(7dVs|%p`gD7|d*#E*z7s?@nz`@(y|pO%y0r`OD93FX49 z`lcZen2|kn23G28RJT#>ORYZDKZTrTkGU}~&cickN2SqV4CdmHL^hhEMc@#np<~$B z2V-3WcGjYx&Ri(CBrI#5ZYs2QoGm9Q?CEZr1QncLp?r)%T;2-4oY|Re(CppSTak!} ziKT+ZGPo&Hz)QlZe%nO9VAWVQZnNw!PMXGAn8R{H7vlIdI%%;&)9wnZ80kF64Iq#z z_{sBWs36=IR4Thz7eR97bk{>FXcUUb23%=vUquKQdD4L+Pijbhh8n~~SJQZ<87`-h z+#=?h)L@4KU#B-T{au`9!Sii9i^X?7G#_%zpYzH^gS6# zRM!qWf(bW>FH58j)3DyOoDdBs9ZI)>Fv#r&HS01an5*h6GGccx(CAHjMrI4TcBgC> z3%A!j7;-e|J65TZ!Qg(-NeMo>jbU`~k4%tK{}I zLMTzX04~nYA3c8Zw|?|T-~O)e{=q-^J%0T3&DHe_pC3IxJspovhZlwy7e`!1#&O2= zRYctJs|VL#_yqp>ANkC`cX|G?fB5%)>es&djq}S3B!(Hx?`2@4z(2$owo2%2~N6$}3ySE-#smEtsa8?2%(-xW+m(;QChU>OzWkKZ%D)Lp3vj zJ0s0nhNs$?=y;ypNkKkeW<9|bQFgOKfA2PNm9z z^l)%?r+O3gxmcafix(*|b5`j_iI`WLP3}Bh#7lFSZ*A0w*@veqW0R!-Pv~rT5Eot{t0^Ip>Kpa|yw#vtD*fid$r5Ytd^QcFbDwK~zaQr+Pkb zPurr{VO51*v^-6ptVtcWGB(%z2AZw%z)scCv{wqP&}X6k3!T>+3vuT(_dzoXbFN4w zJ+hC{j$L+9H6)APeCkKs&An=y^`D}TeW3h16}w2$BpXLP4PGrcgogCAvE46}I=fA* z^p;tfkFt)gAf?{n!pBe&9ioseBg>CA#GjaZDLhQ3M%?CPO&aXQFO+N9TT^v6?@iugQ^bqVi5*O?k2M-$Dme4_(`d^0%8l# zvw#CN8D)oIi3m&;kyIqrJSkU;gf8sDdZ{~aUwte$;NG$j8MR|Fgz7Z2qbX&b8SU>K z`x2Fu_ASvfiJ9ssm@a0O+*ut&xfgL{l&jD-REt zSwK`wx<>7&>N~55M^f&kJ<{zkR-G?A{D#aEgHFK(g&=F%x0~S$9yUD13I^QF&9@^J z&20%xs+1+Ji?@4fD7PFvUlKdgC9h@HbtCp($l{7aaBX*6fWvHT1yj&uUBnPkkK1sh z7mZ~#3AD(xs$fT@%f%xYh7;7TN;M<6Xh#>4=*i+;NZDO-$nFbn{eY-E1q6bOpjNGR z4h1fXx0ROLD9$M|49(4lD*U2!1kkPjNBBTB6xuzAcqTM$qJzOsX9yjej=0t=? z#3>6RZjQs5-Hr^n(k+;#lw!3S^=VdDG`nP7S3oVe3Et-}Kq)Dma{}Z1QYdfz9Viy%*ncIq-joeCNygTdh8^Y2uBw& zu*wmYha!PdyV@L||HAXHzQ4Wo@!P-szyBZq;$M6r^R}9Udb&%(Y^>y8#cxK!u^rxe z^Ue3Z_SL`fU;mAt{KG%+m;dU2@Ybt$pWWWZ@o;W-G4lEIhaWwC{=qjMo}NGbwr_do z)1UfQ&kY|vwTF)^L{GO7b4z`J8gx%hL<@o5~ z)zjM-&yUy7k2A)_#o_KNXRy5g>OHvGurUUKXb#z6^5$D{P6>QuHCr-lmgv()aB{#v z#$+N$43NX@bUMW`pM3cI`U=Ns3G?AGD~V!NZ98m-^SrpT-F@Za?Ci|V&Ec(T6pjO` zLAws~^hOoQ@wHvJ0^q*6Z5{czE65yjjkVIngvIW=vY{`Op*6zf*ktQs_>PBXhv1sp z#ZO+-a%|3Wo=a!_23F&a2Gk#*RH`pmkyn&RbiC$24~-sJ6U#tpC)9+ixXLf<1cXd4 z6fP3YLdpqHM1#icHg;ZlAAtg8%`6i0(wQdJYAva+M0LUaw8_(6a#6YEp?VM9jp}KS z%r$NqP;+tlLzECZTgXw#L5by}fOO-f?!4=&9iaMuspC={g%*OY>h;efauP?gzu5ru zs*%^%GE!9-Ehfp9h?*$ZYQiV#VB{NoafMx&=(VrYN|MC!8M>iCL_nkcMF|n-m>i?m zLseSBG88oXS-Rao_eQLGzu@|;ljAFUs!K#RHPUfI|CTl*4<-2v^%Dqv@yV)c1&(~J zSCt|gOqMk$yXDUNG#nCGGM~=Qgq}ns3F~v7TB=oo833=RIbn#CMpb(C@R1+Zun=3f zSuW<0$#(_TQgToh7dlHbXT+@UVPM||N1jtrn2iPbLN&@DGrG0J+$hCguiikAslrsX zFQAh#&J3tWYR1Y)lkG+{wic5C$dx=s=PIkKnQwE#OjI67)QNpJR*sCF1#%gVyWRGW7P2s0Z$;c{*cVReHH;DVw+I zfU;}iR{SXuzC6EJdGNt(bYWAGc`&MstIsf{Oemb3n+Xfokt>m&76lzI#7;pBbc+32 z6o|N07&h(o#Ci`Tq+>RM5XVSahY&Uvr3Dt*s>E$QvR0Sz5??G$1eekWeSCOlR3Tgy z>=GF8hF=?;-DIg|8!;W#z&H4Wyxv(GX~w1!yfkpG3RuTxPmDB;HEzRm<^Q#4!5oQRFUylUr=t(yE`SQWQfAVuzlmc-pQ3sNrm{02MM(cU)_>-DeYM}B9}e8#;bu9I z!C9hx?1m2(0;Kvuik$bpjdpP#O@q|sfOWa994Y(Q5Zms;3nd!p+cWju!YixUBm929 zqR7Z=mkr?}{231-V>cp~6`_@If);ADY?K}~I9{w}EE4hvDAn5u!!Vm<5O{jUi=@FK z=w`3TA(F&^9Adzm+vrfJ!D3|;#|0B}2`azJrFyBOTU7I1{4=-VvU>0=vyVUCfv z!=mEcO8i(dgjtO`GBb>Ai%?g%*{1Kpj#4zEEnOOUj1{`Z@I7<9OKX7Y5SBi1-R`MZ z@KT|-a>bgkS`)1J28 zoIHVep|$)3I344ce))I8-ugWsyZDDc_2qfG8N*4&ny~<=f*mz$TgP+ZR{YU;FK^eC6FQfAH|(>2%D~y!*=C*WY;K zFa4Fj^sVoFCSH7PKKsINePLWZe<5PN3(p#az&$Sx8B)Eh=)L=g`h@x$;HLptE;Q8y?=b?6AvDK?d$*NXV3nlzxau_-#XZMv0a{D+)3nVo=$m;iFo>j zfA;M0v#aZqV~m48cy&9RUEF`|JS=SEgpG_aClcK`Dykk~-H8vR$|31W2FjGxfvOnz zgaeqT6A%%O#OZiDZ%<&N^UQoft*ox4eKA=dsJ~1+lV?Rt$2WmvB(pXb1 zl{46?QKZ(h)gC5pPWKA^I`;W3>py5r#yF+y6BW55i|}#^i`UiJ+dCVW@d_4WQxynd zDHyyaBo)&WZECBst96Q^e{X0Aaw0QM8Ju#cTc@2jLb(h-$c>#cCN%_eeiz09Q^z=U z+>1Gl_Tk1Fo>2$P^o3T&5)x35eX7zLn#6`Srd~~#z{?nHT?A%*bLkuDK)#f+RRs1G zeKHz7EU*s-Fdvy-^vU3>$S|a5^@`U`$J9m4Y@OqEKGj7*uCDkKeOlAqlGJtH!n?Cd zzEc;mNg+X4;&3yG+BsT+_V+q%zYj+^W&b=JDz*)=JxF0YAUUM^H~U8KkoV#C77 z&DGnJ`A!F;mgR?mY8wgA+@%s}$kzRA-0@s$vPPaM`+R{6?e^-8DJ2)oyxN*Nkf6B` zdT7)i>TXU*nP1xKzL{#xebiu*o`1c&+1m2Sin$=jA(p1byXvpxR_oe;XjA?t#LQM0 zb~F05Yj{^Cta?R+uqMJ1ZN?%FE3}CqUexzHATtn?1v=yC(#ncbv|PPYNoERRvrxS! zL`76B#-etkX+UN3Kv)~Tslg6HtBBvTlP0y3A*$L;;I;~MW-(ym(|2->W}1{HxC|0S z4rq72G?l=}`Sizinq-Oc$*Cz-OHoUG9Bh$sqW+>x3|*#6d(nly1wG!FP|Yk;Bveb0 z_2Uvds$|ew2ivE=*4jBmv0{|lI~JC4%E^}XOf#EF@k{9jn$BupF;0Rrw92uiTDlp9 zhg3UCLk+o%B%Fd`{dze&?b0sCus(4#>90bw92plWn;7oOnHzXS0qypft(3VcSk>EK z3ps48Gi<6)3wzc#>83oUzB_`}8LwE4kB%x73oyf#r!O7nC{_Y0OOgsL)hm+v#Uwm( zy~Z$umHV(<6<2fw)KtT$=^aML5Z9%IXWjd~ndGdz4{CjY1!C$tLUEM7jG`ig$$t|` z>kM@4^qr%bh`2Tz{#`~q+2dxKneyiPc5djB4q3_-gvWqd5;kR&-qmxIj>wxfGOL-* zOc!@u;TSu&W9WOBLUoFts_a0(zf!g-RxSmS)ncs;oYuaWEK3zGFQH*Z7@SU0Mh-EV z5^CO#%@SfzuBpF9lfUd}^89A=mD1;Q7^NTCAr|Vy!dM3xlVB7HDQ#%tVYy~CE`vmW9$-nAv16?y1uZqzH}=UzLyk|)}Ni7>og}@ z+1AG15+iU3GYmgC#yA|#FOeC?8`!nwEgD}NOK|NLnn2m>x?4^Sz-1U!{ff6snpsYk z+yP-DeQqYIX248Yce-Jq1`Fr1^=h88N)}5U#?psNlCFDD^SgX`uhC2fA)UH zv6!ijuWDm#2+J?G>PET_&d)F2cw>8Q#`T8}Kl?xbFXM2yxHyYM%*oJXj?5>IpFIBP z>3{d%{11Qn&-~yY{R0;_AN|6+zaH~+M87fJ*In3JJ0crGiay2yv1l>BM1_6o#Twf- z#t|p=dvD`#$1h)bF@E6s_V0Z8t6%%6pMB+re(r>PoPoSZfV7&Z=Pe)qy3Jh-_3*4;5S8{5jA ze4{x+hH-LjQpRbXHU3FRNH?t65OuPSEE$I}3a2T(ucDf%m{1#yG?w&+2$<0hh96qB zsbshd7%WH*bJs`1K591&X4}qpB1L0o-HII0#@MSsDf)!0cBTBqw7ujiz2kE_F|DIm zqieGR@kJO(jKY@)d}EqpwDrv> zqx#4i9ayd(<`|j5K8_)Zx+C z?Zlnl5sq1IxBWcDoa#LkvouiL3j)YtBbi3@I`pN}5~}_K1B#L?we_wrwurD*dXB?jiGZN(n-xw=U#Y7uDBJ2e0bkqR)h`_a%VEFa7x9dEX^GkK~P6mBgIS76tBic ztPDq<2gQ$Oc$uJR=5&Lx4kxy&E093Y@m)24d8(8gFtJE;T65@NW|l*arcAL-2atVX z{gkpK9=(;GS}v|b`@Uy1ktwUQXJe?+$Lu~MvB7#wK;ywW<3j;8fgOLrP-f!f5*U(1 zF?TK2Kldk5CIjYe8`gA?^={oE8p&*QB!py4NT(99Xa}z@Ug`|xCgNbdKIV|RigF1m z8__k@sx42(b1EKYziIw`MDrtJ*>}UpdG>kw4VIX6Jy&C~nUu}i!Jzbdc8~W?Mx0{M zQ(k(s^w7rcbL9%+>j7-*c!L=hB~J$ZtPg!;j4N!n2x8KcNzh$nglO3x?t8sMU2D%?qnV^bH>s9c-U^L zk{FpbMMjvHd!>qIo#@fzt9B>7FoZ-@En!=fIR-gU0)1(vxNy_tfiAL%p$t;VjrL`GrEvY4)4DKWft6U8>yhXY*GbE%_n_f-isXp-; z)B1~*0Mn{pLoQ8Jz*T}r`>>=GqHx1j4G`5|=Tt?3c*NWg1|K%c_(t{Jq_RHgs+wzx zmn*fdL4kF-cw$;klQzOIQY9%x;e%;gWdy@GZl zY4+;#cFk0~VHezXA&f(a8H;k;Hf%)@7=YWGBZCaz8I4GM;G;(${K((_e?R#3_@m#C z$L}8tWiJ{@hh$%mF-5`xT=axwLT+8^;0fz?zU~P#SelRV;NIcR+3EaXhb?bzUj54U ziP!$vzj^oER`+3JYH=Mc8S0ctnnJ%2XB7yP6cu(+7zEiMV{8$nS@*!G0qym%PNslycBLdm^Ed=y zJIaC^VK=UXWkSlF4@$DCQ z8#cNtyWSC{H7)jM@bTS-@xgfjJFZ~2BME3q1C&`E?v<3(lASp8P5Y+xxJ_qSiEjHz z`7QteAOJ~3K~$X50rB~0`DE#=D{}3&ky52vifLw`*rF3%_PCgPb3y2RWTe?@pRHqJ zokI0i<}MVd$i6{V+S-4(%T){$Vgz z$Q1?{$)zq}T;pk*WVj>{F+@!Hu~um6!!u6#oN(w zR7nmGN6btIIDx8fA>?XoDo)c_bl-tI#)3`ftPd{b1X{Y?fPq%m??Idnu?X%g=q7~- zkQp;b1M%CTU)JK4CF)_ITT|wZ%|0!Cs%O)HjyC3A5akR*iN`3tlEeNxeidS(2i^wW01Vh3Yv z*N0Lv6R1UzbYg*}&Jwip1yjAH*ZqmS2Rsu4nQ$pEvb0WIH~QQU-vxRxm*#D7ws?VJ zrd)GU7KzL8mwRR=lnjZ4AuZ=j7;3PQapt!0L>uPS6>w%~P*5kis;<`esQ$I=qu9)K z+wWJ-0B%5$ziazuUUT*6uyaj^v#$M1;1aZ@2>7k}(elUXOrqZadA4xEd;1 zN(SOh;H?W!uE~~2_$uP5*@NR4SaRY!*O^gOXB{oF-5DmSlv+|c=c*YfCG$(TLA9cN+Atw*GB1xEpXc9LeTI5tJ7^IX28sJAFBbp9M3JoT%=V@ z_yA6+$Oz)j&RI??=_ZrDxXpLJ_G9_?0h=f9?0*{a3#iU;RfnrFsG&be#@Lg+ zt}I;CeN?iw)J!f^X&JLJawjcS<@iKmPQ>wa_3Zk?uRprJ%43Z5ZN^NCwD2*IVd;m> z?%lOl?jIh!ez{#9Y#X+fBb$pSMdeY^GKOvis(EW*%X}?&z&wX`DMRAQ`_`4c*uyG7 z>_#lHnY8CKRJ8Z55VFO|4Dii!8R*pUOxneYXLOEAAiAY=#$^~s|JLY%f9rb_c^hK` zweEoD_N>*0r2GJ0uTy+aMnswNm|?Vo#NKt0k6Cy%$(x#{xnn(_ zWuH0Swuy{+)P*Hrq6;#}Ou=j$Yzy1b8i~otEvd^e`ev(ixc<(`jBAIh!jTALVNj5D zp)kM)hbY4gvlG+$7F~_fdkS^4Wsksv2DqxLhQU=i5gPKiGf7Z(#e}6~O+54}#V9^#Zzs!_t53}+z|M7^nfvUj_@P{&(+4xLi48KV zmaTP?F~zPb%s@POl#1k8<*}}}X>e}_kTar3`!N8y*Pw~CtPUAnf2uQCGmj~#TIg+B zKM8mG=z#Ik!jki9k6dm}&{}zQuE=N$u`iw0n=hiK`0Hhq4y6*A8fu9pMbsjr54|d9 zh$!=~UhfoxM$)qW6YZ)&uER3eN$O^F*6ym4h$l3c1Z9x{4-0c2mIm_>Gr~<$IcoHEC#lG)3dw4h>qHX3%WYKcwYndy zem**A+cmS9G;$-LKXC3K%dWEl&~C`uUjontn+$ysco1GG_OXMNh=X?V@I?{&$hVBwd>ZYKs1|$Wy zI`>wgJ+Kw~Htg8!a5F^$IQshQreEB@o{~*arn$D>FsKQ|LLU(|SEcua{!uTHUK7M4 zk?&YFT=7*5gY4UqYDA1o*X|lZWER{MgIkYVUr~-K8EoZKu`6L_igaD^<|SQ^D<|xt z=Y!NDM!6yM<*{0utx0SWQR3@`WntBTndIhOu9$#rhI9BiY?z-JU^z36F;B4T%v&`h zaJ(1Gh}C5g9(l;DadLAUrrY!uZGo4ooMozH{>pSVWo= zP3XR5Vsp|=&(f0E@QB&)+6sUQGwfCbw$2deG;MIN=6G}9badO8>6MJsEPVq2Y-X7` zMMLnx%j?es%45!kny^tcP5tnfzWn@)zxDL{zU$u2^-=xI{Xq@jwGF%4xX(UTw9ZD3 zsr20%afv)qtV5bTy^cqZPv8Bm;~)G2K6tu_<#p$Dasnv+o6i0~&+Ab1?O)YdQ%4Zh zmht{ac>ja^;(Mo0z8U|7)=bX2<&pvwo(Ff0-J+r`;?rG=|(zQ!3FLD3w;quPegE#K_wqaOU zVxDUBq)H~TS8uFjtPQChJ|d@NCshoOvcBZMVXbJh&XGD~*F)NcD6YXlEs+Dzv8Mtb+b?S2$aIm|g#2z{O z9yHktEL*7Wn5x`>WzEWnoTadKceg=!VX+dprn!qhH8w1H4LBwDu29zc8m?@bn`>}; zV|Zr$ilF_bf_c7zN@56_qQg*0veA~FYKQNX7g1ecZk{bzST_+FoX8$R!c7t}kvU_M z!6q^-kI2E~pPQ%J8JTOYyrZIg(7OTcI?0-Lozzh)dWxyxPFXSx-X^QO(_KZ9TuD7q z4`W6=S-eO?&q;cvZo|UxDkON(6RC2yII3NWm3>32uK4RBZ1)2V^5 z3bJ;Qtt_v9o5;Q%nU#nJ{8@SZ>hx;tPWZ17Dub6)!=~P8lHjDtj{z+L;xFQ}4lQ=} z@-s)OIBbLU+?uAo^D|=j4eR>zl3cad1ceKT6xSjAM6?M8m?CawR`FHIWxxMDK1fTE z?%XW2&8hw2Sg9fw*{FBaNLzcRo_!d+i#T+EL|DlO%yGQ@r2uk zjOyA#mS9a;eYy*5WPdmLrC~)1Fni%Whz0C8!n^Oi8hz=C z6GRckP!A1i+58}3g64zqR73)4!7kcXF~+)qy5dz+W>S&DZO;c!gQSEopoZT~!-O4* zXNicIaf&dvGY8COA#zy{P--E!aA6$zIGWfF9*ocdtWJ_1(no#wE*x;R$yPuK z-tLg_Bv=kO+wY|eQ}Z!UjHu8;7pzR3kQyY^_?}Fw_4~D=cR8VCH`17gy11VDsnL_E zS#Vr-`-*VoFIoGoh~$$0cpyA`ym6Wjk~%_3i=l%luU_>D?d4S2;Kjub1UQx5r6Qg%|=LGz9E zgcWFKQcQOSJIjRGHF9PgiPe0tW+j_i4PS1?u-@A&v6_uEJ0FL;J}x)6)6LC1JqKpG zFh(ZI8C?-+mj;$@&Q&vk&?H^VsyII|7Ngf?3aw?Z-o7ka)calkN-X3bwUnT-N2NOL_3?3Rx9p5g=`jYmaFCeebl?EEo9gC)lNUCms9m>3r*Om0JpQ?<<6Xe z;|ag``T48w&R>4l|Kopq`}DWWFMsKOI{n`N;!pkOfB7H%S1w!D7|utMtL;k7b|t1m4Qa}$Cg=<2r)yk{Znrwgo)V>ADWDufTgDrY=wFz zS3FrI#4OPh)Ul5wAF-?4yR3$+KRp9(vzw&Mnq5sX>Pl~<(KcAh?x61UuF()gWJVZl zPHo8czI6!ds8XXaz8iMICL`@qXi!v&FB1_a?Mq2eDvL#PZwoV+>K0@tGAD^Vy8J4w z$kzOlj#3)NQ$wqnNT;k+xwThni%mNmW!0^G=;-m|yU{kGFK=U3Af*!>Y zD4~`WWH1BVJ#vh4NQC)tiAhBBc`>tL&S6eO1wp>3{PXK|1e^Q1_>x}3R0+{l^{Cgw zq*>K0*0dU*H&eg2sjBxB^l-|WPFn(-DvqV$pjsJ{ZAZLF1)NMfwlTa22_{WS%Y18U zq>I`ThIXoxWwwn>*s!{78}rksJC#ANkO*XN=CXqNz^M`G?&KsQK<*eNt2ejF zi&ncX&FJHwRjAO5P_`v1zPUPC+-Txi5(im=8#>4{zy59Ki`gNE#rC0f z^x_ktQB;Daef?%ut0ePjr8@j64WZJ_Q_O?d-}QSTPOQzRQWaWiEQ(L1pK>!#y|H&3 zu}g+r!?vmfq=KL2_~HNXPncV3Bea@Cz4q2pSQEW!U8Yo}KxsT^gUMsvm#i7whnvC2 zXaGPsE5brBJnI%;^?zQ{M!m7bZEj;7X3??P4=l)5SfSGRDtL%}$?R^XPDFi`nYtv- zl|h(hqMLL#96N75d>}X*ehfcs!<&*9)%&fz#bn2^hg$lEPbcaVE4YMeeh~kg5RM9ktC= z4y>Kht5y=R-AmPBu6y09!>BTFvy=*^3Attn>bz_5JKX3dK`*fP*gz|xXObM$ld-%d znT0^1)<+-O+Uce#coz}}v}p^^vi`Jq?I)_fF`(ZcbF>R z?nPir0#GdqMFtr*D+yKJ0w+V%Mwd&P3R?wdwU;;xJf@8_8)LhFxP0sK-p4QRyf*y8 z;&ib>1iSb|%|Ro)~0%~2*mq1zM@r@}XG!+&=LOzEig7Hk*>x~mb)lR(Oa zVyY_Psa&;wJO9%8$a`qY6ougE# zE6oP%066jlTxZ@QZ;kPms)1NFp)`XJA3iE#k;#V2=h#8pJzmiFUAM~)TT6DTgssdr z%w4fXXJ{9_b{}QC^RX;I%|HwP)_Xv;V%AXVSXT)-)# zl3>vo5AN9aeEM*CX20_J)9p#OSpVz&8g2h+{ZF+#X3ZM6(*TsK?--kgfF2pQ$NBg< zKKJhNJHL6$Z@m9o*Wdgdf9U%^{)fKDo<6wT9{%r5_ee4Bq*?$L5^#<`~D@4}a(B zlSeO3r#w!Sd=G}4F~-;smj}Fhe|z(tdv_jOjKk*c!#5wp$2NSJAF6m^Nn+Uo$cPy< zmg-%`7g$g2RTXn9MbikhxgHD^OvyXAc{NoThh}#DidhXB*Y0*X(OvoI=*2`#7R#Iw zz-<@?13+Oh%?PumlUE>1YKQAE?~57yX+!Vi4jt8iV-R1l3r4Bp5|&?h-AWQWpi8;U zJMU&^L6=tnN#A81&KT8c4U^mm8l<8bUC9VKrj`5BoH45ze;o=3=_=igJ1KN3uobi& zZa#dl9TFTj5jGQZ<}Agrz8hD*9;-sQ>_pM>cxGOF8)_p;)jfn2B4@?N$e9_)DKe`J z{RzTtl}2kq>3Y%ip|Tb+5wVMsM5;YH}C1<&7 z$VF}c04u%hba&+i1zE(=338LFT=UlSbdoVL>vPC&WU&$}aapHF=?rbH+@zr{JYXRr z2aRtbMM)|Nb=SS~66K|Org$oqZTf07)NNp1qm#Lph^@J?Z9mhGzsp;8z?V`{hz0__ zf91kvwQVZL-$(zKm^&urLLbhf)9BTA(WBpI`TRGbZJoS+k|E<(uT8GhKPmoF zZk{GOlo;7PD2w~;WK?VT#fkc_|>g79>HV{4;HIOrA6_`^Mlg;gL ze(!Mk_I7xXiI}Gur{jwcj<-)Do0Dofpx{8sjJ-bBO8&;Q5(~C5GH@LP;Rg*LKp!12 zqFS*+1U9_gcbK}PS;OH)Xw{x&QB!-#*FRLMQERfAZlr^)^eI>yjFqj`t{%i6t%9yr zd5CRvv4?_s{M~g+g@i60z?rr!->#}uMVT?AV5sP`5K+RZy+wObm!~+(>pvp%D7?u# zmOfvZ%TuP(GV(yfG84B@KqYpk&$Tq{EU~sTJE1E_x);bm9|6UOWTr^GkZj6(si0S{ zpwDoYmcgVa$drL<$DCC9k)m9iByK{i!hkSrNpk~fReI|BgfXdhLwD02#PU>XJz$f?lhIg_0ly7fdFlBJKb@<76>)Er>0!Ulggk3^cMpOAo$ zHa%4Bq0mbyQpM90NtcDvLIS<~=%cGIz5Dpi1?G(7F$^Zl<=$2hS_g&;#JF6%RF7+J zU7>X^C0Eqott8M?+XoLH;dIJRzO#MLw`{-go5vPhnKn|rEPvSv&NK;x^=xQBIJ?x_ zM~r$Zh9JdScRM>9r_%|*dmq`~`fUFG*RSut@^`=T=m*~Z_?!PfS?}6xTb5LZjm)|B zKIhzLRW)=&Hw4`Rg95C!c-kls7=%KSt&qcEhyS2HSYbOH;ZHdH!9t-31rj*)Lbw%} zh62;{yQ=Q%oU`|unf{PtWQ3B$yU zeb4c5&HF1pd$nV?OW5tr7O~&PwvGLE$Bmz1@X?q_<%86-NEim-aCm@&4n8C`BF01H z?=E0h6O~dNPDL$WoZ2=OS5?-~CT3-Q7;KCU3{~}x zk^-wl$bmc%H-G-H-( za+=)h1t-wQr?JEgy>89RSliPxNO+o+WT?#ZylKDQnVvb!eDn(SW(3IfWKtg&HN8Z- zQo0+fbQ|3~!P*Jys^C{sU+l$!tX?*Ur8htDO}Yj8Y?ZQyt^3idu+V=y4_G;;$j`g~ z57{MoL*!vjq89JyZu8>VdM5qhO{GoVY1h0d4Cr#_P20<8`@yfh`L?&JuenCwdHD54|(3fERm8?py1 zk{?n6sC`}tYqtKNbuvV1$lCI&H!Iy7IRW1PK7?K6B^za?KgCm#o#)pBi6s1E#a;7K zB!3|rA*i^EET?DRQNMQ)CA z?1Z^(b>rk=$@3KvfpD(JQn;1XSZS+LXh&G<)0w>)M9bryOr1dkTop%gBrp%Hrp|>OQ>tu} z9=m#Q91;z^4#bp`Vm(qV4(f8aHd5I+<-)fRT9V3%n~CH zXTG9r_AF-u?+VCj9e~iplD=I`_FB@1j%gtg87nS{BJ?BGeo?X_?IIGtT62mg)e)-9 z&|`P?l0woqm;ZWU9!X+`I*H8`D@~%tH`_Hv)vq$4{)u9rsi!B7K6Ii)5;4#Poh3=0 z*0UM#l8C2tHFaXz{<^8q75W>*=&>b2CWh6G&|o4mF#FHe@DI~af`*Lx*eVtH^DDiH zUPGcx>9hBO4cmkavJr#WZ0?;n(9Ipu7vol_y*NPa+2a)vFNMBn)*Lj%{wR3X(6}L; z-NkHV(`c-F3GBA6WoL}ZY7r5twiA|Oh*5{1Vb+U^YZsO&TX$DHI?SqzJ?UiP!^|UK zW3bidqkc|g#vU+)ohtu`gAFPoW10#>Ggv+U*ok^s{S`QgKl<96kN@KJPknh@r`5nq zpHHm7CbCJcYCXHLx*ZTVY^uIjK3Fm#C6w-;A_Jeko1c6ZU;L5r3qO1Q4_fG%r^p===ydpxIbU#PD%CZI{cQu#dmF`+oQR|Lxzt++AjX)hCaa$9%kGaERabeFAxR9?$N^^AB#HeRwx+ zHuvFU>ySvfUgp|cho}@l7uezB^)+PfIfo|#RIHR>!Iram@n9?oc$7mMb=Vnd6$u}C5cXAU4T7r!Y-ANg z^Kk$JZf11A?nVXEsQ9n?o2czF^%nB*96GJB--eD={87QWw4tNOU|Ct|aSHrSM8>2Z zEG2`|A*+9}R@x|K&)5%Q0;&0QDGL+oO)k!{b4Y<5<^ZnSwFtJ|>X>KiA_l0m5Jw&aq#RLaWoEKB zS%HL)v~prjl$&I^N^_J_2|e_usw`i~%_Y9(qg+)od$iP;TM`H8u@HD?r1|K4m<^jv z-5pYj^&|SsX#X5mQna zW0Xf&W}iND_oxBMJTP>+CHntZLUYdx)R?PTPMBbA=#Lu&1@&925R$VFJP;aajTHiV zutTT9@SY_TN)b{Ub;^2-z^Z2y^rMO>W!@x(hs;S!$1a2U1+6;Je97uu@wFV?pvuOX zDi)18tkY{cM#iBTm9*{YTN}WMxASnQxzT|eU1dwH-zeN{nX>RLL?Otn)V6{rbBK-{&txahV127OT6U07RGV*d@M18fap(H2(~ zHxJ*?7RaV%j48Q$OdUEKNz@^M9>10SDu*kV2hbq|@JSxHoRpWV=twva8Zah_?C;h9|=nDz;-_*4M~R5dL&uLVW?*finQX|8yEsC2V~ zK$5((W>Iz4a0rMs>z|lF&JccU3iB&E-X9PqiFW8Esi zknUR@2zffLUWV>#DDL%#6Q@zQTqG`ALozN^DmO@`;u-^oEYtw>BH9sM{_W-bxiQf0%2#P#Gs zkhK?gA{m;>*zCP@r{GmrIBFFa^%Vt}P&NmEuMvBLjlNl$5~Y&Nq*jo_H^0Ja=w%dO zNpRj_H6e7cGb(%*Tab~`VAUDp29SgnJ$6^I)_3e{<~gamgr5mz%nS9kL@*;@UbYn3 z$Fj=t8s)ZO^x3H$!|r|)6TXc|->(;dGX)tlGklyuz17Uv&9{iFseQsnz^}}qm3oac z>|5V@>z3!6@%COLLa_C}x~NG9vCa&g?TEzX$t&a{l}reL>l(HB1d=37jxz!o*URN{e;>QO`s{LfjK|ATh-Bh!!`+kZ+4I|% zA3gQk)7Ul`&H1Y?Y1+=sBK;UAO@;_vHffq)UoGqYC404O6TJ?LhAvIR2T%~pk< z$2h6-htSr_J(n_I-BKO9>bch7_aI2{>;iA)Z*&w@J97x;)xiu^aa{51G>Xm12;U)B zo#Ou2X7s;V1*mr}Px3C-11KGA>a*1n>VpqA$HbCuMzMgs8oo)LOQD)5!DXa~Z1xL=5aDC<`KLjTUzOz_9Aao36jh^a|Ldfec`KkQCb z{277@&6xL7SnLCTf9Wcgtf^y73Jf02wfM|Ua2im*S2(=?s@@O6Xj_d;>c8v0mocOa zlv|clij}pxRHOv|kdeeU>Q2ypb}9xFIZ~`2DJ+Sc)^lsK*IfG+DEAI=0=mE?`{lvH zGBkA=^eo0e2H$lit*J~avkLBXHtoqLu=S_3$=jF-_&}yFeAQ;blqBl3#*v+nOLUJD z+qw&jE@#dn%phqPQb_3RD5bN+E|~>nTo`IWt?JRR3}KqQ3sTA|#vu%s><+1OrxFuM z@jk>~kaTcIwgGn$8U-1Z>&z43!YYTb3en~LDi2ga>l7Bb$GKk44Jw9-u=E7B?2yJ` z_{4EkN4@nLu5A zV0GyMt5nn3oHdfReT7;Ma+?q|cu%*|PeZy1(}Y)L8i=ctML2aXZ0s*$xcmIgOsN2d z&JSDGnP%oS%MNgPN0c;U8lfRSM8GPiwPsHFN&ATDB31q=6?z;?D`)RT`|5twndr?^ zie}4>4l2bnr}<#JA?IQels&-d5*TXmL@YB2*wqP-WzY{>BC;-a_+g`J&eaSTo7I=K z8QTNI(X~h*XT-5~;m_#)soR=fHN6%_85p?kP(xDk%qvgpD&Wfgpo==5RdNjAX(ZfK zmQcf|@gC#c+R$g&MEm5YGf&EBln>T}sNE8=uC0-YKqp)u4A}Le6Xtu&GUIcZ^7FZ9 z3d4tE_{bRV-hOYN?_ypToEA%1y9k)Bk{}4_gjN-5-N+N7KY#YuH*r${y>JRmHqL;W zdz4)1tO*%6kZf0D(9pF`Q=q?FR>@8}PR)Ttb@GfPn)liSK2HLci865~rZbrWhA0Sd z`WP1ah7K{Ow#x8Ye9kZ-ft%!VeNf@XJ8#F#}>L(*p85+3WM99GM= zDU%dwPKJoW-opntge`O&B3IrOjigTX=)=t12a{MtW~f14cI8SDl}XazX&Nh5Y^14y zBvj>%)z-AGsKi7Smf{`o;cc!50I}oEyMX2GjsMD5Z~o}d;=YIPaKlh~%u7Cd@KKxJr z`m=BR>C>P6<$QcM92XkIhPh+z=@@ys?s<9i$NT;Eg?i%$eZGRBiUsKZsepuZwb#pa zzwCLMC80klhBINK)ec|-%u zJW_dUlzOUsF_uXZ$gGVI%seP(POMOyZxGw=IOnJ*kc83 zeFN?phXOLuxEeG(WmpT)6ufh?I{F<5DwptMTe0p=-%&=CP{W{Co3T+Hyx6RNEDxzq zLrzNups_{OM#b(_rD`sZNM&ncIOi*_beWBm*cMWW2DFV=&5G(Dr+pIfj9Yq+D8FOt zo;sU}qCnsp=QBN2F=XODM6i?jbVpHy@W`@9RPB;=FSpq zwgo$e&Y4iC2<*}o8wUwdDW7Wsn@A}v=1#ictqihx`k1dp6VXNf%7mf|;y@pNc@ zrZW4nW&(N=B_}mg9IGR`h<-r?3FKTxu#4390xM#u-V-sR_$Y40z~u!(-X?>~+ThnR zcn<$X#GKRIGp6S-w^1u}N;Xc*0#nd$)<_7K&!b$_qM4~fx5M3+VV5eE1r(t+pnBqm zXJ~ME98lw`)0f_&{+w!O1(+7mWC5mH4@Dxf#eGdra>6E8WJo=~K1BjcfVn`eMv+s6 zMv;_<@wYf4VzDrsx&;ZOVi*NXMBy!3*|aT%!H{p9_I(R@TiUQON|I+%do{h+d|3x= z^6>8|2m6;;<5ss4P3o*)?^i|7HdC2~r3NJ{vLaHw2uhoDx0|y%oC^MQcBgBMxDd~B zP3b9zRDEMyu5}QDn0TQs8nsIJz(|WfVc}5n2viHOlNAN>e*YS9Lw#YWKQ;q0rQ%fX! zii#aZ9SA1))uOa!Nf<_qhB$`|K)QyakEr@9yRI-BXQ0#;GZ}&TWsISuo<5&ue?utx zvK}OW^OZ7GK%~NB9btXnWeJK@TOij5$X=Tz+npusfgI?G5=gDk6P?$_cyzhzBBXOaa%LjIJXcDg)7RvWe?eIj3bziCsPWs@r=&B=|&Y zt)M2BVI-ki&=Z)JbKe8CFfI(fac7)n%au{OOxR~$_G`pjGcybyc(7v^aIHxvkgjt9%qdU%hHV#IdAaO2G<{?Wt6@R($iMX4KP66fePNShcg-sl8RB z^g-(PIN@k2YeM+sJ#}GrlEOi4*K~KM#5Ob4AvL0*j6{0*_;xntH-(}xlW})D>o}V{ z7g$oUt!e<@H= z*BZ?)Ff6#x^*Df`5hw8PQV_1=#9ZB|4dB8lA2e_QFlR!oE(9p%J8SAXt{UwQWC^I!PfFa3k-pZzc2`u?jQ{@j!O{*f0c(>-9Y&98er z?zX4BeSJl~I^S$}A3UvV#9e0mKtU#erW#f>Lsd=@dq&L5V?10x`Oce%`+eUn0L!tN zKYQX&o}Hh+IN!Xyfek;k)|?JbW)>x?wE@GhlW(_%#EurT_M-QwBHO!8laT% zV99R^zVO8Z_f<@ZPkjoXL8|Rb5ds2CS(~V7_O#2!=bNX zBC$qlzyKm5D`V=uS9lLi3+N83*z@qH6}I)3 zo8|A|;yT@{$kd&)9(ropBS8z|q~%r>yDqHM67|MWsA5Ogs8W$<_O47E^^o-mhP%T{ zXI6dt`cbn6L?tGOjHal>uk{UpY#+tK2bp1z-yrK)nsM>tMY2m%hVlMcvH|2kW{fp( z(fS|bKg*31=v&8U{@xa#CLH-941F#SuZ=B39n(I*hmyG~crl?ax~FaJ#55)043maSzBjtyI;&j+ih%~TS9R+nCFkfHw`yU+&N7>6=8;gB%6Ohy>%jP4 zNy{pl!-HK8Bx+Hz`AA#Ucl}9$`R<9S&{L)weq>rZtq7>A%&5P=*FCWSB8T4tq218p zTiC>O)(@wu4c+xrt;64>zqs#Y{jtL(Tg+@Ab51Djixg=cU=ar$UphyNMP8R#vqep9 znC64A-XH{N_?UX2)mNTNPtU^dy8RCX-VHzMjamv=9-Uhiuxh#*Fd7e!UIgmRVW zWng&Zee1-|=#X8&O8xqVXiaap0=E+obf-EOG%Cwz1BUjunT{EoP9*f!D8Isry;tPx z^R6)8*V0#V6xW>H>WsV=k0wez+K;Jt7+%&|3m~+2q|Z%bM%QV;m=iO6_hmu+NVx{3kDaHX)c6>XUP+c{q4Nfl}hOlsx5?lnJQ@7bvuCAn|Dk)s3@rV)_- z30bj#e3`crJ`^O zj~%62N~Xcc$SfCNkKE06_YHcKWkU|zykrQq>$6WDpRaMnUR?rsW_r5W`Q)BqzHKuw zwt<|Mh?sD;P5B4RGj_8rHy^RX6FJS&uwgtgc;Yf+1Uzv;KD>GJ>f!$W^Ite!E|<&I z7WoTx7kTQr!Vh*7!n6&=VGjI=D-`{X9UbYR-YfQEFCY1s)6Qr7+Ap2I_(T3r|KR$U z-<|gt`Jd?r+G_I_mCXZHv8D%uRs8T3CyP~ETjxpmQlipzkDc$o{9(NMy}!Ks@F$*s zaDMaGe$BsgZGQqP1TsbLwg-Pt2?R7gj|C6tz#`->xM|$hC+HT9x>bn!K`7HyEP)&j8*&gK zIR?C29yK#&l4Luo?rn9H(NzfIQ=7Dq>#G^qq9_kUxN)vnRD%W{n*D{Q&X-HM2}XuM z?6J1cb7FF=RixJmL#Wtvi;Q-{OLBkm38<0`Dt=c?!NVg2Z$!#7zhfHP?T+12fop{ zs_Pz3QW;VNsOqF9ZH}lk!DUDN4f@{?Z@3Cc9Ox`rz;b!61?L|oWo^}#T2r*>1Fbf7 z6MuD69qB6368&pTbFg%DlSnof^+RUx{Wrm;D=u7osPj7Es?yW_=eC-VWD_eq<>FZ( zF<1jIFP3s}>1c9{rrv3xVb7e+Om%1~_CdmYo+QK8FQvd!5!lJ43IR^_@D;MusKlki zq}t=aXD|uN-#pie$@bxq-l7)XyFP{?6C-QZ!)ALnsrh44qY?p&N;{A~eL5x8=@6j0 zp)qzJTNZ}iMzKc{3xX8-`{fpXlmcag%Q|pA#_H^5riq0t*^#Ko3wSQ-!ZzV$#11l z(S$f0ZGNKf)kpqNs>EuGmt)!xzqXnZ>nYVA-KyRwg(D9imX<_c-k>gcDr?rmlZZ;t zzY$%g!*YyfF9DH@2H9<++eMjFC9O_Ao5t!2l%^`|060ij7GpAFS7uCgW+Yt+k(T-Z zNHIrj1M+VTOOpEOZ9P=+gh4-N)2S97ouF8VuIFY8qLv9ueR2(k%2{q^WGhT4;@ALe zuHlx|Ojv!GfU7gx51=S*h>*RIW z)GMq;8P;!O=t-CCsG^~ErW|NB7>(kLtAYzy3~utO8x>-aTOH9gq%v{WydB>P07taJG?59k}77!fw%=}%+kjD6VsdBbUJ-uVupbUw1hoWaLDcM+cz(4dnQ!H0B6-EN-|d#E1!7u5bG5 z^eMGFLOH*?S9L;lgNB!lU3a&rEGrEcAPf8h7bA58*QKLvt`q@k0H3BXuo_W2!r%tl zMa_uEZZSaRfeFc4$wMvoCk=+Ie-g0afLqK^nP^!RRHmE-7U2kXFIHV-{d7qXg+Nk> ztX88uqAwbm(Ba)BuBTWWZiP+PVI*uy0TynWi}mIOeJK6_GNx$i1Cb1Lqm%#|WU@pf zW*2Xz7o%*qLR6NIMX!dh*uL>;bD4BXm&pL12RCIT(nbm6>!SdrYjgNki$`tS_VhHw zKFx=3XUsjX_hD8nn3+ZFW`hHs!!mYrH$;xjGLhGrd-~O{uVKSIho5fm{OtSnYFt!e z%t+p`te#G}I18Y5z+}WU(4~W?rwex#9qXuBhrbR}&z|~E{}P-a{F6U% z`s7vo(H~#`@K5*G@8a!!?uohQby6}3W+#yFQXp&AI{VNHMsdk0`^yD_Y9FO+B@^!F zpZ|r=fBtii|Kgwh$$$Fa{PoM1KKjYu{(B$(hky3R|L_0(`Hx=urN*CQW^TS2e4l29 zHxH3BZ_e{F_vhEse!af@p%*^pu9mIWm`t}(%n%cfm|-)n507s@efRdW%j0A00XS~9 z?dj9)+4I}m=VQCsYz&MAQj;Ue#EU?hZJ7v*2rd24CLzUwoY51>sn=@@BtV<2^&=w# zIlI+`njvAL^$zem@qG{`wfwsa?zO`O7t*XR`m5pMX92x_s_obQ) z{Ht3dpkUZsn5k7ircG%!gzXILb?CF##3CEOmKia*Pq1Hvx-3Pf6kAUc(AA#Q%nsCy z(Vs%^Ut?PbZIqX(A8V}#L?4w(Bi`JDACl~WWY3jS(DVJ(z>{}ieKliBVWbLWVM=PM zeYljQx~Wa$b(bjS#PJXwD8Y=WQ=gsD>JtS*j2c@F?qOOkA>xjy)ip$+_r~66>bVr@ zQq2g2N=ILMh+Om~J1nIVwx*ELL1v&)fi#E=FI*+$xsDMJjQUMT)aY!bfEd7BA5lY*jh=g|XeFH`jyPbw z4juo$V8vhZge}ubnC@TChMPjDB!1OxYy{4DA%xMsGi){&Tb&)^(1l*V?IyW^WNXqQ zX4O0H&UJ02JzN8!Ch?p?K?gMTP}Fs0MmjKVPz!sFuPZel&fqFic#@iKWDc<(NFvt1 z=m6_I(Fk2t;oygTz}^6bHSZ^l8ph<|ULK1Tg}DJuH%P~Y$~@A*Y5-!rEsC>Dp-&{g zEnYnNAER_>jffjY>h~Jo!{Q?o$M7PqmK612zP1a!vS&6kt4WPwrzoMc)aWQ}Bdev; z!~TJU7>hkyp|C@? zk`2m>zF0*$kBV~(h%C0$l~<%-HH@{ZPU;Upk#L0FIBv$ci8MT3BOV-=F?Lxw6rv!+ z99%eJRd3c!uLX|98JI++ZY2vR7oMv@Q|ECPqf>IZ?uwUCdom4F|1BYR9+A@MZb>H% zaD7Y*8S2bi%TC+Sx30--M=3=n#XV>xL`y2_L#>eBQ47)Q4|Ih!f&ewK>!pAR65hE* zC2!Ln8Jg#HA1g5ng;eItaw`}48LP;LajRgDfygm;y>H#FnqW?=%A6vGC^waqT5ZIsV1QX z61%+3MUDGttlPSqilSaCTv=nA{-v)NE;3z>il8ZbU8%b1RHpR(edgiLh(rwA`f`46`xDIBjFw_Qyx*Oxbwj zBZ6*gQNToqh-UJ20BEz-c}85Gx}bJAcMG#ey^p{3H*UZDV`l;lGMPA^@uOcDKm0@E zSAQYzAM){<*K53amtX(*`tf(;a>+OM@!4D4KXwtJs;kZ}_x?26Tbnmh)>{30^*fQk z^Oqm}+1LN_mwqMxSq?K*$&T8W)GbP5%Ty*zB$%pB*rVPYdkWr#nu&DD@kt9-k zKeNt?=;X3$;XB4z@ZvnGj-UD{$-0u$Man2P+KO;7TbD_~)fy<+Yl zKFdK5&=PV2Ky5i>1yKz0V(r;GC%a84ysv!L-2)f7fay67EwIutC>l{guFVN%mJLT} zg>GW`3OiGq*w}_Ib6R+iK+!CrrdP@~luHgUNVpw?MXH|!u`VZl^qtGc#4dxZB+1<6=wbA=HyMG<9(#0saehpUUE=Ph_y z5(xzW2xFP}GM;^L72ujJG*y7^@IVtlRoaF`2}nx}Et0OaktUSDQ@{F5HSIqsb2g7K zZx_;4B&G^NK0F~@nT?R?ZZtssQHL)EI*WrB4sV+G2$4i&Der$BQg#w}x^*fLy+sZg zY_O+db>#~xq@mynBay4WtkWw$pbB7+AV+$MYs6L^AY+pRTH6?$KotOL;=ySkuq2t~ z+>+T-U3x5h+T@f81-r?o0nij^(Zg&E%ZacKy33SHS9M*Megd8O1pn%}G=-Evb+DLK zc_XaLVi9?~7l^F<177xWtrRX#cdjQVxlpve2sD+2J*iL-O`{q*&FbYev7`5vdYlC{ ziQNuCSf3y1-i=-N{i=^_4B7VqizM-NkC8nhghPR zT5YAmPp-F3y=dR^W1cAkn);c}RW&t+qYRB%UbER(!B&4y+-Vc{bwr9Pt;SQDGiL|4 zZ!N;kOS>YrGdeBFtE<^XWbZvC6R@&o>NW!^!ORx3&Ad_B@Ysm;R2ke_{` z24V?;#sPxxDLdmD34Im*#z-jN(B?H+QW`Snnmbpszv2qQtc=g~NQh>RO_-`TG>48BObS95qT-(O5b)d` zaO@ynHW4KHC@Gv}IOYa>{n;zS{L*=T{hxpQpZ)!x`Ll1&zkc(RKlA0wzxmql{n(Fw zeny&M-$U-1xXw6P<`w(IWexxj4{>>%`z7WzUVh;vGHh&Sh>V=GzUjPN=f1yt_3-`g zyxXr)RQU=1QwbOS7HfR_1;lSJkftvH8kx{zJEDz+^OsRvrCVkbSFT8@LxnfeN?={S@# z>+p5SRChF%9H4+?%2BYJDe}lLtKqg$;7Cb4)#4NToU2b^6*L^Ghq%^&aX$ll_rtU; zRmrnPj56yo4cFayRnsJ)l))q%vQ~f^(tQ zxR^`Tb=~+N{UK4EA9*(!ZhAx{cZPN?FK@b98Eh-M>zTHAtx<}d8^(69=T$a4 zg}*vI^CdQLwf##ey$widoR+c!V-QllvlkhNq{y)Tc@c1n=vS$gEIO0ir3nYsl%V*cb5hb zlAsWiRny&I)h<@QWq~zv3-x!2dZ~J0Qi;KR+HTTDK$3`XY03bo6kanoxpMk}qbyk1 zdlyQZxhT>4AU>-n9a0d8jraF_jnGVYX8%%uxqya1h0TegA@PmU&<~W1-B#(K5a?m{ z6gilE;i5?lVT538X#iwGe${SQuK-GV>}T+=3}cPWGu7YAGJ&wD@D+8F18T$@+Q2=< z4Aj?j(~n#UedSWXHUXVNr6C50jR~0K5S=5dzgQKDn#6%vXFKUAykH!^ukqaSsxv<& z%-RX)@lnAUyCe~OF1*8PF7e{0A3$_tXrn-Qc{kz zY;D~L9Qpzg)J+M9tzHwv#8-!@O5$O9oqT|yj)~S}5Q>DrtH{%S`5*`b%!ebgpI*a+ z%$b(8@`DwFyvPsh>WgMgG36C2b83^?YHILX$WxB4GJ=n~q)8?`dZ!yGy~*~V5w8o% zo0SPVsex5zz|&rS*pnxP2R z;p1j}FwRfT+uazaiQM=7a=qBRj(GI#!R$I@S_g}WlBbWAJ=c`DwNDPuuiSPR;(|Ip zwWSIWcc8ZBOxR#Ij2xXB7m9VOnJlq~otG1)Wz3w@wam%-HG_i_QgQR0ke@&S7daoCNA0~GI~jyvFioHc94--@az$R&x26&|T#GssAq z(MzRD(2O(;cg{a$7S59dQs{csPSEPZ!o)PQca6YwSA|uRphV=u?a_PX-@2KF6q-o`h+z5lzf?H_+9 zK6{hzE+G?+WFxb4WY*lLg(|q{$-Pcb(d~))fnXz9D zh`h!%AKyN_d3}BJ>BGaN+{5hUi|zLI^x+S`7J{nJhx4xY=UM z-Itz_(WVvxiE1IKQ9OD9mpnv2AW8qD!5$wan_W`Tmd>%S#3~k!mlTb)cyVF{)6B_* ztzk?R!gFYN)*W zOe(ayz1Mx9)dLiOkERrfSE7`0-C1u;U!Wl6g=Exe>U{{7K-oa1mxOw@h}O`Vi?Xw< zv7i!4;}9PEMdeB<3inHVfK>owrWq@d$Qe^quxXD1RC^yxeOK9P>Iyl!lvD8^)oElO z%U6-!ebgOkX>>zx_D|~}xhksBA7oOIP}xFjAyNIJcGg5#i&^-~LJ{(!A{$T*Q(m{! zyVaG^PvX^fX(ob2_TuH&V-cOb8jQ)Xd2E-eQZ3^rtF`jk6p|v3EdsayF8+sMH9SDk z?(#Cvwdz6qnQ&o05)pfn_Zg6bUsDGXpmJGSS!)>5aUm1PeI^VRt`BQt^OT;@l*jd! zcpwFU_0-5B^2b(n&8H?Rt6zlJ|2k&sR1~k1y1RY&3&V>wO2s-wykja;a4zy!trrvK z6yic(+WrI3>X;vFIkJ4nwMD7ki1iqrNe;|!pgw?(K~u(6Fm$5q^Uy6x&VJTFM)tSk z(NOW zRsjiPMYhy`=@hqcrZR_Fo2E7umJ1@lXUH44DM}Lv?@|j#VL0+(1OAPkV>lZkf%%U z#+0vOFJc~Xn@0E=+^;}nz0R*rQN<%4>;c8BS4IGX^g%@ubGrZlRIEZoOet9OVGoaA z0jnrstwAY9f)YR0Y?y^!hUKuk^ZCX3{M@#a+lb7|e%<$(`z7at=NsQ9t4a)ZMwunX zdb3z*b>#qYpNiC}{K>{Ur6@{Gf`wM5Er50#WS>xGz>d;t8U(~53jq{nE*OU{dTsp- zzPRMZ9P%DPlQ=*JMkklNH~N(__Zz#g*urj*r@UT)2iUGL|EJy0fzkpOSF9LI*#g ztJrreQ}Yh&lgF7$GwXP}Vo}y2L^DZyXtb0ae(NqDS{_X(WzlTaJsx$=)$TW%iLc<3 znZteQ%KLfI3$8i}9nq*tOJEdwaIu37J0m00ZN^TbYHN#EnAwcTm`M=qyo%geR+55) z&WmB!R*@sh`4D(2rtNhtyxN?#s;`(JRE=(8#p|<7Bw44xtPVW&l0H~oCYcp;pJ~JV zboVT=J$?S-+4GwxBMs*_m;LpdJtA-J9v|QB!_qvEZr<||)7>M=0D0sHPhD;x6R|zp z&Uc0jziMPohA%OYs{`}{tfF}QZ0IZvyz-mCDoo7_VgJm0acBS4-@5(J|K`oVGciKFIQ^&J`Y<^@f#NJ$-_(S}YF!^F0Y%VlR?3>Xmk z2fz$G-3L;r0EyH~XvC@$h(!35;=jXE*252Or(tJl)34*~m-@7O)Il zRPe&$3qGv>N-)i@!!!mlBQ;~}kVIk$iE0u$#qmJpzgk#}!6j_e4i<=oT5qme#j92@iTI2EzPZBSPcw3BBzK9l6395x={po{yvx!3GD1G#zQ2jk>@GsIi4}$_k>Rq8qLgz+< zGXcHk8PjU^p`i+NyF{DS11#qi5+;$fT5YC)-D#O)**e2VMHkO)*JA>#dYQb;jB0}p#=Jb8mV9(~ma^`hT7)~Ciff;ih5|qbg ztKmW&DWMjJVMA8yvX5RA0Y12`iMw_A$CJsUX&x|*Od?S(6OTg2=EJE3PR`$P!aN;r zQYtPrxI~v?Bh21=JBPYnh@*THd_|Bxxt3%zEi|a8-V~yQi@go1Gr7|?Xl9h&p?+5> zB!g9H=U`%erT^A$l47v_LZWIqeFll@{!9?Ju=)(FI2IREntWPQmCAyQxpzG?^b`0A z-OsYCnEH`@S(-F9vyCU)56OVnz1j)s&bJXFvx!wTE80lYwQEnzMY?Hj8B6;?eKOb{ zRh}0dJd!*7r$>&f;^Mlx1rxh5ag36US;ZVRU&dSFh=`hSG`rhQPtWIPr<*64BY}uH z<2v{2_4+pEJLC>bvv3~>Q<6`sA0%C9KkDKS^O#SYEn7JtRTWnt;5z5^;aM{ro2i9A zm}^t_T$jT#C!()Su@mj_lxS#GAII6^=n%LLm7`~t*}6F{F;pE;B?Pieh(4%siH>7MW*Mail$DMmgWO63Rokz< z3;a}byZda!^u6=TAY)R74%L8ZB^Naq`Z5Ii001BWNkl!%w$xdw$AWcL1m1 z;r=?(@7 z!=HR}&d|zW!?0G%v5%>44#c@LK$usW*N$r5MCML!Z#zZJn-A=B|K-nr{zrcL`Ilb$ zX2AILFFtjd-wdb-QJ|@)In|!CAkJl$dg8koVB5x zg-maq%uLHgdvuA|yhMF%2Q*~N$X}Wx3?HO`g%~O*Hz`&+H0x~6ZQ6$p_DUHCU~4P? zxXGxyZN!P+Y*=SqYw-kuKwH{?RTlkgM6>ZERjC{-_q$IZ9By6Tl2xi7UXrB>z0&r` zSat#yLAC&q2CF%ZX3SygSeo8oCXQXe)Jl$`2&wRD(!`Z)M@_sg#TeB2T9H;?&yqci zS?I() zAyw8xo|(X8z1_bkE^VRKmFU;wWpUX*kZc!N8dUC(w*U!gJv}-_s@v@S(XyX2No}^R ztFKuUlyPUBwFR5gsl5o2!HMCj_4vu1W22PMRMo3f!FE@5{Y$!<#cp&XGXltv2U$;4 zT1Zt?b87rToCZ3=)`dkAb(rBLu6Ktzj_7_v`}Fb}_3dpE0<2OKsJ%KKuDYu_I0_a_ zw)(R5u|sWxT(Ac%gz55rL8~UH1R;!Q+N}Jrc@jJ3;|R}0(APegR#PrE7;M0z;ZWW3 z(0OE0saz-s&{5?ucBk(uMOPvnnJ!tE5cN?+rsDg^0}3mPgm=pby`oZ5X(HWv3Zc%% zR!dP-of*~zi$jDy7=iIrR@)Cr(I9U`V$PZ-fzkK^W^%5myVftUv2Lq7#B^4sDo~NU zQyEU{Qqzm;RKkdt$9vg?X3KQYv`!qtb-hS*ptL5&)JpDX;LTYxg0BXHSg4xzaG`wh zt&4xKLxf^ANxn*LyzLlu(G`7`<-)u*uFQaJ@xlsle`f0GX7y1fqn8CN9;G8In^^xIldj$AS_7Oq^M@O2Fdt{P zEn_Bj5nzqR^y%4=UvmLPN~S!j)^b@gVrZyshKOl4usAi0L91q{@^RhyE@2A733g-c zpy8XM{gUy`HgqCmoXv_swo0n>4`G_Xs?J8|heS=vmNJOZ+u-ge^V7CHKb`Mj+vPgv ze#!kl^B#HG=Oyy$WWQs?0DXK6mM$4d*D8sygD_R!zBwH$301JY?tRQn1r7OJh#JW@ z#-&)OZUp-cX*CYXae>r@Pu)m0*|kmEW&}4jQytj|)x;plP3iFPtCPFZDLPyEQ4Pk1 zIcuK@6D~X?gcNuX(9F7NWg}AB8doDFBNTcWs`ZVOPZ|78#=ogfF$p3|XlCOuM5c*L z5Q`j20da~=KULF8Vpvf9y9S`@ud8Tj+MvoBi9PX7Ocm4<@TQ50b9oZ(~3+!A9u-zHWpI+@)Ld$ZYm*f4HUdiV=_BxVzuJdH&8H=C^<9^kYANefQ4H zXCg3%y2g7xx#3nZ4j9I~SXP_UR*}f4}15gD>JqG+akWGb3n)T9e&sZ7qGI*1DO3 z8kvyy2v;S7SYnH&%?#!Ro(s{dlHnr8DtL!iDMM;3EK9IP69WEC!Lp9)+S0Xz$7K$$ zkjv|DzL5)(*@UXVM1~NY==RL8L8eZ_EXjnV6lJOcC4LcgMeA7}+{nn75xUOx>9mXa z5CfPc5eE&QE7>N1m=Q7SeMz1`z*m2I&TMGZp*XpG&DQZC-dwD!M(+uu4xP1nM1gEG zaA25Bov2L6>fa+X!+pT5)KB2&Om6EU5u3AnhLFCD$A_xB%I0RHgf`8e<{=i8XizvA zHUGfDA|6iV1wneT%4?0FE)PFT9e*o-1Zf3Cp3o+>g9nrN8igyQ<%`&>i=qmbyfZ8O zE<>_dJjs*lp@-xRqFU4>f$)a-ZjOUwx5vr@AqlWxE!|vn*n;|ve)S?&S0~rC?t`XN zp?B3SBD0*C3MGs|jiVY-EtZYDeR%XG zI1KABaN=j&vade?lFKLA=@=jdPvnECl2t-$F4Hq{q$o`#ua0N8p z3-J}wcroSGlEEFw z&0w(2ICUWrY>BPd-t3yR6n&<)v=I>_flZZru4G*uZ2tX$ewW6ZZa@tIR|-+3Qk44E zfZVN3_EfQV;np;ZG(eEXvWc+6YmGpeb5w?#Rsh9q&V1bGr=MKFjp=cF@-aXuLzc42 z+(%U>5h0r$vmS&bqaA$5%>CuuEN?y-ki*9T=Nk;O_O&~>WQ{s!35<^g|sYmTh4b?E4@#hhIQ2I?b)~yn+Ia$?H%$kQl=cp_1%6x6Xs~Rz`s6 z6E=q6%8Ep~hv-L=av}8|=SCl{1Q3!XyNY&}?Q5kB9iZz)WWt7dtol{$7sYx4;`+_~ z_|`+{%-shnBc?s5IcW?m?MtJ)*{1yhVxn`#qE7(m5h(;nObs zK{UVvPAyx~>wz9WwPmSpW7JN}MjOfwsg=?^u{yvEv&3pN@;J;w$ZB$F)Ie64KZul8 znBuV*H1(nma@!e`tRd@@iY>19Ut!%92XOEhR3d@8s{niy2Vu%u$h5&@ks;yJV(LjU z9a;|c&3x$v4!N#d^E^vDk%6`;G0KDLZ`L_XMprW-2_naYXN1!kcdEyu;Z11%RA)%_ z6eSYfR|lsabi?b!wrNxytW`ZzkE_mP40FRsMRLF(4zBn2=n_*Bj@saPJgT|cpB3~1 zKFp*38ZAZTM~qC&Btv0jLpv5>s-Gpt#fLmIZf?q>fM)BvdZ($GCea8HbJ%2 z@T_BI$eLdsHg3(l(&n7|7-t6Q+GFI%{jxva+|Scl-altIA2Rj^>qu0ms(O;S%RGyYyJwJbX`QexOH-BpT;0|B=i};IAAh=?(OzV-G<&~o# z6{dQx^F>9aNPOk<{y+To-H-qH=7z^h#)Lb@=3MXA__AlkfDHWJznNeEt62^2o(DDc z2A4p<1iY8tOFyrts2YCg6Gt<;L_~J~_SJ(ueSUL$duxx6paJjp%s%&9R`x<8)$H2lrmnU-+OED?=wo8R2n2QQyJdA^;t zlb=quby#urij2U36>q`mULjgYC>lRD#B2JvabR%QSPjBRv?x=5Q@W>hpYGDiY&FTI z*Xx}%4rEk4XxGn;Xsc}vkJQLH-#23(`!@_KO+2ijB(AnZ?KWQX`*o-}@jYh}){%lU zGsjktIb-s3vyRgofe{U6_a%!g&mOF+4_}++1~N(?2b(QJ$Ku2Lb`(yn2HOxe(Txzc z)c2T~7S*guv2*Y|$laLi+%;2EN;%gPL>B3#-tR)LQy+cyo*5_eLr8?z!mI zYC_4~w;t8a@?oeKAV#!pXW(2oWtlk>e%Jy=ytCZPbb89oMwChy(YZcUwqyokBqE}n zj~I}w^sVJi>?+6wnM3^=l7&_(P^;m+V1tD-S(cpE?;?)a$ZVNAB=|$UOKWD87G8;$ zvXQl{i}k9Ui@{QNA+bjM8OSKlicI*B^Ay{o8orSv&@GChIuyi&Ey*L_Gj3V4pKVqR z&=I_zva=gT9>J)_V$s$l3H8g=M)3KmVW_W3N;%69x^n2Ki|MJfTn9MRCR{AH2?LPG z2qa~3tj0_kN*@5rw_YN$Rkbm&%!EbkeEK?!3R6AMCw{=R%&93KCyE;p^h5!as(&&lpmR|2Ay4<=#cYFt27AgKQ; zI}jLMC}~7S$5=<2(YCjQ>$x6NGpr0BGXd-rC209Jw1zMBj!mzy9tn-Sb2S?}&((*F|x;Rfv&;2os#5#s`O}b!ArXer5I|0dJ$8s z9$E)K7J3ImWfB^;6*R7w;y%_R@}{+Vp6DR=de2I&T;+%$yX?_^YxN}ScW@}_@Ncab zs5K@L82~rhwiS+|BNR$bQNb6WmQqJbMNTC-A%)C9jrqxN-P~bPrA7iTp5NTuy3ignK}l15DGmb1)9Y2u=rPf zw~|YJ_Ry{zG51`z*}p5q@pNS5-ou*FVs1@y%o&NSeOnosF?mLYOO986o`0hv1OH`X zc^7%p6!ntIbODW>pQv>Re64=?Z+sYxFGNRVDGXNXkjVAgd+}FCe{~3X@5nOiQ_Zs8 z*C(&B8tBs-fIzBU&*E0$SXmzAt@X9j)!_EGr}xOoJf3< zB^&H%H03rc6vy52wmzG(ll12E>B071V8x&=3-{?Wa?Tn1{l$LtM}F>S@_YZ{zx_4;&0jd(-uNH>as2KdUP&+Z zJd`z?(a6tqju&?I)yn0I{gs~{zwwJV<7~hGuP=Y{m-{zA&AH=rvX7qm&wge6Ctu!P zz8r#lsXUJRH~Eck?GgP~s-3QsYJDwPIq}?KpCehpIoj=K2WLTZ^^%qN+sX&%@y0JR6$hmMOe_)Np_*8PBQ&|vCDB@&8_FLY>N8^(2g_K!^aV>gQyb6ewF)&g z>aPWRb?ao?7$<^`m`Nf!)RI2Tx1vX%4rQ{s0IR@8Hp!Us#w{uhDH4nHhpKKOJ@;}2 zvBGnt2{UHamy)E=i+EgfLxl~m4MX(`N^xe8%?g|8UH$n|;xpY^X2yiMrqmI^A)1Pp zZH^;=lwC-!P+==*bSHw@h87nbzGA{({Ypi9kRnM=NJF8ze{zaltXAPL4fv-VS$wz( zb`j_p<``P2XQ07$4*&{ga#)A&t$uSA$&=+xDUn^02ptbSNImsF)?zJJW>+(iN6yfxbMm46NHkSr)Ge*KB2aI>R0P?dq{LJ5?W3AK?yI*=&WHiTUlpq|HtEdr9YA}Cf3=bcE(1BGML73xKn>gDo0E5L0c_<$k zy9TYt=CnC-=s;DJhS}_BwbCd*du~=bNTEoKG-yNTSI@ucP6ICLw_8@(V!)Xf7_fKp!hZ zX2|72d;&i}CUP?$XTX{6bWW=t8(b+k^f#y%6b)Bmn-%w(DeD+iv-4)dDOq1kQf7Jy z!O;1sf@Xn(TO3myYVA@FE~f65SCmkc2B(uAWT=A5tB*3U0^AbclngqIia>4!%539d zh_|L=jy?siQQ@VC>0C?BEI|;X-%_`r&hN}bTSW2955b6jj#_nTtihCajYtLQz>EMe zd;<+sQ2Mt{lZ#r_vEZ9+OBR)UikuA5UD8(J+Qm?PTsD%7fHZpIsjVW2qH*~7$`;F^ zxOU?5N?UekSRY*b@6ftM3N*reC~l=-&|**%-OLl?s+`AOXC$rqR`m`+;tH_pAeDx2 zIN(}Kbl^NYg@`H_P$SA&=uM#6U~Z$weECkqFsObhRj0Bfr!pK#Q1ZK_GT%Y?pFOB9jSyrB>0wo*>{w@?LW`YA(3^qJhMiQ%EC_f*=g zCoS>#p*?k^&uX+vSJ_&jL`E>RLfG6#CJnpv|7s0i-*IMG?v2vU^KOG?bUI()pf@)| z^mo>9pHc0g!gyrvnHf2`JFA{P55WWnqs?-fkr$av)D>GI=Dx&oRTMWIp=PmjzPJ_v z6>Sh#h7j?~Z9829sPvBr5_Yu^mWMNHFvBvcpSpPYItvuWTI*VkA>3@~3lxPbg5BbM z`M~?Y5O`!F!MXtxtx`50UJEWPVpmdBeP_)+Rp~I$D_D$mWG0;Rb;CFbh%(pCO4{g4 zht3vYMdgaRa365?$*a_Ic4dZRBo_kc@1ffGk25{YU}p?xQ8M>P*iAgnobmY0)3|t$ zxhGEN!;#mI@c7}Q>jw`UH#4Ttab3dzu*YuIs*Wkbd{!i%z}1acm;J}Dy^6aZd)F_2 z`h7q8;y?K>FYadizkfFWw?EqVdc%4pQnOL#xLAXg3Itbp3|JA}KgVlt;(z_WA3eOn zKEWP8;EwP8aDM6A^NGuwPyNE_S3hyKZH@*Kz@x|c_aT*DvpVAa6c= z?+jo3>}Owp@uipF|J>#M({>u?=I8hQv{gg__B7Z;I&uUOIBm8~OXT^66R^1tvpMJG zopJyE-OKyq?DBMD6A2HmTRdmQI_+{rgv|=1I>0tFUCsCkJ2N7poHxtR+)5P^nOW^9 zCTkD2AJT_}5pL2P*7TQrha3BD^P(NSY+IH#5Zd0Tyzq)v6FkN^Tt|Td0+3$Z3|5 zDHcx9rNkP`#I`v@zDXGrTLa8M(9kh^Kaf6HHD#1dcpj)!5c5*MLu%730h-Yua1l>U zB#^(eW@*JiNJHVyp)1rc_sV%?-novW0b0OU563!BHDe*1XNR{}A`>%rIF_kVIb$jx zRdR$Dh~>)uiJ6DaH|yPl*3Q;9f;Er>to?)5(@0>zWrU_JoL=<_?UDt6sf<^&(-?cd zm$ItSf%5D&d_M$jn9=HV5-4ti-&r8k8nCSS=%zxdTccc1Ju=!fl?G7!2sF$Z{kogq z6kak7h`A$bELZH8m@;~53+EWy5eE5o)_0kiH5w!IBe7xJpacyCZow{`F}@JRoA~gG zxSp{jW8JN+4*n63ua8nJNVkX&ym~WJsn=z#!pg(wN+Y6Ffh@4LqVbB#rho#p7`Fzn z+to)7N~w1gEQuI*Rd0YshXne$=%K3l^;NX{8+{=<0yx)OWX@^Uc|pWlDiIqZG*Bf| zauuYRa7!<6g#(J^-!1dCb}@q*72al>D!RJDMb{Lz6n6UDJf)N8Hc^&rGqc4a!o7-9 zeVbDy97ZptrF%oBioV&ew@X1V1@k!3)tMjG#mvAGwFKIcX=8Mia~PIap=)jR9rbKA z8`}eUbjw*RqNIX6M^Osxnxz{x)!apBQ|G;WNj3cHVmaM|lh07eIRL8>bhPoX2+#Vi zdfzQXZ6YVdm{cgv@`{6*552-@$&Bg{)3y#HB?%ZRm?Em5f9PeBhNSG6a>N4#0H^t1 zAsz}t*I8sVs;T#7o`sbU7F$w%Gq zAVd2NB{*NynR?Msxh~qSL?xjkq##w%-iJ=_ktVGqsXJF|E*hj(r?;;{6OY-st&hhN z866vahujA3jEnxNvh=9#E9f}1@{=PCC15>vo@h9tyh}xRJ*}Xp2aC>5v4>_Wna9J2 z6a|gr-_Qp)9~J*4*enIvkUv+5ZVEj*##aIefiEi5`f+sMD3PR$>b$Hk1M~_;>gK?v zt(BO3#tvm`v4;%T?9L|dilq$H5H6lRYHzo>asPn8P(#rg&M6~RU$}+2e-ZWN2VS|z zm$Mx`>BQz{0(;aF3A6G_3wDyk{$G z*tLEYW+?3&->gz38YooysD~`8EagPNGQxeh^nh8TylnDWU>c#&;(}|ij28GSm3Yku zo6oFWIS61F&Jz|y!_mWQ?&T9=!6wG;2Df4EkuhV!64)}XMn1@^v)J!k&3li1%YC=J ziv23{(Z0WJs8#N@Hfv_?RyDv(Dn2sOE+?Lt`*wrVW4nvSar*o6Dvw34P3>ffXo1dR;FTQy3=7V_omGRwgVa_<)?Ad3x zd-qOH-5)=GeZPBo_T(Kqvp7HVJC~PFK681xbGFajnM;jl1C@fK+IR+Y+f@6JBQ@*J zn;HjYWWK6kEh0V^Z@8Gpkqc@{3UmbtNs_YC5-DP{~kw zE3PGAV>lmC3c#@_NM)Rbisfkmh&nOC8^-f`k3Jlpo|HPP8f+fIs~f8Xxl%5Y-a+EX zd@~~391I?f)v5j6%fXt~KQ^rBKaJU>s`=-}zZAY!3I;?d7{CKi( z6eFBkY`Zi*&8$J6-d0D-nCoeT33B&2S|PGBVs}1<34&!fG(e=%1TI z(M`wxU6Lgn*q;d?v|FsCDL_*#1(C{K%bEZ@P=?*-KE?@ERQgwIVA?E{q%tz(s?#2U zJ~ygDL5{n5Lm@hof?$=uxvqtb{Nj)%ku#E`*H$Hce_Lr|oPkPbk_bm$6Id79#@JLN zC0V=G;w~7K%oj&)PMi`Fhs{~X^W)3%wc#QoZ3nIc3r-5C=`8BsNf43$PFC~c8Amx0 z7okTjY#gA+D&JrmxTHvm0X;(iaX^m0WTuw0SA{|g*`yPL%4uzRlKR6ETlt(CHWt`z z+b1qLI@d~wS_+(q-O61tVLr60yQe?MlzY#qbk`#Cz^uh$hs~;2n;mb=)D&x=L)gj7Q$28#GQlhmUK97K-<1&|W>}PV7f2A%*yw>JtC?AQ zn?t@wRXNnHmJpD%x3?!PnwLRF{r7X06LdL-*D{@o6@6We zd#*{$8lZK?JmM^o(NlgxD?<2-2&=Cw@iM))#_&io_3Ls;9U=7vMQe)#lPb=lrg*TDtFbWaay7lA2>c*jSrB=2hLfLB zMGE5A_MAejC}gd=BDP-6=EiXCixtsptLIiB#nIbMRKoG+rfQ!eck0))nT3lC+Uojd z=8V0dB|ibhxyEh12b7#k#g!yYcs#0jD9OnTq!+H>b*_Glw;5K6U5^NmNuq9&CH>?H z$yT97&4EdG+y7lOy{@~%hKoKlcU|%GBZIvR?pp*TR1od8N*gl59NBB!Yy(aSC*=p2 zv8QVO;xcl%o@uX}9l)e*<)B}w4Vjsfn-8bDS$PJ^$L8cKoFddugnSt@bMtf5NH7wy z1Dg+<2}79M&7-&M@%8z=XKrrZ-p(#=ZszdF`3UnN=8btIW)qv1hPeZF6L*og!M59W z6PLSP#(o;xymS8Wt3UYZtFJwL^8E7NvoF2!(O*10_0wVVjkoj9zw-FO!yKCk5#f|B z$ED6Y5XZ&L_pNGtBBG0=Y><~<_MKWx)?%QcjZ zW$30tz5Z{oxuwC%x|WK3b=@kGul*6F6#@;=3`j3Mh#K-#Y?ERToZu-Jx`*&|^V_Sy ztH^JHb{a|QJxa?RmT$5M{rW4RZ9&ixTn5NmjZhmo)rhxJKnV+&Sr#WM^MgR`$SkE8 zWf?+5g`*(kxz_dM!WK}srNy~bnyU4Z5XmUaNxTZD=AM6bRrvgcDna-uy!~^dl}{Xj z2lb&U%?R*d{hav@DF1MG^Fe{1Zi`!1WpRK{4UG*3myXWT)1|sVpF37ib#$XK1`g$j z_@O?5Y#{PaMP_jXk|Ie#rZQ6FIE_z`mWPn;nY&@@_EC15`oN7e^;4tRf+-qqBGRCU zEJcXb^;;Eg0GfT@>sn_L)OHXN-O~`&4uZ6AbTNk>pVhDyEnzub~Ru z{h+hiATzGLk@jpML+G5Xm&`}Dk^v8a;xnLG58cG^B3cERQAPSg9T`MD@Y2wly z@jIE?0A6&L@xNeaG-V(oX{>jYOs(x!;XwwZ@m2MS)xWR#Zb`dHi5%{I0C`Esq%w(3xewP$bvp2LQ<`xuJEt!OzGm3n^GI=7%#?9{!pcA z3!BLv%k-kHZH(%a80BQ%OtHxlK=6{Tf?H~aQEd)G53>#18vcsNJy4eJWp(%DP9m&%w>pO$R5gW&+AMY$4kcHsEVUj@L}vmMK5Bjq zBB6MciGp+pxy~)M*H;OEf2b^5go77?7GUCW1mxz>08S9L<(#(aFz3v5b*#&~r|I&h z!a(-213@(;T9!>eGTJTb=Yz?o!rw~uIbARg5Z*6;BK8ila(>m_k!}6X3aRi)Cgu#1 zme#|CvMo%r8t@V0!U=)Q$;pKlhGJ!zEYn(1p8`_K;(GO@ayyc-S$OO+H2H9aJ~0B7cZLMv}ek+Z~Qk zn6-XiMm11xz#V{DtF6pN`%o2e1KquQ?gEW$f;!h?4Sc=8?G@Mj0ZG z(+Qc^k6-ugY`;G9oH=hYFtF!{RHHlhn~~dfUd*(c+#cq|4Ni_RU^(Ivc6Gwt)4eCo z@4flv>2!MX?&-ny)Dtg$`e(C1fr|gq||IFRY@|73;#i#w-Kh%_Wxm?uY(}z>J)5%JO z{K}9Gqlh)BIf6QjtUwYOF<$tCKfU|OPk!gcSDyd1PksDXUwG%~?$c*)ypErI_N~10 zw?FvN$A9S)AOFNJ{ncOo>9_ypFMjJ6uRs0XJLlsx-?Cr%=KLT3_p9?~UjA?X>F<2y zFaPlMAAI}0@62ERbbR8I+dumk*Pr`(n2(J3>epZUrJsB8=H@2i?CSB=`Q6j`**WC) zu3aO1bhC{Aiv5ft*~>%H6Wk|&+RT^<{ga%b7y$R7yj*axoJm(yHXl{1H$ksrs%~2G zTFNpwyt<|y!BHwV`621FxGYo{c-rzreY@riiM^^1Kw$=B^PtbSt-!~dj$s~&tue)_ zJD7TeUaZExNX2O~qWd)ZVga#cqUD4X2qcr8{tg)uep+pzU@!`)y%@E8Irvw;&^R+6 zK+BbCCM$(q5{1jCiL%C2%**Vnr;nOebA{_pl0m0+Yb;6=S|V-QR<;&?(FAoQq8cmK zZ#~l&Wl)!$ksuD)n$cLqWhP)D;YE>q{HpwoaXeRtwp7W=j^^~D?F1p~%zN(YJUDFx zQn5ywy6#o6?4*39vrG-|n`S!`z%b`Fjojsm+f|dhnm67o5`SVPWi6XZRaz-g;UWT> zHOoVYQ~{pc`%XP?E>4zz8O&m(aY|fSyGEVjJFtCiwRRp>t&JHAk2tjJV?)>zLZX{L9wIXc<&}FHKMC z1Xy)eYs0T-Z|J}8i_vjaERR&Ewtl=FPQ@*#B?WVGItLK}It1k48Yp{fni8gw2jJ0=lp)?JLXPD;?oP})X)Ktax<;Cl&0 z6a{sE8||pX1I!M8bAcLL4*@{Z6Eb?P(8LtvdOOOVU7wbrNm=-XMiP>-7PVJe5iC{f z8xZ5a``zDOFS4b>Ktem`8DB~YA{7I4@0GOHxn)6~8i#ft?mm22C6e}+>4(wj1y< zC;MGXuX1se6|4sZMP*kuO7q$UfvrwP(OgDZ7n2w7NUm=k>KPmU?q@UO_)hi(Nc1Z$ z9F%QL#7aV4H-iOY?apHWKNz-YX1E#`H3WVb2GLzs47R?KO{gxe8i|Ob`z8Y=CF+Wj zMh{SkQ8IHMC{f!1WglqJMc7#vwqlxeuUQD0Y~UgCjEpjeo)U@{YL@_I{<(r0VIh-> zjl*Y9q!9Gf@#_oJoTsUo32F+e$-`r&AuAK))Zfz2$~J8EMFdok%TeXBm^;)$tl2K0U0EHb2_|FQ)H$HXN4X&wR27s# zH_TXknt&i{PI}aXE7VuA$yf)}hs&n}nwF;sTbe=9sC5wd*N#O)eepUZqUtP)nd1Fi zJ@>UuxmXshf<`M7MU7;04%HrmSFGTPHFKB7#}pQz3>IB+Puc!_C_j&08g*B*3#KzFv(K z9Dqvct?GbvS48Q&2|57Po9Ycg$V~0dGc)sT)Vi5{?zGNfAjyVQDxR{lf{|LU=P>mR zt5wTTS^v+u>y(m-q~?kH)NFGb17>MwG)pY2++x7tB?EDI@e9&H>|RYbcr7xFgx3Ou zRJV@${4mVniMX=d9WiX?+!1@uea7Y7PkUZG%)1Zp)LZ$~BRuK2W57L+%hR1p*lD|S zcJG;U*y)sC{PK6+{K@q%{=$c!`M}4X{Lp)^h~Vr|H7aA%U}7`UwPu}>U_NF_kR{K z@zx*x@xT7P&;0xE{LFiQ_P74gZ@%aK9~$@H^Y8xnJAd()58nIS{@e>^PrQ5@*ZA8v zF8=`*tYS)^Y<=JC5cXVKb@Ut zm(i(JbR>HdX^37c=~gkkaEiOZYRPv42c@0~OB-J3&t(3c)f!PPRVm5!WLIW|fEHu$ z(IZlC5C%j<>~Ryh!^8+Td|7yf*G|oqhJ{6gsb_wmIeBD6Nf*&EC5AF32&G9+QTJx3 zaU=ny`s&&_UH`WbUIi>M@@gR;O1?7J*cjJxi94Yk)^bB>o@*7ES`(K>H$ag>gj8AB zrJBB)mp`-^&?0mcco+o?7LCQf0rvrOS0_`HT&@DIz)fArS`y8C(ywDJ><+r<7T?I> z5O4!5DJ|)U>%<1TlP!IM8q7RZtVtqf#y(@hZtuhbTE|xjtz1XEW)BmrhgB(}KX|8X zC%RFx;r^Mx)Vg1(jrk(9j*@MQB3m+Y?z!*tdXK9>4BP4?1VZbi(7i&P3bppKL<|`j zk&`R)niA2_AX2R;em5DAb<2nw8{N!?Z|-CG*5MM1-fg~ucmV3WXxC64OHO89vP*-J zME_c-k{Ikrk+BvXCfid;?vX02k#c84g>dV2UdJ|arSW4Gqe4S{$ZmqAnBk0q0tb_? z;+>;hNKl$PZC@2wC>P|TWSm4s|NBKC3Lx-%H9Oit$cf*rODxe!j$zn_4blJ|&>-6E z7Hsc|tsY5JC*G;EeD|J-K{vf9v-RR)14C2 zZ9)US1C1ktt3?Xc*ELeT>!fH<(b`G92qat045P3>JuaTiF3DY$gg%BYQ}e@(P2AnQ zW>u}PMC%m%m_Ftwn%Bj7lcMCmqa3UXD92jz}B68y*Nu^;Ja<-YYN>p>JE;rC(_UOkf) z>da)-Y(yt|T!+intc-{Vc1pGQP$X8ZV8g9v)Dy5O^F>=(|+}4$~LRE?fD#4>6%Z#ThUhz5s z4sq5)D6g*?9d+ma2x9NbjzlQJQ7CU|ftVGC@)&87C)`k4&;qo^Nt0ZtSEV~WniVOy z#k{q6eG;S*ZE_{i!3C>bmACR`$AhLU(G0z?bbSREk)3+%Z6r{)P|o^-kd@-};tIF* z6W2NOp;W$3ku~>+Li|08Ta}EUW&M{?zeew(3xjU8R4;;sag%Nu4T*(PsZC`TS-t)G zla^j0EGAM`ia>wV1j3s>7c&lsGhew_G1y^9uYXm$b48PetQDkGOEoB|2oZ!hHOr$l zJqYDTFXb4SeYy>zb72QaYk0c;hvF_1IXM;UIuw;)^^!P^%^z#WZV-+3>It^Z z2_saO%31W0VNEO3L!BCvv`A#sq?E0y*Dc*@VVZR;fVwXOurY>@!5O8=ztr)q?0)KZ zR4~nb>~X&DXOHHcM{)TG_aEiGi3`gCJicSNfA++gj|;zd^2>4l)HvNAXPaY=cSfAwc?|MX^@2B?BL;@Sf$sU5JwegwJBGir{* zG3u~hknM1~j^JMa1$mQ|{GlH{c;btn`9FT?eLpujnnD1H-GT|{EL76 z*WZha%X{zp;QQY5-giI$;)~C`{K21IKmBk1?RUTO*H<5TPd<6Eeetgze)D^8e(E=V z?cMKw_x+bY`1DI3{`&VXzw(XOzWMFPZ$C!B@7_Cm^2v*Pch21`_uVqKlh<1H$O&Nh zfLSS>8BMcKkq|yeI`e5B<|!#RX2WxMHAQ+_1Zbo>hG^I0jW1?|q=ErC^6cj;Jw%!Vm9g&uC-_QPitpFQtF z@te)iDuEtt98FqlMI6&uBKW38hqY{i${JO8N#&YVsZ*xr%IbcsiO)`*B5xXM8{LbG z(dJCi@ZmPPaj_%_>nEmlEzRGaNoLw`{H-hjXmDps`z;USLm*mZq8-DJJe8|vaaXKO zc4Us;XNL&enm%77a?8KGYFS zWee-jbIg^x7d@kCtP_|wh)``kSgN357CCQGu?aVK*chXBJgMyr@~&3v{nW45?gGIJ zC5=@+q}ZkPD@xLpH7I6>N}w`PAyoCmbzu(iw_3o|O8Bkkkh+8NKCr_>S$8k1H5a78 zZL!1Pa^>O~r&-pfZc6ydfIsy;x{OJb5YlvUYS^6VIt8}mlrP;9Mimy8H!*z?2OSye zuTuq(J;Ld3wMdj@q8%w2@_I0X4~fPUXE=C&fDt?}UMBq8Av$x{z+j;k)-@CSZx!r}GpU&=$v^(3~^V7XE_tTwc{d8_;30zq`vbkH1 z+|Ix9#V>sRb6N(4uIbCAfk z^??3_EyB2=YCC_KYsARA=77EUjDPg~r_<)8K|DM6m!9*VygFZhYeoUjW6Wzk1djh~ z)w6x&^AG^}){xiN`IV6>@4of$!Nb4z^B=wc#QkTUd3L+F_qA`m{a0W69_lo@`LH{eXTx}yPun=Z za{;%E+_tUgq{bGvaB3x@ZYk(QTW3rFqth@e&K`p5D=hF^A#AlyGM3$M2}v^Nv4qiO zCR$^Ic!=XxlmkUxQmd>Zv}WamCXR*2;WdhqPSkdvSTkZPU96~-D;Fj?HyTScg;PvQ zME$7ZzjH>lbq}qvNLlN6P3AV zPoEuUFSA*IzD8`+`=~LSo|mbYQ?NXYV`^nLK^R#7p}!ujv1)(b1eIEw*08W#YT>)} z9NA$~WyL7VCi-2HJu~thL}E>rEc&vuGZv?yY75G1)@~3f+{xgq->*L*u+~&*)jwo2 z#f)m0vBxn>a_?i1(iIZ1br<;xc%?%9h4nwaOotk{uE&%5nEa~R5}-Kxcam?SjILAn z@tBKU0Z%&h^&t+=LovGA9p3BARjZp73p>Ub1Hc%gY%7i+(#*M0rpKf5K!tU9mm`ar zgat&AC5~tpdA;rf)3Pdd{v@^a4kotVzmkhq1}dI*^H|iDDsCOQ5>wHqqArfLHUugo zSN7oQ^9qpqsp>Qe(iMS|N0}1e@_|@NN-~3Di-=A@>unONX2+do;Q9sD{xRwF`wlf= z6EV#QV2#^veVPNYRdA}pHH9s7vCWE{i!>%w8e-U;T1EO73sqHbPo3Xm&Y=T|q#GUA zmg?g0@D`!3JqMYGqp=3QJ6bHd{`hOHJzbk8V=@cH=sb{1WQ*eUEHbL`VVftDX*rRr;Lrw2F#N5{EQ4s zmhL zU2ogIxv%qIkpwL5=qbnOT#KW#CrGOAG7~V7M7*52#PHx{Jc#?k$S5E50nGINt zX4tGsqvo@flsjn+HaT1}2EDt)@U26?p?7#??fg1OS`Um`+89Metbr_EVpQ!>qavXr z+6FyYmNQ){ENP5pnPD>M;xDg<5n*MaoMkMDMXJ=sz!nDTQljh{qqeFKcyBpSH4ZQ2 zQ^wtNKO_}mjeXW;N#U$|`D|$`1nW6vdqFLsa$kLUdD>yhhnc2gOxWS|9sU4C=}myM zH@QFw%6zTvx5?o(xe8NAMZ${m@#8vDK4f_L-7Fy7;4)Z9yPJ)O8M%YGMhD3ls1P%W z<6*Ff>DHjO9&Ti2Mm5m1)6=jVVd0r@=el$1;bEnBsR)=z z&?YQmCKrFCAbnYb@Q~?{*zxEb>3y>bcqZkE!V3tfol67OyQ)JI3ZW}K5mR=ak}H;u zf5SOtIFYxEWfsyDRJ3t3@^CDXIXOBJ4rgbk1ygCjZ0fgyV?>lNQg-RqQ5_LI`3&i7V%3IOnaf$GFN50lN>GPoK!%Zsh#*5@w5jq|4S-%IYa@2u zolF%>d~ZR&&T{1(m9u5@U*B)?3M2=7v?z*EqJ*j_HVQULCyc-_m|=HwWe@``5zCt| zJrg$S!T?r7!g^-`ADPp~$P8dh_lS#|{cPIldY)ay*^UjcIGy{=&H4Ey0;kPR+jcR| zY&$t_;5W9vmbquT!NN{~VRklgH^$|IN2ibc?7J>6PuJJ;bpMHX`lbEzUphVe0<)y` zM-jj}`Zc-QN{i9u)lm_8pn?yXU6GDem6)lr0m=K9waE*r?eWYr+kf@jcmCu*JpR)! z++6K_iBopWNS4?I$jWlRwtRPnOJU(I((U?sznK#ym-W->gY1mXf8n|N_wGOO)KgDC z`{Xyj@#3F<<(q)-`-6Y~$A9wbt3Q6vd*A)qYj6DIwb#G>jc>Vab&Tf?BJ3vc*29}& zr)}i*<2fH+ZRe+LY_~`tp=sWLSw3>;OMUEWt@egM9y8d%D?nvNVSuD_Et^)tKUkK6 zbO?f!$^b2)`Y{rBLef|?BWO9RC`@DpL+b%Op{DL-n0!tvwOF})a^f=;l^LgsFD3ob zE2ru!53}urz^G9(M3o$s58y3<5yue4q(}Qx0y#)EmHXcAF*MPb2H3FHGc`&{HThTe zG%pLWnL7|}qoC$w_+71me$}i=Z-M(5c52Qql$YvZ^~P7J-!iTCkPttREnHqJruI49N9_UO71WnlghU>E^jC*e zjS7M;Np99gwc{;m-jcjCJ4Dsbp}?Uw(s)xW4ULajq^K4}VBvscGqw*pS^zX6=rhLe~pVn!J1$nC{S|B1pH}NN@QYb`WMpi#O-UqT#%?u#n;CQ0U&~`7g?ymf za>-Hc*Vo%^?K(LSXvPPp+b(>JjHu=29SHSfVFvfj{S5v@gwLDnn`wbK+xBhD)28oc z8l5uJjS|G+Tck*pKbCRXmz#=`X!gj3>R~fULW=B>UsVLnU`5{;kTXIW4Sh0O^Tq-W zx}I1x6P<|ahO~=k6Z*Z`0l+dZOD(onZbfL45lsfNOer@XQ>V9&(%MGhxP44?h1=Mz z9#ho98Bc-&O@Bz^!1q3FWlCsCaH(P8OUMQ!Y%tj)(>HCPUrXGo+74(52sdC_t-uAp z9X~peJNmbnXY3G>#RST=BTgd>_Lk~sI+muUk(>IWi8XwREJAJV<}(%jhwd8`{nfQ) zw@nu{)!H(1)XWYlbgL4P_?%AdM$zlo#%a#Xys3dO0>|uJ9{_9&u1EkPCYp96E0;>m zJO+nx)gxyI)*OGP7yk(c_t?ygEpdy3*lu8{1)t`QESYM%K$uV}MX!<5IRD5mV(hQfi2Am|KReA#ZpmP2!hzC7s$f;8 z2lOMTGe@xCuo2orRTZ;JZdIy8@~*RCH8(kP4l zu#>C|{(1H!A#tnLH4K(Rw<*>%lBL|)8PCll=mkuf9XGF$weg{7Mh z6&a;p3X2HaW}IEkiyJ$;#>Jjz5yNoG^UG~)r+wP#d>d!?M%dVL%$PSGZ(H1C<{WNw zySDS`r?3rve#&`{@0?%WdFI*YUi_Jtx3lrc{mynd#`(<2UF3Y@(K8W?U0mpl*o6;P zGy>Gp=`E*NKW&Y8K|>HGPV4dv?|6P}qfX)ID&Xm-#&3T5&dTYCP=K(gV>$Cg^#2p=wRqj%o=ytosTsuaN(Aqndkil0u)(pKcc^+&4(Yhvf zM1)P7?zCpCav8`Q5Vg|BYwrybP6=d{Red@2xY#uTmzJl5TD+X2w$4P(8IugYo6Yik zG_|ILo)z(o(J~XWfShRkF4^s9T1}>psWpP#YvC*@Dh{}sy*M?l_#9M0sYZqPE%R;g zvp2&QF%2E%qTR3>Yb$Gn%62a{0%j2tvKZ$A@iY_i7dyJlA}a0fv7=!FT_&yC1Y-1f zI5a27^HODbTawg4bQvtSG$K0P@Dp1vfUo4pMyAZUNQ|S0NGvkBB%Ljr=F|IIb(^Pd z-4d90koDUUgw~$%(3MJ!;BF5B7z7mdNmy$NcRzH{F40AT`G@J zjt(+8ra&R@QDA1KTg+wBg4%Yip5B)=E2%UDGjjX`wLY7tZY zN-i8|&bE%0b~J(AaY5)5MCYn*GYd`{rOuEl3klI-Sw>)*V_m` z(7j|)F)pou?gb<)XmHo@mt=YNm!&Ol7fhLvhfe%~Lp)@oFe3bBtPkOxyEs#UlGofM zXJYVbQni{rrZUHL)2sSsfa-AR9nYf4jFjG4+!M2ynHHEDut{)>?sk$}5t(EpYDc|{ zK!0r&iWaNR>!nv!G%=zyW>I&=cbsw;VwbYrPy3ou_q-*x5iUIB6QY+BCj!M@Hj2~^)OllfvAW~ywm2sI#=*3D2 zWfX5H!CX7GHebcuOJ{T}>0enssFB;iDwK)~0?H01f{lB{6aA&tR{x{{e#C^Sv4241KGcL~ zk82(jWA&ASjW1oI(md5g>!_1CDhMbGB9ZbCsz2ZY4Jck`SwotYNK?*INhNf3O8vBu zu=s$0XH-YchdWlDggMQIGpZ@1JIc05YUx1L8(KeKv8>8VB9#F(q02m9J6laMXlrRh zW^+G0SezqRn@8=iUc;9QUS<$pbeE3}6-mGV3_~X3I&N4PQI9lPp_Z#e2e)H3u zk#oXvm79glJe$~dv$LBxvzwdKPwo0G_it|3U-|G$4}Rud&%HIq3HgK9uD<-4zs6f{ zKl!33x08xL&rQ|3CP6tnYl z`^X0`o_T8f%%48~!Z-Ju3EdHMr#%?)wD7w>$pK$Io8*4Q%HX zMk;g;!|Bd;b@h~uXP$rRBCv6ezA3nrr*6)&FCKMNIO2vqVym>TNwW&Jft;B)k&pJU zG2VW3b2=Z7-+Xj-|2!gm8)h&Y!^eS)>Mz3(1!?e88QGW!_|3ZoZmanBR4iKySXIp? zP=#*U@MQ#ZrSe9@T_VE@k8=vcEp8XhlND8EA+o?ac116l5_m`ot5$3@c6a0--Be>M zP+IWXp{;&O9PTL$k=E+k>}m?@A_}||qgPkbboMu|m7w0Vi?xHRbuY}hlB77 zf}PP#c$N|E>j#uGLjsoUGD;v75Oiq_T6n~eIl9|tW>U37izzhgS%pvJbl9|5h(Dnf zkS1zgdJ5t`9-0}m@T#-ftHy~L{bntJO*fY@b!N<%)MbobaHzdTe1847QWywm63T8L z^d-%>6`Baopwnok0vq(*%svChB@W2cQKDQeWara>hJB!-xwsKdFVS*vi-<#|uh1N~ z2&=!Mlio}ouOJ(`6`@kcI1RbSw1kb#^m^E3F=cArkW=1%?0x8tfttsg_%Ky{x?1C@ zLtcNKud5yat3tl4KHAB>8Y(kO3~ah{j81AsGR`P^q)Z_crv&5*6OjKZ zLW@RR76-P%xY&eG+ac8I8Sw&)ej&m&?V^NscwU8RUUHfn$Wjva84lwR_IPCERE|4MFHZIzdpA#{f&B{LtA$b}*X)QurI7rfxoZDqndBHb6a z9vyNZlB)jwT*Qc(1#;s$`+5h5M^}%CY1pCA(~Wf9GnE>Z7t2$io zDoQq?ydG**igs@PM1(mW&-uvm`fRHTA8`oT$b@(E2v$o{>1YzIU#LgnI)8emsXP&h z*|Ms&WP~&jPkA2RM+5fyjx!>vEm@~9+kOJa=2*6CX7hD2H zWpwRUChNVVQY`3N<-pwMO%SVaIzS-8ZkHk^)s?S$i1l(TLQLO_C_`LD9qNdj$QZ0G z(WVi40A^s`SDLKGmqz*2{bcf>?$^Naz{3?f5CnDo3>JBV+BU^MWF)bIBIFem)Us(H zp%Y1>R@V|vnUq-Tnk;v-9Gdbh5`|dSvXXsd6d5wgwDDzGBPdU7+Ea>NUD)Y z?B(iZB7C8=8gUayOJ83^Uh+#Kp;z7Yl+>pDhvifm0pu>3sFF6K`lZI{fMAo)NnF;? zm{A^T8jvkq8Stqy*}?9$%p|(HJdb!Kz2p~&AGyvq6b{qMQF+#kJq zb7`4-f$WpI&70N=YZpq1pNXA74|8)9|v+_3D|IG95K}^y=P6GSPmbC zVYz?sz2n|J6}Jrw001*EHhbx%)9?HjjxyR3+d>B@G2<+;tNoMmN@0PC$l)fduf z!+Lf-a&1{3zW)IUEYa?Q4dRvs;gt#y#VMJvvFqDw+i!+LJ)ej!o0HgrFIR5N?^?|5=c5M*X)VHm~_ zL62w}W21YN5L@q#v}yoDptCg)32S!AMv}S-YYWE1fDK*_CHopw#Hc#YO09|?)x1*eZ_!Nm&-_HdR@?N7(>%qeIf;%tuKOx zkO0&Wl8YhA?t|zr=~LxlP;vd19!x{m5X={PQzCqH5_%p+k%Mu3efR@aExwP@_+TTI z{f)%6N=asFDJNi&={ACgSoyj(joP8WBMDJbW?SXL0dAd4!m#$J%gMit1|q$^?}w4_PZ%<+Eb05W8fyC?Q2tGC1N)?1adoU`P8%u1u5n!t{euRp~Gelvy8cVGdj2G9Vazrs0JU~ zq)V@zT}3dOnl`p7zC%4mW*>I7lS1C8RLwJ7HnyjPBOe7l)J&O}u-5o&vRbu*L|!;h zFOKwkQ52a44jHiO-?Q~f>e&wS%+?4fwSI2>#zv#S(j6Q@DrLJJtU%m^P%N*LQjM54 zfTw`8COa9UBpF`ki_f72569q!rqZ(Q(ZL6l*d54 zSX57i+1q$+q2<;*S~No;0*%x_AIdDL0DI0l&)QyUUEiV4lO}kz1R^z4P@VH>s^oY^<~|-gvisC?SwiEAf{H=HdTJqe!5+j4ajP;(Awplo>B4Zj{Y+=I_pcK= z)fTMV9g0k-eSL-f)OM`tAlNh*XMD2N4Ry&f0r)n?KpCrH*rGoDQ!*LFVVMUD$U zown1(d0H6U{TyzaZ8ukb^DuFBg^6i^%@`5mX4v_@W3#jUjlioO4;+uuC+4*wGxs!H zY!9yXcx(8*nP!H^k3aB{4`03h_3wTAr%yfe9Iv6ROD;h`sA1L=9=rub4Nn`NQd}p9 zSv)E7^3LVu#rehg35jhRk>lBW_@!So-yY8Eu0>51RT!+C4es9YkNw=mD=%-K{qw8; z@a6sSbyc(LRKYMykrx%boW+T7PDETij=4R5@vh$)PrWZ?KhF|CaTf3~A0lUv&|bE= zjS=-9mAt&3L~Wp9tJS&YzLrLN!XtAc9^WA0kFMt1kHRg_Uw?S-`KRiTMWlHe=m$g- zga|`a+d$K5qXSu3vS9AQCOZM5J2HytI=|D*a#HET7f#uXVfnd4bg`9UZIa4P2-Wl~ zc@_Fli38Q4P`k?yd8m}h%3_Q9R46AfA`nooGex>-T7oby^ji+10kFLwukKSqxBvhk z07*naRO-qyv+IX?Hp4fhb?Q^jU5yaI%Es39Ln(PkWabWdmdgR9c=_6@QUn1h)1vZ>GwTm!ySCg&phC7Ur$Sn8>X< zz2>EzV#hJ2Oi{W`!#|j7i(s0$N$+fuv7=p3A>XAwLHt2pQ@U#Ls^zZQsT{f|!n{T!zjvKb{wt5|vhSH0QStW?hUAOw` zJgn%lZZ2470a^k?hKHXfS9yYc0txp_r{i-IOL;u)GK%gpTNR5)*TuC7+9cRJ)`er= zn*VBjpG+TEv)=k}dVKW{(S7UYAC?Kjig>!${Q?ebpa54kVWPsV&q&W}7<+{YcmNvN z5l;_Kcc+NQ`gm1Nf_f>3I!CjmghZ~xd?Z4xzws>+Q<+U4ku`nMZ3PqX^)=AsHeYdlV^@6P+j7w~ zB$p>_Hwq#$kXoVymRf20TU9Jj%)%PmqSecpLBrYFB^06E^>x{Ul%U9DG0-aX)dLA} zUJlD@mL$j54ta%tokO|OZUJ;@!STiG(uk!Y+op#A-P;hnX=R5TCP})p=fS2(h9$VZ zm9O$BsFT1VQcb|@yT+mYPL^dV37B~VUoJBZN1`U_D_i1-q8GiJxmbiw$-77_%fmQ; zfzc-!z3e=?_`5Yzqh_D!33A$B^tsv%s5dr&w5;OOtOv5#^yikKO!YvL+J0W_N?@AL zqvnypx||kM=N5Wzb^1;8bAzDF28dJ@Kb?ZF6ZWM0glQ4sVjqw$cj#UPHuA3tToYw>PpuTX=H&EN9q8Iipxz_;JyY6-nXs@3_&73C^^}LX+nEVvu-+>)ZzCyS z>X{}3X8GW7F+<0()*lsFjnIg*1V8deN2GI6oafX$bt#RZbBdmjSE+iK1?@wE>dXYp zqQUK`EtW2xf#=-QI1E+yDX1SKVWFp%T2i?YTqMn08$v=Ycu@D9W{w);KU7W3Inn0m zb*S2jgN2cb2&^;CdRA;>YLygQNj*!V!;@Gm$Erf8N<5WocsS|0*l`sIgGcvhDi_+8 zIe`fk*u`EI-f`Q^t6_G!!Mz9j{l~a}<(C;3X%~5Rb~(<>#(<^UowVs2_8pHNWIW2a zhNqhcJY$1R^SsE%j@M4})f-%Gwi^O@V>#1-d1IC^fBV7iXZNbXJ&}q1W54jB2S5DV zFMZ+veEQjEGDNb8bs_|u35%2_%)66Mwm!Ygl6n*Zf%V+6ciTE2)bakXHyq=A?C9wl|Z(Y`80QQ;UX_Ldt~EKwi+yi09QmFBcOR zBqOvA^;EDrTPYu+%)gUG`0Y%y+RCW~MfzA~9wsPSRg`MhiE!3TJn8RLp;#Z$$s!jL zE^sDEg*Le`uGOD+6troPS!qRLsOA*x={c;`BJP^bFjRafHf8xA5pXq{P~tl%obA%P4*65|4_p|UC?BIX2;bfCvtFq~ZIlz_=pD3iNyyY=q1Wp#KL%MkHU z8M`AWTLFu#&ff4#7L!@Ixjbtad2A*r+8pXpwMT1MCRNnITEz~un{vBcMS}ZQx_+@* zQ@8~6Nw*qfOO&rK6N!05Vg}2p|3=OaY#TR)P0$0lG=LZqMI9jVcV4rDV+ChwvP zQY;cgH|V0M0Vz?&dMSe8rS5axn}BK3?-uYQN0mW}pmCjPYHsO*QYTm6oOL(Wa~EAC znOoD{K|ZTLEf$~H;<)1{A|Pg%5)mLN)zUfTiuNrGt;r_!s*rx@=Z`~=t&Um9u}gKB zxHqi7wO+t#&8`fTi{oYRO0(PVOH<$?JrrwLfhqr4e^({NP)r6aTV!5;Q6Z@+@n#>z z-T{flJ~-ifHk>bFh%?U$Or%C&UVH3_0aE$Q6g?7%GVELjib*Kc?l(k4krd+lO9&!M zS{^S8g(5w*G>w!k=IC&F1;L3K^xMq59F)ZGWP;)fU;H^TGuo3tOqPkjPFn>OTJ%#z zYVWFESWPs8tK-I!F5R>nxjS&AsFiY!93Ay9gNUjaoK&ckN+{M%tdrl=Z>ZRBW(!t} z%&mcsq4qI{AeKp60*3}uLW0_yJT1)@k=tNVz@aS@{gX@^DtoPG83cmXJ*qFD=2hM9 z5UtUi!Sc#dtgMUeodfD&Dk94_lKlkId)5gLR*DiHayM=5W{Q47 zSjao;K>rMfKm!At_oyuAEa|WlRBxd$KAsm$qlg|O< z2KzS)?I~4>V-xwoSJK^z_OpxFa|K*-A8;d-}?9EoKvT&x{I!YzCbm!x*IUvV6ce;j)6E)A}3N}DUy@$=Jz}%uX)Nt zlsCUcQIwY`iXssMHrNI^jv=xX0}jw!nr`}jud1$7=eGC$*EeS#<{0x^r;nN{YM;IT zz1DY`modj2GtCAv49R8!nnCBR1DfhZNHzc6NRkpgaAq?9xBVsb+f(n^fwC(aJy0w;x;me|!u~#K4ZHoXbXthKH zGeqo(;XPN-+|6sk0wLT=!x|E;9D+TM9p9zW-9e9E38b;r7Hm9#zPlEcX6V2Ofs8@& z`I$OoQ2L)Ca6f>1FW`~<-`0eRTB*IPDiS+8YxWKOzix51!L0zgeDp9&gTn{n;u&6f zG9Ny-hv&S%O^Iu7w#@zFw9WA0&(ls%--AEPoWP!A8wrDZPK#&f)7_ZwWV}0k zX5L(k#5@Cgl1@3r<(hHv{qOtmo9~@xnUI+A%EMPb^|7D)C;#|2o<4bc|Neu%l05dx z2J5nC^SjAjsXggPO=_EUgjdX-*VorCy>!o&Vpl812jAzP`s8U0%iL^i!#BiT>^JNo zRvNcr*u>SdD&L8ujrKvuA0 zF{XHaPS@k&rIEyLEW*wccXu&h?>>5J+x6+nx9t+N%Vk0(7?&&cNd@L+7R$*mtfwPo zwkiQpln|7gEy?37F`!|dZa&oLTG+R)d`G-meqQ`Cs5Avhf>&FRCJ|6@v}-LQuhLW~ z`~dsbd#BeC;s~3n9<3%n8DlO^D1cvJ=^@prUFCGEP;zc1SVJQ_Qz}xAdc`=mrId0u@l2nD~yP5tx%KA zCj}5mEfK*<1sUeSj4fzY%T?bl+-l)IXjV%p(N*og>~<}-ujFT>DG-9DjwmA$NR@|t zfuOb>EvI&WRayiTNl7`<%ra`=rcmX6L}p!GUQhKw3fHkdyll9L7Ft@tDcz^Cn2wEA z8nimdM;x^IKdC#`O5%NBC>FeG0i_+i6oUFT9dRYSc!RAr+$Cs!fZh7f5kDg=l+bul zF;sZ^dkTE0-&ROQ8Dx1x0s4)~q49ktm6Radx)Rpa-4JL}T*Q>9g76vnPgOit!m1dr z5lOvZMbgoUZhPw@-c~U%)fZ+q+C8risC<~Ctjhn)%y1r3M@EUE@PDaU^c9w|Z>#z0 z3Pdu3Ep@B`%QDpAsjOaYdPM^jIg+&sOSO%lvjnbzKrEebWfC%f?xS0ed7=rD(3sYV zk1j?_R;IHZ35G46XCl4$@VTDG0P}&?^=DvE_}Fx_$yzMm`{-vInTm)q#2vvqd{Wez zf<)>F;APHCj>DsUsb`HWjhW6at3n0NM5sa?BaCvVPTZ%bK{*t~lEolo;FxBXd+tD? zVhCS{M1Msww9*?20{M;jpqdFnE7`Tv#;H_UjU}K48uA&t+c5%DAqBZnz>|#Xac+7qwHZB!%*~Nqv8u=6MKalg|n4h>5C9wi7?*aVbt%$Vtn7=ps|>d-sGWAX7N#pW5FSM=spqD){bXx*bK@%{RF`PCgxJ`Q zzDwwmxr!$WF7jYEYq4gB@CHxu76mI-`Vw6+r0YU*0^0hO@YX1CvvG0S?g7`&Z)W7% zZu=O18itIT%*AL)$I&qoH8H2am5y}E?^KWX1gocN%UTOj9UtmB1WG;z5`C>G*oQ^t zr~(a4h~)}AVPe+nu%W6p8HvfDgt=1gfY~^?ZG*Erf~29$$l-%IFY9x(O{xUAc~Lmj z2Y8_GcXbKXI+*9o2+Rnk&xhFdaA3?#!*Gs-OoUCq*sgDt1?ft%sUhmxn5GW&__x%U z#lq04D%hct+{c2(b6Ul&6<8~PhgWkwi&313*70#9ib__+*NUf;XtXyodS#sz^A%!P z0_r8`)FPT-9>hy3DzYb_@=w+-M~cd!(R&puTEuQylEX?skm~$$nBUHaPxIv`cy-Tv zBext^zHO(g`xl5D+knM3#@+MV^V8Vx0(0bfcsei=Y18Jd=d+n_``xo)XUpAUckDSc zVh1d9rUyhIu=H{9@czXIaGI5l-QCU4e)+v0``8b^@%;g39=F*_bRCYn&Z zNdYw*3p+215b9sCMzodg8)|4)HZmW$cbT914kII1AHA&{)nqpMZ&)RD8}((A=XdiAJ3ZJQeBd$? z5ga$L&v}PkvZDg(5?&|IFbG1j0I&8~{W*g}R> zp@wH9Hs4|s56rs7xNbgQuoCd<>!mwrFdGO96A?N{TvK79=_AV0TPs>+TBQUKzfq`B z%k==0*Ll(jPUkQt$DAGOHVEG%HF)8b`p|;2Fixb=0OZhjL*oEDbX?IAQLq&GhZjN- zoS-ZX5wMPASISOb*`qg9Q|d7_FV@de6DjKXrMTA#mHut3nMl8i)b<(3Ij5VuWAm+} zdNLzo5>tlqNkuh028aBj9L{DVkKS3(T?oo4CG0%lDIk;<-R8V<;wbjkK?8`Y;;y{z zfJi%_8S2u=RghTL+g9DNAG)DO;!_lvX?3|o7pGZ%U2Z`_Uo}ED;I6r}$A%Z9iU$?b z`f~JBSbvhJC0;SNQs+W{*vr-!^n#e>GSS=As<@OfTqIowFgB0G2{jI@ZFa;gndcH) zOuSInlx?Z`%B((CeFws&Iq$Z50oU1B4UA)WcWREYX6-e^(ACH`;mBmnt1^9%_u-7l z2shB-B!ex6oJE4~QZM0JYdh6KrhIy#WTAl!0v5p0G@OxA2eDxs2!a*>AjTpms&Iu( zCP7s1zMlLR!jj?W0TCIQqAad~5@G_bFuYQ_T=z0kAf5O?0Uab=VC71zCTe9?RNS%5 zVM|So)_tV?z*x*2ESL77TS>M_5@%H$=qO*{i^&+aC>3jp0s#5_P@lK}i)E6CTQ8^G zpT9n^4}aZnfuv19>la#Qpb9p1oh6NZK&Fx|KoK5n#YDEi;toYk7DZ1w>+hEiJ$)0+ z_WCgrEmp4EE6Jx|)6!NP1lNh{#jVk#X*q;&EU!iJXK*ea+>(-w$}khG9o0*Qy1x5E z^ns-OGJEe^)2CLQ#Ciei&10G!@?j=uHjxoQa;9iYy@CzTMUlSg3wr2;=>lX#_>gKY z|F}w>poR-#9@>gDj!|%4nD*_pYL6r8CV*46$%a=#dIHi zL|#1X?D8AFE&V1{lKJx{ecWyGvs(DI?zace{*YnzA*8(&x^qGd9px&-4u9=u~!eAJK z1bIIg(PX8?8Q&84YdcU=)q*;pGiJeKMrj*Zmn_N?nbxlMI}c8cph;_yw9Q#k6a`Q9 z@beTEvE!90G%fRiWihkudv+K?{+%)l1KGtXyAix)x<_EFb)d54(Hfx`8`)G?#;+3M zfGmBnRVqPiu4=>kx<10h1P`La04*+B153F+OtDjR2+iY}G8gsj#3{T3WNRyMI1GG6R-gWHC2f7|X4zuJ7Ls7HmqpaLfRSZ3};Z4 zJ0M{w2xQ{<9~U+|?J40W4gDOpjl==&N1rej`BycpYtaX%mP)|g0)~t^BRJ72w;=$_ z48i7@@@_nS<FFB+W7~W? z1LMiflYNidUz|54yMrPV+ixMYn`Q&A- zCpE!+^pq0-+x_j;H?DW$&KZuoIfsu8wnyIX>F0g!*6pNhN~izd_Q^Jf)7}m%#_f$w*jKZEJ1&9FjhrF z&{T0xA~^T?g|w}DlvuV+InaJy2oVeIc@W7enXp`y8~F}~J?#~{uP`%rOzT!i6P!`M zhe@#+EORe!=bZ5=A`20t9!&)Y>4;8+Z?R!D8G}}94Or{3gI*qkE1d4iy&dR>cEUV3n=hqZkv`4G@5Q91XOKo8tr|{`>R(Y`xXOxeU zb5xdcz~BfxsS!Z+60j_chNODq=&8yquv$Y?*SsxLbXVLib4&4&>ujXf-B?LAvAG+- zNmALWHmymL^_+TYQVgIxWpKI_Zx%}Ey;3p=38jjKz~*YFQFhR?1+Zj!D);lo$~DEP z(mgAsT1%Mboy7rzSY8}D9*y;7T9!m54H1{fnWBp4UCW^!AZ|x#^_t>OQFF|JSviwQS?PutJa}nk;~%KV{*!~aK-dR@L?6Jz9CQpQWq|c zehejbGEgudmKc8cs3MYJ@<1MeX1%KW0>utEm#PuRQ^jz}nSSz6^<(#CS^HO?)1~_t zk$D{054kwGZSQhDi{4WIq5j|As>6#dkByZV8*0L|Wlh0TA83XMSmxlMT}FMvtmTJ{ zBiBM&<%_q4gW2Md$!ZkPG(f%&cTspZ`Xtny>dtFdA^^!47~7?xFsjX@_+>gaTWIw4 zVwNx>@%13WTH4O(gw?}NZGr$Lj?H%BZGy+qmKHX|Vd|@PKy&N)!q}Jt;>VPvZ8|-0 zMCBX5hbS(c?Z~LhX<4_Io5s)7UO0#H7+_;-8AWzAn1H?1|5xi!Z&nkRtT@Tuo+cP8 z0F8jREz8InVS^UtrOBqWx>VZBl!{GSS_U4hN&WaV{TK*Nj~=L>{2ZVUDpGt)C0`=#-eTZRM&Er;MI(@g{hJO8}Tb zC&Ad}|AQl}(d2F3C$lPkiZ{1@b+qEB@FF7;+>%V4+{^qQqUrXyRU0%&6rs#TL32W- zO+iEIgzGi&qA_QQf&~Z%v#e#{7mBZlEIP_*N+z@@<%En!F3aXkkQ`U-1|_*&&B+1| z`4+s}in9)QHHw)W$61!rGw;)jc1=p{_@eHvcvJ3fr7xolKXMH#T-Khhw3;Y+-^RGO zIK6s0J;3ms5&OKmd+&UH&+S$}43?UtgTTs`+CBst_Pwkr1fga31Qp_~hP==LRAa82 z*)|RZmD*nSk%B3e7Iy-kps-#gbG*@3&MlBR6xwz}cjly=hq1rNUc~(sk4&MD)Z5t)X~yMMAoEIxI5tH zLtD}+Y0k=DnS5FY@jOcpm8$kb%m(!t>Fvur5m(Hv3s+1>?5h64;oTIF>!1e`J_e-t zUT{1`%nZ`!%@_OsDRtMpx!~6Ck_6~xkQDk{&B8%w3=&eoEOJp-p=2?-yUY%PYgHAAb2+*pqKR{qeu^cOO5${=%>S>W^If z$aZzbmU-G!O1+!BdbE+xW!jfXqm?Ot0$4t{cklA@G8ODZ=KJpZr$2sic`;hh@8F+K zIZFR-HHIja!3*d!!3#6Az?{kt1n44RfByDQ{vUtxsi(IApEwu@U1At8Hur6u_IGdI zdz9(Vp8<$%8}2!rMJ{vLW&=^tQSlL~U&uFwZ4u^6r4N-n5tmAc)gdB)LAvJwox5OD2Rr|aXick^d06&R9 z5n+zuj?!JSqfzVXIAL54tT3mS;(fiazE^h(<39c!a=8CP-fGMztrtAO!AOJ~3K~&j+ zRnLpFa|z^VB|Nxq0O8z!*Ur&Kx@3HStcIBJM{ikp*eW^yRT3l#5;)9b&4Y$&@{dE02pUc+>jzdI^p&RC(gE_k=%4 zJ>xMC)ew3Oic8YKQ`rx18xEG>K~mV^lyyzI?^jm{$ej(IKeRD4710l6tH#`f6zXfV zLW9jZD!!+nlC>$70hd0QiEjsF4$lUWyYCMGNhl2f>Z}?irWN(WN^D1hw(IGbN(z)K zm5-25JY0L3YI(^oRSVNGc5 z0IYndkL7-0umFa;_xBpja`t^G=PW5~WM<6bGK{POgMu7^ziqM)^D8omG}&OLvyfA0 zwQa_9AM17qoK_yzlR?EyObMVg(m)gFT}3nHUq(V~Tl?-5r9*A(mb)Is$DiUZsK~{= zOdZC4*B)ye&4Fua_U4sz90ets0?9URiQ)W18n!~D<{_^Y10*b359sUzLPQT}p!us`NL5gg!Ho$Rs%I@b&bDQIy_4wW zbM$Yj_{K`hD%maJ5~kt;)gT1w!suq5Ou7xZ)jX8V}3<&{%X7DcU);1l)%DZwYTve4KQdbynWuZ3*cgBC#4^8rT zxBja`JYXwEIpC1i5d;FRo@E$>qRHcKrll+Vd<8Q!vVBmq&E*2?DN3EN0Utzr<#{t( zkvaLlXb{vzY>3p5O-tkWbE)6f5BRYk1zAk6V!xWPS$^d|`a@2iqRzmM_Wpb))xH#G z9Y#b~3@6<^+sgOt+*!Y~S0CpOJi)7uak7DFS3c(H6p777nA@|P$GOM(=A1XDymLE` zkt1W^cFU(`kLSD_eomaH=P9RWOe-0o9c~^)7I8vKN~9w8Cr|J0-M>xWzy0>jM_#{v z_<{RB^Phj}JD-2|W54v~leZsy>7W1hm%sGIkA32k*)VpyYa#Zz27y=JoS9DAV%sw7 zvOXNe|D`V-@gH$>c61-=epPCo9%{;bbYu3E`5d=2+6|1CVA1Fmm8{@DNW zum8rQr(u3LoC;wWlp4%(*xi$xyVG@!aqqkD&3E4`w9B@WU0qDGyn6MO^J83`9^r1- zww*5gH0G<{_x|e#56;u(`KfvO>EinRugBdZzxV34U7gQwZRW@#5Ms{c)%Bc_yW#E} zw|BYkg+%!nTlKgi)5fN74hoY{>V>p?tH#m3LKY(-t(%qAboS>JEWHpaj08ZkOpWN` zRb|k~$u1s!m^9?Oyqp*MPfKyM7>YPkdI7|7Iz-iVA)XUn6i1j9rI9bh28xsifvA?= z4q6NphB%7rtW-sq!0hsvMX8>g*_iDr=~C;*TY_4kOwCdjFFI9@jVNAi(W!_*i1U>I zdH?VwHN#|!Eb1=WEEW}1Q>>1pE?A>)Oy^GAsum9xxSt2KDd{e8JWi}wyJ)Qn7Mh#J z)vlXL8_-*;Tg!iOh^}mXKcy4}D33ju(s>blqZ zoLWR8W10<6?<7lFb9nLix~qj{XX_N4nLhIoil%!u)Z$)pv@vO8I>bfkpco9MksVN( zwGni1s!U3bm;cv#H`d#3ltKk+o4kEfv<8(d8Am%c=dBWzG||b|=pE6LvyCU8zg0H` z+jZ8d-A#p_%&BPstV9)I(EyK;P(jv;O`+U`z(Luf>PBpod|{M*IjVRPoppus zo)lVfs4XH18*s+4;8VabgaWn^K-*&7PDPR`v8S^7E-qWo(z0U?K>c ztvfH5vPzrH^br=*vOu+*?W$g|NIc7pWHnP1fICMsGu&8#rCn}TlMvtGbhBjav8SLbPB-abX8Uu z`KVRjupMFoA|%SqD4}m=Gj@q^SR&lUB9gRsAU0`bmqWR?)-?lBr5<)X3gl6Ufn;UB zE^N8p=yFzMswmG&=~8N5d=yJe12UsBGoBgc+0~G&0?2|hO237aX%4XR#zSM-eUy&V2nW9d*HC2Q>o~$VkZO(m-ShA%k zind@~AR1gxGQlz#VWab`N?kaRX3*M<9i~zob#l@d6Dd<2 z4e}mj0WYOC$xT(^PzVMkOIy0Tyf&Kwd6PLsiFZwyX>g{(Vec!jOlvbL-zK90F->EN z-y{pKh*-H^#LNm(`ZhL7%lH%+WtO1Wx5B#RKud9S@+Y(Ez~+=e>8|7U%8aTHFskdc zr-tTItt$kzC{HG+I)l|}8l6K48Y;$>s0yu^E|RPkKdNMD83DMpPgKoq0Z~G2>mrm? zgb4|Uxeq^CwWA7$?81x6j5K*P6HQBTq-9Q$oxP4W2LKBSXI&LE-m6Quyfx+U(lF@K zItC%!>4yuUB`~QwA~Odq{kS;YgI(U;JevF6zSo4r(4wk>lS$lAHweN56e-FTrRKk* z(-nqb3id#SZkYKtpmx$WYs$EU2ru&mN^{TdkXJQ=((I}Y6za(F%E7r{HT$v8Y`>l(-c=Gn+?e!m;m)nPa;*Agf z#2Y^R;q^y<>A(7~fBnDxZ@&G_ufF#B4-EJ7uC`z8N~WxwZgiIcI_{`<@3OM{xVYGq zj$zyIQ=b?={>h86bqCP*M7$NiZ5@jXi+|xei#$+1?|Y7MIT}NL=jlg&?X$o1l}8uA zllHwWoYqjNo1HGUf!m8`Uwifa@y44Uh_IVyv7hIh`xsX~F7|o*}K!q zgJsi*r=;XCdl#jZsa}jj$ZwQVh62Aj3DU8Kav4)Zqy&L*K=$)5hDqmV6@g1WwySvt z2--<%^NE{fOQDfWRvU~NqiF}?>?DUOfE3jRI6pAEKx}wxgrRmc`OB! zan_+K(Afzhxk*ajm5wW15j>tb-3D5eNkJr~9)#?R`NO6$+5ANSP%WyI?x?z9HA<$@ zDI7i6vf&J&mtsI~X0ED+wb*DwNF6Z&CH~lEl42%UM&9O8_y91JqAtfu(+_rJQ#(dv zEGEbrri;%4sG6>;QENQmG0kkBv#QNSgr6)Nc&QF4<4}HB!IREnC5m&_rJ~4M)TUIK zM0Ne-Vy}dLtq4yBjClo-8XQ2?Hfp|jIjIZOm{g~tGO^ITVERzQi?aVN7pPG`%PDUT z*C?a)gzd&~NLgOUyDJ0*5>uAAUc=DRx(7Hj)(PWJyLk~=bYc__K?Qr+C@@=Qt)vfw zo+gZoT#&eKaJ+iWSN z;Fb6vHobqJnPpa+d)R@OpuDF)u=j_iLl&WGc?$@vEl^ggFReqFmNujNs05IUW;6HM zPuK&>+VU?e(pd**F)EeQS&=09LR1-DsbR3Ms=W8AuiDYutu(6Kfr83e;K(7~%<8j2 zg>sdkQ_Bp65DCgXVhsQcBUhu5#6S+A9bex27n0>97p-u}RN~di&8)^8l|mKDvQ(29 zs43ek;%Z}r0D;2H#6}P)1z}NtDg_wVlZYtBtnc85y0ccmO}32?d|aTGv5`I{-AH_H zow1za2HBh)sCgzLrcOB{iDiur7YuSWhc@m7^J&a395z87R+A$-@jmpcTg0TEY_^5z z3B)UhgP|lj+6LJ{@9?Nj$Mi7N=hb#pF|F?jG1c^RsI~^ACt|M3kbF7Wo(&|GMajJu&IzaiX4UGLv1_w;- zK_wKayE^_>{GJ^n)%j9>SZGU^4BQ8l*3~JRWye=5Vwdl~$P6pVz%5H-tvn2H`6Z%n8w!0Z4m(l>&pJ2DLO*n zmm?I0PiJZFoWCQO+Tn)bgHK2TZ9T=XnA5~%6Tx5gTNq$u_&WL^IAzvUu}DJ(`?I)- zEyvJ7Z=xCrp?t&T@vLcbxvY9aEnPvcD4Gs^KEHW_d^{t>1`3genvI$OhobSGHykSZ z1|Yt#*02$=YHk7&HtJXqc4RPA?kW~C#mH7b7_WiAAe%;B6-&C}Tp^tnuOx7QzJ&y@ zUHM7FWx2W&Oh9Ny)$H{U`sFap2r{)mH8(SJ-(H9%O$%w}?wN&PvJX@qnR%BGy99DZ zl<=p+15pzMh`MH#oCP3PcYf}y6EnMGKZTRO#_++KT?xR38j?Z}v#8&)lY*R7Wm#Nq z+S?ZzBVbky9HlidBg(Xlv2h0uQ$iDF=3^UX@?&&~7h4l@h`zFWEq&M`)A+kE#spZUax z-hKYLhwuDbA9{FonmRXr|N7#kzw(J6{X2jD2fy--Z+`pZpZL+!#i+M475v4aoAiNF2idtDKFGE_Efu%S(XdPsuc4}Q$tL8T5 zda9E*yvu)ug5Ru|Nn8fnhE9ztOi}Rt0(y8XnsZOu)n)q|;#nQ>NgTK40!Lzq;zZD- z{CPyMltR9SD~2+ij7o?iG3CXY6l`KRQr6Q1nm0(4fWa-z;K8zPmkzt3L76^nGpB^t zD~pVOjADFIiR4WSM;PV>Nl-GC-a-3YXu=V4S`!t+(t_ByvPHGytcw{55s)?ctL$QM z01w~26_M5xDvSX%8(d#x?UH$bvmHg1II8`qd5FhE8BkcCHThekxASVP<4Ld@@G2HO zfY>uMi_%1?;EC+y2BtB(osQOWkYto8g|$vhg}yd|V+U?ns+LZ?GAq{|)~Ifyw6)=K zPt6NFd=|usLT}g#)y)p`e@v0LQa1y`;0mJDcC-e`8ChREE$K}As2!Y&OaV6=+(<^u z`WaQUIw)2V=-9j2h>Dx?xHKSV8vFMh&Q^o$HRKUZMxLYbQFFbGruXQW1%#J73%;uk zWTvL7D!%t`Tg1%4QdA-7HX`Tu;KSCA9a<)UwO5n%ZBALj*;PXmvM|GiUMc-se#S=K zbVt-gjywRhYZps^E00;hfu5}nG1?u=!m#*Dj5SRx#6Q*c+kBZL@k*zz{U!sQ26q#h+RM#sCHQ3MFQ|mICDJ!}{cDqx-0=@VD>| zb{&_o0-G7Z0&5?|RP@VF)W#Z$wL^YDq{b%Fbtx|>axWp}O^4O0B_$S!Cg?|SjRYT& zFehx;_<&BB3C84MgH6O%qbRD#R)cSXqR5=xATCVBz0^UG`+zMeiX&_(;jzkBxK>{I zE>`ae8a3x2Qf4(ab7oKs8$~yTnC_-(l_9WONqXtZ3=DE<HwyTiaHSg=;sTwnfQ zMP}T6ae16`UK?dK|7AxNE#rV;Bm=%w9Oliko$^B(~lRN#@C!JF>Z0 za<$$32=S(t58!vCFeW8z?eG+xR8L$i;JW;(mxPnT?ct-&TeY`TEE~Nrt88YCw}SFL z4ZvARM%Gm{l0`$o6T>HSY3NuQ#nE(bpq|#{njip!aH^bwx4R|hQ8|VUT{K;TmGF=q zRcfH2g&iD2R3BoMBoDGhNTx`YB5TT83`eHx-F!iZnH)rI6gwfUt7Dbk1i=xV-_oTu zn6}0Vwa{a;EqDgFYp{f8?65c#!x=lO%e483T2hcY6LokYWp&A zUWu_y1cUPOxM=DRH-x^)* zVAiumc#wT$ZXU^LeQv`DG)`32k9=Eq>jnx}PVMkzNG%=k5H(O{k`QF7(rYrRDm@4f ztq!1O=jjR*<-j$Wqi&reCex{5=58CJkhrO7WhLHMC?-S1L%5lgZ{lx(hTE`qMY~t0 zCDX^rEzJf6p%a;V!hrjZ*Pi(Y!mqcqIShV*%d4Ax&w(wlBSy>|6S&**e6sV&_lrd0 zvB$fPnRpJydZ1`_j*S>QDdL zhu-+?Z-4yz{?iZN-r2sxfp@?A-qSC>`^$g-zqDsR_TT?^|KRPn-+BG@5AduM9!c4? z!{rv?V39V7F1!$%KEIvz%&vz2)lZC{`SiurWufHlJ!zjBO-`iQFdvw^B7YDNRRBr^ zfWNW}e)TPRH!ptw>p%ZnU--z~ewRX~+F9zK+-4t+jIaFJpUvAZzVU_lS$roc# z_Kl+jFp-9w?|IIbKk(5o4+Hjy z)7XIFwq+*fbhnHN8;4+-)N%&aU3y2BvWl@XWwGGnCC*isCCoRo^p3k;h%UNnT};iI z?7;BR8e&qE%1$RhMLD6eGP-$JwJRY2O(OL2_=w7gud?}e>l6>e2O;J*pz4opj zKmgMUZd2))^*7*v8^~T)6|LyuD=TfvMppqFlNm_EP@-rl06j8&<@PL$Gkav6_k~!+ zXnxSGunCi5Z8qwpXuOL*seMYAvGU4zRn?zGl8}^swc<4oR__!m zz+kr3zw#iCqhrhgrZ}{n_DaneW`Ktxb~H&Sb628zfJ(Yvj01%us{5=PCQOm!I2_|7 z51)6+iweS!nKcAPHJWwZ45)@o8g^;+4IiWH5B2Re{z6K2!V%hRbac~Dtl;TBOpAuJ zct8+p3qZY=%QiANuf6BC<=V|7&r$w`n*tGz02^L{3<-gVjX_R9)b5*(6H$V7kEv9p zjzZoK-AjRDomdzV;_lj2he0iZER9;GjM%BFsl6uI0Iu4BQ-hxkasXW|=~X*igN$CH zY{2%wk)Z~8l?qj^q%9K4Ch4hGC9>W{#u}_^7vdu=ngVY{LqVtUZB>>>V)iNF0uq5! zT``S2Jc#7c?PR8%Y>BMElhJFM2^-N)@l-y>x(N*HF!X*bo0H-)4gibec z9mnv(yp6mOnX%;~^&?>{A1Jxgyvkq(*Yn(k}B;m6np*+1obX}Ih z>L)Y}nn!aT`|?jysf@9S3Ck+<4=fC^qhxN07!6395|w8KluPQ3ifffR6&@6giX-GC zcf&nxO9DWBh{SYqJt#51(w^`5O%BEze*=Tul0P#xdeQJsE|tCDh+qs zUS{F|P-bTMvbU-3R|Ot~A^JbJcC#z<$(*q#2`_MS9|C1dsthKV8%8ZKN7q~cvzdsV zHdNAdW=@I2;MzI?wT7gQb3B(^j!1Lao|EP25@Ol+O8CpD)a&}1$hq{Gz}nYz8ztD- z=pJe?kC`Mrl$p>1)niu`X3x0G$T8e)OALdJjrPjSEJrbR)YF!*l`meUQ6XT#sxV$VEBLD;a!eR!!k&z!T`4v~>Fk#{gxV=FSl zJDdB6PP6rEwtU8+jmvSOY!)BHgRHvq#+A-2K3-H^2Bd zUi#>pEZ(^A@iKULH@L4!<|- z`PGAu%_m=fW-ndiaSn?}_uR}PU~XkB_Bk`h^V_>u;uLeHVVp`6-McZ`*xHbzw}F&T%}337no%VvLottLmfXMFT8*lPR-@>`{(9ZK$udez6iYU{Kv<>Z zdn)IO3H7S=^HU*cPX-{)#K^7j_=3|{WWcyTJE(PeI4Dpxwco8Ab+M|HEh(i{WUB;) zNgZhv6(wvMMy@bXpp34C>l3Du{4fC?XyZ`KbO!C69;>=XiDD!QmRgtvF)59SPzytp zst}aqp@yqwnqg8DfBlv5qp&)ke5}Ahoi)~SeTN0t0cb%C)(o`yB-_yoaF`rA6v|l# zt9-=l1R5puQ&lL5j0(O}jHNhmaX=!HOgJRWdI}Mnt~*{{S(;cRXyBm1K|lf^FdT!* zD%E=zO0nQG0>mc%*Gj|{Jg;`h#+{Vcu5^DT>IE8C@RdvmZT5n0|l9D8txafRrOzZ#vAOJ~3K~y))tkqRhCa-JbYg=?F z$xD?DX>LKqxe!~avE42%>iZ81b*R@ey6cb+blPAo>Ajl1(piL8^h}8x1qPg zbrnRxemX72!7`SyiN%)7wpS@KiQ<}taSOhZRSYpWOhD2hB>}Y&(N(%eI!wTmf_j2B zY38w>1M89<7ItM2qW-L+d$F3K;j<Z1nWWKCDjdRG*~rF8y=dwqO#{uO#=kD_F4In^g0aD(G%GGRWCTQAD-c`3uCAcCqMM~^rj}3 zgM;)vSRFEo@Gr78?GOK}LKA2Gh!^H z+Fzp0Xsx}Iw^l($Gi(bHGNLk)$_piL392)9HJujF=E)sWvMRav@YDRI-0)7+il9{K@}K&b3cDBv?eGuCGL0GET@?S*H%P?pdGN3NuV zezIek8TArNMP5kZ8msN_4d3?Ft0!u!~LEnQ>;)#21~Qi0c4) z+=d$IrIMzLb6BrrBGj=bA5ei~UmGCjKBLl&igPA=>5X$LFwZ-L7^AKsFB6l%f+;oG zoq<(i841C8C4@X9?lR7RZKu<=-2=vPWJFC^^wAMk>=|-06&^5r-(^Zpx#|J(A(TGP0#5Cd`20`5^OZ_p7t{*l%(S>^4uAcK7%cc6V`Q z=iTEj?0nknBA;!Zo1HCV!&^3QVRMh&HyF}vceC^gF!p2z)IcN<<`;F_W}HtOVB_i2 zyU%^$@&Ee2efAq)`{v*JX}t5!vqxWxH$U~WfA;`gK%&1X{^wu& zbo}H`Z4Y1GRus4XtSoZ*I%cK=VrJ^gI(4+*5WC%gFa!{R@y_Fq{`Ob@`lF|Q_w+s5 zp>~5Zfd^yg_cwdsPjBx%y}IUj4Fl%fVTKC1=naXg9v?MWqR6;=FYtU^U0pwXW8S`H z=Lhlho7=rt@1B1>FfC4oF~;T0TV(7JcJkph`WQ8f-M0%HW@Bh^^I*4gcttxDmk?Lm zAaV$W^OQxaIj9^!&KZSZMxIgklEH#gn$QY7@hTF`h@Rze2xy^m(4THhI963faf~4; z4-{+_i4_f$i;f6p+@MmATbgeL@i(bK3Ae%$daH`+U9oZfsu?9EA@s`ixRU8p){qrE zOI4~+QAO5Nj{=~oNohMYo@G+%pz=;bTlD*CcG5Ym&Z0se*a~~75b$(TguP1MwI>@$ zI^_=p0gTS08OUEa|tQ%FC{*(;9ZR&CjH?qi-c;ZMVt_^8etK4UQ zt7#N7`rJm6Y{?uoih&gK1O&CX(LG0va{WtCPjVqUSiE znbRGHYT=Yy3J|w-3p%_PoTput7CG0v@s9{|3tFLEwUVl1cKaU8sHfQhkJtbLepxPK z-GZGSq_YsAP`m{+%Z0rg+_UIm=o)QxXs9H@OSL#(8L=uK(vV7l-<8N)5MW;LHo02e zyH~lh2eVu|0B{L`o-{2S%}Sf3p}|B}Y$+9G)g)vmnUNVSvIS@6(DE9cCwC?|RJ+GA~=Q z$kPV|$YCv+-WV^-GR;cvV9FG5D~vMLxLV18-_Mb4H9xI`T#+uaT^I2YI*)yr~IEzN&`azFSK;6fy1#B3x4IhFSCJ#QUR-T8(H#5P2_-PxX`u=PD-KO-rz{( zRSV!d@V(@vEIIExGsDXw2LhAk-g`rbv2kyjrD3?Em28>GpxLrXOC4!2A6_L*KB4;T z)S_4erAr4v?2Xd>jqYUY=tYN0>NW}X6IbGcMCNWVRA=0*a1(_n9^+_P*orwxHLQ3j zSw=?0TuhOj{WPy%%9cFseVlWplK?#uf> zc$1C?#n7U7!aUkAG^nLsEg7+PX0T)zppp*+QvyLvrRav&GOEo;E!Bd?mXpYvcERPZn=sX)7h&Zfko&KoDs1`x7 zh3lwF)E*7Z#loP0Ws=bIS-Z#{RwFhFfI-EpCRB*Z;x3_9Wd$<+(X&HJSZ(rG2;2`s3&2S~wK0f@J#!{vc)%~VahdRl49>S=fKjwk zsSV7Km($fYo^~?FxO85Ry#xi07rB9Pm86-@p5+MiZGCjQ8-x|?qNGK9sfPR58-kErk$H1z86!`&yV>SvL^|F}+*$53ck`KvZOjBlo@aVd zPY~(pX*BS)`SA`Kuj2OYEN(Y( z>2mtPJOGKv;boB9V&}yPAAaBX$&X+B^rtQ#zHArQvos}|nUU@2<*3@}Fm&_HrdQ7| z6EKJrwB|7%5C?++Z@u^CKm3bd`r?!8%xBC8Q+I1Q01#_3+ctdSW0$X;zWmSr=u2Z8 z842^4yBVnV+2WYI=&hvEt}aOZh<(iOJp1nXVte8juixcM*)Q&7|SV&^l}ENBM+oW$v_VF-_~fh>cxfea|GHB^DW;&4;Q^a9@DBJ+eI96d=$MMrqb^3TFzf+ed+eW!UE zqAgq3pHk&p^lGm3iaZ)~L=__sWGnPZ3z#YCD8p+-rSr^mweV~4Xp-9V=OL=9SF9>> zRrN&FD)N@im`oN3|InE>BcXB}hlfa`gl1AGxtUyqz@0qQC2J%cBUl`#B5&aE zMmU~uK|d;?7n;)=>tL>ER@kvhye#6b&o_!`GA35~A?wP4W2%5PZl@5s%aDTTy3U^} zW3jPG*m`sKvYAhS*_b3cSixzge5;<(8!xE5q0UcC6AIrS&DUHIFuYlZb>R9S=~!=l z`Bh9+##ef^jH^5k6>A&(AZ3SLEv(zAwoNmGQx726g`H{H-2(u-p~cVY;tTp{)d^JY z0aJ$F<<%^NF3l|1sHDv-D<)+91%hg0b0P^!)N5KRge);WQ^IqsILHO_Y(?8l9j#79 z80ysYX+JbfR2VKhS${S4*NSR+b1-)Vax?TsS?3G_Un=yjR={m|_c2y(TxUf>;1v(^ zum^HFDh>B+H~_N(4Aru_T%YnQf=hZ!c%MQi7GAx|LK+GElt@<_yHe9&sLhT@r3M9* z1l4~c%nEN@2n8dRieUsbLj%8I#I_X1afg%*MdakXsj{jIEHYUpCNAC4t3;;QgONGS zyg>`$7lZAj<;azWiVV7j^SHAOP%@$;55ngHQaf)_O7E_dRE~6wcqC0mhDg;g>qUFP zDanY`yO>$IoSZW(+(sCNdSXdWByi?h(p4&{Dim}Q3VP-7lYfecW082J~fIye*cMiJ0K)Iy1; zgkp^(G`F%N{MpWQ%5c@#;tudscOQg0YUc@ivub30CS?GK3%ieX#CnnR&2)-g&vKVG zYuQyN7+N8ab-}t;Nfgt@Bo2X6|`O!TWAqbi`r#h7Tpcz>Aphz}L%vOCUe5kUn zEuzdW$SBdBPG8F;m0(1+wD!l^3~V$}v=hd|L$+ol zpQeBw_aUyXENG>VD+@%WLWi(X03ekzl2`{S_;yR5Mo)~G>2TOgN1lNhUG>I}48veS zoAM{JkT5_d(I7VPp5~~n$;=GHAY4T#Z^zwvx7)jn7~8hrBogsBadq~HxVacN7ls{U zSe$$sa`@fYZ-6ihSVT_1b4FB6F{AE7h56ioL||TC`pr#z`KwR==#St2NB`t6A3uJ2 z|LW%A9^QR?9)7;qPM`hC{^(h}`pWfB{>04>zWm*H@BQufzwySyxU}#5roHm5FMs`R zp5Ax)(i`}phxx{joxl6#^SAyWpM5Rob66zyYHh_G3qmVB)AROry-+uh&Z+z|- z|MbyIdGq}I>{(0liD#ef{;KR}ZV#^P<%_4^e(M_<&&O$l_&!CVj7YEAiDExea8Q1^ zGFy+d&1%frBj7f|=JT&^!vd#~bBpv1X*U*Ez?Ly>AT!LiBCXuro!ze@b_^fRVtYi) z+$&rh!<0Ozyd;EsdApKUSn02rLR#mlZb+rf1$c`yWrj4WbR^t{u~ksckPUP8!rm=J zu|A7!I~hg8XS`}@!%k*3pcR31Sh_{!r>^-D{P7x-l#%H|mKEz74#8r^T+hQQc;$E& zG0CT>J&LG`ZgHZOFK`Nyx$ur&Q-mzD(evtc(Xmb&CYCBxj9|q|Rb~EH8f-3YKzYCJ z$BBcAkah*=I@{!O5rxL|m&{Qs36SpG-A%S&frbhKn!@T=z6{Ij#D4ZxQV>Y1= ziIg-$9Z)eMJ8bO=A1h=%wk0X2(UhV-q}j_nc~m6moOoy{DEwH0s;HA= zqu|8@s3Zgi3}xLqw-PBmeyt$Og_-sf5?v|CqK6PtMK{s%rW_X3bpi!n9jEEcqgkCi z#>)kT#CbV9n0F|SOV4{I4El(oF@;G$VX=%iiL6&)eeRWjse4PTi`Mm){5e% zm`idu>#dE#oocsIEM&)CA>9LL$4Tb_Z%ZHV`br9yTpmYTv_MACcIkK2H)v*cMXiPA z*yzmOAU)nTW8E(XDk(R7z(BgpRzps)W@|2IM3%8IWaysx_dxGLdIT^s+HZE>f{^%1 zCJb4kF-p(~YSZk>{_wG-7)L9cqHYWP=7*v&?^>g3aW320_1dgKlm(ds0c`H;uq#^u zQ6Xf+?gq2X-CHSBzbTXkH;#<{I>|DP!ltGb*3&K%io;IMy2HYrip$Zl_?nBz%s{cY z;2AU&SvwFSgsNthVEsQd+F9G#8|vPPmQjkOwphc?iYCJe;#^gu*N%t~mS@r|Jb(o4 zDhZczke@(QWX!qG^cX&j791-ahAB#tmMH4r`YMLS$X&boFl@UPna3PpjPLT z9kwI;1{h)Ks%2RFQiW#qt_V$^Wh|L(!Rsc@m>JLo|cgIW;Qr{ zfxTCXIr!=6C|J`_u}a-u473qn9#0u!XOFRv_5@J#J2G>okHHaJs|%+NR22idN-YD$ ziE>QdYR|_Q?GTe)ghOf2EO8}!am}!-6PSQ;{zGB(1E@C1gg&lxq_}ci{A3uHM!>0!iwu=j=9KSf|x!(q!jEk4RD9f=f&Z=gvKY3OR zn@aW+vFUr&odUCX{OpZ?`j@}>XYamrd79^EdzP-f62->9Iz`IF81@q%yZ7POzV<7> z_h;M5a!!f+6!1pB>q{WAg?^Bj4Ov&ehC3oL#$H^8ecl;j8y68_kr-D7zc^jO?sA3? zY{U2S`QrL|+sqy2LnYBDcf9#9xYr!mHa6>69t>kL#ZETH>Q(vT?j%Z?%4U?*a#Uhj z-mt`y3J`Py#wedIxyYIZ&@nCDfJWURt=1|HmSeG3Fba#emG-xqeJ$XuoYNAPld^ZL zrLjUNn1IfL8`xNnWz3pu zn6`wK3)4D;IGLGI*r5EeQ1ym15*jXTG*#-HTHp@Wsh0PoK1GivQR*a6sKY9jlmzTr zr`dvr*#xJU)ah7sb(jnE&5E4Npb&sXdS*t+-5W~3YqfO{c4~c~&Pj~}Guri4blp;@ zX-oCD3KV;nj+Az~sZI?mUleOKn5txZp!M5IATP3_H90_##nw@MHcC~gN-$wj6xa@` z(gO!!U`oP?{!{0n97jF1DU!D$*H_Fk3Om!LtkX%nqt8Z%A&G8A6N{R*pd~s8S{0=rxDR$`=LLl9)Mt886AG%c`kWVu14 zs+ilxPb1?@n*Tjt^~siwu!_-U7=jVd8Vk^ymGj@&wRG(6V9dZLKqk@_fhM~!C2}*Y+#Yx+VoP_Fm=N& z24+;EJt3REJ#UUFdYL~HXkBX(Kq6nTR$ zo0zmOezYm|F2%@Qsp=y082yGG-Bgw1FX`cWytiuW48il6!?y~sGSYQh^&& z{`xXkP+Mjff$B9!%My#6q8xTvJskx7t4k2cSFIRffxpSLmdikX|CB*;YsAZT-gXQH6HO4hd2rmx!557+2P}t2ZQC8o73d04jyN*vy&9 zBQ$IXS0lugk+3l3M%FP;89A+8<}AxuP`;&`=OhpYD|uOQNqMx~8F^=yoOKes2?ZE% z*r>PdsGJJqdh6y))|F~;tjM4O0vX*LrDbNmjpi11aG#W5h_bLw#HT3|nn00ZltrmJ z=@gFabULV{a}|i{jfZb0NIh~U0HJ;~4L%rgBT2_1Hl(mG;a(y%)fZrHW5AFuuUz=D z+1Sce*U7B*0Di*ebYLCj$T;(N*UP}*78!x4`Wx$T6?2&lA7gBDmh?tVev@o5sb(r% zAjz&u3pY2MQ{5lZTByMqo(J~0o-I2y;*MMCSy<-qIzI6Na@dsYH``M4j7rwRs$j9IO_$Pn(-~8Uc`Q|sj`__~Fop+zU_1pja zZ~c3}^pTezpZwW*zX4!Zug;5C{`Y_IKmP8w{)0Dv;pY%%ATu3y!sTgPKG+@vUVRgJ z#(rmcj(N_zv){b+;rD;;@BQRoy#DY!PQ%BAd$GkeK%-$2^Vpxmwy|BK6RATm%39kh zU?d1u%Aqn)QG%U`;(8;WJpX~;{QSTFNAJ9BBcDCFefH$;n7C)#ruAFR+#lTY*Izz= z?dxC8xsS$)>xTxTHI84S+ZwPO27w6&fEuRXbZ4jc`FsRm;QsI%3s0OgcJmA1+GF!E zedO)kc^LNn42&^URSMYu&()hXS-Kt9VJmZgr>eTT`_30LNss^ufCMQ+6G6%nDN2H5 znUXcw5eg3xbXcJWh2QNL+wcAfezYE}2-^zVA#(^SXp$0V3KB68fN%j2^KhrWx4WyW z>YSbFhg>W7*ScT;m)%w8eBT~&Sh;fL$hu!x!ME{-FpO@GsyLr!kda%(pPjHd%Q4o0 zOf8xNU^#@@J}?C?XCpy9U2O$RyMQ5(dZ<={0Wl_DM$!Ufm0USJH4 z_Rfi_^C+pWJ*)^i`ywTza>dn4x*wJv47(%E!pKxAT}LLGdmzUSEXCBwT%lYlw(O<> zXNhJQO4WD*2rAygc8c zH*VLEAqg)$h0JOTg{yqE6DCtWq!?TP03ZNKL_t(Pk}O~S6X@s&Nl=qFuCUWwMCuMQ zJA0tl?%2Gli^_+3vpQ}!i`M4dojoLqp1%$-Z*Df(4ts-BXLW%GDY2(juC1=CP$mwz zGc4B=g8iq_c{Cvb-E1A!iUHY(R4Wu2(wY#tsFD$bo~UH+Z1_;@CFb(d%20Et zAk9_=02P+32g>QhN!F>Mw`_BbtO>t>Z9P=n!os4=-lB(*W!L95nI&`JS`Sq%nhzA$ zvKQp3X$nF;O1(ua5&k3(S=9DO_fcJYEu?LNY_gO#$XuZPE$VV2ETmjh)-dY^2XO}C zN&%9b(fPM-zEn#X)ngYXG9^|;B5ZPCQ-!xur?MRY+>oW_TIF)qMK3BSZEPDg8x@X- zldisS=Zhv~-F3swKr$C25yo&7r50e!YC}t_HWp0iF4ku8uN%)vz|*Qpq^AwaBZv*l z<5fA^TqkvXM$6eW>bG3~sACZgLAG&cFYhGTr=m|y=fYYsS>QAzN|{YICiaL=84d-0 zsi1TCh*}{H)Pg2<_SBYI{nR%J!lp?q6CZ*$$-*#{E~^i9qk(m;HGWB;2{appJ~APd zKqmHLFE+fVI+3Q_SXxc4rg_Nr`9b+r@83ejMv*g5EG3PmS?v7G^87kJeJK*EZy!_9>On z30xB3DpnvTl=e9BOX8gLyMl3b{IavGTKrl2HGEi+h*E`Pj=ZdOE6utxcgvI;a+k^2 zU|l>zQeSu57TEmi4MqP&E>O1_1C*F@7Gkuu z7Dio?E?cQ?%;}|t@|DzB0cSC%#-XOGOeK;&apYt$HIj;&nc}VMfAPDLIK1LBEY0KEwSvOCO06X7D*N;*i(oe&J>@J>L#H zzp$9_3rvhto{m|hTZhF7KC-%BVP>;V+2OE#?dy-;dgJDMuN{B=Uw+|ud;Q^e-+t)( z@RL8WeetW;4^J=u%wPGLk9_zCAH4bIcfS4VF%ItczWmCc{15;A|M=hi*YEi754^qM zyBC)qK0bWoU;V~sfBBX7zx!|g!r^ePu1mIr14y{}fNgfTbk*M+-~Z_R$Nu={d(UtG z@|p8*yB(9u=>(aqL!bmAPmd!{ez@1zq)a_*m)T~ZC_K9xsRV5oU6y5k^U?eM#aI67 zzkU7LG+aNqe*E@zC0sRbiYHF^QQ;K^+s?*+_@|zI{`^b7{+WN9OoAK7FGQvY(c$h( z*$gHv*%hNIC^K`<2pk_60+_J0ICoFvHvClBR@Sx6i<{vWb~QW?XNOb7785o$2ERk$ zMR~i->VjES#e`eVdc{eTRg^&m*E<}Yp-4VuvsM_d%&jbD7Z<7-KZAlliz*S)KW!$0 zvW{-inCUep!lYeehH+@Y4(~d?YT+3f zlhF8jZw9TAVtaF4$`E_=M-&DZ=CbFOr&#I|dg@F_h+&d9vA{EvU93O!RD_R2ai&*L zrL>Hxy5clxm*~pax<-nmsbteop8}_5qV#L^r>j>7G*SgA)`EhGL8A-p($&}{GPSLY z+$v+$m7VD5cV~3PvK`r{r#&je)KO)Dh|CCAKMmcn9;NF0nj)h*KE+bm+mNfPPEQCk z-$qWit>V23mKUOd1*0@1SLA5^e4z-Y;BXzgJmtv|Mx3vKfEv}({SxLCW5Ob*K!(+} zwopCld~);5*zubNQ@;c&bEV@CAxL|!&8jCti4M~duZV&HRHEzgeVzOLI=LuDL3GgA z5ssADF=N(gLP{#` zM!Anj4mi%N$TMYAmtk$2FFZu{nQ6H7^;3M`xVEq5<6p{waZSiD*q<+@mi>8hGqXIs z<`nM%`1*$fH)L=v5tisNrR#NeNJ8aGTyU5V5CX1Sm8wz~SP=p-L~j6VY4x$2*X#or zEZqj7?Yi8~4)zkG?W%*phL2jFh}o?qjW2_RXoalGpNY@;h?oTDe7(Fd9N9XHB;}@_ zN{VMJrUbXYOOBQnrA0^u@j{E}tE}PaS%%j9siP@_C4jaWZ#p&D?LfQXT_y=z_neVW zowh(S#iZ-aJ@*shp$*AZF7%=9KnjO271zV6J;xGb446YL5GzWcC|IWDu8jlMEAQ39vq2LGXg>bm$8h zucWIE;h+y9Lc9ovJEBKf^W=Fc)MhQI6YFA%?LO%Fg<6yE+&;u=D~Iq9eN2m>nHh4b zGe4_}A(FXFCy?gDvn#&P6*GaZ_3kktB+cs3X%IWJy8aTB(}i(~Zqq{R(@13?woFi5aI;oH$iVJ*`FtxEjV8C8t?X zSzws^Mkg_6-I1g?1qQLP1cn`kXhMvE8bI%|kJpetn=?*uoImINUIZ z=OTd|@bVWvN_B8Iy@GT?l@!Uq{g!?(%%np7!`ZMRa$%Ku|$j6orJ2Sg2 zI&zEyavnA_&)eJ6VUBNp_w?Fp4_|xr?N9#EtGBmz=FPW%_@$eVePH|G`?r_g;a~of z>)-k8{SW`SpZ=+z{+PS{$cKOUQ=k0wlj|9FxO4gZE1&<$|MWk9<`aMB?g#$DZ@qo{ z-B17F@BZKa{P)j4`1AKJpSOwK&8YaR>v>>zS0NW>4{q-Ki$D3kKm7LJ`@sDNKmDFh zzvtOk&bP;~YCL4MydozgGLJKknbWsR^FzBTsHB~AT$OOJA-XxL@|cwagn7LF_V@q# zSAX`8-+DGTzkPUh_0|nfhTKO_TUT(%vvL2Pzi@AU^P69d;~e7v@u4W05dq&KreUj2 zV2bR7+Q_NRD-7Q0vy$onK{y<`=X`jWPs0 zmFF?Hfoes(C5xaGh!YPj_1#H0ssw3P8Mr$<6#8hn9@jySv;WKr7boy^Sx+yFOe7x-R{E@K7#@cbBrFWk#f=zS<{Yer_O>> zGDS}5nb!Q=>bht_GGVlP@L-2}jOMLC_*bWh^tP!e&zgM?L#sU7`UIU5Dpi~MlJwzF zQP>QXyhLBSME4=>a&_?#bRdDOZVU;8H$wJQ7LWieRLqBTW9!`)T%xU443YXI^=7Xk zw!%cC!1H4EEi0RomE=s=Y$L{6F6-cop$$keXpGo{KTOoK0W}?4MG2G~e)R5}&Q}`^o%{v@l@|tK z)!tojtxIKK0pbNr7PPL36}%bFKIm3Z>KsLU&aCWyRsMO=1YFjKw7j(?RAdw6#m5(k zq7NH1`O7N$_tf~ch{zeI<2+iXo11UlUcwt;N{w3+juDl5jTeIiP2R$CGYgZGu`RQz zKV#XD7fI)wl_y2~B>Dw&!>VLdCDckBI3uEFvs6h%k3-zIf>=3+DkD9OOPX@!odFTn z4~9C0HoByTljXlov&}MdQ!g+~aIq|EA*pFQkuKs|<`G!|R_J2up2bQU8u=~vBl(`D z8EEtt^JHN>MyYw%JSc@Exy%PL&4$%%izX37#NxDq^)Kxg*wz7e8)7vn$B{#;*Iu?@ z2SK*mucfYGV{VpId@o5NNn^s1n0W%V=wg9xYJh4}6`7iw)%=mdg`7}JcYKH&S?UR6 zY@OwI9I`hSrU=M;<864#^);?w<>~4@L(o<<-5_#Sv!SbA#EWXy5mSRMwgVeb98U2I zy67S@usO+hxtcmO!SiPD;SXZ*uY27Msc1<8>`>fJUjEqyn%xQr8RxJhvvez86(@bSp zMabqfNl%e@3tWx}F`E>{4^&mUYE!7dN0OaOpUwV%tI1|W#*Ll(5iv?HMAPHa%))@#8Uc-z z67MeF585v%qGcRK2$I2ER9fX2(u;q_@ytvgha7-MnB|5*O~El3PUd$au5COUv6;n) zJdPZOZT6g-*c=gdd_2GN`puKa#|_uN`v>3r!k1n<+IDj^JH7rFKXUq;KYelc5@S1k z?Q5t1?N_(+cYfrrf8sCPy}X<;@87$(9S*oY!F>4H-Fwe{`_1j2{OZ;G<$wC<@$I|b z|Iz1u;_trWV}EZeaAcQ18I{L!7hnq`0nFwR_}=xMH?J>0_u!=$F8fuc^;it3e-X(?ONV~jy_^W^V?)~xQU-{f;v(nm8J^0;`L0esN7?IOZ^Hw+w zw$LC`ArVOPj8O3AmU+Hy7w&Etuv@cB*vPDq!OYL>aB*h$?BaeLzH;Z@p&u1J_s0Mm z$?;?ck$XB*FqokJBB!J}vxn#qh1x`qG+`7$W2?Y+1&b_M#e}>(&!S;+ z*0~v0o&cQY$-D%m1PgSDvqywvcu|}=529P|%0{}ASUs7Ci$vV#G_w?1EnyThaj1r` zz9Qz!X3#iY=0~wQXJu=1QI+NFI~f94!_bd*q7)t5bg)kvuIV`;+r8R``*V!}=Scx2 ztK%X7F3;fJikS*bvVFdR&7UUVU=PSVUFOgBw$1HnY);5iMrh2CN|}wckQ^YAobQ$_ zF?+hS@+e4WfTKqYUGim`Nd?@UPEJ7Omr}D!0%41KoV$HuNHV-eMFBS8br{rrACg{g zSGwzFT2!OdVhX$ID0W3q>0aIXF7%3FPlT9a^>WO=8ysXP&*q>tMn!#xax&0$H=Q-C z662{hU~!E))OxCLNfqA=1j3S)>s9O3m)SZb3F{chk-Nc>Nv<-)Fl+o`Cz_qf0!;8-%v|r<`n0=K%Wk}MJ)2p9kCj+*v&_w_me4QZHe8H%!M?~oOigo4PHuw1 z380r_DyX4V2$j@Vy*x^S0KmcWMD9Z0EjAV?ih|%hDGTYD3;bRE(X?v@@afjfqP+fQ5s}XYt*iZWDf>4N*kteRRkwZMzt!5Ry}L{e_@BQ zMa00UMZfZu4rF@7SLLkYj8e+5Khq5E3Qatts z748f}iHizK0}w1BXi8Y~E3HO()Z0bW5Mvrf0Y@w!_5RWm7+n;^?%{3K`b(g_oMdi2 zSF3GArbLBM&8W+CC9CUGI4+NklTBI)gDuCT%*<4GZ&cXL)cU7IY*VNOthdT8c3A_f zCY;LohGr`A_pO4hqY3e9&3(g8VY;D}&Qz;>#=L!nCV2W*q)?LvNfv7i#Hwea2e(#^ z<%)om0Ar?6RZ1o7C{=ilK1=d6T#U_Fb*hG5MF0U+%JVq5#|PXh^ph7xw9&-to2NV%Guk&5Whun zHS&j{fMSwHrex#R6#7s@lp61Mrj?N^b8?{40CjS!el_FNwzzpnwHndruj&(e%!)f> zF`jjmvUN_g#0~ai!)~+YsfYUCc5z8{9a^r zRAEI3W(Z3QmRK`uE}606zZBCHk}fEWE9a6m4Lz2ET4zANo8HJ%TtHr`-NQBBs4Ey` z{ATVB*wRg@kfn~FJ5&HhM)j#hk$tSHZ*(fF#F*=zxLNOL;ZPQV%u|w#W9#h5;+bZh z&{Q@#LD#;&$-U1)d6O_Pe2|*FYcSt>bu6<3JBTLTi$`R{OywBu-{#80-;M?k^pLx-;ITKSB%{8Pm+hHq1O?*7~HzRAi=`%~>aE9OFeG9goa! z-C^M;0ndia@bJ54R~7$SM^#GWDR{m*zFon@DXS7+s`IvG95VwpjMH+ITUBUNvJedZ z((qQofy3E691zI7zBoJF!g1q%1{}lgA7h>)PLUG`KZJ$ho!fl7a++S@R75Ff9cb|_uiN7nR^&pe*Igg|MeG-Z~G7a zW zUA*=B?dB;IZl9Xls+B^uCL!;R49iFJ@bJ-#-?@7BH^1|N4?pwZ&%f(a?|9}b+xCPd z*B(b(VE4Svo7Zie+qerGBBVyfDdwY=5x~;{i}oucF8;r-{N+!*@xtvi^LYH|`gE!} z3hSvEp>>)KB^J^J98ZVsEGYUj*+5quBxq=++37SJ>q7ICI7-P- z@;9)<;Q#}2+884Ta>7Q&G~c#E+Sxsa!JftNk>~SpaeH`v9N)Nl?#II3+(tAwtGXRT zJ+iKE)}JP!PpV%N5GI8K1Q&_OFMJ-LMo_1iA8Ahh%^W zIhv4rJ(?&1Y7(l8&kls*%B9Y_WRg_W%nl`htab$Ey5eDnf>INGaK$;QhWQ5a(%twd~>4i4e4?5^M)RvK!`>o|QMAEgrVeCixy zCFUDC+17c^R%oP?Z*+Vqk!uVtlXk(fl_pb|YtK0-L*szHQQM6`0g$$*lLE~S&8~dVnKl9_?QgvdbQR0SHQ<$! zu&Lolk;o<+_GVH}fzHHI_td%ts4q>b4|yk$MDE-IHt89Zt8nNMZDFQo0+JeZ&AL^b*Z*Zoutxqa2 zA^?hVrZ!_iuc%s_2?(oGRZx1w=_&VPO~GheT%Qs;ou;I;k|9W>bxGRPS>se0s^_d{ ztB^ZABRXNLsDBfNOJb)24+@A_cU__T8?`Ds<|o}_-`L=CM{ ztzKNXg-)iAjc-va5O5#6wlj!w%@ktx1MrTf%0HHvylhDnNHwlXFVk&AKx5&VqYBCp z8c)QBLwhXaM7eY?N`qS9ic0X*C|1IOvK2*@Okt9&@CH%1F}6gSdB!v`U@H>x?xHAc zba+lqOQ#HD^~VWQ5LPi#-?UH$gBYGIQ&5dOs*oC}x?NOE4Y?Z_?p~REM7TFytIVcr zbw!g^GnCTzUFyp{=K+gmNm3+%-jY0R02N8ssgN^{oMpTngH=0*$+oX?nZa#?Z8>j9 z=~(qig|@UGMjK~|Jhj_Pa7J=bZ)La@%yzi21D>qFd((mJsSpB}>(5rmCdN0hOLNU^ z!q5boz9Tdm;B};TrNzDcqLMK zp}Th^z-2obI!EzF-$l<;F<+& z@aXV6GtEwEC-~+#+==7xtE+ME&h3+#=hIIUPtNk}NnRgt`3QFpIbut*%S3E(GxFlv z-}~lUU;pH9ef9VL@O!U(`QbBn;_v+2`1!xMJ^S3vSH5}m$uFHf^Mil-=l}L!`kmkY z{VxW>&JLS>^SihI^p_sqUVh{s{lkCo>~r^j|9AiOZ~v>`{o?1o{P5vbWLHYEVz%vY z=01?|$DjIC9`3*Q&;H!o54U-Yty6f2VX`cqDy_R1R3|hXIOX`>lY6f}x%a8p-|_u- zAAbBjUw-ei|L*Sj8^ew;00&@ZdU-m;<2YTz-2EJ88Mp1Jvh$Z!yDab|%;F2*{m>tL z@156ShWYr>&Gpr7AI55NVVYMnhc!P*Fio=0_MXqiAbn`Ty)@YJ8OtY2v{n;NY$qeqMn|=4*DTAjF~g~szkF3=D;+kL&RQ5OCC*hb z2$X_Zv`$dPx~M7u03ZNKL_t(YbiY>l$Vtb1IQQx-X1$GK0GSgRW+|bS@|DitlPz%@ zR)Y(qdX@|iqR0v|pAa?MjU-#~1Q;NxD}qT$?!z|Mvsa}xH=rlzfiWE~!j>QpqO0A^hC^Sey zl*4#sLSM{$JEB%GYx1&kQgp7ygV2dT<4@Jjq&d)N%1R2V+Ti>@VLVkrOk__zSDsj$ z1=$L&gOGj9jt|!!po1xqM^_oLu^UrwhH_9N!^*OX|09VSK=62SjDXZ0=_H)UW@`3a z3J#M&mqkc%Tz1W&8KDstY9Y6#sbrVXA@MB5nF0zjhwA5m6fAQIqx642WiUy|XIyQ< zzxP$*#adUU4I^*@iezn(Q_KJw z97Pm5nyQi&Yp`A@qEhZOz_LgCt#d6fh>HDP@sZ=GnsY_`6Xd7qlm|<34lgueHKe6V zbtWsa3>*!S2B0K6cj^T3{xqbUX*O1wO>a(_fEF$3pI|;yHfZdTDVeV|i>(#ksv4ic z`RffkTYL06j^!(V< zNn>*w|4={^-)`GB;*7z04b{K;lu{pKR{i(QKyR5b?XO zuG@$_DNq^xm(A9x*&Sz>PVq2C_ONL=A z?yQ<~Dtj~!nmOOfxa*MD*hBdyIx|;Mq&nA%h@tW2$SFlI0Ev^qXEgp8>#&tK=K#S_ zU9Qk@l^k-Km?069?5xa6WCEfVTe^AJ^QU}AkFUz^5d(Un3HU{dKuFMN!S=0@^pRuy+8WB-+cb17eD;LpZwx? z4yPxNx6!1TwuPYsAfHxuKtc@@aLeL8hUHtwv(G$u=}V8EfA;L7@4xr(Ctm*Yd!GH$ z<=KPb;dV-LTZ$-uiV|6?Ya-Wg%3fB=mI2G#y?k{XzQy&`@$uW&0HQ}>sgAv` ze%8Uhyz4*tdebbRpe?EYPU2I=nd z8J)gGG`EEWMJTaY5PF5#+0{=}sc_Upqzb***P5B)J?&V&vMC}p3m@o`l9BcvS+ps) zO+-~|3R23rRs}Ta#}&vm-GqA-q@E#XP6>jRnpaqkKnvifhSD+tt>5bs5Os~A5=&aP z-M0SEE=QE(u5-O3RA&iFR8b_D-6=J~LYH@=l@WI@NII&c=T+N;%~F0{f44$;k3?z8e0$_W{E`&;@iIpBR7 zp}Lr&&APgXd8}p#AX~J(Y)!;T(V-^FuOeR?8B=+gi5z)A%^%`#RfB~iIl`M+eUri< z9Cn2lyR;kBDQD!%NHYmHnOk%tDu*UkEUPHD{#`I=NAyd2gro{}h%%_keG(|_ryjfL z%SvVXHZ?9G3NfpX7BS77!W%ni+TDl-C!H+OO30L!;r@v1>pRN;H6oAK*MfyySX9#dTVn zYPD<0zcR+gsXi?qmQVeBJEbyoiylJca@P;L12+pAcXBK^Tvp&wtBW)uiE6S@&71A6 zGAWiAhAr!N8LFnmgo8F-*d36d$h>ZDEYrVG7ePO=-QdNo9(Hw)tZ08353IYTY-5YP z^CpTU*_xeeS>A<hJE> z2H18=w60zx&F`SQloczvapB?++6Prj$}^EqbUK|zO&phDa(HDYb1p8>ZMBW5wvOml4skC@r;Va(%YDGJD89Y?@M-6&E5 zgFgnj)iOZ7(_xI5T|0#8r`}T8V#bwHqrnU#B?nQ{>NSq1-KEn^m2eUJgEAqSRpqOK zalC>NbKm6&w!j!!RhfShzN&M-INKtPi~q&BU?s8ScIay^ASfLpS53K&$T7ncPs&ob z0=HFB$`0;V1IwxqsLa5~7fX;U(-N~@+=W~iPZ~?Yj3!eqZ+-e6o8$iy!?SG}qKdV> z(Ru@-QfC=60TF-{F=e)yM1hx?Hmm-p-GdwYkY&X*)wW6BpJD2(l-FPN0%6vMgbyP* zM)l}mo>uqHgzBerYD8JniVD%3A9{dKzWK_s~Bm4l!z%GK@+W^ z?@29up8bN$r-{?xkU&t4x=TZ5QQOQ0ge25f%?vL*$PcXRAnHC7Vis*j zi<22KylB|I6B@M8*Jm@X6uf_H<6Dg;AWel)R>bD|D^6k z2{xM_6OUjQmSfA?vpfcFj`RG=pD~{gaCj-N)2|+%&d+gv&#tcg9p;C#gMIha`PJL) z{^ggy@B82LCA_?=Ha_{HD3_wJAWg}?uw{_Kk{Jo~M0eDmh|$@R_Y zldr_T`^NUkR}Rm=ynX&tpMK?wUw!!S@$qzQg0zBP`4H=><#v8?eCxp*pZcv|{mF~? z(GULIzy9pCVGbQ4YkOtARu#ajTPn37tj}|5qXD?huL_wh$w z{Kos9edYf7TZi$)tofC76}tm{0kbT^?ed_9H_v?Q@q6Q7^Xm5P2UjyRrjj=^`wGjP zqZZ*u-hcU1KYI45&%S!PIhkP_BRd}|1soycrd!~{=bWgPGhYT+sXY*3o{{G65wS5b zyEtAyzBn9wyc>9aJHLyI%VBTbj{9zhh{N$>JKs(jnR9@O16`Siwj6qAsgMTs_$aS3@|1DwJiD(dV=$DQgZ z7h+i~1&PDV%*R>;>(Pwb@^&Oj@qIN+Kvnd*9?gxl%9v~v`Yorx3Ppdg(ivx7zHWe8 zxovn~4mLtp0?&uBo{QJLfRQjql%oK}<05C|9O*@K7P8nq220p>xkJIDCPz#_3zpqP zv-@Y4Y6|2vFUFI$6h%CuQcrs1y0cj6FKOZcfGJ$ukj{@KlC{V$yzmf#w+^IPIh5eq z)%@3ERKK}-7AD>gC&1Ob`pCMhh?Su8r=!FUQZR9XlUj;NTe%WYa|?MTk_oIkAtpr~ zyE-x#UStIpNED-&pN0NhDVTtdE{#V>C`0>ePkp`^4vL0%g#hK12J|^+IXPiq)n9pY zeZb;?r@AhypzoaG#q5vtl~!1;K4qe_J-ZyW(*$ zH6p1(7IFPRV_4#9)D9QJWuYXbekmCcEGW<-k!4pK!>CBz<$RSu)Zav=n@4-CE{2PX zl%1BHcHAWfkWk((LY$~6Pm>w=EGnP8unsgxb)SeEl+zUU=5dQTOTW3{Q!vuBU!Km+Vak8)=5E`5g_? zs>{Y%@aA#tkv(X~&@o`$x9%>?NU~{Is$(GKi_2X>KijxM^keG^rJ_GDA_^i<1ims* zQ>c+0yS8v*S#_HLO5b&5M6 zDRa;qoH7hdQCcr+Irr2pQfV!acirBg$ReJmBqto~lXRXf7wGR&h5 zs2-iI3-rTZ%)R?S0LS?1yB3HvLR-KIDV|L%DO4T$$sggBw z2PqS_S>!q80X3oFkbXinBiCLP&xOE5-&Trowe>3-Jy*%T7GwCf-c{o}-HN|6%aRWF z%v0>5)H+CJoI61)V_FWr3xVU*P1clh5oRuY1dg%|4EDIG3uoQjUH;R%X6Vp_5ziP^sYb-= z69G_rQbxcuM~Q`n3MGaQN&weD<;H56FV&_>rww$WX-=>(BV(VxHZ;E?j=o4R^8sP- zutt9vqV?yH-dNDQnU6z#W*TCiH~>Ut{gevW2`@eImu~!iLHBc9cw8cH9OkE4nhl;7 zZV3;ERwV?DNGD?VQsDl)aO&GH!TX49|%hSD6Y%2#f%jCmqHQIzsJL+%w>4tV-z zb~Xa$w|R31I2ycZWZteAxz4$0@W*#e2I6krM-pkMZ$VY(V@tcqC z9^QJ-bNPj@T>r|a-}A9g{LJ6{8-IQbA7k9!+`jR~gPW6o={sA((zZ8WfAGeuZ_F8) z!6Cw;CwB(b$AP?q*q(jv`0A@)|L(v0?VtbnkAM4J&wlNjS9fwAMmtQ~Wn^6fRK|lu z5A{^Gp$v#I$uaEpCwE`JzW4bDFW=pM?8Q4*AARB5KluDB&tHCf8#kFWgiMu<_gZ;R z$0(7JZ(cw5Cyy>~9?z?{9?z)I2hyD&fg?Ju0w3-2a{F^1y7=z5zwn#?`VT66s4L$( zF|dk6OF6;JyvV#>BkPbpyrPNBnGs`*lK(K<+%w`dJb^noF1PK8O~btx^X$ET0`A<; zd3_q^M?XK`JkIWzKi>Rs=WucNa69tu+2Qf==K64P)4C#-JKIHHHcidFK-O?M05xU8 zX_G;lNvvg4pY+?l?HJp|;pjGC*|r8&!QgC%=LhZF?xJ_moUYm)DN^+Ckr_< z=A1-lhATo2Rj;#x?LrVb%*u5*_*WtRavH;MaV{1n#nr2wqJB`fXu!g3GoT27F|8%- zLCM#SS@!kk^~bC^2|8;`CPUPd&NLjBS)A~{+sllBV@jDEVoRHht z)gfzQhA4*0KaD_p6xm7u&5lvBLmx%g#QKaz2bOqr8-9iE**Mwg@#84)v%b>}wQT4J;*f`yxPoK_00kux$d z%~3^qH;gpZ`fC-4x(TCTz)&v2o=VtvF;zmPMs-8+doiU}x$CEEYt!LU%}QN0P_dbm zFALo$6BE4DDtgOYFXU4Ur9}{tsS&y))Yom0SOa|mEf;ooFl~(}$~Kq+40pD^4IVdm zC-GdFaGYdStb}=dS7u&lQ28ElcR~D;gtzP%QPG58982}FDgcl;Qe$nz2o=sGOA5A^ zymBBtoor9xA+?50WGeVsE}QMp>$BD20dy%vl?@7X?vjc!I-9sw^(A5ms9Z$NU`EDN z`jY+T)vfK62jV3Yd8f;eypTrzs*EbzRgwd_vI^^91 zB7iOHWwmK@YMf;%=dQ#(-Mt1YHn5|FoOQin^bR|X|*7o+X!_=fgF?iGqYWf?fqr22WA z#4nCfa@bW6(TF_|%B7<3;bhGpr zZgYYY_kheSb)0&IIMo$#3fxo!B1D^rocuLnk}4QvalFlE!r~Ed4UELyNSNQ|?YZTh zyEDS^*4dr=^Y$5>t}Kw_8ew66eat)0OL3fIYyvW1h#AR=cgtm_!^ZHM?wAI%VS`Hd)MG+W z(yy@8;#FPTJ={6Whi}`R=RH4oxc{!r#zE@>muRVF; z@ciRDd0RMkbZ~*@F{BC|T_st_0u!TlDy^O!5Ym19#`T=KTA zW!stkU1(}PSaN_@ZN>?!CR9_herx&uNItv159H+yG?HOF?dV8{H!q1psjbgcSEx@r zskB~}Uy25bpGaG*---@ugxdRp4`3@))2tKaTB`CWsKolGAQoR2*$8)(FRE%*B~~$4 z<xxiSZB}3^P!0O|m4(?lE9Ltf zmK!$WeoieaeJW#fKw|`Y<=gJP_ z*#97th+NnXAGnoR4E=S{!S>?53d_@_UR%x@sK^j~bC{?ZX)Ho~BUWJ8iz8k03M&eX zG1w-RK2cce*+XSg4(j37cX6@)hka*~79bY0h!%Zt)c}z+JsCJv>O2H$twn9Lz%4cX zpjepEFl-;eMgNyZ*dDG9F~9qe>^jPYVOC&PN6{*gcVegLkLBv^VCLTCVCuOu8a>ZJ zd7UCIz&je_?d^xl9T>!Bi3SL>@6$eKt#7G`WU0dYLgk3tFj`*taAS^ z%}sJE3ljjR-gJDjMn`v7wPo5GHC8JtN2eT{(+zq=8i(;EG-_{#bQx$0L-SIF^r%LB-YMSjZfPtX8HsW9ck7b&VJ(AM=*`y9d&(v#&+m(< zDJq?vbTTWrcwIAgX*HC}UK&JFt;6LyNsTEer!)^lC~a7ow8>5d*vMy0eEGOcxjUsN z)+CyE>eob_kev{q$2qIUJk6!HzgUbqD6r@Lc(s1!F~jwKFP_6*dFSx8Dg)!Z!SUi9C(#F+_qFP<=8 z!8?H!dSbMnhGzGKQZ@w!Sxj=a#EU`)gAMn{+>7}oy-~6ql7;UDkY#FE8!teK5rB<# zY=d<*b%H_<9gjAl1N|7Ta#3X+W*o@1r<=0CSs!leNwH>YMR5e^8X=l9xpHpq*u-0q>3Vy1TquT4O(Rx$NvLXi_IGLQ{u~a}9$V8!lFmd%8 zl@xTMz|JeF=xAXz?SOzdbCb2ObUzu@uN!>$6|pz0w`IznTnJMF^2o_ z(lo*D5|VJVbNoZ}FZs?okcEh@@LMg4r3%bCP-KgZA`stDs7XvOH$qf z77>$5-i$*E6Xn#I$eh{Ath7?Q3Kpo&CdFAb+!eBh!St%>ayyNLjv7-zo92&$@|wj~ zXnbkeA{4UirBDtakEdK1rU9G)f07@PZ`!k@X#6RK|+;cO=l#AK3VW7$hHvysCs1DfH>nsp1ltM+I);enjM33i6O z#hK&gjz7t~d~`5>`PT28u3x`Ai#Xo3x1Jnco;W5>h``1DmtPw5=E>DNfB2;j9pC)I z_2=Js?R5R>&F4S&ov(j;-kz?mu5NCxZ;$hIvh8q|aY|CLM;fYyg;ycFs%(r!Elrvs z47oCA`0Xiw{Wt!^=0Ew*{?UK_;&adb)~6rE_384$#c2?RxuOP{nnWT!)(-~f0a*sZ z6N#Z2OLd+C_ULr@>>KaSFa6Aa@*}@=zCFNl*d18a$4y?Jz}39>tvBBB=If_9pMdhm zC0M!?F1p{NKIr@$KmNgcKmB9p|K^Y0I6gVm8codNwgiLZiB>rgxhON8(_V(V!?(<7 z7NC6RNDLXRli5AkIJ497?YGXKeP>+0|NQ)&etu`>&1u%A_`S>f$J6Zv#v$_FGjVa4 z^ZbAeJYaVAFW$T>(!HiyADgK`x3xrG%QMV}Ni&ZbXq0R`rRI za4Ns5HwY<0bn!^Svg&sq%mluN7F*P%Q?eiy%DO(CZAc0v9N!L_mk3eIf*i$nF-@Yt1cyxN}OP)64{l zLgUbSx0MO8lwL3fGv;P#eZ#4yOVB> zG!`U@CiKB02cpgKQz2dB9d$m-AV_3k?|IjkD#NWqWu|_VrY3YzPQFLoi#lMww5A}L z19SH#?Jd7%x>)Uh7Xa6Aw#-7T3uB5@DiO+{rYmE$BFeP`E3m*h^o=0;%m}X+Y#vRS z9u_Cf4PzXfnhn`EG*_UefR463S2tXJa1Sn3hz!t#Z?rdc1x^6abCw!{R zIBhndGKdT(Ij5DXl}Ym8QzBDsfCeKkPxBlaB>8a3qyL?@LSwYgX4T$=Dc@%^Y(V0alFi%8{Eyf9(ervP2Skq z=6TBT-1Eou=7Yyq$K&z#bi73z>$o+PU8uOQv|xhpR7qOaZQ$$> zamoh|?7znJl7l-4pm_fFP5-TiiO{UYGlC0!Bfhe{LsjRD|h(LXY)rU8q{5p9-<6$*xEw>tUi&J!e{G%Fdkc#>C4}lJ>4OT?Ke%6_77S6A5akTFp9pl~Tgr zx=!m~m=;Z1?%Iq-|s#E zDHP9aw-MG6WkUzT1k!r+R)d;kd2}r&#XVk^s;%lm5BmbPu3z6oC;wD981IEc!VCJ# zKK8r!@9%>d515W|*^pM2t+lCJmc3K`z{00?$&~Ha(1%e}_fYZhdZX-Rt1t4h>%K$J zEqlA6&#xlNtXdFq7FK`^AQlQo3+aiKAUDD&Y);8cy-IZ4%MeI44Z#CXo9GnlcAE_s&Q&?8bI3ak zV=WhbAt8mLd@euPcdbKkH&kX+cy=YpW<19zBxoz9Rn5SXNAH5Pj*|*;sU+8x4KQ7I zi03l1&mUnL&uXy~^o^Z0m9MhKo4T+2DFArIf&V@cgdL{KE?O}XX3U5rcIAUcr!Boc zKam{3CHWzOg9W&_r*SafA_0kF+^)907fiL{ing*Eu%TaQY3c$plql2X(?`i!G#uYC zgefRl`2kO?w8LHT0(So>+FQs}L&ac?Wd{k_(|2(1Z(2hvKp_SYiQd=OROcjvqs_0b zu<;!BN!yPAHeKgxnau{Wi%4gEXVn!@+TI1n%*a`Ao^#`eG6`Px+7UN%ubK4`u^_$9 zuoE^x@}dDia5_dxC9zJIXk!0L*KT$d3Jk#4!gN?e(}Z;FWx_U$2(vC@^^2}?!1Wb zzI^%aAG-I^ zk3IVX?>Wmed*y3yeDMpf{Pn-|p+EhRmp=0+w^vukZBvD$b7cXU+-6!{(Xm&=D^;4O ze2I!9z|9=rzIyhqUA*hwH{6aZTVVE9timwMoVWkxi!c1)x8Hw^n%IjdxVkmBX)(|S z=L7G%_xFGH^7YqV`DefKi^rSWQQOWjJMtptu%Y1-WR(PGXc*xD8K)#-J75PlbNKN4 zBvUtwNVfeN^xp}f3PMH_?pE0v}d$YyE`-i-9$Htl48Rm?GKRLs^ zyUpkCJwEr_sHsDiEp#m9)^=wCoN{5i8JKfc4U)Wf>MvXKs-Q3l;^GG@h^5ZMOar?f znT`^{TfxXlQB#9i9PGf`RxzHt!wXPWm>%f2(-t$P&<&DwUC)rCo7G5bJ}qHqDjX3- zS9mM#1CwshO(2a?N;cA@e7)nw;@Q^yX`cy>+!=1Wdj?>p=}d!h6MjVG<}Zdca;kP#DP-k}6NR{Faq zQ|EFz9q_sh6n_q0fY0z@*hD7qPR`{wpMnfJsV5XGE19%iL^RMIvU0jkM|oX(m$O3% z{ub67L!lIuS}JcREVXmrDXrw)-mF@}iuO8LV10cT+AsXhva|Wl=9)U-Y_2g5F?Y3? zY28vD(!_r1fOf~d&+g&rw3mT;BYzbkFJv5D>%tDcGMY{Od@JeJ8w-QHMGe{VvOsFuFUObT`u|5F`O(V=u((72qk|wun>b8eUQy~N&X7OYd=k){c zdma~s-_S&a^?_~DTn?HaC;+_;6l!N}s9V)sjiD$Io0+(q67NPrWRrz;FcRQo8Xg;l zsY0UoQMqao%iFZzjV7;E%W6u_p9(r9!4v zRE>(-qcNo_cW2+g)u!I1`f7HGMxgAecuGHs8d>gukAL_JpQt>BS53KRx#!3!sTVg* zN%M{aYPhK`j_EEnBGk#e!aZ|ertQv!7ERirXg9XoDO6;BK>!6n=3?)>}xbYxQBl>MMO*Wr) zt87GC)^q6&Sm72Blw+McwKHrj=VicbNkYL;FVAY}e$ZZ9XP#D6dsj_cPI{o+hUfuz{q?Onp9Fb^Frh>pN!Sw0%iOydB= z-8)2PY)SvoVtxu;^u=8XU%9%%krk8WvWL1Tv4fLr;W6gBPu_j}lE%`&K3ZQ}b*WsA zEmd7H69rEmy1hg_Kt*+(T`WYq(vpm*QU#8J>N7`mJi#%$?nxE zhuB-ghna6<>`SP^2r5J?&~?ZNVs%18@H%~G0%>FHMjf}mF=#bx_ZIe9K)o+_k z8(FoPBVN3*7jMR$^kE4M-!M0vMjj2X)448-+n3fV9tHwyc;A!b)c*k&vvccHOch?`VnMmL)ZRU1L^E;<; zmbW6h>PzUO}QC!TxX2kt%hj`KX& z!|S*TyZ?^ujW^%^;vawMFMa&OKlS4;e*Qan@WxFf&JM~ngnaCC+q$>8$oMiFax@Sf z60mGyo8if6d;Q5X-*Rff7%QY{KI zJp0VW-}%e;PLIFzfBf<<-(KHr1+bNgCWJF+jnu;`;#Kr)a$_Oay3Y=rGvID#7k8fX z!^NG8yYb>X^YWvIvme+lUa-SqnBAO?*KvD;adGb%9A{oV@`3w@+w2$SM!VhzjD_yUalC5Aav_f)QF10m}73G<!Krag{wP*YP*?QAv+qR@SY-G;0_df0IUQ_j&YM`J@ zNnu&CB^g-=33Z?lVSlk54u>Kvhxs>ZeuVwSVOx$sija})2tb4-3bi1M0vU>?s@~%@ zw>|CNd(BLL$Q(K6Dg2;{$Gzw5z1D0pM~=)KS+%HBP**^7M6Jbjkn#wT$}A!FdeW&M zXrgY>5;UlaDkk@hq97`5oDX4H*fr4(&ZrR8wI}Xw){_#9C@XOk-<5&xRA5pWXd$T0 zij+y$2H|v2!zAjh1ju!!7Q^_DurxalA_=&X5lK3Z*)(V1%Fs6(fPi4VqU?zj1B6##qMwAZ1Jk*4GK7m+ zU>o%|^Zg?jWlYLymg1r61GLUb9c$jE;^qpi$AIiCZlBUQ#SlfuNg9Wu#zvcV9kkI7 zIcc8E)b;GQi;vSB9XG(euo}Wi0n%X4JfLKbQyCY@gPS7+jq|rYG^DlK{0RD?;4HL( z<(4Bi0G{BYBbC7y<90-LBm;8Py{-e44RoApUfg42{wfk#)ABI}Q-P@G>ni9%X@29T z)VzrKMA3vK@zzwONo(4K&(Gr6^p0gP+t2*XzY=FHK)TXMx#cXOsQYTsb(bZfii!5f z^CrnDbn7g1;|j{Oq&~Q>Tv6fNqCs0y)g2N8FLS&|XylGgVRH6iI8^zOjuL(3S&Xn@ z9C8{^7O=4z9}t;4aq48oePx}?R56yWVAv48M7n2_N~|VJQq@jgUNX}u&ZZAS-6-;k z6N|yu#llWbg_mCoT}(R?{U79u<~);F(57tx#I19F8brjUN%aM@)`H-T5YWqn z=R=n!$b`xSK$p|KJU;3fk`vJeZ*YOGvf26-bhJrIU(xq^d@Z*3euQ^76E}&n;zGSCzhU%Atyz)r{3#Ba1?|wroTeX*t%-RV#5ZoC0l_Lq(d1Tl41D+U?TUu2+lb znYG(?dOTd6tgmG`IrH}Npl_NO^u4!E-gN|)xgSp?FgAMd;$MK-~OnOX7l zg~%f;S9Q03d*ipa()Co@#ar(`{^39J=$#LDyK}XM)%@6v>56uKv0454*M9XkFLd)? z{?yl=Jv;rkzjJ$YyPoWHILIU%%gYaZJpSK)cgsfCACm2(WqaC|UAw#M zvL4%lw%u%Zs=&)nwm6=)etBV!Px1D}wP9)S%iaB3mse-oy<&}qSZP_W!N(G#@;8RP zNPb_~&{IyO{*d0SdR-U>2q!7Bs6sM-BPx>+fMwb#Fx$9|$vGiSV(<_py78d5%mva@ zfXE;aSMjK&ZG4k4n5Fo#vM>xpBI8>Y(b?aFGRrbm3jmU-TL2<%oqri!!x58^>#N@r zc%z$xN*0yU%%U0>rr@F?+K1sj%~wX?g`DPM>XCvfcwCeeff?Bf`VqRNK}^sGJP7M5 z$?N1(VyJ6&NgD?lTTxD|b)BAVFgVQ%S0`RN)wH`r)p!Ys)ow-k|&}Q1i3oa6KDQah}f!*zII7!g$QyA z;#IUF&=D=y8K^8iVAF*62xF`EZ901SFB3qD#o#dUD{fKv`8XzE?V9m%ou9#LI32(Y5b1=ySF``eR*$epP z5$EzU&KfI@IwQ05W|#f!9SSp)-(@jAV<**Yx?wHsY@nE&Wqu{-h;WRVeu$NabThce zeAV(DDA`=poSP^}N zJ7eLjc0$p7aHydD%-{U0<5DtpGf;SRB#xsjl0(@uS?8YQW*D6AN0MaJ*#fB>jPqMZ z&DoSs9N_a1hwzU9N18Ts13ACMi*BRY2S{F}G3ti`2zAGl#>%`o^)X@%N2O^fUQT6VBTSr8yEJ&Ot;ujA%i|0C zpfaoRTl8S6Ij1)@dN4+(lJysD(wsQ5qQYp~39sXBn!u-Jl4Qn#RA;u7jbyx?W0^gb z9?3z5c`@&BcXU-1ZAG_BwzVqf+_N&cF?Z<5Vk__-2p}G$l=Ea}7jORVWHxnPDW8Pm#)D zIYl4J)p;=!)z4e(Hp$9D2gyu%%6tk1QzYXnW-KeSi^4=I*<}Yr+=s$213R;SOY;a0 z(T}+Qs@lde9}cM2G|WECy=S?#ODK1QeM_B-K+=Jqg|UE=2ZUCYd;t>nCI-W*1OGM1 z66%0eA@0b*7C;BgEsk`bQl%u{2}08{p#z=cX<~$dhuH{Ot5ho)P6QRAR38S7Tbvg2 z5NG!u-=f)cX_`S`ezBLasuAXqu+mmtEpw|!u+Sn3SU3Fl*T7d&H4N{2;GOM&IwBrm#;sAl65kv%g! zXITJkt!slHn;aAlfr&=_Ng!)?)84b;&@F24LW^A>@Mdwryh}=hnME%g)WhaLGDp$2 zO$hmXEvgQQw#XE-ICzl;99>p#(Tj&g*S@_!>{o2<9NQCHuG{A5`-{y9c8Vj={iElv z&UVkf_uY?fZ>}yLzxCD^KE&>k?T?EbqO8bMB{L~d5lPDcSnn$R`qo}wwS7N1ee&q5 zUw`t256+*yvt3Rd>Z?W1lV>A7Lh{D7$=&Vkcfb4m>hr6=_7{HmPk-alH@|hbyE+C2 zs~{X?*ERf>6ah>PLn;DIfJ`-zrXGGZ|;8Y^;f?6 z@sHf~B@RV50lUw#I35mn6@T(*^Pm6u%M1P8zxQ)Lx9->076>%1rc3BaCIn5a6s@>m zoq2S+)jS~gP|Q(Lk;}_xhO?8CXBUs3*gJpX&fkT+b8&gvx982VUl05H>%$7!>_k;z zetosGwVj=u?Qq(*XIpgN?b`l)d;j?K_I$fvCFTQMXae3Z2b%NQS$XROYfm=hvbpFBM)&jwLMG%tx$OAAikEm`^ucrr#p?39eAd0F6j>3;^kjD7`E;Z*!n-HXVw02UNe)x=?*RcYLn zQS4S351(!%t0__Sa&_SgB~GY~@ljmTJQW#^Omwo)%oKk|L5b0AUiN{}I`8ZVL@}g` zbUM#Vg#eyEq1tR11X;3iNfqjJu59)VG|K`X_CX>9{dx> zduZkGBZdLxjhdLYBmy*~H*+wpvJ5FJ44pX^O<{xhvEZ@G9G9U?=7fACFK?d8+z3^XaFe`O zDHrWrAvKF?;W1xNC6z%*=?ixw2LeEN)0ERplK)BRF_NXCt$8*=#wtz|gz}gbHHpqF zktpXi7_!KYw?I__TqE^CxXx)lvh*zKin8tM4`GoE+C53J3YClbj5OhBhAh(6Ilfki zJhBGRLi@cgkh091jo3g$LAg7_o51!C42F}R2c`?#9JkelE&QJR%AsI*%^-%it(F5_czVf zsKpDlCVCBliY)PWUXe+JQx>6A9}S+_xjy3T3PRjEhn2G^iTby7up-2%x>Kyo_g2h#Plf&jH?z?u|<;MHn znciL4)>=CpZ!h<6-)21^XB^gX5C+2oWJ+MJ5S&Ha4#2cKKb0YkI=m}1KjKY zSZj;O5*D(ry_;`Owr5Yyw---8`10c~et7!s`={HpjWz&jK$gFcaWmo?Wy(~C4m%)b zuF$3FvN?R~TfhI!U;1}{`6vG9U;DG~Y<8P(|K8pH&^H?$k>5b^nPHmpL30@ei0dBU z+6Y|stG>9qd}||bU;Mtv!97MY+WqbE>h=C;`kT+c{;lU|>`}_MQ8ht4-+Amr+Ri!mat{N(udLL;uR3%FPvLm6XY(@I+^pUn5 zuzB?4i>L2>>E@vQ^efU%WP8%hbZPkLqkCWV>D%q(%&g1xo8|Uu>8qS2UGH*!TsNLLV2X1{F&xlJYO-xC2z3&YMR8!R-BZPf4{;w5bX zj@?^nmRg#`thoTg_AuNnq$&#DWH4B$Pn^22mOKYaPEOcF6;D{CPZi4#?yRaZ<9uig z?vyso*iOVn7ait=wu8`7vXWwC1}7q95Tv6hK_j*=Ymdm-WSEp)l_wC(DHOn3Y)pAV&H;^p%Nl z!6X~?YBDuDmu?cmkbsT<)_M$nII})cjJ>FtapQ~muIVC+bbauD z3K@cxDU2x?#MiU&21Nx^hAmbgC#AcjXcy9#8QZJ0f^^7OqGE$#wX302>S$K6P(sOg z!iZA4Pg)Zbu^424Wf>RqVD++A5V<0i3_rLU$RZyt09u5rlgtUkQc7_30C1sG8k0H5 z0BQ-XgpDBsP)|?Tn@m1qOj09N89tb-kcVThv*rNR(yCvQ-oo=7Q4O=O`(eqf26$-IjhbjdIx{Jf%;XCl%`6b`b&smab$oMrgN3!e~+ zRUmb!l+2V8JJyXzrS@dmYD`qcRAt*_!iHf0$6yV2aO5~MuM$U+7Rt?h#gr`+W(&sU zc8BC_ED91y5<$)%pvem&P;$Stx(WaYYzlFb*>rfCRD>G(19HDa>4saF{%QZi-~3C6 z@1Qt=dlZk;-sKCARgw~>;Xfh$;JM~H!Y;2Z5fP5YtXxol3aGR;AO^>CFdU*gO)8~a zd;$`N*mQWQ8({9DF`IL!C(xtkN*jruiqT?JO;cG&F!N_~A0z#;O$5(_5<6{mXv`p? zEo2M7q^6=qkQ3>mszmoxHuyf7dzlMJ6OZEg(beh?IS4Qj9(WDn^+D zb~`YXJF1_KMmEyaAejNctXJO3Qw@h&0BMl~46yMaNin=u1gE439YF7WdLF1-qIpRssz{oWM`gvCHp*Q(Rx&DWyXLQfxjTkr^O)E>>-TYOIdtpTWV}$ z4fV;UUT$B46Pgg4uz1lRg9kz#vy8{$`tU-Tl=|N&c1}6YVP`7&k!zmyXkp{bto~}8 zRg6=DqzT40X~Ds~Hl74XO2?p4K}|%WLz6Gtzh3I}o`dz>E^ zk;Xpr^2JesYc*QEZgLz~cLP<9OsK%`_LL?>2ua$#}zNl1! zDBBi>U){o1c}bqjz-n{zMIK}3uMY}CKRL>YO6v+~+8i77*3``pfXhCZCV^U0fgG1d z-kyjzwU;@pA^Krdn)QM3qlsR`rKti~;T;Z(Y>hUwt*NVZ#~Rd_Lq(PVXI?=x(*e+s zZ&*||o=7VCxsIY}i|_RQu)W$~J;7$T+Z~q%Tieq|FP~q(diC*f(HF0tzrMdeyu7;k z-gmHUmdj@sPu^~uCt~YnBjRShv2OSK`|hLn-+%Y*cQ2nlyLj?syE|JpI}Ji1 zGA}`cHkF1{M-vve$GG)HR9iniv5!A~{u{sk+cz(-f9fZG_)mW0@vr^*&F$+I4&4Y( zAFXGF`D9m+!_#7gP=&As+!z((<$m-0{_^WjUz~3~TaR{s*WbLlzq{_hdUw41mw)ib zzH|MS3uYY%&p~hTG4^Nwqi6rkU%7bo{M-NQ&;8u-e$O1bk@Qs&SKUbVxCkJs8zwHK zW}K;j{hK>&O}EcZPoM10-+T1d`zP;xwO{_RqrS85-r2Ry!A#a;-`^kaZja06Aj`7d z!MgOr>HemPY?_@d{rp_FA{R@)*d898UcY_$N_`bED*d>NTbMvVsRWd|1jw2Y)fN{o zTc6{iX8C49Z-=>Liaq`)E)<=D0iA3?Xc6ktjx*=wK;S}??Ap#$R@%TJ+zwv+ilvC8y^MOALk|uq9+0~d zJCSAK5V0vI&nO*??TTo~mJ{X4VZh~#QH6QH0zqz3Yg{jzb>s!@JTWYLhpHk*e2hfv zE}3*UtKa2wMK~to56ZC!1_L;PaccV1L-D@_Lyd>9bH*UK+DS-g`7L_;5jW)Fn*b`q z*9<_6vjtEIm5llL@B?F$pUV%4A1x)ga@;6tCM`k4b&)qB2j!j`3=H}t`4ljm%t|Sc z$l$9po{&P{>F5jVGKQFd;-GM+tAJ7X=DeANl2ry!1XFbKCaIN|3r0{h57f&|6{0!G zm@D}z^3s-|r3QoM&W>d>;iaf6Qx7=rFcAIzd>E&7K&=U1a)9mHFd5lp(mDA;UPrmA zH3w^!=0j>F9S$*{-TTjh3=5IJejJREsZ zhNp>bwQSzTyla3+`MP1i%~*<~aEZb!YI+Y=0Sq*s z&Yw|PRaK-IQ>;u3fT)7KNX@2i4(6)}oy0eyUSl1r^tdhqZ6C?Ay39a!=w$z-vu<#F zIHiI(A&b{hLZZ8yo8&A5(ZQRA)vmSiCe9qQhWqVQ3eaqc50+4hw5o#GJT2)e^ORSb zC)v`hHqTc;C#T@k-sgU`@{@dkTqve2!t7Y4De{_U9MyY|s+}QI} zQUw)p%#?v8cc)0vg4iNakyKV7jYJ$AZHo}bmf5Rm$5rgcT*R;kW@ zQyMA7*Mt#x77`EN8YfoEK%pAc367mtggr+n{9IMrx$9L&o4iwWBMM2CK07o1HqYjkAel&HUuo9n4r3<)1gXr z`H5$5zzo7{xWl5riQJIo7vyO&hK_D^NntNOt&bBcQESW~lMq?+28R=cz`f};WDA`3 zwpnE3wl-O$0oH-G_C;}6`aM*8Yr3xHQ17jq+9!e}^umZRFl-LjzD6U5%O);gkd$3j zae+lu7Jlg)+P%tG9xXHM$F1G)vnEDk<}L$S=)jJY4@;~OFwRKs)8qX z&mX_D=uSTS{Qg3AyQ9B3-pbj=&yteVR-RMW&7WVh(EXPe#j{#(EPd*AxC z-~90(`=dYk=f3#%TPOeiw{LH+S833uL|T~sZ`qE?!6amx;vIVH0A()@r`I>=o-}pbT`l6fo2&KY^whjMh{IKe8SpX>piU0u*#EBC-WbHy_h8x-fXpm$UwuNAl@lz1D$i{GSpl7#26iGc0mSVV~ zlB4r5YBSR+40qcy>UPYD!%=h+%I*1MjlucDEDn=0bc;D^dBC!?XN)n!URX!SlOuhh zOfMWxW@ussG<6Q9D9jWC@ks7SvXsL2%u|gpNc*##~wXm9(zc z-j<_|0hk8rl&2}vN{J4nm_&-W4Dv2x6GJrY2Ue#(U4=pw_0%@GI5?$%v_4-yt2Y4D zEJ`pE;R|qxB-OInv&brDwD5eD)v1tU60PP>9+kV48x zt&mrJCBTIpv{ZHX<<}T0!U8;dNKwoS=Uk0WqnWq^wH@*l_xz{_u@7T!W-*bKgO&N6 zbizjOOZ6(Ba^E(c?qvqAVgNJSC~1FT-zWB9q^D=@b1QAmgidWVACZL zyMWpg5LPF$P?WkL#hY*?>cIGeH(}5c^t7i#cgh9`W%!~bcF-nCNsxV-9@$6QxZ?Lb z&{a^v*1Ty8Di5yHgAwh^uto(*Ys7MKM&!XvH4ArGkY;R48`LUNpl}dm^57gk$Wall zX6RafK`Vtw3HZ2%49Ux$NPSlPVfi-(D4Tc zIPyTSY&hMDWl|Bz4oR(za1%*>)5dX$iq5aNS}6IKR-&xZ_ZcBhW`~*Oj6-6 zIelkYM`&&2vKoy}acC^sDf(kDv0>+lMA-fc)@oMxZqr4K4{>X0WrNAJ4CDwGHyN;L+h-%~ZK-&fn5 zCN9@Gx*v6el=)zvq>sBqnpwdVXjSnsU6 zVz^D+xSRWt_bX>dvU+l8FIo#6-EmNym#wJXOTV4- zzG(~sMEy(4Ao!B89B^fsUwL zA>2e5Ga>x(;LGxKfj8MBfXdN6Dw**dfkM`M8Y7v+OUxJtvUD0$5kI-}ue@Hq-1Wj# zT3a?aZu*`2z52DUZx;DtqbiaJ@)|>bH z7igdD&p-XN-<`LUvu(Ti?7N@b%HjO8-}tTm^0yjx;%&2h^0lvjq4k?}y*YGQ`|)tR z@2+>puv&*>PTdWxuThlV(aAXG!i4c@(z01WT*P*wuU{YEdgr|_fAv57slWc?2kd_S zUtRtDFTJ|iuX@&G3AjMtF#&pxog)!Qm!SOHc#w7VyF1(LZ+_~_zx1OY{@>zQJtUy* zyRU!XfBe=@Kfk*WO(7<@WZFsWYagEf*MIr({_1!B=YRN*ZtnLR7g3kE$64VWL8&Ex zPnO?PS1M|YbR#%=uy)HvWq0}H!{zj;UR-P+e|_1Ve*Do#&9OXsw3^H77uGiJX4a41 z)uFqy<@(jmb9$p}mL2?T-7lB=^z8TpPhP%%`J!!9mWGz~N+fx$0-`)53UpsvTfAps zuLgz)4Y#1MBy*igiWI`r9h{z=~smTwTCBtDsm0B7@kv8*X$nZH0W2Pv8 z;n$Vjqbr1iD7fdL;Nsp7sNT>OV z7D0-=7ANIw9x3xn9$`fIG~ffZdS2=Pe#QYK9D10eb(rG`nmPpda+N!0kFbi5M%>_v z3RKGZRnuGrrQj3h80Nqsnq%qXxDN-!_+_B8kP`~kyo;2R7Ax6bmz2aAGRay5h?gmmx&!v;x(DhKDoL2D@Q^9 z3?$jql9#FcIBgB{#T43k5aw_kTZT2_{J;dRd4coT3AAFK33M0U%J|Kx>m)@&Gq4;q zEf`m&_^OW086X~`?k-c_8Ro=isxm(1I+8n>2+q8n>?INrl$7{Tr>Ak16or_&Drve0 zUo}?_+RS$l|Hm&qD4wDwpL z54!ED=hn?{k2oQr0KsE9za=BnyJXY(Y0v~7Hy+3^9SOOIek zULgL?Smr%6lh~1koni*zITKhbhE7g8j?` zI+!jP)`tFfY`RZ2u>`dWBp7e$d~r$LN*p|q9H%Xk^j_Z2Z1G_AwE!+Q4K;GYJ)xRI zID%3LFgSW=V3N1W9p)V#l{k{Qjbt7z0=e7^xCojwWp8;Lu&%59@v|!PUzM`W^UIbZo$rBUb(he(628tV1_go3KTwM`V%W$pwiI|yK@Dds zNLmj9jwzX$&~9XLV>R62SaEr$KX8<{4x7gcx8-!fe&cs;`=wv4$NQ7b_cq5@y-5qD za5q5VVy&&aFT0;@58qb1O9(A0Xpj@w3NiPU9pv;znnLM>)aqCvutn9}L|Q2axj6E` zL8SN91#VqLU6zK8NONx@cNYG{LcsV4v@^4VpNKtO_32^rXkG1YZ@po${p#oUvVXI` zTz$JczS%$jY`0wA-rMc{%RA`pn_u7GytdOHyu1Fa-+gxU!|K*V*M2mZiwZV|Ri(Li z!|HA@Z80Ci);2^+Q!`ls12*Cf4#Q{9moI(k!yo^PKlarh{-M3^e(_&l{lY(gb#vc! z({y==KqI$T36J6L=mi8Kux|U?!`;mR?rYzC?eQo7?T`HIv-6MKnnB?D&5!@&Klt{K z?fVvG!Np;2d;9Z$=B=Opv6Jt7=i7hpAOGXS?Y%CPLWrm=MiDhuxCak_4z#GfkDhVW z)8+i~c)O^aoWB3$RE~$+<2&E@GvE8n*8QEHpUdkva`^~{ecx{7)pN0Ks`tB%ifm-F zZMv#%Zm*;@G+oS^;_`TXxxIPz=<4bD`h(AIm(y+XaIgv-v-nn3j8H9#234TV0gX#r z`2aT;^``2ohBh#U8AV12*`+3~-!V|P8yD4R2p2~M2b8=2tn(c4l+QaQug4*jpWi5ws zEbzfd2g9*Xu~X4ib5b_hTxK*A)w{dXUo;4U>NTndX04e^ymAQ!RX`*)J6MX5Df%WU z31o2=+3zX$Gx=~ZIh5J^@dd1|EhQl9ozw<>C{xKoR zT!>e8Bu*B?LM^|QK@B-0ewETB#Lq>82$FzvNZ{m(*yQ9%V*mgk07*naRN$~^qCs|~ zR_P6r<*H*`{E}FlBu6BB zLgONDnP=iym+kCJd>`<%_W6&D87>FZGvbgwJjKfDeE+H_R zGJj)HcNQ0^bCi!l(MBb#Bo%RJxqf>F4~BujZ}%$eH_V2zARZthWTk| zC+bYbqvh5)O*Jb1tRN>?Y!Wu=?us#!gkg|2r@|&ilK|wGf8lRWn~O+#6f;FM?zI3iopq6>qDITb zt~8()QHG%8Y?m z8(@Wxbod^~PaY(%7$CyQ4`pZ?pU8TjlDliekHWRJG;E##J`RL=Pum|on89pn%J*nKMV_@la>8X0 z57j90+vT5qT>VmsopMby30b@I!0n}ZA@`cAK74#R)wr+)XWOR04`P9M$3cQ@0#x7E zM-6bY9x-uN+T`~-sWc*=iHD-za_n_+gOCY{B=~WbElk%fFB)%Mm}#9iWkRK>BBnUB z`LBcnbgu3e6pU+(MQ<4zNfJD8x8U2uTv#6t%ULF)!$emwo9H2W5Q$*b5w@|odtpP> zpn#*(L~5K?VB%?Su zq_vEvGF(CyraNn_a!Ezd1|3@oz1-PWUMbHU?K~;UYQu16-7LRwN<9%;X&wwDnXa53 zlHO^$W5Gp-b`eh>7#}hQC=VHlp^%xWK0%Qda&!;8x~JKxq;4HjlHqlGih^b;#^kc& z3%B@ST^_B91)HY(#SbET$NjQ?27lH1OUW2gn>$<%r(fOpBa^Kje^cx#;|(h6AsWZJ zSMVppy~R2{HrdN+5NUeI*GDp$-n4ZCN8q_jH|$?wwL9Rh%i-hSz4`p3yH#HJhxX>x=F!FN&CT)i z-#D(ftG_lecMTQ;a^~XA4-OY}hjj>CmxxELH;UZ_lM*PQiHl=VX_2Q^e{;2Y_U>2y z^pF4O2VeccJKO%kzkKu0e)aXueTQZh70*PW=E1F|r*xqA{r&O&c8{T^A-mT9%ol(C zum0fwxodak?alp@pZ)Eh{?*UE98v}$DcaD!{NBl5`*TkppM3s1zx%EK>zDtn^qx3- z(l&2mj^^lafp@`@c_Z0EwjzS%9p9|Fe|`D>5AHUX$CG!L4Nguk(av69U*EiZ_3nG` zeE#NI`YNs2+K;MduU_b~AVDpw+R zRnL?(CLYEz}mO?iB{=DMzRUX$mowW^@LYJrUg<2#B3zVsi3MrXcIH)GXCIP&yM6nHSb>; zkilL#}f4!(cPsYjXv?*U~=Jf?R_%_S%ypRb`l86~Qt!jrTfQ6Bx z5UXAF>d#4CwV4;F0Ek(%2ZkG??^KHn;=Y4^LNE>?dojvICLiqiR7Njbm){d2P<}ql zj#Uq=YX)!G2MPp=cg|ZWCj)r5sBf?CzbMfdv6(_u75OA1sLTG%Dm6=sSQ$8Gfd*;o zU>Z+Q=uB-%sfGC75me(;Cg=@o*9RaFT+;0WJ2rf80#W3O@? zIs@E1D>)W$BupMSC6=ne7;*DL&VD0{KFpFP3e?-IctfTKYYW^x(g^W%l9VRVSl*E2 zyZEvXAaO#U$XaI>I%hA&O;5j1tKM~In)Z<86!ibD6CsHGtu9gfR-n(IvEd#T#T z2!H`+m0U~jRtug{nJA=B&_R$iZMH(WR-rf#^@xQ?&x8fdBVDJ0i46_%&Z=H}z(mg| zR#eC~7Bd#tIq6Fq<&PC(aEa2=mWLbXCoRzI^Wxdgb>$|X5B6qO83*RF{lUS3s5kSO7jf%Gr!WZvr5A$ik%2}H0u?LYbFufF?yJ$93gQnqnaL;@)txgPuBe&5&5QAOmd zTsq{f-PKQjDo`-Vf`eXOBPo=)3K>;$#aqEONSsZZ`YfX7}QA+wFX}ZE&@H^ZQ5Z z&8gikcD+5nf41AddvX5k>GAZ@skDY=36#ns#_T}_ISLmvXcu+wvUY>JYI9)OBuTrj zaLYj+?uHA;wFKcspFYK}Mbj|Nkb)JKW|Lk=0=_0^?;{1mteybfEUkB%mr~2>LAtZW zZi!@m$VIJLr^6(rhsdB|a_<5WZLC+fvIzn)V@shh2R-7EQPzanL{0%XL0cd-uCx3h zS6Y=sME=g&fC81mW-er@nsa(AV?$!2d^U;kij6qL&APdp8zba$$H<_PpF@cti4J;m zbBn27L#x~CLDSfd>bB%5G);Ph-DYdNM)98%rP7It^MND-F;p!$Jh&beF*5T(z*+S- z2u~IwjC4c;7ag3W?m_O`|KIjafQ7l(f)J_EPD~iJ2_bMGm@iWRiMS%sRQ!O&s8pF~ z393$2XcG_R>;o;^RY#1Fwj6rk*@_BKj7&5Q3I7<8ab}5@Pt4bZ?Rf|@>SWYMFIxOu zRyFX)hwdktf`>44EN{`bU_bhZX9xEntep*AG>3QlLxi29Dl+4c_ju+U6sS4LlZ|Q# ze$1?}t4=3DrZ9Gj>qtv+_j49O>fV4KCG~Sa^dFEq7)stDAsVTxnhI&cOhqYZte0V?^O-%Zhkay@y>jPuI*gu=Q3|GwyH zh;8v>z5Z`ne&w+$YOTr$%7~Xqi}Ns?0o!qNJEn9E&I+9*#>{N;&m?L~2x#`u zEFMvW0=JWys?Nvws>o$yoFq&)wC-Zk9Fr4@pHDRfREDGi;pmJF2|(&w#VyYU5at$& z!-=+eoeMf0*3ERBAyktc$?_nkQW)6G+$;s=*i>vp*^oc z!6cr_uOv3{v5S)gH(1{|IW2-1jJuI5QH)TLN*=0vFQ?)Fe zGY<)eSO^%Kb2xoW95RTwbmK02h}r|#Dbxz!<2y|z~E_+`sIU)(g>jzS15ZD zvxSjcCN=SDBs|D%I$*X2^Az<# zmbOO)syXx#i^Pl>HICgAN7fkT`b5|cr{kfcGiGg#8$TB#UKt4GxA@|X<>A{MO3xq@xKNEtZm6F^m?M19^wL|8G2CDwtL2aKz z0Y!x}n^Gz#`CHYfQr2k!6%;3fHo13tKt66PX)@9-Cg+YXT(u7% z=eE%kBr3Nx~L0UR2IV{I!9M5*5Kad zC~jvWXKR1Q&5rx_vUj8_Vd?mvpeqP@aFZloA0mN>1)_c zfBkVkD&!Q{J644X?ja_r4cTOKA`m&Qkee1XTTIuKWr1zC8(CKqEYg>z+O)~Z)s21e z!?)i5#((zVSHC99>1WsW%m3!;oB!_m>ejr$TT?|7>1#jS?GN|Is05K@YG!zsP7=@` zxcuaAeB)=ITz>w`-~NyP{_p*yZ0w8A+8_V=*`N9&mrpPCU;f&!{_M|vbH841A3a`< zZ=y_M+333JW_QxNz)pajoI8#i=!G2)4i#;>Y{QTzb ze!Y3UJK6c};?>ogR*u5E8JhRi6$?U4 zvzZ;E`52-}Jcz(VVG4_qnP4NRcIfn#3=wDq+#}QDlbgd(%S}I-R7RC27`kMiw@T*r z2rg4PI%kFjjxg&{pUgomLd3_R%%QjNAf77o17)EEuX*W?vsrO+214Xk*J!XrOa}`y z?#|e#FdH)kOxw5WN-9iqR{gW^hmBqF<6-|{%o{0{21UTeM9su(Me0Pyjb4@_?1W$KNq(D*#JSX}Rr{k4 z_QaDgLY3Oev^EpnkahjcPLVTZby7VBSkJ{p*C=pH#?Z_)!fh5gg5al8)XsoNF{}Sf zOixz&I4V}I<}6lQ}@l4hMk76t~jJ5mDy zP_R0Y-qg$X;M_aO5spi$Ebh>X8|EkJEx~kBc`S)#oeVNBqi~68-!V3kpDzzreK1|g zo6K<CJKpLJ;>2A-A>q$!F>7%i331| zzd8vX(fP17O&9Cwfg_NpBTLPk+Nu;jlra|q;dJ=7DWYZW%FI2dPKd*swhEq5*$l2> z`tzY4T|q<9e%!R|rp>v5MU*BOsPEwYcQPoc#Hsu{AjujlMq{=z<1Xjyydq^milI{D znJt%5=1clLtl#8wM{$} zc^ukQ`srEVKuM}Tyzpb))Q7nbBkEQwsUoUwk-p2bQlw2?e&sZT3`X4~+tJ6N0{FtDwqc^WtoEudHCy zylD58UbEK4%XLlMVwhH;!_PX}s@RK;IFS}+k2yoCSS8HYLYYy^hAPR-7|D?E5vmdb zpq2UYp@uL`7r}IDqRcvx%_thsD3vc$Loc6Pe7quAe@THAm;4ZMV6~n?TOr1jbBpuK z+2e-cBT^lp^SGr?(#9!?5QAIq-Mnd-ojMzt&s9!<=ADjH9TI6etVN^{ShhVwcuU6* zZLMh=kLWO8GqjAKohg{uWd1*nQO$ec0fk3Eo>6{zcL>z6S@HC~ePH@@ZKtlj`fei!G+S)n{NT82 zc4xS6aorUVM6eeY1MN>9QM~u{bYyJ6KKQT{YFpU z-Ce%>^uupFdiM79VfXEi*I)dV>yJOXyMA$XJbGW;A*7tA6bjv6Er?-xvN`_6cYpp* zefai+fV^$Xw1wqGxHeb(M=)tboZ$>w}% zkI(Vm2amQFZM)q`Ys}%p*cDbWTPFEJKRf%oVY$JdAQgyzlk_ZS;UB+pT6O2iSPzh)6 zMzsPFxm4*A3n0K81`UjB&DqZHR}~rd!KkcMrz!I>T$GWbe^_GREZZN@t$H1NL~%Z# zn~NL6K80rLqKX1&u+!%v`x%ENCH7(*UIiKXm;!QQ)UFf8b@^L-*|`m$PGUyqC}+>K zWWIVRf{9S!h;T;+z>Wtns**zxGg35M91E->31$=9m|zm9BG$1oKiyZ?Zwn#ndsvIYNz ze1gEmm8;JGO*IMrPGs(dZ&guGg_ZeJqy?%L#vQ%L7?DDzg=nfyh(&7T$tI+VfeOOL zWHd9%UdHm)N5q4ZhNFlXn^lV@if$rO1d-w+s|OTliQkfx89#WY7OG@XqT^31W_S9<%qT`g%{L8& zptv-m5&@y722tEC&vp_Q(bNPGqJByF8!3|?hbE+g24Po(5U+ve$YF9CgFk_YgwSJv z70K;ou+6gyfc@SWjC+mM&bWS-rsCJQi9*qe@)*D*nr%p+Oz>#z`do`d!_mSUNg^ae z`K+=<33J9tkD!+`G{CGE$%ilo z%uL3^6)cNYtol1zPpD{CFqLhjRjstOPdB>~r&5#nJlHGalGflkw%2At^#O+v|2o3g z=}$fAR0r5H;Q5a^q)E&^Cmiu|Gy^z=NNCwNn;2nC|4<+!H_WV;&!#!cB95|EGMpx{ zgBR-0n;mubZvFQD>_hCny0~k<+uZ!C=;w4_;pigLL%D|+Amew+`iYxf zpnVN~XzTB*-Fu@5>z=l%3XuWqn? zqzwmMap)(4|8WwHaou2H@cBh|VBa56Y8`mvlY1_@kg4dgkNNZ3) z)%AE+i?hr1X!m>j-H-Oa|H=LJ?eY4~uJ7z{%wrH^2%2KMk=;gi zTV0mr{ABsjFMsk!zk1c4{t4`!=z8_tk3aeMzjyU7zVp1JS?@R=wuevmn-5{VVew_N zF%g5(ihi*e*PIg{Y>no$s<`0INVBW{?_B|aWA(o#eLasMDOM1^CowKtCI#5 zw54s}r<={mf+vr*AAE3ecDd1$(~$cvs=x&1p%|>fVG&aKNax7W91{uHafON-U@Mxa zOU(HtfgO&Z)$lEjw$f|L`o(TOktEl*|&1>cHZNM5bInBVeb> zW7%6ekBSzUq!s|)`Iej;gP6xYBB?RSZkml4X^EVd2odOjE|O*L0Y~Dg3`_xf=3i@{ zytv0)d0_}JF&8YC;9S)yfX~p2xMA(K_W%GO07*naR2<`X1ufA92R+NcSX!Y?$N*5x zh(WqC2gb6gL|{x`R}({&;#*Av0mkDD`an3caX1|kaPey-#Y%)DRTLGYfCbb@DQ}Vw z7cSD!i;bd-iYP`X@L!A@Baq%%nA~Hp<1%JPKG_Io#2zGa1@g|U7$37Fq1-qo#xtLd z6cs@6I7K(G_<91sGK79InwSV#sc&aar*<}27b|AUt1u{|xrkX5f~*lDqkaE zMwYDx)DX{AM?UevOxy9`g6;bWJL1#o=h%TU+Q!pBX`xWmu6gF{lcE9ldswj2xGO#| zu~udfF!+od_FXStAe|>?s!C#js!4uKDXt9RiPahPlvOJdt<2U$5D|RmHTG=pNTr5F z;-U#?G%(F%2&vb)5m|xd81W8xAV(!;ZhCGNXUtiO)_Dpy4_r^1AYw&u67f{+Lvm=; zb5J}uS2?|rC#C}4DOe+IN81JW>UK?Th^9j`DPFW>vLnvKKw<6&vs@ijtu__7fCrh|+A3-&@jtP&h2IXM>cT*{+mtFD20^k;v=qtWim^usA$4;ZSz+kDDdzl!@f7 zsD%0n?SA$kWC51B!(wt*gweHTO129$=1GpE6C5#Vbs->!yXC?}Ds?J!C+$GjI%Nw{ zS7OB8>0iKVsezBdG7qphpy~&Ul&RX5`7jgDv$~q)bn&sh_ox+0zQe6I zlMqHD6A?+!%%iYrD1Dq&uRn^i$8b|rgk>L@fZe$qygX8zx#Rp1QW!zC1T96xE<~k@ z)IL|XspjW|=S)4aS}+ZeKwQ2+6PRz9rjFFk{6b~8M-h<_V zjtq3UFoZ5I`b}8M} zKGWl!pm%YxZqQJXTzZtqsk%WnF54(@5{-GI>cI=PMWc*Ah`ER|%Kte$i>G3AV7U~D z-nvfOxGo(=q$iM&4rqY5bacQM?`rFb+o>NnhTTDy{k`Aq^=5nN>#IYV~dDr09!z$zs~a7 zs4faYTL94)Do)VemKKk_Y+uPg6PoLae zUmZ-;4(qFzXzQ|jCa*pbs62klKKaN`&$J)gZtHE;{>E{?yLsVF^zdrIDzHtvQ_%)2 zs!hBpPMSV@bh6vv3-6vke*09m8x_@M5fp9I6S+2lE}BN&l4ovBy`u@dr2u7TY?{Yo zE4~8VBsE7hOIcaL6wcdx@WY8wVxWeV`Cun~b%Z75nm?1NwxbZ(Jx>P3H2m6yB zL2%D}nezvh%*naMO(%`*!9qvEttbX?lqVlt|39+cZO67Oxegm6=Gr?m&!wumOU<@S zS+oE@_}zw|{HE^{C4Z907l|TZ1A;As1SmpK%gtMNRh>&_?!9J&A0kG~nZ*WK)qPIp z-fPWE#E20QBd8$^nU*N|o>25iRT@!DQ2QvFb!shp>It>CH)!wtcc;D;GU-FG)KxZG zzuECtr9rlW=|w6+Na*Hy!=s}nSa-(64*%LhcA6#E(yC@tviJYkthU8YFziZ@vvuWx zBuX3NKoPaRMf$3ZCCXVKHO2GgR8iud;6sCSmHVeq3MZ~xg;^o#W1&2(0_E}oeA<81=dG)Su=u~ts;<~%qS`jD}J#G9*RLB|n zzgkSvhPt9+d0$;dMT^~%zE(_sPcXc_wB`YD`NANpShJuF8cdRlKaeTQ&BJWnX zun}-#XaxDeCcQ*b^tzGs7M5=!?JZlRYaeAiWfDP^+vvRYyKlH#-`-Cp=8?LLy$<9; z*kbfn9^Hi<3yD_+tZ_%^diX_LZX0YO^oe z;Ow>Xx(H&aY>y9@?^3tZDs6!+ml9h!R7+_$FebN8%KvJ}Qr7MyO{ySshiude32300 zm7=?1BiOVA-K(SEK2(CsfF}c3xVa~K2cY(&u1j6q3Hx}o2j##2w|`8DCUTvLrYy?e z)(z2(s!*(1({*b%3oB;ZR3H$|YJ_;@w!zw$U17TWa@mYaL?}D1C`T`aRj|28J^~{_oJTEY(=8&Ft}yQyUbMmJ6;2B zVs&FhD7B!?ENV$#)Mr{ApHcN5Zz9A@-&K)_?jSS4W4eSD9GZ&@dGE zMu5r*)uqc`KWBPDE8;JTz+Ra~;q06@huBiAQs&xK&s3L4cJsNsQ5o5e0N3%YHlw7`@8 zR-_A$V~lFx)u;vCN-*e^p2|kQI)skN$exg)&IxtMWa_?ZlO{?Y4yiL}o8S@626%>8 zhtd^L^=JaqY>YNbEzJH+8RkAvjlPO(Dw`w#)aXd2L$E&kXIscieWUFIyHSSYD2g=R zAaluNc;(T-NQU*Z~Dj-l~b*9R%Zg~rx84S7PcRJMLA1ROkk zBH*;hk)-V}%JO$It^X=4f*wzfUp^mycpkqzk0%@Mex280^oRSa+s*u|#eKvx;&t+? z`PYZrPd1-@7`>7MVde&_8WR`>@vV;w{RaO8oTZ=^RS+GfHY*_eU~^j5G%{eo;6Tg6 ziLFX?jJow+vSQtU72z5^gKmb(mM{0TW`|D@HvL%92=#o~0h zM@+}VN)Ue){Xbgr9i%fw!N0{MtYN9pVdV zc07#lK8{cSk^BbyO26=!hyQ4CpEIt51D@CUFkUSXejI!_#y5|AceP*t`oo9su9v3= zJUk9n60RIqlW13~~HTWbOPlRAhQLb!dRypPbY`B`20^~dqz@P%*6?oOzDNIK13_mZW&&+txK#gHIpXGVVlC?e_DU{p?@S#*Y-gf5u3pY6f#2`-UUgEXXiYPg;n@h6U@UEc zHj_$oV?*t#zaif~Rd2JxVp|dflv(VqB{5X-W`Evn;tuiOe2mzxHwAb4`S4OT@%A!E z!O>U=*rv}E1iUee8_S|To^A_WzuT{`3J3lC#x~ZEcRv9%jHrnGop@^gNc@G&$;L->SX8qAD}7$A&sVG19d&R_%2_)6w@N!+%ByLh?f0b zWhLDkBJzSA@f5|;_B|hdv&^+g$$*)=%XeW_|ti5*skT>0@$m!#?1 z-p@)|?F9n5!9KofWxKrqQSs@LEDit z+{27!2a~v2+#GwGsyH;n&j?(~7q9kUXy467!sWg;6)-E?2znE|Vy0xx^G>mUYI7IN*5$r}|_U(lgE{(cpj%v!!S2euj`N@=$YV9NvbE=C}{ z+;eP7rtB=-y=NvCs4dmAz9S*3w7I@$-%>LQf*8pYbYw^Dc4HOi2TVPRy;2xA6~fq5r~*^#3~;AbJeVVH?3yaxj1O(2PwQH=mm zb=g_xVa6QXgATOJVD1qZ;fOgfKF)bL`S^;bGp?s!8Fpa4^6D{QadCT%Ct6&OSLgGI z;eNgHxceCNNG;$ajPrgD;2`3#6WPCKMr64`-YNuOI0LxNhbz9m#``CHxnoX0#+-il z^Q+%p_etXzB&-?B5_2uR>a2ikAJ!uzXaM-vUV|;!6VzgiX^853C zzuj(unA5M9!^|G9!{_~WKZBQdA3olmfB#>9`@82KKmE&p`M=}*^xZe_$KZeY&ENl@ z|MCB|-~6ZBKmT9-KmTW34?h3E_#OG^ZgAmhGc!+4Nv<*mD(KIWa z+W~2H?wgHaD%mKHpIpQ2>nV07L*R_14m8vJvyNYJ*vZ<<1CAC)!wD+Evq0^Y-wE5n|7*o1r{))uF*LVF=M1j=7n8r_~~!FnXQ z2!*HpkCq%N4hK*jP_&;*;JCoEuuXa56^~}2cSo4zZKL#RsHDwgjanc1oTY(HWop}1 z={FjYDU|3u;)>%$zZ8WSZ;tvBKT`Y=d*iBV;;bY-DF61 zD518+<*w`Lsp<#$EA@x=F;{pWr0{khMWJo(4AP>~ylJ_9zWnoMu}j)maVgj8MQ6V$ z_`23M%&gnnJqO+jYgHECxY-He;~lQD5NblnfoP>3&hgLb73@Ogu7y| zx18Ae-}Ugyl=l@B=c^#DsXy`K^tX|P=u(JF+0@CA6PbuDLb8ipT{1&SQO9X2_ z#(Gz+j@Z540L6@DJlQrp4NgB_L0D*1xq{KoiEdj1^$lnYs2+V`vsE0Bn6w~vUJ!3z zs^@1Xh_%Z64}bc{N)Sa;RuKC|c@=`-FslZcIq$T=UGa|4*b0SzBF~Hr6>>rCre$!g zk8(la@RmHcKEXA>;w}Hv;?oJ4MFEXB`^CO+-Sr)@RLtc-t30kopch{tlcRV%v~P%_ zX&|OQ-EGx;kwG54PqJ^dvZ~PQ%EkmzMZ0=3g;EFa99o6pj;d*8sqiKYYD3Utq}I4x zb-Hc)8vsl3T_8ty1Ii3nBwnUg9=6R)OHCofeCa2wC&3F72y3a-s7<`um-gVV4ZZp{ zD{x&s)nyGl<7&y+muq0T$z-EjT~9<{gvT@$r1fLU$S&g+jTKZyvS%CCuU7$W56^11 z3awSIEX0+QDq?DLl$uVF-YqMQQP%m*cQq1e>&XSCKxF$^y1zh{;FZ^^u`-c(E6s^* z_ygc#QrZH$3P(4Ow$^Up)bz@fCdBGq-FWtmTjENg)!tdlWAA3U8@#>H>hxLs8{3_f zss(8#*$6D-X!WgZ75Cb9;|QeRuG(lF(q^Vr> zG_&wod{(uzmcJbWm*@)oHGgnmNz{vXY67=O!QIV6pVWz)>SwST0l5}0&0~?dseNWN zMLYuBZ}h^7-4tyr2D~y_UReTKE4}P&PpxTB-OlV|i%qH_TF0c9Ke#5qHZyB%deoH# zjr9RVDNaAnF`W@{PI7Qm&-6t2V2qJ+zN%r53I^X?#OMbyL`*y&e(~kc{oYhx_?>#xdjKc5u*7i{ZpMLC3@We4ychua%nP96UT8NFr?dSoAyG zhUbc8MSrz*gTujaIGuy1e~otsUhgyTiu=jeuzAKEJOdtfdQ5WWcrwrd=g28^aD?&t z;oU#{{qHzurbfo~O4_h_3|^1pIQZ`I@p?HPuE*2k^}NrQ+x@@(=D&UZ`t{2{{5X!7 zU%$Tp`0jlA{?lLoU;ODG3Lu3UVK!;MC%?}4r+A3*`u`bUhk6AD33}eH!z^bS4De!c z3;?)TTn0Zp+BYAc{@@SZzyJQx>`2Q*B9u@}7nHSc^r-GF|18(*7`F#@Wb5 zwr+zpZ>Xjus@!8TOVJaUajfzmQnSVd1qwwc+RUn9V<7TyD^Jh_(t?qBL0VoHYGo1; z#)>5x^XNazSTSUfHGiXrM`XHd>qYP0g*87{{}Pt!v=XaaG;*p#ItWL*k8GKzx}xE! z`=m&upG`6R7KW7x?VL13R5bab;Ur7jDVe5@<6=d+ojIx+^D?ZNY|c{=YBcJ@L1Qbf zW_;w8qfLb!V4SHKrLI+%4$1QwG}T zCXF__b&IlB7+rXMF;lCGxjVjMi3}IMtpAqEF^wpDch)=9>%A2zE>^DI1raLA7Ztq7 zJl}6*6Bd9}jij2lGKgGp&KY_+PCwyZ~h}zc2x%KsoX|f8VF8g%h-w5eYWZMw&{s=)P>-1ssy zM3r%gwb_CFuj*f`C@bE4R1S#f&^TI~RmZKKxDW6?w0fPrX7m>C)a*8<=p7WF_D1+- zPcZ}Fpa1FqA^N4xL|vcVz%ecGhzzA-22%QG9Seldnlf8PS(8w**Rsxg$)J$Mh^g4a z()iY_sHg;hRs56ZvLJx?a&)VV97^j5Y}_F#+V59h_AYb}i({e$%TcZPteCFu5t4}y zA)CC+!x%YEwPTc=@2=Zf6?$?-T2|Lyh9)cq!oby6)tQs%`pH6E%)8}YB&5Ey zq*JuoNl(O#Fh=PeR$37xyNH@ax?^O14~VEx!hbF?xB~e;j+)!BIg2QL0}&M&A!qN8 zRCXi6ou(nC*a+Zs-X$g-%tj-hW@eUk)b8%3Wu?ifC`qr{&#VLq4;aQ!t5JLRW{AY~ zw%NhDj^&pmgwB4{K3Z0E$=EG&PehJHU|4-yRrFE(vx&s^!u3C6&+9N}@7u!eN)xYS z3biMz3{2B)aylUENLY0&>B6tNqBhXgxGFEEV_6hV<#39Ms1QL@SCr3@%t)Ehz5cnc zEqibqMbJkdW4Vb4cSH|mZgAssnhhJ4v~cX}(4eKC8f}-A0b2&Xu#7WX{3HnByu$4yvO;8|Hr$HrkX@V50mG@t1sCpmkd)Bfey#VP3 ztm?Abt8F>G_W6BCEr-6ZOQ@87+JZioC9SsFy`w5$sAIm4G3%8V=#bog+27u*zF&I6 z*n*|rmy|tJQ@kQfdHRvxGAF0o{j_jXQKH#Mks~K&#O)YySQVyZ0Vz_=rw(5qN<$TH zm@JP?d^h>)=j(s(7ZrN-x}0iT~Lwc#Y@8o3pc)apm1l-54={~Duh8BJ`+IgB8!ZmO``xc#ye0%zgIUTq2e!9P&G5HF< z{^I)+Jkz|BQKT_H{r%tH$qD8F1RGiBV&gK7aa=B!%jLM=&(roP(CN zoq6^RGYQvYgwLF_$%_p$9A+1@>tXcie!hFSynnJ^|LViHzj%83_zv^m9*Y#lzSnx9Clh=%-jq?Md@*}7lD>N!DR#78?1I&whEB@ z0nqA!j;7ix1E(Od7ozMQ7ALiQbS536vc#$UwaH+W({qJMO%v3BAmxfE%gj}fvS8Hm zO1q=qGYxCaSJXu19h>>;ltW1$3u|?i6RL8tQYVe>S9H_S@s=kxg#pWT{+t7;K)lAr z?Lz|-1gz9cB8NIhu?`X`Fc6y9)7kFbWp|9+^UgYf)-+Ayk)m4FPMsT<(H$kl)edOA zwTEvCYjsNG>%wS()N{|g@)&lM({%Un>E%E-?zPvgms-(LZ-BZ}BMj>}y$N|A4W=`kG*sm&+uaj*L~H;6AOJ~3K~ycYB`DZAaxAohO!mbJ6jxE2W+p6>smnJ) zY3A7SA|BE4dN0Y(uNbi^F{<#KmdunyY-{zT5e!b>f2BUy*hWVlg7BvrXWa~I=+p#b)>y8%{66+@wS^%mx zC|k~^9(|QLG=hqnZ!Q?SghAWRtOAo-BHsWlh0SdN$VEVItDOsFR@wqu<7i4xvQzoJ zW}{;+0KOO*k!U?5ov5Dm4o>=J^*YD0c*`{C+9@*Z$Of{TNtb({ivGo)F@!3e)gaOg z+?E8gM7>suU=fi`3~OiGD>g~GNJg(xhi!|v>~I-dKy_Q>pa1E<$@lFFXQ(x)YUw++ zsNdg;h;@}CB7EwWR<)k4Iiih|qFQ}Q+E!~D0>Wde^p|C5wz;?~hUlc&=6DJKHSyF( z^i5P+jKh|@R`AB6d}Q4TGQopht#8|+^V&8+D5$uZZdM52&ALRu(>Qqr#+{Su6C>VA z2Vl=ewX?7C@`_7ryEdqEkW=FG&u6$Lkm?Dw&2VS^GdW~F)B4>J1IvR{v+gnqmeL>acZMnQ-cref46GE8y< zo0sfKRCN-{ewAtPt^nDH3=MS^QKj@uRY7MWXxT^2*lC_6$}?poTI$qq2-F?qsy9|< zUS-&Qy@f?~S5Zzy{*tPM&+8$&mHH`}$Y?83E~BR?R-s!>T}4rC#nOv@F0WP)FsbDQ zlULGXkz&mSbwZI5*T3fr?nnj>Xna8)LkQ7(1$x0Df43&SSwN`EIx|o5Oe)k-RgR$h>;XUmkb8DNi zC>bV+53Jm(RK})IkptNwIMO_LoDruUctorDqw)y=rl$y<0K(@)C0PxCl|Hwj z`Q>oqtPDRjK6X+H#=JnJ~uXDAY7r!AJCV>BFT>0(&qS9OS@ zig7UK0;Q^Pgf_n^I%)K^Yj5+Ab3B*+9o`<5m2S;j)}Xh${3gUO0QfkZaiYKK|*;!+&=l?_VyD!8rVO@&P1_m-|lxcg8fF z4!_J#m-Fjw+{Wz(JAX2NF$8gdUb7Fg%{;kUI|$$&!I=>a=#j(bD=%-r04@kOoA7&@ zc>3AKp$;d_ilv&)i5WQ;rKs3AXW{0gF%2;pmYLldGr>KL+5{s;W)*`1)#(N=1j)-0^!f4KSd;@6|Af3FUVsxdU#!rYaV+##oo+Lv zyzNzXx4f#c#Dl6QSNurTctMz`Y>(`Tz>K>m-spLz#cJwG6y+W9+SflY|Q*4bQ_GD7MrJ|C=D_fFd{on@f zB<|Tf&N}*B%{9upMCemujeZhp)ku&eO`t5IjRX*$Sr2M2BHZUzbgs$~EZo_2K(h~; z?6%_3q~0nlGKflEzMM)FQMg~Pu!zSui==~$mcCkHS;w(;LAU6yI4Klu*L)SWAM5jg zx|xbtx+!3b9=Lv>i>r~U2vooabm9GeaTa^nTm%&>63v)538&7XzMJ*^71F3UeEsLm z!zy9C?(bTZHOIk~#{_ykLor3l+;DNOGMFrFwKvSginyEVq5#sSiQbg4ZY!du#nr%p z0_mYEuG*t5Ke!3dOX*^}xSb$eRAlX4`ho&8I`kW3vW47lKa5qLxw&nmJiYEa84s-Q`PfY77XQA@gQGq>U<=$>h_HGN?x8rJfa__BI?Wq-tE zw-w!~H_<3%%M=;QC@64^ygFOk=&JEuTu}wrMhnCd$mWsC#z(J6-rAb>FjwJa z>Yl!Z`+4w|>c-k*gG?KDFA))esX8UAAR$&vK;et*bQPbmmYHROx_ed&rzaq>&r+2r z45HJAb^lWaZ-5A&Ea!)I2FXPDswM3+T!yp8gqPrFofc`Ft5#s6$xy0?V!p+bB#N24 zFc97{^f!vrNWl$jwQy_b?_bt zcw@K=ymGuAW|c@yN6L1J98vrNs65E)VWavPLDbLu1&8wrBtdw9-7 zuj&=@Ae1xj;$Hdfu!>exUX=LNlzdEus$)6Wax>POC+I4^3F=nJ7}YG7ZbQN)>cEyQ z_98D3#jZ46h-w9AD{j|G6o5bgV{u|F`_b+{Plv`NE%c+m1As{JK9`BnRdgTGUj5ZJRJ8g&T)VEaJ~I#{^`7o%k6m!jhxvBmdZg{A?6d7Anpn< z{B$_y9lQgt90rLrgx6*@V$DCV)MPj-lV7p`lMeTUEmkuPf*fAbMpg=- zfN>fP7-si~mw;Iuj_U<*JUrMr{PykmGHDYdeB3znE$r~%aq-9F>DT|__P2k_Z@=~VY@dFLag9%Z^ZIc2$Ggv0`{^h9 z@_XXs9P#iG_lwz`c(L;flZ^_(=3t8HnFnmx5%VwtJZP6;13nPP<+vQYSiFCC`S8S# z-@O0k51tU@^#T%RS!EGMgCQ(9v4Y$5XAW8t+NRo#QvK6h-84Q4CPP6Zr;$HoQRf2G z$#glxgs!60RYK);Wx|!16%rtAG)*AY)a6nen&uCCgt0n;vzVzaQ_7G^|E?b2HqXa$ z-8GXlTb>nSQ6pT^7$vOj2yWGIl{+_8K;%_1Fh*94S(nKJJwB?8WeH|gnn(Q#p%g;V zWMFWzd+W%~(uT^8m3IP?Q?fxQCzWj)EHRs6^OS5>Iw*_BG+-@ed5R!7*1#hQXk`W_ zb_zn@Pj6qp01-l~SNc^;;-~O0Yao0?w!@>-pUPrteG>pV7LsY#6*X$A3u&`$ttOzC zn-O`}Wy7xbV$pms)(F?x$qUtIK-(syuM~H46;;7sLKZr@TvON=KPLyr)xcMTTE8=B z)6a6O0kau_qO0Hju3@ueB5F%DzS?^aBi!d_cM z71bb^8|`rRpq|BM)-_v=af*^cB|-AIITco+R$-Qk%eP3Yc#7>T?F$#pyX5##4a9_s z#`7|b#JjQ*F-syg?Tk=3FjQ!>0SoI>&ODHwW44Pjiv^Pw4y;DlIiZG-Mmn z7Dy%bDNd@OtPE85SE|w{A_f4ru*A|;i5b(qVp*-D!jY{%FtHTWHj(JMN~5qu)@yZq zg&S%;5%xD$azZRIsamWq!4osEgYYO&Dg3W724{FlYbW_K;~~xyaS>GI|#;{@Z{UgDDE`Qxv{$R|c9**Dt6g-tx&!Fh_**-~HQvRh;0a z?AU}~`_p_yuX3JYv@tH^IL|r#**(?~68yw^t(Ds-kin9&N=<|44s8Y7HIE!XHW0AN zr=e~RRhn3h310zpd3e>OiC839J&Ccr=#m?2JEx>i(Lk;+9`(kVWD8JO~ zRk9B>D?P9*Pu(ob{vb)(Nb)wPdlKz|*0D=RtEEfiPzm?W7h2bwbYv4bL{|PgZ%`H# z^rX4EuO@f`fR?R!`N-}ma@a)y5mL*Nabs`(%6Ir|e;LUWQM32sAu731lx>mZiPB6A$+ zBgy3yu21t7kz5ZsvW>LJ!9wNv1dd>~HVC$4wk=7iT3+9tPE`B4J^3K24<*)EiF7Kd z;#W`2oXV8Fa+s-kDPTUWHK@|3l@6szSjBlWye_`_(m;{_=Vm6(?Io*H^Dr{Kz9EY71uqm#qPQpM;qtD6k zl=L?n2nLy5#9<6SxgyhiQ$yX^M6!8{&)IcczxieIhzR3k%rGE)Vq9=~*y-29!UGn(pEn0iw{gxH1H*8}#q7LI_qabl&vAco ze!7{@J6^|mJ6~?|^*%8VjB&r8VZ$%ixL)z`Lp*=Ig!}FD%xuM+e0h$?3qF1rap&Lt z7Pl8aZ$1!DSG<0SFF(@Uzy}M&PZpR~tOp}9^tl+05daSx2M6dk#8va#jXV$+*zv#* z2j9JaeE)Rg;4gpu-NT0`bJ#H;sNn>0AukqpAZq9$8S_rD?5o(K;*nxrtfp%-eGQUh zDjwO@|Ik+{)alz^XW@9!OcXgK3GOP!p@B9IsCTk$xN?_jIVo2|Fe0>3rbOf$M$X@yY2*ot%MX2tcmWAwF51~$v5b+L)3ki5z=qk4e^e{dp9jdw~ zB<+$sAX1Jz%IP!3`Fu^*(0OL9C&5nm9I%ROe_Xdv__uAmi*_sRdQ$5u&-K3XXSRGmZSQ@6|I z-7?nprk+h)SN+SjQz>c{XtURk5&bajoQvBChm3MjfhkI}2#$WGvfdQT-nukYsaf}~ zsrgpy>MO9ee{H>tCzN?5mdv~`-bSKfd*@2GD2P;muIslJtdcWP9!BnAvo5+2@<*}# z#ja??{pX{y>>F1lsz?PKvKkdznhnc=LZp;YGXA9Ah@zGHl*W=sV@O>gF?^5?Ocfwh zUzJiXORunEF>w?m_-B9eubaupMN5<6nq5~*pg@5jImYow*z^ehdd_>FL>WVA4`eD! zvg4gQioy+&-L4>3wKw9WL{G>Suf$bxx*FG&&)yfautwhM<`FWG=*F}r!i$ZqxHVP+ zLnqWqVo)uU_anm!3Pvp35NEc38x8#WF{G!W5Zz@1RaV3aT}5Q7Cr%H)Md?Qrdf z$EjiT)rdi0#$=U!t*W$;(^KjXP~aRIaY$O${gpB$+Jh?}DDR5)kg>X;moUJ29q zR{ezqMLBm7N4o@+^X$u-@0n8vD{)*8DLEhvv9PG&CR+Yj@<2ei*+9R^@+TdKh3M-{ z9dD$WNAy*LA~Yakdg!sch=eR*HyH-ALtow4WbyHBWCcFU#1;@)*KmVIs2o;4Cm@K? z<-llqP4I?&ikfC-iGb)bRQ00_ash#CJWD}=40}Yk1UhE0=IqE4|4TnJ=Tt(i?$H8q zMMJw+&S3`!i-oHP>W#`5f?@_=O2 zB0SE}EjS4n57b13ZZNq8Qj&hqWDUMvN{VQni)^ymGBAo!X|mo7v6@i;M?l zSD>1i)rCPZeIaqE`V1S{^1SjE;@3iuD_@CYBwter4P_Ug7@<#26gg)`oA46H3;~Xa zwY>{HtTUBBSphLqK7y?e+7k60FgNZNO7(QwL7yXFcNakaQiymNbW9whDD!j-JUm=3>R%<4&k)Z~<$a3msbJ{~G*x05fbtn)DS*yMn2r92EkQOevgB8V; z11n+DN(n6PsA`knb_3L=Z1hB0(5(TG68{e6+WYexKo;Gy1-(^t(AZU`T2c9S4!FINgl4L! zo1iDl*9W>_AB;(unjX57vQTqV?90doOtnW1H0m}H3!oOO*GH_2!q{uJpooeAw`gAi zXUL>>RjrPe+GtKq${V?d?&0AQ&8$XNZkHk%>N>9tCVKB`ot-PxRzy}9zVtd+(s^5A zsGw%WRjyemZ=({3=czQTiAl-mYC&#s4s|`dUNY@mG7dT)>jXxuqs%@SrCVOuYS(*V zVdExkC{)uv-ywQbxkjoA2i0z(h%^^d(?xZZik#BwW&VdnI*7pC$^(1i0ow5@4baDf z>m=9PO2Mc6!KR4!hPA0-o(uK&I%K0xM-lyH%|;pYk$vBr>-iZ)D7L%UfpR4MUK^)h z6emOxZpnl0r|BfR4v8cU%S&}!7##s-xqOBEXc@K4mPvT3zek4$;siE{r$sYvq(NwB zRj}5;FF7fXc4=DP5)p1LPpOXftT}=sr-pMFg1~SO4~sC3Kh5Q}&6IY9L)skgXEie- zE2bx{haLAUpFZM0b9TW$`_q5jlqaiOt;!z+1#JguN-a5z8Wy zXwk8mn^PBCDZr+Ske@DtUe!-^3$v(aaxH9;=t&N#WCa9N{ZS9&6+(;ZkWfN$lR)%# zs1m4-a*3Ekdql-m>l)WdRZ0P(z*qf3-ZdBTVL}2m%_PE%w2S*x8cNO5i{D+UY55ZF z?lJph(53=Q+({-v61nX3w;!P{|sGN|jXYX~JFV!6BK9##$lXivHWe6}VG;xh z0PZt`C}Rm)FASaE?qZjC_-bl>P)1*7;tq+2|)t!h{(((6?zzowiA%ZkD(ydD zM=G#u&E$jmL#qZPRm@kZb z_}9VDm-`PF|0(RGyN?lozyIIx{CCIgFI|Np1p)v!j#+iK0nP|IBPQK5ixR^C4pp}~ z9O1(*#vqQA?mH2-RQvHyd-3z_%kjC&I|nD#pB{J7&BttgC}@*d%y`?gBBda1Jegyp8fI^ zpZ?+NxPN{5G4SKn=JV^9=Nn#c{PJZ6&fCi*{JaIjj{~Q}$Z)^C_{$GX2zcaP4InJe z2+JWd0P_yU@WciNvj|#DFPZ-=e-HdFkxjhGQTn-Vn)G<&Ihr+s;O^s*aoNOo# zL>A^G`=!9LJ$w7|1~3H@^z_~;S6!si8E=BEAP{p#gyvl|L!?+sXr|zGhhv5Ao9$|5 zCporV*-%4u#T|7ML*bi*^!0YD+Mpr}{+$QQD47;Ha!- zy-1}}!vk}Fqe6P>g~B=z=!VK%Y$`xh=pulqmZD0$R+icmAXW5^^?K^Vu2kR99qj1^ z6;K36HFQV4a`UGu(=cQecnSSP)zbOQj*9g{ds9^rSQ_Uu)7IoXuC>diB#7!_LJfT? zoJ1#a^K*MH%?gNCzyPsDEwwD%uLwZ9)Fel%th(wPs>2}l8O*vQbH^%ZWL~^JDh4Uk zStST)(omd&)@DIol!6Qqx*@TY zw8mA$icVk0A`~`qsles>Xw~!=W{kAs^`i~oV*A7V+-`Ezz9{slW$1&}k?Eqh#11#* zAT~x78Ow2X*RAkgR1h!|;=6+1ZoDGZT`s-t=m%!CuasYnPE`D3X6g;o-gfop+_z@g zD*ez`rdhe-UZBF91okB_8^)l+e2yR^dZM}*#jQ)L?R#H=4r)tx!|LQ3CvlQqQW{E` zcMMfEqks0Nf4uL3GAW_?0%c0ww>n7?PSnbF*ik>vc`uGb10;T}hm)6O zujH6;9@T4?2ikh7MV+{$+vZLNtz#(T+A(g?OWD-d;&7}wK?U;>0gn?^50fIPTdpK6 zXmO1zI|sd1f1io(PZkkMQ_Xp%fP%GWDuIK3J4>6W%u-YmsT^$b-9&N8pm1B-~UvVT$6HfZxuQ)#ULK;SG>$IGqy6 z?3F+@WX;oko;fm-X2WD9iYp$S4Qq}VE9Rm23sHG_+G??oubaLGBt79ZAviIW`xSUdLn>uE zONvb==MFyyUx{gqs)ySsdjGkq2Z2oBe?0g<`mcpFT&1_B| zg8@r1Ok?=_`}Ln6&;NJeaM^hD0!8&M`PA$V&vq zVbZA!_$26_wNwe)x;&z0Lc#zK_)PO2o^{n$%}FMG7g1P+_|0O1BQU0$5gr^o6|m+x zVekkTd@@d09?^pgpA%ugI0N%`|NZN$e|`SpH@|s(onK$*W*&YIKHvR59n%q>T$~Mt zIAW^6}}t+2vrK)^SM}Ri)?F>J??sODHNMPu1nXft0!nO6sqDWVK+3$SBRg zA}O;Su&ytw)<$?!<;F=FYh;}6xm1a=1K2euzZFn-A9$mb!@+Cr4TD^Qr{Hs?w*`^F4n?P$bL2 zU>I6Pgo5byydCX{wkuiF4Q#WM6ZxO*N#gClq9c)vq>5$3VmIn^>93mm=x1vfkdLOK zowJZ?;-?yKk}kMGDEhb7<5ZZ})l5`kD$TVDVWNR8m3av3b3D$zt>d)nRPP9 zFuK>FS(kq0PIH~SBwX@W1{=<3*h`wj22irp$tAyXe(xmc^GmsxzvMxHEAX@xmku0cdDq)Pq9w5&a9u5ye1 z$_P{#&T42z7e)o%+{dDSBmkfL!0p*KQyPL|75uSEA9dbV$MJG38?b$I#TM1G^49v& z9_iS>UqtivKi7FJ(B0%Od!clkasaKT7XZK+;#-5j04!p}7JzPcbK!J%UyFrii8_Uo zbs;5=m~)kAj+n-oSb=aIGzY*x`;$Lzf3aqlY!0*ohq7PMU)n^bhz*UJijvZelAa+` z4^IK7q~MnsDp;|r(kK#?u!%I4^}C9w^GSe|>L@kVn3$8KBOC0K5-O4{!dVMpBEDff zP<(&kCE4Ie>N`_+~EZ9 zJvnUSMcXJxxy-5s&+||xA_z`DW8>S7nlKO0RGEe88ITvFl3TI0Oov?WN{pAS?`T(d zjVnDUv{$YxpU`yqlZ~uKvzB{rw9z?=B9F^i0?1*y#eZ{=CQ}PyZ8`fuN*A(yN2L)n zJ(4b4utF_eKC99SG2N%%Ne+&p6oIs>i_xYWV}=$QTrI;DJB618ILj9%sVX0p5m`1; zY-wcC)}1p!#Ec65#!4S=sni@vkwe$=5JW)adRbVCj zS3m&a(`Sm9u;57e{e+~z!)LycvK3AF5;Q|LJne@+B4%gd(=u=SyHHG)M$xRH@JeoT`$IOdmv`4FPqguTJMbw!w*xg# z8GsT}-(Ui|FnMdpkRejnxvqdpFjW0jqnb5VOX@QvLJtBL$0OppfCxc5^4&aURL#_h zxRY)M)fx-Bt-|LrjGXd>{67+6Rws?#H*_ z72_~J0}MN^=lwG8Zm09rc(ku{h%LAxDxoOiD zAd=Jonu~Q$mN8hk$Q5N7a@t;fR`_|JN(-Z;HS4oigtVy}Y^+V^5c-N11J8yymDF+h zlp;P`Bq55|TEpG?=oMukzpQMN@+K0IkS2>oL?-ZO4P;E}m21h_&!EE0Ega34(>%@k z)uyHDJv$oQNTckK+6H=r`_#cP)A zqv~p@2s1>7HqgmvQf2%Fc-E|;9??^zRX@CBnxxHCgu(*Tb)e2{6ab5BW3EHj87@@A z*0F9cmIO}u+e%7R&RC8!)?;U&qOy6hnaC#b7aN|^Qx|dRan7u!tYRFU=iC5J^!)3RzQuMRvFgQo zq;L7*su<|57sd8m>TG406b416W7D8J)e$V;nz_}Ih6sc$2}sk)aG{gl`kH07ty6Q2 z#f?H|chO#|zTBR#>5pF4y4Nf1-CdJA7sPe5Xzk`y!_#(HN2!p1sdaT{Ws?J2ua-FF z5V5%u_QE!0ZT8kVIdPSgLB;otU|FE3ErZzNzL*;ntU#>u(F-&#?6?ti?60W(5Y-jv z3ai?V5>Q+}-q{0U$6(m5D~pwHNDzxVTx5%2uncTBf-JhPR;MXd_4dlVFRnruH-vMs z-kt6dk>myddQeKTN91_Au8`_2*gha1t@Z4df6=*VBiGe!Mi5~ZgqsC1!HJk)ix`6c z{!ji@b@4>i;jfC7&^szM9ANm|ma@(Bq^3=6k%r69<+1XT{d>!Op|QOxxGd*lgjX$K z;)Z3gT@}b3E!0ge8DS!(vut=m_K^-UB0Su(s&3~ex5!D>F-Xe_?=rl8T|Vp$54sLL^}T{6jd$`Y$=pSFxug*NvJxC?alrNg4cViZbI{$*EWMx= zhbUFbwB8=ot=RpQ+a=wdi=?JIGX@eqyFgE_v+ye;$*(-XK85mXi`Fb-ZCP~@#N0Qs zy7O{U#j?ve<0(tc%Ad^$_c?5IJ7<&Zy&+K~@L~>|^eSk|eV?-WZ-$?h@HqQA04yGx zQiHK^RGFtT%z0P`Kx0u7!ZudKu4f=2a=PxLtk;%=X-AohB<}+uEa9Py?YARWaR}pQ z-T?VZQ8}Z3bgZ^yak+mzRmf`!*_uZ4)&Z14Fff|t6NFKr>d)v1Dwm~bpbfnci=Hr( z6H=cHhjp6t0eFhI^cA7O>4YgbaYgoyiS}j8?V)?*os(`{1{)myeFa!j2fzzuw1X+Vz4naB@D6_)Nago-Mv| zehI)MEPUFC!OQ&~TCI^jcN~ad4k9pf0C_`BudKRRUBq0;oOOum#|#_b5g3LS3*;1^ zbZv}?q@;Xi2Eoma8c~v!>Wm0j%oJ2h>8r3~WR+5Gd8_v!BxJ8sm`pd_5a$^Px`8oF zrw2f46r$i>glldWNn?<_Ab7idne+L6d&V>aZ!dSBJa5PA{pvo?+ow6tbNcIz=Zrah z`lOG~SAuvz@H_%@s(u<_XS|NXXpce0JcrK<2h1sV>R2!>S~XQur#%UUgO+%R0~ zY8B+FV6aSMO3KXMM z5tci`{S5hQ%em5}5hiQI!Vhmubcf&-WxOe|Yg$TlNsE@&>Q}-^PcQ#z3f?OIEQOTl z3R~!`MQA!ZBo$vGnxI#LdrnuQim-?tRX~10uR6xbUTyK^iZX?J3iz#Zj3%mzEiW!+ zCFvqSm;Ay?P%bs)4MOPsP_qeqH3y-lySVb-c~(T~LCATXN*8NW@Owq8P|?ytrNUsk zA{l~ZlHS8z0nsWws}~Pp(VyMPrp7XBu$ENVcncw8mh)T!?OW-JD$OD~WLYh7;%#R~ zmIgH=M^EIe_3C_kynz!tpR|MBEF5;hDd=*Uaor|JFW=0n3TkcX3fwBB6^t#2+mcDO z?OmC*`lGpFHmx>va}RIZ3su`kU&50Gmk{pFQsi8z(9mo#6SO&f0I0-OA&y*SP@O2mWFEYW4YB%+H~iQT4dMu zRBLffl ztJ#)Z3QwZO?8s8p=138!$OpQZ8*7NNMREE>z*t>wX&;k@?CD*xgyEZxkP$&-?^1tw zC+l+3kePU2I!enH8O0TEm@fiU4lQC` zy=V)lXR5HYxUPJu>9ep`k)&!f%o-t|5S#`fE3wk!8@94`73~F9(oIkxR88HE-?Ef4 z1j1_xt9iEI>6;KD^r3;JD2vt1UjJrY=Qqyp4Dhg&&3RjM6@60Hoob&VueRh%1szbP zNm9G+HE0{nZOX%1HgGX=-$O2hL9+~>yVId*xvEC&Hk8i1i5Ck|fr4n1R{{mM-uPy# znqieZ)K_Ju*Ov$xdQI~LsN`A2zErpENC3?Rh#%)uh^E3^mxW z!qFtVL)Er24BEGBGhBxxO$|K^8016XqJ;|Z)X4^MMoh*DOhUOUh)Ss$j$2cVu3P$_ z5TCtc!8H~#OeVH=RJ*sAt%l2RmMRXSPe&(kjJd*EgNQ4 zP8B(P(={j~f=))9c`Gu=AJri?m>o&v%nN!3vky85I|YA?L*wKEb52Gz2WD%G2g0mK z6(e0ngDQb;?ast~!c+ko&BlZAIO9HV_xt%dTU87QclS8PG0)+rxzGE3hChG(dV}Nn z>z#->4d5B??PB!%d4DGDem~DjERDnH58qzDgMErPZy+hs1+Sn zX+wIcng(SXYEl?7tm+o32w?V64>2fpbyF`xQF)b!n9Qa?X4xyxnmY}K%d$%AAX&IX zzoF|x65SWm{yHSCrluAWJ(0SplmV8C3%k;Z@I! z#qw7Ko>P_NC)#O1EPTT+L!-*3lR_LpE@?r9c4jSW7usKWW_?#pO3DriDSV}8NKQ(r z(aJkhCNqj6?sS1DpU^Q=K9}`_EBJ%hF%c8>Dq<5vJ}3bcYOG%6AbG?s|1{arUc^XA zsp@j7a`K!ZyLx^qjGKbqRwSl^(56ci`xxF_p4v+_(L||Fs&qwlOR89waHK9tP4Q^g zW)(N>`566QAq~lhgq%!81`x&IGI2zohjnHmVn*4KT=*vU#98#w6T@PQy+Y--s~ov0 zFO#oS^;}Uc8+oU~f~63<*tF=`ecc9_Eg*_m^EP#80I`QFObdxR`N|Xii@Mb6yrY41N!EAnL0aCMBnP`kGtDDM|8N9i3y_k&18LLrUt7XZGrW4 zeI`=`T%VNYXT1Aq8h&Fk;TTo^0Ou0$+{rmpSG@oi3#VSK>p2v9ak+2*b&DN9=w>UR zRn%qQK1Y=Sc0)sYOTyaGQ#f=Fmr!&a3_Pdo?)Z<>i@bc7-N9(DYm8Ryrw_Tl(&YjHs&v zCjX(he2y_)0J|HUNxCXD{bcXfs~?EbB>Ebrk(P_aYwBo5@rB?05S&2H(&ak39TOAY z_Q+B=nKW?yN2sSGV>GF`jUXb_LOE()fxAQP3t;rcfwcD*QlRoqA#?A&H^8-)rTNXu z>B`382fI-!FPaF!b>Yp&LLOFoLv^R(A zUoF|m32TRER^8uUsE>EQwM1LkA+QEX_$SXIELKHI0v|C z5*F1Hpy%V*8jT4|~_MhIfvnXpkeXy`Go2k;$XGK`PPJuK%W=m?PlisWj#k{s^ zfN8bB4X7u)0~kkceRmT=xc*F>f?ma#ZA!NA?q9TZb^pX6xaxYiHupUPePX>M z#uLF9^g3;GTJ8qG+$j)+*t-E!GgA)$V1q5G$@T|l&$89)>AyZbaeZ%I+s*xZ36zYJ zI-HCJp){VlWi6B(5i$JCmlshx%!?z~odMNI;p)-d>P-pKZbsrqPi8FsK>UZ~-w?lL z1@VcUZ~d+E&zGO%KOX#-h?n_C#xL$qkmM7UZ4?!Sy`K8^AD>_U5B49a-A@UwC}j1R zK35Z@nJ)_a1(EUbp%qPm+%=xHt|@-4Sf78E<}}REg45j2j+qh9?h)xdhZ6*2)$^>q zJG)1v+ljJQLsi+0mwx{!DO3AKmInY)WWGv*j1>>@t@tLfKi|q<+V9rvzhE>oKgg(j zD}U|J&(F`jKQnjcUVHE7+duEO63F)@|A-a6s*z;oBA*I;{~y2Se+T2^APDdnTLceGa8EEQ*%OyR{P>xnP^XtGQ&(9*OpjZLx0c8 zC&P{Tv2fr0NT{^)ah%jC-2|ME8s5`C(7l}_85V4D_-a6;mXC;lGXLH&+}#vTdC37+ znR0KOk1d^Ai3~D!Rf&Fx4DmG0e0lZ9F%-`!QT^M)DrXm}PLBG5j+19PY#7Vi0ofO8 zc(Wly3{HKd@~;5k6mKd*`kdDARgGHV+H|snj0UL&;^p4r)kByckIrsBj_D$OYWDEg z6hz71{CGYmhx0O71B`ZQ6ghN17jbp&&yna?KqtK+CcuGJ{vUKC(;qmhQ>dk0`eXx} z325%7E7)$$_D$E3K58u3F~d;B-Of{wc>Y60@fU&2z+zPdkmzfA&cv8b z_nCr_yB7ZX30;HXoO6uQS?UUgdT&D^nMr}D%vnGghxzd1+L*<%=jU7E;6ezrohsPpq_ENN)_AiD|!sK>boJTkR1Z)KIv>NaA*G>@84*IO%+h5gRhO3 zorJQmXEKBgRs^2K=gDuY9w@%_n_H^Lee~T3^tm%Em~fz@V3TZJOpR5{B0Q^fyqCQx zMGQ|puwD>zBgVuCg;hHb%QM?RBoEuT$dN3_>MU3tdsAeWJ(KmJKA!I|<3f*tP_w_I zsTwlj+}{2XsjhOF7nIi82N%-To%P;*7!qCu61|?O=8%$076;Xxl{S5LbS=N!PSL4x z1F4fJ1uqPwPJ^Q4NqoIRpXdYazF-=lB~c25EbOSVhFpIrWv|QmQ_ZFX0let}_Yrdm zBmtVW92ycVVAt!FGb$_4zp=Oz+W4dQzxpUS!#STj!O7oPU}}cOPybeXBMN76OkW|R z@;u?(4Skh!{r|Vmq3(g`^eiwZta!skQ^?_vEmz3?nqBt!*Mh>egDa}M5!OY|g@mAN zZS}cc@9_PEEt@8FcR^P>-3!zHp%9oJW;C@iN0R~ioUw+^Y!#uv7%;?vOI}+wmq`fU zPy=HBoEe*`lK;(G9UZPA{JDJ>`EUVR-P40q(!bo2&#tAaU`Ns>M5erllO^O@f`LAh z3rlt$G9a7EM8%ayGo48fSBjB!I^EQ`kc6c=CshqZia}Ry9wk{oJ{sPn+{()Fr*tt+ zgGh1qQRS$uWFT5al?PNhX|As5i?ShsH$<4_fqsZKF!rfZOxZB1viG}@~#%tGfb3m zW(Tb_(txkYzAN*ZkJ1P2?7C|3*ZWq~pc9MLHsn(fs-Am=QI%v`c>9a>$p}_}KUse# z|0&*FcryQ1{IT$>P#^UP{wV$n>W{+j-2av9jrzT?f#S|6HcZ{FVAVssRmHdC8>&{YnWSddsxqs0QPx_OXu#8XS&JaD z$o0O}`NjLILh}J23X9b%mTO9<;xq_Mjq`b!sQiRe9?*QvXTuGyMSLrM_Cf0<3=s=i zEu?~S0_9K|6?x~4kC`5tr9~a2XADR1u+xofCCE_NE z@o;I@zL)~UG3a2pf?h)q#0x21*d{i15psYhfz^f;9FD28gIae($kgDkkPG1&g+ocG zn{K!CAEi0>z7mU-nrd;Rx;S&u4RRe~SuNg1@#&hd3eQwBoZ_mGtwz^Hj>@)r=qEJ$ z<4+ZxZD;3CJDAGhgk2iknhV2iLQ1i2dY$s~;`X~@Ub{YrmT%^wBblR+-Co}6fYG36uadk zrFT7j#;LN$E9W2qx9fGshR#yv30(guzEoAtN;f0aA3`NVgE#F+n%H>SpK%dpIh&Dt zdVNF@LwgJTe=;#^NZ^Vy+s9=w=^GuYwEOZ5ndU{zw1hu)zcSziaUx3cU(4^&( zreAjMW@kivhs;`>0x+szho`CT&JjXpZr9@=V&^AB^JtGLg7&k7oP$#gVYszd0Fd-# zfMX}TZKj1zX}*J3#0)0cK1yvSee??q!b<((94{%=X8z*Kyi#x541o%+yvB5&&w~ z21=T)Kvf20L`BFC92yT%pq-mExppc?F=|<*f%EYMQkZOn4R4UCD%shu)o#S1+GR}Y z@l|gS01#`z7u&FD#?9z&+aIuwO!p$AwGU|ik#3+oVq34#4$UHR<8a2tWEj@`1mFv( z5}L2<>yc9VoUTL!V4)V(;OtatoHwM(ge3*Ejstn|MQ~vd(%=Zfrl~q{US?zNwu8Z$ z_quqH)=jyg%uvJAFxqfC^a4A?*@|vU_%>~#e$dILRlHx^yMpj$PR{7Z)o!Mj-OlVV z&k^UM@~cRxV?RlX@xUo0ZtOL=xf}%~_8IUp0L`nOj1l~I+wi**WbRiYIGjdnA1u%1 zP5ufSm6s7~uf&Ozv*~oHdpXs`WkXH8s%)>`Svy@{&K>lRsGeUB$|tyDp9wq+G;AeG zqTW7Ivvl(OxaL#4wL%e3ja0-rRyY0<*zJDrlCn@4V^%Pr>+tDW-H=hUhMjAaN8IQ( zeIW9!ixBAuH4VKB75QH)qbeEy4g5hq;Nm9gMSTFjgFk}*bJmOe2k;NzlYDnFKVRbi zTHN^rtN6smdh*@HVC{;91S2Wn+`OTwwg6H6M{93#R{;CTU6~buS`kD%fvhYdDp^&v zB9Y|!0LVw{t%0auu&4Bj^{$A$+kZFga;zj9RjBB}>1^}Z6aPwuFr)e)s%#r;AnM_- zWdD9ferUm{2f(>{mJ{n+ARjOyDk4~{iUi;N2AP%LzCSBI0JhhB?~b39wG1TkL1Zpv z}r|V@j&3!(7WTZV7p5lgMXTs0IZqnVXpM* zAf4@Vk^9$O>}^j}QRqqKXg3c8$2!-fgeQ@6ozu2EO$eXJY|^~4q_DF9u1B(KcX^gt zerLMgqqI{W8l+P+K^F$1x&(Uj8tAKIcZ;?~8ye1GyWdqGm5{bT1yX-`lR{P50*F43 zi3)&X(!Ip?`n#QUu8*W`Y}0v#{2~zNh*yMRHe{>1@BYBVY{ARPXVh>Bnh5T;=0v{2 zRjWD6D`{}r;llKSbrM}((Ri2!eQNLj@n}Mo)=kb5Czkf!oWpeev@)A!eaECgBeFs$ zFIUw@F|7`UEWn3?YkpgXm42s_91p}BkYJkWcsTf|>R>PydVz#a{KS(`i>^z$82?pE z0%#qR6N+B9diK4>s&xSLzpPHF=3{+j*hQ_MbU~0$WQdZN`CPq`tPuvf5#SF9``Z!R z30q}d)>j4z^Bsqn?7eu20y6sZ&m@$Fh3EC%Awr+rshzDE>}L}8r-Ke~0FCAhEioFZ@9ve%jYG4^5i%6v9-Tdg%H`Ge4v-0eMqQJ*y!; zQvC1%+jB8c81Ip)3wugnrC8Mb+*{}IK&gkwc7|zYzUyu?AYY-HifjD;97WFWu3?vi z<#ibRgw3_KUSZC%kfAFWOOl2}X&=VJ$VgE@|3J7X?MIZa>jhm>v+zWrJ{I4tnpaCi z>V8L4Nezgs-LEoj21;DwDfLf8-|$4-Vb*}m6(9oQ0`a45uT_4XAmA%zbwK&Zt%_4#)-(t z+`6A@Mc?IZ#{sB?+HX_Qr5%DxfvsMFLnD4Ia(1 zpATRlfkM9O$0}z)n1e_+c-#*@4F~s4`sgO+D)t9E47Vp8n#C(|g&-DzdWmP;F;Gcn zVKup9+{QwCA5~R_*YSWAraqg>66Dk=@{QtZ-ewr$KCuRU(CW?}_iI|0xSQe`5a*{3PGt z6Zy$@ZbB6T+=XYMz!jN@WjefNr;0|I#i*2ajL|7Rn?4GDER?k_1bV5QMgbpinK$-0 zzx3x-(PFc%%__Lm4Pp>pNZ03m@A1u{Ci)B)6b0L8C5B#9>o`c{lX^7_B#Bxb&aMgj zEGC(2wTGjug|ZOwK~`q7OW6>}rpwaclay6E^NA<;fWJ`7!K3q(L!sEtB_eg|3FBZH zKlKV)hi2K@^e~8=pV;`rsRz^X=^vy0n8Dt1=sKI-omS&SqhP0~^TS(%)yivLFF}g$ z{sBG;n>#m&-usMbNq7P69e#OqI&zGW-iK;O^Ht57>Umtuik6ks-^YPC$oDg}@Ws@=%S3_G%lpz++!sYgmH(r{8=pxMp4@z9ye73r@1sAtE%|(B#mgS=9Elg-Rv%t*} zT;o{*d z2C`Pm+x?w&9c&4`!M!Utc6(PE0$x6_;w7E*=6}R_%jM#F%=o5|c8=8l)n@iX1YDLH z9Y<|VH-DMc)wpi1hGlFjj#Ibv)AnWu-jXYSX%H2tjU?YJR)%y;#yuu1ocroZ@92(i z&UMgzB3f;eO}m!rZLoH`z6`LgqA` z8aYv|!tjDQqCFiu2`(vRn@a^!PE2cBfW~v{?tOcPGEhw zR%I4;PkZ%!OY;b551?|dW4b#&&L@>Quo3HktdIiSDI0RGJp~e_3UX^6S~tkkFX^ZX zbyDX}DQCcq4iXh*E>_sT3r0U0l9`%|3va4&wlFnw5X*@!#%0&At0MV?^MWN6{>wTK zb-m@j+oAFmc|6X6A+Fq^z_9Y?1XFb*=`nre&LV;jm$pw;ZWwzV{g~n90f7@}&lf0o z>~s*A51rnKTiG@0pDQKkrF4KU+`bzl%l2_>cro*p41{-=h`h-O@o#RTR?o;pOeh|? z$8a1F`0ESXLleYT|4Wcrd*|*z6y674CVcvtm)ehgV^cvIs%-j8HuWQ+mkKI3P#R06 z=h|ZFAHZtu;i7tN)8MwbUl%`FsM18Hbfdw!=?5dw`Wd1!TRqowbwxZ~*&*gOVq8$l zt0-#(a+7jheNw^roxcg3Tz*->u3*aG(n=gdse4f#?1QSrMFpX{3`f#1|9nH zKs4r@BHtwwaOKq~7djI4)!RSymq5LQh~ zt!ZTDN=B7ZruN_UsZgRf!lp@pBlHu>DYos7c12H_=I*6-Z2LnpfOd-CrM%Fc{3dRG z%UXfl`8{*({F8{{H^vkAbFB^L!#|Y)>jl~#_GwEOVyCW2OOJ(W%LOtD#kI3oJFN0+ zjDbwDhq8A21_y%`z09D6i-|;LdnB=dSOhaa3s?raB~85xWcTPbpCcEc3a-`)l=znp zZc}U?fNwE}PJp|JU^^mNibEE-0w#5Ii@7(+t!=_=h$Td>_aR?W5)rY0AhtOUR}C7S zXjadQ(v;VH9Bk~=3ZUL_*l*VRMr@NZarPK}LbYNexQK{#b+awvoeuff+qlZq#XPrw z#?z&VKh?5=;YVx9xd={tj^W)94MuPU*A)DvK2c7eKh!dfE7&NH#F&hT-wc0@g6B`h zAIdT8%IuEFWg3kz@Uw3Q?c@N6Q=UtD^(H7%tQ9*=J$F7tJHSr&!H&IR+!Le}8Utm| zB$R)!w;6h_#O%FcQ`xrJavO|;0cif*=+s>hxDJ?hNlrZHygyH}1Sw&1=*+;4Qs}bP zu<}kAJZMIUddj_ynUToQ{$iiE)6tv=4BK>+-!cqqIdk__)AFo2JVGERv66`OMR!CU@F?PV!!w0?fg}emEiaB9=)l*iI>3y42-_%~498`^uRZ(*d)qgR=DC=|Q>n zCvRiE8ZJWMazLlQA7%W?rG>v}3%y=cRby}wd-G^; z9_`gvc7=Lc8V*Y?dCGUhytAtyxhoIw;nJR8C?7wKT#nXwLt- zUV6bn`8+5G((BZPC?rhJ`?OHzvVc`3YjQU#%*MDJn1Wg@Ad@*}{q%oKBl`TA>)@P2 zRD)&oVctR}GO@K(ru%G)(`ACeKxTv{?oE}rm#%h2GUW9gUCS1@y{T8=Ke)(`2OkgC z!c$DGL&O6b7Fw*7)w`~{D5BpnyzgOlPWSICuZceqs`gvm?G5j+ne%Nx1NhUbg9O)+ znQkLj)w^E+!L`;>5}Z0!2U;xyL7TlBGmWRuH0j0ldk==^9i$fknK&L*O}%$Q&3YY= z`YY$KynVHTj0kPLMo*o@92i$DrMzL2|30t%YI|i)3cwna%y?G`^KeD1Wxz5dG!&&f zVMrrtXzU45Gfn-O!yQZwJ4z{1*NLs_7K?(ZZbc{z7#iwwo-R~Pd;w^N0ysf#2B$$V z)!JNfNGF~6xy24|C*RQgx}Q@LRS^>$>!KTn2kTI!mk8_pVUCN~vLp(zh7%(qZa{&P zyV?e5*OV$9UY_T9mLF6Py-t;WQXQxBb`&5vnO@hM)kfn}ewxB1d+f4{*kLq$=WFn3 zf5B;H_y3!PcM~Vef&)fXB3RmRW4a`pb?&Jz#P~$UF&HpKb=bo?^Rs$_(ZmXuwJ=qM zy?5oCm1HmiT4Ok(mIf59O&iA6-A+z@MF5DdRKxKo4!1aLSB(o*&5^qx-y9zh>nPhVq%`leFw%De;jYr0|LEfzVdoWb#&zY#8*TAowNR3M zwm78^|ICLP{Q2yfp&J|)VHU>m-_>Jctfth8AM&v#L{;ZyH>jOParO=I+#8>5bw}yY zlle;8rrQc_KN8??pBnVqor68qzb$Qs5-E|!jx_tG)d~l-G*Q^|qT2P|;XjWw&~#n3 zH)Zaw{8We&ZA5PAtGx&-GPCNv=*RiZ1UA6LON|dLxIm2h!$9#L70<&DAglfe68KIn zA^#sx+yt=6EbPD=_yBg|HUI2SUsWq|$Epo14e~*&g?%7eIG(61gxVljDDmULR>XzI z@3OK7$JAF~G{@9Qs;M#dV{FGMRAq~)4U%J$VFJ0Hr*gSK-~Zi@nO07&O&zD3C^a0ck=- zyVCz-7Z{1`?Gn88`F_~JxEks=0Z~z`7Vjr>lw7Cw)LZyl$jGld@x zpqfTRVR0o=VN%6j4Y5%=^1KT!$?$X> z6`IS(MDWj#7uY><$te@*C#^=8KO597JuQyHSp;cICY;k_c25(9<{petsho&kLae9S!L zInw9dTuZKDUCe=0JbjRUlV!5tOkLH{#N+EY;E|} z<~^ZB7tJS}&V#3m&@*S#a*%dGAW^K3=QBbv_+KGz5&)(f%n7)CJ-_7i`X2uogK^BWmWYJsb$MpSvPc84? zorfECX)u_9dioamkadb(?1qF{A^mAayCy-c->BLcKaXJ~Z&I&!t4St5m5Dl7p58)u z#8_ud$xJiz!$CgJcgsF-e%o+%h`?PJMm zq4HI+Pl#~xy-T_itj9qdB)L{}M|A6U<(s~oK-dioP_5I_Rf}@%s_54UNBEM3Jxq4D z4;Lg~Kaa#ON?-tPEx0RiX_wsP^3EQ@c6Yo`M_F3nYoR2qLytHwp$g3>1~TiB7xsq3=xdr z3$9`ip9MZ(;v>+f`a3eR-j|P8-|bMUseH9zr?uy?>&5fIKQ{x#z?QG5ihXgWsLEJN z;I7*VfqY4%Y~Fk5a?jAJ)}Cq`FWWRwYB(~HQm}c#m#FT@uiYe6&lD3)6gn?)hV-Y0 zpxM!+Yj8#cAM&AM6C|6hJ#9U+zzg-d2vQkR$lOU*?oZ*!BJdGl=4ZqMB{Lz{km-S4 z+l+ffwU-wSUne#KnT`R%pFpg^HXvIZA;LQP8iuSzJHzB2_M{(gp(?jKfMxnkTsyl; zb$jL_;@XQ;t%Hz_#k~3<=&Ra2i%3?`?zUgbiL;=++AIKt6;;5Zj6M%vq@dM#u&p!d zVkle$DXwb>h4Pu-7}(Oo>Ay)i9wC-8jsialPcu4Whpp4F`H)|8Zvv?bc^mf`q`1 z0`MrQYb{Yyr4B zK8m`>u`x!Hap+kX2DfPR@GUOLG+Jfgs*)l!W_kACO(ZdoW8TL|Znp3EyX(nd9DJ(k zeZhHR;m4>6xebq2b}2?I1>y6i3g%$i78jtZK|pKC{RVPt!}a8&!NFOzV!?wo<(sMwBVP{m7+#quw+YbITFnNo>RyXQA;klV(6GSe@-WHP>N&Il(=Wl zT2~PMIDJ_)wVA(op>bBJ>)INFQGG7Bm*_6W zT(-jo%3!O|man9JJr71`%KXyFn0V3;oW@W`eVMTIGwFyu2Iy#6wtvul>w_1Q1^2T} zcbww6Vb$Q*R$KEtMG}k!Fk*?Fsf^hiI%s^3n~gO_Z!X&n0g^@l03ZNKL_t&#|L*C2 z3?W+colRwtrrk?}o@3+fuwaxY7=zsDvAb?sGY~!BVII~AclweJHt9`hzWU&q3h~vr zIuNHwY|EUMvX&Y!Lz600wuTpX%ATfsZ$dyKnE;d7T)*# zF|m7*pD++DAFkHNHe_kZSTAw&o}^(6+3i!1YkkYiM(S>vM!)oyM^1aT3xgDAq95bK zt^eN5WzoixVkDa9V$|N18TzJtQz`=UihV(Hrqqsflqcx8BiZrPx2}JtdTeY6ILj|g zJNdU9Y-V6Hz}_)peyb@!G)2PjMlIz=O=u5P?dUw9>95FAKXyP<4S%M5D3n$Dv4eP| zRZV0+t_g6%!4KdYg+k%*Flx$WR+T16#kMF|MTyJUCdChnPk6&^p$-i?_nHo@m`&>Q zmUV-ooZh=C+QC^V+Lvezse;+&Vw=_o_Cbd#Cf%F3}&Tkh+|{A z>D-3XP|ZKG93akbsH=%HXhQ_Q4xO-1*n+g>C$0UkLmvHc>V8c6w|)H|H>#Y1efMVh)Ux`x9sjBY)dPu-B4!+qrpVC${${rbQV{{r9#ILI8{!r#3bMYgX8%+GR zYg&t*NiOoOiXyn{Q4qi{vVfOp%g&Hx_!AGA6)P%t7jjf%6 zY(z9ithmvBB1uMKvycq-0=&lFZBj1ttEy_-;zbZUy=_hV$Q#AABr0N&ALIkF@=XyU z+bFVoiXqu|vD(s}69GgRZE2YuX0olUVnBfCDEE z!epjmMYLrlxwto@7bGQS>&?|@?`JjB**Hn6j}L7xG9a@w_+<-%Zr7asN@!aPMcuTc z6$b)!7-@|;)_fFrkoqoS+u{P(as@w_zS|OSG2k9RlDI%<5bPzYzwH=IVaV4$k zP6ZcdHPwt2+vBA#a9?Y-PO01m@SGTG9Hf-ly9lnkmv#LDSA zTBk2=QINspF|HR+I~U$>^8y}qG8|oZ=LR@Zc(t-F>3o(jPSXTFgdR-mW83JlB3Ugh z$-Nc5b@9@e1S);|i<1k%B}QikB&VnAUUB%eS^?*~#8VbcZj(=}k}0OctTu3K72%*E zqPFq*d}lah08W7Jk>SXg=eJmmDumK!f5pME08>D$zbOhQF}2TW#qokcx~(_@G)()= z%$GSY_elCC&MY!axfx4-l$h{|NoRKnuuDUAEyM7a10nuOEqD|pGCJgKRo#znzAk2s9ap`j@C!r?Q{ zJN50WI>e~~S0AD9^|X8}C3ZWCxr?9n4@7z+fN`1NB5dMz|Aej-f~!gu?u0$pQvQZw z^DdL3a=BAD>Bjj&b)s@-xP@7j4t?S7NP&ztImz0UQiA(1%?LOEZ-S3Sa%nx2=p0dm zHt#dJ(A=E!df!^B-p%*zzqR|b7B(w#Q(~%R3E$NYN;h=6UWzD- zTf|31Q~*nc=vm|=ON3KbsJZEXnIg91Ub&7r=T%Uc{dJtE2pic#${_It{R+b)x}|)! zeJlEvq_>0U_7lkWS5-R!304R_cLCY95{{e4g+tRIdeIU>sk*33P?dF7!a*W$BKVZY zstXx^l@erCKhsOR2`g%@EOq59O#=1?=Kx3A*|BM-^-%V$xjQl>_kO8*>J~67g-Wu= z=r3Cn51gUThrg(bSoiuu*v7tFkWX*e7MU`Bcuw7oQN3?oea^1RUGwIZ!bGU`c_~3B ztD1x9MfHwt=u(EQx-drVUwtGJ`nYO#JKTqI$?yjHq1MHeloGz+b6f$|a1OUU>{q=5 zo$7`XbcaUDfr0x1jH2RPU08B@z>K$R842Jey2(U{^*k@6M{l)|Q8ZT)&W+`x7)Ec%tir2j zl|}Z_*w3mUo>hO8Y?!_~okn6Y-;F>m#`nx%#Lgd8FY7b-E0C;>z*-;V0xGmJ4@n?* z7LxS@=v~I6YD$^=hVvhTp9VhtKd5Waf2Z1su(GrO^{pw!`+5+SPhcxpM)d^Wd1|_0 zP2%msLT_HqS18?s6whQL6vuS8Q|(^_p6t3wC0ysl7sY0-%zzV#awh> zJI4#0ZS_#3t#G;<;_j*@e($~K2fv8f))zyt-@Xu7wr`C@)XYc-1Ze7QmSqa!l{2) zo1shkWOb3kZHa;~yTr@mbmPCFLG4n49mgyBIanO*#N9KM3$r}W9|IV-QnANwC8HIA zaqgG1bbsK+toiCQ&NS$Yi#6cwB|yyr3P9pe|z{j7D1jd#o>y55Yt`og-FepJKRdSc7<~Odm6FqKUcYFeR1{rHMR-2_2XMJ`Ox^E%rJoac165ml%OWA+@ihP21k zTM^8<%M)=REhRGQu5lJ z!lcxxwvH<7*C!#ss@{FnA>et4Dn{?W>7jvqoK8%hMigql86@(W7%FT{u{r;#OzDn! z$v9#*#lUTsX{f7^tkIW?wi^z|c&V2-JnAnacV0K+R8X$3dV%>u+4sHmxRoGxwcANY zk^x&l^oEj*K-E%M)bHTV%s1l+WV-$$h{Y%2EyF;N4+&C=L(fMJpWpYET1H-?tkxoO zmKfr`vo2VN-=%sKlwJZ)339MYEciMOEjMI8808GP( z;P_c4s@<=F7M+P+L?NnJ8&i|G$1WeJ4n7T#QvNIHnSx<>X3L&7DEz-8x#8CqE{&Psxw@ukE-Oukx+FE3e8aTAluH*&Z@yxM$Xe{ zAbAwNee8S*?-IQ<`r7pH8Uh#&!;pq5oVIGX`a&9=TVOZw!^+i3c$4$`31sduBR|cZ zzA}9>^>POeemQO0$2TjE^-fMqP}cl{*|#03VR2=L9VL*^i=&=OR?ER8iZ#HN@qcZd zGNm3Im6hIL`zh|}lITveLs>zC;MsMHUDeMr;zn}i(@~Q;-1G`{t}u+7+r(Lg+)a8% zPr8i&O%RdNb-IF`;;dhA8?Y2`ZB{X77vhw!B>x4fbS^`*<35$E&U6VJtZ-6;=^Ekf zW~O>~T6tlKins#N9zfwJ8-)O)clqVs>RK$-u6jB5ViY`gv1b`cG59S{6qnhTdxB~JFWNQ5<}FHq3lh@ z8A_T13zM5}MGwUY^XPIsm_GLK5u9Lec9PSLaiL-wm*Kdi^wE#U^wg9%%|>kiwP)*C zsn^@!r;I9fEZyTpk+Jgy*`1HTI_eo(q%YFHO{SWOX(z9UmYdye1#pir+gE^d9q(#J z4o6`UtOdwn`hD(jQ!;h?WO+X(tZ?nzj^X?$d(e`vqP!z|=NH{lt;(%RsYh5^kASG` z)yPMv1#zG9N(LL;vdR;;g>Dvh@CaUP1?*I1CJPROBgygcRAy11Y_|F8rE2SWL*0I$ zU&iO#sBYw>r~le7BD62!Tm(;oYi+r_&ti&bnx61=N^`4jyThzULMq3a2L=}phkO&p0A<|nRT4*hJ%<7(^u1^ z>r83Q4s98u+t7in&Y@KNH!AXr+`t;1m+ktqNAFrLFK_ zKX7A^&S<;wzJBaQ^K~1*%!Qt7U{zaiP5CioGRz+KQ6Um>f1^`PI)a`5HW2;9H-cPN z?_!Rzj#l=698rV85>5=jL^U7nL$*4ooKQdy2DK{6U(VdUL&7<{7FyO9 z*2c~+KazeEydEi3M}uf{;P3{Pe2|-7lp>V0+r0)!7P-YwHFVs)&mO_z;zxkN_2|jA zdSR_u=xGJo|M{Q)Q`f^fab)J+pPLa8%|xs|Q*y;r#5`IOW?Cz=<{Y2vP-ppEnX*Og z%!KCH2vnka{g42oyZqftjea`7Y*z}G&Cz8Z!m5zFoqZ<8+1LkVTDTy?tmU@$@V}F0 zdv{EcTy3#@fuhh^inRWyvp`ze5o%ub;k@+l@U(cr(HZkUw{*|cFOD7r8Ca%oL^h2j zkpxBN*j+AQprOI^gxLOuZrRC`#G2s?bC}NoP~>9kGMq?!LDG^CD2LSMAu_u{j_FN# z_`bVM$@axIIVBopi~>2Vd;!ed;t^)?+H^C(J?+#(*6rbC>XE*$o} z^z?mv(}iWY$=O?w6iTA&F!R>FO)Y5^Y*Ehjb%jS1wI-xbGkXp2gqhC3U3oP7u*2vT zLicN$(Gcok!##m{jLlF$mxeGIb?W&i%}xh{GSp;M(73 zV%>Gt>-r8?t8QjZbgWIGA20b+#P+u}qYp69BV!VhRkc=##5eL`0r6BkRRp3ERlhR- zB>#xmiwg3pz6^e9uz5F$&x#3jrQfdOEo)kg)?N2dbJo^*>_F!bdOF&t95LHe39_ zjY{>d8C6^OuXb}iidZb`2}ym6uCHKY6vs|5WucH#$T6TfD`x$=qLiD^de!~MTU@!@ z-J*&+UlBT%g3|a9V704MGwF;W(owm+Q*5w)eEl<~DPdKZ0tQV$>B`Lf1$+*nNeXE` zx^?UD2vq>3uOx3L&I@i*<}L#-Xvo&5SMKzNF_&$U7VfIE%B{&L<#t_#9a-XD$>nOse8z%-6uE3!&wA5oCVV4bY#4+L^J<~#8ntn1= z>dgx3e9YJE2PrX)1QWPIy}=StSP>AHN{&a5mxSB|*a$L)lTzlM2W*m6MA_ZL>;pgJ zadWaJDk-kJcv0REt{(nkXv8eQtIRp7VJEMPDxmR+n3^66o=s%*V>5`uY&Ps0aev~f z%aca8E8L!OMIukAMl92ePn^?v^VXEwgqWMs>P9B832=W1*O)k3OE2Ub8PBnGE zD!C>k`hXo%m-&Zbrn~0*T>mai=pPc@GlQ)B`-`;xz>Oh&28SV$O~MuY7~NEL^Ur2n$ZhOnBfPvGBx^XHwunWzNM*;;E|c%k{hJ zZNAQcNq9l&>@@ugjdw=7*LiF{yB)}u1H#TS75~I?i3%yZ6Ou2HT{DEHZbzvC)lqTk zJOz|76nDGI(Ik{TyLC>2tOZx^2nJi{hWS~L@-p#&Z?g}p3+A%D6OCHpnHFa`*gHNb z1Wo6^TvujQ)ZRkP41~j~sF0?mmZU>Cw%bM*J4d8efoM;SY0{QNA27c|Lq8j1oU%$C zMROnE;lfY6=t6WF#v@yh-TUC`141U6Oyg^o8L7(c^+_wD%?ce3Xb`0K?26?{<{3jQ zS~6w4!f8(GBoUc=V3vDNx`h3IW-o5LXcK+itZboQ%R{A$Gp zcS+)3G(}JC-S;-#)od-HaTgCa1ZdBP_}QxZBx;44HmZzj!EBuKui4}6BB?`BolCA~ zqmlT*4sz~fw5KRf9(H7yRv`dSx9eA&lk2$3v0s%Lk$Es1J=`eyE|U2rC%gD-Gf4{E zmsyH0fBt%OOREfzs_I>QBT6pQO5ZIDuE9F)d;6TZkx^O5 z%-Ve#BNk)DT7lRq&FvxMWNr0aU7EqGKK7>eD(p;=Y%qzD?ler{-Y5!Nu^7qmy7F!s zw|yIvBz;+3j_2MZOYHNq6x^!X0+Ri^$3q=Q`sHRO=SU0}dlwjPF|=^KODhno65U$o zXoBs9;qs$;+vJCQ?OZpNcFlD3EOqogSG!%1hCOZX z)i^^}LmGiyN5^`o69_(Zow<7MIrsst+&k+XRH6F`7pi1ieBPz^5!bZ!mCPd$~CnU~hZoLlGVm-er<+UMK)l}PYXta&C1Qb_x9;|S*8-p`may!4& zoywf&E)@sty@(MI!Q;DSA(+mOu-J%k${DzNt-}9PK*!>edA8N~xUL$F=+6z2~7@ zf}XD~!#j)Pt_n~PP8I(-{5h`xP5`H}Ezg3|G6xN-(j0)_8Z;?1{P+Tj%kRoevd79! ztpxxKVg7>>)l%t&>C(hg9WP9K6i}S+*jna^&LnKrJ6X}MUaXSu_kp@|Mk*60Z344z zUC?yWtY1{sbiq0ih>k91?Tg%SA=`r>7c+R3?KqU> zu*-1UF66nZRFs|yyr!xxUoQx%o^w8xlFprEspn~HedYizR0nf^(E+&U0xX^i3n4{~ zi-7CCU(f3%pOAWqb<&>WPd9s#BX-l59bbrfbQu1|h;6Px%tZTDt(cgwICt9280tva zS9ME=w7t)Rz|0{wNj!X%#{A(d;FXqoWHgU$t*H@(11_)s=0JL!1$-?AO<5bD*Dd&< z+?VBX^Al<2MRZlOMkl3E5{5TjKD$SKPJ!`HSMd=Kz<2Lo`}2?A|M>ampY1by{$S%W z%XY=>#!;n-uv4!{2gR^T2l$5Tzka>HKL7FefBgRA`}f~|eE;}(R(!B>cRLX7gy~C* zdmVeE@Q~5G6;?b%JxmGum&llcOuGDD=#j6I{MARM6d|0v+Pg++k^lCu|J(48)oPZ0 z`aOlk)m3rJ1Z<~mkg1CvH)+>xhipML$!iY8wqHZkcg|7M&u){&Q)ZPso}$qaFf02WgwO-a=U!h)J|mqHdj4HLKsve(gu|^49c-3C zkKPsa)c(_TtBqEK$2E9GsnLmuCJX{ zI?OnhS#Lo@t2`%39h8ga*8u!^OZ#%HLZ;vc~Y-i7)dTj5$4#?(cR++(F}vyHu^P*odbQBF zt~uV(V^D3@4$Tf#X}qU@RMO93Qoaw|Nq1M4(8ntIU&yjyN{6eP$-`>EIa=Z>FShG@ z8IAwu@5byXk+?u7FT1SiE>Fq`fcG77?wK@K?S6sl-p|6&tIc@264&1q2rdkUFuT;p z3U$GOxvXdL@HCW0=SC75d^3dLG>*r%i|1UI0E>pgQMqSzWHbZWz9+mt)?dU7 z{g>52G56h_N&|Qiof9)!%ozUU7heVe;(k^)c$^{^^Df-OhmWCnS^p>X$f*fFVv)Zw zz7u`OgYmRav&o@d^(*)@@EKue(6Jtq-e+D?R-gKaLZP$uPO!JeX|rBLL_C%hPV*BW zu(4Ke&GS#z_xw^GM2{`8cF(b1Pr%PX=+NZk@Kkjo)9|hSYoSyYW=_v1$SQpw5G<)q zz+TkgZmtj>9YQ;TM$pM3<`;H+KU4>GNL#kl;#RilhWXDfA4#sYp!nu}L+C$m&7aOU z5g+KDRu++k*P$l74PyrO33*>w8YWB?+PIuoH1w8D001BWNkli>1?V+@L=Ee&&eV0SW9a*WXs>vm$!8O~`;p;~9u zn!C@b^?YK6h;X6l2=8h@ETWE@;Wqs)3|X2|ESDFPz)#{n(8m2nO$?oK)zWD=-NFs* zGBYqI!R6v%ro87-`NaUa>a>1wWx#Wr{qhcrAX1~pg61)(T(8P))M*T-Z{do^>_knv zKA7Cuzz@>Zw6^rNH{$iq{Q(rk@Z|%|6au>S%PW>Dd5x)sNg3z#A#X*3Txqp?e^)M> zja^=8GIWL>7$)=i=diU#X!85~Y-k`9lcCJx+awY;Ha3Ur8WQE96ZmdoKH)8Lz6iq8 zqQ1W0kY5+#HOieB-Tyvl180=avd@lqt$3Zr%J~EyP&T*_oqaSY;Tes=!QC#EoZR2J z%q7AtE|<;z%r%Mp;$Z#Ne5#?o-FX=!OY3i@86V!yxr&Z%WW+au zUQu$LT^Y>RsZ8Ch?uslT$n|Fa{Q2`A|NifLr`N}yKr?Wha{|Bq7EB{V1V?#?^7*8v zVbKRTRI60=db#-9KmGRo`?nyna_`S`9J=AA8-D2O1AaPPM(^bL91~&4K})5N#d``% z=jQ;**F!z(AALcl{6GHne{C7C3j^4+LJ#-aI@hOmNEhOMYRVa-q20baF=x}iRw-M| zz3aOE-!;!y+mXQ2UI3J6IMNg9u?s&LX-iWR5xyuF+-C>LH3zY$lC9Hk4nQPZaH&qO zjkD*Q^P&si5m(swf4lNe%d1W-QE&YG=EjdFOM7<9_{N$e^mry`!^fS=5IejNXRhtUKaKKvW@+1)6LNfW{gi+T;CO>t<=s%h|QNBqxBJUxHD}4hJ zUWu8SxH|nkz*Knc-Wg3^$raLhOn%ef#X(fPbKG6$F;i6g&j##fzC@7W`o^@Anu@;D z)GceUOuJt}s@JR>wcs7-I->V6^n~)2yM`-aox=Az+!H+JO{03ZWll3swV?>t%&OoA z_$}6th#wK(O8pZ}3h({)+hP66`jhy4_#WV<;j)HzYig5@){PST*FgTb(aET)yg{tw z->KVq2+J$HxTGE5VBIIttbiPLa4|{q^aySH9vE$rSIj#uJ2qbs^5lqFi_!n+jx9?Y zf6QSu@6o4X4bgKUsD8!bFD8pm1zKq{mz`{(S!PAlVuqHvhQ2~~#^V7>EsCltiA=-e zGWu71xR}q%trHt#&ms2F%q-;S6$e!)rFCJn`?OO>abPsOx#`p;&9j;QV*yyUo>bVA zCBO$6SyA=*?q7TV+WDE4!FXatEHhJ`0WuN9UMt2?=fZX)?--Oue(B`5I{}Dg5@N(A zK3zVK&UnXc)EVT|lWwKJ7L*P%nI=5oe(%Ks!8D-%`YF9nMW+zb52~TprD`zq)1Oj$ zsqj4SYbiSBMO*56)XIan!_C4?R+@__FN7RFrQ@D>Wf+CZzD$ebqEK?7~zZkStva_GAleFPF9@k;G$O_(zK$# ztS^@wdK($a;^!2x_py{dMNc{Xn5ph5XW5o1gXkj4Roaja^D@K>Tx2@uf5bT`qtuwz z&g5MesY80IlEctUH(ZAnmxoEw;o^OX8i4BqYrVGeWm3)uCf3McVOX-lU0tmsJ*0=)oHjZs&Rdb8@bmf>&>0i&38Dixu| z%hzvs#<`UJ5qQ6&z9>g9(f7DKi*dK*Tu&C9u-y3=dZ z_dXS!5~C#w=bHdR8$h3_|LMJ6$9Bk^L499RCkEsz6cK(BH5cFtJLGiB`fFWwT|R-= zFZeR>gS5lCe_94>0Gg^hbKu_ns!z&I;+rb?ht@ z%5%6-#A2+h{PWL0|J#56`}@9nKH1IkFExG*ML5S-eZ}7P!zq?Cdq6uQ+$5>7-a5^* zQBdd4Fl%J;Qs zDq7b#2KiB2?gFPv&=G?q+p$+morV7hv|){a`nxw-&-#cq(-ECH(h|bV0@@i7(ISq@ z*MO!V3wrjHmtTA}_HD!5_94I(j%IyWIR@9T*H>CSSb|ac!W7P_Po(QZtIXWHQU&C* zD8C*#ptD%vAEobmM?v;v==CdHoYaKl!v>ltA)g7R%?J$7?L1@VLMSIzJiTP0mkxB0 zO1X9Dc%_I5NH_yI4%l&LieIqn355)A;c2pL%5s4h7{ox>I+jYSCh=Ge>|ib|^Q|gx znPxEB5p%LoB^Z48Ax6;GE0oy6LHVRVYLJ^A@n|Q8_5mteYhNsNQ$=XY5Aw1|_bSS} zu||w%`>6!EhkTPiq+bLxHR!25e(i8O~2p4-Dqc%-6m{{y{nU^B1vR)ZTO`Wb1Tslq4K|ra@O*s&{ z@5UuI!!}W)_vW*oi9}?wZ%koju`41L9v`zj(5zs?4ADG+ekb zG!bX&xpSwypH-~skKa0_2`^FOCDZvI8_gRol%rd`b6g(J&I^|* z$3P>0=TiYGrJnpwQKeZmb7T{paV8b!x(yrAx8$W})(9*({*>6;IE)z-u3?YS;%WBx zm5=rG*D6rGWCaLCz~Qo7MI25-_m7H)c0VK$J^4IT-Kgx~XR4g?_Vkx0H*|0+$Yi-A zXdtAGz_Z?NLU(^>yQ>c~1@=PPP`9P-<7iUmP~plj0!;eYxHm*VcM1*!GnEY+L2$qq7^~fRCiHr=cQCx(EWymr#qXc{ z?e1n!+wce^Di$iytEHl2G#84W`}6OA|M%a2|Gn&sn2GP-fBgFVmAO^CaTvEaF&*cL zS<{`F74dxk@x8zHuRniA&wKi=oTvlC#*4KDD&PHo|G)p`$B*xS``bUo>Nd|ixu+EQ z*?Z->@K0pEzY1Jy)qb-!F!oX-O%e2$vCmnb<=5S&_{f0|6G0k%W#+?kLydW^+YYQY zpTfK#h#4lm2vt-IE*tD9-Pk<6qo9>KxodY&Z&1r_&-NG8C`nU;)Lzun8E(!hPF_Dy z7_78(txHFFD}kuWh?1{!kExf-IRqm{>@b0h0BZZ#OMk$VztX&tj-Emr?yyJV7)(pJs^7=&H!b6>#GWl#@1>&u!1X?mH(gyd`NzVykt-n^Sr(3P(@FrE%ylsnqf z(Z}gDBL6?O-ge2dfbOB)YBQ--nHhQS zIqoC~g5YY~+`yT1_jUo8d5RpqBSTC&QtLX;2bkiCphfhARvGG$xX2k;eiT-&mtr7- zp4RBb;oa@mdx3-ad9VWN*LKcP0*0POx12lj^b*^l{_5r8ys+b}(uUQ%2|L?F;q}`Z z!IPHA_%-5h5kIY5K=2;;x-ghkVuZ;4|dsGK9l=* z+~}<2DDcr(>%@#=l+n#J3=a%{kcin$($>EgQ6ZiGSo5u&%LU;F`=x3TW=I(L9EZBZin;fSF9wV5aX-$~l4`z+lc1Ooo zet2?XI()F>m9g?P-}pnterg5eDU`drH$OymSABMG65@ea`4+K&vGaYQE0R<2F+bc; z511AyShyMpK2}Y@lw)`jGS!2U9zQ35m>Rvr8wdR zECetj%Sl&X)M0JG%6W7qSv0y5U;dp#+(l7gvdyI6smuu~xLCrBBvfcSjU_t z9dw$0wawN9T{sagga^y?991RL*|6p`2XB;T6D}Zf-0?|N-JmS7@|r4|^0fi34>ZIv zKQr_yeS=<*k2YZ8fLM7{h+Lp2e7VI3iH3ei77Zlc;)A>%27osmz3G zM-AN<%8awwL+xIuiJ~TCj=6^$#?S;=&jnC}=P-Z>ZBajVHs<Sk-#GxWm_7FOyK9%e*3=i_i2~9Or4Q?ecRwd?YRYFDk&E@b9yY8Z?b1wHqB##6)8Ew1Z$lMCi$ukEUZAxb1-0!v34uk zM1FpLqVe|rZ9Pw}g|6u0Dkr|hT<;OFcmM0pKmYjskJsz7uY<{`{O#@Ak00L&17=9I zXIk731V^Zgu7&RRx1adkSK!;XpML!Kj%v|yim4t{k}d?3KK$4B?|=OD*Z1$g{`$+W zzy1{QM3hX8RYFJRLsYl-$LHq<(9e3W=-2)*tJ8_NI;uLigA=p?06o8C)Bro2@RM2I z1U$zwxr3b)UHs|5A4`-|0$xfPDki#mM+PgONuEj_<@x+Tckh0&G+pVP1q?(eXd+q| zkemB_D9z|BjpPu~@ZqjxYd3t%e3D!r%mqF50YY~xa1?Z%891UXL5aW2Ylj zZUEUArO#lQvgT9|xws}(;7>?0*hG0l{{;M!`IfSvj$C6N&j|C{y@8J>KLVfV&&2Hb z;{{x{dUv*MM?{g@V711kP}3MLI+3{^xYUXHOLNZsoVrGEyfZH(#%F5pgOLlGZEb<5 zsw(WAE%#|Ixl-kV#cTMg7mxblc*N{;I6s#eGn@sQ@>}O<8U;jk7Sz2_w#r;FC&CPKQAfVJRW52bh`9y{_l?}>C1HCf_bF)f5bHzy7w zqb%T_5aQQ?a;J*DByC6Yklb9Cg=5$cLm>4U=co(^ExF5tNuLCk-`_Jv*vg-j z94psptGSVdUdYCw$}HH|H*(oVB6ZB?nK;U1xjW~okqi({@ci#{!BPUgCrS*!mBa5&(6oV+|1&>^Kyjy7ELU%nx#xS4D|bl72;gQ>MfE z`T++<@D~!t8%t#}rtbwmoEbB}3xCQVSO^#`Vss4t3InQCX@XEz{I#vh+>=Nvf&5`= z=X%5EC(xfC-|MxWx3{&Ph|JEy-n;lee|&uW_dovm@$tFK8>`^Y#A}!9r=NfO{P>X3roE$G^(@K_#dY-pjYsmPO`1bzO_m4lRV0Sys1q&!BD;mQYSt|9tHvaj~fBp5> zUw{Amf4slHt;nvO>&bXy`||bq`TG3SpN+`1c74pYfk5mllE>+HhPETeRW9o+s60nR zsoUSzQHm#oKh`7ww8qFOdtv@pe$usSOM*nubs+ok0t*Qn6~Zz+WJii@2dyhOsn?l4 z2>yYPcV%rmxxw>LYWrhDE3MqEp5)XANvMeze!U$LO`Cw_7?g8HPr2Kd(d)$KHlwU| z>+HMXr^{*M_%20`Aed?)G!RQLI{QRl{kJ!iql00XwrY@VkAbsBel8d&s#vnZA=LSF zswetXA);yrJyz1pv#>&EE&(loen7*Mp;6egT6RhiN}8lkIqh`l@nV%&?`rPp>ott9;zapAsU$NZ>h#? zb)`6t`Vy-}8#8C11KF-&mBxF}y-KV&_fQl&c?z-#>OX{gE^Ub$Df0~=*K)9*6)JtD zw$?>T_%0mkEz?-!>eBj$of@S5Elw}ZMFm~)SFDu}KO{?|sh7%km#&jjWe!x>u%%g?Bz2`x5sQ?xu3zc9`!Dc6 z5$8>s=81eLy1PV0hgsth*tKJ3s#U}2y+thPQ5i&Qvymxd=1a)QTFV%iNmpc_5+X^B z2w-V$NDcu8@n6ANsW~}ut}P=45VmU3>(>m4NqQEx)!!2Dk!xiYilnf**RBUx$Xx5mwSq-#SEDwN9sNA3^T~c5m^nBYHKJ>GbVbQPswp^9 zADt_%dWL+5cfMGYiHw7)c}Yq@MdHR1z=@#LuCV(Re4ByTH$adxc}F60t!pB<0k>b7 z!MZ&9s}Ep@;7en|DQhliS-B$D!@7Or^`*%%SKm<l(ZbIukM7mH4t0lG6*o6%9<{=KW4>y|7v(QUQ&s4$5rC{hl z$-YNHHyMP+BX!pQ)v!8^YGh_Nr-=tC^_=npA5RVWCHKvpW!bHVS(Df?J9bB`I{azQljb_jlzwlBOC8c@!C$Lyoj6 z0Gy%S)^lJn&?6A?9h|M|=WPplsNCwv)!Eo+%+kk&sDT)xrkO`Q4_063nzb`Ub>M_* z??h0o!)$UUsQs4^{O|*_O*@SX`++h3OJRUH+QRR{M^z3F(iA&YP5;@24b<%Hble7c`l4FtekFt zcpekD698XB__FBmf=dq&Ual(jjLw{|)g{{So$3=bNMg!o1T~)uaN3f|qrQA1b?tii zET}Ifk|e`rR(mwgYH^qTJ;kWrq9s(xfJL}!!N!b(JA3Ibul5|Lpa0B3W#4TK5_o$ zM#V;VY?o|tt}}n6%th7QsRW+4x6jWHqPCCEk8hf}*||NiG%GxhFo=;+$l6GJ1PYcfbbaRF<{;(?6(iYr#H$jqvd_-WZ| z2cqzLz5dt#`al2qpa0{RpMTD^(7RD9o~r%Y*4zc2xA%;!2D#dsVw?tnClj1K_!&he zpRWH|>zCSw!qr|4JZjc?i7agw001BWNkl9Kt1YYq#;!lO6)%pIKZyiV>f>q$n`t^^r%!Pj!3m8RWU z*73Gg%b07x_nA!|&b5KsFBeS88|*c}L?Hyi4T{~h880NcH zDHs_|N&5)h>wpWt7oXs%=H)!&#CZgnwGb}8&D`gO%IJ?hwiER z3B6=`-B{#sTaB}?oQN(9vzP9FP5Hqk9H*l=;J$rK{CthoF!yM>_6>=U(Tg={NimP^ zN(rhxC(;do3V5w=Lj=_vbA}i|rnnz2AP;rn8paEQr&;6>VdB%KW5*4zr(HbeEVVZj zq=KPI7$A}?sGsM8Th{Y=_4j3tYn2-V=Qr)WJwX)6ENoC^NTdCZ(nI2c8&%@NvZv3p zI-DtcOSC~I%Du0{m${BmM7x@w{&eX>D#+uiw&&lKqEI*W7#VrF<_FrtZjsy<;SZ4J zkPH@uusbrUI-149%ynq^)ZEfsldIqBnUVpTP6W#Cd@;=mEiv|?ty8)(R<8H8o`{b0 z_B9Cc7drZ*`m^>2P$J#>H7=V24skSIx*aCP%1d*DMehJ09I4l(p|AkJ*}O8?xR&8& zVWT+`+dZ~H1&do0Tt_=SPreq9h-)UjlLeX|^ail<>0W*~WY7>;X-6b2Eud<*cI4Ft z_YIU(OA55(B_O7!hL||KX?Ju#Rc{fG;#dQ_#Qo39J zybhF^GBw*Uqni24S-h zkF1aSyn#gGYK9z{9lu23`k!;`$H{TZTMtnMfJgRH#vy2ZPHBQ2KnWX$Xkb7U{v7xq z;w1fbgg&m8$IJo2;<}s?{@*&${DDQfoVi$uvodpJ$T09rt^AwTIL<>w!(%vb{)$2G zqs&71;lNpc9MI*qmL@3-E%{e)63LvSv>xhozyn_f2Up5>@6bB ziUkX=RQYOK=(R4a&FLLv8cu)}bNG`r)vyVzr_e)8g=$GsH}v$G@qntxRI}u88~!pg z=H)o)RC2VDAky$V~n5*B^iUp(V6!#L{e%%ITOz6M&WR z{`T$l`tZD}DZ-u?f2JHd0BJy$zoM$9jxu4=(VX6J^-aKXCSMk!*IH<9Sv^D4+^YuQ zpa1;5s(=0Emlbc_`?WvTdV7C+|NQu1*j;ONy@DTEp;awfMzDwz%Y5Md1g=QlM{KJd z?+s*%CVEUld4W9(ri_@!GjAuRp{8?iDVa~)q*|l>fiZCu&3;i2H4*`tA}bGD$0D>3 zRnoQD?LB1jq{l;#H&SCkf@PKH5=v1ISkRN+H)bN7<AaC z$nbXg0T?(mrV2HELFXGAQc)SCB%=0v@3@z5PG<1U z970e3wjIyX1jGP0)5Adb%b^Me-3e~B=aU)%sG6uqXf0-(eqH1m2Zw-$Tp(w%l{AW+ zGUf*8>R1jjs1s>yFR)(*hLjLS;icH1853!d)_O93Mm&K6Hd6@#RlBHVtylL4kxKLq zTW4JCQ)z$8AbuIKWd*ulLUDoQ=#A{v+@3|DGd+}K7Cc-|j6{J^Z@Q|rnYV;M;AVF? z;aShv7wZyh(4DV)(&ssB8EV(p z*)9s8JF4Hh-y_%6@@%r^xgx{vjnTko_e(fT(_|zx3o77SnB1aI7ZR0YY)?~(sl_O> z?Z|;e(pbcn-WqS$AwRYQwEUw(l=oWLs4=`sG>rF*@EAbK z3Dzo-%v{_8p<6(<2|Y{Fc*bSPc5I&7z2ZO^A7G4%WIn8i ziv?SC_Z#5krM=0&P+3|*n3-6U_aoLqH6GL5F-@tSNde6ULM|UC&+=u~vqWz-odEo_ zL-Q*)`wP||YmQ54T+6k(e!^7VU)oV)4C;UUj&g3tln!ue zu_XG$gvmYUFL7iWJ=*z|fl6Np4~r|OFJ|VvhXlWWhW~#;ELqJg$5PLxVUnZ8GL8|3 z7}33+=kxRP?d>fx_x@~D<`bF!^}qk|@#9BTpM%N2WpPqy@w?QRBmr;lZ%EYZ!$A~7 zwOXThp8tOBw>Kgfm%eILgofU(SqVR8hT!OKR%%sc$05Cz-uuhC9l*5DaaR=Ho>({Gd_n#ceYFEgq#u^qJxTn`qXd zoDOzlq6ge(5AI0zK)=z{h!X7xw5^-t@PkA_VSywW>rCH}B6v*G;w5g{LbZ?R6w(^{g|G`_m zdfIE4309?ISoS1uWKIq{ia1_Op^g~d#l#8Y)rw~tED`fLRa4WMo5WQ+g!Mr}i4stV zOAe2qF-96Jktm___YThGITtd#n*M=#A~$42MkfRXcdPa&`*HL5ANNE$8>Ht$CF*wkdKDcd$mpSauvt z*Rkd<_R08DrL*vut&Z*$$O|BP(_pV**_=OdTZR#b#2nhSM7!YPFr&J6ZS2Zi)4>RB zR0BI_sy;=o6lDl8%#R*ln%Eq8#+jnE{DDp7p=F7eNr9awI}VWoL@vHRc@9^1aqlM# z6g>9W1uim(Sr^4PfA=}2PR!scw`ka)k$W_to&qmITYWrSUVBeM+u$M2U(r3Qk@;6{ zy3%xKQf-7xOD4Lj`c>HV4H<>Eh}Hd>fsALx8?DCHdSz73JhPdpKBqoTl9Uo;Fr0}? z*HfHs?~;OPQnU9BIU;mNcWBqo6krjVgNq29_>Kk{oQ~9~RO57RNBd5-h{Xw}_|jUdsSHxm0_3oP83<2H3u(w3tId!Y;Q}X;OCoxnvo&10G7;nTdpZE~ z4^QcWu5xj$X`50l6qIZowfr&A*xU9t`Zsl{^(h#)-8?jsi7Rb+ZH9Nb^Ci{vlZ(@fIRUIQSBn7e zs$I1!5wW@oIdz@cgl=oqPwm_Sj*#n~oy7dYLoHUgrv(!eEfi6*(sy;-irZ|8nFY`X z7{_8Ry^4KeWt%tO)qiQbIqC^j<)quVm*ma*CvGvk4OlLv9`X{N`nLZ(=8blbZ69 z+?oo6REM~=x2VnRdgHUO13N0LCL?W4VpM&meuf&?`&2k^hVm8Z!91t&In1Wgv`6)c z=JLwXGa_w#O{l})obq^@CON<%&Ea`xCekE}>Svx!`>6S_Qj;_^91c?Eddkd9OQ_ql za1JD!FWGZocu7;FiRSvlL8{GVa=_ksG;?_^^~@x?A9l#%$@iv^bd1!`fVN=pcV!=E zu|_wg96GaI^F(<+@05Vn+`d4l zUw~s-Fbs@2M-!jS6l`o0|7d2b&Aj>NQwr_57wNnj+!a0?ch0Ir0+vI-DL@JX;{4Lo z{KmQ&@}!th=o)dxeW&Oh^|v1c-ER6+Oe3@vE{PaI4G|!|M7LEPEs3n}5I4ldiI#wb zUH>*u7phhh-B>FLhCSfYU7fDne0@??h#AS@KIWvgtTm67*9mR7&QqT#*^>uJ5zdAT z1B*at&tvv`E8yVcYPKot7n}IH*PY-upU<^!wQ6#NC2;p3JPF z*8`qP-t1OVKtUC~N6zKZW+Jq>gKn}Y8Zk~6rh88_V!k@fy?u1X(6>imZ%$JjjJQAO zdb4qK#4_~unpH%GN=kJJ&}d}uz12-t!b>AI5>M32_-4z77p6CrY0{j7qS%aARg4vo{Be*wLn$A39-{~JNYv7 zR7@iQ^b(>$l_vzvzRcir@F~-T(STd@|xx ze^&otwDXvX4;+Eul8dt>xeX8;hMUL`XX5fRl}zuxMKvV>$6 z1iczw98}dv^L77XZDOI468zZkL(NrD_3Aa!=$30 zrx^@Oa+*{Yw0YU!#`bF+U9tNKtcV39X<-;m5Ud6&u)ALouU%W|U}{edY4ISJ0jVls zhc6mTS?(vAk~lww?~zksYT-Q)EVd8v%bQSw`)8!OYb z^^I`aE4kqDC(M#~&rJYFz0C)oC!LugBK4bQROb`I6bfc}ZiIKYb!4VSwFa^4|8ZM8 zr)HR68?{aiw$mN&8`z(N`)hqVw zX9tHo3T8krjHNtiGyv2z$VHvN@(@OPr(l4{AL{UDM@L5149!k;cdA{M7Z*zs7C&je z<{AzPH8w1Y8MfGWll(~dGb4)RBsr%jmo@ro}_MZGHU^mJBXvvw;2}u ztkFPr#>A!}wn+Y(8#buEEQ?g@spz4{-28AFrQlVl6ApOa8Pw~5ZMY8sQ2FW-1$&p*R5<$D+N|0J_&x6Px9;(3@#NPA`4F zV0ix*UxYy|YbDFj4ke_3=C#+v2SIU9MrUT#=T+VHW%}Wo4!tsStvSqA8OQ7Ok@?e< zAkW*=__p_Fg1dKFYWwc`n=0x5wQ&5*T zoSm$EL-z64)SnUFWCS>2Z;qm#W^2;R%k`QX-xr`wbBEX-21V}1edbkg6=<43zV0B7 zI@beG$?dkt&Z<};N=U$XflH`dqmUzUi#{NtVbY1vunP$g`ZPM%YK_3MIq4xLqRp=G zsGOJzSeXM0B4UDfyLK81ljXBif*I==7)(53>c8AmrgIQV0c8r|Z1zF(aJE0N$oY-EC^gK*YQPtbQR>IChpZ94AJ?x*+$iu!b@ zB_9kOU}Yx30`$t6$7yjKZ2o#@b7rnsA@nBj8UnJc&6m1Bq_;etHXAy_o-*7hx7IRt zIdI9>?aPx?fTQXK*>kK|Gz=Z$Av}Jgj%G_rxlRatbQfl%g(>HO>%Vqw*P2ocKqsMu z#eLM;>qc}`{BtOQiHO7sE*9*TF|G@z;odNv!K;QsMDNaSWJf+Kca`9+5U{Ia_=!o( zFklE7`7PEjh;P}?E-c#AtSpMc@H9HG(XYg3V7CN&vQ1Hpb8#qQ=9D@k2JR6>TR=PR ze*PmN*{O0Wx!Az~svt0=kny*S1?REV4-7O34U8%sFC-GkFL z&>`b?%DpQT?DQiyDuAU%+~QAu?N7eQ46JxFR3$FiT>R>-3jn~iDQgY%X-vu62fymm zWEPMVA=DH}J+H-XUc?RI^fWB3-x-5g!!3v4_abWE+-pCFlMpf2i4KG`^K5+^yGvd+ zdIT<$V=r*qNYSlo9~@#mco;zTgiQpQt5L~{ zq0SD_RCh-d@ao<+5akF*`he*jT&f*gnkv76(_^we?sH;=J1C~mMp5{ZpIt=8DB{2Z z5m=rm?6Vr&2w^g82_22KEk8yL4e5)QoYmF(Sp;IEX?)vaN3ASOKPm&9xbA}q!O66e zy>xeP6y2EO4EinU825N-gu35PIk%9CWm-$9X-njlh3+%(}6hxd-T(;^eU zsH^xEML13+Gh3~u{W(NLboCAdeLP*+k~ux(CFsC}nrFgg76miOO z6HaaFCd_2(N*+Sz5Db)}3o561MA5jW7Zfc{oOUPE)%(|o?nXhX^<-Ws$a!}Xc4w+L z(XmztQ6M6FhDYH+v#yAmuX@01Q<$6+S0Xvr>}-Qk36W26HGJquT?9iKa^Gq&xJ6$p zv88$*Tog1$Mx|STF*m82670 zeVV24=1M)O$({Q9%W7_zPn*v;x#3g``l&qLE}H|>{uts?-vttG!2L6jmt>QI;dt=p z9LR$i=gs$!%PJ0Ll=2)0otq8KD08QRw2MS3+8lSqU-&iPJj1D?V1`#XfQK_>N}FiU zq5xHcAIAI4FC+~=1}L|bRspDI+$ODWF7~)wO-^-j*T+uo3v}|5Q+_Y1I+SSKm8%mE zr(vv^3?Ilg$%ONx2uRsLvb=ZZ75&yiR;WXIUcu4yfC)F#Ez+++>|LUJBOZ=$X1=N7 zinR08+yL$IJ(2nRO1wT_c<=Ms8t-rKpMlz+G+*wRUR5bVu+I_s`ux$|&+}GYyIz^o z#iPxb`crvSrPJ6RJ`iiIDpYNrB644^>bJE53lZ`!tR4AQ4Q)?yFPV{9Z19Cw0Zs4{ z3#nbJvKlNE65$Siw0{$5P>Mjtn4l&=aBfJn8IyCLBD;G3GWiZI-(OrgMLXc874J*b%z{|*eACKHX`9UBPg9rPV|MI_>mk%nwxt4#pV+s z(o}2GhE|{odaQN>vF!EB2R;@~JvmB!*5r6g3*K|4rfJ%b(T@$2CArXeR1&+M(n!1~ zyx{wakG_N3+M8anH053Dzsq$y5bF)qtf3f{nnZ>fOBMKy?%gQ1)YjWi-`@YD3a{5k z?Z3LVR#9lKR0A4*eY$>Agv|9bb#~^WTZMUejZvhl?p?domt)qhZ ze<=$#v1H1GmQDkRt}c|~`11EE%qvi>C2ZtbYJc2_$VE}w6Zy9lKQ|r$vUY*f9Z%Hm z+8h0f_!IF8pz+qP&yI=?*``Fs044_I1FsGrcf2aNA&WU0tqRk1fMgr+ZpXP>O=JbYOEBfy<~LP``ZrA89}Z&vt>2deZ+Cc;jg+fS%*Hm5e9x8`ex{S2=PohF`xC;^ z>rgG`vz%xyBE6_hC<#HmKytJ#{*UQ-^c^AL_FgdPoR@wrIq_0C^^Hb7=q;$^K-sJM zQur2I?GvBxqcwUWm$~q7fFZU~fgfg{@1-cL?(Ls)pg??kNJ^k9_IqkD+)W-qF8&E z7ls@K%{=DIQ4d#nt!l&Y;ZQAb^{-UYhpQF0E9lrgV3O~uR26sJ`Z8aEuLP3wn)xQL z6=Hmf$dJ}P^ckPOzIlKaX-{E^wF*Q^iKNtDW! zk70D-tOX-Thc2;4eWZhv6#SV>MApG0Gg@>mqZikDm8sa6xD3&Jt@Emf=joW1>Y(>U zN2MCIz2A-^0lHduthi3Pj0}f3~0|Kb!GT_l!%^n=QI_ZtV6&*5yA3vi5apiLnc1r5# zQ+x;H$Y)kZYhg9B7FFc{ysNY;y?Sf>K;i~DsGrsgBHTETR6St1fl%F~2e;fQeL+lr zpiPVMWhh*(cz(uy0iRQs!&4Y$dU80i406D^);ILq_a8rM|A~G9sNP&{CE>%|rta?Y zZuX;Ro(t)NKxpBAZ}N5d$TrlnUfRGokmxXj5ir&eqM;{_-ahcQ%#b&P4MQA;=ATC1!ywyk!pSh&ExrUSkzOPriR?_tZz3Myqa zQq-1VjNYv~1q81slw8ip(^6^@b7@px2hr@dmp*f0Qz2q&;3tNpb#m_3kOg_HwVWVT ztXP1ixM((KWuQshVAPsC?rAl}g3`?JNW^7=-2$s*0bs@GG2UZYdt`BeV{*cCAb_H?R}eEceM?Ao9i!I>TPIvk>Ukv2315>S@P4>R~U4n4~>r8M`2W?>QF zl#TO6?`p_QC(}FmW`{4NRY{HO50z{j5Z4%bpCBMb3`y@eIaWXl9DjBbUTGZ`1qim9 zHQ>*OzW09ZU7HdhmS?#hoF~X-=#UIAYMdQi=5}`g_yi zZ%P=ylr-oLA-9GNBIdRrg5%q;n&&Wjr|>?{=zv%kVq4da*;Bh|LI(?SO*3PhHFxxNhm8pdCODCGXPLfyS#U=1Ztn zB0ia>+F@AEPf&NE+4R0PCWJ=qw9ejbnR(2S|w$1*@gtuAFbWkG0zb z{3>>kbZ~*0H=wna#AlEd_c*e^yq$53;O0<}V8r7&mCKG8OZg}^X2KZrxLNd>4oKtx z-Z>ga>gXI4>c^8DmS{R65|!({3;*XI|M=^#4>PAj96N29hng^Q{a@_8S1t}Y`|?!g z%Jug8{K!R>E`IvuKR!NwY%*3tI#@|<%_}S>05H~>6A4^B==^anSarX@|3uXN`@jC_ zFB=j0{l~}m|K~>ojr!@QZ~yuC|H$>!eoe7165Yc?s&aHJ=CRL=2& zr{g{#Gl`ecRi{FnT-$Afl9=bvV!>v9gfjOqWezc6v-GMPy%FItE4NwN1Q4rSQ^`zi#4&Oa zB`z&>yb^-!jt$edob`l)VhPaiiM8Im-&Qzi)`ch28C>D|r%|Pia#yov{stk;H>}S<d zmeqyD*064w2z+{WlB%_nBhDU;|L^U+0S4IzqG~Q0DIlso&(Sh0(~ofr!J~I-j>B`# zUU?R15_9a#o2;EST)1B5$*Vocg@12K!8AmOf9hf9uM38d;z_kYs{895XU2Rv-z$Pn zeO0pDz}PD&ypu}HXzb||%Q0S2;dnhrJ*4R&2}*1v>RcNj{e_6y1^2q^>;N;0(@F2 zCg|!#85StdPK@@KIk?}?!bM9u#+_goM}hC-;JX_K(Xrs!h@j||Gf*tMs;aB%gb>)`LM043VzZ=5;-1~n>wR}5*3%i?^#OcV{dj+SL;U1^hSCAs^?lPec&@H>bbGs* zyQwSIiX}J_zMxoNj|2wzBx|?8$7uqeRt%X)RIo=;Isap`o{kCa;Ka~iMsR1c&YwN& zf|)m=)sr(sQSFSy(Kps+BdM6^7E-6W{77E&)tV5t0j+}hCK8`tu?wuQBk%-~K?2~c6iuoa;+rnh{a1bNj z39Ko@3}HrPkomwhq@M#D05y{T8kidm+2_TuIXw2KP~+>6<>E>7dS8|fL30?cC(dxt zl&r=J^LunkVaQ(tpoK(6SJ^x;B|i>j99r_tto6VNIL{s)0oTV4G&o{rPQlgjzf~6c zcOxKjZJf9sRD6Mwt~?qmpGl@?-(RaBubQ24GvGD_fEKG6S%;S(P2q zj^ljXpwz3g6V-<*%)oe;o+N2Rpb%M zt`+nf%6gG09N@`ZzU8XGbz=N7a;*q(G6WW%Iu<%~!Ua@dmW}u;k8{ZcD}#3301kw5 z4M$O_Wn8IFSnXoUL7U4!&S1C`p0IyxI}&?yt?)QixXqdJk` zZZ_~k!NId5lHu4gdEVz}4~PMf^h$S~!XkOm@CVbm!Tqr56SU0T8iCmUxw^cXbFb@Z zbGb^BX(jBLmjXPE_~XyNe*E}|a1?Ta<8NCYc?f`y#|MBOa z-+%k{m&hcV($5bGI!=i{R7qT?53YzaVTr@gB%MO{tA5!0DHQSE_q@{XS(A|AE$0zeBh0e0?07{m&nfzE5HxacVVu=qab0UC zcZRoC>JxP0S~a5L=1}+!L$x`(A=4A`$pxi9$KEu8Mqf=B&a-sTn9JD@`fL-=LmFln z&xR^;4}|5!+A0Tl0UBDJl?BrlnocSRkp*2gq0AA89rGw1I5~F&BCvqfoxo>PZX<3h z8eJX+1Q2O+CAl!|m;=aa_ZhcXq^>`(*uxKCWM#CT#Ow8iJf6Z8KoAhGMr-H}@&{&fv-Vb?yxBM8kod(v6YGnm~~ zA)Hq92|LW88xjQ08ely-KYuW=~6b8+Itlv%-9wla&hgU_K#4>y@6CB$xjjm$77#j})O zfX!t^kvCv-x6z=4QkM$*IG6sy&Cp+6_3F=08fd=vlRHqK)HgM%BH!78ir`uSpzz~W zYwgBf*@e%{SFVNpxe>dzY$_s^HGRR*&{8Us9({r&U8Q5?qH?u*%ar$gL$yXYY#7%4 zb-Emdt3Y1r$f)vVY?wQ8<6*G%JUr>PCPlVCp>WnYh8VjyX20NGYQ-Hc3gWAp7urBn zZ`poFqp)&~Bi|Tq!-EM^$PLPLxE%&0K;=N2xK;+%Nbl164!DXQD!5(Xu|OU~hpv4d zW{ooR3#)o*I=agnIY=8vkZgpxRIcuj_IhwS3caK!Qn=dEWnI-2fVkSer9-d%(aheN zK|nkD2>!WJsxs$^j`VUcHjH>8IG*o%&;@7pluYv-y`B?hu#5*y z{#=+ls?5Z;2T|a3B80?fIWq8rT@}G6O-DqoblGtscw%wNF=EWo6>QUTE#H(A`$m93 zH;V4=7TvFH#eV)V-&Y*r?9gzvceq;Ub%GSXF7?+N1Us~xx7;1ncIO@0Vi<85=bs|? zM7|+GG{gq5ZRJj?tAoKHR|_s09=r~mTBE%j2=28E1>!GwE{;b{IfNU9M}1uE66-D7 zO`QPRp7Y3zpjGE#1`ufk28-#mFLl0>6mO<9{lNUc`PfFGdx?qE^LG)Nex-<5(G`&j zYCd7ZIUPYU@Ae^SFEr67P7SqouBiF7aNZo;(NL>qSdy+{V&a$BToAEVj>x(>0*z^k z!*u3V*|v|$AQ4%-P}3-vl= zpWC?9ALpay*JOI0b<3ThCvO5uu3tjd@HM@@!sT03F3vj=|d(%D{4pVH5aA z=Cqhw*R$K`y8` z@l7@*84_d?pi_n*Q_R@SVX6IhMH@933`;MT+G>0t@UI+kst@Z7vUq60)C#((hFTeis`#=BdSxDPP zmlSPeNSq~mYNsQShT98Kh?UR#JJZRlHrr}#^_<_b-tF&y{JGZp<=1bu`NjHbt6fCU z(49C^zKejLJaVphH|)_OvMmsgFW896T2ls5u2b$a(WB$EEgBXNt~-Ho=V-Hn&tCCd&xR$jEn!AEQ_Gm4`A7(nPGMe z+GTn-8OcPJ25YoMx;w_C!O_>moG@SA&r+=qG}dW};X*Dq0e2^3{biwDBoh%!wj&Tz zHjR!@T?fQeM=KWMX{_!Y@#@-+N9nw=!(vNlHpVAjUES5#O#^!2oROEB{pp$1Ri{=~ zY+Fl;GM7g}19VU@MHy<^;KX|c&kzxbb*Rz<4%MdS^-kJ*HGplpN&jrQ?6;v6GP90+ zbbcZLAv}G|PCB>ZTudDyI_mUwFJSaUV0z!TL@hDo}hs0)q)Dq$x2y8`jU_C7=s z3}igZ1lbfO5s0-`;vG@3R=)im&ucU>x_;?Z#?~zXIzn3G6LM~bTRm--W$UT(JA@R15*XY zJg@FX(Qz-Qmfjj<}GB)wQ-9SVt5My!ZMgwyD%*Q^U?lubK=#>qcQW1L5Jjd6-C{ZbFq^B=RI zfS>p(XqdUoGpNZva8kCxR)2&{{Z4z|5Zix!i}R|9V^gd1KB{LLgN{#A@CfLo4}c?a zHalCFNr*va&P7Wy=>YrT))TpjUF>(3Ovm`MC1#r%=B9^@XK-a-ed76{^Jnu!>xre~ zWmDa_g0(K4fx98ugy(sp?O)+g)_n7}B-=EM9GS~E?ei@_SGtk$Ax|9m% zuhgeK?1QE@i~0J=d}C|Kj^#Au?ky-Eg%Ja_yRiQlDB_WFO z^Bg`h98=jr%jwzTf^^diVqS>GfrAKZvIKf``cjVqMdK&!kgUJxYi^HN2j4(;a&%i- zhJ(CZe$0kBNKmBpqSMLHk;QoqU2=7(S43yN`K5zF`>>4$cE!IPiJm1yr;%;qwKM~w zpT$eY7rNLZ$nn&P(hZwQ@0rE0C79m~C-@{<01%P{s!FNuTtm#c#*>GwqXZCv4a{zx zHf^eA>CuPIaQGnofOQsTA#eC16B9$^-c7eDTEC~t-0t2xGBVe*9!-v`UrS)cS=8c^ z)b4#{{b{|px^Krcixx5QXdsv~6$`bIXlXSYg7rKA+Oz@4h_x0ulE}AQKj-rs7o2tN z>gxKd>O1z2s$C_HFVv4Y0TNP|jWF|sUaw~`o8`iw4Y3ftIFEViHh(Ah*&_L5vZIabJV+{$0f`;fUh0PB@H`$p3~MkA>0VUu7x@Y8Ez}G zDm%H4L5ALdTUed-n*+-W^kix2A^3tiP8$SN`!2? zVL8Ny8&S>$I$3e5;t559nKRbWr<+_NUA#*K4sLp#E>dD%wz!N)^!Nm~^L#fb>^z@j z3{iYoDuCc+_X(b|Z5|P(Dtb1#Sa4G^Xei=?OmCsS~BdXp(=NNLL*`y5B;7iSzJ>fay9)a&0cBfh)0r| z&kCc!L%p38ESz{5nZIbdIhOR&ijB`eX0EA2T+Cd&3> zk&&@xPk0mHu-NK~jO)3YtofqpyLA|+<8Zw6-82aQ7$2y1BfN)N?df^=I)y1Fx2$S% z%_Zs?5*17kX&}xj+GWqMMI#DRiG0>q5_=pbYkt2%c^H{aKpn`fS_=MvJ@FwYS|YG? zR;NPws&XL+StYC#jlm7n|O$1JftE3-P(Q`bj&|Mt_z$M@>b zsU%qF7rLw0+xzSF;X}l}R+b3a+SNdQ`}U2b77+VYjh)CE*0P6HJ#u?Q{Num>`oI6L zpCXX);?uR|Ed&I;L5E@#gU-W;UfrJabr?dcN}>w%Gb%G4JxWCq-ptbN)m^kDzr~;Q zQ~&@V07*naRHPLHHxAc1SvZaQu9BC}&imX4IZj0-*{+*nif4@7Kqx`RuuJ}l9@j#> z*WrNs5JsD;j`Rhl^I(w8exPLbIDv2K?DS5vbFsxH9mcmjn5^eWk?QGA>nATs z^c5^iqE`RB6AvUp%JC5z{B+GzD;Lt7es9(J(gpaNsJ2T)w(3ST02`kt{VXZ1aRek6 z^0Z~3{z`Uxg!`?Ea64{rta&J9ajb_lF#;o3En{4Z)Z3$BK;pqk zT@#&oD#$De20C>bZmCzxd^wAC-Q+3iA(#VXJw92QgQxBwd0#t87$&zQxTLi#H1j0& z)y&V@T70sN$YBRE{#c#@H#Mrf)hN8DGQcW20@2BWDY*YTGM_iI{^9l#;bZo+IJqCU z3RRJdC0h)dQ)f^AlAyF*J8I~%DkgW1!=?_fh~Ct^mCGZKGh}93=(wJY*r-2iS4UUB z>f^81{xoTM8QjX(mWFV7tY;=fAH3u%J=|JY5_S(Z8XX>><&$LjL7UQ=DZe~&9!C$$ zVm#C^SGG1+7)GvxjI{lZ%HFJuSO0>18Y@>Kb7elco?J|sYsFjlYgbhv(e*GGQH{9X zu%F#{?fPpWGv8MBlWPW^loXW7jT7?N8$xOGA^lAji5`6hlX3)ZUwm z?atse`BNVomA~EnQu2>AMACqL7w0(VA2VgcILT{yI5H_~q~lnSS+^{mg+@9el4t|^ zi2I~GF*_M(tHHZ#N06jwIzg$u6cAUgvp-@PMD*qioE0m)?d3D0-mej1e?i>6Wc{DnfLqJ zxSKj~R8Hq^FCvmkjW+4f=(8wLs*$-_TKvggLaCLd^pHn?+EFO42e!va+ch?*oK0|6 zs@t_w5$lU>@R){t5~3G`yPUf=>mRv_Vd)X2_>rnYc<`(V^gGsC&x6bZITgiXcg>_j z9Z8K1p=Aw*m<4K5N|<_tSc+CYJC)}|SKR+l6?eMUK!2sH`fjEWgZb-=MIGTbJb@X> zsa?186HzFg-kF1T8PeX;>6VphZ^#W{WBAiv9?OdHTV{Pm`v9gI7s_`eFY5l@Xy>P6Bh(71 zSfyCBq8Gx&K3L{-D_JSk(2=gn(}cy59Jw38_)Lb?n{Ow03BwHx^xPR;KDw%V7dH_F zN68njm>8+C>u#T3_(P5}U7imkh%nq7qq;iEYIk^W)?;|{%7;u8g!YuT4zQ7QTt^-~ zFGb=4VQM>D9bP!jeZ}<rkcN>S!!_KP$~M=o2c>=y2NyS3cy30VImm5eCNQI{}5q|mLZAqNBRl2 z>8tblVleJ`L^C4dXATXv#MI|k&20i*G;v-3Ye3*p5*_iBs<|N|;|`q~Y~i4K1JQ}_ z2(%h7GhA?r@pk>>#UOpIm;r|{{}4*)xmjj;YW(}eNk7^;-}6+a*u^J2Ibu#i4WGMiT)+SR=j-DW zRYQO5L~4#at`Hh@LkcuuPP$zu-eY$!i)~FTxQv~nyT|x3fM0(8+wXt;SA_P%FwIqW z$9j7nbbWk&JS&QW>e%RrrpZix`}PiW)r-X2$LA09-erNRHsiJT>YZc1U#~y@{PVY8 zf9dG1mqFpV0*A}jAI*#3^cQLu%KlTs>ec|0Ky1GjhxOQHns;|#4HaQD7ZI~@5xNAql1l5!BIWDIblwnh&YkyXMa3)=vZ<`Z0P+5+Q|jJvh&kWN6@By|%DQhoE-9jwg9 z6vv!GN6Us{NG?nyBiUR&kM1-fmPc=B)qQa~vR%+^L`GM0;%^8Fe!rY1EnGeoCp$ZH zh4vNlmzU#5%4MI??oz^+O6)Bm5tEX(a-f1J$kxmyuC-ea5~cuKWJE z_vhZVt0I@yd4X#)UG~Fx(#8$m0H_w($pewQZs%pbIQ!a9+%ar8?Cckeq8@(uG)|lj zLxhRO^N-vDrQ?7G%MsZ*Qf6{L9eowzj&Fr`YAWa&bLHE4AA|oAZ;`#TyJMlEyE`wo zhbwPX-ByKYhd3k!C$SN=B9?AY5wV1u%iwh-Oznvzez z>R9d;bluz7+sD!dC_K68XM8S*hJl$R##vE@*_6z*hEyl0&amc$AYY6VmnQMLH*FaS z>&u9XY`S|0C~R0H)g4qOKI9t}n*x~%1xls^tkYD0NC~TkIDsny5F-lk4dDp!enmvA zj94odJO)%fwt#1+`9XaSzB`%gMt<$+WL5-*e;y*s$SS*5{Pg=7bgI*;DS)P`n+zRqDo! zxJ@^_sp!o3GL>VJVSa^FZ6x&UEK2o5)IHQZ@acj_Z<)i2MXd> zi!SS<02qE^Y+MxADZg}E#$GxpFDIFW{`;hhM@~dM&QXo|!BhNGzCMP8=7NYnx8K$2 znY&7mbh@6A9!dNR$40;`6-M&OISt6 zqc3JGaMW1s+vh_L1+3Hf7D4lXXbw9MX~BHJ?F!39o36m{hOqSq2FUT%wolJ9 z3DcFpi45kORL!a@)Un*J7535(teO_oISZgy3=Xa9k6r+qubNy)W?)Z|mCF zjp`$|_Q#~)XKWsrj0mgB zWu!0QBw)DP=AYcQi_^~E9y^#iM9(+@oon;_7$amo^w1z56Twca4#qKWxyXLfjkxQ@ z9J=C4ns6Ugi{`d0brM^bd9Az@l3I1ESEun68)V69Q3)a=v`U3rxReZ}CLY_GyqI{yyGU#m?`&Uaw=T%m!CmM;O1`aRJUpX)V@#0p zAt{QD5zmuH92a(FlL_|Iz0s%Qk626Xcm233tpezh&_)EfVFSNCD-CyV9*DWjrx2NM z2H1J>kkS)%Z`FZnGeqW^PG8K7WFPEo&nXo40R5pI`}l>~VOnIgJw6;IPL2@UmtDKi z)!QJ%6u`4-6K(I9*wU}={n{NA25o+|FrihzO8l|?%5t#z1wvE*it-L z)gHba6Z{-d2h9^GKALz_@DF46KuWR*h1PE|ucT*o{qr4Lb7S4{t(inJR;-n8YrXjc zO04Nd2IU3aP0F|ltGhPp4!jm#ksByWx$%UyTv(xDbwlT>z57-VDk6|8FHNt)3=~>Z zTaN;1Tos_5K}XqP33_$+F0OPaNN}NBFDa8j=;Q2FAUQi=uk1g~*kQ0$~nlPuHiq7rL=@8vt~vW&MaGrH8#ov9BNyiHKZW z8mpd*(sD)vv};*&F}ygX83z8R3x zT)tv~iW^y;`-FCL+Be-zZN7=&bNsbk5}XMy3QD}}7ZJuTwrNx~VRY2~oCl!82cHDE zWVP%lkW#U!8+R39Iu_EGq0?z~hH9;N@c8U3m(U1vKlRRh^RvBvL?mIWrYvkX6#ah< zV?0N|9OE8cGK*ha`%A;6{iGxk+{tL2>xbAHN9ZvLgI)x!JH@AyxrD`;IL@RYLxN;? zklBfO1b#biF4Bf72|+s|QxHI$^l7V&IKXLi{9GO-A%IAZ&(~Cg*i8Mi@MOdY{MCbb z)IUoF{Ya{u7pton>T~{%utmDdISuKG9u&bxOsJVQ=|A*?pq5XC|9w;pFy|_n@ z+qHWbjcw-7g?R0LR2@kByUE8zantGY7>kq{Z6ph1WkB&K}=o5W8 zMf=g|R9J5S_uzYY?B|u4X9@)cZGR1OA@-RaPRcL|g-*|TX=5_$_c0bcQw}7%pQ2+6 zdW@DF7*5~lXw6_c(kIyO%`ZY{dT16uBpqoj0%&WvT$_h;CXUKy&iS)%e3-X!kP?9M zCdvW5^Aj=Y7(>(BV}q$DpXW{aM)LC$ew!D1IMeeSEZ-3rx23B&TYZP8#%P|hCpJR% z7saiOlV{E$i%EkFWhIe8k9un|9j`xo@ik9&6cbFTTnNB_P^8L=;{_QZEcLZm>4}}@ zIfn1ps2)qLbHo{VkdeLjzy9@S-FG~cBEdUc)g`5f5zAwWB^ufs#U?8gOH~)|R-sbP zajAVc>Ll(-d3>MmKmPdZ&)ucPIFZ-4_jih(R^Z2vzy137D`r<(6*MP~M)$t&KmYvsfBfe^B3EsX_UlFEmxHY%nscaQkki~fB@+w*$WL_{ zp%BhKnt+oz%y9~r+y0h36-|srzM`w!fVa{>z%{0vB{N0P<}K-oGge{$1H!@iUuTp% zh7;Oq5IZ=E1ka_9FidU1K!-K^V^ZDc-q~9JV2;}SPqUdxoJ|+D;S{`NP$d}S(74r3 zL1im0!kfW)(PC%XICv{|$9Ry6C) z05uvbOk2QY!O2K{o@7;3-4R&%zUaw{(FP+UdcDB`i}zSXP)x?p=mPtC$)0cl+g@eq zVX{1)b1urd!SOxwj4ItyN80F~&{9uHzFQs^2>IG*Blt;>hZUajNc|@+`q5MzL{YmW z@S&>Hq4$-dF_GtT2ay|jy4j@V+P$=?6 zI+dTJ#8m%grh4F`<1Y0bx~qI*mVh~uV-95F@wCPIwJL}~FRoT}tS6x11a=|Og$~4q z(fnbk^FJPlz!0&~-^M;o7x~d-7 zpaNf`H){5vBYMTOk&oKW00`X9tJOphXKJ+IB!9HEs-oN9nDQ}2TXzErO;#u3@kIQ- zxAx+-@h-dxK_#>9ql*%svuRVaIwJAKK2XM7RP|&s=+u@Jk8HPaqyxy{8=D3`Sxbd) z)sAusVqMK|?}{kGQ!q}|Cg9s61n$QnlSL_|re$~GhtFJQM`}p6yP_b8(3~edB(VgX z-O<#SMb@lmGDlW9#}QsY&iTsXMA#q@L~_3i7rclsDu)E=vE8O_sNb6_98y|?*fGfi zeE`Pk>W|yGfW#C+B3{!27g{vwzZ#Ru`Jl0K1+uyudnB0?jW`01unwEw!n5z*g=A>{I2!Mua?bb248Hrh-R(nFEn+K2jm@TB?0Yfb- zmfKZYEz6L32sdT&WTS~Kg0p~*}p6}eOm znAd6yp+IVA!Ic*&0mB>>o^W=XqHTLJwGHWU%tMCNJP~GR^vSde!V`-$?M=90}|DpHmH`i-L237aCcFWSkb86$@Z$g zYaQ@#08(pam^myB2*OFy;?ktXP!!xRQ!TKD9`F&q9aLk8*@RR3JcpKy^DORtN3J-BIU2pzTVC%g?bvV{W`S5&;E!+r zc)flH;(C9-*7BjDnTf*p-Ww+PhNIN$c2F>Q(?j|7>(}@1@87?@XJ*xQQ8~ns5ThSt z0b1TUdFEs-|FLuSx+8G;x5h5Y5Rwc^IdBO1_y|G8Qdp@qOpo!ZWdQVD5H?W1Dy+b0 z>7DG>Ar`^{Xko6=d&s=0BfO3`I?sf43>Ooy)G5XW5h}CL-L?0&paCv5AMtAF7KE>o zh-HzTRS%WI2>r%k`gr_|V1O``NrUE``Uk#rWea-L_)7R0xmMR_ zoj+V%i}DTOnr&`iMlEzy57<(04kx_Ev9YjmNfqekgYe`_*o%a^6;kHjKyP~VORk+^ zy(ja0;=)W3!p$gvySEpgL)S(e+t-}6sbPyHzE1NZu2WghXwJDOZ!5(`VmrQdWQyuC zWky=#3cu9uGDkc0;G^WzIhk$lUPbg+j@Z)})l1A~S`~N3-U0>oNo!$-2Y{;{?+9W7 z=UZ1@quGqOq+96%%hz>16bEVELz|mR7-cGJUHrXkURwgv~IIUjaz{1}@%X{Wz8@TFM6O z*qGnQ(dmk=z)f?##_#S|8!#Et%_fKOI?HpH7*SQqRD9f1gqR4TJ*1Sagvs~XV<*%92?zXrWhcZ15v zSAVX`p*LDBE9CXY*llvc#~&^m5moz9wK=!<#0C)`tyPtRlx-Ht^IR=0k|xdj1ZeVx zuE@|St6r3zp-$0K$3Rh}PV+}h1pF|fu6J9*p)_R}{MN4~KKgxlF-Dl4o+tQ0A zpNU1CsmP4X@MJM+cXjRQUbJ}<-|?l`ZB~|_PIOB7Rx{=q;(n!i^l;UPd{K!!`2P{fyx3mL|+TrU}x%_zw zfvR1{Le8SM>PB|&O%wPU2gO8@B5ZmuQ8^nCE226xlY?;5n+UO{XO?{ghGny^$teC& z2_||1hTo#zKmbF|jPoP?I5eZ`S85|Q$3Qf85~pjy{PLHMfiFOJ%*vxVUZ<1`wT19- zDKeay_GcQGK=dP@f5sXvVS2rX)<b|MIr8ft(ryk329QB#hNQ6&Y$*ri+s9_Mw;7sg2FV3DBz38{FR0CYrg=YTPf zIOsN6H!Diq4aBe{hyM!sgU+DUznM@IKTl~iLBrLt>x#LW>KM(S*E~(ZapzgoFjtYe z?%n_UpMUO7PEb_^+eM`z5S5*?REj^a%Gb!R$TV41?{q*|Ced}y+0onk?d{Db4?Y!* zKmPdJufP5rcs4VOVFG2g>4h-QW0bICefUjTMv3l!{_~&j|Lwm< zWW=6F>U`zcV}@f;MObt@a*9J#Vjy03 zEke-E1$L(dHilR{#)m3%{WEG^6&iU`a_Rxu2g*fkJzhCz%C5eL$VPw7sy$7|a})=7 zibNT`TG!SDN`yB(I+_m2K02!);G08iJq_9mru z8R2NFS5{GiBnIld8Pd&isay)H)D$#rZWjV%k65O|Z2`+bO-g;6weOrCwsohvidLlsQTOc4uKkReHt|K=B<^Z~pmjGzmal7o-2&y8rLP&Q9sy3qU-YGqo zL!k$9eNpv0q_y(Jsc!V{@x_SY2ippoZe)*nryoj7qGehWIHYXM2c15_0@mTlmF`hp zW4D*FI?88Tn(k~@?7q6LdM+3A&4|=RNyQK)n%|f3!8tLJA8(`Ttc}5M)nxE;H z<*E#D*TJ1%1E8U!=7^0yseLe{p!A*64x{Hwcd=LIaNE_Zm7%ECyqJd5g+R=Nx%s4~ zI=YYVgz0k@3Zlw~MHJ?2Q%Y*7oGj#e<^=Da_~#zFc(@U@F%P6U=Q(-O&B0vEF;)-^ zZ$)gM`L*&ve?S(+%^wwriWL|geFBXNmv@cmh!tjh#NEtSYW{Jbf@uAmL&S_&!z(3^^827g~r&(d(cl2MJ$o6M@nqPX!kzf4i3{iDoF znsA(k{)FM_AQ}#Z%R_AlK1`8IC!KIp%zUT%iIYDXokun1i)-#pC!A<~Ao`)(@rB67 zTqVszbiv5WRdml3yjv+k0O8weKo*T7=iy=V(ShyO9z|X&P9-8@srVAa>-k3f596J5 z_yE{!$IJ|8%(sZ;1ryzws4l7Jka&=8G8G@U9B7`bU1D0b?2&)nOvNfpqluu5wR4%+ zh)j@_?;)EMDnwg);v~b-&Ms6AZfOpIW!Q0Wdp?PS`4NwF!0Ayg)EqX~RcbRv4o;aM z?LN9@ANij%6S#hT{PntZHmc*>kMD_5(%{S24|B|Xr`j~DDD;Lm{<_L{QFj0dOqg8V_oK2Nf;GB!$8L}b7>xjAsbE7&wtZqg)cj8)MW&C=ql2swiHE*=9J0I1pwEj%|Gt5FJo5$_sreSy(kv^F`P`#AVzBJGTbCLci@t0VTZLET zD1R8I9$N&mYB2$@r#APXy{8?;M4ERNUj;{kb|Hq-%xcqpZ&z~NBg3%JzA4nwlJ_i> zji1qt%tg)}j}Sf2$zQ)P&%~#WSpLg4A4u+f>dB7G^=MMLx>R8$Gozt4pv|0*1*{~G zj+hH;U1JhAA_ngvp1eE7YOlN!8Iij;%rb^ArbYZt#@sj|ygmPDDI1m58I7nczhPI> zbKj{ra{b>lwqLFm)R-_F@Chbbn@Y|6n#=MD)D;gTdN?Vv20DNAs8;P7?87c^Mt8-d zEZP|vc4BSCLe)d3jNEl25Lr{t%p;miU?`ax8HA^`ci-K+x-z8Df0P!c6r&6UI36)Z z<8#(@EUWsabo4=fVU_JDq*45cc>4B*3-tJ*xPQAzzOa~$e!r7!!?JCpJb3< zS06e9eaFNb|3I6@>K%xbIBoY`RaJYJR!>I1yyi7Rqu+~VVn$W1?9Lsi&d8)dE$p*% z=^a~-p2HJVXr-(B!%FGiO&?Pq zY0BwtN7QHHoa^TEIJe*dd!~5Tyn-u7wNZI_&5U@-pz)TYrdP2m1NP(8HOCx0B6Daq z^O8OUmY>*x2P(<8o4Y%#lbH%2bG^O2e|~ov7e?MGDsJK2uhyZ{; zfByXT?LB4Na$=vcyTvQsC);gDKhb=H$`0~@-`O?2ctf9*KsV$I$4|{o)Ky#`mTA89 z!QGTuWPPqSJen}#0{m7+n!>{$!JGy&w9AoMN?I?&k%ReeW?c<@0gLNNOHlbci17DK-E zp^9QTDhlki8$=IzSAYhnt$uC}7URQAbqT)wf~ghVH~?_8XQWnq(fL5Po_ReyA9R@r zROiY+Jw2-ty>T?I5SQ!kxcfG>;dM@3yL<-hR01p9l&&)8*mp-1TlRy{1f!MxtOFXI z_e0F%uM&QEh%;&@n}mp?kpYgn55p#Pqwd@H9k$1|5a`hlcc$sC+b~GSKizU_jn$ly zsQJJ?HxXEmBEBOp&j9+LKcfFh(Pia`nyi{F&S~$5-j0dsvl5ZRK6T1AnG>)y;LDCL zN||<*8uJrMbRNL{I!abPXHux6*rQ2dOi6N3HAFDh<(fK(}@eZ>N zKKhS^4s5_}UmNA+d3rimj~1Md%7b2UjE>%1F)micVL{)?&V>FU?l`j_fbNc*m-~2Q zlf6rckJj2Ay64kA!HuA{rj?9FugEdCn>x0oz3tsEUN76+gl93l0fs2Jw-`VKjf5Q% zwb3Xd^Ls0#fe@UX;kYvdP~~jlFy8`W@@$)a&tAWnO2nqhJVAN7#w;3$~hJ-u~p2| zGZE@)48hfSZXy`EC>(oU#+V45D^OL3#n2B7OiRE(I6~uf8cUsaBBr_!Q7zHH84QGL z`x&CebYhiJ7wlITEyI~XGD6Sc4az>Rw(|<2VgY-C=fzpPB=er@(KMHLo_vHWV81iq z(N8sQS1o<}qyil#bKB-hs-C78>+Z~Sv$O;y;Dwln$&%G{yG_>uOCy?jT1g!m%`H+r z6}ZQl2=&o**V{&c)BT#la}>S&!I|q>2t9IL$*01Y$|t1tKi1gHgfns^s*N&7b(9IV-S6kOjvy&G>F}S^0HD!H4P6(FzwNM-c3U$nT}9qK)(P zejV{@?(-C|fcffkn`}T4Pi?4bP>5~pZ5snv;!T4*!xncuBt1?S0wzhvg4O}`5Mbdd zOq1{Kta6Z6r(!wMIL3e?SM?PPA1t2oGi^&ZCMGd)&3;3_#DvC!cn|}S;yF~=>9gUe zaT-_=dGC93LQjp5#aJilz*=ivRrhRLadj8~GT+wq{`vc_j94pzOV!b9Ky8Cs1Uf0{;TYnV2`(4|JvHeRG-=>8*6(m8Fvqs%} zf8MX}-`=r(poK9^bGWWJ?7Co3&wuvWHhyuB;R^8%%ISrt@inU=DNU`uIga^Q}%^ zr?8uD!0F&TAFk@!QZZ%65XluIa{Qj=_v*|K+<CtKyK!c&NjcwNEIbJs&+|&p}WW3Jt_W+Z!t$efAH~8yuCR_s@Pb?DVy1z zr=&(rhjTd_QjhOwtYP(dMwSNMS*dQlQ%wFixj#hW$T`KtfE#?iZ;tQon}z1%6vxG) zj!)rP!+K(4PC_kNp5P1wRtm&~+@`B3#C0u-pwCXrpx%o< z&;@H`rolJYF`uvI_$`iJd4Bvrp?UWXko@0jHfoKb8>6V~R2zxDfCU6H5lM(0!)l_? z6)2#%xx1rK8+8MF*NYdGy}gy;T0b`5)!xlnv0S5gkFXpmOnr0Sa*NR;3omo5a+~8I z$8>RfG&`-*nq@b+&2|)J@JNr{Im}3I@e&!-0*-%|`u|^-La&sx7(`MItYAg&FM!x2bqQ z3;BKOY#V}EsiD`RGJ%@1Wj#f?{!$;C)z=gw`(vhe#_aBqE{)zoGWn{9O`HSjvJaBKS*Nrpf0okC-G7=3AdtV-}0K`XLH!=*}! zIWGWgzuDOzXb)_!Jmk|x0XuxV06|d?ew}m?xdvh)>r+&GXO3V}u7OXkL-9EAvLkuplCFq(R(cjt$=ERSm04wr_*WU@@FyeAWCBTPksI^tcaA$ZF>dV%#b~b8mpWT2qU77z%J88tsPB6JsNws zx*S4OpLd^{Z73n#naH(HGszsBij+XLph%1u$Gm>~%J_Op`5Ris=SXbq4fED)rOX$X zowoaq)!Vnz#qnVvUx?v*y~KAJ!zVr{Q5Y8 zdQgNGxje~iek4!EH3=gDe)`53fX)4o1D8Sm1c|91?Y-z|U|-2FxtSZ)GSk7A8>Iig zA7g(r8#Pc_WSNF3xcAWD!YDIb0 zF1~k90Fif$5|3Aw?b#L`^Xe@L6K~VgAA^ssqM_*zM*j1jMY}{mf(U60T)MQV)sU^A z1rM5oV&(Gj@k?)$BOOt}t~@FS6?X@%E4J-~V|1{{8v-K;036 z&Trqo3p6G~GnpB?f4`y|)fwO-``!opu^)7;>(|F$-`?N-9itJo@86#v^pbf0_RXhh z(np*?I!M6QF2P-g9TUWK$Hzx50>JN&PuZdyFh8Q3A*|Tv3Hw7=3D-uZ{0d!n1aLjN zwWRq~=;_WxcIN|LO?K%Bs8Oad8vZ7}j5PA2G++dpi;EH`4^xhlYDlKL&0n#4_YC`# zE%zL_I!+CM*|bF{!yi%fo^#mMrlELJLU7HZyTN%kW!CAjw00*+*u0qFMHb8>!pLrf zV(auOBgXh#D+fueoT7jJs$Qz8Js?o~9$3$LX8D;5rraf6DG|9bAbgWAb8tACmrNvWL-4vnt zf8w}r+hss6Zcq+nJ;o>}=5S=?qnmRg6hWi{)Xnu1h`ubJSH5s&&_9osVbiTw_rQGV z&Y?ti&`iE%$8*X#V}CQc`~9n+?dnz|A2gq$<%bib((hBa3{8lrUeR|dPWrNUnJ(lH zVwRL$v#tXkhsE_s-YFpfkM72tCjFNMjTjvI9u3&;jj=CJgD3_ddWo{d*u>YGF+7e- z1`idH{_4dI$Fw)vHEO%yigb_6r<7X!N3oRDcY&pp^rz`MO68U}SE^b#@ay1@DVEM5 zi;<^sicxGt*;sz`K@r>lSDI9$-v`j-_#DRb&`SEfG4Dx>zf1pn;68z)#|V zBG@*vk75F}B@ucdipy~_lbubtnULu29kIJRqpDxgyY3C_1__SG++}b&64kixe!aZA z1c}Ux{sXN0iHC&b6c#sbkD5yR>5|LRwvm`}=@OMKe0^H=Em$(4!(@b#Q)0G-!u5&y zogRFwXW#AcFG{GraTRD5c>LC`xF4~VH->Sl6V1IJ#*%&B3lUqZ8EbPHA40ELZS5ik zvRfmf(|J6r#3%koa41FvVY)p#y&=Rpt5N$5W>l4VLOzwnXU1S)dP!wk1Og>DbPg=5 z6BLo0Ee=a_B;_w{Hgt1Dm+BU46q_r6$4q=rY+=o zO0EW%v2-_aVL$-!q78yjffP=`>W~H4trj9WW9DwoIqqWwt#i_9$`{f4G)C0#tH{eaqv<6QPM+i9 z=s&JAHC91K5i~a>&Tndy2Rwx8vx^JX_dd8=!B4YJGVDoLkLFJJWnBo7L9!KHIAV4c z`nukl{9s>^-!d*BBCd!FNaV^~2)s6`O0}UbbYhxE!@Icg+AcK)Vfy9FTQ|gMU%BpGyJhh!j=6meaXKRhI-40g z&1Tm99Pv8!cw z= zkn=6(?hfqEkrB-G`pP>D&~bY5DQb^}_;CB04qkq!_Dy%siA{{bG}q}0x8RVokHFbL z=M0PU#JBCSPifRvSMWEO-tYyehf^1ha6v=U6Hm*Jc3LC;ifkoE`+tl%RL;A@5b4^- z{N)Jr4#k%*OvHp#mME6IF_p4_imE0RqE4I}fvWqy?{zJ;LjWMYfB)m-<5vhXtM=gE`S|$x_rL$=x9@*^`|-Ee z=g05gAJ>%*HHdoJJD|Jo{aP9K)MEg;K0bc^`uO?&{^NRk%UqGy{rc>_-`~DP=H7en zySdpj->&u6yVgpzW<@+DfZF%ET-oU#od&E$X_9?BdLMd>zkk1W_1k)@`}ZTZ&kuaW zPG`Na_U)8@Vo*7(qcZ0r*COX@X&S!MJW8RBhRb|1=EOlt8fEJFiXM>%w@5(p5|RUspG^{z!_CcSvtVKxY~ z2O+BM)P{?)kxH-pctm97i!xsvGDO_d@y5aKPSb>QXnXbZO)jJPlLZFP7>%6+s7~!v zt;VnVsEAnJoJvq-VA<5!SrY(bcWO#iw`-HthLJPnb@I}|8eqj;xMO7z(yTs!(^oCjjQ) z!b!EXiE*H|)rcwG0kD%)=I5M5fV7@)vo3M zU!i*&Dz*o_GIAGo;nxQxXy$SeQTy`-0`G5FOU!~ysrZ!>SHCGx_<&`O*bN3HJzUTO z%CN6`s;qWjVuI@%$C>25TvUJMN02Q1D`A6?Yqf$!%$qb2b$MV+H39d$Sde

XZ=G7sow7Up)Dd7`~(lmmU90v`NOMEHhvZ%ay%145&hjokL$3DN3{CU6 z@Om9z=&i>OkNJ~mAl7=%cz@OIxUTgr*0;?wG%h` zj=BRk`m;3SEU1`$qVwFK^RdOxNF>lY|K{VO$-K{Bd`5mA>NBwEHuXc|;+rghWI!}2 z+#9+vVJmZV2Ie@J8)|ORBcV*gJ)C)Z{%bfLJhIZGcr?wRxE=lY-!!*70hpMQW+?h- zVYX2_-4&rHIr|Tq+le?AjExs>ebC>Ys67py0<40woD1N5^nCwE6soSO-Bak&JQNY) zqoHC}kb05*W7&-4&4 z9n}&vn9teLrv~t;!ED`RHI%tcD<%fex_h(&HJW4FGtpCnXvy_$PMO|jvGkWuJ>0H0 z63ZT-DeSrWMWjMAMN*xoBT?iizSQ2Ld7l^|4LVL_4-KdMj0Y z8=J$_{7v*7;YsV~9Z(?Mz={SidtD|?C0bn?m6#BY9fHK{6431Ew1rk;3es7_*xXOt zeo}y?$|DyYHcE|($(j+KIBTz)#H4TpGCqEOo@%ih-Pg+d^|5zkUQ3H*dPRKy{^Ndq z-utGyzZ~9Pug}lV&-eFlK)=6#e}8}f{Csuq``%%}_B_YW&(F0~sJQpmK!5x8J+JHa zdj0zKm#ttr0nqlh8}~s7ax|x1_F)D zRr~g`&e&DIe*M1w{s+Xg!&{1nG8C18qxFgTpZ%x&`iSj1GUDQ3j4Lj5!(+!4xkk9D zjpqFTmX z6J#v!gsOeSE&afQoH(udM}@7AVPG;H!Jq@Q^g$s;(O-%*wmFT%_dmJTm3eCDKD^H1 zBaF!oq|g#W{;Dm$%zKcB#mLhMM2GuYZbzKPNRLF)6@+Ks1Z5h9J+EG!nNUw2@WF9b zG`n58OT1cM%)$7svM*wzLwo9C&x&h<9)3`cL69bE6ORv%r-yP^fjixU9hq>GM_X$} zuaeeb>&~lJd`>saG^NzzqIq4oE^`h&1nZ!U!Fj5}(CqzU@KpyQ?)~|wiyv}geI%LT zO%^OqY>Muj)pecIP#ehUk~J_W0?$1fFq9FO;+n*bnF9_^Ium$v<)I%kSULP-l59iu zzT27{x`WAa78fVdHZ8-{dZ)xfVNm|xJeQpQ_Kb|N7H>)l+XT_6`hg)eL|e$|(n}>p zwbj3;d+D?4>k&Hm3RD@(X_u;I+2nV1tX%0IHJD1V%8_SKxgIxR>T!pF7VreogKIvH)j%I-5i!-rBA3IKOwcVgs=IZKP-tFzuClI-=n2?L|TR2sd z0j#+KvtHF3pjJfXVxwr&`#9c@@@A6p$-fL;O997+^1(AggT@^*x9*gtb#kIAFb(jj z^8?P*=t8Xar`iM@f+39B4k(eni|H8<~wFsCH zIqke0Gt}nP3%LhSWJVv*s^ir!=p&M0U@6D)(8>xGR%w}pQ5KeZdq`eSQfrc7Kk8+! z0glm(2O^Pg`K`M;?$uddq{n!Ewz=Su&WGbhhZBSgFH)-Lg4IcAZEejaVz*iw7wk!@Lr$b6Mt4bMO3i9|D zagtygrfO*#lNb6wxA zE8~4#-$B}!PvZ*26`3Posm6-Px41IytM=aAZ(SU1{*7w%D`Ept)oTqrQ!W^7MP!Kk zHIf{8(^Q^$mKd~)(h>GL*f=Uq+j07o6Zutmt{Bih7%e7P>8xbtTf}15q#M}#(VsLW zG|^NX9_F1I@|gkGpn^NPfMG&SQGEIe6Vl8(be}Jd$B|TRnpD(k2RC6h#sVMbQwb5O zow@Y1#eDh{w^IR;rmgQhdEZAp(x)UdEL15XPh|owH5ElvTO0{Us79nk5xaGE`oKZZ z6Q15PjSxUZhPF*=r&ta|*UwjrqNf|<*P-xkYBuKjcAi#l_oOhR_%pru_!g6Wj=$|x zJUmTi9yxe`(W>x8Oj0OJqp&pwk>(%}ZeK&F!#K+KMNhY@c0@2N>pP*tqCyZ##zg2z zsjZi-pi=UZVfVVdY07ndSEAbhd~Eoz=A!5r zWH~M%K0bakN^<;3%tv)s?W$LIL|)h1b-l05_3it+hX&%o*X{l4ezQs_-rm2VyQ=oS z@7M3$Mb*xI-+SL&Df|78f2?Jnz6f-_=iB?+_eSqs-TU{t?$>YTy0^FQ@85o`>k4Gm z-uLfDRqbg^gbEqPrHu24rl^bo0pe05BpUIu_LYA8`t|p}e^0L8X*71*icAGgxMXBe z?m*px1K&{wM+1v@CpI`AoBNJ5S)JS=vz*!bRUrpc_?A$c%N5iu&$n+V2#>c z8EfX4(cbqp(byXF5l@)2j|P4I1}x8gVF973Be>EggIe9y<#qHH^%o9O3+mq)DLrD~WA_aa;fdU$s6{aj zH^rA?n$K)aokkqGi-QB!Unpe8j5;(%i{#;C9yE*8ggF=OQ1pV_86)7F3Mf9bcCBxtg(BJnX#srQJ(_XL|#B&0`hLi?B5c;@2v zw73}q6degI_fX8~2*|Cx`ye3~7p{pO(hoEpOdQ+T=>&Co52p$~QgLQJD~ScL1mAa8 zQraN~t0QRE#wWblH5soCrDpP#@a3@g2<0NkexDQmG23|yMRGpyDr=- zs&RJ}SB`c!^%7d$HYuMAJ}d6V-q;(jdq$!&Bi35gz3=+Gcjo@_p5Na`JfQ%sAFlw? z66aetI?p`my3I;H5*dwzm$=bA9d=&mqk>u-O|83#kNe!&5OzG6z?HLudLXnXixH^K zMyr(nD;~!6bJu6r~)As4#&Tv1fCTF5R5B0d^K>A?6XCl3w^j-I2&kxVcYd z<7n)ATeI_yu}v%C%zSEV48b(Jd1o42A)lyEW;JY>E3fBNI1kw@ETSZ$shLcyj1%rn~j^`*Y@CycHGyn1GI|oTw zbu!p1t>}MtuVVlfZBY47xzo)g9qAsf9+7juCM&(4@>F3DGvHD)yn4rD&+jmzJsiAl zrw7CW9s2Mk%6r(bt*+=pAI>@C^28!6K4N}p4>b-Y9M;?qCSf5u6vJ>QFnjnY-j(p# z?Q2suEd%D6;u0kdbJg`2dX;JV)L5<&@#HrTw2GB)h;J+Z&;(k%JE(Wwi-&b))xf(&lM+$@lBsnh}q0H+B4gJ&&h7>=g(4#qswjHIdD? z`5*vVPsOk{M6)A;{6M<3*Lf&epCWbetfxq;OH|8y#Mt%Km-^fi+--e`!C9Z3$A-D;s!xMMxgf(2nH?WGwy7Z60?dpyz69o5_K*OB?b5(XxRh&6-D zEFlv!BR-0cO3RnjTkX8X=k6>k9a>Z@xAD5M9C*AAmR!8r~wh|_c$%SX# zQ>S#OhHRPF+;cWnON|DiV;1>93L+s(6Y6b<52+a0ww(YLnV<)dN%G>4m5X>%U7lmy z>0gFG=e3p_8*WZp7%sSD>XzsZ-R`;L++2B6F!EV9A~h6%%=Dp@)A&GoRw6v`JW#$+ z4!=`4hpn0T7{fIaR2YV*^vdXKF3O-I3IE*M09eni%!{q@VTAnPJG#q(M|q^QM{?@a zLnXS8zGmr@%VDhOPSsBnpInngocht_q?oU8RSQ3{YDBEh->=u_iyzEGy-Xz*zrVlddW(z&pLu?hs^1?!BjWq_zqvRQ`;)oeu0Oi__wSF_>-G8h@&5MyH7_9dV_?G4{zCYCB( z*ZaEO1O4&)FDgRTT6=FFeSA^~_ICNAiRF8=!-sqx#mQp|>ikQTKR?bjGQf&JnLqY9 z>6qVC2`x(CpV2a>q-VOWO<^lLdOqt*fiW5g#TQQaA3G0SiyrdMg$aMFmjvm5jy`S( z?S$u>tuI=lk{l4lOr7f&5j1yog>JSPAR}ys$he_RLw~7K95HeQ1^$A7422_A7{6Io z)y_I6ug9bP5`o0&Ksqf)MMu?Rzq|51Xyty=^{ZkanpRi}P-HZ zbANFo&Bh7vQ_no#oF7rrY6?YU5SCcAo-E7HT=EcU8y^ykb}So}P+}c~6)Ep$l$ogpV&&Cizpoz% zZAuQ)NoAWj98sN$J(HqlfZ7;1ya!o*KOak&fep=J8P&t}@GNWfEs3(z9Qe2V8kG(P zkPX)BiFhKiPcurZM9jC!6Rc#Ol0`vbXDpaArN7Uv%1BMU zbT`VXdjjIQO2hqIz!DR<4jeENJ^z{xXRe3k3I3_2(a+Es(8r~%wn5fqj4GgMVa!pRyc^|O!ln{%sv zl+^*40$X9M9vDc>m-}8ynq>^eJ7{jIOt`|&;meiy0%QEcnL10N_$k@lDG?2njm-R> z`A6ipS&2<*29by?HPV{U%YSP?XpPA|q?>3v6F&H#1|qii(;6`P)H=C?mS-5ds7B{G z4n7qz`&g#NAO`?f=z0^@oXU&3j{olCj`g7JP>w_Gj;?)h6T9lCfCtqUvjk9Y?b%mw zbFQZVN^hqxQufWD#F;7j@(_1TdI{@(tb;h06a!=0y#sABMc@n|PmxOMsk=JL#pXQy z2eJ>&fw@b;+r1~|y1YD>yX_T_7qy6=ulwi!{`v9yvptP>0GPxw&1KC$zJL4s-~RUg zb|Fx8gYaOw$i7@Os<-uBdYP{(Z;l`U$XwZ~vxFX{MAjk#>ADn$HL;(O)*_jja<&y+ zHAR`PAN;2k_}$37*6PSbGs(iM_UGs8^Yit2zk2U26GcR1=2|P?-mbUz>;3&Lu`;iS zsJ*4j3{fwKU@!z=c+O7Ky94~kmY0m4L9FtNSDe*j2#zn#DWmmE$i$>#-9!$Sgv78r z;#zE4DA*CP*b$hf?7OO}_z?DM?|oL&vpC9?Z)?51UvKYg<;9ayy^lbCdgjA}9&)$k z9JDKZS7fe^Hh`%>pzPpm1-S2}3SVi}_+%w97k6dEByy`TgMpL|7(Yq1t{cx@Qm*7A z-|OD5*Zq3kuh*{HdvBrTKxAaD>$=|F-oCxRXYx7p?k&(i%&Ow4SrJFF%&75{^uaW9 z^(3~=Su%U&A2?7U0N`3HfREq54}&h(-O(pD#XAvLE4%yi{#;e>@82TbU65B`X0DHq zpKtHq*18^V&kSb7_aEPZAA$c+R^n|vVS1=-NOOi#8MD}xudHOke7!z$Eui=IB2agu zS;YhweGNI&MbS@HfBW`5V}+zHOY)1Z7OroOO#l9PeS3RfYwg-!>r-(knOR0eBm;eY zOKnLWuLkE9Gvmrkwr|-BEv5tA(Hz=YrcdlPfc>M%`rR`Q0FyRWHw_N!#}tn#^)R`^ z+mR8W9`Lhiq&|acCz@(xo1Oy~~|k zwsYmX#2he7QrkQ`QtQG@(ubG6JzLFQ&5qVWX))*!#eS*<-$9rRP|r9RE~lezN}K=6 zsW9bl9iqtfD>HyLZ~n9zX`iU08lsKoVXU0~W5!2)`ByHIWZY>U!NRgl&#Oq7r9)xU zM5D3b$`N;a_>jxgnJ<;SV4sx?XSD%wW`a!~aZv44A$qd+@t9HV9kLLMEEB&R4Kv9XS%4DkdWiCetH) z8iDn$4fR-9;gQ+8MPhC*p74)l^HZm5cM+68+M@ zUYMgek0l{My54C#=zdM|@;TA*DiDa>UY=lb#s2I0gnHA$s=E6NxQL`p`@A8Jju>xu zb805kqpRT*ofySVpPj=&%@+-G(6QbaZ~M{5n3v_of(eR<0BQrcciqGr5!mP|6t^Am za!_I2`qR1^jcV+|>+a82?3FSf~o61eV22c^o@9^R2l)1 z-X*P`I7>vXe$?qc?b#U>SMuZpL3&`8)Jk~sae0trdLTT&UatXnh9)?g>lcZmal|;+ zH4xlMG@+5;qzil3?ieH`Kp5Vn-Y&WP;o+38X2AS@v9FEtuCp1>sC`3HP>Q78avZ9^ zr_z9L!h$ABVLjC8`cWlnYDePedRBujQ2jFp@v5?Efdu!uFu~`{Gq?;qEz09EibjWh zsr0{DZ&Lk0A`*#H&*x~V1Xp}Y`ec?p#{71ku`2Ppp^(cv7rW#k3Yf~b6MQ6V`^wU|k~390HH#jp$@KMOoYU)y#zJTzgCRJgi0n!)ql z9>gVs#n&>0xlf*tk-*CQmiZlcn@bI@^oc+$@|3iZmjA<81duyxQX%F(dXrQO>#TKW zAt^J4Y1aML1@Gw|vNg-a=T)5)U=4&heQy`Ast~%i8(>t62pba0CM}KZbdAwE2|(&x zAy^xm;B0Tr4q!G9vNU=Q1L|*Uioc;mX_sd*Q*r)47sr0Z^-p2>%aKJ;k0tB&M1KkQ+7m*cj-T7%Z}%-^mATHnjR84-uJ>adqS8&tL!i*Pm_X%O9q@ zJEYUqFKrat0Kb0y{`mC?bY}j?fBgM#e|+!ms+W-dMqnmXl+_JPEP%}ryj6S zs8-q^HnYU#PXg#kE8>{H91^~Cg+(*x{M8wed0oJ|_x{(PAHRP6s@;0OhdRQ9w_Uqx zzg{>s6rhz(f`^m%Tp7Rp zcpd&Gqyj3eLaay5#IayXBV$^Oo`9vp%Uecylm`t|3pUv#SWbq{yZMV&WLuYJGn zzkYr2A!O!{AK!j_|NeH-@NR!8kb}d`{Esp1jTQ`_(EKz&Y^MEzSo7j)G^r7Ncg`}h zxm?mklk-v&gD2%?|NhR%B?|Q1nq1ckplbj5^ViS6e)pbrcwsWA&AOuR4%F-O{)G=> zg|+hA_iumu$4H+6U9}E>4mh3PGK1qnc+kOMhezb9J7v-+u7>Zl+)X`TN)B zq!y9n-Ykic04ss_is;@SAAf!O{)fdd(mua``~Lg)uRs6%|Nilh|0?f%vrF^2rkCVJ zZNs94$9E+=tp2y4s{tWBi4J7rs*L;Ge_cl_V~=l^(Ku75xDq~7^`+++{9_SQp8MoBu8aZ`Ua3suvdL%$aGC-v0W zB&p>u#jkXjF=(X!OTj#am-rEF6(N}8swQqxBzMlQQM=p(rt>|f9CE5b zf$peyz%(zMm+2i%qsHU8w|S(+3sNtUYm2aaUAL*sv;$stCN@GMrlU!wXW_s#)?h)` z&hXfvoBqn0s`$LBEYrTmyls29-=Z2veN!rA)=pukY^(icMzNE_Ri-1%6FkIn9lOzm z&l|sf_TI>ae0#ICZe{G1_qFO;FqxN;3l5Cc+9aUYOIrfx3mzCI9u1leZ8e1cfS%5f z%~(67hJR6M=4%R3f{U6zJiyV{Kbq?fRA+h@r~jZLoqg=jYnD_p7rw z7>>EP`cx5Gs0;r!sM{pF2@#QoNdxo3j^6Xx1J(+dBMC(+S!IlMc}e zvG(xl+1Tn}E40pitW9=%Y^U;!AyPQwHENM77H`V#z4xp1KsB7p=awc_n}syIh_Rn6 zo2p8gRSFukd2TO2H>JUES+4KtER)fxAC0{Q^2|y3-@BFN_2zg=-H`LF5d2^<1=T}Z z7SAUiQ@=07mH92=N9G%1MP|iBTCHc{>yy16^*#+WXNX^2ui`9C@xT7={y@J16?BsK zrVj_A7PHwnpAY7C<2eE*wI{!kH8@k3TC8W*wMOX|;oE0wxiO;Sco09&8{wcTXfZ3; z4mc1`^yL7%cnJHAl}Y|KuQbRt9d$K%{rCW4ip`IljvR;M@^ScyEiC`R-~*i<$@gM9 zZ7{vBQsR+4tmxIkKDQ{`@|d+Yig@E?BLJ3&$m_ND|N3A5@9*C)$M4fx8CW|kY6fDq zXz!yi9C^WyZ{PmQfBxfbt?pNZn~QTrVKm@p(W6YT7RM^5FM<3J`F7v;wW9OB_rL!9>(|G}Ia!WBeuR%>b{ms)*T{;fto$L&*1uH_Rud2?&bjw*~r8Ie`{ub=;{dPT(b_I_P&F8h1e{rdfJt!zwmQbQKN z>#iT)|B&di>i6ew4O4in&G|qP|NX!Jw<{rgWltP)Yzt9y5W$p)JbUyP%;OyZ4PuH6@Yq}=Y zVJq`_zrE|!bcQ}XKzEB~GEEB$nn4o~Ertk59z!7q7Y^Sj91h+1zxm1zUr4%e5LOU2 z2#}EkQrn1bhVC=eu=lP#eD9O#i(D(8w+^U)>ZYpp_r32kWUgG9xzd@fr++06Pe`}) z0wC_X?XspE3&ZMM_ixGhqpjOx&HlA=#puq6HPa&*nN<5nk(U)npzD2+pQ~ z5+i->hzB7}R`UJLe)5Jgd2ca8_Z!O%^c6Od!}R}v(x;#OC800gt(cmeU6T>Z`ZFR6 z21)EU@x~vAriKs`iwdDqxol)6X3UjRPaLrT03ZNKL_t)x(i)O`<+WjhWWRCyA*MUz zlb2UfHGn>L&70ymnvF&dMR0z-)WZSIyxL-xx# z;hQGN-F)~kjAGc)yQ`?NYR~1O+T(tvHi2l;vOZ-_?DeAU1u?XuGEj0#0$gSB8OvvG|eQ27j#>*Onqz>#*hr7)T znP&FY*3DGm%rS{thjWcSRCcNw#`)ti?Cs{;L<_+)6{q;G2ne^$?9%+g{L;pS*?>T% zsDHS*iVaaM&6$>IRhNx?D7Q&{{dmYY&$vU}WkgXNiiYF>@hHYwy{JE7|a? z@KyMvCK%Ajb7$-1E(=L|+k#9QU9CpT*jv|7u7{vo);T+*S9ddKkLZwOtoBicD2jIu zRUC`KxAl#RA;{Ko3QciaQ0BM@wSwhX8M_YV^DTzA88BfTJK**u0Vj~`!t z@cw&dIp-eL^bnf1MrbwMM?}WFSM1&Q9coEitjD?=cEE>=*01fK>a1@A)d1H`q94q+ z)fW2Z?svBjuU=p6``)z@5F#=Ssa>YNU8RCGJNzBb55nEweec<$M;DoM-_KO}(I7A# z{>7A4ZL+VbL;8fIiB>(Ahxm*q!m^E1JkO@NqW4j!_o$vRTudX=e&s1@?{7ZY|G&Ab%3Js=a z5FD8VGYlWkpFey2_z{pX_jXZK7?de!SJZ5|!Y0)R**X;p=y}NVU~&N)W4pb5c=7U; zuwE*SP7}Rgo?x)tvqfNRr_*+7-&Dr;?#&xuj?+8uJbJ?0ws@QskoA=l9!fD&=pus8 zWZL>78&Tc3zk73c`^GoFynNJ`FJ?SEyczD%E$!t>fD-DN3HJ?|Im1U4`c&W(Q&qTy zL*IYz-N%nF=YB?eY$&uQT-P19)RQe2XVNBvJpNV>A+_^D1TL9a9cyh5G9;8%tI5zNaRly1RBu-Jjz+{e4u+4s&Xu-^GkT(OYi!K% z_R*Or4CE#Dt=Oo5=;{GfIoSe5tU$v$5g|)U#W#(sgzj+gqQRXNp~Ob2>{KbgtfX3J zU3a}itX(B004ZgYQI9#B$?BSZ>yjDK6OB|5GXV=kRmn0m@diVLl*|N3)h`=2w>H*c zngtInw>aAeR8vTkwGlIcVNP`I4q)bfxKSo1i|k#d)ySkZ^c8EB>1!D{#LDD}H#?Lr zEamyPl0zAi5v8B!iJ)m>u^DQRDznZCpmX+<)-hotSQ&24S&N8D^{|Ix4aY&6p&~tW zr$lABG9~=P!>@IAI}9mmQJu*Jk~E{D7ReRr-JIEY8b zIHAU_uFhyi+19xbrda1L85_)4lS^0}SZ9p}idF>~!kERuM?_eOn~iPwkf>1h=5$7w zA+E?>S^GE?0+5(eIl{7mkuh_3V-~opM54J>YJwYIpxPtVY?3Mhl9kJ~JqpV?^<1u! z_*FMyk&%{{mlWdjt>VW7qD`cV#)Mm$;3`oU_BbyquOPBY0~U}JeyTn;az@7C0LG{_ z*@_C6J0t`wpno7tN$haIc3ZP#&Eqh-&QwRa0aev6EWJb=I@4~47Ddsow8QB$b9RKB zsQ_39%aED7@OPs$xhHh*c7v3+$X^Amuq;6Y5t<~p%dZ=i1WJ5#d4JS!HH50AY{}%8 z?3;qVWm>hZrc2T5z*E}MUD3rI6wzKs`xI!tjwHq#h-I~X>69+cr6%yYrl6$i#tw;t z1siyMMokzjL}V<_$;g={U0+p)(dp1t<&j};6*u*FIFRm^*aoL8hgE4s#rXzAS3lW0 z8BA(bTs8&RQcvpr2JICJ3ZR-As$DVJSO-y%y7pT8r2%1)F=J-zQ!O(D4&E*{+me~N z`_}N{peCjGXKhDzPzFOp2@;h8gF_I5(<#Lzb)dNB5OD5I%Q5zML6SvPs!$fJzwr2L zT}fu;c&TIkHAJvmrlonNg}G(4*d;>?WTsD*rrNQ!O{(+=!@$Uhw9BxKmH_w7_L!6w zK-CbX82NeKjK7#E1=gHg4001=mL<~ z=F1{!y6aL&IIO;>qMDe&FJ;UifFx6P(iO=>;oiVc!~M3*i24|Iv6*jO|grftxaHs!;ID(*;u|sdQnHk(VoqW(cVv?L%`X!`c!_Cg;`Retn`-cYx z98I!WV+0E-d`r!(1mM}=iNl@}Sk||k=l;p3FE1}Ho76r5c-$eb3j|ukY?3L`Eo^l}){gJ}HE8 zXr^;l=aA6DqM6gq`~Kp^%bS~vXV0HpT%01qQ~lp-Ffp&$;*sgxcH?|0h1%r_N&>Ra zN1?TaXK|kA0}0fX_BgVATBABr>Et==;o-izG6i4^2_IWT><_nhz&r0em8<2)<1ZNu z{RPtoASFxW5xe<#{OtMdo14h#x_9PQm|arHrMW@EWZ1BXhzZyj9ei6A zj9`jjH6(D3Ll??YLvLcRtGi-hV`5JEs0MN{AUB#~Z;q{oH1FUQ8j+2E(vH=ED-{77 z71^3DJ;99Zapy=)FpDvuE7t9q6UW7!?UF%R+qRebx3cKUQq%v*__`02IuL_i-U;R{ zBfP4?&FJrGJzQ^qb&@#ir|aLyW6-ZJXnlB5MKvwlPPH9+_|&^3d5oq}i1aD9QQU=? zj%aj55YuLpjbTxv0!>~)=zN{*?2A;v2CGg6I-w~j#|#zf`6TGk0}f1Eo;ojwXf_$D z60pj`gi%As`n(|JtJ!zp4wL|F#u)wd&M{jl_#MvzA$Wc;|C&J1yO5mI!RrnSPE-Y#~)@; z`9{i|aNPh%B3h`3p48n{&!89K($q1FTyUlGkXt4*@_-NNslIi^I=W$jZta)z9us#v zq%y)|uF=HuOz3IWs@~+gR1#>#*cA#yW(3@vb>?iX(LX4!3HMQQj|ztCb0(icU7S#h zij%Dn3_s9}2d1LSPRh0f5SwqKX5Z#%&Wjge+IP9|j{O&4vKc+-fEK&Axi**m z8|`((GuA)YP6TjLksl>5Xl-G#8(Xph2v$)p%3*!AQD!$G%WK-_RUMt^M6Zg-mLaHa zk@_oY#6$}p*TWAma#Dm=9YZj{tBxJ1!O^Ixh{Ol-STt~|(U2JA0Y20Vxfybs^ii{l zv6Ege$c|emzzYG~Lsv2nu&ye%t>pu{2(P1s)VV2RtfXs6@-ecvijlKH2Vk5OrqKwQ=Ui}ww`7UNN{Rlgo8MJy9SgJ@XE|EIMdzM zs6k@bS6F2=?-E<}W)X)(s@R5q~ezdE$-0MbMoW{txH8`Op zbz#&(IJ$}m`cUAoII^UK9Az{P90!8Z6>0mOaeangr5nA_l!n3v&Sh zrqSde?eH>fhmXEt1uNFYYjs;I1zW_kxX~t#?f9*>L<#M!lZdWv=(4g{U4=A0tPr51 zH)g`*H9DYICW{&;2Z7;YX3OV-`6f3<&IR?=t6dF;iZ)5c^&OPBUsR6RnB0MoBF=^_BL4h)-&@oV%i&3RAAh-db)z4@U%yuY z%YJ?|Tfs4&BGN$@ZOk$tM68E3Q2&9AO+udZ(NIm~%g_AQWZ!&jYu`{vGW=Ym;? zh(OI6Z%Gyy68HBH_a8qzfBN+4v&ZQkxz{4plSa%r&*I;?<9Wz-FOZ~o5(k^S3KYav z*0^v9QkMdT4uTIKkC4>@GUt3S8-U-uxqbEe$|&cG>Snec_G&h490VNE>K97!m~n(= zM^knvU`N32?{Duvx_kEQ$@AyW%`E2haT1lBnHlqe1@M|<*uBf95h0>+tX(k8R8y1% zld?)WIxQrewfKm_lhGMOGswJ3M~?eZH#l651h|;nfd6QC(F!Q&J5Wy zf7?>XoC**~fvBr6nx3qd(cWj)kSV9t@_lBAI7%T4M>xx}El!~a4mKWX(fhj0c zHaE>YbhE+CpC2^m6-L#_CuQpDf82c?4n2%_3SD#1kA?avLM~#hcKxN&r+EOkMXKbC zJu*S^U=bobIIWVJnIXnos3j`kN#zq_0y&daKiw*^TzuB6o-%U)5S>z!O)DQSJWe}E?Ov0Rz!hz{XxWDIY#49El+r1@T4p{BsjwL>WD4ZmCA@&#{6t@3*-{51TbfgVF-HoT|m_NQKUjJ~`o3p{k! zA8fp#{6U${Ar2a|T^PBTOsKn!tmIInlaybuOm(2SN~ z7BOjNhC$|NQ9jn&hlKftq*I%bmLc-ClC}v2Z>cNER)f_6tSewD#6TZyK5G5j8e-eg zDNlrmj3fU^>37!Q9X{|-xdV!=nN;q|k5dG|x}d74D^TTM&7yViScp*_xIK^+hk0(P z`tv?`5a8&HQCYjjQc&_>C6Pe356VTn9lWt}#fqbZU@G7$bs|XM$9pGQ-$D-1(sXf8 z--)Kz%0M;kQZGc{kAobCDSt=voe?QjshYQ^Q{)-bN(c$FUdPpYRrar%%sEAoC_Dgc zu|_ZTLm6+quwcxx2S$?OCzB5^I(m_u@fr~a8;c6DrnG_u7!FV zD2hiev<9f-Urs@URvu_X9)1AR;Mg-gbDOk8($_k)QXas3ky;jsiJY1$P}D-nU(T{b zVHakbBMfsGfzrX#LyW*7*LonNs?NPiDwN!-@}DY0b4WNsXQs)-z%0wmG`uiziPO+>cItC3y6^-`+m#)1N%Xwo#j+YVXVR?YaNO_rCvy&wnt+mT@+} zD1W#4g{$HhofT^ouNf#S0@u2{RdeAcbBbl9Fj|TiN$SjWCFk77IL(=_udZ%y@2c)I zGfcIplByYrynnE9`e3t96`1w4Khi+#T;9wHEfl{A;N`2Ut9?H|fBwYBMa=UyE-IsA zh+r@Dk=`ygSfGX{F1oExn3^~|c>*-axsw>yyg(VOnpRI#?BkS?FJ8UAeRGRtC~E9L zrFMK|)hbi_rO9!Ve-H@S|adrLX;bDLGy=OiyVm`Q?%xl!fTnQ>k zgsD`3sL3m5EodQ6DCyPqQ7*`W_ovgwO{NMCBGL!kY(L+< ziFoq#S#4P$3J&(Ake9Q5k6e7kTd_bRoB~KS7fU7{7Z(@%`C*^uF-8X5#+oof|&me-{gpw_+Vq}AnHKq|W8t8d7mFA#)r zwFIG(S*L;_#hcjmZC+u%8&C=C?ycZ2Ho)pz>WOPwOw3#lz#hI8XAu1aR0>qll$)h# z@}OmAOe*HA3sazBk>16E2yr!VtdqofSbqFtSqRD4n@CyG2+0C>=hW@S5D}7ZR})p8 zLyaJ*5^>$`$XOz;!?w}7Y=F8XR&3UkMJGI#f3t#1bB{eTe2f7fgZczgSf^=dAzM?Y zR#6%=_I>Wf?Ix=oyd;oQ^<6qdCRQk1={s#AO;2XdIM3Y8Y?!-`thNLqy9tCL$-vSf z7UG#j@F=9uh5iql(smF)^~+SFwI3G>N%v%2bnC_B%d;kkCi{SjYPDvM36U*tO=s1u zRPJRcFVV~6{Ez$f=j@MI*P1W3oc}ARr=7UNK7Odzs!*ytDC=$XS`2 zDq3`R4Q8veF;R6%wcthZa8{SGeMYs`YyBt@8(kf#7i3feukF)h^#wr{N@OBt#6E#! z-rI+7?!(|34#193N|3hUS)%&EK02d zm4yTJ`9;G)Wv@MkfsCY+nUaswY?JnDW}MQT3j5op>n-6v&yrj zZh3(#`im?JsV+Nn>q?@M{Oq>x!wu@_#ssL_5p}MXR(aK7)ITHTCvPkBQoa41n^A;s z-GhdP({)xuSlM}x!K{F4$rk#r)ol$vRxZojfh9TomIhCPutwR7!%?XD*27M65i95u z8|LuRoIX&@x;iF6;`W(88%r)-w+uqq6+Fg_jF~YJ;ch-Q_ffc6lvPv$$;^lI1IZzm zgjQtTDK3kT3WMB60dXD2MheuIdHbf+>5=rzvC#p|W)g3R+06C#tI_pPE6{*mP>7tW zHoXq|vPg#?D^9BX4{4pEq5E0a|CWXd4%?kd+qhwax)xp6!9=fW`avDwnsu9o3GAkp zHwS<~&ctrH8>U%Q7yWQ^%i-bW`kQx#&SOJ$6>GCz08xXwgj#!?YBh@bp-F1B0aDso z#bSb3=I)vTyaF8KB~m%2)@@Oe^s;_fPpGy$Y-Lsi5KKGU_aAS4S2q(h3k%&`nyZLI zxmF#$HJ(x)bN#OC*{mGf7h?5ZkoXuJKk7K>h5OP`I%t}P-yt@0wPyfT8{@GuBbLTHU{gbhcq~3~i z{;4H^>o;#MFD}P6V(yn0k2CS;(W7eZJZumz@vz~oiXnDi%$pH%%O1a#o&tYSXF>H9H<;>4#eC@Z`-zT zxjmJlFPg0m(SF`r>+W2t3=afu!F*G93>PI*)BNSEHY z6g;KH;XbmopEBG}-~aw6_vf?l#=1a*@{t8{!>s0Z_JnRxzl#Er+#~~2=eLtYR;xcS z=e&J$`}E0^$USohMtyna&g~T!(=drn`Ea<4%p7ihxB%qKa_KtD01}h(I#gB_Stnum z>7$Qd+&`R!VVy%kkQ=p)(4_!E2fYH#m-Vg7xzDMtQUHVQRLagUbL?~8-rYZY`m{KF zgPRS4sE!Neltcy=%Te+&E*eOvgkH_PQa|RIcKhbOR>GO67#xn#TpBQExNWD4%Wa&Z zuDRZ)0!EoGshY*!;4N}DI}Ij}t(5-lEqc3^i+%qwTrbtPXA=CE# zY>qKX^tPlYhuIk0>9k#(P8X-s>3rTtOBR^I9l38|R2bmy?>u_Mt)`6)sJ7T-l%a?l zz0kzKiz_dGwdJemOdO^{_fFWx*e9WX~gv92&G?*0fQRNM4KU}Aj{(p;IJ9wriI?sN*0@1i&4bl$TlQzm4D;;i^sLNML|z6wsX;b7qiXE& zt}J38)2d)<)sRl5DEnC|wp?fufMXz{&bF~>+>iaR1|X-^srFGBtF?_aVj`l*WAf^y z1OYR1*-EJSsY(BA_K-2K`0>Lxce)|D%AE%&YRiEf6(%w)I51c#vAI-O;Q97e1~` zUG#v6o-#o#qRjNDmO~YEXfY|IEV2e>q63IJz#`j8?ASd!W*I2CL#gKV!6X_0<+w=e zWHlRVme#6L;2QD^7<`UeG8TQPng%6aoS7Qnt?~<1jj`J?c3nG`NPz{9{4SRDi;fI= z8J#Rv?Nu;!VDQNyW(9V&p%p@M`eb#ZHC1Ozb4~F%OCMN%(+T&e;;)j2F&26^Sgv@8 z@yvn=NdnDRr{Y@7Xp-9i03ZNKL_t(oQ>*3ysqsDOKZx)%U>U*4X`I|Qcj?_JyI?TK z<_5Px6pW$|EHfO2(a8l9Yv)}u#dFJ!4C~v0j{n!;*L*98;|Y^5`-}&yv*Rk>Z`Pd; z-#kXMKgq%x{u@C}wd4`{k*MiXBO^P_%E(krLQAehjg%D;S&1&;dov5zURSjwJrHRa zuu?iQGf=aWVuRi>Cl7x$jOA{K%vt4B4x8!jRR-9FQgsDtCOaeqm`W4WsjCLD%t&`n zGlQr4qmS;i{7}_&O9@D~HRYPE&0VRUsZk=jZ_AXzT1R>%ghcfUIi*+yA_c2n{>GP$ z|BC(~)SmK#Ldi|(2F$`^ZG{hx_ept;uAMZIcbo#aEOV5_D?RLtQcDXZ;pm++n*wN# z`z<;S61h_V0>BEfU0lAi&%5f~T%ZqCzO)^ZN!Hf}Yo&rC4yxEXmo7m9FJI1I`j!9w z*|YZm{KVJ4`5*r1w=OSc=wuA{H9D_0H(};;?(bYa4od3R0}sAR13BSF^2SH;J^*zy zwE#g5W$mE#x-rie5y&|A8PUuKZhcu?@2Eho;o>y^-5>ns-}vUQeeFm7`v3h~|NHZ& zdx~)Cn6;d0+i)V!;Wd%IGPrdpXKR0E2F@N^^G(Ms<#wAMqM|kmC<&pG#v;XC@dYy3 zw^v%xN}Dt?%!t?@xV)uM&u`{}OEPQ~Z#ukFGrDw#*tYIfEn92v@&|1PX4DKBWiB#j zjqR)36nC%-bhV>^k@9DzP}llI@KhTjbIgwJ0ir=iZGkNV z;AXJEgt}8bW}T``c+a7+FbVZC4xKjh`Sa&rxVyW4`Qk4wPVwaN$;a?uWM|bF=9W=E zn+e3+y!#DTtV=;7>NXHl9%mWb`upCALhl!sm-WM^)8+l$&FE=< zW^;ybuDCZ6HfM~%{FR~Tu9~mX#FKs+riua5+lSOzTiIo9BV*3U#A(}(IgmOP7pGHZ zMC|UiZEv+6Ds-y|l;aLc+Qep!mv4c@v$s!)~Y9*0{MxQny;R_}Yf^rq( zpZ=3yCxK)evn67)TQxPYO z)?9*A9@k~d6m!rBiUn6~_R^3{RYqlaRv?c#&jNipL?p-4TgG z-#TOg0tHy=7tiC!^~@mh$K`9mcga*JnX3G9TNqK{B2@LZUU@l-m26<5 zWaVR-iuuYK$d>4tbe)puv`LCTW1o>o@q>X)*+@HVy{!YFph;6zg1m^)Q>%2* zx*~D?Jitm^9)N3H+sp;SS6$dtnaP9oK%CaDSQ>TUi@2hmAA|gvZL-)va}v} zjFXKMq~%N_r#&K5tXRwx0~p+gd)G`EMZ`>tQ@v(1w*4jwB*Y%8oJt2>Y*e>edk4e~ zpoKjgi!IW>vfe}?Jux8O6d~jB!xcM}LRPW?TDF8qQoo>f83Aj0Oh46y;r)c>E*Swn zRaGC)5*O-}u5R~`zM(FrfmN~fzfc~% zshO&-VVz_1k!wZUy358^3Mz9Ns(8c`c71)Lf11h#2!j)&bN0*W6fa-he*GK2@a3=m z_$M!}Uwry~_uPgpneYYP&?yQXWRng(H~s0;$6e|dIXP-#r6~G_G-B{$aMEzKAvcwX z`%HE9=W6-jaRxkNcKs=mi;z0cn3sU+u?)VW(wR~$>g{7$a!Up~^&D0@q9q`hk69Q` ztW6_$Kc0?^s@SSBBEP=AZQbiCYQg|ZD65sw}}JNC#Io5GfmCNZ(fz42H5 z(z}^tp}=033U)CHZx>mXIgeTvO{f4iGv?f@woD^yy5(t=!Vtm4gfnN0s1e1T82|;C%`Ll~wz*;I z%vtIFf(z<48a?#P0~4 zC#?}pIXwX4>C(~-vwEdyfkTN>#@QQ@fiQ8+C+cuT$)Mu5*qV3X{@JV;xjWK)gE?|n zdln6D>EG%_mP^P&U}okXsy8*HI$1U>!RDZc*W=PGs>Y0k9+*w=A*0CVxp$DmNU(Zu zR8i3_Ih}$S^6}|S*H;%vZJWN_Z6Muj&+?_PG!8a2?nUr}FyNIt6-uuOP2hkpV;yC- zH3WMil1V5_*sO;lWKkZV-0d3pEU%E+Z97#>7FMkmYn(&-!Aw}?zAX#odj}6m>58&B zY6(G6*v>qJmH=o~zB>93>|Mp~!YG+Y3&gC}%OZD-PM1y4iU6yFhBY-l%&I+hb~Fa_P9dq1 zXt|0?MnK7%m1Y#E)NlO5!agA;f%TMjOiT8Q4=Y`shUxTm{yu1(P}z7bcU6Bsnla;O_8VpBTEu04e4ote1KKgc|B1eA2QDXkflpv zCogT9ea4d?>=Ea4oKB~GW@L_$r!6nGv1Unyy?TB7(?9p$y!Za++Bhcg!$0zqfBfzL035`V1Z`$XUnQJKG@! z(aZ1)RmtP#`X*{vB+oRcb&7Bpax%)(XWia>=X>A#&KJM*)t~>HzyAI2{p9ce?!VZ^ z?U0Z`9~fnE1aZp5_?UC)NnKstJbn63!74YzJd4^_)7;|MtpA|#R30jz!IKA7sMtDS zvc+Y;lqZ;DJ5f$O^6KWA6;CiA$JqKTcIh0}-et{nQH~~G zUCr(E%>B~Le)PwFYHX*k{+73m&z@SGn@R>%HkhMlBBN#ipY!q_<%E-3G1u@UTXc?nE{QZ*2-z)+dgg4}!O1`}CW zN!_r#!P zH?5h7lrRDe>;h}@K37JR3o0tM{z)#qPDMeC)r_;w>hjf#)l+#VvLW&|6rWiIkJ+>? zR8LoLQI$JXz9gBHd6*dwv_d?ObY#({N5sdPv|2%G(9WEy*g}7GN)9dQgBkV@A7&dL znlp`!`tTA?dJ7S+b_pX#D(h4Xp%KdvOKHjbKnr7J|3O^<#c9E~%giW-*G^ctreTvY zN~r{&Qk7&S3PvLl5qprYtf6O2mGCaQp0iF}A=d-Q7UN8_CizJ0S6-2R<@ggxz zO$UvXbNw{32pW^tOSC~D^TcQnjzecR(Sl`9qXJ69zUJ1OL^hBttkm@Yg#M8|DQx}L zP^J}al>#Liv`);F5lE!BUae6aNN!T0j6RG`kruv`p)%MUs_#b)Qljj(;D;G3=7hs$ zxO2cVeG4nE>V&nHl&=Hhd|CHVgV^#cNs;+_gXeNC{dU?@6wt~7uYI>t7rmQ7da${cMpqN}UPbDf-hQom; zNm@oZ+ah@=t-zLF1P`N*ugWcT26{>jlRTZ1rh%_&QD$X@@_2s9l4ZHcEQ*0hOu(Y8 zVK<^K=8IBCrsxf+{Y;Go5yb zOCxr$>_5wgCL~f13-yLD&PvWTs9PTjGu(y-JID zaHyOL)An+VcT{U0m#_clfJ4eGbmn9A4HUj66gWmQ_L&Q_oD^@E;)ErpbLeE~==Km0 zEkeXvmKA9;-3>XzY_jIS5ZE<#nL&beCz*xO%ZoBo#Wvt(Tf)6Qe-^^rXH23WQEv+S zLt&C=-+ss>%Ui0cD{v~V?ocYCD_5?jxRtjR5?OoJ01fLgRuCeBf2~_Eg6e)5QdQZ2 zOW-QQEW7G@Q4Hedv!n@|22fy;{lUivEMpOhsaL@WknYwMEtD5*I*T9Ax?N%2H3o6L zrpb0@7tTmUk@6mHneHC2;oE*bUte7VHGGW}uygwi$e4NmFz@d6%SX?izWb#weBq1o z4Eb<>_ZNThXXl5H!18Cy$lLq#*M98p{=k=iXstg0;L)SUKHfLGtJtC5!)-L8swaQ( z;?>3J!{KAbd7W@lJoH^?j>=>T&^$iJBRCleZ_Hh^vrd^e05#t-^5c&`c{uMx!2mEd zHG%hJ&1yG@Lp4J_y7b@qzy8;6{p$bl`01#!4Ib*Qxe^4`llfPIT$l}a%`cvxLY z(aFfH=_Mb3^5WtA5R86Z)POlmEvpjsAkoPMsxe6Jh>~lY`TFMcE5H65j~_o>h7ES| ziw{2c#b5e+|M*}2=Kto7&wt@7?|<;cfAw4c{^CL=0=T|;b8~Y8*x3BT4?pMQBIj8# zUSFg%X_L@@%E`15UiP{THZ`|;?Wz1?J&MkTnScE8r}qyJox{k5W$L85#u!v)kzA1< zU{s^lx#RlQe)^k#|0`epQJ}`Qa2aoJZ~pYVfAsVb8f)3`460<@+`PHDxdkw`@%axw z=i?Ofp+hmyHrAW?;V_fV}%^8l&ecy)=M#2Vb z_XqPU^&D<76K)ZiHfH9iEV~_TaqaWUx*RNo@M81X?K$NJ6azX0)GX7?_Y5E7Vtaai zxP=dEnG%rc$=uhVmFD%@d%7EoX=)ADkOw+fa2&a5lu(D^azCZ&Q1Q2|696E6L-)oS zD?SmdPEMqY&7vFZbP=zfxS=$dY3c%zWph{xaVwr_cI!}CAq+`}Uc<$d2O|X_HA<+g zzatYPXBoq4QhV}U&9a1+6)Fg|mIYG9wI*jh>M=UwB4h=-J;aYio_0WyR_ktTaY^+3aX8G69b~~l`_*s#mz140hLOF{DfAQ?frb4v_snzpP?Lf!F+8pc#!JCzQDW(lgg0YTanO*TcO zaW)EFkSgTe6bI6KEXTeKw4Pw40$4n;DglM3da2PNPAS6H~ z2utyJb!Sx>FiBfWEwa1(*r_ayMxx6IgXIhW#!;25Z;)bWy%?V-GEqLly&9Npu%|C) z2+FJ=O~|H>Z?q(hHB=XXgc)0@=-32#LRq^i3?v;<`)k8CBZ{hTwAS`stWnuJSrwf< zezPT&1UoTQ%v4~KnW8HTm)>9Mf z042)%ZMYg8WALREkT;pDItZNt-U65ELjwoQOdz~z=|bNYvRlo(ansieQn9kqenWZ0 z8nPU)JuzWf5h)J8RK2B-g<>eqnM^aQj`Cc|9=4;BxoE;jxxi2;*=~fqqCqUmB;-x) zFPf8DbaRo9ynSN5R=QkeXmy&-CwEpzFfAZ-k-+B6EyF9V1CXnYnE*^d5>)-gfx6XrH&Ih0S z^8L-XGf}D4GND^;d+f*Jh3|j#$(O$Pq5FuKR3lb-+A;aW9)fJDPB`><61zp+B;MM0 zp#K>D^5v_Chdsr1fm@bqP=V4Twlzr7~{4xmC1wkun zL7BZW8lH#k(B@PgVSMu9)xMu;=F@;t?rrk{q*L-YI#0rEfpi8yQNaZA=FR>~-};Tm zkDuY-WEoPr1Nb|?^k2+5hmSWmuVg9&viCzqOUFXD zrHl=%sw-Q4jQ@;?xo)C>Jp*$y_m?kU-#?>q@2f`_xt_;bB9O9Fo`uVI?ERHkxT%bfjljE%n6Oa zQLoYQ|;uUd|So9BO4DM1}S4Gd&F!s8eNhRp7i&cZbnvsP2Zqz)lH{BSq#B86tuHKL?>dtI1gPQKe7n)0m2jOy#k)RgpE z7YT{MqH&YUXJpN%aa-jN#r#D_pN32pOcA}YwAVDdH`~Xvf}`I89F^0P zkLzJ&!OI%ZBMSdZOS!5!N^9AQi?OyIi?J&_O0Kb{xmoB#`jc(>T}6G01CHfc4R|{} zQhn!83>T$FWFm@@OE~Ns@r{-5PQ!G+JszeKBUY$ZSpr}!sSog3MtVA}}QLotoI?}lU(z1QL zv5DlELWo?m!!<~rJt&oCkruJfIP(w=v*8)RQnPI8mPM9|P}3bm>Z)^7-nQ%Bzz%t@ zM0R1K`kY}lsv*3t;VgA{8TVRMi@j)N7U(NAX>MX0o90L(8@2GJK9FIa>ZTHj$cUVl zG6&?YNZn`*g;K0+JS>b$g-IYVMvXLK_gsm)Fsvd_bv-c0n>3dpkLqNIY$ZTKx@xU6 zR2fD&Jcuo&$?Mx!o_$63VPdt5;ET+h$(cTG!$;}sq)MpWN;_*Dy;5KD;y;GXiPN&N?n3anCk5`9?2C24|G z^jHs_^4!Z}uRDoC&P$2ES%(g+Li9o1Lk?Qf02SqKnmu|8^_jZD1!`4w&q2$Aa5UtR zH84xKRJ5{Gjm9_vr}_?e!{BHj4oYIxQUGr;Q^EzSAdkuIc7K_9)Rd*qHLr#v)h4@% zO($Pm2B|9)l$FTd=2rY%#AVTl#j*vEF-1E{xzoo%wF&|}eIOYF)JQs2z!}GJ*fQQt z91wh|Y*Pna?Gi_JLd4|(EjGVdr;fuAfO1^cNSaZ2*O;yvJ$|G5s>A|vlT^>11L>tM z3iGOO&5X$V84sGPV44U=%lFp%v~fGqfSr3xCRzrkE0X+b#z!vO11(uwX0Mg;_E1qA%w+2BE4Rh21tJmp=lJXi)ogfiEVjGvAzIe5tcg0*; zF1#Gi&CPk7-uvMn`Nroy_u;mk4#*^L-rW4rAO0TV>dE8Fv2FdhG2``({qnc|(RMoF zulkjVPd@q&V>nZmU07*Kut|w35>FmK=9On_u(6+kDJ2`clZSDNChxD6D&y8Lg$yq- zY69jyu5WIyuWk+@t7;b9oyl^M8pN^!w6e74`Q)2F_bWrQt^quL^6ZOW`r6A^ch^@R zUtZ9*$XNC)#WLKQVbUQc%rf^GV~oqoi=`e(HnXS@qB3intZ}smkC}hztghqQPB&rO zIK6pue|>c$R&L#}ZHyK+lCv`d9v)@}wyk!g=A-f3?r!(@KmU!d{qWaU_P4*c|I-Y> zAOFAq_V<71pFMeO+Zg?i8jhLUdEdwIN0%3obCCox>~^4lg_=z^L}5|IQM@t-oMF{L zR7GMi*zoP{?&0<8>%Pt=%AtS?1C_d1hd|8Xafp0sk0NmSe^Vr51qr}AcJ{FNyXUM&-2ZjyW^4T zG9%JY0(ou;i?QTPxp4`YSLD^8!H||QC3Cc0Tt3Q}wNS2T*xovT3Nm0;1-a0MEueEyIpSm~7vu!K8%7o7Ew9SGKJhp1S9 zjEr(1fv8)=iJ_lq5ptfNQf4{aS9-*%tC$pCPzf8*Nfs|nTG(t%+ip?BAhHRL(9KmT z8LFKodfH3E%m6=;auo##uU3$4J&ydlycE7U|u~nRMe@cKaf%4%eri#{)H7-x)p1&80N^C zWPdz!4%W4FxQb4_B#Ue4>&(0^gOtKlcx5DQTn019Qlxl(bo9$)re(&YppxPrus8&X zurVyt6DS!6GI3qL9>~@qNMshU9PSc2NMroq^gk@fu889u+HL@Bu*GmFL9h=n^Q;?B+2E!GT*qifZ8NU~yXGNUX3X4y-Q36U>bs16)>$Y>z8ZCEuZ?!PO1DajBJ5y!g#*M{ zR>v@lgxnn7y`l=9lJng%VeT0-I8DrIC~IZ*92z=}1Tf_mVbofa2T1073FEXA3|-hl z;x&P>x^W}WO%p)P*5rYyeh0F0l6Qe?1P1IaS+qLQ<@80Di>l1*+MFz20q)FGWfkrL zv6s=+Wg$WeO8$u`Y@?N37N;OH(TmyfWvY!zyjF3`P&gVynIw@B8DY`m1;pwF5|bf~ zNnV#Gr&PGyyqZOuB+`~#cOkM_JOwJPQVSGp zQ54eUjj!)ajr+j**{YQ?b4xEKNkMtp%5bdh79tL`X_qIG8y z-B!1(#-WI(p~PC@9je`HB4-|ID6QuDEdZmU5|qVomh+UiV;`NV)2btn4*6;bu}+;u z@K`ELGgB{T0F}X_6XEgjRWT*bM2C(|Rdlm;v?wo5JQe1Z+t)=ttQ$>T z9GEN-iwUnTG-pL&^|fXu=hy0D%Hy$%njx5_PU%#(D0A6Xm2u1B^~0^LXPxXiwZ#t5 zn{)IHsZxRXLt;v3Odrm(%-}yIqJ~8WE8J9C+Pn#2pc~(s!ONLhz`hBZI2N~NI>z;z zH*aq57_tMWF?dP?S66pG{A1sI{N%~9zbajP@#51z|I>eWdGgDP?a1&V^Udx2um0Qr z8UN{D@4x@yKI7tI=-j4!SB^0ZIcF7d+uiN`!;^V&aZz$lA$2xWdfwFeobnO!n=B@< zs%4|nU!qH>`rHEUry01uep3hH*axtUQV2cPWbv{dVxR!*&E5R#f8&==7Z(clS!eL{ z>AOGww|@QOkG}D{zx^*BUA#GM<3I-;*sU^d0~U}%5x?yE>doWF@0gFnN(&8j8*wt2G3!+&-vzd{@B-l?f(Au&;H}T zyto)+GdG)i?lU6d;_+90_UFH~qz3J;I0**3zq|e8Z~x}==O@R2Vfcvj$f?#Sj)l3p zx_b2JLS=Mq1Y`~Qt|3Any*)e*k>-dQqBW83g`3O4(CD~l+SS#y?#HTK9X<~BQg;lY z<3Q%8U+w12eE$9q-CbY*@-O~_qaXjvzrOO7ANe=G|IaQi0zMiVjWHr-mspi@!p+Ui z<99CIPLU7GhZ=&jR@oK-As#cU^oq%HVs)2Sw?P~pBx_1B50j)^e6dlg_|cimNac3H z{Ddx0<*mnQ8^hCVMg%+9(uY^tu~nY>Xc%BMaF~8D7wTPyrl3wnq!0C5ihoxJgu9Q3 zvyU1kYY+E#o~;J86c%ACZ`DMK_C6z`$QeS8~!J)6!Ca*wRaWLD5(8D#HP228)2yhIVm+#7E(IF^ zD&-z(C7bl&qm|S;yt-vwi4{k{%x5DRWEEZ%3swaMl}t`>j%=lKB85E2PIzmbST|Cb zW$rqki@_nTGU;5n+LtxxT zY2`#Ha(v9Es4WXvES!snHF5P#*HBHIgtnV+UM-qB0!8>%3bYWdls=blWIQKHthG3e z%=?=Twx*mI_mR@Py2OmU5;2pndq}Uq>lj%vS*CSXXL{M6RJ^J1DSB*8QjjaW%7wT< z6{Jk{1uuA$fIG}KJ5XT4py_?KYLu~30@CTNv`zMvIRrW6q2-AHGwD`m$&FdZ#1zXA z{~;$O7GB_ywDMvDx>_WnW+csF8c0X6XI=jC0aFYz$uqUcy2e*DBrAr2C*eTkEYHr~ zcKUdd1FEZX=lPa8iIOB51e_uUvI|%>YnEo&L@#-Rl65Fo-dmGUY*aZV&9v&I4iKVP zyH0o2H7idJrHVNJGA2tj4{;$sSHE!FB@+y4$%y@BHs3!$T(D!SS#sv zXn9Dp7rzn-f&1UR(DXNNiu;}b=R~zPTEKL zS&=&((UG3a1R^HO#g*u4@~7oy3xD z>T9MIG8rgBja&?*nu`tx65YoPrJXA8hyc|?dJ<1(6tm%_vlD0(1rWWc#d`-zMw8|? zhmZ2W1E`6ZE%w1~CZlM%MFc~d_KFs41I?*&4=XYiRs&}SiMBdarI%1CAVg0GPZ4Iv z73k2(X!&Ks7DcI^)K$?ID}w73gietdN%o0Qk5vS{+@|ba^?Yj@gGli%tYAX7iy2VK zota?7i82jAo4?q3%Kic z%c~DQc&}iFsre%`v82gmCmvXMp{ngnLxHf;Li87XPGJ7x#q0Av^%WQf8StcA%%+-g ze?NcfXa38teDz1~?{ELVZ~ykiqfkaK9zXl?#pQ=T@r|EhxzGyv{|bug;^H!6coRNM znt5a-Vos*^_c>p_eEqr4z2~bEo&K%urZwLTR&v%buCiUR*GX`Q&sf(p6F?-kZF~9h zYLB$dGm?}xo%Mo>B@-H5|E@HEspT_)G4S8swKFE^4wwrp)Yg zI^Ex$D{DK?=Y5~sCY2ZwL1^}7ErXaTr~ox0T9zB^$}eKu4k8TNPY%j!?@Ih=hRm%9 z0x=s0L4jPpu5VeDwnt2tTcUU8<8h@y=Uv6U<`i35Njuf_xTHdPORKa;@R2AlI7Um{ zhUUl~+O6c!R2^Cp6Iuz|Ntf;iAJq6JHDTD;yqXpjm`fDA7N02;vPiRL*@pt}`nNnf zL@w1vk!JEKj7M`moNajNo`$5U1cr(}+B6mvrR}H9u3WXv8q}ittUO#71I&HSDJ4`h zm{KS#uYz=ZYJrEl53l+WgPV;uF0@3c2AhcfQr7XzX>Ma|Jf1Zz+x4`Cx!fWLAi?s_ z_-=B{!5X=K4{LFSG>2JD%0r(t`Q6@~4sa`6VW}jdls#Delf?aX^2Vs~G|5uEc0a64 z$*A`0p&m6V#+4-!zyzeAae$soo(tD@Lr*niV(d zxPeHNP^K6|G6Rf57_TYaSb5IuxVE9K4t17@)pS+vv(l0+EnODKN1c<*O0YMx!k2bR zRI z9^IxKAWLX7S1Ce83u$DBQH4jTDmvpSSZ4y>jHu6vXuk^lvTmh0X{CTAH@L$LE7 z7$rSsUO9$x%e;w(n&DX9Q$b2=ZMEM|Q5#^SVHh|u^Cc2ZPpIuNVIw*Xx!fXAoiJT{ zV52K@`BUo&vc;vjOcf{f(K&FHI&Y>i-r#pB^JrW9NBMIb*qQ@{3QmNaIZC4HD291D z`^XGC>sI&^kwPDgQBBqSLKqwpdUOhbr1~`jeS<9>>}EkUGmeFt<;8Tenyd}E!t#CI zUXSBPI7&wTwwJGCGt(O^yWn6_$>C$$R5O7xIIy1F0x=d`SmrFclMVXb<}3w!n@#HE zhAgwlf@52I=Z>{vwLHa45s%eiNrbJwfiAW%WsJA7>N=kQ7Qse>m$g4k|){-mL6rmEm!NIYyfk-Il* zpU?a0w8h-Pv&uS(tbPin{iZE12KJakvJ+N6<;xbe;T@;*K5G#e zJI{Xj%U}J`1Wp&1fAequ*T47M|I6v|R-b?U`pV#k$Am6N!VzmTf@i2Q|A%K4B=Vwas58^=&~ zxF}$dkU%$tKv!B4QeVzxU)Fl&%!fI~eBRUGWEY&)*=O&y*85!MWy~?h6eYj0+V)jy ziFIURxck}ZG%p`snq_OKj4E<3S|?y>IWn{I;oxWQg`&GSJNMuI&42c>zww`MtD*08 zU+ai$+ePN3Tus+F8JkqGp_0(+>znKAo3pb+#4+ga0_I|IOu9iZh7^^o%Qj`+M`Yr zi4AmQv0gftF)PDTHQ_FGSRY)6;C~Z8R;{}!$qVbp%s`;)(3PY%C%K1N#`*vil+r(z zg9s}BqsbLe3jlFN*@#${)V!GhdPrsXRCVHo=)52~YK283Y28)J8ZC-D;|7W67Q(WL zXkQfY#GHi-xCVAwX|+hdGSxs=0y;D2j1vN58^vfjMUCE58sMcW)y*%=%vHFiDve~9 zv!UL0`GjfEL_si?h0Qp@Z1nWff^`uka1_jtc}Xq56hO6yG%GlL@gVm?MyC31!Y!ZDwX1X_kr;Djdwr z$dj`9kvWiO<{SJlhO<|&6$dgCfjq)aZt0Do7SAZ7bcO06(B-mhoXlaEk-$`xYE;ju z`xXjPS9((5ijXNiW)U=))l~~639|7Ba zj#r{%Dds|_oN1?74#N!?1DmHQ@1P}31R~hd2}=yG_d=8m`>K9)Y>-3ZJK2?yoo6t( z`&clbd%>c06hjkEL2W_}OE4+p`DkUqikJ{R$hJ*(p*lODin0_k`>4Ynm8Vt8z6u*i z_fh4};<7MQl^|C8XZ}uv86}8VR%{I@taNE+7KGh3^8#%cMGGxu9=a1(Cq6(U%idD) zF@~a1u@dIg%i0cyYz^)R4q7#{p*95Ne-4==*>Sfmwe9t~@WEm;as?xhTLW3>e= zRue%rkt>NM5Tc;ORu4qfB{;Z-ASg7hlj)pfE3CIo} zi@;~AuQSEfWn!siD-N}rr*9<-h=`b$c}h%lmloH7Hdj)9Avh&6ma=2ggr(varACCg zJ%KDiGv)uQM*|IX0WDJ0J{4BOZt0i#**qi6JS@oB?E&O%qItfu*F&N-rP<`|O(VPP zSCKn2My{AM_g^_=rVZwuJ6j_JqcfQm49ixdY5X*j<=P4eEKXLLK{-jKn{`tfw$82wKkl`xvW#igW4_uar+Ic z7KwQEF^V6mR&rBMhv|@lTh(_xOVuu6ww-3dS!pO7csP%}fM7XYvO+>NkzCBOP;Fl$ zv0KbKRbtGZHe;Yel9b9Mx0_hg4xCIGkOo?r&2Px5Y7{`Y({-nX&oT-rnX#~S1v*!0 z@vQ8=;1-H8{+6+=czJMJvui9hMU;TEyXBm2p0kD<^NI&Vzmg#~=$aJ#i=0#=v6y)9 z;9>oX>qu7c@bL2Z+}q#!NP3lt#PN9Z@?U=S$tN#TDukhQ$AEkHZ+`qIf2Ausk7kwf z(T1^YY0dE=d$v{L5Kl%%u=Rf-pe*iH@04C{-(!mUHQJwKL%?xXfOmOcKv;ojv&C zpM2`Y_kIZCeEgM5kpSlDcsf47t&Ss`g2VvW&E{+b4EOIpeCFvV!);`B=?<=z)F^f^ z(V~(ef#I~w5rt$BX*UiTL=)I@A=&((G0!e;*_jTSA)`Y3dc({Hl&Vvb>)%j2D~@Gr z#~3*?BXW4ZSITcLXr?QiZG?e}(R)Ot=_3ytr#QuF`o^n#wrvk@a6DcOMTv*8*a!drl^3ovx=q!%G$B^<=@e4X%RLw^ty}4Ww0`n1DI7$s1M-+)YofM zFVsr2Haew}`L1}E-Rl)9F>epnn5?$F4`^4eww72opmt)GiR}Nd~?2C2qmeiMos@? z7@8E1t8eni%|su-4ya)32Wl}3m*~rBnGtcSus#sJzeDgkfupzy3IV&Ksra?epbJQx z6}fhkpe7xP9>byVl{Kk#f(Mkd*uY4XZ7dpow&*z>6jzT)9hFJ~n?+S##W7Gur>mI? zHzaSlA}LiYT@WeZlQtaYei)$Kbd4pBxYcS&9E6hr;@a^F>)IxAFyOP+iqAkn4hvzyF||9&?iGC zriqDAD2&5SB-wSn(biZWCgtp_twK$?HYavx>blCl9bA7Z#Bt?f7g8i?LZQAe{@DIgMh{5}RN783cTjP*gXAT?viNpx6o1 zm$ZSn2o3Hlv?Qv);k(0D{J9`Zr7F2DnU;_LRbJZv%mQGWXhlpqstx5S`Rz!B_Q!X@ ziA9D({piTXfNLrkOe$yb84M9oiV2E$ zX%Tt^Yy&37#%>LDN0W?u@io3@WowLu`fu$T#11dw#-7h=&5ZDLFuO2{I~fKWuX62^ zqJI^Ds&l+XsmA(=9#)clQ&bqCnC?0 z7;NcQN2ZBfQ@dLqIQRFlo3G6Uu|QHAdX#`*cVEE|_DVt(QC zpSb(P8LcoH`p!(8X54-1-A_IBM*M$$5qK$@ZAw86h)~d}Fecq?PU2tJ$D6Y=pHf#4 z5*-nxlH+RfYliId0ogXt`t&MIHJs+@;pHV%elP~oJjN^0S2aaex1C$we{g!sbMMzo zy1$A{tw*niJ3Bl7;DA79zxW4A;bpPIW-}XK4`1ZHH zKHQNfERJyF(r3>5 z_a5pxc$&F+_6b!)qDNU3nYz5$z`e5kv%~ghfAX7ee)IEBKKV=^fxmhnj;9;5W9Fga zSXrVSdT7NpC5z>Fb3D!IK9V!9tWgdQ2Uj-;XyVI=(D+n3U1ITLc)@~Qh3l+@R0vzu zq3f&5^INyAL#)w$YQGk17^ni6P#uw1TlY6+m^%l`3(>Zn_eT{nIeheyYgBV zATv7!Y(0++3zdLz`~PSLR4Y0^~Q;pX8$Om$$d3e>_k0Hw+8(00NpKxU4A z_z!-uc{g1Oti>+YK*h&qJpx-Pe1lcp{n!z^dp&!3w-maA#Z;;zv@3$G1Kq9ceK(Cv zLft1b?})q^F{w*o{pqEryiQS5#|FBTIPK73U3 zPCbMfY!oTce7GOr95T%`QYFe|=VUEo&U%G02E10%dx%gXs2wZ~qfjfCdwm9VWmjP7 z(;PlVDjiYHtk)h%yI3em8Pt`8o0(ytr~LKmSK^$hDS_VOz?2hq<4gCZRg0Vt?sTEi zbr)OT$^x@5oxYtGRKydAE8fWt33BBLx__pC-$YoT6j6i$8|>ED?u^5ov0eCfs515# z1L+aP0*K5T;L7mO?3zbRmYN-2u;GQX@D8zKlwFgZu%rTbx*nKMl)6);ZQF#|gnD!hvV?*MZjgFz){ zI7Vg!ZccVQjnip69!EsY4K%=PHI=<71x?pE@BteY%{6A`DjZ~%6hBA6 zrqb*h+vq-4tEB?Rg3IdY^~4!7o8-q;uS??vDu?owX^NG9!6@v%h7NVoYarx9kCajB z$W}7vnKNV3q!jcT$=;#kwOvk6OktHhvNzQ)C06a%)aFViH2QXMuj$sUvqCqRm2IRr#`g?a0`} zg2*aHo4Iekrk4sQ5Yz;jq`rgtVdbSYD!c+F=$#tfR#Jpr)dy*&S@LyEr03R8C|(Q- zxE^LB2|@8=YwK5XD++-kD?y$1sF|u?!Vh5*<|%;RehYek+(DxkKbQ-aR3NinKt9uI%VY7t^4Ejm}V$9n|rson=V~)&yo5 zJYu_0txgYF0aAz79FOHaFtJl({@jYznuf6M7huUr3$(FbWQ#_o8XzT#Unc>u?k!7A z8ZL`fX>VrElJSq6k#pv0M$DKIF>^-D$T=e>wQ{Y;hILAW9ZHnFeYItpYS$4mpIoK- zB<&IEerQ;jhH4>G6*LLluqM)3qrJj1t>kG-3J^69r}JP%a8N#32oX_|9j&bEidyqp z&^`QG5wGavRf6Iu?V8^jilPGI45H#AAA7H}+thv-K3$sxTUbh0S-R%kP#AjS0jn{o ziReRF!Er6$uof0>?rR0n;djbTc0Gx_1`X0C97fv(ALHd$ULme(!^Tz; zU1px3R?@g=1Q>$QC9Y(h zLpDRW{A(rY+sm)Kc742QGhRA408DdiX!)s7kqU1Z;Ai6ggZSVN|NPn61zz_hK<9N| zWhL%Be)rw)`QR(B+`oG8mxtkUnDzO(DMx7{P`2^*t&7a*3_KX&wDr_etPov^Y{xOi zP|-NaeYlTt{@T3Z>om`}=Jv#RM_q_U+r5bLF!;^^vwBD-7ry-$=02BxJKuNwhn1jI(?9E^ls*eP0#eB?>DP z1-_P|D^xT<`=G|m$T7g#=3n^Sr=ETD3%73Fe)KdfEc9F7{OW73{^=NlSsuNt>^4m! z?O(}qpN{jf+qW}MHNR!o8Mho@|CtJ}X%^_Y2NGA;*HjeM@zBirel2>>`jI*3wrzdf zggh`{?d3WikCiPQ4i^G3n;Q!q>|(E_^f&k^#JEYkeqj|snWbeKVunda#T2VlX6<89 zyyxkrpn|?FTHtj=Xwb>+<+sQ1+qZ8yb;H-qRavmY@xg~OTVi5HbUBj7dLs4s7}?KJ&Gzq>D&aVPpv z2u&17P|qfx(+NiGAUIQbw$5e~X@tBj|5c#oItM+1XUW+D93x%p5MpLSy%9t=Z4BAQ zMHH(?2n3TgByvhYEXj>lTVMAZbk|i=jpSZ3OCEop5kRyvGnP06L$*qFc@Z@a)D~Vr(~(_aA~pp1(qc9P%6uXzb zG$30RrzO%0t6PK=Xa1Qg8a6@iQS~LTZWhc}0O2c)_R{7q5f3AR)$=bK|6`Aca$s26 zoCWjSRA1IRcvkYAz4FptbrRuf_lcUN)_1(N1uekEWv7!&FwAZiTN z0}SwOkV2?UXMcgF$te2by!OKEBB}H=P;gpEDFznE)5J_a9xZYx)2ISC++rIz+fGgu zX`->tZkZ?)(yV5{NU%J!h+r-fg=hrovd>{cCELfRN-kz-mSqV4yX3cNq}`crY2!t|^x3 zVnl0vG~to5aYoVy8?@`#B!vl3!qUaI&9-NC#k>ua^gk;xt`b7d!qnO$eGQBG1KsmW(ast>&P;IRX8{r{Ld3p9o(%Z|9(6!Vrk-i}$rFcz| zKvIDb2{^E&Z)u~^1eoOvo>dxZnFX_?I#-V=w4NZ5OAW6QkLD;t+~Vkn88mZF^+Vkv z!KNml3sePwO?LPe9XPPm9n@CKPp?5)s^_wu zvM17t;(xoaHZ^5^?6hFsdO{{fu@|4eHE)f?}6_{bKhl6MGrW=1l;G=^c{^{p4?p<7*87C_Y15uJ;n5X#O7k;=I1bFo8`ug&7fAp`0`#WBEFMylt zOCQcLCG1Tvh3PuiE7#cuRfmqp)9F;BrKZG5>xoU2CWD1xC~s78XgRp*X&PdCP($PD z^12t+4RS`%<~C_+U0nn2Js1~96%fSJyW)(%{+bEuM<9m1!v*10*nu31f_&4HZ>a ziBwfpgUvZFA6!EHbi2{teW9oyaCvon&-;Gn$)}!K%ewpT3-A2?FMi<l5^|5MMs?S*AV0T|BD&Oh)&Kk?FEeA)8;M!^TLlv0RK@nj!;BQsoHUdN2# zqXf1BEn!^QSy9c1v9vgsoE&Xl-&wfBVHja}c>S;w8LV{$P`;48X1lmlKg`*_RO3Sn|s2x zZOhCV3NLLJsQwi*C76y5hQ++y;I-Wnttqg+ls&D?~KF7eP3 zL<&SVrtSQg?($9990caayF;1;uH{MjhzZ36WD=5CWMxo#(nX<0xb{i=-!AwwVA6>wNL87Y`FMZDIcWEN^pGv!N6gjX7?xTLl$WM#cm zD>fRK>Y^1WL+OB>VoC~4o#ca~i6R5Gt#X7lYs?6_L{83Yj)oDt>b?)|BPQXe;m%5e z%5P$M^p1DoMaYi150n0SL7#@KX@qG^0!&ZNWzX1AMK~JLVI^xBiZb?1tEm%Jwn500 zBF%jjh(EdHK&8@WmK+Z^V`p7?*^)`I7>}#?S~tqABs4;Fae!lza6F|2RrZ@81CLG; z_;D<8W`5>=ZsTCS?JI%EJf3F6aULILK0wZ43^66iRPp#ikt9ZU9F zRD4harV3=K#I&xx%DJWD5U?3`ns%C==^BKT$aIH!97b-V(uoR`p_Cw)(o;fyREq~J zk#mfyP07TP7`pHEn8Z5w86HPt)I}>&bi&#D5YU|O6b~Xh`C)Hs5z0cv-XeLTy&1?I zVryO!081eqi9m?bpKYr~aR6(SPburTncHyNN&+q7qC~=StOml2F+iWDeYvuQ} zZ)o`y!=%vwM-v7~Mn*k2YR);LC%t%2I># za;6F>umMD6I4a332V7A6#I$UprWgvPx&xKelC$r!JzTPZ!)gqLdCdV<{JiUKLz#W3 zl9!z|88g+@%TwNa<+ZHwEhn#h$(kJ0A#A0wYCo!VG*@H7?Gu#6i!lD2awBh6A^B0es+_WvM7+%i{`@71&ov8 zsSq}h#<}B*4PHzH){?UzWP-^$ZS+|iIE|D@iwuXs*f!GH$*wPsK6fEgdqE<}`w8R{ zhY4y6Ybg&MBA`|{gcGW?obu_VCh*wR|2DUX0;#8x4+1#GTUtV*tGq9;7~PZ8)n>sLskWGcg`a%uYYMCpL5?HKDhttE8jjly;H?!H_m;BDn={b$NZ~&PB{jL9k|=(JRQ7jJ!^B zR$2rZ;9cV6V~d;V8vjPe)_cemYd2F?4uw;^@XilzXLmmPsb4+6c$TbDZAR1afR=5ncNun;0i*X@2fohB)1`3Tz8HFG#DF!Rn6?|A3C-@jv( zwkPD*hkoQ^fAG8i+mlb+E@SNQr|;s6pZV8+`h`#Y*iZb@#jV?&pPE_3{QPJCpF6ia zyM3%GG!VwCta1!5@>H3n(~R@&;1uYnK@rPa=*kAeRH}28J#KwxgA8hBnvXf72kj8q zX4vIQrwXE4MT$qtD7#X}Jmv8wu5Y%(*_}7P^@Y1nKJ$G)aO?d1)={`}+Fz+@y1Ng@X(70Q9N9s> zLQ}44h5SC}5oU+&p!3oIjVo`?48Q%@-EG^@+Xw}m%1kQ&h?u9-Y1v6j*OlqG1SqPI*^1RFU60RCMqc3p*;zh zkKqo+eu^W@YMJV-x-h9s2K@ur9b~h}+%$94lIcnrvduIWaz!W1c-8aRyW5}*fDT_E zfI?P;DF$*Cl-e97lTJ!WM#-5DU6LR)Y$iuys;I~+%VSwH3mA1#KQ(q~4bi0ju9Eqz zAgCu162z*^FXhIBOk`B12eaK3?i5k$)W5~Fh2yDvpHw_tJf3E(W+sgEX)l(nCdn>Z zN5@xg6{8#5AdIa?EAHZb&O~4$s)d;Jv|K+}U5KoE2xKW}i=8r6C;`o58_x!&ge*|; z7cj|AsnKka;+Y~qyGnT%0At}kg-DF-i$#CCa=gALtO0Zbh%_=GnR-5#Em;?yd$0x< zJNLzJQvz0LxDG>&bPfsXRIN!kH&7CZk)G2%(+B%F6c0(_hbd*G17~JuJ`O$(?!(z% zXqhojr^tCaU1wYwuFPgJyE!K(cO{5w=mT?rN(Wu>Nzw|5gPr1k0hVFZ?3R&CWMbwN zSnRfB<1;fh-$J5fB5p+1AR0r~+&>}>)%a#gVk@g;N1>{736z~QaSBX=Wu$(nfQF(k!PK#$*2^r7l1jpheN+-G%>1Ur_{rol z@fH=P=y21}sPJ7xO6PPix(EVa>41;Hgo>Dp4O_KeLuQzusd`+R0j|iQBJpv zjgj7%RB85i0+s|W8AsS!2mr9j0E}dmWC^4JsE%zXOB(4F;a0_W24@I}QDp+)$~E&a z=k7omizr=kNb{lKN#2;AUFc62mW17O1XpGUsM*6QF4+q67MEEk0lOEf)iL)>)HIe{ z@mIl-b;hJJ#*?fm;5^02F|Q53SWzxg$dh$M#|>q}6|yGw>^)1$*;}t0;it@)DG=6# zvgw}^)pXBZ?|SBlQz9b5NcWKChv4kkSWk)?(sydbS7-Kl+2+Ki`j}O-zzA#;iHw7^Lj?a( zdj<>O+uyF};d-SKNX%5x5e=QFT)Ju%Y!1S-Mr^KB@Dv(j8F%59W^GB3)OD(ef>=HX z4M_%uhLJXy&%|I18Cje@h#AjHs;jwc-%ToSn<74Du9Aa5@PPcXn~Udf<|JjGV#X}y zPUf!JKk8W+v~yz?>4NE40yf+Y6oQ}taYWDGBlgPWsR%L(P^;HjSePPjMSKuKiq5j+ zjUI{o=&HQJgK>3rqigHB9o1eMH`mkL4%>YBJ6{IiV?6%&mc-aH3+z@%8_1jE%@2Oy zV`Do!5@jl=t~LRJh@T*ir{iD#hIru;#>)&C_Usj6^F|<_tPw8_yqFm=KAdHHd_MLMKeA;b1^V# zW+E3NMgy=)>L*jD*nC`GT`ye(Q)hXk$bYpAdGF!HFMRZGdd=Sb>%PqJhG*aW?3;h^ z;cK6-wr+PTY08`9)k`mZ?b&DFa{IBzU;fUw5{Q_e{DWV=ID0sJX!~gIp$dU(y25bF zIB6&C`sU`=#o39GN2-<}gloaJxx9d$F8dyl@1B(`TwmP~(yX|~#7ZkSh3Z_$-K$v} zd^40{NG9&zKR*5Ji$C(=4;PtEXD@e)gqxe|nl%2$pZ=Z8`+s)p)&Z;-D%}MY@z}^` z77-P}LgDW9&GoHYXT;7LbfU*pSQ0zTq$uYr5(sx6!;^g;gb;L8gw84ghh`QG_tWu+ zz~OL~i`r~4BVmWbnYmwR&f^XcuAostf=psWMC9>!+{QM1M9lm5Uoo5R78y4;$BT;# zrn<1P6r51iJ?4TM?*stu46LKT2D^3ZG4pZQ4#%6TknP$bQ)o}n!B73bHry!)QzpI2 zW2qe6_Q1FGV|MJ=FsWS6mM8{S)wUR>ursl8hQdIWD#;4&fmWLaQ;|sY6kUb4$pSLa zNrE_`smfv#jtnhnUu~;W3pN#Rt7PIDlx{sMl?Dz*el?i8Cp1$^92!<9CGD;4K0n7hSKqZBnK1EaVq z3?+DIOrf(W#mdZSIitiut;0lSItP3$8dzG+`MXmRK4t^JHJyMDMzt?8;D z&0{`bM+8MMK}aE`f(jEEuID0zVnJ)C8`KqNIlXD7ZX=N``ikCB)y`m;UHmKqEEa?k z+S(LVk`(YAc66@F0G)<@!Z#fhjHJ_yqnD#3p5RsN?5q_Fu2F$~- z0qLHw*nEzm$zMtlSDjq8i{LJ*!}ugSy83h6$Epzq=LE`xn5JU&WspUj)2I#Sg@ZO< zU`FU+n4_psaR}oR5-YDzhF-!a4TQO>c66xa^d;}IctnoJ?fEewDUDBU2%d$wK7;5+bna=8K^m`Yynjr4d~*A_1M@HDA7TQDkDqS zW1YI(0|_gtM%xTPQ4wI~LCU`VvHwX(ckfiwSn9Rl?n$m|)p#PqY}An``rabVlz6`q z&f-Tm`p{b=M6KKcfg}O)Wk0h74m#uE{4xoFS=v;gyW)_DS*WO+n~&~(q)>%diQj=L zby!ucBWDRItkEA;M$XDEj*-V|xVD%(CoVssWwR!gXdnrD*lkx`j&uiaYA8G-QYBB3 zHT`i%Vue*l*|PKYTmx4)5)@>J^%n907*naRCZj( z+gm% z+2+zLOCo9(=O!lsph#F7%liM*X+-*IR$>_NIWco=Y3H!BF*f+{k_812oMMOAZdwEJdHpnc9JFSiiRPqrg;@Bb(HD|ZAeyWjg=nVDL`%Sxj*v^FVR%@ zw$eMg`;IY()>{R-~Qvv%MZQujn6!JcWW$%^=(rwTch4g-=RpL(Ntnn5;I$80V31YI$U4f^wCsnb}~_0B?mr}YaPt&@yEuO z|NQgs{r(^R>7Vqu1Ut1>&Ii<-1v6>)DQg7ho5=&Ee4x&9&fIH_v8QE?egr*@7x+@BlqSVPzh=k z{J@|>11S^NSJ(0QW03NfL0aH+&9z4&9d=Gy@cT0C5ZgS>{Oa;*XERz7rz<) zo!(U?$NGlYnSmSz|}L`v=Y02*WU*0l&Z*aYB?n5Uzg zjl)?`aK*Rn>~J{a0xlHFM8_*+oKF_A>6B7Q%z4Vp2M=ELDgwd`cD%m2IKNFqn1ODG z5QUrALg58>m={u(H6-eAc3w9uijcmJY@a$~Em@+X{H{AP=L}L1%t;THwFRes?LaPi z$Oc&TXJ!J$J58tmQ;xtWu1b&I(3Vk@xTNn{w&-`tzHkxk4m5LyMa()vOi5);SjXYV zV6r80P{3?ZWFeRrxEG7TPy;C%2CYq)#=N&DB6b+oi9yx>1BR0ta8#Myg?uYJA{UK7 z$ymrb0HNcyK0G5iy^O0M%JaA2LUZx^bG@Bo6_BfYThV2-I|tzP>`(&KWN5V*E>#LH zWyCyHDpGL_3W)^L3ui2dATl^<2M$m1@QbKIfpdybDyv`J`h^{VpvI<2fy(O-|ZLW*1c$bFm$iS3uyFRhcw+f{eF@%q%ZP>+sFl1K4eDJm5pf zq1CK#^U8I3TgM0hF>{6mGSkVyvXxu&t zZ|V%NGO1xNH!Md|((DWvf|weQWhu`KJ`-yImQ`jLt|%g3K%7dL39SnR=1~r3%Le^gv`nEzGs(&Q{z7+DVs9yRL^VE@Y!?Xlt~Btn8Ig zeo%I=|FO}fw1`p-P)idD`31srXWBYJsOv7IYhPyV$Xp3?8`q@LT&??RWLAE?D`5(V z6R_`s>sL?*BbX#yhsaOO%^}nQd71j6e&tZT$`m1&A(g2EdHaPQs@IjNaFU(YNpHi> zDa+q!`6Dp5fP;Y|Vpl>I%K_15jscMk+dinYhRE6R2M42JbUmX>L`66D-H0W9=&C$d zFjp{ZH8zt?gciJ`mq~KFg)FXZ2yKS|R6*9Xl1&H_%`;;cTbgz%7q?6Kje_~0AuXZ` z$&FfbHObO!S6wrFc_>Y&$z1`jB9q7&^E6|gA~NS>CRt@sv~fwlIay#s4o(C0Fh5{8 zY?O|;JI2_C4XfBDd3K!ZJ%MB9DKc-O;dvSRQfpM?h#&)jmrkRrc_lmI zq`7W-|H>A!%@hQnK+)?ilQlDhbq6iYhbhq39ZMd&4&Nbj&ET1MLt+O_HOfZ536_zl z*B>x5+q#xpej-TWEvw}V_{@Z7vP-whjH9xm-K-I;fdGcA(1>P~=)$z9;`FHUEoKJk z-W>yggKo=KNP!iZyvS|wl$;cztk6LboAMm6dZV_@s(bcOqfEfvPgkd&nyMa*OyI%& z)4SgD&h2pa#1l{c#n%t>^j&q`%lIH^A99vMIiB)8@BQ%E;jE2n|M}hTeCxM=^B-T_ zdScto&khHeogeVq|K@*r>h2~?%?vj5@&%?YjW!*T&OGPLv+WR=V7Hrbl403Bd4k$U zH?Q7y*$4CwvbLE%PqT{$JR1dA?HlyH8zRe){E?zw^{nZ+QHPCw}55Klb&neff7k{_Ao4+O2ap zAsqtlv!frULKawpCHQTpn~6|Kuxw+Gwp3sw0Ce@%bo`Jqxv~g8=R6*djlx-HU1~u{ z;NJb4pZw{+`@|DZ=WZEZheWQNDe>+XKm5hd{hPPH^T)pT9WUOxbz9hL`tY-H{{9bq z^p8LJFD}lucE%08(d`sfXAhJc5XQFJ%$wt}r1+%EmV%|%HVcxI>FSxP3lOKp7&grO zcnZq4(haD$5lv9cLd`VwL+2HE<(2ElpM3kz{^HM{pWoVnb_=oFM;)hm`qoRIfBMM- zijzwQ0d`BdJ8u2IQ#OzqhRD+_c|PiDS_i^Vr>`uGl9DwFB}=(158Fm>YudsYJ`_QP z9-$3sf@L1y=6E_E=VLn?hr>2Tt@ILkS>WnEjM1CRH*s`WW+pB#A0ST{|=grOa z`PunyL9J413O(-^NhH%mCSrz5=JRz6`UsZP=QwkA-Lckt+kD0ZFe6M>9^UM{luj&< zciH?^Xjqqpn80QUc!^lEBwqcaN)Wq1SO>Zq7i@-7wbifJ8Ca8;bhwG^u3UO4N25j6Snbhf8#?(na~q~oJdme3Gf&J{jHG3~O@+d?18|x0M#L@L*OxGDBUy~jnJPSz38T~I#W^$+U~J|^E76IgUoYEP2RRf}7E?7! z6ST83mX@nI5tS~cutgOGt#`vJmS`2c92JS9p^#K;VACz#huKVI#7*V|PQX;ERk)Ps zEe6#pvj}2DSF2oa1J$pjQvgFo}XU<`6Uc*P3v{)|PH@BMCJhrjPUo{|8ww1aC z**#4r?X&W5k;Zf~;xx@Lwu9}RS!(s`S=>n{DWHp%#j}L!#b9e_)oWfP7z!rRE1s{p z1OUvUl!nw6$UEC})1bD2A~*_miO7g5N~DOCMFcw(j9bYl#K$1#t`P_T?tphq%91)N zK_!c7r(qnNM9OSe#N(k|Oq&Y6yfwT+4^8MfDc0!5i*K?g({_^w1$iYX^rKi?^@0X} zU8z@Q&ZraR8U)tS7I`!*IFUJ*2KN%jDa&Pxe1zTYmL;5xy{(BVyVybKBujZrQo5{1 z)1MBJ90(@t%IK!JIt&>zW>pl)jQ9|5&x}BdkBI4-vV9 za(g@Y(sjOS!FuYNtw>5vPKcuV(P||$;oiuz8$i;Nb^@%ZSAeClXs1`#@yf6!(^Lpl zqVuj`xf=P~%do~)epg7|KH-gqRTugUhNQX~YgS!$ZHjeT-`!C(5{g1Kp<;{@aYH6% z!7L%Mp41~2;gr6wrVOe?Gy_qHzavi*wjmB#kTr(c2p|z*Zo?MvBq~c8@dVOyU~FUC zFx&u4FgC1uNi~yq00PaNT^r4X)xqI4 zYyQf5U1kquz0Ht0CI7_vS;9Q|f)eXDHalYh-zJP{MVcI>t|(W&rn-tYdc3BDAkhPk z7`H5ue5rK1!g}_;jZLQ`GNXjxST8ASqK{Fwx`HuBW=ofnGpMr#ifyU8zk(vH=!-<) ziu5uwb9f1LD^0@wBzMD(mdKm0+Sarzw4Z7!8S5n3B1L!ZY+wB1XI^~qKY-!2`>)=< zg^q$LomI#b{k13T!9#!Xy&rnSJLv1#H@@ZBH@5y z)KhN&Fvj-$+u!;0)6e|NU;Up>m*0B)&cLEzGXbdgn4B!>>hD@~&g1cPcGv>bG!R)t zjTM3>TacK9vLVG9YPOXA-!V=RbEWI*Y1JHF%+q}4&ENmzQ_pmAyiQ#Ixxb6RyWaf+ zU-|Oq$95nx_2|)f?zwlIPCxslFZ@Q~Q~QtI@ef4wS!s8(5`c`jzPdS_d1N@24Ksx< zoJwSm7S>5qN~z| zF#zAjR_9OEbMYq=&;!;nlHqb6+cvhb4c|6*ucV|>N|0)vO8k34Qrl66FEnTcC1)9P z&UrfBTpfx=rq^({>&yEEPVE?ll}HiVQx+k=4RiCb$gERsF(Y#h4h`Jnse99*TtT%! z0Aq~E$edNDsbnV9YPm`zwTaD5UM&bbz^)#G@!$N{e`^=b7|hAoT6LXF1UR=Iq%pS3 zFd0PReng!rg?0047}iNMLa2(bc2ZCZ{+NK37jiRoW7Z|`;pRCrA|hrM*9ons=}cSSmKICc6qm)!$yxhp{}D`t-h*kQ2&l5*nD^bq>-s2}9LlDu_&hY=Vn; zA?a&MsB>r5TlAr${|5N7NM=oA(S-DsW(j~@(Pf1UTI$s2VTIESZtgyyVY=kIDqAs_ z`(`Dj1O@lHSGLY;`Kd7KADiTyN2R+4_#m#Q=!{q-xT7p!^~I1{t_u%Juu%(QCS_L9+*6ErL6ge&G=jjvI4 zKA88&@m1U)t7Z7`zN0C;%o8PEXijxNvw=}k{zYR;wh>{t4KKvm=FT$|m^Op6Ey^UN zZAl$>?JyGyYtW8qP2UMcifUnKOX%jE84*?oSTSx(UBM!gf!c1i98W7wVxt%8{b?Iq zM`f_q6l6oN66$SLD#!~pS(sTO`k3{Y&KakAo^F@HBSDlnUy0PlNutGfu*wp$<%O>k zXORNk_~B_}I&~lhv4S(5QraTUym#H*T2NX8E2VQb*M&! zO-W{*kTw@a4BQmYME1>CE|N%M=e{Oo#|9esmb5%%tc2`mb^H+v0C%iNQNS1(ICno1KLloL8AI=TUo9s#RN!)*j*B- z!Dq7uAaX=<^gDN1^7_e`m|?^or^()`-NrgZ0WMy4PvNLHFiGAw0w~NFrA1Iz!dT)O zg17`Rnspuv)n}bp$S&w2plqO`9~sK^)b2a(;VwFCRHz+kZ-Mch0X5CFYa^=DCqb3u ze!ab1o%M>X7uhwRuJ}(iXj;#Rn2^94e_%BZuV-IT5*#+*XNk?mEwfu@=Z*mzX6L@0 z**MsCKKwAY^Ksa=!`ZfNV;f`J#S96rPD?IAG;aabJ(bdZ%^K8?$*T8b~ zp?+f5Q0qiaCNldwxXO?W)R}Pm$}20b?2|+L{@kN`ARSqER`M>(CQpz6*Z;_Z2NV08*UYil5+T9bE9v1%kzKoh0hM$+?(IKz`_7vl-1~-^U0&kB z<>}&lR4j1s{_$pB3_tD?A6{qQt$>eladBSkV4fpAEL1{J*lf!~^@m&c!rZp2>zkXK zn?7!3$8=d#2^+q1G`s_5cJIM_{O()LZawqNoBC<*-hJw=&wcOLzWUX#e)UUlc>0-b z+sysq;`TSb@wM-L$9ww64rk{tzVC-0d;GaCeesVj&R2`^&gubc_<-OS1+s_3;q3gt z$txVOQpR@3Sf)L)9c2^^wrcQ6M9{Bqj#pP#_2bT7>~&)1DPp|oM}Pcp?9BV_zpujv zcVBOM^Yfqj5f%;5tx_I`BGNTZQR_PuC8uYHsqtOSrCxxxCj^w1U8JH z_x$)r{`R&Vl=J|=_4O4Cu77oT%zo#${@JaIhg+BFYRs3%`j&^cIWBC;e0#0b#`|9{QR+ti#z8R zx6jWnw!>kJ&E3FSuiPTYH_Z0$xeM01_@~dZtZU-tc;%RT$8LrA%n9GN?a*by8M8Dr z>NC6!9j%?NP`2W)>+8!o=izX6eRZh;t%|aiyIED5I!N2t?%a8-W;iX}rEP8P1s1f* z4`8dZYu$b=-pp2QJmO1ql+od>|XkvYGL3a zF0?S362;zcg~J&T*R8B%L}m>RNB~g~jM-Qne=DL`Z`M6h%mb}&O*hyixeLlF04ODj z#-8YztLf)x`7~@1$(Ih{v_S(Wp4$& zlK$0B)vQVOdd-+-sQ#+l^|ZCe)AdQ2P04n)R$cwLTV1X0n`pGNE4R6(^I#dc6gr^B zBCzb@vn+oR-%Mpa@((osc)=XHC z`&~tepzZCpRh~U-S`iB^!N?+QfoRB*cNIa(*IljDezb#w={y=Ev|UIh-B$Yc6si2E+|Rq;Gahm8lX{BIhk;X(s**!^m|Hz{Qkq5a-f=q92S5elrv zTlKMe{rU@m@ zJxIFx9TGrJ2-phDiV{8P$B8zZ7&HoCXq0yD-bm}RgvA)Z!Sdk4Gl65|1l(cgK0K?& zK+Cy62xqadpiduWo4a!qV_mM1yE{`s<7OD}&B?zKIJmt@~F~xHmhM>sE-{5X16>6{4AA&IwIvXkVRFS;1p> z4yu_kWJ6_oX~iTw-OL9M@!}8s%sb!tzJTo%)dN4^M_aVvmg7f?!ET%AO8OTe(S;nun=QHjfz8>;dq*G z$EhRxERmL0;nY?vxT-T4!y@Mvf_*woaYWjjE`!5kSw@NSf+d`iue^Hm!n=R+?Ckt2 zU;g|%-}PQjB?AB)4rf2|qaXRk*T3?a&wl!;C!cukZQpbE?%jK@zVz~UzxCu(&va4B zY`py)FFybF|NdA1kN@%Ey)Qj>YrxbcO3^^45@y{I<*-1`nCTij22=o3QIJ7l*`waR z>{DbCY2=*_A2=S5jo{PFCHb+Z(|q-T{lYK(a%0eX$$!tE%J2Z(y8YPWPrTtbe*K^P z)KCBND3zE!*%A1jx4-!HF~0lF&s|)knIBL2^t0c8>(=9D{*AAF*7LQUrtMCgMPJ9$ z(Q#|Gd7`T-alPn^DZPl5o|v`kVUT6!)F_mB2j7hEKC49|flW0n!^4NC_kZwjKfHYS zwXb~f;lqcQm-ik%ynlUl@82yj&l|orkt`;A)YkB*ZN;6VQriJz9bl~Fra6BGqIyzEJ0Cs(KdF%F_ zg-d4dw)H(Ll!F_vYkA&9Y8_ONAz>s05J0bAou{MsAPQ6rOljf7iQ zOM<&NrS&ga|BxQ~Adi76vhQf(2;$+uCh0 zAe{8Ynt!m{GHo{n61;Lqho$+<6dj!T7#kCeH8fApMA$Uj%v$%tWKcViZlgYgqgD_; z>ZckY0wIlMcAI#(j`Pks)Zep4x+l_tK_~`C3RaSCi`ccp1yVmC%tk>tn`kO$E{6O9 zu6-#&u1SBX5E`p@156QBf#{k%kXAUF95@eYE3FwngfdxU7OnU!h(i?4EBCO9ScyPr zreonsQoPjTrVaEso864nb|xwENV_RIRDN2>K~nBPh(IP|WkqO<Xzd0E z+&4CaY3~W)3L`MV)e(q@nhUA+1Eugg9GSSNIcxF-sbVC18yk=Z5*gvOXx?EQip+eR z%(XVw`phC>zFC);7kmlgRsmpa6)wYw6IHsU$({+##aP}kV*;RvayYyvJ!*SQ>>KV; zAj1l{OwJWp00#ir7^9pwDUcBSXyI-6c{~=Aq=XfvBVKl-HqL^V%Sx$QI##w-C7*<# zFrW}Go-cz4L5p+Kv0EZNJ@!HiePvX>+!=*F^_}u{9!8)+G}1yrz_Xf#&>Nu&6Fk_G z)iGBBU**0=%5&vS-Y3DdHoBaNm~pE6;#?zdJ^%n907*naRK)4%&6w8_(aSafeGVy) zZKLUlih3my#PUL_J<}H4!+Y9Dc!~^7;hRF z9H)};s*GC4f=Y5&jnF^PE$ziVcNMa#bLdVl3N}@BV>$EPIg;@cb(X^CUEtbJd$d4Q zJC+L`QS!dPI^%LIPmwa03t~>%#9;Rx^h7j@f&v$cihd+|evN=z*`p$teHg9@b$mc0 z!JH!`b_dBiVC^zw7kGE!Bf9(4`hb;RsRCvv$RRK`fmVdf=CCPsSw_ryreWh)l^mv5 z6{*X@&2rvfhrSgRD27?u8S)&qVbW3iX11BtDDL71Mk$y;IBizBz62@VeKQ}lovz9d za?RP8hUtjSi!*D4#N8XdG)qqZV=y4T7~$`_qplTJuZOlz#*647z~PTY&P;7FAz%_c zbTF+W=ruCBmgUuT#;iIBMWEcsm~Q--hC*>->W(si$0ajdezE?!)PvBuiU{PUZU z;pHYuP9b3-{ab<>3ac6xUp+7hV9qFfDspmy<}&@fGu2os=4DR+V67=Ls3MXS8BJuw znr6#)RqnikJ3!&w9`?0G3E=MrfPkNZm&_OJ%LoF-LR|a4W~I~~JbZ9^{vAK@ju(Dl zdt^M{zaO7EJNvm`{7-e)EW*z&-t^|TJfFyyUi$OzeCu-`{>b0IxVRlLs}Zv5vudgU z44CYfh&gv4@s9AYLP{y|x171c1(wfOZ&1!zw>yJElZ|s^vWU{9yJ;8|9Nd3!eBoU` z@tzld=<4d>U%d3qhY#*Oardd$J@Q+hd;YD@J^$IyeCpGG_=)d(&wC%d_7|V}Tfh7d?%jLkU;NYm;fXt~5t!^fc4+voMK|8JaKVmtO?+I(vqL=4W~Ywr zsxg*fjLg$K&YXRU3d60Joxl(M=r8S%DZ~HI7lkA0M}O?cfBs+p+W-3ME8ltg>1SW} za}i3M6oo|_O*v{`h`79EzJoePhE%IPYQajwr zJ-P&(-?~`Y-=eznv#QVnBtnyWA^idZ1<|TlT=R_*rO=QG7WS5}tFn478jG($I638{ zlzJ4EcAAd8H(28pm~qg>)i0H$Q4m}$&`PY3;DlOjo(ycZi{Z(1B<4IuWXuzo_xAW0 z@0fU04=eYHAQYptYLGV+ZBrJjj!FR~fquTs*_~_a6007I+Lj{zWXxGOf9I<%Y>use zJIoqvoaF7VdA*sIB*(4Nqbif3GygiHm>lWVw|6;d(m@L#9!>?Nde}n1*r3reU=1sB zyUm^B18U_MC-{;ZPsp*$f2Mw2!4O4VGO>!rFpxQt;7zKDH!k{vOQ|0#m}`^C8S+T1 ziEoPfINuS5p=Tj^rxRv=xACn$rCzBIamJjHp~#ZWQ&t^+JU2XndOh7NnNxzAHSea7 zi{@$RqW)Er9XUG<)g1&|*ys-mwW)L}S3zLemLmT6uJ@`+fs69sJx7$yH7pqoBvCUC>m<|xs0fFlzTPJdz2{$D}+p%D6Q}qeT z@MXl5v1_8&G9yjVm5H*Ns#_CEz*7=AMGw>i$vp#^YbZh1Bx8E&M+RLPq#yAJp03j> z*^lO}G&WojPLy92xZKM{tc+G$qf_h7rj5jT+5xuJqMEUbdtrHj$f(i8dcX<^h9_zm ztD+Qcca3Nv{+<~z0~2|4yD=QCT(-OUfNe&B=|G-9eZ-FV8H++iN0#CXLW(fm7}KQ% z8YgHRmj!KVP3APstTl>7IyGO2dX2SzLZq00acFjV0DC}$zjY(05a=5xjA>PTS2m)f zm`#3%0NZLFYQ}rl|aNSrfym$Mj42jHN?b2nPVe9GbUPAP3}YY zmxTd7qwNARgr+k!0K9A7>$^?)a}FWT%&ay8nuOZQ?o1b`E#A|*##Y2@OE?hfX*Z#k#E@|yqnPyXGfo_b~<$StGQM(MA^F>0sZ|3g3jwzqw6{pkCD@W)?% z`Q1-G^-Ll!E*>kb3}vrXsD$NY*)4ctm1gVi^if&!H+0umpuEe26A26;;shhxJrYxA z1`3nPbcL|FOuTk4-|_CBc-On%pBd-p7f(I;)HlERwZ95Z)z|mE=l><|&0=*uuk)~H zt@r!?J)V6I&!I?jl1NIFNXoQCTe2+3mK}MLA}4{H39u2MNP(gWg7%{5MX!op6ljYg z^-a^O1c8mj4FbdP5KoeaNS0*TlBmHHWow{BaX1{#xaa-sjx&NxLmj^r{=s zaQ66p@34kvJ?mNTJUY7h?QeZ)Z^y4b|Amv2pW52mdE>Y3>|FTCkN(q7eC&VQ+Fa@^ z{i|aJK@_s%WqaIrHZ+WvO_V@sAnOaYv)O3lR(IchbSvjc<#EKSy9#dHxORNBe|U8J z_~>Y3WAmZ6KEAoJ{a5U-Ter{}-T9oXN$xn8dTT)y)@ z(e}c3o?0&a#`RY&-+8aQhiFE{2~5G%O)cn);_hp&n#2H5{hZA=4DdHBFG}p*69N&q zSSW-#p%Ya#i#m#}PWvP8{K>C8^?Mg~wQfX0%M*((@oH0iVQ*t&YkuJCgHzm zBxdFgJIs&>RNhh-ZPh@-WKM#_V339N9M zUvr#O7fl^02NsKIV`GB#%t|2{8i6qiz@n^;ZJwpVPQMwxIDU3YPanyNXot@#UW~n} z%m%8T1dui3It9zJd`!R-##GsB(=((Vt{{C;;kA(*I$45&2N$jx^a$>U5af!tlHmC| zM9?Nq)C$v5d_aeCXh(!-F?4_-rq80rDgj0}l$)m&2)zOG!s7;5o_HEeJ&D{g6nXaW zpv#rSoibR5!CFdYDS^3o4&|{jS}Y@yG7D{`j4I0|2(|1C`{;X#z~uX7QztyN%u#o= z7Jzuds3ET3&v>LC`y zKXPMI6B5W1iSk;gI4cLoS`DVj7dPexl1+&X5eC6WrDEL0M>h8xFljR{Jyq|%5;>KO$l)gp;?r=omB zU!H9R3?B)giU_0;vXO4Fq$yCHp?!3y%v!;NB~;<=kow?JNgPu}m}+J+-Fqxb(=kfN zvw})+mx)2V5+|9(l4k1%Iww+Q4Bv?GrjskCMb%@4pNFW~S`wI1+A_}@$GjaG1oQaA z1wy^z2p>avglT$q)HT$h;bLgsGmr6AaUGJcDQF1}CWP%k_wMMTqL8(j06m)rhjmSx zlJnrxxR}?V4jEQP5E3EPXB{+?6q(PtjRuT4^I750SydGtk0GJqGlLc)EEHj$@8YF5 z;vT=GNl=IbHwjx2N0C({)}}vj^c3C~>fFAR? z7&kLXXDpE=P)YSq9eY1OXZMr@67Esn1?IOd(5VT6CpC6kT^1%AkVV!mf{mDwB!~35 zObwmjanux|+M$RpFE4eo+{@_0j@37;%>`Y21)M5YfT=39i8hxdq=~zSyknY!*dX?G z#B^UiwMbebmNqJtjZMx=9gZ~CJg7!6hjqBSuQh8Z+0j?$G2t!Zc{3#v2!msRvN{OY z0APj=qw_g#kEDJ{? zqjo^yW|BcTvX6zud-9K9E(b?jAO7giw>A|A2Zc<{f#g{|?_757aNyyG-$4V8t*xD{ zt=;%->-8#*oU=VLPOn!01FXBnM}$?3-bZOp2!h-;IDdZ?b|_ZMcVz}DvCOHch;{4G^kOzrrj z-+lK3n;YBnJuTeh>I=^-7pujza+BM)){i{;!3!7e*u8LR?voriIJounSN`O|hu%50 z2_l!T+ylVOj*kuw_HQjWHjhtkFO)oLp$QC0RkdXISh{;AD`BJ4&z4x~*lqT$kJ=be zcsLh~sEqQ}Rp$DjC6*}!?=c6fO3r7wK^ z;@)K40XGW`TrH2tEe5M#a4K@k+CXD1{hf+5TWT2B2#WLaU@58)g`7;t|!lR3u%}vGF177 z;ie))G6EJ<^iX!EXeOP#K`dm>=k&iS-!VFk-K_kVg{MRtM*rIE0Sd>e)FY2+Vj|_V z-E+mu62MXXXzMZkI(^|x8H3Rl>u)+sFoGR{bg7YfinJ2FLUJgK_+7oZ=J-E%5BE@| z9!34(G8VHCAfx$=IlU`0g6;rxFc@4>!I}3k-+3H3gTj-$WC(ONrHIlcoVR%KzGk3+ z$a()1*CFm?%BYPq02Zi_7+ZFHQ2$GZ*j5FQ3=d_ERL{{{V@%TMf0$ zq|Yn+L8ec7p2Bdd=8?fOD`$eHak@g9KFPU+oV2(D^zbP#p{hlG8o(k83WY+Aw7;;J zbb?IriTD&Z!HFs|W{EyEW89L!Q_iKvxG|g!>E$ml!vh(~6yD}e1-W@uVCY58h+UdF z!=ROoHFur}#2|?Y3DsFFv-Ne-2{Y8E5vXW4v9Xe_RUkUR#L*y=V+olEW=BG&q{W7j zkzi}a;zlF7LliNgBa5C=Pl{QH75iZw-o@66mFSvoQAC={lEGvbtV2REO+nNzSm-ul z^~efD!8PPql~14VZ)uAsd~UE+#AX&&0>R!&Uccw$91&Lk}boa3>VY-=bh zI@A~Be5i-gi7Hn=!)njrRP@;H9uT+AlT;E7nug;}@=ze)lJabp9XRQ+hxO2yKzUwz zNg@!b)T!+BjK{}1LU+ED=0#Hpo|Y+_Zgh~pr3og7XbG^`h$PJxwWtvak`GT zMKe!W>E3O(IQ=WamdHCffcXp8SCiUAc1i zxE#RY!T$XZJc_^SW4&H|?W>=E{<*K&`u3!+%smUQsTRAO>{rn>HkcB0y2sp&xD7t%3a*x7)ilYXdzbwF%0 zfOTx9!~3zfX|?K?ED8JK(1G17z(WI{yT@U(3az~nVyjG!}ukFab|JUiYdSKxc@ zeGI^R-uF|V|LiaCE|()Qm((Q{GEm(8tZ&_S|3h-_4&=x7_Rfbt`j3x}4z69h`tsFp z9~{24x9iqTCn{f$gp8KoqbIQfocw)R#LZrA#>4a%=dk-+cj5}U2UOwBVBfd4whj-E z13Zm;)Yt22YVoaR{b2vv_Rik4*sNGD@<$UA?&A@SWT>*Z;~|oA<=q`D_aU1nL(ZKO+ZitU=rFF z22cEFwE@bo%mIj1oLK}A+WZK`TUGxpG0%B%GM?Z0fBEz07DmV(O0>hMBP$^j8@+7t zNpBcl4J6AI7m3-2(~=~4t=i(!V@KdWQU;r!n0K>k z$}ln1+^q1Hp_4_B-Lo1WRZ!!8Nz;^!g;~u^OZ;Wj&_a9)$|*Kg#~!(2vS~)3fl6YM z=uCMaxOCDK7)Hk#jTTH7wiM+e3-cVxc*m%>s7Ga;lVxxq68tsHO^E}rSXb>Q8BxFz z21>q#@?A>p*v(>cpSGOxmKY2VV;Ta>WIfYMMvB3qC}n~?*R8}*K;%?{e-a_NaSumJ zBSEhC)`Uj`m*4kQ5W0D-&o@tH;X-Hcm&>5trz@W7eKLz_8 z)R{blt&5xCZtmgLn3M?+RD8=dMO6br>_8!q7!4zU#xwxcs^)}2UFc+vZY8zLmC46I z!dvKxk27=18a7}*|+&vADm9BSre`I97}G%KT$By?+WQ&KmY9e-XvVHi>c z#JX7(I%AOvoQWJY4S62C^dFwkWQAZ3ua~dfp)O8#KY03nWt3y)PR4^|^{S|^8I}>H zh-q#FX+T>CPRcQlX=@xJRFamVhEQscgdhvq(83@Jy>qU)n41COntCrX4>v$k5>Td~ zdU*<>U;&0GFV_^BrRXtoWw`&sAUx4ZzENdrqpFeh(o}#mGIz40C-E}P$zDWT7{C_N zoQEx#euI$DWHH@LamA_Ll?2#m6Yix;Jr51CEG~rg#la|`GIoM_DUceTBH=CaRed}< zzz{I;h;n8Xpwp8e>|VMq;ma0=JBw}{9(qoJo5=8eb5My_NNZ%|EcfTPCNamOeZCGJ zn23tZqSACoD$>e3o0-|V_f;VR6=0mp8D`}($&weNY8QoC&Rok`OUkLN5J?@0(&JWX zfg2Y1;OQed(9o%=P%uU`p*p+^Tw6zU?ie7=GE`oPD0;|0#eFiT5h*H}=k3!d3*}0U zO)cs{9fCr{L0UahWGeEUbfXg>(k3?5RGBqTT-i|zrej@01G6S6eoFz|mmW>5dTPWl6dB`>Bgt(o8mc_zxnmA{l_bBdgRVG z-M?IJ_Vw9IFMjjZ^=EgsRbv>AyRt}su5b~toi?PvZk?{t#{A?_y+iKk(d*t0Ba>pHS+Sqz?x0l34+TgSc|KQqvb=Dtx>kkc&a}I+Q5$x>l z?d8^VpeeC-Iyz}e59gf$AnjUSA8fE}ozX18_bJg56WWWxl)SWDwfK z0ArwTiDJ}xHf@3yA)Wvn63lz6P?2uy6xM0s08^Wzj0`D3BNj%YILN7jbT5?4by{SW zzL=q{t@94DN=JFKN@^J<@edVQBQTYS07Ga=G-SNW6$z5!GrPd>;IQOUiE1m=m;?w$ z(gfB@6;eo6#IKD9AVMk06PGU+3aU|0>M9exv9nT^W73@};8iQi0S^q==9~-U_+;TJ zN@4>^e(M2>CMj{vqs~y8uF~np6B_VNK(7^6)RSLe5~brjStM1_k5oo9o^=3Zaod}4 zE9c0Rl4z3GB-3Y3q1xU*G5#LGr~Csr!1rp zA;Q|AVm8&!=lM$5n~OGVM9DdhkFAOJ~3K~#xiBm@-_*IqLUh35sBRp8G70W)nI z=Cs7t^RmQ%SIJIlC3*x$Hm7HEXvi3Ol5b~>m`b?lB}%{FvJ26YAdvZv3DhEPigA7k zfdr3+$#y<6vGXjLFa~lMIsmrjaWq6OKrRpQa?do82ZDh9=ov0}kQZG7TrS|DfWV3# zbE7h-(=d!qDBRgnR6Z!rX-05BRSZ2;`JFKk26$IyjZZqqJ7}lt8&jZC9MyA?wk5~% zmVOPOQ-%(4{n?Pi5^shA*>cKvWzZ!R{6u$fvU!}c@k3ZA-({c$g0Td76g>`tWE>=* z4X@3n6L!)J1vzsj}n;Un(15W%j72;>;64Q8bDV}v!eK;%1d6E)VafV8m_NMBHVJ2YZgdR26buXW~f@iM-h;eF;7)q$*!x)WqAWePr$&_ z>&(VL?U_YI?I}-e5zNyCNmj(Prr)S)Xg->wWqmXdm(&Rze-I*qjxDWM4breX*NGDTx?`V?cE=(#Om&P)2t1LJDLG&Vf4F5qGcPP+-#X@i1 zc=dq?9`-lxb(|RU)meYjUGLc19Iby9*WbQ<L$!+*L$zr*T0k|w4(7ue&2_iTjin_$y zr8>io+0-iDx(w8^yr2B}RB)fYY6Y8fENvuY>8;?7o@<+8dpReiiq450xWzQU#9!ji zH6e88wQEEW-3`J+O4VJZMShHukM%;iRk0IABX?(rdI^B9^MJ2Hm zHb!bs>*!i_9MYC^kE~}^QJZiAx~KFhik6lLFo_3wynvkln75Ny1i_ie*(EgXD)h+* zHs*|jZ5}WgL$^#~qtpW`Amp+mH==@0uc9+bDFe>1rVeCMhcd*MEP*=l_CUu&&>J0a zm8Lq8l_=RiC?g%rLFtK|jdCXwk4&dDC4s9!f?HJ8)(YJ@{yZb4%$G8GN@1ONP_3Jq zm$1kQGd~VuN^y^>f*X&jp#hqj`WPII+#7JO$0#Cj6A4R2&AcfK)L`6D^qo-*PcS+L zBM=CX{3MTr2!JMw_@iz~c2kM&#aw-M`XsRi0@c=}5wWXF=OPF+IdhD}!;L+yjlcmc zjpWEV+`1=O)6F{xM^I5|3aAZimn9MMWacm;-~uR!N+w zRBX=clyh_hlP~jB}J-rY;17POKvx1}) z`Ygn%t*^7l64(%^l5kB@j#^UL)H$V7LJd8QK%9IVg3}rOGZYYVaTSmzD&pD3OW`mn zjlfyO9Y9PC7LmY1op6N!W&@cLHwph6BV=HpZ<^(tRO=85(wR}v6U1kWK$x~2tY{YQ zQ(`2EXfvXXWgB=dS*NoFjT1{a3&I(&LGn@0f=wMry1xqf!diNiRF$cjm(V0DFqmI* z&+*q5Q1T2%s<7Loj1ldxM~!+`d`?fT!dc)D5+D;u3khG(DqP+SR%3Z^)Zr}!>E}40 zmVbh{pe4jykm`tP3a-wCt(JyBRersoE>vJ21p?-G1C&qc$zl}4#ak1L`JWhQC?L|* ztt&4n?Uw^`$Hfg1g`Yh8ji%GIx2+S?S7 z7ELX}5J&@(&mRofbVcG4ex*E{CuRqwW5ulDzEeeJ7%)|yyIz_?7|eRbuCGI zjBi)#-ZTu?22Z%}?cH(tu6Nyh^@|%D4Ho#IGGpm|-8Z-H+uqtmu`Pz}9X`GwC;%s? z$G`Vmzj$%aN-Q9pm6M>m0J|R_ppCR(+v6hU` z;nSq8O)Fo8od;vLND>{0;U=mG(cbmyaCOE*lIfFj+dMQK!`pPT)p}#GSQ0jY13jl# zrHfb9tRp#Nc^85A-WQVszO}u3>-LF?uh;9vVgWAE8$r@2kF8e6Eg`42Xj7yxN#tSG z(5>ITeZ9$Sr2uU@P0g$mbf9_9Jrr{ZCH+WGqpU(ir9c;fYN$zqd3C>PGdtyX=!B!OSSbt~un@vRlmFS{Wk0LFtH8+W&1d?|#;t;KB{7BMcQ4ED6M@Uik)zehXa_>ZHXoxJ4 z5D=_@!%UKXKcL1qS>3xaR*gTLwmbDK>9#O3r6QK=xyYv;xISxub@QMGfSeOj_;~J9 zEW>y)h_WEaazu-K{B_kSj*@YJpgXGsIuL~neG+#qkVWEr=0S=iIRTVxOL6z)Z6V}- zIE6>+frnzw@P;5x7;--WrX(1Yr-51dIp7eZSBpt$q%`@9RVbpI8%oVYhXf{;T4*U} zF4YFuM5~7m`J${Ll6MwS<|F~rA0?bT!7K)NBoOY{Ek_lJoCHPBeR}e zpE82BOb(SW9E9kz!^}GbO+>Y&7c}V>g%=NPS)tfRo-`(cVV}&*thW}*V!>@PAaZVw zDd1%UV77L*4ud;v4UXs%2F7xPb7qnq=3F7|F!D!=UOp z?$V_QPzAHX0rY5eN(}QH>At!|GUo93{%FWHxR}@+32-+OVd8VjY^pXH2(Dr^?+i** zI+_5w!^o#SPwpo)s z>sk>TX#JVg?JrKA|{45&XERhs~5E)LYI^0af9j4jJ7xvi%2COB#K=Ry*RXJc{ zl9xz}PEApT2Zby9xxgS{enL?Fbi6D?Mra=Lbd_wU4`d1%tvNYGApNkLtEjo?m}yXP zx{*dc&_xrAOePqt5#35czoan=+?}!s#EDY+PiTM#a#BYnfw>%F5U-#Fz4-I_e_VA` z&y3K1o(F1~&3NBnFDK!q`bvc=04lj4<|Lx#1;Eu4*WD;NIp@6!2ar7=#LNOwQdDIn zCeza^B}rXG;H^!kr|Woqx~vR0vjwK2Y-DxA+~D53-~X1!=^jVq#wVFw+`r~Sfc1Ly z!t>95`KgcJaj9L}+f;3AyoeYiqI(U#Zc5rPvN3Ey{?|IUiWF**xMU(`o8kz&wcl~uk7sXJ@&32+S%ES#oXN7 z-aqU=^4@`A-MabOul>p|T)u?83oVs-!AO)hk|u1d?#w32qBU_2=VH`YAx`$5^XJNo zF(0X48TDLSOw;U>AqO!WQT>cDNIg2d@z?F^G%ai;I&ExkU*M?_0Ijvwbh&Z&`#iv;35JWQg_?{dH45!@DqP{{pjeq&CNisjLc%39It=)LqCaG ztOfY(+c$sjcmCDRmQIu2+Lyoo5C5xLtdrxzKlu2+yL7S0C8FX6i_}!k@BZKuMOl&K zZkNkNgP1fvsD;Kr%v>ekm;q@87Ma^J5C+WGtu1zTw{G4%L%D8G<`Ph_F9A~lGC(7B zMv@RJGOi?hhvnq>a4{`YA}Hb|^TEstLWoWtB8L1a5gZ@w%g$by*2T2pe!5y6Zf$LX z_%dUbnaOk<9^7h89BwANdzYeNvtWX#@2}RYljD66uZSd8cxQV{o0^^ZjCGMiPDeyd z>LPt2C=Edd)d+zz4s27uvjvIgk|5(kEiQU z_h?(I!E!M6JNazHk1N!p)iZD9C<3cY!jlkza7LPl=$&nx#AsL`Vr+)`o_hG&H9*i> zb9Z#CeT^E(MZ*|{bgA4wq+}dTCl(bV{O)DqHP@kyqC8BK4^ZC#cl4mp$Bb~M;UkXXNnMy!;)k*-A7~lJ=O1P$=a@|4S6U%-3~=4ZlB?(5iehFMVz7}-z_SXGir=4P(IW@4nUy z%oOVAa2AcD)URlX;1m#nK#3Y0?mY-rIpb8jyH1jA{^Fe_4oL^3q&mC zmMmuEX;Q~Byg=}!%f^P$h&k!4$&@1QF`j`)FO;pg&m{8f(c8Sxgn%@FybFpB5RjYnIe+? zM_W=ef{PjufKhTD0f&inwrK~M-C-pwt~AT^6{t24b}yINBAzRm?pt&$h4O@0h+mA( zQ`YIdu8)!tTmBsb1d07F?wcWz>q;*NF3bi{Dd=hvMNk-WmPp>^fH-8v#zpm3@^uQ% zkm}dg>S*JtBZC+abI4eFz@U;*I7o{F91Un9lgL74QeDKEFc2mj0gTXt%sfM0FNDNO zkgNfdqwfh?A@b1A5OU#`91rCe4sZ%woLQ|)yVIq^MZHAOW!&#Oi0a=<3 z{wmJ{mPO;zL1MAhX-a`=kL7Ae<{{Z-kO)y&Z5emCRLs~U5)Vgq49#mm|K@DEL`FSB zP0%B#15n5rjW8T8B+FGuUp1|y=7^Fp7tyi-(kf^c&tf1;_)@($xzG8d$xzCg;;`_l zOm&D3l?WXhHHeKyH6s$Fz_64^Syi^Za2nP{gZ(jb2)>Fh7t2FG&ZH@SCL5_3<-mwg zArxsL5WjuU-~VGDr~@)XsOt94BDM0sK7Q5Bo7X=5$G^VO4lnMtD2tYYM1V&eMQe2i z7_eixxeUlM!nNXr7K9*$9(n+6G18U91fBtRH?yfVM=+{1ap`J2Nmphfva-IpwS(D* z0H-G>dzY@nKVN?N#b=)W-0E!q{`(&Ko_inISZ-FDwz0Xj+_>xh2i^|g^z`_XfAp&_ zzxbsqmzIpVYxYS=-17k{{FuF0y!T?cFpCif=w6U*WG}SE*L#a{Rf?*X!O*q*Q;Ut`8^`i+H}u7Z@%ZA2Ue>ee({CxJont! zZrpltbK`7dqouS+2I?91(7DGhd36f`GA$;<+N*6PO{f7Hq%!gGs~RLnYUXh;mmIzc zk#6fL#MF3d&DTH!e6?Da*@%xH`LVx!>(=$pfA)7)$FFQ|P19nE`*qg0wzqa?_rXt2 zjz9jp|MJeu8!FPf-F4Sn=1cbR-~BfiFRY^vMpN)Q#ulNP@#!rxZz<@Ed}QBPZqPSc zF!1u;c+a#5gk&>-E{zn7vZVmNcF5-DG&NoK?mm)|Op`%kJ&#f7jI59 z71(;cUTK@+Ot#kC*Vb)xC%`v0w~r2QG->6~Afo682RGsvL;%v%4-Rha?CuH5hj<-9 z7e78Za_LZk$;QUE>NGD>xZCOJ@#*P_dyh`~fz<%hG;M5cxUWZAop+}4ZaRHu)lL{v zm63`586Ta8Ro9+4d`c={s{91}?OwGiO&>i-=y3rdxrzOuT)0vKNj1GrX z1sLpVvHE*|Y~fVx`&B_itPrbt!j7D5Z?-kIT`sz4bvk!Nq54z42! z$O-cS#SkYPy))*j9+tewB_5uv9}Da~>Ibc? zI2&l@`L(57Wgy|1K#f7MPBjiim1*->skq1#@mpHqI8!yqjs-fC5O4A%(`CfNLlDhG z?xcEVEipJ;RhbUmLDWS7MT_B8LJ9X7f&{5Tavl(6B~KWt4kcj)VFkkFX<^wXkL=S# z=m)E0YlkUPlry^fqKPr)D9vC!i$(Olye?*hmWSJc}0OZh%#Wvf>0`f zsZ? z^`UhjQ&EvXRb{}t=1%e~MN2pp03$^lz#nfPm5(!^oS(Y+&!+J%dzE9NOKCVo8|u|e zT+MskQnESRa^3>T{;2C%dIQ5$(T20`W;{jd&U%FXLbRHtXD`Hu6N-YBWFZTnSrd%a zW+@{#I70W9_3f$+5iVjKgQlufm%)L31sD#w9}iXIct!Ibs3;4=%9t?LLT719qINRC z3$GMlR>)81mFN+@1EE+o?=kdNB(!y0;B8`s*t0$h09gwUDF=@>er9L@c@mdZPoBI^PcHo}pn51pZkIsY=-k4N{3 z%m}k}fO0Mdy@;S@rW43$(}v^#plBIJlc7Z}?x!n1J=>Qm_CpW9 zbG=?Y{pVl!?suNv-Q9ikv3Fm(bY)y4z}@!uZ@uNgCzi{N8`od??cewpyIbqacWhP- zKw0GQs@1rAHb#sBPXxR18Ex8{T3=z5jW9x>0y4@~7lV+j)qy^{3w&ye)>`jfgzZlG zB`qK$!)}q*n)uPl$3Em`4So^~+bE+u7L*Q6U~4aHI+VnHI}8KlsR79()8M zS6_PWi(mNI*2dXl;(D-fglx1?muix60ID)IHM2^oYSV#i@bzeq@bU!g=TbA1TB2YW z>6CavERmT9MSC&z!^7KK+q*KeOBXL*{?JeT+|kj&^=ntJU%Ptq+S7o)`7Q5`(-m)P z?w|alU%h;3W3gxg?d!A0-}!^_@~5ZAAOGE7-rHTNHq|!6CKBn$-tA!y&e`xRjhL(I zv}o2>jwnQB-%_Y;*Qt;4G&f7g^bEV&<5^)2T{l@=+}pi=W1nG>0B-B9<M$??I??j=~r&Bo<4>%C2hSS_Z-G;Nuk##*GO6q)9dg8Il2ssM;+_93*xTD_O{}LH1|@x~ zDuc3xN@p`rM7Q~%jM=dt_HYs%Q^hL{4;qXIo|hgCthuIzluE6$RA%59j@f=s!0&fP}TY8g(k)Tbg!8Q^aF_~ zIJ}30Ft<=-Zz4c*LGK2*<_w6e^pITuWPJ!V*)Sp+7O0pCprk{_9qkDiu+xyVLTXWE#WIbXFtUhe^brxTygz!~vzkckJ^rpC zRH#+Kd>JMP*a_i*W|aEkrnvyUTS9V?+6u(H2Ij?Um?pwW>tM{J%&N_w3g}!|BEz7X zPjq5N*ejxmC?U@>?;@#fMmU)V%&GO8ZYQ?E9WZexpP~5(CL*7)QG<G{_>d}MG6!&I8rVV5(%oR&1_ngzeCxri8gIaKce-*DtVqg94Hu+OWnJt z&I?av0$o8Tk(McSChR3SpAalZ&qQh+(T0l~+`KI!He}RAX=6H18UyOe4~HsjdaBfi zA~GJi)_K%6@yY-IAOJ~3K~zbkay(Ms?7|7W0T05(1_PoKLZvW}TQz>!Wsjh&9wfzq z64~MUBpTF0+PNSUQd%UNg^8gR)@dwXMfP9irIFhTI^7yzPPs6xYDA?U*>6?5Tg3)r z>nIWf7%&=rr5j61!jU%xxSZqR5GYK4o+TQYXVSm25yczXz-#tC}^C@8P&%+Rs)a(c+$bm*ju!C1J*C9sSJ2x zCOTc`0jUc)Bcul;tQ1dBm2`wf-%(Poz`v45M8+wStkwwBX1GA|0gbfEy!~Edodc+6 zQCTqbl56x=bia57OBML=SjUA6^%kZKO!MQ^o7Z*AQ_VR|UUN}F6q9UFq3}jMAE!~1 z9PLDzoXvRE^pvHRr>Mr2!{x^IUI6y zyt?!5@4I#L>Lk}sPFHu``|bxGcGSl0Ii z6Q-|Y1ay|!ooE!TcwTLROpD3;*iTi$x_y>D4AH_p8}1n~X+ z{U_e_zCZrNZ$AI+PhH$wPCCuL%=gPQ`5Z!L#o={wjUj+q3{b4GZg z@0~+_WPj&u)&zgIHa8ECj_9n@?PvEoS1ndsfUT|N^Uro= z=}-RV<-N7Y!YQXyo}Ek@&6$~b$t$YLiCy7{mdlCJ7juVn+>Py_W#U+20y}*Rm&++< zaO={h&5ezn?e*c&Np5)@#lCK>@$j>lF`Q%kd-NahKM4!u23kKkIi9Aaxul5+4OOcV zb=cY2+rNF?u@(kt6%g?xrhhv)>8lkk(r$ zU=z%!wGfxBt&PpiC30FN@C@rUQPKva`x z&U$Z!Mhtc71BMIFi=Hq@Aj(M&@Nf~x>6q6`#ha_o3@Cvw zrS~5LowFoPBQeJm0`Ewyi&2+ls3+0DtkoAODPE^K#dnK{szw=F66i)9JqB8ry!LHT1UNz-G>L29sQK#Ce^jO2WExFg#wsXVQuR^Z$=(7nYQ z%6KZ;MTdFn+GPM8AZrD73<0gfx->@=!eol6z-DY_Q;oW%YK(wOn^;#j26gAOzrnMY z`F#XorrPvTH(+fp?6PR|smqKTlC6-jq&#G?V>K#9W|1LKp*iag^fdV|GOUs)qbXUh zE~ymdVn}o#17v9EOQG=6%wxz(B2t_4)CEpITysb>36aEIqYZ0vQ9z8KlgO;45w0>d zX*!frqPyPCWzGMGZyvn=b>BrQI-Px91Nm@f?W*c>37W+vy+9Z1g8%3*hstsqG^GKU(h2YAT? zmq2?=<%|ue$qeUkLqhDtpqa1*HN-mHW7<8u2I~mz^Dqr;M`i(Tgy&2nOALVFaNJ4_ zf{#{x&PoRh>4C<8Cu9$4La_{(j0HpLTZ?K=jiH$aQ(BB|4hO2LseP|S$&4yWZc2C! z4u0cxihOs*W(hse;mKw-gt~&xnUBa+CyONHOc%1j3Shaf{H0P(tz1|9k3|P`WWdrw zLS^g&w>bWK2z`mF*ZUxwFGaJ3Y%CbrJh9xV%u=XI9^-bff3~@~b^G@5#>NEqv$NG| z)y;jiS}i6$K04h$IKFoCa94)~%ye@7;X4pq31q^XuS7JIt&dAfq+< z`*e}++3#F20H;7$zbL`J3iGNMkkz#;uBnI@ZBFLfT)Cf1P#aWbDLMg5)dgh1ag$+^ zSvI2k03jiI9^Ozlpo@3-TCj$6K^HOcm0<1OU3yY#-Q7DO#SCU-WO~GnB+3vx%?PL^ zE=UPI)-$;vn-;=Q5kDO_h!>N_hO9$}M$cG!S|4yKt&ouHA~DNFv}se#b6$l4S_To` z9aUD&P-qxobyR*UwB9izhs7kCx(b=9o+&fTage^bdUFGn^gIuyGb=m>xG0fv#+n1< z%6iKTPmkBk=>o|P_B2H#PYGC+&fF%Fj@SvQb3Xp%$iSW$;km;<2aANC-XH_XMj|sAX z4D0TITMs;rMq-w*r~-0)d~(j@2bs(Ppeb(N_|8jLU%BJ*-OJ@>U7Y>>Tc@Xo-+A`w zot^E6AAa<{`yW=0eIFn00B+p4@wI23Iy$(9ervg?E|k0+W#(nL^V+@vIU1YS9JsKv zJx%Jiny&!4PGbYg+Y_3I1fFHTJhA40=t4wJPR?ko@}lNtp zJ=z|$Hof%1pD&u4_1ibEe)H>JzIN@};lb_IYGu}Y@2u`9n6SkAw>Gubo`3F{#nf68 zmSKUiJZa`rKW}$uXJff^Gu5U@RxBc*4cimg@-HR`L``K@N=8h|m zUcU3~hMm=VF^KL$(3bg3Q8_ zOjJSb2VJdJ(iYjt*qQ_tgW}6!-51M^zV7RFujmKF939dfZfMhTYioC!f~KdScN2lA zZY;Mpw{{lGr9jqwb$D@vFWs@%bP+`$L5r?BDH_Kt5MX9WV>|FB z&^Ogl%z|Egc4BA;fil^X5+sB%9~;)hA*y68XC)_wX2TuUL<=X=Ow3yz_sB2lGh?Kk zlSq` zRW7M`p{T~nN&YEnWK|lU!Gr`~KxJ%3a*;&^Xu%C2&V@Xi>epHIs^3f9%kQw^TE+>xBa*(T*Fs+Z}eXHhh5ptA^> zbck&47w(4us;NLi3+QGp)rNE4k9pRFRaMb2k8R3OYfi`_Lev7vE0za;XDxw}y`Kst zWxJ6yD1)F|kLOQ+AyNwD1-xXS7_ba+$=R}`3oXJ`WUazZ*{LF1-o79i#klW;MKi(%;im?#U+o1}GlsLE z0}*obxg#IES3bM3V(ImT7L6)tX*hm?HjCWFJQ(B^Rvh42Bnd(>966|nTsu+b)&5KWY_JruHTkpXY(t;mF ztI(NioOL_Z=HX)NQPtTu$8(jd7YIVr)+#@Bgr564FFhza$CTH})N+S5QV{4wAgdVBvUDeeqnd5uTf=-FqZ zW7kIeoTvRMYFTh%v~pTPLYV(jr~57^p5r#*L63S@c5dB1J~%kNbjQ6H_AVXV{N~BYdbL_# zdeb}ZfB2C$Ee{T^edk+Ww0`6ArEL|te)F)k?FSxua%cDQ$?@%Pf9s2*&_)!^@ZN-`l(6;P$gkj}8t_ z501`$;5|S7{0pDBw6}Hh*0HwT2jBYSeHX5**Jm%i@b#CU`^I9acV5}Me&g`ubbaTW z-g@7IZx@x9uRi^HOxcg0eF)W-ABvN&4UU>8&cvPL#5eFJ(!*=HXHFvszC#0BH zJ?ly-7$KxL4G&l`cOD2`iEOHv$XfI?f*;ihP;EJSERG7#XR0WcRt4PQ9q0mcUqd=z z@E&SY7j`$?#nIf{eeHDId>GW39-;Fnty%3J9d-r=Oi+kM;kHjrw1d6RL_vP}8}KQr|WJq6!f)yw|MkSKLa6glto!mkNubT?JHB z@X(wFRc8{Tr6bGRnB^EEEai-lnO2KfKi?<}RHBmt+u7bcJ3Yyc^l&Z4ZdAY_-S4>X z{)YfO`0zU~U%vaUyYBT7+5A;EYJ?}XsQAL?{&0KicsVWSKS4Yc=6<_?9%MA|Xv?`KN?$IfaIEn}-fe1Au$LpgTQ1uA z^tn&{$6vnxEl)o7_$TSF)n7dG)Pqw4S4U77;e-R>X%-Cw$}+eGB4Kl}Cf zec&HlzH(QlIq;WW_?ieFdiXIOdU@@Y7r*#tzqz^dJ@0+rPoycJaS)LY{K(H79^O7Y zxOH^2fBV+;+qYhg-faPoZ&i^U?=Masl6dYHd5!Z1<^ z0n~A$pP-=*xgqOQYdbsJ`}_M|=TXo-=S_^bo=o+0?)+dDf=C$n|E2uh;MC2AGC5HifpIQ$fd=Ed~diK-*IPjII$ z2h)05gXp9dR^HCV&k^t0=su_)?!6})r5r7xqVN-e_opWk=D3Mg79l0HkXY9%ITbcP zaG_H(%9C!#>^C~5VTx>uL5#Z!Swxuk^}M+%sxKkP>Lnw`=&g*u(+D%gPWmzH$F;^x zt7=bD@HhHBsyR8%dnZ&6u#A>mc%ls?@MlUY#N8P2S6^*9`<$+6g;b178_ITJh)ckU zd@)onPUdq#(_k_e-)12v3;YF5>p{vHqs&Zxm*J@aJ*I>`x- z0=QCVdd6Ipp}WDQ7a~m~VXlH?2}IFD6i_|tot)NGYa(pD8Q|#@dLPl+z3&yeW)qW%)%m9!2eh>uh&{`^;kDMk#4bf012 zF4@0-?FFKDJQ=8uBy}Ed`y zk2sq~iq9=Bnvw8eXuBJ%o4a{$I<=+(@12?}NU>%Qy+vj!FC73yB zopW%^eat&U!dc>XWY3Fi@I%}=0DEN?BNtTU50F@ZHMvof|*^szO^tdWH zNYcL(Wl(`;^cGe|+&!rZDmm-|`QJ=d(}w0KF&E0IFm(cJ=krg2SS?cM+S!bTaRz7E zLw2M_16@ZSi%eC!RM=s?G(<%U7Is03J2;RE9cf}VHkTK79@^Tz;_lyl_OqC|)2!Ik zp?3sesuI%s=Hh03wdzMFXD27?OIPkw74(~ku-FoPWegF{lspZ=OD|pDKYQug_Lt7( zLjSKnXyN`p{}{<+*@W3A<@|Tfzo$M{XV|~teYJeg<3InC@BX`cyH|es_y32zlYYnc zqd)#*|KyQ}-t(!ae(Cdn`SI=T-JkoL|Kgsz-u}wo}|MC-l_v*bDZr}4gcfSc??ocM0g(Hy)5b7}s4$06WCezC-o5c*euF_se5hbW1 zL~*^qY4W2I9Ca45mV`k!=}7NfT-yO@#bFatuX&XD$X6gG(U@hQmvpS4epI&L|AVbM4f zx&+$kg0mLt$;c9)F(70FKh9XiHOH;+(U?52UOO-*K3hg`@DzP9@0%OTqVIH=dgFUR zM30Zp9((+K@#`Ob?8)>R1unh*^zzM|d^Es;SFS$)>PuhV-QCE|C>lS@iPvwOyyMX) z*XvdFqrUz|2315vfaTQO*I+nB59J=iMf}{;#4%1dk7-Pifa1NZchRY}wqC7};;pG< zWaoNmf9pd(@ef*?W_u;t+S)b@-DSDC zbzyVs!ku@&B@&-+e*JUH>8Poh-#oZ^{l<+42~GjPv)_8=_~6@Hn~OZmBQqxmRG)KS zOw-hYJI2F=L^_N9SqDrt< z=SmO`PEL*w4{skIA3XDwKf17+-OA)i(4Yxab+MRY5qz)&iSpMfmSq5{7!9K7yfW-u z7MS&>y0f!&a(r^OTC?O3r_$VABbc6791EGEyYQJ*R=5VwW_gk3XU7MNc2T181ckVD zQ-TiR&su9ux08M#)euughA`xyN4UEk9Ub<5q9SK!X8=^ZO;Pr;=g$hu|;f2r_&^F)M~W@=C!-D4s>~SyT0yfCcGn zD0nclPnulcj@za-1Be2&dW@fiBMgtA44~2*|7_qLw=jrdL359tfY8CF$YI z8HW;fN-c(=K`D`?iP5BQn5zKNBFY(<9@tx#^v{RUWxI>A2)ZGq(;t0Ik-R-rC;M6w8gnKsVSY?C1bcjmHkCanfz>>l>c(MSq$wfwiW~^(nOr+9WJ-8AJ5VGq{>4Cl;AZAA zvwR(VgtE`#{GNcY9R{=LWaO1`)vQ%o1}_p!Pa!%bWH2)yY+*nIh(!zw>9~N}lS;@x>eOdGzn!bJyFiUjNqr_-}t!H_qO9???W# zkN)!?|Dk{OsTY1}u_Yh<(f@WaZT$DY_>qJDoj31&;J^HP|MDl^|IePf@$XLWe{HdO zF0S7Hc6;C5{|LaJfA`~f;D)_z4PYDi@SXqj<5%)8uBMYm-v7|gzWaZvM>^QLwR7qJ zWbaLbExWGsuy3t>?)2`vZ|DI%p$UQ{2om5VLYxOn;wVdwqDTs*QY4pMsiaC}$F7u< zlI==4{^KN7DcLTYPRf8Jk58}9ng?>_awXCM9GuRZv;NXjq#g@1O>ov(Y~`+n-73;)yfbe~Kva;GR7iuXs70E=)VIhaYR`x-3VVg1?2D%05xMw7 zOamO?mlgv^aI}-zk$72fhA2YOfS@e0jD|b~D8_zK5|#mP%a6HB#D&+^X1hDPFa{xe zMS+M!R4Pv1`NCEv8UQbz2ojTzvaCEMCvo=o_yrX zAKF}uo3uoW;{d|V+w!uPJuscku3ft_pG^?*s0eC8R4x_D>+5r{LL@pcT10KcbBYuw zVuQdogVvprk-4o^gjp9G^Q%{``TR%Az++f2qTT|~bULp6wJ&}Cw-%cxu3vd}u^>^I zPUI_J{Kx}u_|e0Mk0Gkp$gDp;#C+(`9dCT=PkimGpIR-SpNzWDRskD(7URQ)_A#MAI6uDNa8yoY>m#=xOtHw=^Ai=<$I5_~i zQpV-xV~;-kidVi7cK;E$F1AnJyz$NT&C_aW9te=y_t&pIv$+^W+OmG?)C+x~M5@Ss zQ%KGL03ZNKL_t)UZ+vQdYm8QekA%clC-MdR`o+fjK$Mr-Vg-xL?UcjmE}jW5L>mae zSu8|k-%Pr(SYNIBB&`UvFv0V3noK$XioLHq{NSrz^VYq+-G@H$ueqDw{o?zGNL6-s zZhh=`f3?>BJwNi7y3#dP>tHWv;sgkTXGuZ)?_@fi&em>RyA0ijj>9ylR6+Y)-B_$! z36B!vPT8WkFkyg_-F)EWTc>!>sPJnjAF1M4x$QyVPPF}mzZW$Ak#`D%g-6& z@d^ebAX|Ww&`<<4o(;yeyt?EB_h80(ycBVOR#_1ksA(cNW0czD`IAE9Bs!6_2042pn;40*#%NWL^T&LeSH9)6 zvi97JBBVgI-ayBoA;vZ{%#oZsGr$Uy92LwfpN`zdVELDkxc2`t)imF(&tltHzr4EQ&QvAPfzG9p$x5o~J@xPXx>;c`QN41FhNX7$sp0qBUg zED~FWXPe5a5q=`Ff`mk-M5~vH5Et6mGEceUze zcXv4&du_l_zj0UQ^9dUl5dcwF3eV=<*VD6z4PhT#T!rdYfl|NDbGIsFo01v+2DJ?pBa8vU19GAz4G<% z1n@^^Kfbo*aqg{){DCL`<_E9%H;UkE-}uru&$e440#@_MXbxbdx5snYzuE7vZUdN( zHtGuZ-uX5FPhNfS*gdOTm+QGJU%BVb*PYzHZ}}8|cSNTD5I^5K^zf0jbMo|`KXz<0 zlAJ;AomPdjTQI7($T{L(97=Em9+DYtN`|>pc*#Kw5Pz*%9gg72d@^~!6sggHl-vaS z4c{j#>w&5nARp$S5m6_t9+}b&Feqe}=Z()CLmCkoTV}FefbkSVGhvm3b;qc=dYJ^R zrlJ~(%tS@oi5?GkpQRyT_R`~Q!hg+&$59Go0>E)G#dT}rRL0zG#A!a z!(3lfpebyA5Jqr-uqCi|0hiuiKJm4> zy1ZB)D`Yyt^e_YH`>HClwFQ8^{oSuW^4W{$A6Z`?1$z#`ief-ltGbfuz4zWX8g;6; zb>rr!8?~x9g5?#nXq9AbK2_~)hX^G1?2sY{kKTwZmx>o9L$&5M-`xtj{cJk9)ph%; zr8yh%SHof@Sa((mr7|juk)pq_vEjm(M3{{CKKIaXz2)scv9YnODg(JnKU2A;hYufn z^IQMIHy-=KvuD3LUkh}ysmlkh8!R#fYMyJtcr;pDn@V5vf=oq?Hs$H5wx^3Nu8CPh zbqQez#K#CIR3_8$csyRNR`!EZYbjmqsP;H!IhbfV>7IV#^CwQ;efY?+2&;*yyXW5T z`_gBhSZo{_#DIGB%7y9JvAY|$>pR}_zR_r6e}D7l^-n$c8`~RQLhX|FDIlm?YoL`F zjYqTTM5TtoiI6_9gG6<`=I-H_Mzof@!jCnv$pwQzv)S5ovbVp#3`ofW>nyYbz+^nW zc>Zf=pFaN7Q;&{E^r{EmVHZ4i_Q{98_#uY8P5o5H^{gOz~UVThNM$In?&_97C%ZTVRNN0c5Ypr&NjH%I1%opR_)1#XQ(TiKz$l_ zgnt^CMd;fDs=B{>Yt`>k%PMUV#b3IE>26??xum9RLA<@Wn2x8tEThUoh`FwmNRSQy zI0Qk}jkP0y-nrsL$Sm$=v6%pL1J4ns$%@Xcze|${rv`VC(FD|1=fFv%bh_jYJ#ufN zfh!90m?dj(=2B5bDTT6xMXu(a=}X%gxq5jdvW3D67-VjwjY8sLL>SYM@fT)9R&sPn zTPGtSM0GXXS{zaH`Ndv@51Kb&9kK*Dur64p0t|ZnygkI>*Ej$ajVgnwh-|%vj%wK} zVevR7X>txes&^A}hCUAE!V*mH-DA(_6fn9HV=(Kjksm;vh9hTjbQy1@oj zq!M+AF2Sq-6*l3gHmxjK#PRlghFes%jP34ee9)RWCb$JQ$B9UisbwdBe2B8ac7unG z*+*q{24>>y+=8`~10uqy)#`8qlQU-|_%Dru2T$WYr#7;_f>0QZ8q&a>;MN9!(&&i> zW^|6mhEQ~Xc%g6+?V^TBQD)Jafd~fYE{l)0XT&EYgfK){7ReGu#D%Wv1>=%fO^7KZ zp`Z{E%Y_9HgIgp9sDMDqVAo()HQ6jtn^Zsn8zy$~yH${u!i++JQ)$lfw8E=uDO?BwLc&=Agk^1+Luw7F5!Lb^W!oE(^q4{O z#Kg#OTJ7wULrzRF!aM*Makw!ZilcLcW(xhV#8{`PQ#*37OSQxOr_E(YK)Ig*u! z#e~sI1{p)raw(?I-E1Aev)Sax)_seO?}{6&5eLyRR@)3$m-K-GHw{MDyk{;Nat_hOE;cAap^oL*j=Rf-TzX9N@Pkk7(oBinO z7rymt*Z0m&H*|l8PHw-V^DpG_pFe)bW;?YMX_%|h)TBvzKpb`tgXS~} z{cjNo?xs(p_8*Mi5w|XsEb#=32`E-Wg2v<=0tPCT?W+Oe7~$8s+a_zRFmoS+{PV8tV75*1eYOtq$0{iAX`z=h^S&vw$BvF z>lPv=3lie6VaE!0$zMnafUVQY9J1C0d*Kb_e-Z1$;&)%#`7pMoO zlSwHovI-wGj1FS&xQj>5)J;Z@-hNrH|7DpCmZ^|k#gORs@LYpwBa1~fzDzD8s& zN`%5#n=U{9&~LxtEk8D&FNUR~@BEC$<5#@uO_Ry&{MpZP7bR6r$sXIALHnpyTJ~6V zeK7|}&|3@=lCsJ2@I*JKH0CZEdV9MZMddw`MPr6Ic7sKL0=)fVx`^s)*798o}k)P3hOWpPL{MiLvDvHxYn*rK6+IMR1GLp0!%8!ot`9|;W?2z-so|QHkIM21qi95 zPVhmtP{$DnWL*`Fe&wkPX)E;?l)SPbl%73HxiKBoe@A9J#U(aBJ)-z3sFSWp`S2MX{uxE9E62aLjX_}r^One zz|K+$GnWP>CLh_F5CDb@>?i@2uTm0bZMeJ!`UbKY0+0|KDCPw@DBTS__id5lDJ2!* z{M|==&#G+xpDLnSwJ+TH6szDv`Uskc1Hx*H15g}KJ3yw$tf+5p4bpgaN}7gJ1Julb z@-SC-@(Wu%$e$~_O?{{b#~@KB+Z$)j4z4Li=a&#l@ctTrNQ0a{YIJtj-k0O}R2-^A zZ!NyDr;U#H7R=ePvptB^^74J;YR%9^~er2bJRc+>dYddx^I0%ik3{MqWVcUc*?h>b)Q*GsV37@MJuRdE+%xs zz+hOmrBDaL6Sinp07<>6b&%2 zHXBXHg-|1z67hMs+We-7QB|KifAw4U|0=%si4PG*GnL(jE!*#V``-ib#V7vFa&&IJ zI}kzdUZ+>x`A&cyJ^Nspu7(|d-~Np_a7#p}J%0J)f9)^+z&|;D_=WHLbAK0rs{Zna z|C=Yyf8)?;Jbdw=s$%yVi_!yk{@lx7@a9#&_qlWb`*`;6dvX8&^C3L((*Hvq``Hu6 zw-HR!h&l}At}vxPP8mvMkYQj@7N1o~yg6M#3erL)0!UA6!(pR2VgO)J@!Vg9R1{WW zLL=j+<_l%jR_z+3Y2LFK5jW(w8`!%-Qq4Xq{|R9w$`)Bq{GA0lG1tRDDRI_zx?7?Q zyxsk@@*QPnn*n=RIC2dECK8hl7~~A95-&p1crtOM%2C9#FJS^jE{*u6D2KTGpRY0x z7gjV|9|E<@QK>n{lgK-m;^y3gxpyFkwnWUA^|D%QtY5lx)kZ2o)dt*+(=v-pZA`^Rh%0g2G>fApV^N}Wwri8FjH06~NA3U%L5=?|JETI!gd& zZ*Ol@R-lP%Y#=Ze3v?k+Y%bPCdU%-TaD(qz$wD}1i4_(GN6Znt4o#RL#vLnwTK6a8 z5i?h0K9R~wk?>M#5Z{BTZNr9%aO=~b_~4t~_G63n&E|yBnl61)sRB5B|QdWH(;L_ZFz{Io_lSy~w>gw(9c-!U67e4oy z506K;MW=6i%YU@BefZmq_j0)$jmH0OxH1>j?`UV|_Gdozfx}yqK-`g8yzP7DGFzM2 zQ0yo(yOmH37BA9`?3jsHi2<80-)~z?-`lcc8m-Ny`}?b%{pA7enE>-@Rhwp%#RG>~ z19CzBVN2Xv=*bMA?(N>#-|xob8JA8)DrzYlFVX^30TQYvg{)Sq<^HZvWuTZ+NYfeu z)JBAx>CkE{gW%cOn>QqCI-RU9)(EOx{UJckIS!?-cx(!Nm{lz&WgW&236@z+|er| z?oX;%isEH$M>pIQTG1X(eF5sKt_ZFHoRpDh>I%jZf@=i?$H0ex!_^-JB0#9C1aCG} zTa2@3L+mt-ns4o(*LWjcbh5i+NQ)4%Ep9{{Ol_*jA;|9d07#jNE0n3L?NTCh6bO|a zMl&k`A(D9?2qB%nC5}ei2%l!pVW9yVrsZT9%4Qe%PIZB+h($7s7AH%i@VIcv>IpG` z!Zxr*wZ-KoT?Mx09W{y;A^I_MAG^u7sqLXZ`ZDU>)Z)ns3MeDbs97 zu=0WAWKq~F)eP9OP$LdZku&=Oq4aNc2`vJJKxj}v!<2AdZs4I=Rg8JpoVJoR@tLpOgH*UMvCH^XLr#^8 z#awJEO$ZW8$i+J^$vP)VS(PGwb>f$$F}9+$)(nH-;_({#dTDh+P}64)y5&|eYi93< zRfUu)B;rQfvJ@a!C~P=>7Oy32Y&x&RM}31qO+^mj28dYTLkCF09I`@{(J2Ms71LLP zv4*M=e4>uv2xDM-5)Gb_9Arua5OG0vCM#kVm~~b9iXt;41;mw`s2Fz%$?$6@!Y8*z zHspDojkiox%!4ZLlx*poy_#xbX^x#mikJ4fA|uubcfp(takqe4ySU@<$@}mA0U|ng@zJ&E#-YWj7oB?5UwYR+{`If^<wzD>z})IZubvon{wm%(v|VMU;5vF|BL^VD>t9{jW7MR zYs)iRNA*wp9e*}Hq7{D3o7J)sY?cQ+Opktiq}3W$UA#mgqLsmvrAl|pNl>D|v5jKk zroh;}BrZp&0hL8m5MP2}{sTv+(7-9@0)(U=`H)y3$hJXt7!YeCt?^VOLRs@}J}uY= zk0PqK8I49=N+}Ik#4lO$ju5E9U}~%dLHw-+(IPhHsQp}!@qyqjIeIpLGXhYG0oe{* zWdQ;RK9|)9$RmDFS6qui)Y1`a*N;+vF-OeNoSx8KAR=D9h?Xh1;F0#@(PTQC?C&l? zs0xVMXq;8Q9~(~|`t*m;KRa6+S%U_ZOh;Nt6CU8bM4q^5zX+J&t?uM_`buFk#Z&`usz` z{lM#gcw_TWe*3WCnV<1wI-YC+HxWdqVO0)*hy)(tu6lEG15njoNg+0^2hggudIKl3 zR_kPG&<)^{CLXv&ycS2^!XATMq!4dzu3x!w!_Og6l}ZN&WB8kv*cl3JZgyY!!Ut}> z>>V$9(aV_&2wPi+XKNeZ{N~s1dFiV`^u*&|-ds!ot%B2czj3j#3B}c`7eD*y4{j}B zJcb4q!-aTbv}M49U?$$&*dS)s%EEfCRGRPSutMHiH)GV9jX z=A}zl>`_IbvZ6EJ}0J`2NF_|R> z{PZ2a6(O0!21H6c677j6hYxQZCRU(Uy?*`X-tJyvfdZw-zY;8`G_+nxrAA5!>F+@; znFhMWsls4!4)wHpnHj0aFwuRc#qe9PvcuTxKX8RC4qH)lN}~h-s9DCcbGH z1{0wRdO$+jqyTKxtB;^=t>EUGk`AJw*-gZ3T&g$`%erJDQntL!iC2(;AP)JowScZ{ zbWs9Ls@h96o!TUBMEOMx%SG#_%c#TbX#u3Ky~|EVlOUPmHv<2SKp?o$d7da&KzNl8IV4U|)^tQ6LxX*=RC zRgR$yO)ZC4+bn!z| znTdeLQ^eSTBP#Y#L3}W#PKQeJez*$g+!1%%QSK!UF zNumk^c7Pv*#7r#ok$jaBqhXn;Pz;z*5Ep}w#RZj^BlPv6u7&o7%~`J(gesA>8Hk8k zMTinxu%UewlU-AnYNElJj!IEDH+9gALeWFig|taczAc>t02@*2T4}a@a>Rrcpb$Qc zJjPYWdm8f5!g60xB?1?plW1#Z_ROcTkZ6s-(d{f#40IO>PZrZ#;MifyeJtq_jcObb zS)`;%!2{T`!6*$hC*{Z7+iXjrP({%gqaK?5e$b*L96)Sbqf*Viy_y7b#(6#CK!gJp^ zb^5+zCtkX@d+qYYr%Iv1YUwl+S^x4ubxL1I0$Fp81ty-}5db=Q;xHcjxhL=al|MZ= z@@M?h@6r3-@DENOx&O;&e(zU)|Gyqh>Z?z_?`PimcV2qx%`bl9ho89g+bZ;y(|`R3 z?*A{Z+<4~wzx(4?`afFR(zWdaEp^M=G{dpG?s#>T{_zW+IP{Y50ydJK?%w`^KmWSF zt}6fYufOm7?MJreC;s9OzW)Ws?t9PuzxaLZ~fnnZrt_JFaIx}J@>!T zWOws~l+pLVsrV>f@aRvUIKHilK@}Pnt{BrYkQT3#GguJWcK}3T!3=FtMky!+j-h%I zOlb-d6KRwwm;y;siJpbzd{D&x09x~)HkXTZ!3mX!WK0&LMm4P|J3&F4arTmj1izNP zjfW+cTUJvYb^Vdl|H%N=z90ziLk~xBGtQ)NSjret5k8p9wmT9^P286F#d;yi7oj=J zi3r$grVv<*`Rp3hZZ`^!fRp2-74S5Ws{)TRtzw?c>{F*hPQ~+Hm;&`FjJg;xFO$q`Dv&!nqXFmCF z-}JWsczt~laEWjK#vuSEX$w`pA!Lh-u1@&@Be-vPxv4nB9u}_ z7@d3OT;Z}dUt6p%X0uu9k_{33<^JBse(%@TXG?1(TtTF|HIuOX< z1WprSHVqC&#(SB&4=M`r-^|>pl4>P#W%sV|=H~j|-af^p4BQA!t|UbGqDO$*zLc_K z6RGUschGfgh;Z%qde!|s-+SbNw*)*uUD1K%iJ08w?DAV2y@}CPkscE^H`cpCQhV~f zCm<#+HXkkAN|?#mT6w{EP|aPG%-^(N#3pXzED(D)mdtd77*FoAy@#-L$j%3jg2tihyK&IS-7BCW}Yd%lGisW_Q}2&65Ur*rE|+ zZ&&jfmTeNnXo*-oIHY6u;wT$aun)Yjq^ithFE~m-G26`#o453ZHAeti3bHL38LfIV zp_N?N8fBw}aIoE!$O=-91backut7UlIha}V6sqQ)^=(Q{N+*WP)krXVEturNoI+*d z$T{r>GPp@RGM?J$F_eox;9O+Lf`A!PB@yj0)wxCaOQw>Lu^N|j;S`XbPtS?F3hs;h zfVh^lkU0m5k%Wp~93KsWn{kGswgnVFb#~rR1wdp)4kH>^zyuPIR>S{niwQ{lpcis5P2lp_t!uaeB7vH? zSyMMyY*S9mC?=joevX^^193;{DNhif^1&%XCjYjS13)m30`-ing@{;F6gCU!B@TuL z`W?pdfIG1r&BVSv(&AC#$Ot}?)Jll)3q-8!30ls0)o>e#I#m=8JkCS0(M3f0nlv|r zB4kiZVbPIaUnq6rr1{(CH5^t;xsU?}+fKS&tLFc@3GhIKBezpy?-EQ))ecAYE*No3 zP3m3q{X?vboFy*}61-O|?T32Z-CdSK%qWFdtLryzT)5-dU44JYQ;&b5>*(s$+u#wA zFwyqb8e(wC;C!gMlzR{>f>CR3lZZ~9IE2T4{^kold}(?C-~0SYpMGb2`p7E)JpAMb zH%{y??vRJS{;%G4@jt!u=*th!U-H$n28i^|BtZILEKO(PHwywz%!S>@%+vsr(fM)efF7;e);`> z`91HyWAjBfFLWF8#m~L&Uv8}*`^e}1>Bk@YhqG$gyjh& z9w!3oJph><`dzu6WXo_PMPv;;0BPdFhC3}O0;u>ci=gbv(RB^!n5PnoO*jzL=B+DsQJnboSzFGBTK04CPzadJ3Q`>UuE z9Ox^|!j*=LY&ChS>rksMAUZIzCXu(6Kt{Y2hsH=mN-5jho0qR#52vGjFI@Pu4}Iue z@BP_xXCK|(7)K4!Y=4Pjl@;?CP*wn_BIC(s*A=^)y}etDIRJpQ?^n$@C`9D!xhHma zF3i`)>C{A3q*CCbfF3!rO|03i=6Rd%r+Ar6nbo+eL;^6Jp;+uz-`DZFoatQ!ys?-s z_x2^nOU6G}wH9VDXWN1VNC^xmb3$A&(rXWW;seJ|zI6N09g(-Em-9QmdiD9;or}|v zgM8xCg|wF%g?%ryDp0s=EY?+OoB`7?6N&=UuOS`F-ENwl;tB+kWf|pZU=9 z=f{hUDKXVvjvRY25q;%LpSt+mBU_7+WxHxkvI7X9)>=gpYEdXNGxOHwf<#1&?C(HC zQ$laFM~OcjbiyLI2uvzQmTIU}#6X@-i_l`Rwzs#}*Lnc;R9#hXI#ao|Sf`t}>Gf~? z@ngqNH+$V)h5zr`eC^7WE2mGN-no7I+V$(#u3jUe@pxRiGU`UmTuNc)8`m#A@|E8| zv_(Jxu#&!I*znqaDZI6{030mKq!n>EeIepSM+{E`>m6sOQBx6CC9-5Itt&A`f?BO> zgNTX8qp?kD)^>9u;v}Z_hq)Auyb?f_Z9fV|f^$$PYS0bcvzm2Wi82vHw0R-~i(~jf z6no>vR+|^882ptmbM0%Do|(Y}>WV3RSd~5QE_u7*--cm#Gxy04(NIEcJ2LrI0}53a z#yXVY5+;l!A>h(v=>U{^;hwNiRs@2V0%9f>tzHI?elxAw#v!Q!aDq~@RE#o1?0tMr zAndD8E^O*N4l$Wy&U`+&!*F&OMeq@1HE00jP?cH@>>rm>m^eWrCe~_6hp~4>p{0QZ ziM+xo65)n(pd1~LJ#r%#2qUF6^pGMZo&=f{RW~>{O=-wNO!w;q2j;@erj!zUv(dF| zCs2*kt!9cW!!~iSKDKT0F*#$zu|J2eY8y}!w4;)1Ojqa{S1*{XJ)SFs_vQ%9z+7Goi2x^MN@nLq@#p?Yde;dm<+42u>HZ z!KuTnpB(CIJH$)O_Et^wQ4|nnA}$_<*bWqkPx&K4Aujf|O;6W#Mc8mg4wPb$xIk=& zr>+?x8keJxl2$}Ps_`=(-YZQ1V#w$UA3IPhALPT$7Ae}naMBeJO%PF7if|jE)kt$$ z(QTu?jT8n|t|M2+S zs89;>?`|58Jl@{Kpa6=e(mg$FXMZk!H35O8txR@%~w}%o!?$Rab)eDN6&q1{}%Uq3(E3R%=NHc0TJG`s3r+#Jdg~ctdGibY>el)(0M~9@dD+n) z=_VLYx|be%;3H@L_P_7t{P+JkefibhrB@z5z8Rnc5PFRsl6jdcDlcAGh~iR!*WMZ* zhnlF^APZ*%!2POv?(H8hB2zjzSSB91L6!*-H30yLpMa3lQPMjbpCfV(N1{1070alt z^h+(IZvnjh5=Ad}%$#!UUO|PxNI8kDjAg!lpcG5aO>PFqZM;Qk{^Wo#OR`zLZ(cc4 zKO)KjfUy4Pc$O?VcnM0}bAS$9RctdE(h>!!2Kc zm6Sk$@rI`J>2ha(-!8-*lVVbCeEExiz_d^35GfC$v<@a{X)GiXBRG^oHj(++XP$)a zsm_SdaktvPe(A!6&8>&`azCNE$MzvqD*A_kG z$^vVGauk)o&=#i%GgMIx{UmN_lE+9@tIt1t`8@jS*ep@Tq6ETZ#9bkm%mVCOxtM(bg>xK8+`GS{Ux%3EW0jRI~!qYGL!;gP}<ZSUP1u|xK`ta5kGu68EEO>zU`0X*W1DRma zJBDUz&}-$%M_Wvat|V1rR;WlVWhC0e+XyI{$Agui3L=rJ%B2gEV4N{;gK0j2S_YYc zFSW9WCmM<_e9xrzu|{Dz_$&$5afwGPOc3 zUJtKYt)r5l1Q8WdWkTsX1+-Eq0+{3H)_1Ojwxz^bpZ?|$hgwxYD^Vegpd}_EB-;Vytd0sFunqm3W+HQktneNUY4XpvpEpO(umJOayS-4pf*d`_N{33B**Qx zjcD{RJyhXoP;W)^yP4<=(nEn5G}#qCdEykaGU#=0c#jno_jWFwKl@oifBWXS+c%%z zy?uE+A?l>c3Lufb3KTUth11!1JSw+tKDXSvIA0qDh;Och)91MTPyul4*yi)k-+$!U zqu1t-;Q!mtAnY6#)4q#e|E_-PPyG4O4V}#A0G_?@jrH4$?upIGWnnDL<;GWa3z3236^P2za zLw|*C-O;TPfc;&aoS(ns#Onb({>bOow~uyv^lkSr{KnahBLMQ27W?xjAN}OF?)u7I zr(XTHf9AKJz4*weo4@Gv>qP4BeexenuW#OS$D8aT?|bJj<^|6_|7CjWXtzW7(|!)5 zY-#3)aq!?L|L<(ZpW^z>rG6K``2YTMXz$hC=-A2QTgLRwpcz2cmk$6d$!$~za>*4~ zh^d%#jESJD)~K#qkRt=S4KOeQGK8c9w+0$oowww{dK0*5-8FjfGg#0;R6k&brop!X z5$?>~epAGZk(!GqsJ<%AQ&awt<7AO?P!?W?IQSrlapO-e?$uFeQKV4)4&rJ|nAR9a zF?cd(c{?kLbk9sMXk%IIoXhF&8X1E)wNt)Q~4!$ zU0H_`AttE-+bLXibWm7=O5ZQLZnU+z=&Pz?xxcrnf_z>$Ws%#KX=cO(P^c)CYBgFsdLXfe4cr+^0$&{G8!riDOM3RsuFsNI%(-|=gXYn@of2f0k4**;a zBao_qjbTws={C0(tG+^Mx!hl_tdmZ9sa+|^a;XOiM1+1NleLq_PTY0;QMJU41_Y$xJRNO;tG&(EWWASWGYKctWvvfw6(FZ>Q|~*?(Z-AKGvBO z;L+yMV|V8&?(OY7bMBi@f9uiPH=dtwoOr{V-ZPuc!&K9$Q>V_KKTkv_PoA94X5V`1 zsYBaGnECnhXCM9Ar=-6)pB0`@8p4K<8&fSE&!!Usn5m4=_xnj(iL7Rjg9nWRZHRl8 zEh6C#%^atm(qK#3ZXhP&zVG|KAC0MSQ4$d$7DAm)CwqJQ4p&f8QdIiNr3|#>j2Y_p z$w{GVPR5%;sI*G8W6;6t92jZ|@EK8Mv2q9_T63c!s|q$juEy9R*VLYl#~PDniHN!D z`_-yncB9Ft8&yT)M20;H@ZI%WVo*n8S4kK?An;yWyfOR6Y4}_ z3U(OUPHNhF=5G@ViFQQS=5c=-x2yn^gS8O}7os3m!?~82Tdcv);HaP=DT1Vf2iK4i z2!v3hRWiTFM_vU}PF)?)o5hGgRKg+#;1K`qO41JNfW0z9G5AvkuP1V?u&1rSl|woM zZi70qprj0^aAX`ujijdV#z~H^iw+<-avtD#;x6{E+)9d2Rb>aI3I}IORBP=OR@h7u zkgXfLXb|$v6FfW;`zy{q94ZztiPkFBmk>!G1$Cvp_9|#G98>lV1(U`f)6lraH1j{# zG}5svthsl<(THPbQhB7c){N$}N7BPvpU~$MKbeXWL96xQ60!06jYi3(vk5*qV`cD_ z7XDb|Z6q=)LMJ?*KcEzA=VjySdTBl&xpi|3lobU^O153YOQjJd*_U{Wej1DprWZkANFD_rfo8 zR`Oh@Inx!lF`b}FP(`wRMm=5gG_AQM``viS9m5g+r#g@akFiAzvK(~;e<^6p+w<;bZQ-2d3uAFOrf*d2@K&R>7kYk&0F zXC6QI^w;NWPIg^)>*m$-&z-q({b`Z9SR6fZ>gD_Us}>alv)Sm0 zGoL-QHJwh10#db%U+|{4|IC$3=YIEh-hblQMmH)EOu7*`f8qM8Ui+iZp8Mlx&VK#y z;W>eLboBHKUis+PAFQj}%(Sl%NL)y`207Q%Nten#rM2cbRscI zf&eaMxqIo_)u)agUib9BNh35*O~}*y4tEL zVjXfKCLBDl_BsGGiPR>i5OYzX(sioZ*LvyV)tGXHQ8%Jk@^pHwP~ixGI3A`h7-gM( zOl$$9Cmlqor9nuaW;_O;64x;wy<^L|PgHx)q+0$R8Gz@GIDK zN*tsE0D-uS%&gTa7cO0apK&mS2WYlT>H%$p%~(Ab4f*quI&?7Kwd!iCF{z`7_i_f?il zQ7S6^XhfxOaf&zX?)Jpnli6Z@v9+~zxGUY&tJn6I``g>wQdei6eqwL$HskhUo!L4M zip^IeD@8kV3MwkcjvgwVPgj>(V<-Ozh<)GpB>zBenYqxTAWWZT$TsiXTa0#d-)&qB< zjcrPfSr6>AZy|QiC2`>f7E6A!wB=%T5yr)=C zHG^^jp+i?<^H!NjMZkuCMLZhbB@h&jf>uEFz5rg5cVil+CmAs&DF9W^PyBBrX-wuL z%?2>DBU6D4IcAe|ltv|>2Jt!F!gofX%Ou%>pLnuUF6`Gh-rxYKRTa1}bN(*nTN;qu za)BhZQP_kJG5u$LI>~ufvU#+t!0w||`gyRnMt)0N3 z)eFDl=vJalQQ{kh63KHIw(d0+NFrs3C`qIe6S+fVX+My;bd9uavJ$OH@ z+mvHHM4%8Gec(Zv(<4P{jkVsBV)=< z$j7ieBJ=8lF$A)5tD@OC<$N^%UNW()f$D@C^ibPUA1unz(j~-P`~seyR7t@<7fFS~ zd&PhQ_TIvV8f1PeDiAB|dJ`zP1oJ%7+Kd%dDRlB3ya;u6ziW`Fs@CMmh!{zY&G@+O zfHG8|g&Wn&mGGkG08{!@MGp{B*AdxxYzuG&aTI-D^C`g)it0Kd z@Df!AnP6SLzN3`6xI!Eu`Y2h0;2HKlkSV8o64;8aY?@i(9vvnsA61*6Ihv0c^fw00 zf52>O|EB1KX$Xbm$Qf$3U^B2K|5N+l7%85%e1M7>gF!?zJxx@zQ9&KzmQDxKJT;z@SYRr(@Pjt&bX(&bZ0O*BO~8QNZ3n&Z`QNiup0#V4vukq z0L89rKFy5RDpOk}DIY zK?dvLC>_;O8%rP|CP-I*%4GwO65rxsRp14na4YQ+FlZw~WV`JCe%;+! zP9~%MWxrTVxZujw+mlJRyVp-ADZ6{i+RM(~ zGVg;x^ZA&;i^bFg=5F2Izj*0ZUu(xao|F^EHp136%=F6DTjNRD+gnX0-E7*emb$ao z&nBbY{nggyjEMI3SG&8*-QDGCRf%{u9nEIlbT;1KUsb`*?LEnHsDx41&8DOAxSLK# zNPS8-FpYnpj>^`WhBp*6!UabhYsDM!S}_w-=QT_9`if0yFoVXy!wo>hRAxdMJ8V>x z8yol)4#=?^!;0)S&1Mt(Gz!C!MPtbBAdYgMn{G5PtFSFGqc)K&Z*>CsEZrf<P#z%<@dgS$1A9LFA+(E78z`L-QR|Fo zA4d$GP#G#D8Zk*)eG81khwJe41@x;C(+zr}5so8E=_w&b001BWNkl z77!%~CrDKG+lH8Pzytx>4W1qWN+aGFT!b`2=Y`PnQ_18M z4vrTL_ux*Km`5Ta(nFO>cY9}f*GD%C^EuA5xAaA{Q&AO0#$1d zB1Wkq`}=$8(Z-W$DW%FPurty`ITBYhz)&L@K!OYi{u(99k>z6@{9lJO0+y?53v0-E zfl&ic@tp)#vVKuN*xm}^2|F8oqo!_}Hy^50^-EU=${LF0ufTvG@v&RM<%&2!fJm#F zeh?Xw8lYwr2eh`zydkMkhOqahab1ftMGKdRq6dUF0?4$F5t9h5a!UD_ zNs$X+N>#ORAu7zQfB{cVNYSJf*oz|tY`jVm2wQEcaU+}Uav0ZDD#RX&oDVFd40z{V z%8o}^9QEJ8kQ~c2Lfim_#9$K)rtVM-Q;0MxLKAnjtOG|LMe>Y19C%9FLQCl^5)F-@ zmd^#!DdC+7er7Dcgkk*EuOO7LT|`*o9@Oqi1VRKG1=z5>h=-EqZXS`8AWG^A?jW+c zjkaGDJv?wP;%{9#ZlYl7+&xYXm#Xw4a6?8`Wh>NKokvv&VmN{lcb+VWs97cx(JbT; zt{(?2lv!|e%co1?D6ge{E_tq(&eepwNWopajh0Si@NE_xf|L)DEElUa9dn9e!a1}O zj}TN~Le9on7) zSes1&Rz+8Mea?&d*nEY_o7iCm2Dt0Tst0ZFT1J>Dt;jD+<9`KCoR5ZO>J8 zZE6GdbTaLxvoR6P=M%GRv*~C$=?-nJAx?)C0=u;_fi@SD00&ciF%GcTiUbxmxZnxG zN;p{sv13{g>3hk%o2Z09AQK1$1S;OlrXCbU0Y(rtkA~hVm{_1CX>v*?a_!Mr@KY$t zAj~YPY&mB_)V9hTRsDf{^&paS-^P@^S`_$&{aC=w5&R646QaQCC&WyLDvF2=X02)T zECV-Z>XR-G-bcnqxsw$MS5f8<1TQEDI7ov99ilQBq(^WU=(h(e+3c3tCc9kf!E+h@ zMTHnS_AgH=tMP3EunP+5l{T%b=j?ISBiBS=;#z?pr&5zN6@th}BLNM|)2# zA7M5SM4%N~O;5>n3O!D51fPbuxI>Yc3u42B-BNKDJ3Ni{U7DAy64unWqTf^DPDHsB z=!#lUp=lp-YsTTSD+rm|rT7hc;urJm3||T16Nf@9ktgP^Oln;rM7Svx)1azqs;8yv z(#kXsppl#>Gce;>FDxOr5;n%i87sB7Bgx)G+v=~DBAM2wZN?OJp$Oxp-GH5E&Un?U zX@i&E&}6hkZHDtA`+KQr21f%7QnO)kf`TD$r=BHTE9^|G?3%Ly`WJP zBL2*BR3WIM4~)adQ21FC6%yt`QEy^{F0$)0L~l!HH4uLh);KXZ`yTlK=w;&MOEk^8IH%CS_ZP_{^Au^;}g_^w=(TKUIDpMy| zsrH02Tbq`SuU)&@_q{s1C8Uc;p;V=MNyPYIJ_jkdY5_DuV`==2#4dHc?qQ=qD26BT zDr4M?!>pc}bO%)c|cx#D!peP8g5ItL4&;c;BzME9A@NrrHf7XT&I( z=&`5doS3J^t7m&KPhn|r!v;<@^rs>8j(YiwSdSz#Dsn9@NY&~nQ;yXWTc(g4vFuX> zK%pqgWzi)uQy+WhCW260O{Ue}GcHn}bRM|?2K8_N9#U9uk%|Y|4iI@5t38bD+sy;j)?d{;DPyK&@Ok)u+vlvP8w z#UV>|sy{T@I?jVbWNwBoB&Xd@g)gcMH6tVgL84-8oOl~bP^p!yN!ky3fQ=z+Pbk`8 zzU<5;S7@R%l_oqH0h0w&ek~Re=lJLV_k)T`mA>$B?6em~;Ed!JI=A9bw0k27yJ#^6lUS938^!PQL9j-Fci)(XPmt4{!B&Q5IX?*p;KW%5bd{o#=L#B);R>UQlEJb%Ig-llqlZf`B0u`xn*JiOV z#kgOkoNh>LL+m_=w4UYo_9U8l@1ariqLqNNB1?hgMDQ13T=Qzas$@!doCq~QaMjHC zT?)Pl7cXSB8VCv(=91nT>O~&S8mW;5Vu~Gw_zG;$O|7a$Q%zj0O3Tb88h8n)dE_-x zfnj{2k>476k|2l<5*0VKs^G!BQNT}*Jf#ydW_Uo+fhLngj$sx!#?G{gU3M}olU z(!NG)LVcS%0sBwoBCz!yJvc3LT}$3M{?L(hWb%|4T~lXp zpVTzjqH^oiuc!lfWt6jLts+i0#Na`W27eST;d5;%Ov}tie?#G=A$6<9T$l*TP@kHq z;i;fGBqV^TSV2>b$-VA)S!z7RCNnciA)G@w*0;gr0wPGLc3Qbj;-tln_7j+QF{mI1 z1|Bi3kA`TCy5@5OsA3g^QEX4eGLZuZgD4=8vH^CZxy2m{Aw;l+*2Z9e8mvHH$jr+D z&2k;mV>XtVKX&ef$WIy%E)ur5LPGO#+va-MBDdDQZ9NBsS#0?k4IWpM5PLr`@7wEQm9kyX&|wb2O~{T z&@D7?$O2APhsTH_2p+!SgjWru0zg#CsLD!ItJKYn#kK1)v+2oj1y5Rush>4Z@`H>7B|;l;<-VMiAIaZUCiLFKum-Oi;elUYd0f(cH3vgzu*v)`k*Gny?OB4^z+F!e_MMpQ;;-2|6>y$ z;KjzmNf6vIkD~_R#R)5%r51C#dj}5Ehh;G12W`L<8^%Vqow%4$A}XWt*g6$e#G0BN z?U$Z`@u)j;Wc&8*ot>TiD$*c>z>!6jAP@_%+#g{OJo{^JbTqT8mX8f$i>PjB^zK`n zt}5X?BN8&?PF0}{l&;L@v-#SLp`uHl#9e#S!zU`E(v?}MRr-EKfYe$_C$btAbTh3- zq6d@DNzWyotSIT0AE2jz%YsL8}&bqK(Y zdrm_~F#Y46Vxq&KIGPfb5sF7B5vhw)Mu{Ue9d5KZd%<>Y6uvZz(Lvzot{TE;2P3v~ zvrD;X?6)nh=&zAP(f>u=y9eE#R%K#qt#|M5cCOurhC|afec`IiAOeG6Vyr@|s5mev zVRS^}m_&388pX^EsgjcN@|UBjVhAN_#S5vCiv}2yvILnC z&*l5Rz4yCT{#ehm-uFA*pczeRc4>3Y_np1>@Av-RcU_+KtY^(wUxiSa^oKelP7HTV0KGGmq}WERO^` zJ3hF+kdCUbJAghIBNQ<3^91FCA^jx1JL^j9`qYNB1XTieOa9v6j|!@%VArd}WcHAA z1i>b^#N5!cgXLDH%0rBn|?uumbRIbi4 zSrvp-v!WPvo<^5YanwLa<|G{M0HRIfWOJ50wG^Q1KT0Bw&`e4SfOQWQq;(xq(=zfO z6;qPrn)XgdQlYTGGf9Z(0^HcipO`i+{U^XWBJAX^qg&oywUHGWBGP@s1K#)yu`H$x ztwI{~Lacjq_la!-0GqXV?ovPS8h;?LGuD6gQlN~Po}JxaXmn)rRrF2Y2yjwMKw_%ZrB^RS z#5|bc?kQ2{EVC0jDW@<^Uqcpzt7bL@*~WUZB$+rV9EA$W^!RZi7+4c&pd%_nqGg)r zkc@aK?ey3i;~*i*WyHt;W&%xw1n5c*iHuZ`S1=Iil;Fd_3iw!|^cTvA!e`<(#Z|NS z7)4MUt1+OtVcu#3GxQZHBa)5#UO3)Z2rjIOYSSh><4ldx5t6dZKpf57#%(O_-UrcB z=F0;|Un}}R1;|F`Ez`Bn2D<_~)b>*PF${LFHVO(nT)>uJf+IU{isJf9Wf^(6(Idht zWr;S3L|{rC0@~KL4-fa;q-1c`JBQ^R%EqCy0dTJr0H zJ_~F(v&^EYh$0fwQ#e8`ID7ZlvE9?BPk3LOEkZP#Zq#gNd)NC)SWF*#0$bD5oCMQ> zKE~7nTc)a-%CyVMnG!AUqD`%3BYgCYs+ld;o6Y_AUr2@s4DIx83@M>)kC0)|v`lXZ zMsit5WEnU;SCmAQh>9+ji_@o1EEkLJn}}#F+kn*F-B-eCJbZFeq+^~AD=%Nqh}ORR z332)=W;3MWu+PT z2m|L}(PuJw`46ha_*7{n z8*w;pkr1;*fUp_eHxklp*?XKn|KMiRryYR4jTDN^%;qSii!tKha50JjB-JD0YO^P@ zSS+qNb#i-q%VQJa&9;btMfBC2Pvt?Iw7l>wbX6o(4EHgRjY46Fdz#_$W(@2*h>= zt}^X=VMY!`Fa6{9{?FVQ&bUz1(`0zh%1kMgr-8zu9VNmv=!td@QX1kYa6ix}%f}2_ zsa675Bo3eT1xRhlB!VK)BknK1KLUm+0a0|1>x4&-r%NPdoVBqB%efC_s)$Hrbav>p za7Z{m2qSjJ>!%dZ|W{@d0->@oyR5PhVNmzt6 zz4XeaVyy|Xhmc81vw|%e@eDzZu*Xz2tYN(4n5$SRA&1cmhF%t~ga|%-?dxVxOZ9Nj zl=7b`P!-AQVz4=o)Mo((rwp}n!|~$DK@$dL5iYjKw+9MwVN4YYL)QXQC@q^-J>87E z7_W|!H|g$sgxA0<8Bpku$BqzF)7E6lH!6N8aUfy@%ICMF1IEtf>%>4c`cs zXt`T@+6qH-Y$iO79@CSn1XoQxdB3<$R1vw&m|BH~H01dN`b;g``YMwGl_#Q{P#F}F z5Xs?vxZdvGqnm1e2vmnsW|eh^{NQF8-g)=vPC2U7kI)8WDynJ(#E@nG3Hn!hawdyX znQ-n!HTQ1TnD?R=Ybs72S>OyknNE<)96iWT6MiEOG()t+_Z_B2ApCwc(;Oec+*@FH zhR$B*o6NHESTMlJp;Tt3>KIzVB~nh(_2>nsHB%doCTg$peR(HYb1epzj?R`z!$patBh}Cs6)A)R2;o>Vzt93`-mM*UE85wBj`zt3YqBrm9efSU_`D`BO)Ifq@foP z&oS~V*mZ>sZ!PO_!o{UhA+ZvjxB>7LX7E|z0UWR_-i+hqo48`5`*>9BSa1V!iVUwa z>Y$4gVK|?SDuopg^MvZ6kIx6l*l1THq7(fo+di_qitqVuLv{z>G;Acnqii?I$Ss)X zL}&S=5aF>m;^7`2bs@Pp6I=tch@8C;%3M7*WfVT;ENnE@wptx*Ew@{1J>2^`7vI`) z-Tl6MzZ_#(@x&4@7YU0{@g_YrF(NEfMHX40?n8P{(4x#q%2&7 zTPn6*uQr?2_V%u-hxaKf5!5=6asjQY`O$QP6Gw(I1L)=h%&&Hn?x-M537WEQ8_qRUA%Z{z24+%hg1?mST1zn1_(vr^ksDRq#uNdPI(zB0@u!|f|1l+ zqySC=LyP6|>HqP<9LTzS5~rt3vd2u><6itp61g z4aky}(UBP!REf|(de6UOLL{6vI(ob-Q`ZpzL_OQ6!x`*8XzLg ztT?p_O!>%(8Xk<`hcZjb&$K$Pdc;3PkXX!<-Aoq?+u2$2)F6*iF!^P=HsJ-ZB8MeI zH;k$%`>O}?%tsno43|{ku*9G9xRy{(1;lXS%IBJaopBzjkP?g=RLzNX8r{2!_ULSK zVCFORTn2hV@-sYxV^uS224M+w<)BRueY8pp<48EmYYcwD*y6cqRUny^wO9|;rZbKf z;>MblL{Pv{hssqt-=KCHH@?B8-&2ynVmh{1 zZf)EK;1jbD70-oI0lZr^@?xVg+MkX$<0p^sO>9KfbZM&Y?y**J5jV8sL90U8^VEat zOscBdOhp@RwwHe@)D;4HL>C#)^6=qGN%3Q;Jz8re0fvAm@PQ+|&~XA&Qbp%-+(;6M zzd&$za`u_x0xr>^pusAjM72N8wWNT+4vWe$LPKU&KsK{I%|ZdWmQmy>Dyd|5=d~%b zT*k^%_#$ON1fDZAYrjE=%@#C5U9DtelSqRHgI~`1G$ThiHz=AtnxXo*K;#0jE5Sd3(-`Efc}qa-c===MxQz zh2Fr#)A zoCiB42!PJ<5sw(0L0YzObm?PkE>+I5zTz%Docv;@%6RC!2>60Qjw_TzRnYN2B>#ZD z0`IT>$f(v`VHpRvJyB7T5HrQfg-jvcW2^G`FDni@&2kwIFM4DZBu34$P{o*RfQ-&_ zM1x6xDTJvYGe#g%70~>Zf%(NtH&&G)nKx<!CQvbam& zOq5g(B`BYFvKcz2tYHNG8*N211cioBf=6|PG2G_`59M-&L;#p5XTdyuTw9D_lTlJ6 z6HdmjD|)XBV7gzRd@gn)Ok7KzN2rIgAWAEslHp(4r%vU!t4cczu5gZ3LZoR(>OU65 z983GU~u86cVD@|D`R0~(3HEjk6q`{FBLN9%i)|56 zX%W5mRmFkKRhqWN1NT38Wq*JAazWe@zOcSjZ_%aqbQdmLU38;c5tbYb62*qgo_vm; zIDYKpsS{u~01ts(ZEdM)Ndfb|CW$ta!U{IBiJ^KaL^zL3rzfXH*$8-fK=^{hnLnDK z8xhRtYYWwOaJag3>C)lh;eZ$_{TGo?57*d8gve$geHkkWHR-A*t#w^=S-LDjEyOay z%5A^1yL0mRvF+_GM7-nT+{l*5!t*FtE0O-PM#8Xrg5mPtJLLQe4Z+Fb8fAT5W$X?) z!g$K4)Rw00aJ9K~>C*oGAqG^!rBqzPD$~(&g$OTXWm4KKnRIR%o92{P{d?mYp zCpUKlLa!Z2s01Nhxnzz8KoBu)ng178C9|>c6rFbew@1I=3Afm?5*wH@*h{N{a^Q*Pfe^2_iy{;`|iK*_G5dCMVqF{ zhKIthH$iw{gt9;Q{f5m^&zaOvr?)~hiKJo6YrSI-63XE3B zbHJYnRdw?doE;Owm{CTCFXUgt1i`0pih-oh9zBDK*~9AL<%)7X2;(7=$tKG_P$1{m zN}*d*>P-AM|0EUUh=^H>@XTaXjoM5yTpeRzw5d-JO*vSdN`X9f71#{4B7q`hUSM3Q zQia2Tp~+$^7?W9Lh$U`noVN>8?Bd=#fFja!x_1}XELK}iMw4kQq6`F3D)$@DjUc_% z_6pKivRXyc1?$*2PE`=%_oxCj2$L-+lM?PQZ>2HUJF~|*rAXBlR+BS34iD*?3xtAa z@dtAa!_+J%b!M0~th=&81uIJQVYE*Q39Wfm8XZb|x)8O9?tUm5BF%IuikLVs5=c~X z{?YQVG=76sxk5VfVhm|^rM2q zmi;7&czF(1Jgj7lhK*Bx*}&hTCNP?48)6F1RB2MVlFIPvbZA`_!8t5#cB_@l763_t zE)M@S(C~o(2%sq|0c760I2uNjI8LQ;wtr;+@f?4*vqbR!GB?FfqMl?3IX~U?^=tDOPufDz2j!2x4(1 zsY7E#ERNg~EC|PL0%*>d&x)=G;0YGp*ganwojsp2_Na`FVdZC$bryFjRtQM5L<$L{lh3p4FO&@YrZ{_t2>ofRzl`E;EJRt12`6;7l$ZpU(mb{#|P(nkWMy zxC%Rh2oGcgDwtN*2{aUP!y;q#h%ksulG+S4`Ce18@~tpUfQM?-rm*s14S-!PcK2{- z&yU9@62=fG#&wFA5QDR+_nWClp>X&RualavV9;O;73V1K^~BD_K$yCDRM`*-M(s%K z85e-0Be9gqqTx!+Y!T7DVnNm&r;(T1+E%zc@W92x)jI!yN?2?bx>@>R>jw)tR1?$W zE8C@hdM$fvU4$;WxS1~6KmZt7=+5@`>1$4!s`u3tTcu^zDuSvu)7E{(s&pqaIB^kR zHVlB-Q&ujxj_?Ev08kQV@Lw(PW8dOxaLs0|iRh+p&fkAwz1jo;s{G#^%BCWwz4>}6 z`zP9$GrJd&?ro!cZaW*@+UPR0g{YV=7K>}IJ-uAEj1tp|GGVSpgxo46=&2qB|(7N1U2{%UYXMhsTP zYJeOl(E1cb>992s5!MzW>fO(ufAHXN?HozUwVGdXB=8xf#1RUbNNcvWY}Z_SdTY55 z74Pfm=^ioO5dpl>_@Pp8JDi4C+7N*Jge2Cm;BYo$a=@To6^q-qd6@ z6H!J%0J2RCoY_`ZFp6Llou;axaI8t~4;muG%mLE43L7gTI*k;|<2Y3+;Yj#Z392(D zIP#k94YHxE(^jh<23VMtzC(q!m_V&z+8E#hh4OJ?fMiS?x-cm%Y6EoRh=o<3%TW7MPx}*p}QX<;@*4YOy5QR9Lt@xrhKMIfHG6<{FS78V&hT_ zM>>d69q625=}cRAkva=ppb2Imn108j6P`1A4To+vB3+hNM0IqJXwOZOvu+ShW(wI^ z?uAmA;qY5hyGAklNFiVr@UD9l;ea6NUBjcVMa66>+9J9A(vuy}lpK=}Gc4$VzOc0LK{gh*<|fu9AE0Uzgt3jp#!4Zko}8)T(99u)TUDLxRpHbjyq ziSd<@NPU_PcQ~nRsDZd%lS3xrRH_`7L1X7ykR}k)StW*3L_q9Ewi3o? z4_JeGtHrCEpj8Pn6-CV~h)eQJ90|MWcSq+7X41nNv&j^cI&4uPiNprC5kI06glm>a z8|xS#lO~^mX$k*SV=i^2wCu6d9?Sb1<-5{&|@R6~RHlq4-x`5v*O!20Q^}1J-tMA<98c^s+d$0ZHXPemKH5MGOR^LFq%;#9&@DIJKf(p_#Pf z9aSwA!`uXkA#_y-38!PAD$a6C9Wj=aYJK2&1?{xCA<^_&G&h!*(l$;lJ}_l5G)|OU zv_Z=f>TpQ$JI2$MsRt!DqNMn7B(O#cWvXVjRBIO=xU_%elJrf}z7_k6&Bd*@e&i$W zf7D|i+}hn&UElHN*IkZhow(__n@t=XTse2{&cprlsb>CwGq=&Z9?kMFmVlG*U2;D~aOwRNfsauEMGa*`>Kotno%gMtr0&C$*L?);C}?0n>=fAoNF+UoGw7w+8q;ytI< zzO!j3Hj8ar>@9cqcJ_9*x3{9oU4kLA^hgmg_SiU5^??1z-67d1x*`x{DYTj;t|)Mj zTPuy4MabbQ4p+?PUTXo6bA>x z2DG^{DfPf+mRbIT5`OSebD>AUU87PGcBBrHW)MM3xyO1}vg};Md+ZN3Gnl}xrkrbR}OU{^n6I_HW%3rdScum&frH!5_gHT#w`Cr<4E zQw!x}(LoAD#iw$-w%py`+Bw)?t=3l_dG;3hyLfSb;(?sK{&BZ`^4%V>7|^9|x_`qn zU-176WJ*L9%blAa|1F>S^dBx3I&O^0O0_W%c4L3EswWqCU8qjND3o#>^`vq;`Dbmd zf&pT{qB#adRAeEFwg8-^hzL(Hf}~IR2$e=KR7Xzgq5vwD7!w>xv&JS5ri^&Bo^@!; zaj>}P5QQRmicp4EVMCd^tA`u2_zZtB{ZWO?#HtZY7*=)6h)~yjf@mvM;*<=hKBcOv zG&7bpa`j9X(bzzan>A7AsU6iF=<65BOCWWv!Xr#%Av0$>NE20Stu5*{1CGZ60{_r` zMaM>pgwPCmm}<5ip3wm9Q;&oe^xBbmk09=eWfALrkJZO<~Yq zm>?y-$(^YhuFb3{`pgDZ4O1!VfJut8rjtnEpcZB5$VweaRUUyl&DHD9WD z^O}nMBUNO+kqo)wou<}IF-rK1t5PS7kZH@MaK;&Es49nwi7u8)xS3FGP1M9ATH_c; zjxWgV1`Ed_L4&>r2j{G)8h6Y<2iUJfmk?0UITJ|0aW!j%iE*~z%h=7p4TVoblTM+9_=*51odZ+r33-G@ z%BO`VCN7v$${C~S3tAqHDZW+;&`-Qop{kuwu5hF&yebAEry8k&#b>`jO77fF&M& zCS!Dj`Nz4vn(kb1qQyW%iEn6hC;S%ZrY19F}mosYP2^WGBgZ7~~EG=mj*-|7x zl-T@Uun3WEETzWq*CR<9x56q-m0nPmE?@w;4uDpu%pNIDNLm^O&ji?}1XgpF5%*#Z zZpw{j1^fj(GKQxsWk%p`d=ufPPaV7V)G^uYA3S*f`r?(Htt(Ib+H-rS9xQdKJR~OG zY_Yp{>T!?%`U@An^o4VOsiG%O>>fX{x6tO|J;kk|kv!I(447(6iU_CpOX@IKgp0J& z36?OLGGgmToikp}tpeD`tLo_z3f-l8aAQNVprR2yyo=bP+38a!B4WK>KXBnn@2kf= z_8*@(cADz1y=vUn`p({iH-G)5)93a-{i#Q*Z7)wJfBHB6*Qc*} z^xyK<)~hT3*E?S$qRRy<+{JeU&K&HZyb1~^{I($Zp+yxSV+>@fjCz1B9@NyYND13N zzyb+X@hWCdNK)`|rQeFu8k9= zWm4QUuP0TX4BIi&Bl3F|G85)QRI)CF&F2nKet(ry+eamKEC4Fty+H$$IEgq}& zdjIg^mHmC?D6hZyg2vIm#F1Yp2=mqu3d&#}diRs3&i=psy1&QQ@srp0P47Nh*UB2? zI62|GKNB@wOo|v@bpd6=a7M#b4TIz&I004FuL)U!Fj}+Ijpvp$1=Yk>(Xpj6O7t|+ zmN73k)F8QCrE%8}5|J8TK$3*^T49*s_%w0>J&6@uVzvKvl$KD!-kv;RrnSfrOG-dTn&lMtM5e^FDRt$mZAMfgb%I1<ThnX!u zi29Vx19Vg9JepAtEryn|M&nu22$ezg9u*9qcfN^*N(=@4RG^pcoz45m8Lh?e<7{TFU8sfdectvfWXs1Ys6!k@T#a#IY@_ylDH>Pq7FUHGA&4&CAtc%L+a=zGS#L& z{77?DVMcI#7+ESYQEYfW!Gf?*_OPIXB=dz!U?giDb7VUBu0(THMYI#%%J`KMRy4?9 z&(2drxJ?F$LqjAoE*g!iDk8?fHOc-d9zPoJ^E-^2Su9l-)H!)~lK14ZPcI#nBr~O} zGc7oRHcC~r(Ng_tgG?bz`$_~A-l)nI6$@bn#?d7fqbe9_0`!*RL5$j@PRI15MI#5X zO}JgMHpCR@bCnQ9RGRQ>RNMHas!59o&|Ip^CfKY*RIX-#6sk8T0ubzvmKF9mm%J}Zf1(ac)a6zSAif?NA>Q+ zxJec*77W{6tujw7N=(RmIK$nqIeX#pi}r=jopL?&z8~(rZTU~0^Wr~w->=K| zINZXsQ(f+P-(#{9pL|BDHuI{-p&UXeGJKgxQlW94L0haeZngHaH$3BSk4%Zka%=CY z&v?Nn{`{?rwwTxmJQ@h5Lj*JEXCyyun+`g5R)$#$EGME2D+b$e5`^J0c0XPB`9c80UKcDI(6CyR+ zju?TSgqRjGT7$sn4_vKQAN=4S{pp|mnZ!fCOK!N~`v2-h-|_bfV`cCc9$&P-)uH30gsBc=%erqa8llR;YXMkP322qPyuRE1jODd zy_Aq1T{)1Bu}#V+OHYkVq)!>HHir4gPRmX3(TWtJlNK{$@;pxN8cbKm*`c(Dj@oWA zqBy8HD&Nf2qrHh5hfxC-5xWI4Pb6^Rj!4MET`^rdiCIoud|09c*qE?u4Z@=>WBgeR zaA8Co5vnc-qEe|kxoTHW?2De;Ci#pEEV9zuax^ik=Ux_o&WM`3q8=OM*hzcDL#aqQ z<)}TP1O3#6QL)7_XS2e=#@(DmE!(6WOn_Y%yn|dfEn0$x_6UpcSVJq<7FnWJjqaOd zA*eOP%xQv_ChU6f2|~giU^TJydSNiom!wCxv8HA-1_iKtFVh?7Ho0(A8dEn9&Irpc z!m_gUm`w^)9fcNxDoH}}ut91~475fmiN!)_kz@2bjGRtH)P#NSklCtCkEsm(O&)X0 zu5wI-jHxzO4=b;)dv%zn09n!FGKB+4BtpPs2v>+(gh#4M55kZOf{)U!xfHaZlaoQNGLb_ zqBY)K;UmgBqAjdcFm-lNrw%4a98wdSavoA{0Ov$NaAN`?*l=2|TrkiIEID@F)^;OJ z$Q^y!gJHs4v|@481}Enf`P+J$ZvMT`8i{G|!`h58e$N3LK$|xJ1kJ zPXfCL@y!MdRyBX*O)4BCoWK-7>`mN+hL>x^~`~}9CKnjG(gK{WVDeO2- zN`=29fsTC)M8{o{;EW@HyxK4paZE>|8OlB5DmmN(Zke+~5F7C+GYG-niwKuOENOvj zn+Iq_nk7U!WjEi_u_BAwu>eD1y25%p*oK6nM#1IDf6#V>)O zCagBZZuoa?4nit1oSLPFdMz%6)gAnQSeB*dU7>R^L;l+yKJNC3FvK$f}!fug(= zgex538n7qgs8kI!KF^WP=YBZxBqxpq5{hpMi505gWhdI>qHdc*UtikYI)D7yFCIxa zLUwm|+Tz6C&W_tMB*jMiHP>GM-~)GUR(-i_tm44KPKgmqLtKYU+e+cIo-vH!(9x5@ zYoN)k(4ss;-V*qyT5XGyBhtEzsztzr4zEF=+r`CWwc3O%Po6pxu~9X#Ff$EXSkr|{ zQ|aUWPCnwo{a?JYzgp^I*O~@#_F}6jOfD@moNtIHt~6nepnG6*lfFDX@(k(KGI*$( zTVxTJ3RZ$NStMk$iBqSqmw&*oW5>^Q?*txaR0&nyqAFkAA((j=_`R$z>cobs#ts3% zn+%5hC>K{z4Xj)4xAmqUKY8Q$ioew>u6xuIHyg%S3} zO++l0%dfsxk9_n~{^HO7&z={`?Ej$s>j{>xR#P`wWUUw$Cb@|0hzPv(MP#lF3+5~ z_Rc##^O?_n_MuZ}B|5|-lrs<0>@r?XtoB&0J%Q^{OfLXlJySAIkT z%G*Stm&j!SaAj435r&Iu&UjMzrJAJ$GlU6u%r8X(1E*S3NkI-nsgHCgPtjb4;iNHi zrN$n^g^&L%dTJD-Slq?8>NRFcye2N)&*rNzO{4 zuxUEMAYf%yDOe0LF8H#xNB{sJ07*naRO=dLz*4z84Z@R1$Dx!~1ZgkZCZS;sp|+~~ zCS{@xtWUBmJbQgO9DWs?wUFHqT%xW&4{( zl94-eW*}eeNLC-jAnY=u(4zpE_rilrn`qNf?_ly6s@50_g(R#D>!_mAqgxSUX_^tb zamSJ!plS^PO3_O^LN&Y-stkfuf%+xt5UvR_4p78=q|tRt1xn`dR)m98 zz7OClpAxr>(G{lvkc6v`=S%udZXSG}v4R7h?PQ@hVUa<@-Z%$pOT5!UnBNs`I7Dzdy+l}o< z1c_UkyEz-qq9rOgud3witfca=-wA+zs9;`KION{AGudotMf?=NxJMk8==3*t9G~2i zJ-VXR&f2a1=Ew5Mwu`+uUA5X|$0*VBJ%0xrJU-TBg0$>#YlJnG8fBMuL~ zynpv!Tyw+I1}G{LzSZN(Vu@|(1MHj5YZ)xMd$h00M1v9K-njb3p{2a+%<6LgBUCr4 zA(>b-=pX7ZxP=VBCz(`{bXqd5wnvDx9sZ(=h^w6c{GY8ZU0AnAZhg+rTz}uVJnwtk z_Z=Lb6cG#Q*p{6^#b^`{I1%C_EzmV01RX0+5Rj{Es9mb1h%36e>7o;(6pJA~z>mZ_ zKXgUquDkAf>s#M?`|Y>4)^5G^)`NqCm%sew4Rx%)mscU1<#Q!*lS~qc1Jv`(LYXJw zAbWeW6Q6Xr0g9su*VuK1NE=?s$sNk4Q}QWSy?XC&c*7h1@DKm+p}%_SQ=j^>m%Z$( z-dbAAG0tn+%2K9VrZ|8sfJ$RI>?okg5L!Yy8b>#JAyeGjq7xWyS}wsNSfo)YQUHB# z)lXVRsR`PI4&N{dXFkl!-GA@*e(#;{eCN4y=S1Y@n{R&6i(d4sXFcnyyagGWHWwEi zI20~Rq;8fLR)r#EGJq@zX*t27{A~T65ddvs8C)B~l;+jTO%!#k5cQ1Cbjh|pNG;TW zcm*M9iXJcqtBM6>7L}@m!lL_dnL6M7!@Tah@5?{<(jQr`*H``g%9Z_}{KZfx zy!*cUzI^uVqvWf;4i681{~dquhBv(F!3Q7w-j{sO-yt|vxvP}+L}e2~^qK)rV8Uq* z%25+p*kWt<`1a08@3P*kH|xur^}eKRgK9Dh(wQ*V&4=dU#_d=cThjVql!;66@^C## zQekQo}OBlX!^uZX;#J6dRISE5Xh6~O?K)LvkS4U2CLzd6Q=18Ob<0!9`Tt9J3oESLZk(mFN=TePIg` zZQ245wO3uKtasr=k^&aOFbjjIMY25s`x4kuUaf_Q8MKe29FZxQ9a9d3?#MYQtwKHu z?Ai1x#S(?sR)AydQ6_|3P&PVEaZm;z3fg5$Brqb9WGVqM#{>w10(%2ll#$-j?p9o` zrG^lrtwPzP1V_MRJCRXyK`EqIIdt(e)T8B*DzGq3uBGz(Qlibpdww_kN-=QriAIoC z`H&JN&nq;)us=27?t!3}N8+@;GNgI7kqx4si&VE@k33Kvt>mNIOgB zrpw?kR3CJ*r*zl`09)7)Ras>=SiM>k-5q!taw>%wAN*W(!WF|orfnuN*}2hSF<@LN z8(i4)05?3nvGXmAJxCw!3>rEAh>omZIG}@2m)sMlY4P5+oJGC%OOg^d%grqXt6=rhrKCaOnt&SZ8HE&nTWo zE9MlBl>%DT#L&%|jlk4avUdcaPj6s&;w36nDWS6cN-^;!;pci9$*|#GjQ~LIBb}=- zDZ7s=Pq1P7Cb<@c#Y==VC4tda7dV(2DvjEgm|Vv@0%1Ta|6$veZ~>G%8anHikrK4l zcmye_HHw>+4Hhd6Wj`DVAIBs+S96IBvRUje$oYw>wW%gS&8bp{OzMv$Y19XzH!PwI z3Nqtfo^(mkbdgY9PgNg%@ZOX6efg%HlaH6!df>{J<-X5ebKR|xgkSOQZd!7ljF6}N zRx0tE8r&GgRfG1hEz^XWk%1B-6h>UYm01jl_?2! z@RA0!+TDtyC)wH*Dn50&Dy>OkryB9d#MlZJ+M(m*9*VHV?CJVHIil!7m;TTz=I z@@lO;{pnAC)0^J(`OklTXJ_XTk9Y(qDG~2_*SlW&(wA;+ZGDxS8>OGTiY!S-ndd4k z2#dz#Sql+tu7r^cUeVS}rnd`s)FGc8cIoQ;~Jx` zHLBACE0oH(hH3~dG^i_Cbp*WYVezSp7cc(HANawqa;Vnp_4j}OfAj0V{wt3-bLOGQ z6tBlcnuMVB)oR`QX1QDzqsq*7 zcD8%(5wcpZE?>T^s>|ipa=8!@cfWk)%4WS;EZW}Q-c=a+;o;$CvpII`*k-foy>D%8 z%{NjtrJ||}JKdDk&g!%hkHqj7))sAhYwyHz`$V{IdSC5dTCE<8zDf2|;zyp^E6K|Z z5vlp~k%k=|YAGvdM|MsAYv-8@2?08gwu+)9tTJU$5#TI0Ns+H~Y$k!0Iu0jOIbkqU zWvj?Uju>pVzp0WiiOVd8MHxX6NgAv3ld#R56%$qmoRCliso}= zf{nO4(>4S2f8@Mw~vs0UuI5-uB$#2@~yQRc{`<^37@IOq7tgnD8#Bl29-?*7bL*HO5w9im5XyB=+{F> z7?e}6>S@=+Ji4lS3e7TVMIjhO_3)7H(Y?23imx)ls&GA|_R|pLbF!u;DlMxNkN^W{ zR7q&*6r>wT-`olUs02Pl&C~*5Su=fT)EyYpE?n+=lf6>}y&1&xmi=9v*p?kanv;1O&nnp8f_%2!>5mX7%lnU@%okQpQh zhNvetr$*V)oO5StBDSz>Do2bsux4(R8UlSJuE}1Qz6miiE8l*d#AR6rHU(NWnOxh!`nXuLe2QqC7xoGeLj=g{m#8Nyj!7KvAb0M%?nJCeNJnnh2@#NGZ(z!eI z!+>$vAc~y2XKfS^FliHCU zk?i0BAeRnEU=WzqB!(D3{v6&8_T}V|aUP>AQFywxu398e=6HiM&RquO>7c=3wqJ1% z{autW!jwt{oxX^M_hF%xC=Ierc+0dP62e}Mkm&U-El;JX3N0rU1BgB*jAYz_&I<+v zAgYQ}HDQM$;XT93jBg?NTT(qctu!9SZ4NJPE?vC;p5xaHa7tuwxmd+V zJU94;OqCO=L)R7)Y$wr65^50)Brr7(SFb#q$uXTVkT!-;2$m+~;;Pq!4?g&-zxu1| z_4HGbIF*|TR)pFaKh&wu`@PkrhuU-`;Y zr%s7T@BNdX{N!e{`AXnaNObSj)JeZxn;Wre*#{xkNO6b?BY;|rC(Bk)CdPEg0Jm8S zA|?sc#G$VWbM=FFK_zVemN ze)h9_?{9g_TVC^;*Zj`!{Lb04XJ7o{7e8z(SXDkq6G?`kqZ^vy&*kg`oCzu$T2Xlw z$vw$RI)yc?L&T7Ys1Z`kZ}B+BI1832>bsPtJ!BzP!D9M0mvSn?=RRAsirWge&WxUz zbk;{hV&j{y1OZ0KzxbZ-|C^kyANYZn{_ns0hKFuYR!j_-zOOwzVuMZaaOUHo*W&JX z-~ENVKKHqE=kC6A>C)4_{;9X!_US8Eu3UTVHBWx>lWw`?W>x+8$N%C3ANbH_vk{Sx ze)MAp2M5QG9eeh(zwzdqZ@Ty1d;j#$K6=Ne@3?sB(y?QEk9*v$&wR$y&zw24UT@Bw zJNLQIeg5<3&h2b(f6KRg^ZVZSfr}R}KII=h<;hQa;#IpxMFp}E2-Atz2IE((eQUa~ zt>yN~wzV7Lt99QTTwWbs3|~fP&+)4EnePrs=CAqRPiC zz^)M!s2WN`>FHBhlW~BEqTMzKf=FepN)Wp$zqCj0to2D~Gu3G6q(;$UuViu*4^Y2^vLK>doi|?FAp=mI;+3we#rV644fmR;R#CgI6Hb-`wV0Z%| z<5J2N(-5`RT%>?fT6AQRg6~X(M?*TLf51s5_5^Cu2)0GIlc&N+)iNCdHX>rJsL>&X z;0Q&#Bg>tc7NAJacwd3*5oOjH9Lx?l{53Uxa&TvuE;2)O8DoH?d~}q#7!@kk^izkP zI&IE4+ZYFp4XGN&8EP(Kq0UapinfK4IH>>R!UmZ#rfo81nShN5EH^KswK=|_^)@Rs zCk!<^AaWGoR}$qA{ZqIt9X-!l)drPOm@-O7rkLGCq9!&bu_ZR%67R1^fh;P6fHtr{ z9&YNBWb-n@@`0)|{f5nRXB?8LtQB;YYk>2M-nxRP^yn_CJztp@2UF5mL{%IxWK9tR zNJvwWXoRyF8*(SqRx~7=buWyE(&m$KHmZVbX^Tz~@``s;G8PP@qd3&)Mhw&wr=B}J zIo^*j>`i(gm@ajKV0bE%lp5-e#R*zYlL+r_n!*g@-BOSxO(e2Cuq>0dsMs3tSNzSskFH= z_PNeN#E*()I_#xlUvq;EAVamW-ou!&P7~b*rDqf%>AZiZ$R+!b2U0nRkYF9QY95Jl z?7#r5DnImUyum!}&f7|r96sg*1+g_yluv$HtFEO13h}m;{vfbbBBv1}p&fS>IO-ze zJk&OASHzzRteRys=~jk{a_OkEoCky8TFgh=N;hki0ZeO@ zHZjwXI@+otVDu>-eW;2W7`P$>Q9;CqT z_>Pk&PrmoP@4bBa^6}%x4-O7K@rh47?s1R1bm`Iq4?J+=jW-@Ye!Skk*=+8)=broS zyYIT|t~-17Y*p1F;!9up(#JmbvCEe)Kj}$Ny8im>>s=9X?%cVLfBfUB`jn?UQ+1JBzJjA+lN@Yz{7MR{L;qqfN}+J)1Sg&I>ux?S+ipOvhPDFT7c;L}js9$VlFt z(dgh!=DQSGaD=nHF9}D8*Ni7N?_d;5E2h97kGNGLICVCn{Be;ZB;8YeXnq3{4s^OP zu8c0A0q5B$Et`T@RGW&ac#4d>&xi)ssf$>yG^o=o1im$9V448O{Li)xR@fS zNJj($+?Y*U^-P3FcC0{%4O=Dn3nAnLQ!^PGT4{o*`+rMwCgJ} zBu1{$yHj5^DHn)9l9-bqF?kMENn@HoXOv=JBc_Kopo*G%Pp4=lzQ)uGG47O~U}KqD zSV$A^5$f)tVd#>>9g|Nmm#*?Jy~6i7K8BmDyoXOJXAYXRGDQ*M69GOq)0_)qZv#yT zO>PO_PV6t!w(NyWOr*`SovC)sRiY2$Znjcbkddf`M^Cju(PlW8It0FGV@*?ja0`Qift$c48c?o#a)r1|w|q>`^9Hjr}1U z(aGKfZjY*+;Aup3pz4_7TK%dc&1aWxt^$5qIZ!>sTnb|S0&+Cc8{P$hY2ItX@JgNg zqp>-GD?SJkSAjXD1K@z?v8M)bnA+YGiV7--g@`r|un`PGWaA+jxZHrOTFuqRLWc`a z5mtdsCUHjW2Q`weVM)@#B*~k@4}3(M^}qvQzE0M4!VHSd;h*JF#xDgm<@yA zQL@cyQL&H)HdhsKz(7&Djrd)#)m>Q0fP3OHAy98ng|AAukYLD|hL(sf6;D(Vx74{~ zM$O!X1a%2@L-wVB+NDf{)m9>sk_9>Vnh``ut0fA;(pA5#+$pHqY2bhI?nX&^v@ZfK z94B#b)>3~I<~;8%oAP8hFYU|CFyFU9zBt)yJtG3*g!o?PcrX+EBC8v*sM+}M;kg3b};XWIo7G6VPYTUS- zTap6=(3Rup<4a%T+yf-efEPotv5Ys+)6ar}gsL<%_ltk^>Gv~?7Kw1(6E$CKuVZ(0 zI(6#Qi4!Lx;%#qx+uq*Zi(mZWGiS~`?|ILA-t(S!@4ff_!Y};7JKpgQ zGyA%)`?}k2zkPpyf4N+~>}4Q#5%dFOJuyl~;dGoJB`SH0?0 zXU?42-{1eO-}b>vp?-vtgcX#(H1n|g>DP6RZHmhmL-L&xLBor2Hx)$~}5*+*&NlO-tmIOE0@nsPB=MH<5CV506j%@gM*3{{Fs*eDgPdbHSH; zdwWlN+S6{k?Y7%*zy0pJ?|xWtDm=#N&=P@CbQdyCn;svX58SlXyce2cik-v7XMko{ z)+pTBP#5D84W1Oiz66$38KtB}jR?`jV0$n%)cF|z=I&|Qgd<%5MTeNOcOK5G1ou(u{YiL{`Y@K zME?E1f9-2u`|5{Tal}|=4N4**UFth{aO$sbdh_q@?(Wp@Uj7sR!_7C}bjvL_Uw{4e zU%cnugM)+b`4``H!wrx5%fI~OfB5Y;-u9{6fBzlt{E>h4Lr;6!Q!ie+c<$WYtJUi1 zPydF0_QL1yZ13#u?!5WUzx#m?d}zJieD`<%^Jo2&XMXHsfAPQm`ft4Fz3;o}rpLbM zMc?uG$3O1OnKS3lKXB(ApE-a2f&cEm{g)s3;DjixGy66X{$Pe96SfL63D9^&3zEyOf5Lr(+R zGd12bZ%3@0-r6i{fM7|M{CNaw%Td;W=?xwpng}vsBgEsLRG{koQuM`yXtKw-Z0@1M z^O;pwh_Yx1CsbAg9*wG1B4}%i-owMYgTGE0i=>r+YJhtY*(405lX@?FD0 zK)@v3s38QGMI)r=8lHKds)<^P<{<(C$WpddxU&+RqPltNc1=!$>uG4+tTbtI&k?DD zHnIU9WKzbIiLOis3;(5$ zs3=FswqUapb}?&%BXA>wMnP%Ihf&0jgeZ!FC1mRHu!u~{0n9^ngrA(a$6%>g19`KZ z__MHa!7zCUW{8iVCM4z*N+OJmPLB*76Jz9x(oQizho*Fhq!>K$x8Wj#@;+SH(Lj;z zoz0L-ApGLj=OP0 zJqFZPMlba}BGDu@)U)L>r=a8nK$|hC5rGnNtcV=9gIsQql8!W7W5Wk&^Vp<`p~952 z^;=8pAEw27#uimZ1o}y7gYH?Ka@G)t^#}>$JhOD{C0!J>4Y}RgL@3F%j?62NmJUNK zH!mZg6mkuYbB98gg_3b*k zN$1z;)2CnZl9&A4&;8t$D_4HwH-6*Y?|%1lpZnZz|MqXc`R1F?oH_H@$3AwoT8YTb zH{bky-}ikV{NM-Q@|L%}_O-9Q;f5Q&>6^akmw)+}@4WNQm%sewx7>2et6%-<_rL%B zzxa#4`13#i^KX3P8-L|je&tb*delo_`qC#q`N_B4cH3|M=5N03ZEyRrAN#T2{_Wp> z{p(-3*4Ea~{_M}b<~6T*nb$oVP1FKamO$H(k~S__2WPO<6nUXgnQ$R z^E)EjaRNRqZlbylZ8G zkiP0Dk|97DXVB{O;e2>FW-O?s=svTaX{%teZh{7!$)F04Ho}fjjYYjxWJq)bYf5Q! z(1Ab6ny}mwo%D6Br~&=J8ck{tDHAz7*SqijLVnRJUh!}4xZ{qW_=$flBCq=CpIWU} zDMa<-KmMaP-SpV^zyBp7a`zX$@Gz^*BVuF?1oS9m*v_MY!r8Nry7roDcxLt3u{{wv zapL%yGuP%%p8f1+WlnhZQIGoam+!yrwoi-5&d$z>Ze|D>#et3fBp5h z-g3+7)2EJ{4+MP{;u;(rAV7R1-LQw+s{1NdJsf(v5K;D?`MI%7jREgioeCC1Z3#L) zA3lI7Fu;Kon6?ri0DVsAyy)4>#LHCP^D*yCAbtYgJmX;|FZFarR&2q}n-VBw(a%QN zNa#G7UDQ)1wvzvF@PTy9j${gh5+$=L#5ob+*}p@K11=g*AS8NUGlxvek%Q_*%k1H> z*z{=A4uHnQa=oIJ0pelyODCFiMmdh6vD?G*&AUPY0Mh1B0#P^ zm1&@eidUyY!i$@XxPtm1g>-oL2;XeFrsPKszf;ORC@63FkSh=^iX{QV#5_x0Jpx0- znRN;kCX#amE$R>z-)s;oSLSX?$lE5j;DwhFjZBRxN8rdPEgwf8@m1ceS6n{fBg`JB zRHHPRX6L5Baqx`uNM@uo+T%%uudSle2yTFEm6W{?5F2Yc54tMdeWIZ+&%j$%Hqmc#%1)}VEHCyV4j4GaxEX<%aV>}Y(dFb}i zLSclA(SgMn*0clqEJC8IScID`hC^ccibLo`!b}vF2hWJ(0msFbRf$rPf(dX(FSdu6 z0-4HIqAFL7CQOk)BT5ytQw`Zhe&})J_Ec5FrA@4alBvtvf`rFJnqWQFOeLod2vt1L z-;qjEGKh@|96#^aOKF`OjKLs@Gdw7HLk3(F<$ZqUIJt;DVhH(-Kr3K7OhqLo5%Ihn zH9>z$I~Jp-X$%g};g6=GIVTibKmk-&@x`*`!vf+rHi&y6kvd#bA>j1j{vYbz zK4|x|Di^!f`aSQvKa-tr@bVGYU>wNy3}$B?(C)(}oX40n znHR^D#unwK3n)Ix^q^$3q5ibXm%$8aq;BukxR zeNqvqAXWoKUiH2{jI((!L$nIEX0Eg7Y}zrrf>N}xY>?j{ib@FG8bG;?$Bi}}8R{ez z?V}6ShPKE|%H-hYnwRLiUAo(2MW7&5QEQ|^vT2EBwOv1O&bgO7qaN!)vxh(PCy&I2 z8!OG1%>@@;(LCV&_uY*=(^z(VeZ!~%aw%f32GO`xcB+Jqm>oLC%T#s6Ft3<&hOfP$ zx>Jv}L1?qzpu?m$A-z}$Ei;qS+|5zF(Jjs0{m_LMUq$4R`Ot%RWqO6FD>hgT9eL6- zNuoI(c;w@8<|O5lN^3z$R_Q;JG@Vm)Wo@&C({aZ(I<}pTZFX$!*mgR$ZQHi(j&0k< z+20xCzsTJlD=TYfRIQrxne`@=trqx=@N;?Vv$>@_K8b>=OKW%ZPZ^m6H)|}e&Ip|h zl@c1b{CL-6@IIBE;X2OD`CQHE`g~fqZ97bM?F1TWp4;y}ZzaBOTr=*|_c`AmZ(0BK zN+6Z7nWU!s+K1?K^Izi);d{sfR_&k}uOpTm;Iizlmmvl|r<2+FoUe!f80Al3JB{eL z?tb^a_9XQC58>Fpf#0^f+35pnZ{}(`&Wr0?PtCyO;rHjYFTdY0&oS4G$5O+YD<6>D z*mjzi1#$|~N5dm&miqg2pi-C6e>!+s)FI#FqMAf=GVvf?4edCYS{uTd59p>_Ft+BJ z*F+w9t}5=V*pwHGZT`i)&(T4c;}ZZ6UE&PHX%>6Vxu5ullspkd(kEYgFK0U3>Yau(iNJ z>sy9SO9mT%m#DGF0hSI@FbTk^grLdkct1IcE%1@TIro`w1zei;C=|YETt|!RGSNS~ z;Btd@pA_SmP}CrLBlmag@8-t&wc}*qRBriw$6yP26RzeZ?YsN@LGiuX&iv&*fcS0p z{n?Q7Svj(rW}|*WE}OPUAy-N4@0A}cXXjIzzgZQkZv@u9XU16@* zf~Fs+zGVP6s+6Jz1?LDEys|dLVL=)x8_Ew<_y(SJw~DwtqrN#vwknZmbnmAXEj~DI zeOKfzi9n+tpxwq9__*1v+6Di1;W3gDFBj^e(#$K2m=K+YLk_F1niu-Q!sF61C4Ata zWNpkC9MQ9dm@<-}P6pq1csp*-I63KD^k*ib0Yn++q7BJ@$ffQa&OFDF&xwN-oiS>G zEayY&_fqL2>oTFKHW6ol)8+#urvpRs@m6=`E9+U8cuMFzvWiofG$6|`)f%8v(kB<3 zJxq*A@oA8s)M!uS%Oq2)5y1%}O^Xnywz`}vJ|r}Y$+)-E_p=ldpLBM2x_3TB3G{5Z zm1o@A0W&J0dQ1GOKY&j?<6j}mP-Z;(;*a#sV+lHSRVt++hxCLz_&z=~2;IHXP+j0t(BFG0ZujbBS^+(s zDllcbT2Xw{7vhP}>A@Mz8QtOE38~k8jWe;xz|ZVR1e;6V_uf?}a4U)3LDyC-vHM76 z%~tTJH5=tXjhKQD898$bLrb>K{e1f7#%26cu93ZUtSntMvNyD5#&2f-OSx z5;wxcj*^MxZL9SjURKEp>r6^84bzSsw$i0(=|!Sr2dn!7QvS|8Z4Oey;j_X!0LRsUojHzYR+Fl@s4=G{U;ih%}-GV zkAJcpo4}&Y@wrR*wd?)7>AG&+(sdhU`_ZKL-b5ZrO~Cd2agT`4otQQfL&)#__R!)r z(X!!nKlLB-0Cdh`Htk37L5TOJe_wmu^g&Hs>_sr}x!ve@Jp*kvPaw$W1iWSrr#)z| zINx0y@OKbG+D*{4fV2WTOf(@sUquwC#T+ru}>Yq<-5!5INYL;j!kAgnORnpa&%!%rGmnVN4iiT%osJGXXkxANgN$y3Z~Y zy{BZd9^Y(zAGUd}h7+q7$~w%ZUn1rk_4>PgHwGH3E$!kVuey)3--ajXyB_K%=y~mS zdX3m8eJ^-P_^5uci;x$LL9IAAKSPwZpT9k#FIvE8NP4p5Ko2h_3g8{I$XcV({QPx` z(jMSXfC8Q595xgN6|;ULl%!KFy?bRhd0g{eUy!7}|0Bs3S4F3bdO+CN6y_YNy+$mn zQ;d5}h%EdT^Mw)y3`H@^&y6JVAE0V})WBw$S5);VNUT!+(r=uE^H3@*F67`GxM6mf zG^trB-Zalis4|=YX7zVC6&z0G{BkzBXzHAgp{ZN03W1Q4UXrA$V=lQk3nv-~hRxPU z7Z{_X8cki;9tUi`ybnhLBlag}(FW0JF$Si&D#;2aW55r8u;Oa9_#GJburMl@6~-E+ zolu#GxP1Jwm%HC8eH@zEP6)i73e}PzM5N>RVibR53|)}|kx}C2iX0Cd9hJmBV~yCr zy^O%#UHr=nPLPogM;Qc&YyPYgmPKT3nt4Y5$Y;ZW;r~6Wu%+c6skjxNw!5og9eJ(f@RRluF(=dIu}4Itsx<@Fuzx7$)IPjVHFUYjk2JWNi?*qauJd($Gc9W-{1z2 z?^Y(CK|?u#kK)fn`B~K9u~MIIibcgh5WZ_*IyX7#Ey+MP=Qa{5Y`yIb!Jlz?v9YQC zM`({(@+2d#yjRvWH^hwOuNBzJ1cFQLaz2=izNIJNRFMQ499$Mw%by3|jIO<9a`p{w z6vG9=HIlP15Vu?nXIX5xKAuv!kpbK24pXSXQAPtqXfYH$!I_{xoSp-w{{ijOTD55x zbt{9A5MMZaI(x<6>VUjn{#E51$31`nof~o}$$E*?SCGlSlZ2slaQP6Tz8y@ZT)(Ow zIz`2lqA0(Rf*|BVButex%apKVWGHNRa5+=r8Mq- zIp1`#J~)W_oDK5;>Oii@8%Q{K(|+5imgRkcGJ;^5mJ5OmRMk49TA305{RW4|%F90z z?eHJop37`6KeAecviW|@4+*zRhmns2%=RUvl)c8QH@1{47A%=NIruHAA0yx00?_-@ zS~G$P{m%R-3kkuLUJE=jMMGRHxe!JN{>UyMbcTYU8{7Rbe2a?9WB@kGzf7vD-S0Ww7#3ukeyJS#>68)m)n*C^w6)aFOtROcZ~I8g>3BrV zc@N>A5GmBTD=cX?Ie{OND7O>AVcMVF1!^#nG7Mzc4jjg)U*7|-nMY+3@qp- zM=HP<_tT=3ua%h3l@b20TfNUkz0aEveyefL8@=y{Mn)KC9?H8;v6g zLBLPn&ajr34Nqp*u`XTp{O1IzfkX!ZM#5=1lEfUh`D$voqR4!PQEuY!M+~!$-+%#S z`^=Y620XqX#JP4uy`8WwEf5y8ga@Nij%|Mu7KX^J@bMO>wBl0%mo|}V*(0_lpwfQb z0vlOaWac|Rckn2&?`s)&cb%@?_gO%12?(S6-l6N=qIdDybiV>XFtzRa*p{{LSFRh| zh)WcZ!h&Q{BkG3q4->_e7%SGGglLJ9G3cFy8vc1+hj0D0w5sZG7)w%^A-E`8@u8#R zSekF3r1^D%J|ubw;Ytn0X~xWHz*j6+X9Jk1w{kILz(3zM^#N^oW+$n<7lvvivuxwk+jk5n^QLuQSOR25^Qu{~8CBYHNmH=jOsjC!!ewAV{JMUQr!wv7aIw&L zx#v(RxkmRvo|?)Tg`IK8r-l{}x4sTrN0swdsxSlY@X=QfJI@k}S_>?Z7F^p>u?~$4 zh(zS_lEAgIJeOHuGxEL%WyXw5bM8V%m3RcB5MNHqxu_G1liMIaT}hFN*^*rr-6zt;eSe==6vs=110Wn&kB>to?3?{2rZ#1=pt1q#y|k2dLz!Z z+0^1YCRgGmFAa%ic9ieyNB%26JP1BlHqG1X!Ydm97AKKmJX5o_Yk!u$vm ztDme>rK|$PaQNY$$ATm)7dP-;Rcz&Jzpd6zMNmYcpZnw#!h@^<^2TuHrhTaX;iIt_ z3B$n`h0jVx7YC9CV7TkX+^&XTRMoi}@jH~^u=17A$mUBiBPZOI^VYH|5f`&y6Y5=L z?0LPdi=*^z*`-20bqQQAdDCWSJkVH2h0A^bxGZqYjSX+*E;pqi?N5!%brQ8N5FE~F zD2nRnOGRViq;pzN^u?uy3u9A158U6&lC1b{(PHnK4wnL}6Mb{xv>L$;3Z?lBqf0kS zP-2xf(&ZLPiF>t^W46HO}6;3XNQs8~Cz!QrwCfaV&v?P{+y{C=Bs_+zbF* zfE9epW!<{x7PrTKr}yu2_fr#4L2?9w!!wKKT|54;(FDBdX*sWxrgE8__7^L4Z|~_R zY9yD{ZAa<4?8f2`&5`w9i z91E4<5b6icQ6uSf{<2%0qJx-|hwf#*6Gq~Yd3n%-2{9fYlV-s7b>CF|Qe?mAfk@5k zApJEWA7c^>ct%b>cLDKa)}M8wuIjF*wey;uum7AIAYk$A^`EtLn4*WU1GGmLO87s` zL4aE!2NJR$3P&``xYNgtrOILXVEXBp_zIL7VSJOk}W~KBYCuVS%1@!a+(Xm z{W7MDlW;AS69}bbsr{L+)Ik5qg3~jppjpI6x)KY$w&G9pZ=AJ3U9C`baLXLXK65CR zzpEGM`J8KYKkIpKcRdq)gLYg4+oKmS4a@A@AK#h((V#_Lgpgd%6F!@*`@HG^-pVafN=p#wThT`#Ud@#osA016|slHk8chW2%3 zDcNc;=RU47+&88;m!O9|?{NUBML^tPx_eZ|Z@7#pOxsAu2;b2^plm1E-`Mzoy+N#T zmPwfUC(@#36hvtpnMIk24jptITe_aU4J>gv3u!^G`m#FeF6496I;b)ghJ=;YBXzpS z5!bA$yCk_v>kfIq)aEDqf&IPQs$dk130^Pra3w{+2*P= z)*O+CkiBre2)6d#A2YRi15OoV5It-C$6s>R;3UdJ?{~yp%tg_EB{Q->(~~oGi~YOv zGu%)kTMwg&JL%JNBFKA{eJSX--L$ztT{wA^)= zuJz0EqRX6M9t3tu#y&w4e@mqLe=Ir_dj?fp(c+c9lyxHzpXo)#jo>!V+q zm;YM3Rm>g>E6KvT3h{4QeyqATJ2^E*m3i}$!h^(2ig+E)J`@d?vc37OsTUkt2*WCHU3nbIEb)n92-9lp=s(qdD28<&OwswrFBU3ifG@+zSdU)B` zxVUufY^POG){s&FJ(fuf%+(M zf*PLvl+(xm(B|C`LZ8J7-N*k-cOXZ6PqGILBR>oZg&tHd}4LPCkFC}Q_g9k9ABFBOobOjgch2|i0`<+Wo zd#XU}m-oLbM&ofQ!QTC6d4%|!gwVI25PSW_%xEk$I+c*~bN*BPP`H8+u|l7vl4A|I z?nYgjURzD(m(4o z`L_NG{s5hR{x2Y5r<3*?4YXihZukFlTYwL=yurzFp4hn+s(83UccVBHDlw5hKsaNN zhcj_D-63x2$kwp?0Lp|dM5l-bwpU27X#7+yDk$qgG)&fLd@DqST@X<*x`)NJ9~B1M z!WWT52SB~V)>7B9X|s%{G5=X(qVYA7;qwa5|3TvW?3&{~3E_Q6({romeO*z!Vyibs zvYDRt?k}NA!BZZvR;FA+;B}Jsb`88m-|Dr^_A+4q@P1V50qS*xUOQj!L<)>OE(?H* zlYa%`F$BQBZQu7roY3pw;Z%JYv+Jbdd#LB-*!LTVTGz#Re{6qtY`-TU`X21$3440} zhbDSX^?Yp^;J`6_#&jd-U5MiSdbp@8QF!7beIsH&?v&we;Fi)reQuNNj5C<=S=`Jb2McBQ5B$=-%S!$vjZAKqb$CdHN31qj#92pkLe(5#Ma(1P-Q zbG8^RZk+f$3^phuHIL>~N*o&Me>kCRYQpqaN76Iq)7or@fn-^IyW8MBbqFW4LIP&F z(3n>!ptFU>tZ3)sVnuK2Y9>)IUNT_pT8Jn^riMiZ6U>AWb0K01v<0dgn=(|hU2&|6 zNtAh@bgei>k9bW-ttwIGClrdHA>^GfVYEeGsr6Nr`=QaeUX+&Ntg{%hJ6cX^3$^`g zD%3`kKjl@p!q3mn+WSCKxs+Cwj-o{{DWSAXsn?t(r)UmS9*qCFQy(V3gH`m7WB*K% z9F)dM7cFh{}3i+LgJ^r>}`-0{geq6hef>`Rx4_b)jfe`$lAj-?MAHH z;AcC@0R)x~##LqlJr(iFCz%rzG^H+A!9go(8ynRDg~*oEwC@zoyA3qV)ilX3b4!t| zwA||bNA?C$#$*ZxvWcWt!(v|FdtcLvppV+v3;W4RFQQ`Kt0x_ zhu4;qhaz(g)q}hugZlK>LnKjmm&^3u*bJz|oK&({-3RK7xyg;D29M{))sA`^p^jFX4m73LQIID+5@Q?lXNpJ(#P0O`z{l zS}F5@xRux&yCt<6U2_k~)v`N&(n(30I08=?h)tRRKn>p}N0{l-tfICIjW1y?0+V8) zapNj&8ttly9;R44Fc|UZF!qb6ISX>agtpn^G_h8S@c67uAOcafv-D?cb_mMKbb47Z zYQ1c#FB;^Sv2AOD;WBoB2{SL*$if7OTD4ya9goS2xZT zbMM3{fyVvvU04k*Z!eqNAvQ+M!n*#l%B&F z*?({Oug5vQ_fs6c4+VtYLo~X`$UwxbWBak%^>fMga|t*V_zb{vbiOUtK;CQud)P#M z=lkaM|4%}|(CMX`w*Anu*VHnQw2E5!c6i3AHp$0VHs8!-caNsOel)$ZVwO#PGCXcF zo!iJgA$j*6eAvyFi1>VW-#-6(zusP5Z9B=20Qv`CKl2u@d4=t{fd$(7$3K9cJj2TvaFfhPg6xmbNH!rgWrg{$ z&~$%`!DRjW_$HLbQSE|}`(*eK>kW;u znoc@rW-MwDOEs!=oZ(e&!}c-xADMf9#td^Pdq>nASl%a1zq-HPbNHUywQRZ;z1z;p zDSGzMw_ng_+?zYDZI^9hJUSdJ!{i}dtp3(R#NhF`-K1M~)81d$`VO;H^LoA90H-2; zAU?pR=DP~y5EOlVcY3eT)pWaCHs6bFJw!jJfcExfhVCojcg^?uwb$3ZtJhtE@2j)k z^UQzDSeE0}Ki_vF{yWc}=WF0*yYCSl*Dddxoxi?soyWj`Bd_jj zm_CQnJy$uq5uIZG9-{{1%;ILy8iZ}(1P^X!pLGCa|5?7=Z~_G>=8zBVZfB{9eCWjH z=d}zTr9cR(DSD5B*1J;fxjnwNF~t=s^&hM#DRYf6|18LFBZ!}nMO^{O`|Gu0e(pjQ z)}4;z>}?_H$jGPa9;T}ElrdAm*yw=yvwALi4w7XdYFbF#vLzT&YwCE5GhR#5Dk^W5 zLt{9_@x)%^K051tB?9+?vW8x7CBJph5w>6wgAIrz>*QE{Sr@pbr&6|i{}7=D{fIQ; z6BacIm5$h`Y84nFeOb%;+C+;B@k=|f|1 zn!i$jat%%pb%|xOKGUV$)uSOhN#7oNM&u9W`c0I&?r5D!>NlAN?a4|b2s4IKcQ4UN zl4I5095AGYL#xN7T&#X^18uIF)MLA-gMr!x;>z_5DkmzbfBH9*7T2wy26ZM0I?AT) zQY;9s9(MIO=txq_X4i8o91qq>r`_n&7HYw15rcqhITeXZsfltwt z={z*Nriz)?>ksXb9j^%yAz@3Xd{2Zf*s7#rl>?HnI^?QNs>d6-caG>cj`Vk};qSuu zsNpFbj0aXSX#hzu)QP4c^^^L)9hRkq78e6mD6M- zWlp^fi}}dK1P<;FkS}_Lt}0Z{qc|b}%E_IIOM_zY4kH<9*|8N=MslW5z1E7Eoi6G- zOX*Xo9Aqek?;hkO&2_4Xvq+Fd65(6aE|!Ct?AW(k#wy!cI|>b3)cvf@y_=XISDCby zVdY|oGl41VINoXDbP2EM^23C2pLuaawpbePrP-as(37#;O(C}!VO!0;IKIOiCnDDD?gHs!g_9k#~G?he*~@!e=?hh}=4G77zA z!IQunc&iY(u)TX4V{|M9fh2ra6>heX{HZTwWDu6NuE9Or7>0siTh4Q9G@q^0Kf#E? zWQE5(+163~Vhq)V)(C!UYAK?~nAqGHZV?9=begg%)~MntQ;O(N6~&~{m_U0O%@+Gra}3(1=8201OX=E95q_Bho5@Vx^=}W_o}=@uvQRV!nsl zDBMpy+B-N#e3E`m+=tV_0?lH&206i8(WE3KSVWeCc)t{a(5u4;{Lgww#I$Rviowq`|{y*9{52_ zUAJ8zfcoF?bTXR<9ASX9$>(@N_o+UFz=M()fq=(tHwZI%&H@;!0bcCmt>*g;*#5)@ z^Mpg_f&C(TZHd8=L+_|bqHc3dy6JebJp?3$QuM8vJzQ7wsdE)Sji9s&95TTs=+7o+ z(MO%Gny&ld%*W)+17*7pKDW~eEZoI}D#^InY&G>7eh=ptg<~^>f5*uOEEGUS)0It) zt*P}A3;F`DoKbdT`=poi@*w*5`Pk#U0orl`cse9*%zOLWS%n^OiviCIu<`Of%mM>N z?OL{7kIm~gzb!L(E$Z^$h1H6!qX@#`13a8gV1%c@Dc)m$Z5?Hn11JJYjbv7{U4&kz z)@Ts)>&RFv3*$6@p{{7ED6pwAZr`-YoHkFF2o8SbqDRhU;YqgDPsou4Y4!?0)<<0x z=<(kbe6tg8eqP#sCq*!HyA^-*oK&F72xxWfcD*|u6%`hEuJ?KlGUOq%Zu-}|>$ zTl%(x`0tOVZT{~mAV~~-)N^g>HM&p;crU=le+2CPwmuId*{&BWJs&CCpJZE7s)cJ} zOciARmNw^-|G}$`wGxv{;5ufyY39iXuw5JN`75pI5W6lnSQX`^U4q=vYid{u&lJG7 z)3q-G5JTkCE_4<{Ov#v9y~DG9*_{#Z>&7KW{n0K$7$fhh7<25&Iwv#n` zw&|c^+Z|YFIkVIbVa!bJ86g=gG5&)IDnH|ZJL(n`vl%5($@+tcU=|B=$5_7FXIMZ{ zlq*C2`6J4E{Nz3xqG3a+oTg|at*#RC0o{#s(o&-FPYOO3C2y%;mSDi*$KV>gbN3Yd zX;X07kAr#fe?^S;DRTo0+H^YDkTST&;d#eM8A!;!nU=$vI7}vUKgs&KC!*iTjKvn9 ziQujSNnk4{uW3XbjEADC+oVNqf2FI;L=o3NYobPmYu z66~_JXv%+`tXNc2GZ^3p3S@cZS*B|3ap-#y#(6L+n^>k&_o&dCtm5i$78=%h>r%@s zWh&C!oH|2nxQh>QJj87IJPSP&cNv}L(HIFeXGGU^U+md|)9@k@7zc`!?Vt0#;G3ZY zYxgx6;slMFJ7#H!qA5s!NqpJ#I_gtVz;Jtf8ct-76%A2YhdV}Cm0KQ~N_~SOV!;A@ z_!KEQ= zaySrScH!X0(hN=g#c4#!lZnDQc4&0#11v-Ntkxw^A~kFVf(??PUso*5kH9dJzM$P3CAc+}WE&_sKGv@P@sRf}sc8h68 z-Rz|34P$pIjjwKmUu?%ClD){acnTpc`t`TOh=bN&bx2t)+OJ`Lb8yL6 zBi%bflg$Nc&EjDkS+(=aac{43ayVMavo6NN{PY+g)+)2{_A|-XsLfFv@SN1ghz<%u z*~1R?SZvkQTeXnEJ?E-5IA2u;CWB=9HXF!kg3}#<-Q0QH8DZLTfF8EL>xF9<1Qn2Efd3dc)B# zdSHarqa5UEr-Yeo(>Lj<#f4MJcO`yIK(2P9f-jL~r)es5jF|As~@is{D^0ZSR;b)n8KmQoJvaS;B~M_;|0i`U;)? zHvGIp%lJsq1?y$?f%U~wS27)+b-JdTUnw6jZEf{7yquyOTb@l&fyPCsoxDLBeaE>y zOY8(1Mkl(o@c*#d&O7>G`VhErIGL8{kF_F*`)dSYdtj-xiY>PGVYgrFX^(-{|aY2WV8qo)MdkqGnbsf^R#8r9VGgR0<)Ky0sy5b`J|eLjPM%Uss6216viGNKg6s49Li8yl8xdU{doD#bNK0yv=nu#G zrV0Qcwfadg20V4G^!ZMZ%|rPI;iOd1zw_lDl)N#9cV?dP#t6Ik^)Bcp@~t5Q2|8hXzaJfg!9kM56Nid)lLvu z+HZnUb&~nX3j2}KO=J^J4StpiRk`qP_fDo=x5usOpSC)|tAD*4W|o4v>SnUWHqIDU zu#|ARE5qCX2zvUPU$sXI4GK-aoSNT+bljIhPvQjnkzl7XAjU}+Jc>{LA;UzZIbaJ1 zL$Ji?N9rgZURS}T2O5T-lseB$Qt~xc+E=M_tcU@~0G_o5Of+P$0@aq_8(fGUvsq{9 z%l-R8fI)SupgyXr0>=kVgf||=Tk_r5L3_oe?3hQhmCu6rjFd&^V*$bL zKY_&&3pqC2APURhii(zizF>6Abt78^El!4Z@|-N)E5lf;XlTRVj*#-0+-A&ry>ISDlGy{!0HwR{+(x7ujUU@;Nu zl7*Lki6tk{n@DFmJiWteS%M}4Q7x_N#`%T_Pteo2-L6m3He;|K)=n80VT_pIDGN9G z`zi!_(mzrD?%c@Z;$n8e+?_dGqA~JPqS-s9|44Rv$;W%y3mp z?B-H{M$q-GhI*SdG*RGJp8J{ktR|jZIt%e%2{y(QD{m|lF}Wvla)3lV79(FrLV#2@ zY~k&nE)Fhg#x|AFHf2gxmK6`J)+yf;@eHU|-Q#CNH=&D+!rlkJAh0~syOqa`9TkFu z4B}lXODn2uUa4j_ePF>(BcI=T+IH>q(=?^LjjHoEc#LeidJWgAUad|pv27e5MYijr zlFQdq{7FDQ3ldX<#j%fQ*hiTPFp=kJZkA?Rt4PEB?IU7KnEhv5va$lk!S2ZLVQu9{ zw_CO6d6(<=r)Y{-TBqSV!>Z1y?p51+gXP7gO(=cqjJMxlp51OetlM(WrpLxiVOv4g zf!;7*1UuK&oA83&&q2`0F+US^Fug!Qw}RXQmwM`r)t=5Wn^2&i_MJ?=!YP#C;#c z|4a0R@PF*4bRLk!;1G^9?TN;)N1KjqsqoHbF7U7|hzDN}hy1fyle{H4zo=IjvG=YG)s!pv;B5(9DUTu%Xr z(R>X2p`??Aj`iVtZwU7k!}FK43Z064obLDU7iM7s;Ck?Z2~%8!NwfwfKo`T2of+wE zNC%p<(#o7l2o+@Lb3D8th}j=(+(cHUSPdmKE(t1eX4JU0YOQFIGOx7_wkjT|UCSyh zUYXWR8(|i^ij)9WeN*_SxN&f=I+z#|)N%mWT#4d-0#UH226dLXixFxUkiqgY?qJ;M%6Wh_bo-{poVg8vE-dyeARU zKXg(-+lfXdB9TgT9HN9#W$BF~>jWA3q`i?WVkMm!u@L(L*7%XGWRKc5>g<5*ItpaJ z+}2L9G2V7E@^6wlT7;K9=}QyQD-34=uUW#fWB|}4ENT)3$1%^Xqps}WN@QXeMDpiD zJ%x#gH9;q+;VZ~=ZGOUb;CK$YDK_O<=JuSr(~@8XR`qmP?wishXjwItAq6Sz^#e+5 zXmK+22e4lKj6f|6D%7wa2#mLQrMlPJ;}SHWi7X6hkW8a-1%f|uFQi-Y%V4W=(8sTw zwCO5jK_ld3NX}Sti#Ho?jY$WBl$LBfkYEx(OQrZ-n;NDf8`YOf{i1XfPj8GAS~k*E zG7kY2tZ4M?=5DcN-l@%cH3Mjl#LCP!)Ngw?mE59-8RuB0plvQj$b?TAcE?Dja3~4C z@jf|!V+cwf7;{8I4Obn^lCW>JbdJNEfnlHDykin9WYNlge@{H;Q7K&Gw_zo;pzc^pz;u>aqQ^ zUh$guY?5r$*jF~B3mdshRQ;q=zKdt?sR~R^c?xh_BE2GcM%^p%7}QT&h^>oaByGGp zszgyqYCKI-mZD;FqBL4IkcAybtG8x9;S9omLW?zS|MIP?FB)`mvVzgqYxeM z)iM=YHlfw9BF|mL!Tn{O4*+Dhteevbdg!PQmLnRN;OT>u{|g&0K>oXj67}<{*c`HK z%;l^Y|5AWHIMNzxo=Ddq3}l_Ot=?y8tejR2#-dJS&BELUPB6`>rY$zfr0$G?K)+Z~ zB9tdzEbXK>sYBV0no6*(5=%M*djfR(NEmU$;b8Q&0}4T&XRMo%ibXDq+x~9%_Y}0q z_)3-Kd?M&5YM_LTlVaal8#8M)Gh9|@<)?o5WyzqpaM=(1papS)3AoxQ9%;!Zw7~@d z9!ZCFS{!|wh$_aAoBy!@`-7h?guKW30U^_UoN)M=H!Xx*K*;B_<#lhO_>JGqJ832+ z!_ig&uw;c!*Qc3VMyAg8^>K7P_ zPK3;i&F4_3lLH(5v(!){9*qFrkTI7g`E@&3%lpuKnGwZ7H&v2gt~%vZ zcZ9|}H7& z#L=(evrbJ*aY%O%fg}=eYoVmlc{yBS6$wxbb=0)=bkz|52ND|SrItvbS1c?Kq7j8U zs@@>(nD9sHTPjOX8zFb%(2Ipz$t3qYDiSQQ0uWPn-<@?9>Zgst!6N<`6TSK?xtLs7 z#Ra0gh=uxePY!SbPY0*~seZ1@7~e zmOtwtY}g%KJ2JBPN~}1QW>Ru584N|uD(p7LdCAZMKfQ-qCLLOtHUGTjPS`s8c5>u9 zut}Nz=4X-o5wPD=f1d!Zo>?jZ2Aama+Ail{Nk*%9dF?t787S*eAHNYIWL*Iv@hF!gAx9f5mQ?x5X~yzAtOf?xfOW;BP>&Sa9S%F zD+lM@guhJI$DC32$mT%1cY0ScyL*5KLqY1s8fj+P_&}oO2#r+`5_nwkBS{e(21ZJW zogirbgqC8`_zx#iHDh~Q$pB{>=GBfl?W)IB>~?wkC;|G2D$6bVcMAH>mo*@rX(mC< zeK7?D9DZMS9Dhq`aYO`(6+zY8=5ZRr<4-5A5~pFo;;hR-v;UjTQ(_)BL(ptV!sD9a zFM+1z#jUW;;l3Hu=+Y!@k#S-(oFYSs+#|DMPhRi5f6AEYIXN>r<}J(7e4=9HvHQj! zxqkhv2dqrW^`e$+_V&Kq^_`5nlmP30t0#5rq*Y0ysj(Rbqg3@X^Q1ynAFsOPiw`klA?x|Nnd_};M1 z=M^~llDUA>JpD7Vi22Ai@iJl~ovyq7of*YuX^P_=V0smiiN;Yu3Sw=cBsq#)^>}nn zh0w&hn%tPk)3=(*aq;`F?-J)mb;z zaI(g&Mv=-VX;;#em~@`&AmAh{ja6=H>+ZKi3gHH(1BI&Il4pgbl?(1f13SIsAq<1(Ff&)< z;c;@IJ~2imQmX#RaIy6A=Q2*1BnS(iaz1v6>7ISf=l8!)r8Z5buOfnHs4>< z_cY@ryw4aarHU~gu7^r7kon%t$GB?WO#M!wTlUeH3qLhk=1__QgKSLu?l2uaxkU{| z3%<@RMN2fV3g>vqTBERvNllC#&l8VtR-p7Z)6pf+giQe(#_pkacyi3ff7UDbk@!d^ zoTAa50MP=8H@!`UV>3L4h@l}+(^hjJ=z=AMNUkZ3A)17ijS2Rt{6k%@JOaftNU34L zd}t3hz#KZP?A02>#@dKJ+Sj@0t*Cafgg1UY2=OdWCP^isOj zQMU_<5<_n=Zho75+A=`soFx7|bCMrSS~DI1zO%*6&Atr90nP~uMCYZ+G;mTCh50My za@|BtrI{fM)9#Re8dqlR0Mo-(yv)syJ1h?k7Cri(##8Fen_0i&X^bK7hfcjR%8jRl zWDhb6gTOe?u(^B%sZ`+|k4Wai!20l}iF&V`PS-?%t8 zjBcstG$saY?P|t~gx%hdj1_maJmo^#0HMfFa#0ti$QnyWZ!1bnJlV;cdT*E=0~w*n zb3z^t&L}IKfZsEfO?54fI_8j+W^_qx$|A!sx7E^z?IfDqbL4c2htK1_&E@uMB~zxi z10ghFY^EdS2)9!u$mCNw`-ZP1tz-q(klY=;zI}0{+G$w-a6G0glk^z46}&gVAM}qh zek_yTf!0*vz6B@wv_TKkB?4E&{*W}kwEgN>ewaN2-2inKZR%f4iE|VtX8q}8lfa6Db_q_UZWaOgj zCd1)#&KV@>a0yj1(sh|s-aCm*zJ`}0!^oxg{{wnJg}>u{vw`Z1n5=nD|J#6OU)(yI ze(bkCUNRc&@{xX|s z9lT&WGBfP$#mQ4^E*BYghc)aw*@yPd!nyM@?8Wx3gS*(-9qG+x@l9&U{ye3%yHdOV z;Xo)b-6ZUwZ}t(#bwj)C-(ak5oB<8y;g!y8f%)hy-p^1Vuw7nfPKFI#_V)6T(*eH- zENvr9J_Vr(X?7T}KpApN)`YwB{UpwnZU-&JLd7>Ws8t%FK??3&QzrVX1hYxKA_)aSy zhJc&Z^hafIZ1Uj^^jZ3s{rE94VrA$Ssmkl(gV^UY0+CB%Ct|}Cpm-5-Iu?f2ZO?4m zZ4-uUUwp)fvOB)a)iP^TU3G}9(Ad=fUYYr}s!;%&9nd`cR1Z}~tUW;kokH$+G zJ8ulAEY1y?nLc8noKB$2@x(wdkiLMHr~+1}EsHQjPa5o~wu$ddixFK5*A0tEN8^@e z6}LFdBFqr0s#jrFrGH>|r%Z&ALXx?nr)q6Sf0s6kX>Vm&uwtJ)we!V6sDe-*p6t<6 z7)AhE;h3f?Q_1XR*^H!`BXs3|hyO z;aPp?oo4wFJ`{D*H(-k_|4F! zd)v8&Jmg+%3uC!&%xnax$_xZ1Oh!9ygYT*Pj}VsF7w7BASK5E}jOEM}@1SkZoI~q& z4=LD&W~RW9vh#50Qm`Doiq6J8`&k~e>`|GL28T8oa6aJBkyK5MQPuBIw`u-grAL*6 zmATK#5tM#5(lqXq7auy3sYtSKrx}D$+}>=$rm^jOUG(^?4WRb2vfOC+StEL2dYh+u>pB`l$^Hw{@PtWRG0pw4kiZHQr^)i z5iSm9h+oK_Wn{EMx!AJ>^DbyURu!q@7?!c6NWew&7sMWoI&#&7M_1wydIUsHqd%XS zvC$=DYD5IHF_Gm!M|7^SM#OeJuYva~spdZ7nRZ@Gp*ejCHOA@{K&=EgLqjC5=-Q^U z>x;7bSs`Mc!(}-sYD+}i)BPHDB7G)GM84)Y_lo73cyKcWELN>ybPFg#c*CkGI8@MMPM#Wrr6on?yAIuRHXmmyk$fO%38?2lzj!Kw;{eOnv?v@^-jju~^( z2pN&vb@Y52zdhx=8@V;b(cuQy$kG=Zl+zHyvfN}+j|%1TmwPKK{ZacWW?WrJgn_W7 zQSby7Y;zy>5}0~zlkb|Go}6h5y&JnuT7m2!>jK$oHLo6*-HboO9WA{cns~u#jGMjo-M&-!WO!%8 z_+N7~`|}U}0?lHnYzvWUelaTIq@W8UOIFJz>X;s~iGVPJm+jU#>Y}!&;TNcjcfg(1Aw5?;o z1niph&1hms9(T01oXw(6eX!_770v^x)d5)Cc6OEn2bQKVD_Ao{X7Z+DrpD(N^haEcsj~xm zzjdB`!V~Qp6^m%v`eczUf;Eg)I8D!#*|>s^+Zhw+0~Kxz@0y_*gA*97K!x+spzL4$ zBqG%~ysaX{_!l9pV^iCB(fDx%kCB#ExTqG*7jK*mK+SL#W1+!XAk4&zke6)^f-*aw zzLfS~TRz1zSAvnQh2pR5IuviOp;9cpt4S+GO(lkkIq|MC0w@x;e$u(Fv4TzgmpQbo zQ$wAX#!*o_R_p8wDBiBs)Nh z1RyrI!9|Ijgl;sd-pb7?Z)V+Lhvs?}{XbJq%VJKlJF|kWh;@!C+{|rL&tRoIB$9Ed z#&t;`$sk=#+;|X7d975{&y-YcKBiOX!|Y6luXE{bAxht2lE=@y#coGtda!sJe`ai~dF=+kB^{J8uj60t zxvGlBG{7!MFWaSvj?dfFz`j?1Y=sFqRC2EGaXf-ar8qG4^o-7CnNl2ObB;<*rOe{k zii1baPN5fGtsSHogbznarZKQ$N)1pXHkelW4J)lshYdO)e&ROY#kyX+x>4{aDOpoaS zD>ifk=`wv%5rs0BeF=lesq>TdMD=;BVTj0e4SAzN0UfgGUrq4r``C0od1;diau+b5 zPDtWf`S4MRt zD|D#>Jo2>D8$f!tDrghq^9GI`^mp+-3{}-oolmZs!B1Rrp}T=tCRlb!@gr!+tcB}kjMHV)*X?AhEL~o=xvD8rVf%*EI(~o8;P{BcWlwShC8mclMfJ6 zBQ~>nz3(>Km$N*5@A zqU@2R6+~Yq=BZ@{?c$qoAvmc-od^|W^QAjRM-w!VeNaT?q)it~z}qd=_qnpn#Oc%9 zy))bGnrF^zGjnHm=fLj9-FJ7FGpF|=@{u#!HF9@Z_&JN6IkSz3WwG5I-`iW4jc4G@ znQbWI-nefz%kJ)Gv)JzLPALU>%M-yNTWuIMl8D5az3pN}0%Lb)@s3o6#zE{cp&W}0 z#7HYyPvF$HM0ttcqHWg3{xLIyV-xkvv~>Hjl!af`Y)6$&EUVZ%6Ab%jaIkn4<5(gW z_oIiK@EuR9;fs<*(cRMk06ReSyIr_&BW+T85INeVE{4TH2|ILPgM(%2v^~r?=C*5( zt4So`DHl|Gsv$~!EGtI>*)U4aNuE(LSo7kP0NY3twOggB5+yL$RH{_aNtn?g$J83# ztol88f3*N6^HZ@_$&}2T7ZtM(C&8RegTIKC@#92>5A&lf!_M6M4_p~}7vN zm;z$Utz4@XRaB`jOKCv~roz@0iA`bwc9isMC43YHbzjZS6fISon>{InXF|Lpy)_D8 zCjVO#j@4^oTKI~)T%(VN4d~%Db%UN5J-n99PBIi{zp4&h`eSJPm7rpLOzS*|7CAwB z>omA6jE!qzGY4`47R(+-WX8Jg*#y9J-wxOsQ7zB$2>ad$Iqr1*Q2fFTwma_fg|*)Gi8nbRRk1 zx`t434&^VYPq*BXGgT`Nj&VR49942DfUu$c8QsImfkkkHyq@iFmflrXh}f=0uC11( z60#1HboEQ~uE1cXU+7hUwykPYFCGBWzv9%UG_0Avn^Vp(e6A1dT+mO*fM| zVvfE)3T7j}YHBjAsd8bpTV4r|vD+>7jGh z0f7(Febd~FkZW_4j2;IY)?wAuR9gnHrpTu}zM?E|trHIeQ-{Orsdq_#VE00tOs?YM z7WNKDBRG;x9Mjh7!OJF!x)FzF)_v9*>0uNG{d>BsW1!gtQOxhMCpQ~ zWlGa6(u*NtQtnq@ZNa$~5;2U8(>b~{Q=FoZUxh!(@f4b@-=A)df?lA*#7LZhBJ#Rx{?f&pY>43{WHYrr1lZX@iYJTlBt_ z33q8X86U!k-V<4oD{Zo6R9At_wA}2Ni59kThQ{$x%VwHc_Q`Qv}M|W~5<9LHQgD+itkq$;kr_-H^~&3>Gt0T09+*UV~qebyF@4^8+Ld zOLbE!^bxJ79SOKT_=Er2m!mTIy5UNyKa06-_tpmEp*A-rKI{A3JjH zu|t=bv}vl8cWXJLlkmgFAg~Ij+nwp^tUVQ;(cEapIAC z?tA#~!JUZQ-CZtw(y@aFH~jVF8*;vt3Q@pW-615@|&dmB)PA|>aewju4kUp+`golmDT*(|DT*}xr*6w~{Gh=M-SQI}Cr4?1< zgr|Zx#jG!#0}Sz?E}>jfIf}L~F858H6Z`p8yk@yZMOg-0yZ1*2u5IsXj0=Ctke$OX z*smM>mj!ck`qot4@~A0L1|!E2Vaxz<=&1=ucb2b&4@P>Z(c;_$5oBA{O``*_X5fTL zJk`rLYcR8L9ucM1x8Q|JO$XXkPYY(mmc@$tVGL*s&6YYU$lRdqXF222MlH*cWpmE5 z+09(pW1UExtSKUpk8JX^TbPBcRc&BEGVFRtT&svkicJ{Os@|dE_cc7Ro7ezg!>B3E zYk*<(<+Nj)MC=0Bg{D%Sxn08P5ZRepE?4ibO!gG-&v!31zbIz~#N;TObZcl{q4yH8 zR&i4OSx#1L0x96qo^o<(XTy3A2#AF|s5nX^3PZP0u_kh=-N803H=9jsu0q+E;>cVd zC_BW&r_%MY_);iJ2B#Is)=gL@dje>BOLOQ0msgiDI;`k%5^XUXlCxZ#wRgj$G&UJP zpARcDtCj}}_Ux<+D1Q@d8pUF0GM9}1;J$PLp>TVue+{uB7hXx=b_^(%ldTfM9F~hO zPWZ{RNl~8>5%kAVXccZt3JH=^!bo9F{yBB^UGc5L)9Q?_aqlh4sG(ZyAW~UW(oS>gAOZ@$W`s+W6fk|J+WHZWyZV>Uyv(esuob-wjWe_ zYDOf?$OyLuQ8pq*zkv3!g(4R!PfF=CTz@wdQGnBY8TuJ5+`KB45ajG>*%ak9H_%|N z;=rN;Ni5lPJb8A&1kX0*-M!I$iucv~r$EgVC1>-@G8z>8F|vdDadyuri4CfiNT-Zi z6mG+S%s4Hf)b~j5gH_g*EANMv24nZ@?ETd+j3HlXrV_A<@JC|FGFKhBvRkG(WoUDk z3Z6P>p?qU}A9ag-qV*qQrV4cWC=1ng2*B2ABsKWl3;|aHs7Z&AR%+Q2{Ib@D#HcY4 zHw|XP;E70dd1PC&?Bz~Y5oA9PUwkt1W83zk$^&+y5QAfyRUDZtIW9UO2dk2DV1lOX zCk1gJv*x=4@yzaBRba2lV#dl4A88`bDiEq?;;E>LnM;wHj5(toy(;%>#ssV|%@8dQ zaBGcPCI%Tcf7Ra>KH3+zZ@#?w2b(Ef~fE63oj5AeN z5c(S33(++qWTs+Ys ziZ(caXs_DR7%~;wYq?pb+ z8_bgPEk<&IaB3ZnQN>?q;Af6l{?Nry-X(p*`?AFdj+0Qzbknz1*# zR*OG##%u6O*ER!STF3sVqN^li;Li3+F1m94qpDQ4B4*OGgELoFXVi(v!FijFevCp` zF6mKPI}aNcCHw2C+N*Fu<5qc5Ce@lc9VD26?ohb~xhinf>dL$`Fz;YhnYQfTM{75x zg-1u7HNzz%Y9vk{98)A&_!H#5KwMqF86rq#k2E?rsSjnv`TcGYYGU@)R&UU$gUJ)i zCUe~=l2uB)qn(}2x#u3f@~VrUcI}JywrlZ0$M3oQd?(S|LdE}v+KmL19y6h{S{FG;&IkT2gb+GnC0(aq`re2Tq*2<+l57zvF=jzu{|NcIx31 z4;=rSOD;ZFd%x~rf1+YoD*5UEo2_^M`F%aE!e-|AzWa8rK6YZqI8GcVPU1);DWwS& zq6jL1)S{MBQPeh7DWdQPL?F~kz5GyBYE?BVy{Hmur6K`EYO5+0qAf`fK`meiA$Joe zu^l_{?Hr$L&ff3$nduL+)|%&g=nm}Tz4!aR-_Pf{%&b{6v*vW~MPEtn3Vs1XqaxiY zNY7yzb|Hxi<>o978^QtQ5pk=*7RP4JA2F7g$4egCkR{1PgzAC3xm^j$2x^PwR`^lF zbb$6ksLR--TjtEaR8@vA>se}*?rUfIc?B32SeNr4Ia@lJdvCL$Vi|dvV1brVux0EtZ23cJUYHc!|bX@T&rxqF<)lw z^t;RRcMsn0Zabe@BN;$vv)Z=P>}k|ftBgfGZfopZ1QZi8)ZS%Q#6vi51XDp9oaI$_ zs zbXs0{m6r_+YZPV46m796!7);U0LjQy!c^#L4_>O>%(X~Q%+*GHO1Z}hoPp%BghjW6 zRH3}etr7M179_M zju?^w3e;ARRj@J)T}B9T*hYrJW*&iX6^j?R5RB_%;d#h)q3D7>&Z~+YB-|f{Ml|r{ z9?LUV%m7*%8h59_^5mWSibuxWOH^B_G*jf?;pc>Svq&kILI6zZ)OYZ1|4?4`nl7xr^<*vO@Yo<8V zDs7`&ojR|^D4kRUF`E#GySbOCWM^B3*%nL#zo62>E>{9uh(N8osgNE*2?PaS=(5NX zNr(Uv2LeBIUUhtv(4G43Y+(Jg2qFBl8`x=(*q{^E`yNTDBKe}m*cvL5aFswA5 zczB|s`qVAA9mXHXK!?7GW{oiz)=ztsS+%ngGa}lMrkD5rT2ya$L2ECWlTRkEDplTv z?Nh!`28Bg>vlFEQ(}H)D)~2rkx^Ddi^1xv|p4hX6R|qr2a^Vgr&PU*iYEU4>mQl^B zy;Z4UN)P}HAUtFpzOnE8*&A|syY-LJ|DJ*lx(w~5F~TS$-f zGiyo<{GKi%;g%Z#Ein zt~=WTikV1O4@D*>RIod~s4!+gdW>efIzY1*6*?D#s(A#)_5>U=#A6zga1{?*z>|dE z-IXi=RYlw)EJ+5i0U<0pUb@BXd7{kQ+tx?Dc~o&W6jeg6;kk^b{P@*lqO^{@Zh=YH~g|Eb^q zP2cnpGkf#RH}3DBzVO0JcXtoW?Df}Q`%8cEzy7t)e%igh?OQ+a@S(e|7~j>*@9(c) z{LRFoaFk;#|;*i2=eNkLU(|zLUMBKFl~MxBSlf;rS{%T zL$#_}1PExes$Cm*2yzTg3@-N|1IM6%sU_x@x(ggygXn_=_M|w`;HEJwko+VbK?gf7 z_8O91`C-XX;s;4t({&z6oierLRJm%DS>q=A=`a%nxilwR+m4!X?dK%u(ughoprmvZ}5?P81PJ4YK4n(DihT)0Ug;7!o8BpI&ik zrB)Q%(yuF@$vh{Lzx|JJS}~lFLqeW0P)p1b5-^hLbUuYVY7ih<6{rCYy~tA5o8k0= zGk!>1_qmN`9htx^Ne^W1-PXHzFjlZY4#9qjDI2tB$909nN}VtesqmG+5I~R&q5|sx z8DQmSJH3wvnKRlFV$^>@Cy-SpuM#ywC zGmPJxpcl00^UJta1Y(JlV;B#ZaFRQ$-Ef~!q90%xq}HvwOIXin&fy#U(W@LL)B~-% z!fVBeJl)Hqq7}P&DC&>Q$bhormHjwc3_^~`2beaP7n&l6+_(Yv!+gjY*0NjO8b>&A!Y^bluW0oS7vgSKwJcsaCvzRg<;Lrn+z_3%S&RN6&HrZY5|>*UXh-cn z&Te?PKb+{-j;}fzQrkdGE)yX?ZTRF;jyh|-1X@|b920mOgfR!rM;lekf;@}QRVRbv zCXU^#tRn30vfg_8>CgVmPd7RB3%~F)zww)2{qFC0|Ko?32X~jxfBuV~|NO6g;uD|z zhd=eHXU}#$+duwe|L6C8{|}him%sFzfBzr+)OURR8@~FL*Z%&e{?5PnhdyFvfAN3% zAAam_{2wpA_~du~&fooS{?MO#>81Dm$v^$){+s{mKl=Qyf9|E19>4tJ<8_J3^6&?j z%UaO~;O=gH=o?@B?(g|MpZMhOeeSszdL!O?`|0a%yu0^q1m)(%dg{uq1P^Yn(}<2? zV%e=9n=Z-VrlXkk>Lm@95?h(sg~xo;c}=^7`7-opT}&;_)2w8`OhlG7wKX_TnL90O zZ!3>jklIJ5cdl6Mi|$ZA7=icXH+E+M$uf;O*cxE4brV`1kkok1F|!eb68N-O1@lv; zzfPJwMy2S{nolvK=@AElAZNLxV-a4nDjP@Dy?B?7@s^D1FmtjusJ|){MXSQF#@AB2 zfpq`|0*V|FB2Ma78Ezow7o;}2JJ=OdYBESu%kG|8S>Wt!9UX)CZ^GxfSq~TQ|CLl0 zsGYTY`&Qghl+}oeAjZj^h$_##zrVgkhq}$I>OQ=}@2wTtRpsE&#+*yvKRLXSUFPn{ zC)Q1S3tT7kY^}^IEeusyR%Vr6S@mq$HGEs7TaKk1_5f4dlS&F0+{%w?z`+orSTe%} z;4XGB=`!)bQV8O21`Q$1Rwm>UVkvlearW9ObR$$%)>X;Qa(CP1GYg0TRAUz&D;2H> z)uE&*E-nJJW2l@ju;<;;AlA5wc`X9#8b%%#WGP2os_= zoBe2tic2wSPyTdE=f z5+$#NQkj{h)aogHzNs1Bfk^@yAe9+C6;2!4aI!q8ecsyo*<#)(YlDU{hPGFleA zvNCK@d!meu&od93uXF%RWmd^y6}%qKU6obt<_U(1iUYosn19o?V98W?Xptv_T~=OQ zM2R4z=*k3Qdi&f0(ukpe&l!_->T|fUHm4y4XWVB;*QU$X;8R#ijk=!nv~8RpCE{TE z>Rbt{qANiV#JB>~V~LD~*hW|Bsly}OFChUvg14?!47yZM81Qh-}LFf7$7?6G@hck3{gtZ_>;^(Cf; zZ+qmKz+Ltiy=TmsQ7cC3kR54w_oYhYn^Y|6q!T%4r;Z1h?L#4M@?;e*o5LT%Ew`bG zMF822bE!)u@(fahjXb9!v7y>_w-y<~IJw{`Nq9#pRJmG^&VmKJMZ~xUVG=i0OU(b7 zQM@qIU3*|kbNg{K^4VZElc(!tLZ-mof64Ew~ zH!80#-ypeSM+FTH7z&C^y@GbEK~Grn<_Kv{3p6n;o&#A4PB?>7f&`LkXoT!7;H@7h zNTPE@VT1|6Z`Bd`2$kR@z^d?4Ihhz`pJV`8pft^_^V;F7dL~KRM0T1Z$2Z9=xU)cn z-~CmqNO2uk(m0wbODAQGDNHb&!l#YS}xI#xWrrty{}qqBcMXmCJXt z<}n+I^F`yv?IRDPl3pWnGyV`ctg=w-O?aiF(3fAdAssj0dACy}Q)a_1ne!nK#dHiB z(YF)|wJ;YWRW@;cKWGQYOk)k(XzJ1mO!I6jYR*f_%$czpqQ7~~1T9cMy7*+Dr{&Nq zE!1{0rxMVY+8=_X$MQO$iU5Cs8)76<2=c&h2I&c;)%8zy3}#^my>#^5GA^{K0Q{;nTnL_kQF@Uj6s}{r_aG z^+*2bpZw4M(;xojU;gTI&pmwf=#pu77yp)zzVh6YyI#`!ef`R-Z+`BJpZbUY=rjMy zzxr>#^wP^_ws&5yJ9h%nAui*RTUBk$)ATV(IE_>)>0D9VI!abJTA?|&3}<-kLk}cQ zax6hI)IgO}Xm(B=B5+ban0}PJ>~rw5cE@jB#nAJr(NJU_aan88=Na%5!JMfu9Q`cZ zby~)Q_Q9p$wl^==$4ygZokasQLKrcwlg;9+VBx40Pf!0LgBgPYxKw0<3qURg;cGA` zQs$7e4y#utW}0)>y35MIEs9)o?Bzd&UG{jTrw3 zIhe^uxGyQ3&a%*~1L=urIx05tL#csn9(FN^!mzn7Me{k*&Q1T-&TG~Eb(i_OneuSk z%_3~YYM-hmjA9K+x8OO-SkN5Zq8=R3>PKy^JQEI&r!}4_PqTZg?Y6DTeY;aYiB{b~ z+jT%2Zn0Ywxf`;|V=Zud-9Z&z+4JtOl`wU@EJ!=s^hgq77L6*&N9 zNqL}YFfjJBjfAWiRJ;zLZ!}pxZWUewYLO&p%-oUVhs%#6j1VSk0hewRO7eVOJee*D zP&XB(_LQOl;mn!vd>jak>=1!b!mCB>+O7RJFvw&xXe(N5j#tDXzTr&-rCHi;W+)=? z%wp^u#y%{DQ>IHm_8YPksF$v+ZE3BhLDpM|Tyu73kQW5Lms*kGB9qceR_QNCTPwf2 zvb&fqx{fCBaG5=$(H%XI7RyWpJ>Vl^Ev5}>=hZsMcXnY=qR(~Ph3VDcz=DOzL1Zc&Y?CqUPr|08$p1RBYji$(yI zX=#Nj18|n?Gj%W>wQaM0&5v-A2%Leb3J6dJVJuQb34y5%W+L|ap0S3@&$Y(d(`!Vt zy~7crLB^>4q0qmbwZfi$%nRglv&DvzrDsV0h?%lN@00-(#k9kYg}Js%d6XwHqS)BI7H>PxQzDbAr8t z*5?6WRC!ipm=G@+UQvO7KsR+FeKS-y!Dq#_C{`J`dzLMqCvmq$`ao@;1khusVaQ#n zk#?rdcOT1WO$#)-YHu|&R?S+xwKCI5eDY)-R9asy!S$LSMY2M-X;6Lpfo@bFAmQ9J z(H99&?l`4}GBk=&Osf=~n%dJ2k`!nBjM8~6QmAUt;vb)HNhji{tA%QTk9E}7M-X{h z7grjIAhMf`$gQR(i=HOtM%MVamt{gbg^}nd}zK>l>xaM(k!yl6Ky-yY$`W5u0I$?6O|6BZw{SYSO;bm zCtrs91;cJoRK&Fd)$Ufci;RiX)=hN=GM&bz+8d&=A1uj%Y5NitvO~j>p)(~9@C&V_ z!KUY`u32){fEPn-l^W@2>S|Mbd2ELWJpwcJed$VyBmse|RM`X;JY&{FIY#Tkx=_bi z1~u3~rf;$l@a;uMzJi8VnMYns=b>ixNm5SW2o03sBfY#>G1tG=f>KIEteH4rcMn$F zex!`ycFOqf|n1=w1U8wIuj>#w;> zMI$vwIG7PBSY){^DYS|5GO3%pqH+djW)00*<;XXZMQ)uP>k?d+CpMM}Ye`Nt2R+gF+@vZWr{~I)0lP5s{0H=E?Zt^+5KCWwH#d%)gt;m z9Ey984E~tbVR<|4L9iJnZ8~3g=z1QVUCnlnH36#v8qh(XHshB$Wqn>8a*Tn>v09rs zd2$Hxw5Vf=#TTdx$kQ{W% zT_m5o8RX@_V_8)@w~bYrgg~FzFb~6oQTDWC3oJ<;5%0Dx?L1I>VotCCLr!z=2ix4d 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

l|L#WGuR`F>OPFRa`o z5*Txcp`ak9%x~&AMZKqW&uCiNiY4ngTFh3HWs1mh<5(%h0#qNEl9z=)v<9INqbJupOwlp1Q0RD#xC-F+4@%t@# zRc=E#YdQS1?NVQHu@w!;H$7K3cl4tzcxoQXaARr+O({CM#dNTD7v#ZN7#tcY=B9G3 zpiFcSNi}y?1@uh{Fzz7N!R1$Z7n1Go!6F7`O5WG1(krM|M;2i*U}y)#e2Dlbei-8= znGdEtgbl4gOu0F#2raGH3p`=Ak&P52@XpMqg6*U1u~B0(gJZstc=u>TiEVe|n6^ob z3FY_ItV+U_(zz{GDIRoHZve*C<}eqH6(gXOx@rpdT%~xE#5+7f6X)5Q*^KL)^}KyM z>{eQp*EG~_H=9e8+{AxoC1_^Z7%5*;i&riU6hLTk+PyGKB%h5Gs}hoUFX``SSv#&{ zoaY)lP$|OY2*dE`9F$?I#UzPt-cu2saS03fsw{fcpbak}56KkNdHzqhX)=ArP6zS+ zaH8^ZxKwL?8aXU;J43jU;oxVH;swvamkkYFp*wR6jrxWN$ysuxaKbe?h#pWU(Wa29 z8sif=-e?^psfvRKULmK%i=)y(_<3UrhWlQKzVUy-x`(v5Hv-@eu9i8yQScXIV&aO(!g=jaE4^ z@{k-uBvb?Vrx^vtyWpOhLydjq$vFrPY(&^%ui-E`s_QV`MxDS!F0)8HIW@D;Q0um! zu>f{}mLbqREWc_a-YPrR>1Sg~rOjsY){p9%v*nF>sgcm(DozvSoYuoSAK4~ZWn)uw zSL>sDpEQuzL!Q&)n@?C&?#mY&!%9L$eW;A{E9)qS;dumPJ7afzdf!2bwY5~}1ks0L zfM^XS*=+tL4LB)J=<5fj7r$u*nw8YVny>6#QSJ(<8Z*Ir#%0}Byq4oOjV{-45+eJM zX+f<_akm{G0BjRPlCF1E_+WC`BJUa`kV#LR{uBa+aUKGlJf>=^Lv03Pkc;T{@SDcX z7#GYUgEC|G3y?U;l`-a1YHLU6wWk083(!eKK~!v)SUhvLidd}WEAsTpaWq5b>P(Vh zDz8ESvW%<@tXLeRPe=J`P0*F0>F{Y2=93w!t9XF;Pxyc|^JGoi0htsd3|O1MMdAdc zec?Vd|I3J6X3=Hxd(XEBxDHU<%WAiJmy@Ij8`lOwE2keu0OXt_Kj~#16>MrcLn$R5 zz@O$A>UIiw*4d5MaGkv*CEBr(J$!h1_~2sCw=@vl0-4B%4=)cNw*1kfI*bQWcQ3L6 z(E_wdX_u{Pd)VEBXpvdQ(ga}G!}uMP$8no%Xt@64 z778^6HDvj^#uJbkvc=`*etG^$yN1fz9d)lxZ2%Oy(<6aecF%U5@T2MGkxT7c;$Si} zEyFrZitlBi4ZRYASh_;We3qLqoGUz_CzIcHcZ_1P-S=wj0^WVhA5}bS`2{A~bbUrF zhq(h90($uduoO`i2}`!9S9faOnSt^u8`=!<;1aatU|JNdH2L6WR=d}`e3|aK*#yUxhH}#5&27%!rIVQ` zU1mooO(ms3{=crSWl4@Cgb8x?|G&6k4@iQx4-*bgxVtJJAcTOTK^M}WO&D#$x*7#2 z&9hpnc2guX?c^vYE`11DU8;)4LOLwvZCziw7>(_dEyyLP;cg0>m>)&sX&y@TCxkb7A5<*nN<}ofu-%N-&e8@`@-Pd(F*(#Q-9{W&ePWX$b#oj!M`bJ(aP-nXW^RgDCli%!cT@$`DY56=ar0=ZgX%jr%v9ry$qOGL()|k58|j(56DKX}_R=R)&Ic(jcMkRY7 zwUnC|S2GjI^kUlK5dNj6O3$0=?3{p&k3Mc~OadBB``YYqsqSi1c_D6+uc2q^>n5rVk-hJq&%3$V4lMk8ZkDU zFSRrfl|$zurQd=jTFsty_V7x$W3Q3k`T&7X;RNAV2yN^1uAvaZBF+MOSp29@Z4(Q4 z=$|(XY$=Q(&^a@-Znf+jIfeb5Z1hi#1TWErdNIAm&nea4Y>k`C>m;;8tc-U1t>ruB zWlJJZv59IOz-)IbdqKR`EX09PF*~$tR6D28@FZ^MO2(KXvqOMwO%~}fv~wb}_3l9d zBwnFXzT}WZDqa2+z?J#AgFm@ON`mk)hM^mERdXgZvWCd^jWFYC_<7h}y{25L@Wwp@ zy$)u7Wsl|{r8u!kz4ol}>_{;CD7VQr*12`ba$`68JN6@KuA_JQ3eaBIbs&88&Q=Mq z$u8e<4&c6&;<-)Y5Dl5^z+$1SBY$W~+0vdeLVcjDna#pppx@CM+&*&gJ!%HOKh(pU zrOs19eyV)E3AfJ>@xnwmLR$2R`ahz zO^q`IFh;607xmc~{s9eCL?>V`Oyzp-*&Teo?ebRdRf-7&=i+3yHxdkWAju9 z|EAOGK=p}8#BIGm=ld^I|6j}di1&*}^e~UX?Z}>lfs<1Dex3)#$BMv{vBFq>A_XmP zx%kVwliFPJ0m1bCd{6QsqNjm)WLCUL^+7PKqr8Ku8d4@iz5Ssh@Ic*lbx*5cu^ruC z)yI905a4GCYPKDzsBi^A4nHO>nH{+CFr8d;c4R2nB;cN3%|))E{2rGr#hfb90X!&` zBa{ritW5-2un98stIt8j>8v~}{t2rvQIPKmbZlOy;Qg6;NfnsNFC?P{I*U}g55p{X zN2mNxBdi8Leu=ei?EIQj@eGWi1QkSb6iV83JO^XzN$JPTt(0KP*&w@ssfMr6E3{~-#_Z9}WKx--T0k+wk!@D2N9T(E~jpG4y!2B!jQZ%G{H zV`B&bRw@k~sIc$Ism#sE_)ku{ppn(;eI}?%ygF(u3O_fj>dj64P(I$b&=?L~pQZ?f zytB&W^nzxlWFLrI`IB38C`H3zBl1?eu4z^%<%Iwz`(3p-thIS+C)6C7cOFCi&NV#U znGb(hw>p@Mq_8(uM6Hwq_R;kkaaON;TAvxnhFSie!O5X!TI4T8bBT_eOo=Gl5Y=xM z9;4SJvP@z?y=*%{I)9S#Z^B2*Y}+%TdiBjFgdU!9Bzv2@qzl%&5m|6SAC6C0hR^U9 zUQ!aWV3wuo)RD=$lO^F2Ae0Mo{nY5;v>oJ;r?tO$eE|7*k7W1Uw~Hdve2xzkJfV^M zvc4}%#Zts~ZVOTb&ceGntxF~zDkmsj3iT^om&zY{;9017Tv?gd-JHbjY&JjFEKKn} zLbXwd?#jq1KPgEI<$Oyd>CjuNJcc0vnGQxTVPm&plFq6$l;(A7?Sm~OEd%?X6C|*h zE3F((T3&P^qnr8ZWznDq^yWn->g&%$K%cLilaLXD60!N4+?(D?JFJ;RI~xi7*sBdI zYz?tg0^^G*xEqZaksin1fm60mJZ4Hr14km`%w!+zN}I7KAfJvOU%3m|ayFRvL`<2* z^crb7u#=u+jOv#%c_}8AI=D4B-nk}jx77}XRIMz^p`XG;kNth_p<1+ee8@^;#a86B z5#aS&$YD#OLHL|9N7Kwen1L&;w(-tTb{SOsx8$Ki&B0kU5@7 z-3}vZJTXB^(p@I+I+k>s{AiFWTOsb6ntPOG)9szL7)nOsXVanX&+6kEIHI{5oZ&VNAg|#y + + + + + + + Register account + + + +

+
+
Register account
+
+
+ + + + +
+
+
+
+ + diff --git a/sdkserver/html/result.html b/sdkserver/html/result.html new file mode 100644 index 0000000..341d2b2 --- /dev/null +++ b/sdkserver/html/result.html @@ -0,0 +1,171 @@ + + + + + + + + Register account + + + +
+
+
Register account
+
+
%MESSAGE%
+
+
+
+ + diff --git a/sdkserver/sdkserver.toml b/sdkserver/sdkserver.toml new file mode 100644 index 0000000..fc15e6e --- /dev/null +++ b/sdkserver/sdkserver.toml @@ -0,0 +1,5 @@ +bind_addr = "0.0.0.0:21000" + +[database] +connection_string = "postgres://postgres:@localhost:5432/hk4e" +redis_url = "redis://127.0.0.1/" diff --git a/sdkserver/security/sdk_private_key.der b/sdkserver/security/sdk_private_key.der new file mode 100644 index 0000000000000000000000000000000000000000..f5dde8b400353554a96f3a76263167261d415206 GIT binary patch literal 633 zcmV-<0*3uCf&z5{0RS)!1_>&LNQUpUoe6KTLJ+90)c@5gh!y9q7r~M ztmRbhL=`2A5Poj?kG*o5-bGH^Wdvq3#xX%ln2C1|5&m|@XzrqC{AbAtNe|ReG%%h) zkHgpShOI1;h$q)f2-jxpFprW8azfX+Nl620haS2D);qRu>^m!Y zctHf_-@e9WT~l?2mzUy8IKXIKOUZ*`vjQc-;7t|@q_u{qRJkg5R@r?M!}YpWZqe0= zC{y|LvpPjO{kt3f>^8y)3jBOUu#-+M`KO#PgXH9ty7{bjU-EN+z40PHw9!Zb0zm-j z5;!9?oQzo%I`?`=(FHkAwZiJ}uU3~eJ)QFII+lb6*&MtOyyaL|?EQR=WR@P!PV#i8 zKgl0nbGKjCNq|8DK>(3U2OVJzWHnUuGq-7y*mToMuOy0Hr_k2_L$Gd`!pfSm8SiC3 zMRQ#~lns@Z8vmcFa$z}U@BY=EP zHjd=ChW)A)oubqnFkgBAWUDv=8nE(^OCl!I<9gb?TzCT(ae8P00zd*VDilO8>Tqu^ z8dXWozgf!=)!=La3l#Sk^AZLqV9ugb%2qR_Crg}sS%F?0oYTI-8fFGw7490+7@D Tf+O?+ZL?yI1E&_G0|nnn(7hVN literal 0 HcmV?d00001 diff --git a/sdkserver/src/config.rs b/sdkserver/src/config.rs new file mode 100644 index 0000000..0daf7b6 --- /dev/null +++ b/sdkserver/src/config.rs @@ -0,0 +1,20 @@ +use common::config::DatabaseConfig; +use serde::Deserialize; + +const DEFAULT_TOML: &str = include_str!("../sdkserver.toml"); + +#[derive(Deserialize)] +pub struct SdkConfig { + pub bind_addr: String, + pub database: DatabaseConfig, +} + +pub fn load() -> Option { + match common::config::load_or_create_config("sdkserver.toml", DEFAULT_TOML) { + Ok(config) => Some(config), + Err(err) => { + tracing::error!("Failed to load config: {err}"); + None + } + } +} diff --git a/sdkserver/src/database/data.rs b/sdkserver/src/database/data.rs new file mode 100644 index 0000000..6d22bfc --- /dev/null +++ b/sdkserver/src/database/data.rs @@ -0,0 +1,98 @@ +use std::sync::LazyLock; + +use regex::Regex; +use sqlx::FromRow; + +use thiserror::Error; + +use crate::util; + +#[derive(sqlx::Encode, sqlx::Decode)] +pub struct Username(String); + +impl Username { + pub fn parse(username: String) -> Option { + static ALLOWED_USERNAME_REGEX: LazyLock = + LazyLock::new(|| Regex::new("^[a-zA-Z0-9._@-]{6,25}$").unwrap()); + + ALLOWED_USERNAME_REGEX + .is_match(&username) + .then_some(Self(username)) + } + + pub fn as_str(&self) -> &str { + self.0.as_str() + } +} + +impl sqlx::Type for Username { + fn type_info() -> ::TypeInfo { + >::type_info() + } + + fn compatible(ty: &::TypeInfo) -> bool { + >::compatible(ty) + } +} + +#[derive(Error, Debug)] +pub enum PasswordError { + #[error("password pair mismatch")] + PairMismatch, + #[error("user input doesn't meet requirements")] + RequirementsMismatch, + #[error("failed to generate password hash: {0}")] + HashFailed(pbkdf2::password_hash::Error), +} + +#[derive(sqlx::Encode, sqlx::Decode)] +pub struct Password(String); + +impl Password { + pub fn new(password: String, password_v2: String) -> Result { + (password == password_v2) + .then_some(()) + .ok_or(PasswordError::PairMismatch)?; + + matches!(password.len(), 8..30) + .then_some(()) + .ok_or(PasswordError::RequirementsMismatch)?; + + let hash = util::hash_string(&password).map_err(|err| PasswordError::HashFailed(err))?; + Ok(Self(hash)) + } + + pub fn verify(&self, password: &str) -> bool { + util::verify_hash(password, &self.0).is_some() + } + + pub fn as_hash_str(&self) -> &str { + self.0.as_str() + } +} + +impl sqlx::Type for Password { + fn type_info() -> ::TypeInfo { + >::type_info() + } + + fn compatible(ty: &::TypeInfo) -> bool { + >::compatible(ty) + } +} + +#[derive(FromRow)] +pub struct DbSdkAccountRow { + pub uid: i32, + pub token: String, + pub username: Username, + pub password: Password, +} + +#[derive(FromRow)] +#[allow(dead_code)] +pub struct DbComboTokenRow { + pub account_uid: String, + pub token: String, + pub device_id: String, +} diff --git a/sdkserver/src/database/mod.rs b/sdkserver/src/database/mod.rs new file mode 100644 index 0000000..147c61c --- /dev/null +++ b/sdkserver/src/database/mod.rs @@ -0,0 +1,84 @@ +pub mod data; + +use data::{DbComboTokenRow, DbSdkAccountRow, Password, Username}; +use rand::distributions::{Alphanumeric, DistString}; +use sqlx::{query_as, PgPool}; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum DbError { + #[error("SQL error: {0}")] + SqlxError(#[from] sqlx::Error), + #[error("entry not found")] + NotFound, +} + +pub enum SelectSdkAccount { + ByUsername(String), + ByUid(i32), +} + +pub async fn insert_sdk_account( + pool: &PgPool, + username: Username, + password: Password, +) -> Result { + let token = Alphanumeric.sample_string(&mut rand::thread_rng(), 64); + + Ok(query_as( + "INSERT INTO t_sdk_account (token, username, password) VALUES ($1, $2, $3) RETURNING *", + ) + .bind(token) + .bind(username.as_str()) + .bind(password.as_hash_str()) + .fetch_one(pool) + .await?) +} + +pub async fn select_sdk_account( + pool: &PgPool, + select_mode: SelectSdkAccount, +) -> Result { + match select_mode { + SelectSdkAccount::ByUsername(username) => { + query_as("SELECT * from t_sdk_account where username = ($1)") + .bind(username) + .fetch_optional(pool) + .await? + .ok_or(DbError::NotFound) + } + SelectSdkAccount::ByUid(uid) => query_as("SELECT * from t_sdk_account where uid = ($1)") + .bind(uid) + .fetch_optional(pool) + .await? + .ok_or(DbError::NotFound), + } +} + +pub async fn insert_combo_token( + pool: &PgPool, + account_uid: &str, + device_id: &str, +) -> Result { + let token = Alphanumeric.sample_string(&mut rand::thread_rng(), 64); + + Ok( + query_as("INSERT INTO t_combo_token VALUES ($1, $2, $3) RETURNING *") + .bind(account_uid) + .bind(token) + .bind(device_id) + .fetch_one(pool) + .await?, + ) +} + +pub async fn select_combo_token_by_account( + pool: &PgPool, + account_uid: &str, +) -> Result { + query_as("SELECT * from t_combo_token where account_uid = ($1)") + .bind(account_uid) + .fetch_optional(pool) + .await? + .ok_or(DbError::NotFound) +} diff --git a/sdkserver/src/main.rs b/sdkserver/src/main.rs new file mode 100644 index 0000000..4aff077 --- /dev/null +++ b/sdkserver/src/main.rs @@ -0,0 +1,42 @@ +use std::error::Error; + +use axum::Router; +use common::log; +use services::{granter, mdk_shield, registration_page, takumi_api}; +use sqlx::PgPool; +use tracing::Level; + +mod config; +mod database; +mod services; +mod util; + +#[derive(Clone)] +pub struct SdkState { + pub pg_pool: PgPool, +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + log::init_tracing(); + let span = tracing::span!(Level::DEBUG, "main"); + let _ = span.enter(); + + let config = config::load().unwrap(); + + let pg_pool = common::db::connect(&config.database.connection_string) + .await + .unwrap(); + + let router = Router::new() + .merge(takumi_api::make_routes()) + .merge(mdk_shield::make_routes()) + .merge(granter::make_routes()) + .merge(registration_page::make_routes()) + .with_state(SdkState { pg_pool }); + + let server = axum_server::bind(config.bind_addr.parse()?); + server.serve(router.into_make_service()).await?; + + Ok(()) +} diff --git a/sdkserver/src/services/granter.rs b/sdkserver/src/services/granter.rs new file mode 100644 index 0000000..ed933db --- /dev/null +++ b/sdkserver/src/services/granter.rs @@ -0,0 +1,76 @@ +use axum::extract::State; +use serde::Deserialize; +use serde_json::{from_str, Value}; + +use crate::{ + database::{self, DbError, SelectSdkAccount}, + routes, SdkState, +}; + +use super::*; + +routes! { + "/:product_name/combo/granter/login/v2/login" post(granter_login_verification); +} + +#[derive(Deserialize)] +struct RequestData { + pub uid: String, + pub token: String, +} + +#[derive(Deserialize)] +struct GranterTokenRequest { + pub data: String, + pub device: String, +} + +async fn granter_login_verification( + state: State, + request: Json, +) -> Json { + let Ok(data) = from_str::(&request.data) else { + return fail_json(-101, "Account token error"); + }; + + let Ok(uid) = data.uid.parse::() else { + return fail_json(-101, "Account token error"); + }; + + match database::select_sdk_account(&state.pg_pool, SelectSdkAccount::ByUid(uid)).await { + Ok(account) if account.token == data.token => (), + _ => return fail_json(-101, "Account token error"), + } + + match database::select_combo_token_by_account(&state.pg_pool, &data.uid).await { + Ok(token) => success_json(&data.uid, &token.token), + Err(DbError::NotFound) => { + let Ok(token) = + database::insert_combo_token(&state.pg_pool, &data.uid, &request.device).await + else { + return fail_json(-1, "Internal server error"); + }; + + success_json(&data.uid, &token.token) + } + Err(DbError::SqlxError(err)) => { + tracing::error!("SQL error: {err}"); + fail_json(-1, "Internal server error") + } + } +} + +fn success_json(uid: &str, token: &str) -> Json { + Json(json!({ + "data": { + "account_type": 1, + "combo_id": uid, + "combo_token": token, + "data": "{\"guest\":false}", + "heartbeat": false, + "open_id": uid + }, + "message": "OK", + "retcode": 0 + })) +} diff --git a/sdkserver/src/services/mdk_shield.rs b/sdkserver/src/services/mdk_shield.rs new file mode 100644 index 0000000..c391997 --- /dev/null +++ b/sdkserver/src/services/mdk_shield.rs @@ -0,0 +1,104 @@ +use axum::extract::State; +use serde::Deserialize; +use serde_json::Value; + +use super::*; + +use crate::{ + database::{self, data::DbSdkAccountRow, DbError, SelectSdkAccount}, + routes, util, SdkState, +}; + +routes! { + "/:product_name/mdk/shield/api/login" post(login); + "/:product_name/mdk/shield/api/verify" post(verify); +} + +#[derive(Deserialize)] +struct LoginRequest { + pub account: String, + pub password: String, + pub is_crypto: bool, +} + +#[derive(Deserialize)] +struct VerifyRequest { + pub uid: String, + pub token: String, +} + +async fn login(state: State, request: Json) -> Json { + if !request.is_crypto { + return fail_json( + -10, + "Invalid account format: unencrypted passwords are disabled by SDK security policy", + ); + } + + let Ok(password) = util::rsa_decrypt(&request.password) else { + return fail_json(-10, "Your patch is outdated, get a new one at https://discord.gg/reversedrooms (Password decryption failed)"); + }; + + let account = match database::select_sdk_account( + &state.pg_pool, + SelectSdkAccount::ByUsername(request.account.clone()), + ) + .await + { + Ok(account) => account, + Err(DbError::NotFound) => return fail_json(-101, "Account or password error"), + Err(DbError::SqlxError(err)) => { + tracing::error!("database error: {err}"); + return fail_json(-1, "Internal server error"); + } + }; + + if !account.password.verify(&password) { + return fail_json(-101, "Account or password error"); + } + + success_json(account) +} + +async fn verify(state: State, request: Json) -> Json { + let Ok(uid) = request.uid.parse::() else { + return fail_json(-101, "Account cache error"); + }; + + let account = + match database::select_sdk_account(&state.pg_pool, SelectSdkAccount::ByUid(uid)).await { + Ok(account) => account, + Err(DbError::NotFound) => return fail_json(-101, "Account cache error"), + Err(DbError::SqlxError(err)) => { + tracing::error!("SQL error: {err}"); + return fail_json(-1, "Internal server error"); + } + }; + + if account.token == request.token { + success_json(account) + } else { + fail_json(-101, "For account safety, please log in again") + } +} + +fn success_json(account: DbSdkAccountRow) -> Json { + Json(json!({ + "data": { + "account": { + "area_code": "**", + "email": account.username.as_str(), + "country": "RU", + "is_email_verify": "1", + "token": account.token, + "uid": account.uid.to_string() + }, + "device_grant_required": false, + "reactivate_required": false, + "realperson_required": false, + "safe_mobile_required": false + }, + "message": "OK", + "retcode": 0 + })) +} diff --git a/sdkserver/src/services/mod.rs b/sdkserver/src/services/mod.rs new file mode 100644 index 0000000..52acbb2 --- /dev/null +++ b/sdkserver/src/services/mod.rs @@ -0,0 +1,26 @@ +pub mod granter; +pub mod mdk_shield; +pub mod registration_page; +pub mod takumi_api; + +use axum::{Json, Router}; +use serde_json::json; + +#[macro_export] +macro_rules! routes { + ($($path:tt $method:ident($handler:expr);)*) => { + pub fn make_routes() -> ::axum::Router { + Router::new() + $( + .route($path, ::axum::routing::$method($handler)) + )* + } + }; +} + +fn fail_json(retcode: i32, message: &str) -> Json { + Json(json! ({ + "retcode": retcode, + "message": message + })) +} diff --git a/sdkserver/src/services/registration_page.rs b/sdkserver/src/services/registration_page.rs new file mode 100644 index 0000000..5f1c092 --- /dev/null +++ b/sdkserver/src/services/registration_page.rs @@ -0,0 +1,100 @@ +use crate::{ + database::data::{Password, PasswordError, Username}, + SdkState, +}; +use axum::{ + extract::State, + response::{Html, Redirect}, + Form, +}; +use serde::Deserialize; + +use crate::{ + database::{self, DbError}, + routes, +}; + +use super::*; + +const REGISTRATION_PAGE_HTML: &str = include_str!("../../html/register.html"); +const REGISTRATION_RESULT_HTML: &str = include_str!("../../html/result.html"); + +routes! { + "/account/register" get(|| async { Html(REGISTRATION_PAGE_HTML.to_string()) }); + "/account/register" post(process_register); + "/" get(|| async { Redirect::permanent("/account/register") }); +} + +#[derive(Deserialize)] +struct RegisterRequest { + pub username: String, + pub password: String, + pub password_v2: String, +} + +async fn process_register( + State(state): State, + Form(form): Form, +) -> Html { + let Some(username) = Username::parse(form.username) else { + return html_result(ResultStatus::Failure, "Invalid username format; should consists of characters [A-Za-z0-9_] and be at least 6 characters long."); + }; + + let password = match Password::new(form.password, form.password_v2) { + Ok(password) => password, + Err(PasswordError::PairMismatch) => { + return html_result(ResultStatus::Failure, "Passwords pair doesn't match") + } + Err(PasswordError::RequirementsMismatch) => { + return html_result( + ResultStatus::Failure, + "Password should contain at least 8 and not more than 30 characters", + ) + } + Err(PasswordError::HashFailed(err)) => { + tracing::error!("failed to hash password, err: {err}"); + return html_result(ResultStatus::Failure, "Internal server error"); + } + }; + + match database::insert_sdk_account(&state.pg_pool, username, password).await { + Ok(_) => html_result( + ResultStatus::Success, + "Account successfully registered, now you can use in-game login", + ), + Err(DbError::SqlxError(sqlx::Error::Database(e))) + if e.constraint() == Some("t_sdk_account_username_key") => + { + html_result( + ResultStatus::Failure, + "Account with specified username already exists", + ) + } + Err(err) => { + tracing::error!("database operation error: {err}"); + html_result(ResultStatus::Failure, "Internal server error") + } + } +} + +enum ResultStatus { + Failure, + Success, +} + +impl ResultStatus { + pub fn as_str(&self) -> &str { + match self { + Self::Failure => "error", + Self::Success => "success", + } + } +} + +fn html_result(result: ResultStatus, message: &str) -> Html { + Html( + REGISTRATION_RESULT_HTML + .replace("%RESULT%", result.as_str()) + .replace("%MESSAGE%", message), + ) +} diff --git a/sdkserver/src/services/takumi_api.rs b/sdkserver/src/services/takumi_api.rs new file mode 100644 index 0000000..7976278 --- /dev/null +++ b/sdkserver/src/services/takumi_api.rs @@ -0,0 +1,16 @@ +use crate::routes; + +use super::*; + +routes! { + "/account/risky/api/check" post(risky_check); +} + +#[tracing::instrument] +async fn risky_check() -> Json { + Json(json!({ + "data": {}, + "message": "OK", + "retcode": 0 + })) +} diff --git a/sdkserver/src/util.rs b/sdkserver/src/util.rs new file mode 100644 index 0000000..e1a200f --- /dev/null +++ b/sdkserver/src/util.rs @@ -0,0 +1,51 @@ +use password_hash::{PasswordHash, PasswordHasher, SaltString}; +use pbkdf2::{Params, Pbkdf2}; +use rsa::{Pkcs1v15Encrypt, RsaPrivateKey}; +use thiserror::Error; + +const SDK_PRIVATE_KEY: &[u8] = include_bytes!("../security/sdk_private_key.der"); + +#[derive(Error, Debug)] +pub enum CryptoError { + #[error("failed to decrypt: {0}")] + DecryptFailed(#[from] rsa::Error), + #[error("failed to decode base64 string")] + FromBase64Failed, + #[error("from_utf8 failed: {0}")] + FromUtf8Failed(#[from] std::string::FromUtf8Error), +} + +#[must_use] +pub fn rsa_decrypt(cipher: &str) -> Result { + let private_key: RsaPrivateKey = rsa::pkcs8::DecodePrivateKey::from_pkcs8_der(SDK_PRIVATE_KEY) + .expect("failed to decode private key"); + let payload = private_key.decrypt( + Pkcs1v15Encrypt, + &rbase64::decode(cipher).map_err(|_| CryptoError::FromBase64Failed)?, + )?; + + Ok(String::from_utf8(payload)?) +} + +#[must_use] +pub fn hash_string(content: &str) -> Result { + let salt = SaltString::generate(rand::thread_rng()); + let hash = Pbkdf2.hash_password_customized( + content.as_bytes(), + None, + None, + Params { + rounds: 10000, + output_length: 32, + }, + &salt, + )?; + + Ok(hash.serialize().to_string()) +} + +#[must_use] +pub fn verify_hash(content: &str, hash_str: &str) -> Option<()> { + let hash = PasswordHash::new(hash_str).ok()?; + hash.verify_password(&[&Pbkdf2], content).ok() +}
!82}@uHceA3eTlV) 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