From 1067106af5ff693cd500acd20000e763ea93a758 Mon Sep 17 00:00:00 2001 From: VG-Prog Date: Fri, 22 May 2026 21:45:30 +0200 Subject: [PATCH 1/3] feat(Cluster/Contracts): Extend cluster service contracts Add the shared protobuf, generated runtime code, events, GUID helpers, auth identity helpers, and configuration contracts used by clustered gateway, registry, group, guild, matchmaking, and sidecar flows. Tests, local tooling, and broad documentation are intentionally excluded from this upstream-focused scope. --- Makefile | 2 +- api/proto/v1/characters/characters.proto | 474 +- api/proto/v1/chat/chat.proto | 13 + api/proto/v1/group/group.proto | 256 +- api/proto/v1/guilds/guilds.proto | 339 + api/proto/v1/matchmaking/matchmaking.proto | 221 +- api/proto/v1/servers-registry/registry.proto | 22 +- api/proto/v1/worldserver/worldserver.proto | 250 +- config.yml.example | 38 +- gen/characters/pb/characters.pb.go | 8335 ++++++++++++++---- gen/characters/pb/characters_grpc.pb.go | 1037 ++- gen/chat/gen/chat/pb/chat.pb.go | 1494 ++-- gen/chat/gen/chat/pb/chat_grpc.pb.go | 2 +- gen/chat/pb/chat.pb.go | 1153 +-- gen/chat/pb/chat_grpc.pb.go | 2 +- gen/group/pb/group.pb.go | 5305 ++++++++--- gen/group/pb/group_grpc.pb.go | 511 +- gen/guid/pb/guid.pb.go | 2 +- gen/guid/pb/guid_grpc.pb.go | 2 +- gen/guilds/pb/guilds.pb.go | 4964 +++++++++-- gen/guilds/pb/guilds_grpc.pb.go | 626 +- gen/mail/pb/mail.pb.go | 2 +- gen/mail/pb/mail_grpc.pb.go | 2 +- gen/matchmaking/pb/matchmaking.pb.go | 3044 ++++++- gen/matchmaking/pb/matchmaking_grpc.pb.go | 261 +- gen/servers-registry/pb/registry.pb.go | 1256 ++- gen/servers-registry/pb/registry_grpc.pb.go | 110 +- gen/worldserver/pb/worldserver.pb.go | 3493 +++++++- gen/worldserver/pb/worldserver_grpc.pb.go | 302 +- go.mod | 3 +- go.sum | 3 + shared/authidentity/identity.go | 116 + shared/events/consumer-gateway.go | 96 +- shared/events/consumer-group.go | 231 + shared/events/events-characters.go | 36 +- shared/events/events-chat.go | 71 +- shared/events/events-friends.go | 2 +- shared/events/events-gateway.go | 87 +- shared/events/events-group.go | 176 +- shared/events/events-guild.go | 48 +- shared/events/events-matchmaking.go | 103 + shared/events/events-serversregistry.go | 34 +- shared/events/producer-characters.go | 14 + shared/events/producer-gateway.go | 27 + shared/events/producer-group.go | 53 + shared/events/producer-guild.go | 11 + shared/events/producer-matchmaking.go | 10 + shared/events/producer-serversregistry.go | 14 + shared/groupstatetrace/trace.go | 137 + shared/repo/charactersdb.go | 13 + shared/wow/arena/team_id.go | 24 + shared/wow/guid/player.go | 67 + shared/wow/power.go | 50 + 53 files changed, 29154 insertions(+), 5790 deletions(-) create mode 100644 shared/authidentity/identity.go create mode 100644 shared/groupstatetrace/trace.go create mode 100644 shared/wow/arena/team_id.go create mode 100644 shared/wow/power.go diff --git a/Makefile b/Makefile index 45523ca..03bd083 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ build-groupserver: go build -o $(INSTALL_PATH)/groupserver apps/groupserver/cmd/groupserver/main.go build-perun: - cd apps/perun && go build -o ../../$(INSTALL_PATH)/perun cmd/perun/main.go && cd ../.. + cd apps/perun && go build -o $(abspath $(INSTALL_PATH))/perun cmd/perun/main.go && cd ../.. build-mysqlreverseproxy: go build -o $(INSTALL_PATH)/mysqlreverseproxy apps/mysqlreverseproxy/cmd/mysqlreverseproxy/main.go diff --git a/api/proto/v1/characters/characters.proto b/api/proto/v1/characters/characters.proto index 29c1373..2408eff 100644 --- a/api/proto/v1/characters/characters.proto +++ b/api/proto/v1/characters/characters.proto @@ -9,20 +9,45 @@ service CharactersService { rpc CharactersToLoginByGUID(CharactersToLoginByGUIDRequest) returns (CharactersToLoginByGUIDResponse); rpc AccountDataForAccount(AccountDataForAccountRequest) returns (AccountDataForAccountResponse); + rpc UpdateAccountDataForAccount(UpdateAccountDataForAccountRequest) returns (UpdateAccountDataForAccountResponse); rpc WhoQuery(WhoQueryRequest) returns (WhoQueryResponse); rpc CharacterOnlineByName(CharacterOnlineByNameRequest) returns (CharacterOnlineByNameResponse); rpc CharacterByName(CharacterByNameRequest) returns (CharacterByNameResponse); + rpc CharacterByGUID(CharacterByGUIDRequest) returns (CharacterByGUIDResponse); rpc ShortOnlineCharactersDataByGUIDs(ShortCharactersDataByGUIDsRequest) returns (ShortCharactersDataByGUIDsResponse); + rpc ArenaTeamQueueDataForRatedArena(ArenaTeamQueueDataForRatedArenaRequest) returns (ArenaTeamQueueDataForRatedArenaResponse); + rpc GetArenaTeam(GetArenaTeamRequest) returns (GetArenaTeamResponse); + rpc GetArenaTeamPetition(GetArenaTeamPetitionRequest) returns (GetArenaTeamPetitionResponse); + rpc CreateArenaTeamFromPetition(CreateArenaTeamFromPetitionRequest) returns (CreateArenaTeamFromPetitionResponse); + rpc InviteArenaTeamMember(InviteArenaTeamMemberRequest) returns (InviteArenaTeamMemberResponse); + rpc AcceptArenaTeamInvite(AcceptArenaTeamInviteRequest) returns (AcceptArenaTeamInviteResponse); + rpc DeclineArenaTeamInvite(DeclineArenaTeamInviteRequest) returns (ArenaTeamMutationResponse); + rpc AddArenaTeamMember(AddArenaTeamMemberRequest) returns (ArenaTeamMutationResponse); + rpc RemoveArenaTeamMember(RemoveArenaTeamMemberRequest) returns (ArenaTeamMutationResponse); + rpc DisbandArenaTeam(DisbandArenaTeamRequest) returns (ArenaTeamMutationResponse); + rpc SetArenaTeamCaptain(SetArenaTeamCaptainRequest) returns (ArenaTeamMutationResponse); + rpc SetArenaTeamName(SetArenaTeamNameRequest) returns (ArenaTeamMutationResponse); + rpc SaveArenaTeamStats(SaveArenaTeamStatsRequest) returns (ArenaTeamMutationResponse); + rpc DeleteAllArenaTeams(DeleteAllArenaTeamsRequest) returns (ArenaTeamMutationResponse); + rpc ValidateArenaTeamCharacterDelete(ValidateArenaTeamCharacterDeleteRequest) returns (ArenaTeamMutationResponse); + rpc RemovePlayerFromArenaTeams(RemovePlayerFromArenaTeamsRequest) returns (ArenaTeamMutationResponse); // Would effect only offline player. rpc SavePlayerPosition(SavePlayerPositionRequest) returns (SavePlayerPositionResponse); + rpc RecordLfgDungeonRoute(RecordLfgDungeonRouteRequest) returns (RecordLfgDungeonRouteResponse); + rpc ConfirmLfgDungeonRouteEntered(ConfirmLfgDungeonRouteEnteredRequest) returns (ConfirmLfgDungeonRouteEnteredResponse); + rpc ClearUnboundLfgDungeonRoute(ClearUnboundLfgDungeonRouteRequest) returns (ClearUnboundLfgDungeonRouteResponse); + rpc GetLfgDungeonRoute(GetLfgDungeonRouteRequest) returns (GetLfgDungeonRouteResponse); // Friends and ignore list management rpc GetFriendsList(GetFriendsListRequest) returns (GetFriendsListResponse); rpc AddFriend(AddFriendRequest) returns (AddFriendResponse); + rpc AddRealIDFriendByEmail(AddRealIDFriendByEmailRequest) returns (AddRealIDFriendByEmailResponse); + rpc AcceptRealIDFriend(AcceptRealIDFriendRequest) returns (AcceptRealIDFriendResponse); + rpc AreRealIDFriends(AreRealIDFriendsRequest) returns (AreRealIDFriendsResponse); rpc RemoveFriend(RemoveFriendRequest) returns (RemoveFriendResponse); rpc SetFriendNote(SetFriendNoteRequest) returns (SetFriendNoteResponse); rpc AddIgnore(AddIgnoreRequest) returns (AddIgnoreResponse); @@ -60,6 +85,7 @@ message LogInCharacter { bool banned = 23; repeated EquipmentDisplay equipments = 24; uint32 accountID = 25; + uint32 extraFlags = 26; } message EquipmentDisplay { @@ -88,6 +114,7 @@ message CharactersToLoginByGUIDRequest{ uint64 characterGUID = 2; uint32 realmID = 3; + uint32 accountID = 4; } // Response that contains character to login @@ -117,6 +144,20 @@ message AccountDataForAccountResponse{ repeated AccountData accountData = 2; } +message UpdateAccountDataForAccountRequest{ + string api = 1; + + uint32 accountID = 2; + uint32 realmID = 3; + uint32 type = 4; + int64 time = 5; + string data = 6; +} + +message UpdateAccountDataForAccountResponse{ + string api = 1; +} + message WhoQueryRequest{ string api = 1; @@ -208,6 +249,19 @@ message CharacterByNameResponse { Char character = 2; } +message CharacterByGUIDRequest { + string api = 1; + + uint32 realmID = 2; + uint64 characterGUID = 3; +} + +message CharacterByGUIDResponse { + string api = 1; + + CharacterByNameResponse.Char character = 2; +} + message ShortCharactersDataByGUIDsRequest { string api = 1; @@ -237,6 +291,306 @@ message ShortCharactersDataByGUIDsResponse { repeated ShortCharData characters = 2; } +message ArenaTeamQueueDataForRatedArenaRequest { + string api = 1; + + uint32 realmID = 2; + uint64 leaderGUID = 3; + repeated uint64 playerGUIDs = 4; + uint32 arenaType = 5; + uint32 startMatchmakerRating = 6; +} + +message ArenaTeamQueueDataForRatedArenaResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + MemberMismatch = 2; + InvalidPartySize = 3; + Failed = 4; + InvalidType = 5; + } + + Status status = 2; + uint32 arenaTeamID = 3; + uint32 teamRating = 4; + uint32 matchmakerRating = 5; + uint32 previousOpponentsTeamID = 6; +} + +message CreateArenaTeamFromPetitionRequest { + string api = 1; + + uint32 realmID = 2; + uint64 captainGUID = 3; + uint64 petitionGUID = 4; + uint32 arenaType = 5; + uint32 backgroundColor = 6; + uint32 emblemStyle = 7; + uint32 emblemColor = 8; + uint32 borderStyle = 9; + uint32 borderColor = 10; + uint32 startRating = 11; + uint32 startPersonalRating = 12; + uint32 startMatchmakerRating = 13; +} + +message CreateArenaTeamFromPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + NotOwner = 2; + InvalidType = 3; + NameExists = 4; + AlreadyInTeam = 5; + NotEnoughSignatures = 6; + Failed = 7; + InvalidName = 8; + } + + Status status = 2; + uint32 arenaTeamID = 3; +} + +enum ArenaTeamMutationStatus { + ARENA_TEAM_MUTATION_OK = 0; + ARENA_TEAM_MUTATION_NOT_FOUND = 1; + ARENA_TEAM_MUTATION_MEMBER_MISMATCH = 2; + ARENA_TEAM_MUTATION_INVALID_TYPE = 3; + ARENA_TEAM_MUTATION_NAME_EXISTS = 4; + ARENA_TEAM_MUTATION_ALREADY_IN_TEAM = 5; + ARENA_TEAM_MUTATION_ROSTER_FULL = 6; + ARENA_TEAM_MUTATION_FAILED = 7; + ARENA_TEAM_MUTATION_INVALID_NAME = 8; + ARENA_TEAM_MUTATION_PERMISSION_DENIED = 9; + ARENA_TEAM_MUTATION_LEADER_LEAVE = 10; + ARENA_TEAM_MUTATION_ALREADY_INVITED = 11; + ARENA_TEAM_MUTATION_IGNORING_YOU = 12; +} + +message ArenaTeamMemberData { + uint64 playerGUID = 1; + string name = 2; + bool online = 3; + uint32 level = 4; + uint32 class = 5; + uint32 weekGames = 6; + uint32 weekWins = 7; + uint32 seasonGames = 8; + uint32 seasonWins = 9; + uint32 personalRating = 10; + uint32 matchmakerRating = 11; + uint32 maxMMR = 12; +} + +message ArenaTeamData { + uint32 arenaTeamID = 1; + string name = 2; + uint64 captainGUID = 3; + uint32 type = 4; + uint32 rating = 5; + uint32 weekGames = 6; + uint32 weekWins = 7; + uint32 seasonGames = 8; + uint32 seasonWins = 9; + uint32 rank = 10; + uint32 backgroundColor = 11; + uint32 emblemStyle = 12; + uint32 emblemColor = 13; + uint32 borderStyle = 14; + uint32 borderColor = 15; + repeated ArenaTeamMemberData members = 16; +} + +message GetArenaTeamRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; +} + +message GetArenaTeamResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + Failed = 2; + } + + Status status = 2; + ArenaTeamData team = 3; +} + +message ArenaTeamPetitionData { + uint64 petitionGUID = 1; + uint32 petitionID = 2; + uint64 ownerGUID = 3; + string name = 4; + uint32 arenaType = 5; + uint32 signatures = 6; +} + +message GetArenaTeamPetitionRequest { + string api = 1; + + uint32 realmID = 2; + uint64 petitionGUID = 3; +} + +message GetArenaTeamPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + NotArena = 2; + Failed = 3; + } + + Status status = 2; + ArenaTeamPetitionData petition = 3; +} + +message InviteArenaTeamMemberRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 inviterGUID = 4; + string inviterName = 5; + uint64 targetGUID = 6; + string targetName = 7; +} + +message InviteArenaTeamMemberResponse { + string api = 1; + ArenaTeamMutationStatus status = 2; + ArenaTeamData team = 3; +} + +message AcceptArenaTeamInviteRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; + string playerName = 4; + uint32 personalRating = 5; +} + +message AcceptArenaTeamInviteResponse { + string api = 1; + ArenaTeamMutationStatus status = 2; + ArenaTeamData team = 3; +} + +message DeclineArenaTeamInviteRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message AddArenaTeamMemberRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 playerGUID = 4; + uint32 personalRating = 5; +} + +message RemoveArenaTeamMemberRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 playerGUID = 4; + uint64 actorGUID = 5; +} + +message DisbandArenaTeamRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 actorGUID = 4; +} + +message SetArenaTeamCaptainRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 captainGUID = 4; + uint64 actorGUID = 5; +} + +message SetArenaTeamNameRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + string name = 4; + uint64 actorGUID = 5; +} + +message ArenaTeamStatsMember { + uint64 playerGUID = 1; + uint32 personalRating = 2; + uint32 weekGames = 3; + uint32 weekWins = 4; + uint32 seasonGames = 5; + uint32 seasonWins = 6; + uint32 matchmakerRating = 7; + uint32 maxMMR = 8; + bool saveArenaStats = 9; +} + +message SaveArenaTeamStatsRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint32 rating = 4; + uint32 weekGames = 5; + uint32 weekWins = 6; + uint32 seasonGames = 7; + uint32 seasonWins = 8; + uint32 rank = 9; + uint32 slot = 10; + repeated ArenaTeamStatsMember members = 11; +} + +message DeleteAllArenaTeamsRequest { + string api = 1; + + uint32 realmID = 2; +} + +message ValidateArenaTeamCharacterDeleteRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message RemovePlayerFromArenaTeamsRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message ArenaTeamMutationResponse { + string api = 1; + ArenaTeamMutationStatus status = 2; +} + message SavePlayerPositionRequest { string api = 1; @@ -254,6 +608,67 @@ message SavePlayerPositionResponse { string api = 1; } +message LfgDungeonRoute { + uint32 realmID = 1; + uint64 playerGUID = 2; + uint32 dungeonEntry = 3; + uint32 mapID = 4; + uint32 difficulty = 5; + uint32 ownerRealmID = 6; + bool isCrossRealm = 7; + bool requiresBoundInstance = 8; + uint32 instanceID = 9; + uint32 boundInstanceID = 10; +} + +message RecordLfgDungeonRouteRequest { + string api = 1; + LfgDungeonRoute route = 2; +} + +message RecordLfgDungeonRouteResponse { + string api = 1; +} + +message ConfirmLfgDungeonRouteEnteredRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; + uint32 difficulty = 5; + uint32 instanceID = 6; +} + +message ConfirmLfgDungeonRouteEnteredResponse { + string api = 1; + LfgDungeonRoute route = 2; +} + +message ClearUnboundLfgDungeonRouteRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; +} + +message ClearUnboundLfgDungeonRouteResponse { + string api = 1; +} + +message GetLfgDungeonRouteRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; +} + +message GetLfgDungeonRouteResponse { + string api = 1; + bool found = 2; + bool available = 3; + LfgDungeonRoute route = 4; +} + // Friends list requests and responses message GetFriendsListRequest { @@ -272,6 +687,7 @@ message GetFriendsListResponse { uint32 area = 4; // zone ID if online uint32 level = 5; uint32 classID = 6; + uint32 realmID = 7; } message IgnoredPlayer { @@ -298,6 +714,62 @@ message AddFriendResponse { uint32 area = 4; uint32 level = 5; uint32 classID = 6; + uint64 friendGUID = 7; + bool pending = 8; + bool accepted = 9; +} + +message AddRealIDFriendByEmailRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 accountID = 4; + string email = 5; + string note = 6; +} + +message AddRealIDFriendByEmailResponse { + string api = 1; + uint32 result = 2; // FriendsResult enum value + uint32 status = 3; // 0=offline, 1=online + uint32 area = 4; + uint32 level = 5; + uint32 classID = 6; + uint64 friendGUID = 7; + bool pending = 8; + bool accepted = 9; +} + +message AcceptRealIDFriendRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 accountID = 4; + uint32 requesterAccountID = 5; + string note = 6; +} + +message AcceptRealIDFriendResponse { + string api = 1; + uint32 result = 2; // FriendsResult enum value + uint32 status = 3; // 0=offline, 1=online + uint32 area = 4; + uint32 level = 5; + uint32 classID = 6; + uint64 friendGUID = 7; + bool pending = 8; + bool accepted = 9; +} + +message AreRealIDFriendsRequest { + string api = 1; + uint32 accountID = 2; + uint32 friendAccountID = 3; +} + +message AreRealIDFriendsResponse { + string api = 1; + bool accepted = 2; } message RemoveFriendRequest { @@ -369,4 +841,4 @@ message GetOnlineCharactersResponse { string api = 1; repeated uint64 characterGUIDs = 2; uint32 totalCount = 3; -} \ No newline at end of file +} diff --git a/api/proto/v1/chat/chat.proto b/api/proto/v1/chat/chat.proto index 2a4c1c1..c66cb83 100644 --- a/api/proto/v1/chat/chat.proto +++ b/api/proto/v1/chat/chat.proto @@ -45,6 +45,12 @@ message SendWhisperMessageRequest { uint32 language = 6; string receiverName = 7; string msg = 8; + uint32 receiverRealmID = 9; + uint32 senderClass = 10; + uint32 senderGender = 11; + uint32 senderAccountID = 12; + bool gatewayValidatedGameplayCrossrealmWhisper = 13; + uint32 senderChatTag = 14; } message SendWhisperMessageResponse { @@ -53,10 +59,16 @@ message SendWhisperMessageResponse { enum Status { Ok = 0; CharacterNotFound = 2; + CharacterAmbiguous = 3; } Status status = 2; uint64 receiverGUID = 3; + uint32 receiverRealmID = 4; + string receiverName = 5; + uint32 receiverRace = 6; + uint32 receiverClass = 7; + uint32 receiverGender = 8; } // Channel messages @@ -117,6 +129,7 @@ message SendChannelMessageRequest { uint32 language = 6; string message = 7; TeamID teamID = 8; + uint32 senderChatTag = 9; } message SendChannelMessageResponse { diff --git a/api/proto/v1/group/group.proto b/api/proto/v1/group/group.proto index aed41ac..e535b78 100644 --- a/api/proto/v1/group/group.proto +++ b/api/proto/v1/group/group.proto @@ -12,10 +12,12 @@ service GroupService { rpc ChangeLeader(ChangeLeaderParams) returns (ChangeLeaderResponse); rpc AcceptInvite(AcceptInviteParams) returns (AcceptInviteResponse); + rpc DeclineInvite(DeclineInviteParams) returns (DeclineInviteResponse); rpc GetGroup(GetGroupRequest) returns (GetGroupResponse); rpc GetGroupByMember(GetGroupByMemberRequest) returns (GetGroupResponse); rpc GetGroupIDByPlayer(GetGroupIDByPlayerRequest) returns (GetGroupIDByPlayerResponse); + rpc GetMemberPlacements(GetMemberPlacementsRequest) returns (GetMemberPlacementsResponse); rpc SetGroupTargetIcon(SetGroupTargetIconRequest) returns (SetGroupTargetIconResponse); rpc SetLootMethod(SetLootMethodRequest) returns (SetLootMethodResponse); @@ -24,6 +26,18 @@ service GroupService { rpc SetRaidDifficulty(SetRaidDifficultyRequest) returns (SetRaidDifficultyResponse); rpc SendMessage(SendGroupMessageParams) returns (SendGroupMessageResponse); + + rpc StartReadyCheck(StartReadyCheckRequest) returns (StartReadyCheckResponse); + rpc SetReadyCheckMemberState(SetReadyCheckMemberStateRequest) returns (SetReadyCheckMemberStateResponse); + rpc FinishReadyCheck(FinishReadyCheckRequest) returns (FinishReadyCheckResponse); + rpc ChangeMemberSubGroup(ChangeMemberSubGroupRequest) returns (ChangeMemberSubGroupResponse); + rpc SetMemberFlags(SetMemberFlagsRequest) returns (SetMemberFlagsResponse); + rpc RegisterAcceptedLfgGroup(RegisterAcceptedLfgGroupRequest) returns (RegisterAcceptedLfgGroupResponse); + rpc RegisterMaterializedLfgGroup(RegisterMaterializedLfgGroupRequest) returns (RegisterMaterializedLfgGroupResponse); + rpc UpdateMemberState(UpdateMemberStateRequest) returns (UpdateMemberStateResponse); + rpc BulkUpdateMemberStates(BulkUpdateMemberStatesRequest) returns (BulkUpdateMemberStatesResponse); + rpc ResetInstance(ResetInstanceRequest) returns (ResetInstanceResponse); + rpc SetInstanceBindExtension(SetInstanceBindExtensionRequest) returns (SetInstanceBindExtensionResponse); } message InviteParams { @@ -68,6 +82,25 @@ message AcceptInviteResponse { Status status = 2; } +message DeclineInviteParams { + string api = 1; + + uint32 realmID = 2; + uint64 player = 3; +} + +message DeclineInviteResponse { + enum Status { + Ok = 0; + InviteNotFound = 1; + Error = 2; + } + + string api = 1; + + Status status = 2; +} + message GetGroupRequest { string api = 1; @@ -85,6 +118,7 @@ message GetGroupResponse { bool isOnline = 4; uint32 subGroup = 5; uint32 roles = 6; + uint32 realmID = 7; } message Group { @@ -99,6 +133,7 @@ message GetGroupResponse { uint64 masterLooter = 9; repeated uint64 targetIconsList = 10; repeated GroupMember members = 11; + uint32 realmID = 12; } Group group = 2; @@ -122,6 +157,33 @@ message GetGroupIDByPlayerResponse { string api = 1; uint32 groupID = 2; + uint32 groupRealmID = 3; +} + +message GetMemberPlacementsRequest { + string api = 1; + + uint32 realmID = 2; + repeated uint64 memberGUIDs = 3; +} + +message MemberPlacement { + uint64 memberGUID = 1; + bool online = 2; + bool fresh = 3; + string gatewayID = 4; + string worldserverID = 5; + uint32 mapID = 6; + uint32 instanceID = 7; + bool instanceKnown = 8; + uint64 timestampMs = 9; + uint64 updatedAtMs = 10; +} + +message GetMemberPlacementsResponse { + string api = 1; + + repeated MemberPlacement placements = 2; } message UninviteParams { @@ -185,6 +247,7 @@ message SendGroupMessageParams { uint32 messageType = 4; string message = 5; uint32 language = 6; + uint32 senderChatTag = 7; } message SendGroupMessageResponse { @@ -264,4 +327,195 @@ message SetRaidDifficultyResponse { } Status status = 2; -} \ No newline at end of file +} + +message StartReadyCheckRequest { + string api = 1; + uint32 realmID = 2; + uint64 leaderGUID = 3; + uint32 durationMs = 4; +} + +message StartReadyCheckResponse { + string api = 1; +} + +message SetReadyCheckMemberStateRequest { + string api = 1; + uint32 realmID = 2; + uint64 memberGUID = 3; + uint32 state = 4; +} + +message SetReadyCheckMemberStateResponse { + string api = 1; +} + +message FinishReadyCheckRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message FinishReadyCheckResponse { + string api = 1; +} + +message ChangeMemberSubGroupRequest { + string api = 1; + uint32 realmID = 2; + uint64 updaterGUID = 3; + uint64 memberGUID = 4; + uint32 subGroup = 5; +} + +message ChangeMemberSubGroupResponse { + string api = 1; +} + +message SetMemberFlagsRequest { + string api = 1; + uint32 realmID = 2; + uint64 updaterGUID = 3; + uint64 memberGUID = 4; + uint32 flags = 5; + uint32 roles = 6; +} + +message SetMemberFlagsResponse { + string api = 1; +} + +message AcceptedLfgGroupMember { + uint32 realmID = 1; + uint64 playerGUID = 2; + uint32 selectedRoles = 3; + uint32 assignedRole = 4; + uint32 queueLeaderRealmID = 5; + uint64 queueLeaderGUID = 6; +} + +message RegisterAcceptedLfgGroupRequest { + string api = 1; + uint32 realmID = 2; + uint32 proposalID = 3; + uint32 dungeonEntry = 4; + uint32 leaderRealmID = 5; + uint64 leaderGUID = 6; + bool crossRealm = 7; + repeated AcceptedLfgGroupMember members = 8; +} + +message RegisterAcceptedLfgGroupResponse { + string api = 1; + uint32 groupID = 2; +} + +message MaterializedLfgGroupMember { + uint32 realmID = 1; + uint64 playerGUID = 2; + string name = 3; + bool isOnline = 4; + uint32 flags = 5; + uint32 roles = 6; + uint32 subGroup = 7; +} + +message RegisterMaterializedLfgGroupRequest { + string api = 1; + uint32 realmID = 2; + uint32 groupID = 3; + uint64 leaderGUID = 4; + uint32 groupType = 5; + uint32 difficulty = 6; + uint32 raidDifficulty = 7; + repeated MaterializedLfgGroupMember members = 8; +} + +message RegisterMaterializedLfgGroupResponse { + string api = 1; +} + +message UpdateMemberStateRequest { + string api = 1; + uint32 realmID = 2; + uint64 memberGUID = 3; + bool online = 4; + uint32 level = 5; + uint32 classID = 6; + uint32 zoneID = 7; + uint32 mapID = 8; + uint32 health = 9; + uint32 maxHealth = 10; + uint32 powerType = 11; + uint32 power = 12; + uint32 maxPower = 13; + optional uint32 instanceID = 14; +} + +message UpdateMemberStateResponse { + string api = 1; +} + +message PlayerStateSnapshot { + uint64 memberGUID = 1; + bool online = 2; + uint32 level = 3; + uint32 classID = 4; + uint32 zoneID = 5; + uint32 mapID = 6; + uint32 health = 7; + uint32 maxHealth = 8; + uint32 powerType = 9; + uint32 power = 10; + uint32 maxPower = 11; + uint64 timestampMs = 12; + bool aurasKnown = 13; + repeated PlayerAuraSnapshot auras = 14; + optional uint32 instanceID = 15; + optional bool dead = 16; + optional bool ghost = 17; +} + +message PlayerAuraSnapshot { + uint32 slot = 1; + uint32 spellID = 2; + uint32 flags = 3; +} + +message BulkUpdateMemberStatesRequest { + string api = 1; + uint32 realmID = 2; + string sourceGatewayID = 3; + string sourceWorldserverID = 4; + repeated PlayerStateSnapshot snapshots = 5; +} + +message BulkUpdateMemberStatesResponse { + string api = 1; +} + +message ResetInstanceRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; + uint32 difficulty = 5; +} + +message ResetInstanceResponse { + string api = 1; +} + +message SetInstanceBindExtensionRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; + uint32 difficulty = 5; + bool extended = 6; +} + +message SetInstanceBindExtensionResponse { + string api = 1; +} diff --git a/api/proto/v1/guilds/guilds.proto b/api/proto/v1/guilds/guilds.proto index c4525f0..fe09e55 100644 --- a/api/proto/v1/guilds/guilds.proto +++ b/api/proto/v1/guilds/guilds.proto @@ -28,6 +28,24 @@ service GuildService { rpc DemoteMember(PromoteDemoteParams) returns (PromoteDemoteResponse); rpc SendGuildMessage(SendGuildMessageParams) returns (SendGuildMessageResponse); + + rpc GetGuildPetition(GetGuildPetitionParams) returns (GetGuildPetitionResponse); + rpc OfferGuildPetition(OfferGuildPetitionParams) returns (OfferGuildPetitionResponse); + rpc SignGuildPetition(SignGuildPetitionParams) returns (SignGuildPetitionResponse); + + rpc GetGuildBank(GetGuildBankParams) returns (GetGuildBankResponse); + rpc GetGuildBankLog(GetGuildBankLogParams) returns (GetGuildBankLogResponse); + rpc GetGuildBankTabText(GetGuildBankTabTextParams) returns (GetGuildBankTabTextResponse); + rpc UpdateGuildBankTab(UpdateGuildBankTabParams) returns (GuildBankActionResponse); + rpc SetGuildBankTabText(SetGuildBankTabTextParams) returns (GuildBankActionResponse); + rpc BuyGuildBankTab(BuyGuildBankTabParams) returns (BuyGuildBankTabResponse); + rpc DepositGuildBankMoney(DepositGuildBankMoneyParams) returns (GuildBankActionResponse); + rpc WithdrawGuildBankMoney(WithdrawGuildBankMoneyParams) returns (GuildBankActionResponse); + rpc RollbackGuildBankMoneyWithdraw(RollbackGuildBankMoneyWithdrawParams) returns (GuildBankActionResponse); + rpc DepositGuildBankItem(DepositGuildBankItemParams) returns (GuildBankItemMutationResponse); + rpc WithdrawGuildBankItem(WithdrawGuildBankItemParams) returns (GuildBankItemMutationResponse); + rpc RollbackGuildBankItemWithdraw(RollbackGuildBankItemWithdrawParams) returns (GuildBankItemMutationResponse); + rpc MoveGuildBankItem(MoveGuildBankItemParams) returns (GuildBankItemMutationResponse); } message GetInfoParams { @@ -73,12 +91,21 @@ message GetRosterInfoResponse { int64 logoutTime = 9; string note = 10; string officerNote = 11; + repeated uint32 bankWithdraw = 12; } message Rank { uint32 id = 1; uint32 flags = 2; uint32 goldLimit = 3; + + message BankTabRight { + uint32 tabID = 1; + uint32 flags = 2; + uint32 withdrawItemLimit = 3; + } + + repeated BankTabRight bankTabRights = 4; } message Guild { @@ -88,6 +115,7 @@ message GetRosterInfoResponse { repeated Member members = 4; repeated Rank ranks = 5; + uint32 purchasedBankTabs = 6; }; Guild guild = 2; @@ -100,6 +128,8 @@ message InviteMemberParams { uint64 inviter = 3; uint64 invitee = 4; string inviteeName = 5; + uint32 inviteeRace = 6; + bool allowCrossFaction = 7; } message InviteMemberResponse { @@ -128,6 +158,7 @@ message InviteAcceptedParams { } Character character = 3; + bool allowCrossFaction = 4; } message InviteAcceptedResponse { @@ -198,6 +229,14 @@ message RankUpdateParams { string rankName = 5; uint32 rights = 6; uint32 moneyPerDay = 7; + + message BankTabRight { + uint32 tabID = 1; + uint32 flags = 2; + uint32 withdrawItemLimit = 3; + } + + repeated BankTabRight bankTabRights = 8; } message RankUpdateResponse { @@ -243,8 +282,308 @@ message SendGuildMessageParams { bool isOfficerMessage = 4; string message = 5; uint32 language = 6; + uint32 senderChatTag = 7; } message SendGuildMessageResponse { string api = 1; } + +message GuildPetitionSignature { + uint64 playerGUID = 1; + uint32 playerAccount = 2; +} + +message GuildPetition { + uint64 petitionGUID = 1; + uint32 petitionID = 2; + uint64 ownerGUID = 3; + string name = 4; + uint32 type = 5; + repeated GuildPetitionSignature signatures = 6; +} + +message GetGuildPetitionParams { + string api = 1; + uint32 realmID = 2; + uint64 petitionGUID = 3; +} + +message GetGuildPetitionResponse { + string api = 1; + GuildPetition petition = 2; +} + +message OfferGuildPetitionParams { + string api = 1; + uint32 realmID = 2; + uint64 ownerGUID = 3; + uint64 targetGUID = 4; + string targetName = 5; + uint64 petitionGUID = 6; +} + +message OfferGuildPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + NotOwner = 2; + TargetNotFound = 3; + TargetAlreadyInGuild = 4; + TargetAlreadyInvited = 5; + Failed = 6; + } + + Status status = 2; +} + +message SignGuildPetitionParams { + string api = 1; + uint32 realmID = 2; + uint64 signerGUID = 3; + string signerName = 4; + uint32 signerAccountID = 5; + uint32 signerGuildID = 6; + uint64 petitionGUID = 7; +} + +message SignGuildPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + AlreadySigned = 1; + AlreadyInGuild = 2; + CantSignOwn = 3; + NotServer = 4; + NotFound = 5; + Full = 6; + Failed = 7; + AlreadyInvited = 8; + } + + Status status = 2; +} + +message GuildBankSocketEnchant { + uint32 socketIndex = 1; + uint32 socketEnchantID = 2; +} + +message GuildBankItem { + uint64 itemGUID = 1; + uint32 entry = 2; + uint32 slot = 3; + uint32 count = 4; + uint32 flags = 5; + int32 randomPropertyID = 6; + int32 randomPropertySeed = 7; + uint32 durability = 8; + uint32 enchantmentID = 9; + repeated GuildBankSocketEnchant socketEnchants = 10; + uint32 charges = 11; + string text = 12; +} + +message GuildBankTab { + uint32 tabID = 1; + string name = 2; + string icon = 3; + string text = 4; + repeated GuildBankItem items = 5; +} + +message GuildBankStatus { + enum Status { + Ok = 0; + Failed = 1; + GuildNotFound = 2; + NotInGuild = 3; + NotEnoughRights = 4; + InvalidTab = 5; + InvalidSlot = 6; + NotEnoughMoney = 7; + BankFull = 8; + WithdrawLimit = 9; + ItemNotFound = 10; + } +} + +message GetGuildBankParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + bool fullUpdate = 6; +} + +message GetGuildBankResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint64 money = 3; + uint32 tabID = 4; + int32 withdrawalsRemaining = 5; + bool fullUpdate = 6; + repeated GuildBankTab tabs = 7; + repeated GuildBankItem items = 8; +} + +message GetGuildBankLogParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; +} + +message GuildBankLogEntry { + uint64 playerGUID = 1; + uint32 timeOffset = 2; + int32 entryType = 3; + uint32 money = 4; + int32 itemID = 5; + int32 count = 6; + int32 otherTab = 7; +} + +message GetGuildBankLogResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 tabID = 3; + repeated GuildBankLogEntry entries = 4; +} + +message GetGuildBankTabTextParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; +} + +message GetGuildBankTabTextResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 tabID = 3; + string text = 4; +} + +message UpdateGuildBankTabParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + string name = 6; + string icon = 7; +} + +message SetGuildBankTabTextParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + string text = 6; +} + +message BuyGuildBankTabParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; +} + +message BuyGuildBankTabResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 tabCost = 3; +} + +message DepositGuildBankMoneyParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 amount = 5; +} + +message WithdrawGuildBankMoneyParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 amount = 5; + bool repair = 6; +} + +message RollbackGuildBankMoneyWithdrawParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 amount = 5; + bool repair = 6; + uint32 logGUID = 7; +} + +message DepositGuildBankItemParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + uint32 slotID = 6; + GuildBankItem item = 7; +} + +message WithdrawGuildBankItemParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + uint32 slotID = 6; + uint32 count = 7; +} + +message RollbackGuildBankItemWithdrawParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + uint32 slotID = 6; + GuildBankItem item = 7; + uint32 logGUID = 8; +} + +message MoveGuildBankItemParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 sourceTabID = 5; + uint32 sourceSlotID = 6; + uint32 destinationTabID = 7; + uint32 destinationSlotID = 8; + uint32 count = 9; +} + +message GuildBankActionResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 logGUID = 3; +} + +message GuildBankItemMutationResponse { + string api = 1; + GuildBankStatus.Status status = 2; + GuildBankItem item = 3; + repeated uint32 changedSlots = 4; + uint32 logGUID = 5; +} diff --git a/api/proto/v1/matchmaking/matchmaking.proto b/api/proto/v1/matchmaking/matchmaking.proto index a7e8c6f..4cc142e 100644 --- a/api/proto/v1/matchmaking/matchmaking.proto +++ b/api/proto/v1/matchmaking/matchmaking.proto @@ -12,6 +12,14 @@ service MatchmakingService { rpc PlayerLeftBattleground(PlayerLeftBattlegroundRequest) returns (PlayerLeftBattlegroundResponse); rpc PlayerJoinedBattleground(PlayerJoinedBattlegroundRequest) returns (PlayerJoinedBattlegroundResponse); rpc BattlegroundStatusChanged(BattlegroundStatusChangedRequest) returns (BattlegroundStatusChangedResponse); + rpc FinishRatedArenaMatch(FinishRatedArenaMatchRequest) returns (FinishRatedArenaMatchResponse); + + rpc JoinLfg(JoinLfgRequest) returns (JoinLfgResponse); + rpc LeaveLfg(LeaveLfgRequest) returns (LeaveLfgResponse); + rpc SetLfgRoles(SetLfgRolesRequest) returns (SetLfgRolesResponse); + rpc AnswerLfgProposal(AnswerLfgProposalRequest) returns (AnswerLfgProposalResponse); + rpc LfgStatus(LfgStatusRequest) returns (LfgStatusResponse); + rpc CompleteLfgDungeon(CompleteLfgDungeonRequest) returns (CompleteLfgDungeonResponse); } enum PVPTeamID { @@ -38,6 +46,8 @@ message EnqueueToBattlegroundRequest { uint32 bgTypeID = 6; PVPTeamID teamID = 7; + uint32 arenaType = 8; + bool isRated = 9; } message EnqueueToBattlegroundResponse { @@ -72,6 +82,7 @@ message BattlegroundQueueDataForPlayerResponse { uint32 battlegroupID = 3; string gameserverAddress = 4; string gameserverGRPCAddress = 5; + PVPTeamID assignedTeamID = 6; } message QueueSlot { @@ -129,4 +140,212 @@ message BattlegroundStatusChangedRequest { message BattlegroundStatusChangedResponse { string api = 1; -} \ No newline at end of file +} + +enum MatchmakingArenaTeamMutationStatus { + MATCHMAKING_ARENA_TEAM_MUTATION_OK = 0; + MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND = 1; + MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH = 2; + MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE = 3; + MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS = 4; + MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM = 5; + MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL = 6; + MATCHMAKING_ARENA_TEAM_MUTATION_FAILED = 7; + MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME = 8; +} + +message RatedArenaParticipant { + PVPTeamID team = 1; + uint64 playerGUID = 2; +} + +message RatedArenaTeamScore { + uint32 realmID = 1; + uint32 arenaTeamID = 2; + string teamName = 3; + int32 ratingChange = 4; + uint32 matchmakerRating = 5; +} + +message RatedArenaMemberResult { + PVPTeamID team = 1; + uint64 playerGUID = 2; + uint32 personalRating = 3; + uint32 weekGames = 4; + uint32 seasonGames = 5; + uint32 weekWins = 6; + uint32 seasonWins = 7; + uint32 matchmakerRating = 8; +} + +message FinishRatedArenaMatchRequest { + string api = 1; + + uint32 ownerRealmID = 2; + bool isCrossRealm = 3; + uint32 instanceID = 4; + uint32 arenaType = 5; + PVPTeamID winnerTeam = 6; + bool validArena = 7; + + uint32 allianceArenaTeamID = 8; + uint32 hordeArenaTeamID = 9; + uint32 allianceArenaMatchmakerRating = 10; + uint32 hordeArenaMatchmakerRating = 11; + repeated RatedArenaParticipant participants = 12; +} + +message FinishRatedArenaMatchResponse { + string api = 1; + MatchmakingArenaTeamMutationStatus status = 2; + RatedArenaTeamScore allianceScore = 3; + RatedArenaTeamScore hordeScore = 4; + repeated RatedArenaMemberResult memberResults = 5; +} + +enum LfgState { + LFG_STATE_NONE = 0; + LFG_STATE_ROLECHECK = 1; + LFG_STATE_QUEUED = 2; + LFG_STATE_PROPOSAL = 3; + LFG_STATE_BOOT = 4; + LFG_STATE_DUNGEON = 5; + LFG_STATE_FINISHED_DUNGEON = 6; + LFG_STATE_RAIDBROWSER = 7; +} + +enum LfgProposalState { + LFG_PROPOSAL_INITIATING = 0; + LFG_PROPOSAL_FAILED = 1; + LFG_PROPOSAL_SUCCESS = 2; +} + +enum LfgJoinResult { + LFG_JOIN_OK = 0; + LFG_JOIN_FAILED = 1; + LFG_JOIN_GROUP_FULL = 2; + LFG_JOIN_INTERNAL_ERROR = 4; + LFG_JOIN_NOT_MEET_REQS = 5; + LFG_JOIN_PARTY_NOT_MEET_REQS = 6; + LFG_JOIN_MIXED_RAID_DUNGEON = 7; + LFG_JOIN_MULTI_REALM = 8; + LFG_JOIN_DISCONNECTED = 9; + LFG_JOIN_PARTY_INFO_FAILED = 10; + LFG_JOIN_DUNGEON_INVALID = 11; + LFG_JOIN_DESERTER = 12; + LFG_JOIN_PARTY_DESERTER = 13; + LFG_JOIN_RANDOM_COOLDOWN = 14; + LFG_JOIN_PARTY_RANDOM_COOLDOWN = 15; + LFG_JOIN_TOO_MANY_MEMBERS = 16; + LFG_JOIN_USING_BG_SYSTEM = 17; +} + +message LfgMember { + uint64 playerGUID = 1; + uint32 roles = 2; + bool leader = 3; + string worldserverID = 4; + uint32 realmID = 5; + uint32 queueLeaderRealmID = 6; + uint64 queueLeaderGUID = 7; +} + +message LfgProposalMember { + uint64 playerGUID = 1; + uint32 selectedRoles = 2; + uint32 assignedRole = 3; + bool answered = 4; + bool accepted = 5; + uint32 realmID = 6; +} + +message LfgStatusData { + LfgState state = 1; + uint32 proposalID = 2; + LfgProposalState proposalState = 3; + uint32 dungeonEntry = 4; + repeated uint32 selectedDungeons = 5; + repeated LfgMember queuedMembers = 6; + repeated LfgProposalMember proposalMembers = 7; + uint32 queuedTimeMilliseconds = 8; + uint32 tanksNeeded = 9; + uint32 healersNeeded = 10; + uint32 damageNeeded = 11; +} + +message JoinLfgRequest { + string api = 1; + uint32 realmID = 2; + uint64 leaderGUID = 3; + repeated LfgMember members = 4; + repeated uint32 dungeonEntries = 5; + string comment = 6; +} + +message JoinLfgResponse { + string api = 1; + LfgJoinResult result = 2; + LfgStatusData status = 3; +} + +message LeaveLfgRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message LeaveLfgResponse { + string api = 1; +} + +message SetLfgRolesRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 roles = 4; +} + +message SetLfgRolesResponse { + string api = 1; + LfgStatusData status = 2; +} + +message AnswerLfgProposalRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 proposalID = 4; + bool accept = 5; +} + +message AnswerLfgProposalResponse { + string api = 1; + LfgStatusData status = 2; +} + +message LfgStatusRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message LfgStatusResponse { + string api = 1; + LfgStatusData status = 2; +} + +message CompleteLfgDungeonPlayer { + uint32 realmID = 1; + uint64 playerGUID = 2; +} + +message CompleteLfgDungeonRequest { + string api = 1; + uint32 completedDungeonEntry = 2; + uint32 selectedDungeonEntry = 3; + repeated CompleteLfgDungeonPlayer players = 4; +} + +message CompleteLfgDungeonResponse { + string api = 1; +} diff --git a/api/proto/v1/servers-registry/registry.proto b/api/proto/v1/servers-registry/registry.proto index 3157821..b8e4ca2 100644 --- a/api/proto/v1/servers-registry/registry.proto +++ b/api/proto/v1/servers-registry/registry.proto @@ -14,6 +14,8 @@ service ServersRegistryService { rpc RegisterGateway(RegisterGatewayRequest) returns (RegisterGatewayResponse); rpc GatewaysForRealms(GatewaysForRealmsRequest) returns (GatewaysForRealmsResponse); rpc ListGatewaysForRealm(ListGatewaysForRealmRequest) returns (ListGatewaysForRealmResponse); + + rpc RegisterMatchmakingServer(RegisterMatchmakingServerRequest) returns (RegisterMatchmakingServerResponse); } // @@ -185,6 +187,24 @@ message ListGatewaysForRealmResponse { repeated GatewayServerDetailed gateways = 2; } +// +// RegisterMatchmakingServer +// +message RegisterMatchmakingServerRequest { + string api = 1; + + uint32 servicePort = 2; + uint32 healthPort = 3; + string preferredHostName = 4; + int64 startedAtUnixMs = 5; +} + +message RegisterMatchmakingServerResponse { + string api = 1; + + string id = 2; +} + // // Shared // @@ -193,5 +213,5 @@ message Server { uint32 realmID = 2; bool isCrossRealm = 3; string grpcAddress = 4; + string id = 5; } - diff --git a/api/proto/v1/worldserver/worldserver.proto b/api/proto/v1/worldserver/worldserver.proto index d58e80d..028fa27 100644 --- a/api/proto/v1/worldserver/worldserver.proto +++ b/api/proto/v1/worldserver/worldserver.proto @@ -8,6 +8,7 @@ option go_package = "gen/worldserver/pb"; service WorldServerService { // Items rpc GetPlayerItemsByGuids(GetPlayerItemsByGuidsRequest) returns (GetPlayerItemsByGuidsResponse); + rpc TakePlayerItemByPos(TakePlayerItemByPosRequest) returns (TakePlayerItemByPosResponse); rpc RemoveItemsWithGuidsFromPlayer(RemoveItemsWithGuidsFromPlayerRequest) returns (RemoveItemsWithGuidsFromPlayerResponse); rpc AddExistingItemToPlayer(AddExistingItemToPlayerRequest) returns (AddExistingItemToPlayerResponse); @@ -24,6 +25,17 @@ service WorldServerService { rpc AddPlayersToBattleground(AddPlayersToBattlegroundRequest) returns (AddPlayersToBattlegroundResponse); rpc CanPlayerJoinBattlegroundQueue(CanPlayerJoinBattlegroundQueueRequest) returns (CanPlayerJoinBattlegroundQueueResponse); rpc CanPlayerTeleportToBattleground(CanPlayerTeleportToBattlegroundRequest) returns (CanPlayerTeleportToBattlegroundResponse); + + // LFG + rpc GetLfgPlayerLockInfo(GetLfgPlayerLockInfoRequest) returns (GetLfgPlayerLockInfoResponse); + rpc GetLfgPlayerInfo(GetLfgPlayerInfoRequest) returns (GetLfgPlayerInfoResponse); + rpc GetLfgDungeonInfo(GetLfgDungeonInfoRequest) returns (GetLfgDungeonInfoResponse); + rpc TeleportLfgPlayer(TeleportLfgPlayerRequest) returns (TeleportLfgPlayerResponse); + rpc SetLfgBootVote(SetLfgBootVoteRequest) returns (SetLfgBootVoteResponse); + rpc MaterializeLfgProposal(MaterializeLfgProposalRequest) returns (MaterializeLfgProposalResponse); + + // Guilds + rpc CreateGuild(CreateGuildRequest) returns (CreateGuildResponse); } // GetPlayerItemsByGuids @@ -47,12 +59,53 @@ message GetPlayerItemsByGuidsResponse { uint32 count = 7; uint32 flags = 8; uint32 durability = 9; - uint32 randomPropertyID = 10; + int32 randomPropertyID = 10; string text = 11; }; repeated Item items = 2; } +// TakePlayerItemByPos +message TakePlayerItemByPosRequest { + string api = 1; + + uint64 playerGuid = 2; + uint32 bagSlot = 3; + uint32 slot = 4; + uint32 count = 5; + + uint64 assignToPlayerGuid = 6; +} + +message TakePlayerItemByPosResponse { + string api = 1; + + enum Status { + Success = 0; + PlayerNotFound = 1; + ItemNotFound = 2; + ItemNotTradable = 3; + Failed = 4; + } + + message Item { + uint64 guid = 1; + uint32 entry = 2; + uint64 owner = 3; + uint32 bagSlot = 4; + uint32 slot = 5; + bool isTradable = 6; + uint32 count = 7; + uint32 flags = 8; + uint32 durability = 9; + int32 randomPropertyID = 10; + string text = 11; + }; + + Status status = 2; + Item item = 3; +} + // RemoveItemsWithGuidsFromPlayer message RemoveItemsWithGuidsFromPlayerRequest { string api = 1; @@ -79,12 +132,15 @@ message AddExistingItemToPlayerRequest { uint32 count = 7; uint32 flags = 8; uint32 durability = 9; - uint32 randomPropertyID = 10; + int32 randomPropertyID = 10; string text = 11; } uint64 playerGuid = 2; Item item = 3; + bool storeAtPos = 4; + uint32 bagSlot = 5; + uint32 slot = 6; } message AddExistingItemToPlayerResponse { @@ -177,13 +233,18 @@ message StartBattlegroundRequest { string api = 1; BattlegroundType battlegroundTypeID = 2; - uint32 arenaType = 3; // Arenas not supported yet. - bool isRated = 4; // Arenas not supported yet. + uint32 arenaType = 3; + bool isRated = 4; uint32 mapID = 5; uint32 bracketLvl = 6; repeated uint64 playersToAddAlliance = 7; repeated uint64 playersToAddHorde = 8; + + uint32 allianceArenaTeamID = 9; + uint32 hordeArenaTeamID = 10; + uint32 allianceArenaMatchmakerRating = 11; + uint32 hordeArenaMatchmakerRating = 12; } message StartBattlegroundResponse { @@ -241,3 +302,184 @@ message CanPlayerTeleportToBattlegroundResponse { Status status = 2; } + +message LfgDungeonLock { + uint32 dungeonEntry = 1; + uint32 lockStatus = 2; +} + +message GetLfgPlayerLockInfoRequest { + string api = 1; + uint64 playerGUID = 2; + repeated uint32 dungeonEntries = 3; +} + +message GetLfgPlayerLockInfoResponse { + string api = 1; + + enum Status { + Success = 0; + PlayerNotFound = 1; + InternalError = 2; + } + + Status status = 2; + repeated LfgDungeonLock locks = 3; + // AzerothCore LfgJoinResult for player-wide join restrictions not represented + // as per-dungeon lock rows, such as deserter or random dungeon cooldown. + uint32 joinResult = 4; + // AzerothCore DBC-filtered and canonicalized dungeon entries accepted from + // the client selection. Gateway must queue these instead of raw client slots. + repeated uint32 validDungeonEntries = 5; +} + +message LfgRewardItem { + uint32 itemID = 1; + uint32 displayID = 2; + uint32 count = 3; +} + +message LfgRandomDungeonInfo { + uint32 dungeonEntry = 1; + bool done = 2; + uint32 rewardMoney = 3; + uint32 rewardXP = 4; + uint32 rewardUnknown1 = 5; + uint32 rewardUnknown2 = 6; + repeated LfgRewardItem rewardItems = 7; +} + +message GetLfgPlayerInfoRequest { + string api = 1; + uint64 playerGUID = 2; +} + +message GetLfgPlayerInfoResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + PlayerNotFound = 2; + InternalError = 3; + } + + Status status = 2; + repeated LfgRandomDungeonInfo randomDungeons = 3; + repeated LfgDungeonLock locks = 4; +} + +message GetLfgDungeonInfoRequest { + string api = 1; + uint32 dungeonEntry = 2; +} + +message GetLfgDungeonInfoResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + DungeonNotFound = 2; + InternalError = 3; + } + + Status status = 2; + uint32 dungeonEntry = 3; + uint32 dungeonID = 4; + uint32 mapID = 5; + uint32 typeID = 6; + uint32 difficulty = 7; +} + +message TeleportLfgPlayerRequest { + string api = 1; + uint64 playerGUID = 2; + bool out = 3; + uint32 dungeonEntry = 4; +} + +message TeleportLfgPlayerResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + PlayerNotFound = 2; + InternalError = 3; + } + + Status status = 2; +} + +message SetLfgBootVoteRequest { + string api = 1; + uint64 playerGUID = 2; + bool agree = 3; +} + +message SetLfgBootVoteResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + PlayerNotFound = 2; + InternalError = 3; + } + + Status status = 2; +} + +// MaterializeLfgProposal +message MaterializeLfgProposalRequest { + string api = 1; + + message Member { + uint64 playerGUID = 1; + uint32 selectedRoles = 2; + uint32 assignedRole = 3; + uint64 queueLeaderGUID = 4; + } + + uint32 realmID = 2; + uint32 proposalID = 3; + uint32 dungeonEntry = 4; + uint64 leaderGUID = 5; + repeated Member members = 6; +} + +message MaterializeLfgProposalResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + DungeonNotFound = 2; + NoLocalPlayer = 3; + InternalError = 4; + } + + Status status = 2; +} + +message CreateGuildRequest { + string api = 1; + uint64 leaderGuid = 2; + string guildName = 3; +} + +message CreateGuildResponse { + string api = 1; + + enum Status { + Success = 0; + NameExists = 1; + InvalidName = 2; + LeaderNotFound = 3; + InternalError = 4; + } + + Status status = 2; + uint64 guildId = 3; +} diff --git a/config.yml.example b/config.yml.example index 8d81dc3..ce2ab46 100644 --- a/config.yml.example +++ b/config.yml.example @@ -9,7 +9,8 @@ db: schemaType: &defaultSchemaType "ac" nats: &defaultNatsUrl "nats://localhost:4222" -redis: &defaultRedisUrl "redis://:@localhost:6379/0" +# Redis-compatible store URL. Valkey is the recommended local Debian/Linux backend. +redis: &defaultRedisUrl "redis://:@127.0.0.1:6379/0" logging: &defaultLogging # Available options: @@ -34,8 +35,10 @@ auth: characters: port: 8991 + authDB: *defaultAuthDB charactersDB: *defaultCharactersDB worldDB: *defaultWorldDB + realIDCrossFaction: true natsUrl: *defaultNatsUrl serversRegistryServiceAddress: localhost:8999 logging: *defaultLogging @@ -61,7 +64,20 @@ gateway: groupServiceAddress: "localhost:8998" matchmakingServiceAddress: "localhost:8994" packetProcessTimeoutSecs: 20 + worldAuthAttemptTimeoutMs: 5000 + worldAuthSessionReadyDelayMs: 300 + worldserverConnectRetryWaitMs: 200 + worldserverConnectRetryMaxWaitMs: 2000 showGameserverConnChangeToClient: true + allowTwoSideInteractionGuild: false + allowTwoSideInteractionChannel: false + allowTwoSideInteractionArena: false + maxPlayerLevel: 80 + arenaCurrentSeason: 8 + legacyArenaStartRating: 1500 + arenaStartRating: 0 + arenaStartPersonalRating: 0 + arenaStartMatchmakerRating: 1500 natsUrl: *defaultNatsUrl logging: *defaultLogging @@ -75,6 +91,8 @@ guild: port: 8995 natsUrl: *defaultNatsUrl charactersDB: *defaultCharactersDB + worldDB: *defaultWorldDB + guidProviderServiceAddress: "localhost:8996" logging: *defaultLogging mail: @@ -96,26 +114,42 @@ servers-registry: port: 8999 redisUrl: *defaultRedisUrl natsUrl: *defaultNatsUrl + matchmakingServiceAddress: "localhost:8994" + matchmakingServiceHealthCheckAddress: "localhost:8904" + matchmakingServiceHealthCheckIntervalMs: 4000 + matchmakingServiceHealthCheckTimeoutMs: 15000 logging: *defaultLogging realmsID: - 1 matchmakingserver: port: 8994 + healthCheckPort: 8904 natsUrl: *defaultNatsUrl logging: *defaultLogging worldDB: *defaultWorldDB charactersDB: *defaultCharactersDB + groupServiceAddress: "localhost:8998" + charactersServiceAddress: "localhost:8991" battleGroups: 1: "1" + arenaStartMatchmakerRating: 1500 + arenaWinRatingModifier1: 48 + arenaWinRatingModifier2: 24 + arenaLoseRatingModifier: 24 + arenaMatchmakerRatingModifier: 24 + maxAllowedMMRDrop: 500 gameserver: grpcPort: 9501 healthCheckPort: 8901 preferredHostname: "" + loopbackHostOverride: "auto" serversRegistryServiceAddress: "localhost:8999" guidProviderServiceAddress: "localhost:8996" + groupServiceAddress: "localhost:8998" matchmakingServiceAddress: "localhost:8994" + charactersServiceAddress: "localhost:8991" characterGuidsBufferSize: 50 itemGuidsBufferSize: 200 instanceGuidsBufferSize: 10 @@ -192,4 +226,4 @@ perun: - "glb" - "gamelb" binary: "./gateway" - startupTimeoutSecs: 10 \ No newline at end of file + startupTimeoutSecs: 10 diff --git a/gen/characters/pb/characters.pb.go b/gen/characters/pb/characters.pb.go index b93605b..2a816a0 100644 --- a/gen/characters/pb/characters.pb.go +++ b/gen/characters/pb/characters.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: characters.proto package pb @@ -20,6 +20,311 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type ArenaTeamMutationStatus int32 + +const ( + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK ArenaTeamMutationStatus = 0 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_NOT_FOUND ArenaTeamMutationStatus = 1 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_MEMBER_MISMATCH ArenaTeamMutationStatus = 2 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_INVALID_TYPE ArenaTeamMutationStatus = 3 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_NAME_EXISTS ArenaTeamMutationStatus = 4 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM ArenaTeamMutationStatus = 5 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_ROSTER_FULL ArenaTeamMutationStatus = 6 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_FAILED ArenaTeamMutationStatus = 7 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_INVALID_NAME ArenaTeamMutationStatus = 8 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_PERMISSION_DENIED ArenaTeamMutationStatus = 9 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_LEADER_LEAVE ArenaTeamMutationStatus = 10 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_ALREADY_INVITED ArenaTeamMutationStatus = 11 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_IGNORING_YOU ArenaTeamMutationStatus = 12 +) + +// Enum value maps for ArenaTeamMutationStatus. +var ( + ArenaTeamMutationStatus_name = map[int32]string{ + 0: "ARENA_TEAM_MUTATION_OK", + 1: "ARENA_TEAM_MUTATION_NOT_FOUND", + 2: "ARENA_TEAM_MUTATION_MEMBER_MISMATCH", + 3: "ARENA_TEAM_MUTATION_INVALID_TYPE", + 4: "ARENA_TEAM_MUTATION_NAME_EXISTS", + 5: "ARENA_TEAM_MUTATION_ALREADY_IN_TEAM", + 6: "ARENA_TEAM_MUTATION_ROSTER_FULL", + 7: "ARENA_TEAM_MUTATION_FAILED", + 8: "ARENA_TEAM_MUTATION_INVALID_NAME", + 9: "ARENA_TEAM_MUTATION_PERMISSION_DENIED", + 10: "ARENA_TEAM_MUTATION_LEADER_LEAVE", + 11: "ARENA_TEAM_MUTATION_ALREADY_INVITED", + 12: "ARENA_TEAM_MUTATION_IGNORING_YOU", + } + ArenaTeamMutationStatus_value = map[string]int32{ + "ARENA_TEAM_MUTATION_OK": 0, + "ARENA_TEAM_MUTATION_NOT_FOUND": 1, + "ARENA_TEAM_MUTATION_MEMBER_MISMATCH": 2, + "ARENA_TEAM_MUTATION_INVALID_TYPE": 3, + "ARENA_TEAM_MUTATION_NAME_EXISTS": 4, + "ARENA_TEAM_MUTATION_ALREADY_IN_TEAM": 5, + "ARENA_TEAM_MUTATION_ROSTER_FULL": 6, + "ARENA_TEAM_MUTATION_FAILED": 7, + "ARENA_TEAM_MUTATION_INVALID_NAME": 8, + "ARENA_TEAM_MUTATION_PERMISSION_DENIED": 9, + "ARENA_TEAM_MUTATION_LEADER_LEAVE": 10, + "ARENA_TEAM_MUTATION_ALREADY_INVITED": 11, + "ARENA_TEAM_MUTATION_IGNORING_YOU": 12, + } +) + +func (x ArenaTeamMutationStatus) Enum() *ArenaTeamMutationStatus { + p := new(ArenaTeamMutationStatus) + *p = x + return p +} + +func (x ArenaTeamMutationStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ArenaTeamMutationStatus) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[0].Descriptor() +} + +func (ArenaTeamMutationStatus) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[0] +} + +func (x ArenaTeamMutationStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ArenaTeamMutationStatus.Descriptor instead. +func (ArenaTeamMutationStatus) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{0} +} + +type ArenaTeamQueueDataForRatedArenaResponse_Status int32 + +const ( + ArenaTeamQueueDataForRatedArenaResponse_Ok ArenaTeamQueueDataForRatedArenaResponse_Status = 0 + ArenaTeamQueueDataForRatedArenaResponse_NotFound ArenaTeamQueueDataForRatedArenaResponse_Status = 1 + ArenaTeamQueueDataForRatedArenaResponse_MemberMismatch ArenaTeamQueueDataForRatedArenaResponse_Status = 2 + ArenaTeamQueueDataForRatedArenaResponse_InvalidPartySize ArenaTeamQueueDataForRatedArenaResponse_Status = 3 + ArenaTeamQueueDataForRatedArenaResponse_Failed ArenaTeamQueueDataForRatedArenaResponse_Status = 4 + ArenaTeamQueueDataForRatedArenaResponse_InvalidType ArenaTeamQueueDataForRatedArenaResponse_Status = 5 +) + +// Enum value maps for ArenaTeamQueueDataForRatedArenaResponse_Status. +var ( + ArenaTeamQueueDataForRatedArenaResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "MemberMismatch", + 3: "InvalidPartySize", + 4: "Failed", + 5: "InvalidType", + } + ArenaTeamQueueDataForRatedArenaResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "MemberMismatch": 2, + "InvalidPartySize": 3, + "Failed": 4, + "InvalidType": 5, + } +) + +func (x ArenaTeamQueueDataForRatedArenaResponse_Status) Enum() *ArenaTeamQueueDataForRatedArenaResponse_Status { + p := new(ArenaTeamQueueDataForRatedArenaResponse_Status) + *p = x + return p +} + +func (x ArenaTeamQueueDataForRatedArenaResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ArenaTeamQueueDataForRatedArenaResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[1].Descriptor() +} + +func (ArenaTeamQueueDataForRatedArenaResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[1] +} + +func (x ArenaTeamQueueDataForRatedArenaResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ArenaTeamQueueDataForRatedArenaResponse_Status.Descriptor instead. +func (ArenaTeamQueueDataForRatedArenaResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{22, 0} +} + +type CreateArenaTeamFromPetitionResponse_Status int32 + +const ( + CreateArenaTeamFromPetitionResponse_Ok CreateArenaTeamFromPetitionResponse_Status = 0 + CreateArenaTeamFromPetitionResponse_NotFound CreateArenaTeamFromPetitionResponse_Status = 1 + CreateArenaTeamFromPetitionResponse_NotOwner CreateArenaTeamFromPetitionResponse_Status = 2 + CreateArenaTeamFromPetitionResponse_InvalidType CreateArenaTeamFromPetitionResponse_Status = 3 + CreateArenaTeamFromPetitionResponse_NameExists CreateArenaTeamFromPetitionResponse_Status = 4 + CreateArenaTeamFromPetitionResponse_AlreadyInTeam CreateArenaTeamFromPetitionResponse_Status = 5 + CreateArenaTeamFromPetitionResponse_NotEnoughSignatures CreateArenaTeamFromPetitionResponse_Status = 6 + CreateArenaTeamFromPetitionResponse_Failed CreateArenaTeamFromPetitionResponse_Status = 7 + CreateArenaTeamFromPetitionResponse_InvalidName CreateArenaTeamFromPetitionResponse_Status = 8 +) + +// Enum value maps for CreateArenaTeamFromPetitionResponse_Status. +var ( + CreateArenaTeamFromPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "NotOwner", + 3: "InvalidType", + 4: "NameExists", + 5: "AlreadyInTeam", + 6: "NotEnoughSignatures", + 7: "Failed", + 8: "InvalidName", + } + CreateArenaTeamFromPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "NotOwner": 2, + "InvalidType": 3, + "NameExists": 4, + "AlreadyInTeam": 5, + "NotEnoughSignatures": 6, + "Failed": 7, + "InvalidName": 8, + } +) + +func (x CreateArenaTeamFromPetitionResponse_Status) Enum() *CreateArenaTeamFromPetitionResponse_Status { + p := new(CreateArenaTeamFromPetitionResponse_Status) + *p = x + return p +} + +func (x CreateArenaTeamFromPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CreateArenaTeamFromPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[2].Descriptor() +} + +func (CreateArenaTeamFromPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[2] +} + +func (x CreateArenaTeamFromPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CreateArenaTeamFromPetitionResponse_Status.Descriptor instead. +func (CreateArenaTeamFromPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{24, 0} +} + +type GetArenaTeamResponse_Status int32 + +const ( + GetArenaTeamResponse_Ok GetArenaTeamResponse_Status = 0 + GetArenaTeamResponse_NotFound GetArenaTeamResponse_Status = 1 + GetArenaTeamResponse_Failed GetArenaTeamResponse_Status = 2 +) + +// Enum value maps for GetArenaTeamResponse_Status. +var ( + GetArenaTeamResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "Failed", + } + GetArenaTeamResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "Failed": 2, + } +) + +func (x GetArenaTeamResponse_Status) Enum() *GetArenaTeamResponse_Status { + p := new(GetArenaTeamResponse_Status) + *p = x + return p +} + +func (x GetArenaTeamResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetArenaTeamResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[3].Descriptor() +} + +func (GetArenaTeamResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[3] +} + +func (x GetArenaTeamResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetArenaTeamResponse_Status.Descriptor instead. +func (GetArenaTeamResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{28, 0} +} + +type GetArenaTeamPetitionResponse_Status int32 + +const ( + GetArenaTeamPetitionResponse_Ok GetArenaTeamPetitionResponse_Status = 0 + GetArenaTeamPetitionResponse_NotFound GetArenaTeamPetitionResponse_Status = 1 + GetArenaTeamPetitionResponse_NotArena GetArenaTeamPetitionResponse_Status = 2 + GetArenaTeamPetitionResponse_Failed GetArenaTeamPetitionResponse_Status = 3 +) + +// Enum value maps for GetArenaTeamPetitionResponse_Status. +var ( + GetArenaTeamPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "NotArena", + 3: "Failed", + } + GetArenaTeamPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "NotArena": 2, + "Failed": 3, + } +) + +func (x GetArenaTeamPetitionResponse_Status) Enum() *GetArenaTeamPetitionResponse_Status { + p := new(GetArenaTeamPetitionResponse_Status) + *p = x + return p +} + +func (x GetArenaTeamPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetArenaTeamPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[4].Descriptor() +} + +func (GetArenaTeamPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[4] +} + +func (x GetArenaTeamPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetArenaTeamPetitionResponse_Status.Descriptor instead. +func (GetArenaTeamPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{31, 0} +} + // LogInCharacter is character that should be displayed on log in screen type LogInCharacter struct { state protoimpl.MessageState @@ -51,6 +356,7 @@ type LogInCharacter struct { Banned bool `protobuf:"varint,23,opt,name=banned,proto3" json:"banned,omitempty"` Equipments []*EquipmentDisplay `protobuf:"bytes,24,rep,name=equipments,proto3" json:"equipments,omitempty"` AccountID uint32 `protobuf:"varint,25,opt,name=accountID,proto3" json:"accountID,omitempty"` + ExtraFlags uint32 `protobuf:"varint,26,opt,name=extraFlags,proto3" json:"extraFlags,omitempty"` } func (x *LogInCharacter) Reset() { @@ -260,6 +566,13 @@ func (x *LogInCharacter) GetAccountID() uint32 { return 0 } +func (x *LogInCharacter) GetExtraFlags() uint32 { + if x != nil { + return x.ExtraFlags + } + return 0 +} + type EquipmentDisplay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -450,6 +763,7 @@ type CharactersToLoginByGUIDRequest struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` CharacterGUID uint64 `protobuf:"varint,2,opt,name=characterGUID,proto3" json:"characterGUID,omitempty"` RealmID uint32 `protobuf:"varint,3,opt,name=realmID,proto3" json:"realmID,omitempty"` + AccountID uint32 `protobuf:"varint,4,opt,name=accountID,proto3" json:"accountID,omitempty"` } func (x *CharactersToLoginByGUIDRequest) Reset() { @@ -505,6 +819,13 @@ func (x *CharactersToLoginByGUIDRequest) GetRealmID() uint32 { return 0 } +func (x *CharactersToLoginByGUIDRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + // Response that contains character to login type CharactersToLoginByGUIDResponse struct { state protoimpl.MessageState @@ -742,6 +1063,140 @@ func (x *AccountDataForAccountResponse) GetAccountData() []*AccountData { return nil } +type UpdateAccountDataForAccountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + AccountID uint32 `protobuf:"varint,2,opt,name=accountID,proto3" json:"accountID,omitempty"` + RealmID uint32 `protobuf:"varint,3,opt,name=realmID,proto3" json:"realmID,omitempty"` + Type uint32 `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"` + Time int64 `protobuf:"varint,5,opt,name=time,proto3" json:"time,omitempty"` + Data string `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *UpdateAccountDataForAccountRequest) Reset() { + *x = UpdateAccountDataForAccountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAccountDataForAccountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAccountDataForAccountRequest) ProtoMessage() {} + +func (x *UpdateAccountDataForAccountRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateAccountDataForAccountRequest.ProtoReflect.Descriptor instead. +func (*UpdateAccountDataForAccountRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdateAccountDataForAccountRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *UpdateAccountDataForAccountRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetType() uint32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetTime() int64 { + if x != nil { + return x.Time + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +type UpdateAccountDataForAccountResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *UpdateAccountDataForAccountResponse) Reset() { + *x = UpdateAccountDataForAccountResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAccountDataForAccountResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAccountDataForAccountResponse) ProtoMessage() {} + +func (x *UpdateAccountDataForAccountResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateAccountDataForAccountResponse.ProtoReflect.Descriptor instead. +func (*UpdateAccountDataForAccountResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateAccountDataForAccountResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + type WhoQueryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -763,7 +1218,7 @@ type WhoQueryRequest struct { func (x *WhoQueryRequest) Reset() { *x = WhoQueryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[9] + mi := &file_characters_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -776,7 +1231,7 @@ func (x *WhoQueryRequest) String() string { func (*WhoQueryRequest) ProtoMessage() {} func (x *WhoQueryRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[9] + mi := &file_characters_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -789,7 +1244,7 @@ func (x *WhoQueryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WhoQueryRequest.ProtoReflect.Descriptor instead. func (*WhoQueryRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{9} + return file_characters_proto_rawDescGZIP(), []int{11} } func (x *WhoQueryRequest) GetApi() string { @@ -882,7 +1337,7 @@ type WhoQueryResponse struct { func (x *WhoQueryResponse) Reset() { *x = WhoQueryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[10] + mi := &file_characters_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -895,7 +1350,7 @@ func (x *WhoQueryResponse) String() string { func (*WhoQueryResponse) ProtoMessage() {} func (x *WhoQueryResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[10] + mi := &file_characters_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -908,7 +1363,7 @@ func (x *WhoQueryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WhoQueryResponse.ProtoReflect.Descriptor instead. func (*WhoQueryResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{10} + return file_characters_proto_rawDescGZIP(), []int{12} } func (x *WhoQueryResponse) GetApi() string { @@ -945,7 +1400,7 @@ type CharacterOnlineByNameRequest struct { func (x *CharacterOnlineByNameRequest) Reset() { *x = CharacterOnlineByNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[11] + mi := &file_characters_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -958,7 +1413,7 @@ func (x *CharacterOnlineByNameRequest) String() string { func (*CharacterOnlineByNameRequest) ProtoMessage() {} func (x *CharacterOnlineByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[11] + mi := &file_characters_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -971,7 +1426,7 @@ func (x *CharacterOnlineByNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterOnlineByNameRequest.ProtoReflect.Descriptor instead. func (*CharacterOnlineByNameRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{11} + return file_characters_proto_rawDescGZIP(), []int{13} } func (x *CharacterOnlineByNameRequest) GetApi() string { @@ -1007,7 +1462,7 @@ type CharacterOnlineByNameResponse struct { func (x *CharacterOnlineByNameResponse) Reset() { *x = CharacterOnlineByNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[12] + mi := &file_characters_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1020,7 +1475,7 @@ func (x *CharacterOnlineByNameResponse) String() string { func (*CharacterOnlineByNameResponse) ProtoMessage() {} func (x *CharacterOnlineByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[12] + mi := &file_characters_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1033,7 +1488,7 @@ func (x *CharacterOnlineByNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterOnlineByNameResponse.ProtoReflect.Descriptor instead. func (*CharacterOnlineByNameResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{12} + return file_characters_proto_rawDescGZIP(), []int{14} } func (x *CharacterOnlineByNameResponse) GetApi() string { @@ -1063,7 +1518,7 @@ type CharacterByNameRequest struct { func (x *CharacterByNameRequest) Reset() { *x = CharacterByNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[13] + mi := &file_characters_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1076,7 +1531,7 @@ func (x *CharacterByNameRequest) String() string { func (*CharacterByNameRequest) ProtoMessage() {} func (x *CharacterByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[13] + mi := &file_characters_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1089,7 +1544,7 @@ func (x *CharacterByNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterByNameRequest.ProtoReflect.Descriptor instead. func (*CharacterByNameRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{13} + return file_characters_proto_rawDescGZIP(), []int{15} } func (x *CharacterByNameRequest) GetApi() string { @@ -1125,7 +1580,7 @@ type CharacterByNameResponse struct { func (x *CharacterByNameResponse) Reset() { *x = CharacterByNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[14] + mi := &file_characters_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1138,7 +1593,7 @@ func (x *CharacterByNameResponse) String() string { func (*CharacterByNameResponse) ProtoMessage() {} func (x *CharacterByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[14] + mi := &file_characters_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1151,7 +1606,7 @@ func (x *CharacterByNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterByNameResponse.ProtoReflect.Descriptor instead. func (*CharacterByNameResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{14} + return file_characters_proto_rawDescGZIP(), []int{16} } func (x *CharacterByNameResponse) GetApi() string { @@ -1168,33 +1623,33 @@ func (x *CharacterByNameResponse) GetCharacter() *CharacterByNameResponse_Char { return nil } -type ShortCharactersDataByGUIDsRequest struct { +type CharacterByGUIDRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - GUIDs []uint64 `protobuf:"varint,3,rep,packed,name=GUIDs,proto3" json:"GUIDs,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + CharacterGUID uint64 `protobuf:"varint,3,opt,name=characterGUID,proto3" json:"characterGUID,omitempty"` } -func (x *ShortCharactersDataByGUIDsRequest) Reset() { - *x = ShortCharactersDataByGUIDsRequest{} +func (x *CharacterByGUIDRequest) Reset() { + *x = CharacterByGUIDRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[15] + mi := &file_characters_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShortCharactersDataByGUIDsRequest) String() string { +func (x *CharacterByGUIDRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShortCharactersDataByGUIDsRequest) ProtoMessage() {} +func (*CharacterByGUIDRequest) ProtoMessage() {} -func (x *ShortCharactersDataByGUIDsRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[15] +func (x *CharacterByGUIDRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1205,58 +1660,58 @@ func (x *ShortCharactersDataByGUIDsRequest) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ShortCharactersDataByGUIDsRequest.ProtoReflect.Descriptor instead. -func (*ShortCharactersDataByGUIDsRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{15} +// Deprecated: Use CharacterByGUIDRequest.ProtoReflect.Descriptor instead. +func (*CharacterByGUIDRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{17} } -func (x *ShortCharactersDataByGUIDsRequest) GetApi() string { +func (x *CharacterByGUIDRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ShortCharactersDataByGUIDsRequest) GetRealmID() uint32 { +func (x *CharacterByGUIDRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *ShortCharactersDataByGUIDsRequest) GetGUIDs() []uint64 { +func (x *CharacterByGUIDRequest) GetCharacterGUID() uint64 { if x != nil { - return x.GUIDs + return x.CharacterGUID } - return nil + return 0 } -type ShortCharactersDataByGUIDsResponse struct { +type CharacterByGUIDResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Characters []*ShortCharactersDataByGUIDsResponse_ShortCharData `protobuf:"bytes,2,rep,name=characters,proto3" json:"characters,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Character *CharacterByNameResponse_Char `protobuf:"bytes,2,opt,name=character,proto3" json:"character,omitempty"` } -func (x *ShortCharactersDataByGUIDsResponse) Reset() { - *x = ShortCharactersDataByGUIDsResponse{} +func (x *CharacterByGUIDResponse) Reset() { + *x = CharacterByGUIDResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[16] + mi := &file_characters_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShortCharactersDataByGUIDsResponse) String() string { +func (x *CharacterByGUIDResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShortCharactersDataByGUIDsResponse) ProtoMessage() {} +func (*CharacterByGUIDResponse) ProtoMessage() {} -func (x *ShortCharactersDataByGUIDsResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[16] +func (x *CharacterByGUIDResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1267,57 +1722,52 @@ func (x *ShortCharactersDataByGUIDsResponse) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ShortCharactersDataByGUIDsResponse.ProtoReflect.Descriptor instead. -func (*ShortCharactersDataByGUIDsResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{16} +// Deprecated: Use CharacterByGUIDResponse.ProtoReflect.Descriptor instead. +func (*CharacterByGUIDResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{18} } -func (x *ShortCharactersDataByGUIDsResponse) GetApi() string { +func (x *CharacterByGUIDResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ShortCharactersDataByGUIDsResponse) GetCharacters() []*ShortCharactersDataByGUIDsResponse_ShortCharData { +func (x *CharacterByGUIDResponse) GetCharacter() *CharacterByNameResponse_Char { if x != nil { - return x.Characters + return x.Character } return nil } -type SavePlayerPositionRequest struct { +type ShortCharactersDataByGUIDsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` - X float32 `protobuf:"fixed32,5,opt,name=x,proto3" json:"x,omitempty"` - Y float32 `protobuf:"fixed32,6,opt,name=y,proto3" json:"y,omitempty"` - Z float32 `protobuf:"fixed32,7,opt,name=z,proto3" json:"z,omitempty"` - O float32 `protobuf:"fixed32,8,opt,name=o,proto3" json:"o,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GUIDs []uint64 `protobuf:"varint,3,rep,packed,name=GUIDs,proto3" json:"GUIDs,omitempty"` } -func (x *SavePlayerPositionRequest) Reset() { - *x = SavePlayerPositionRequest{} +func (x *ShortCharactersDataByGUIDsRequest) Reset() { + *x = ShortCharactersDataByGUIDsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[17] + mi := &file_characters_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SavePlayerPositionRequest) String() string { +func (x *ShortCharactersDataByGUIDsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SavePlayerPositionRequest) ProtoMessage() {} +func (*ShortCharactersDataByGUIDsRequest) ProtoMessage() {} -func (x *SavePlayerPositionRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[17] +func (x *ShortCharactersDataByGUIDsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1328,92 +1778,58 @@ func (x *SavePlayerPositionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SavePlayerPositionRequest.ProtoReflect.Descriptor instead. -func (*SavePlayerPositionRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{17} +// Deprecated: Use ShortCharactersDataByGUIDsRequest.ProtoReflect.Descriptor instead. +func (*ShortCharactersDataByGUIDsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{19} } -func (x *SavePlayerPositionRequest) GetApi() string { +func (x *ShortCharactersDataByGUIDsRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SavePlayerPositionRequest) GetRealmID() uint32 { +func (x *ShortCharactersDataByGUIDsRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SavePlayerPositionRequest) GetCharGUID() uint64 { - if x != nil { - return x.CharGUID - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetMapID() uint32 { - if x != nil { - return x.MapID - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetX() float32 { - if x != nil { - return x.X - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetY() float32 { - if x != nil { - return x.Y - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetZ() float32 { - if x != nil { - return x.Z - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetO() float32 { +func (x *ShortCharactersDataByGUIDsRequest) GetGUIDs() []uint64 { if x != nil { - return x.O + return x.GUIDs } - return 0 + return nil } -type SavePlayerPositionResponse struct { +type ShortCharactersDataByGUIDsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Characters []*ShortCharactersDataByGUIDsResponse_ShortCharData `protobuf:"bytes,2,rep,name=characters,proto3" json:"characters,omitempty"` } -func (x *SavePlayerPositionResponse) Reset() { - *x = SavePlayerPositionResponse{} +func (x *ShortCharactersDataByGUIDsResponse) Reset() { + *x = ShortCharactersDataByGUIDsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[18] + mi := &file_characters_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SavePlayerPositionResponse) String() string { +func (x *ShortCharactersDataByGUIDsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SavePlayerPositionResponse) ProtoMessage() {} +func (*ShortCharactersDataByGUIDsResponse) ProtoMessage() {} -func (x *SavePlayerPositionResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[18] +func (x *ShortCharactersDataByGUIDsResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1424,45 +1840,55 @@ func (x *SavePlayerPositionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SavePlayerPositionResponse.ProtoReflect.Descriptor instead. -func (*SavePlayerPositionResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{18} +// Deprecated: Use ShortCharactersDataByGUIDsResponse.ProtoReflect.Descriptor instead. +func (*ShortCharactersDataByGUIDsResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{20} } -func (x *SavePlayerPositionResponse) GetApi() string { +func (x *ShortCharactersDataByGUIDsResponse) GetApi() string { if x != nil { return x.Api } return "" } -type GetFriendsListRequest struct { +func (x *ShortCharactersDataByGUIDsResponse) GetCharacters() []*ShortCharactersDataByGUIDsResponse_ShortCharData { + if x != nil { + return x.Characters + } + return nil +} + +type ArenaTeamQueueDataForRatedArenaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,3,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + PlayerGUIDs []uint64 `protobuf:"varint,4,rep,packed,name=playerGUIDs,proto3" json:"playerGUIDs,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + StartMatchmakerRating uint32 `protobuf:"varint,6,opt,name=startMatchmakerRating,proto3" json:"startMatchmakerRating,omitempty"` } -func (x *GetFriendsListRequest) Reset() { - *x = GetFriendsListRequest{} +func (x *ArenaTeamQueueDataForRatedArenaRequest) Reset() { + *x = ArenaTeamQueueDataForRatedArenaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[19] + mi := &file_characters_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListRequest) String() string { +func (x *ArenaTeamQueueDataForRatedArenaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListRequest) ProtoMessage() {} +func (*ArenaTeamQueueDataForRatedArenaRequest) ProtoMessage() {} -func (x *GetFriendsListRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[19] +func (x *ArenaTeamQueueDataForRatedArenaRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1473,59 +1899,83 @@ func (x *GetFriendsListRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListRequest.ProtoReflect.Descriptor instead. -func (*GetFriendsListRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{19} +// Deprecated: Use ArenaTeamQueueDataForRatedArenaRequest.ProtoReflect.Descriptor instead. +func (*ArenaTeamQueueDataForRatedArenaRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{21} } -func (x *GetFriendsListRequest) GetApi() string { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetFriendsListRequest) GetRealmID() uint32 { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *GetFriendsListRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetLeaderGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.LeaderGUID } return 0 } -type GetFriendsListResponse struct { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetPlayerGUIDs() []uint64 { + if x != nil { + return x.PlayerGUIDs + } + return nil +} + +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetArenaType() uint32 { + if x != nil { + return x.ArenaType + } + return 0 +} + +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetStartMatchmakerRating() uint32 { + if x != nil { + return x.StartMatchmakerRating + } + return 0 +} + +type ArenaTeamQueueDataForRatedArenaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Friends []*GetFriendsListResponse_Friend `protobuf:"bytes,2,rep,name=friends,proto3" json:"friends,omitempty"` - Ignored []*GetFriendsListResponse_IgnoredPlayer `protobuf:"bytes,3,rep,name=ignored,proto3" json:"ignored,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamQueueDataForRatedArenaResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamQueueDataForRatedArenaResponse_Status" json:"status,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + TeamRating uint32 `protobuf:"varint,4,opt,name=teamRating,proto3" json:"teamRating,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,5,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` + PreviousOpponentsTeamID uint32 `protobuf:"varint,6,opt,name=previousOpponentsTeamID,proto3" json:"previousOpponentsTeamID,omitempty"` } -func (x *GetFriendsListResponse) Reset() { - *x = GetFriendsListResponse{} +func (x *ArenaTeamQueueDataForRatedArenaResponse) Reset() { + *x = ArenaTeamQueueDataForRatedArenaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[20] + mi := &file_characters_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListResponse) String() string { +func (x *ArenaTeamQueueDataForRatedArenaResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListResponse) ProtoMessage() {} +func (*ArenaTeamQueueDataForRatedArenaResponse) ProtoMessage() {} -func (x *GetFriendsListResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[20] +func (x *ArenaTeamQueueDataForRatedArenaResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1536,62 +1986,90 @@ func (x *GetFriendsListResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListResponse.ProtoReflect.Descriptor instead. -func (*GetFriendsListResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{20} +// Deprecated: Use ArenaTeamQueueDataForRatedArenaResponse.ProtoReflect.Descriptor instead. +func (*ArenaTeamQueueDataForRatedArenaResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{22} } -func (x *GetFriendsListResponse) GetApi() string { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetFriendsListResponse) GetFriends() []*GetFriendsListResponse_Friend { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetStatus() ArenaTeamQueueDataForRatedArenaResponse_Status { if x != nil { - return x.Friends + return x.Status } - return nil + return ArenaTeamQueueDataForRatedArenaResponse_Ok } -func (x *GetFriendsListResponse) GetIgnored() []*GetFriendsListResponse_IgnoredPlayer { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetArenaTeamID() uint32 { if x != nil { - return x.Ignored + return x.ArenaTeamID } - return nil + return 0 } -type AddFriendRequest struct { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetTeamRating() uint32 { + if x != nil { + return x.TeamRating + } + return 0 +} + +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetPreviousOpponentsTeamID() uint32 { + if x != nil { + return x.PreviousOpponentsTeamID + } + return 0 +} + +type CreateArenaTeamFromPetitionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` - FriendName string `protobuf:"bytes,5,opt,name=friendName,proto3" json:"friendName,omitempty"` - Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` -} - -func (x *AddFriendRequest) Reset() { - *x = AddFriendRequest{} + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + CaptainGUID uint64 `protobuf:"varint,3,opt,name=captainGUID,proto3" json:"captainGUID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,4,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + BackgroundColor uint32 `protobuf:"varint,6,opt,name=backgroundColor,proto3" json:"backgroundColor,omitempty"` + EmblemStyle uint32 `protobuf:"varint,7,opt,name=emblemStyle,proto3" json:"emblemStyle,omitempty"` + EmblemColor uint32 `protobuf:"varint,8,opt,name=emblemColor,proto3" json:"emblemColor,omitempty"` + BorderStyle uint32 `protobuf:"varint,9,opt,name=borderStyle,proto3" json:"borderStyle,omitempty"` + BorderColor uint32 `protobuf:"varint,10,opt,name=borderColor,proto3" json:"borderColor,omitempty"` + StartRating uint32 `protobuf:"varint,11,opt,name=startRating,proto3" json:"startRating,omitempty"` + StartPersonalRating uint32 `protobuf:"varint,12,opt,name=startPersonalRating,proto3" json:"startPersonalRating,omitempty"` + StartMatchmakerRating uint32 `protobuf:"varint,13,opt,name=startMatchmakerRating,proto3" json:"startMatchmakerRating,omitempty"` +} + +func (x *CreateArenaTeamFromPetitionRequest) Reset() { + *x = CreateArenaTeamFromPetitionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[21] + mi := &file_characters_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddFriendRequest) String() string { +func (x *CreateArenaTeamFromPetitionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddFriendRequest) ProtoMessage() {} +func (*CreateArenaTeamFromPetitionRequest) ProtoMessage() {} -func (x *AddFriendRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[21] +func (x *CreateArenaTeamFromPetitionRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1602,168 +2080,129 @@ func (x *AddFriendRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddFriendRequest.ProtoReflect.Descriptor instead. -func (*AddFriendRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{21} +// Deprecated: Use CreateArenaTeamFromPetitionRequest.ProtoReflect.Descriptor instead. +func (*CreateArenaTeamFromPetitionRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{23} } -func (x *AddFriendRequest) GetApi() string { +func (x *CreateArenaTeamFromPetitionRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *AddFriendRequest) GetRealmID() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *AddFriendRequest) GetPlayerGUID() uint64 { +func (x *CreateArenaTeamFromPetitionRequest) GetCaptainGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.CaptainGUID } return 0 } -func (x *AddFriendRequest) GetFriendGUID() uint64 { +func (x *CreateArenaTeamFromPetitionRequest) GetPetitionGUID() uint64 { if x != nil { - return x.FriendGUID + return x.PetitionGUID } return 0 } -func (x *AddFriendRequest) GetFriendName() string { +func (x *CreateArenaTeamFromPetitionRequest) GetArenaType() uint32 { if x != nil { - return x.FriendName + return x.ArenaType } - return "" + return 0 } -func (x *AddFriendRequest) GetNote() string { +func (x *CreateArenaTeamFromPetitionRequest) GetBackgroundColor() uint32 { if x != nil { - return x.Note - } - return "" -} - -type AddFriendResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value - Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online - Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` - Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` - ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` -} - -func (x *AddFriendResponse) Reset() { - *x = AddFriendResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + return x.BackgroundColor } + return 0 } -func (x *AddFriendResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddFriendResponse) ProtoMessage() {} - -func (x *AddFriendResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CreateArenaTeamFromPetitionRequest) GetEmblemStyle() uint32 { + if x != nil { + return x.EmblemStyle } - return mi.MessageOf(x) -} - -// Deprecated: Use AddFriendResponse.ProtoReflect.Descriptor instead. -func (*AddFriendResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{22} + return 0 } -func (x *AddFriendResponse) GetApi() string { +func (x *CreateArenaTeamFromPetitionRequest) GetEmblemColor() uint32 { if x != nil { - return x.Api + return x.EmblemColor } - return "" + return 0 } -func (x *AddFriendResponse) GetResult() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetBorderStyle() uint32 { if x != nil { - return x.Result + return x.BorderStyle } return 0 } -func (x *AddFriendResponse) GetStatus() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetBorderColor() uint32 { if x != nil { - return x.Status + return x.BorderColor } return 0 } -func (x *AddFriendResponse) GetArea() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetStartRating() uint32 { if x != nil { - return x.Area + return x.StartRating } return 0 } -func (x *AddFriendResponse) GetLevel() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetStartPersonalRating() uint32 { if x != nil { - return x.Level + return x.StartPersonalRating } return 0 } -func (x *AddFriendResponse) GetClassID() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetStartMatchmakerRating() uint32 { if x != nil { - return x.ClassID + return x.StartMatchmakerRating } return 0 } -type RemoveFriendRequest struct { +type CreateArenaTeamFromPetitionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status CreateArenaTeamFromPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.CreateArenaTeamFromPetitionResponse_Status" json:"status,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` } -func (x *RemoveFriendRequest) Reset() { - *x = RemoveFriendRequest{} +func (x *CreateArenaTeamFromPetitionResponse) Reset() { + *x = CreateArenaTeamFromPetitionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[23] + mi := &file_characters_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveFriendRequest) String() string { +func (x *CreateArenaTeamFromPetitionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveFriendRequest) ProtoMessage() {} +func (*CreateArenaTeamFromPetitionResponse) ProtoMessage() {} -func (x *RemoveFriendRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[23] +func (x *CreateArenaTeamFromPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1774,64 +2213,68 @@ func (x *RemoveFriendRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveFriendRequest.ProtoReflect.Descriptor instead. -func (*RemoveFriendRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{23} +// Deprecated: Use CreateArenaTeamFromPetitionResponse.ProtoReflect.Descriptor instead. +func (*CreateArenaTeamFromPetitionResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{24} } -func (x *RemoveFriendRequest) GetApi() string { +func (x *CreateArenaTeamFromPetitionResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *RemoveFriendRequest) GetRealmID() uint32 { - if x != nil { - return x.RealmID - } - return 0 -} - -func (x *RemoveFriendRequest) GetPlayerGUID() uint64 { +func (x *CreateArenaTeamFromPetitionResponse) GetStatus() CreateArenaTeamFromPetitionResponse_Status { if x != nil { - return x.PlayerGUID + return x.Status } - return 0 + return CreateArenaTeamFromPetitionResponse_Ok } -func (x *RemoveFriendRequest) GetFriendGUID() uint64 { +func (x *CreateArenaTeamFromPetitionResponse) GetArenaTeamID() uint32 { if x != nil { - return x.FriendGUID + return x.ArenaTeamID } return 0 } -type RemoveFriendResponse struct { +type ArenaTeamMemberData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` -} - -func (x *RemoveFriendResponse) Reset() { - *x = RemoveFriendResponse{} + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Online bool `protobuf:"varint,3,opt,name=online,proto3" json:"online,omitempty"` + Level uint32 `protobuf:"varint,4,opt,name=level,proto3" json:"level,omitempty"` + Class uint32 `protobuf:"varint,5,opt,name=class,proto3" json:"class,omitempty"` + WeekGames uint32 `protobuf:"varint,6,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,7,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,8,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,9,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + PersonalRating uint32 `protobuf:"varint,10,opt,name=personalRating,proto3" json:"personalRating,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,11,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` + MaxMMR uint32 `protobuf:"varint,12,opt,name=maxMMR,proto3" json:"maxMMR,omitempty"` +} + +func (x *ArenaTeamMemberData) Reset() { + *x = ArenaTeamMemberData{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[24] + mi := &file_characters_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveFriendResponse) String() string { +func (x *ArenaTeamMemberData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveFriendResponse) ProtoMessage() {} +func (*ArenaTeamMemberData) ProtoMessage() {} -func (x *RemoveFriendResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[24] +func (x *ArenaTeamMemberData) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1842,107 +2285,120 @@ func (x *RemoveFriendResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveFriendResponse.ProtoReflect.Descriptor instead. -func (*RemoveFriendResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{24} +// Deprecated: Use ArenaTeamMemberData.ProtoReflect.Descriptor instead. +func (*ArenaTeamMemberData) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{25} } -func (x *RemoveFriendResponse) GetApi() string { +func (x *ArenaTeamMemberData) GetPlayerGUID() uint64 { if x != nil { - return x.Api + return x.PlayerGUID } - return "" + return 0 } -type SetFriendNoteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` - Note string `protobuf:"bytes,5,opt,name=note,proto3" json:"note,omitempty"` +func (x *ArenaTeamMemberData) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *SetFriendNoteRequest) Reset() { - *x = SetFriendNoteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ArenaTeamMemberData) GetOnline() bool { + if x != nil { + return x.Online } + return false } -func (x *SetFriendNoteRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ArenaTeamMemberData) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 } -func (*SetFriendNoteRequest) ProtoMessage() {} +func (x *ArenaTeamMemberData) GetClass() uint32 { + if x != nil { + return x.Class + } + return 0 +} -func (x *SetFriendNoteRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ArenaTeamMemberData) GetWeekGames() uint32 { + if x != nil { + return x.WeekGames } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use SetFriendNoteRequest.ProtoReflect.Descriptor instead. -func (*SetFriendNoteRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{25} +func (x *ArenaTeamMemberData) GetWeekWins() uint32 { + if x != nil { + return x.WeekWins + } + return 0 } -func (x *SetFriendNoteRequest) GetApi() string { +func (x *ArenaTeamMemberData) GetSeasonGames() uint32 { if x != nil { - return x.Api + return x.SeasonGames } - return "" + return 0 } -func (x *SetFriendNoteRequest) GetRealmID() uint32 { +func (x *ArenaTeamMemberData) GetSeasonWins() uint32 { if x != nil { - return x.RealmID + return x.SeasonWins } return 0 } -func (x *SetFriendNoteRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamMemberData) GetPersonalRating() uint32 { if x != nil { - return x.PlayerGUID + return x.PersonalRating } return 0 } -func (x *SetFriendNoteRequest) GetFriendGUID() uint64 { +func (x *ArenaTeamMemberData) GetMatchmakerRating() uint32 { if x != nil { - return x.FriendGUID + return x.MatchmakerRating } return 0 } -func (x *SetFriendNoteRequest) GetNote() string { +func (x *ArenaTeamMemberData) GetMaxMMR() uint32 { if x != nil { - return x.Note + return x.MaxMMR } - return "" + return 0 } -type SetFriendNoteResponse struct { +type ArenaTeamData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` -} - -func (x *SetFriendNoteResponse) Reset() { - *x = SetFriendNoteResponse{} + ArenaTeamID uint32 `protobuf:"varint,1,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + CaptainGUID uint64 `protobuf:"varint,3,opt,name=captainGUID,proto3" json:"captainGUID,omitempty"` + Type uint32 `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"` + Rating uint32 `protobuf:"varint,5,opt,name=rating,proto3" json:"rating,omitempty"` + WeekGames uint32 `protobuf:"varint,6,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,7,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,8,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,9,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + Rank uint32 `protobuf:"varint,10,opt,name=rank,proto3" json:"rank,omitempty"` + BackgroundColor uint32 `protobuf:"varint,11,opt,name=backgroundColor,proto3" json:"backgroundColor,omitempty"` + EmblemStyle uint32 `protobuf:"varint,12,opt,name=emblemStyle,proto3" json:"emblemStyle,omitempty"` + EmblemColor uint32 `protobuf:"varint,13,opt,name=emblemColor,proto3" json:"emblemColor,omitempty"` + BorderStyle uint32 `protobuf:"varint,14,opt,name=borderStyle,proto3" json:"borderStyle,omitempty"` + BorderColor uint32 `protobuf:"varint,15,opt,name=borderColor,proto3" json:"borderColor,omitempty"` + Members []*ArenaTeamMemberData `protobuf:"bytes,16,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *ArenaTeamData) Reset() { + *x = ArenaTeamData{} if protoimpl.UnsafeEnabled { mi := &file_characters_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1950,13 +2406,13 @@ func (x *SetFriendNoteResponse) Reset() { } } -func (x *SetFriendNoteResponse) String() string { +func (x *ArenaTeamData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetFriendNoteResponse) ProtoMessage() {} +func (*ArenaTeamData) ProtoMessage() {} -func (x *SetFriendNoteResponse) ProtoReflect() protoreflect.Message { +func (x *ArenaTeamData) ProtoReflect() protoreflect.Message { mi := &file_characters_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1968,172 +2424,150 @@ func (x *SetFriendNoteResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetFriendNoteResponse.ProtoReflect.Descriptor instead. -func (*SetFriendNoteResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ArenaTeamData.ProtoReflect.Descriptor instead. +func (*ArenaTeamData) Descriptor() ([]byte, []int) { return file_characters_proto_rawDescGZIP(), []int{26} } -func (x *SetFriendNoteResponse) GetApi() string { +func (x *ArenaTeamData) GetArenaTeamID() uint32 { if x != nil { - return x.Api + return x.ArenaTeamID } - return "" -} - -type AddIgnoreRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` + return 0 } -func (x *AddIgnoreRequest) Reset() { - *x = AddIgnoreRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ArenaTeamData) GetName() string { + if x != nil { + return x.Name } + return "" } -func (x *AddIgnoreRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddIgnoreRequest) ProtoMessage() {} - -func (x *AddIgnoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ArenaTeamData) GetCaptainGUID() uint64 { + if x != nil { + return x.CaptainGUID } - return mi.MessageOf(x) -} - -// Deprecated: Use AddIgnoreRequest.ProtoReflect.Descriptor instead. -func (*AddIgnoreRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{27} + return 0 } -func (x *AddIgnoreRequest) GetApi() string { +func (x *ArenaTeamData) GetType() uint32 { if x != nil { - return x.Api + return x.Type } - return "" + return 0 } -func (x *AddIgnoreRequest) GetRealmID() uint32 { +func (x *ArenaTeamData) GetRating() uint32 { if x != nil { - return x.RealmID + return x.Rating } return 0 } -func (x *AddIgnoreRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamData) GetWeekGames() uint32 { if x != nil { - return x.PlayerGUID + return x.WeekGames } return 0 } -func (x *AddIgnoreRequest) GetIgnoredGUID() uint64 { +func (x *ArenaTeamData) GetWeekWins() uint32 { if x != nil { - return x.IgnoredGUID + return x.WeekWins } return 0 } -type AddIgnoreResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value +func (x *ArenaTeamData) GetSeasonGames() uint32 { + if x != nil { + return x.SeasonGames + } + return 0 } -func (x *AddIgnoreResponse) Reset() { - *x = AddIgnoreResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ArenaTeamData) GetSeasonWins() uint32 { + if x != nil { + return x.SeasonWins } + return 0 } -func (x *AddIgnoreResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ArenaTeamData) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 } -func (*AddIgnoreResponse) ProtoMessage() {} +func (x *ArenaTeamData) GetBackgroundColor() uint32 { + if x != nil { + return x.BackgroundColor + } + return 0 +} -func (x *AddIgnoreResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ArenaTeamData) GetEmblemStyle() uint32 { + if x != nil { + return x.EmblemStyle } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use AddIgnoreResponse.ProtoReflect.Descriptor instead. -func (*AddIgnoreResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{28} +func (x *ArenaTeamData) GetEmblemColor() uint32 { + if x != nil { + return x.EmblemColor + } + return 0 } -func (x *AddIgnoreResponse) GetApi() string { +func (x *ArenaTeamData) GetBorderStyle() uint32 { if x != nil { - return x.Api + return x.BorderStyle } - return "" + return 0 } -func (x *AddIgnoreResponse) GetResult() uint32 { +func (x *ArenaTeamData) GetBorderColor() uint32 { if x != nil { - return x.Result + return x.BorderColor } return 0 } -type RemoveIgnoreRequest struct { +func (x *ArenaTeamData) GetMembers() []*ArenaTeamMemberData { + if x != nil { + return x.Members + } + return nil +} + +type GetArenaTeamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` } -func (x *RemoveIgnoreRequest) Reset() { - *x = RemoveIgnoreRequest{} +func (x *GetArenaTeamRequest) Reset() { + *x = GetArenaTeamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[29] + mi := &file_characters_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveIgnoreRequest) String() string { +func (x *GetArenaTeamRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveIgnoreRequest) ProtoMessage() {} +func (*GetArenaTeamRequest) ProtoMessage() {} -func (x *RemoveIgnoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[29] +func (x *GetArenaTeamRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2144,64 +2578,59 @@ func (x *RemoveIgnoreRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveIgnoreRequest.ProtoReflect.Descriptor instead. -func (*RemoveIgnoreRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{29} +// Deprecated: Use GetArenaTeamRequest.ProtoReflect.Descriptor instead. +func (*GetArenaTeamRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{27} } -func (x *RemoveIgnoreRequest) GetApi() string { +func (x *GetArenaTeamRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *RemoveIgnoreRequest) GetRealmID() uint32 { +func (x *GetArenaTeamRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *RemoveIgnoreRequest) GetPlayerGUID() uint64 { - if x != nil { - return x.PlayerGUID - } - return 0 -} - -func (x *RemoveIgnoreRequest) GetIgnoredGUID() uint64 { +func (x *GetArenaTeamRequest) GetArenaTeamID() uint32 { if x != nil { - return x.IgnoredGUID + return x.ArenaTeamID } return 0 } -type RemoveIgnoreResponse struct { +type GetArenaTeamResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetArenaTeamResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetArenaTeamResponse_Status" json:"status,omitempty"` + Team *ArenaTeamData `protobuf:"bytes,3,opt,name=team,proto3" json:"team,omitempty"` } -func (x *RemoveIgnoreResponse) Reset() { - *x = RemoveIgnoreResponse{} +func (x *GetArenaTeamResponse) Reset() { + *x = GetArenaTeamResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[30] + mi := &file_characters_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveIgnoreResponse) String() string { +func (x *GetArenaTeamResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveIgnoreResponse) ProtoMessage() {} +func (*GetArenaTeamResponse) ProtoMessage() {} -func (x *RemoveIgnoreResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[30] +func (x *GetArenaTeamResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2212,49 +2641,62 @@ func (x *RemoveIgnoreResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveIgnoreResponse.ProtoReflect.Descriptor instead. -func (*RemoveIgnoreResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{30} +// Deprecated: Use GetArenaTeamResponse.ProtoReflect.Descriptor instead. +func (*GetArenaTeamResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{28} } -func (x *RemoveIgnoreResponse) GetApi() string { +func (x *GetArenaTeamResponse) GetApi() string { if x != nil { return x.Api } return "" } -type NotifyStatusChangeRequest struct { +func (x *GetArenaTeamResponse) GetStatus() GetArenaTeamResponse_Status { + if x != nil { + return x.Status + } + return GetArenaTeamResponse_Ok +} + +func (x *GetArenaTeamResponse) GetTeam() *ArenaTeamData { + if x != nil { + return x.Team + } + return nil +} + +type ArenaTeamPetitionData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online - Area uint32 `protobuf:"varint,5,opt,name=area,proto3" json:"area,omitempty"` - Level uint32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` - ClassID uint32 `protobuf:"varint,7,opt,name=classID,proto3" json:"classID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,1,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` + PetitionID uint32 `protobuf:"varint,2,opt,name=petitionID,proto3" json:"petitionID,omitempty"` + OwnerGUID uint64 `protobuf:"varint,3,opt,name=ownerGUID,proto3" json:"ownerGUID,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + Signatures uint32 `protobuf:"varint,6,opt,name=signatures,proto3" json:"signatures,omitempty"` } -func (x *NotifyStatusChangeRequest) Reset() { - *x = NotifyStatusChangeRequest{} +func (x *ArenaTeamPetitionData) Reset() { + *x = ArenaTeamPetitionData{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[31] + mi := &file_characters_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NotifyStatusChangeRequest) String() string { +func (x *ArenaTeamPetitionData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NotifyStatusChangeRequest) ProtoMessage() {} +func (*ArenaTeamPetitionData) ProtoMessage() {} -func (x *NotifyStatusChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[31] +func (x *ArenaTeamPetitionData) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2265,85 +2707,80 @@ func (x *NotifyStatusChangeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NotifyStatusChangeRequest.ProtoReflect.Descriptor instead. -func (*NotifyStatusChangeRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{31} -} - -func (x *NotifyStatusChangeRequest) GetApi() string { - if x != nil { - return x.Api - } - return "" +// Deprecated: Use ArenaTeamPetitionData.ProtoReflect.Descriptor instead. +func (*ArenaTeamPetitionData) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{29} } -func (x *NotifyStatusChangeRequest) GetRealmID() uint32 { +func (x *ArenaTeamPetitionData) GetPetitionGUID() uint64 { if x != nil { - return x.RealmID + return x.PetitionGUID } return 0 } -func (x *NotifyStatusChangeRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamPetitionData) GetPetitionID() uint32 { if x != nil { - return x.PlayerGUID + return x.PetitionID } return 0 } -func (x *NotifyStatusChangeRequest) GetStatus() uint32 { +func (x *ArenaTeamPetitionData) GetOwnerGUID() uint64 { if x != nil { - return x.Status + return x.OwnerGUID } return 0 } -func (x *NotifyStatusChangeRequest) GetArea() uint32 { +func (x *ArenaTeamPetitionData) GetName() string { if x != nil { - return x.Area + return x.Name } - return 0 + return "" } -func (x *NotifyStatusChangeRequest) GetLevel() uint32 { +func (x *ArenaTeamPetitionData) GetArenaType() uint32 { if x != nil { - return x.Level + return x.ArenaType } return 0 } -func (x *NotifyStatusChangeRequest) GetClassID() uint32 { +func (x *ArenaTeamPetitionData) GetSignatures() uint32 { if x != nil { - return x.ClassID + return x.Signatures } return 0 } -type NotifyStatusChangeResponse struct { +type GetArenaTeamPetitionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,3,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` } -func (x *NotifyStatusChangeResponse) Reset() { - *x = NotifyStatusChangeResponse{} +func (x *GetArenaTeamPetitionRequest) Reset() { + *x = GetArenaTeamPetitionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[32] + mi := &file_characters_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NotifyStatusChangeResponse) String() string { +func (x *GetArenaTeamPetitionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NotifyStatusChangeResponse) ProtoMessage() {} +func (*GetArenaTeamPetitionRequest) ProtoMessage() {} -func (x *NotifyStatusChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[32] +func (x *GetArenaTeamPetitionRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2354,44 +2791,59 @@ func (x *NotifyStatusChangeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NotifyStatusChangeResponse.ProtoReflect.Descriptor instead. -func (*NotifyStatusChangeResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{32} +// Deprecated: Use GetArenaTeamPetitionRequest.ProtoReflect.Descriptor instead. +func (*GetArenaTeamPetitionRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{30} } -func (x *NotifyStatusChangeResponse) GetApi() string { +func (x *GetArenaTeamPetitionRequest) GetApi() string { if x != nil { return x.Api } return "" } -type GetOnlineCharactersRequest struct { +func (x *GetArenaTeamPetitionRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetArenaTeamPetitionRequest) GetPetitionGUID() uint64 { + if x != nil { + return x.PetitionGUID + } + return 0 +} + +type GetArenaTeamPetitionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetArenaTeamPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetArenaTeamPetitionResponse_Status" json:"status,omitempty"` + Petition *ArenaTeamPetitionData `protobuf:"bytes,3,opt,name=petition,proto3" json:"petition,omitempty"` } -func (x *GetOnlineCharactersRequest) Reset() { - *x = GetOnlineCharactersRequest{} +func (x *GetArenaTeamPetitionResponse) Reset() { + *x = GetArenaTeamPetitionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[33] + mi := &file_characters_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetOnlineCharactersRequest) String() string { +func (x *GetArenaTeamPetitionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOnlineCharactersRequest) ProtoMessage() {} +func (*GetArenaTeamPetitionResponse) ProtoMessage() {} -func (x *GetOnlineCharactersRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[33] +func (x *GetArenaTeamPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2402,52 +2854,63 @@ func (x *GetOnlineCharactersRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOnlineCharactersRequest.ProtoReflect.Descriptor instead. -func (*GetOnlineCharactersRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{33} +// Deprecated: Use GetArenaTeamPetitionResponse.ProtoReflect.Descriptor instead. +func (*GetArenaTeamPetitionResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{31} } -func (x *GetOnlineCharactersRequest) GetApi() string { +func (x *GetArenaTeamPetitionResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetOnlineCharactersRequest) GetRealmID() uint32 { +func (x *GetArenaTeamPetitionResponse) GetStatus() GetArenaTeamPetitionResponse_Status { if x != nil { - return x.RealmID + return x.Status } - return 0 + return GetArenaTeamPetitionResponse_Ok } -type GetOnlineCharactersResponse struct { +func (x *GetArenaTeamPetitionResponse) GetPetition() *ArenaTeamPetitionData { + if x != nil { + return x.Petition + } + return nil +} + +type InviteArenaTeamMemberRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - CharacterGUIDs []uint64 `protobuf:"varint,2,rep,packed,name=characterGUIDs,proto3" json:"characterGUIDs,omitempty"` - TotalCount uint32 `protobuf:"varint,3,opt,name=totalCount,proto3" json:"totalCount,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + InviterGUID uint64 `protobuf:"varint,4,opt,name=inviterGUID,proto3" json:"inviterGUID,omitempty"` + InviterName string `protobuf:"bytes,5,opt,name=inviterName,proto3" json:"inviterName,omitempty"` + TargetGUID uint64 `protobuf:"varint,6,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` + TargetName string `protobuf:"bytes,7,opt,name=targetName,proto3" json:"targetName,omitempty"` } -func (x *GetOnlineCharactersResponse) Reset() { - *x = GetOnlineCharactersResponse{} +func (x *InviteArenaTeamMemberRequest) Reset() { + *x = InviteArenaTeamMemberRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[34] + mi := &file_characters_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetOnlineCharactersResponse) String() string { +func (x *InviteArenaTeamMemberRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOnlineCharactersResponse) ProtoMessage() {} +func (*InviteArenaTeamMemberRequest) ProtoMessage() {} -func (x *GetOnlineCharactersResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[34] +func (x *InviteArenaTeamMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2458,64 +2921,87 @@ func (x *GetOnlineCharactersResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOnlineCharactersResponse.ProtoReflect.Descriptor instead. -func (*GetOnlineCharactersResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{34} +// Deprecated: Use InviteArenaTeamMemberRequest.ProtoReflect.Descriptor instead. +func (*InviteArenaTeamMemberRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{32} } -func (x *GetOnlineCharactersResponse) GetApi() string { +func (x *InviteArenaTeamMemberRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetOnlineCharactersResponse) GetCharacterGUIDs() []uint64 { +func (x *InviteArenaTeamMemberRequest) GetRealmID() uint32 { if x != nil { - return x.CharacterGUIDs + return x.RealmID } - return nil + return 0 } -func (x *GetOnlineCharactersResponse) GetTotalCount() uint32 { +func (x *InviteArenaTeamMemberRequest) GetArenaTeamID() uint32 { if x != nil { - return x.TotalCount + return x.ArenaTeamID } return 0 } -type WhoQueryResponse_WhoItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *InviteArenaTeamMemberRequest) GetInviterGUID() uint64 { + if x != nil { + return x.InviterGUID + } + return 0 +} - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Guild string `protobuf:"bytes,3,opt,name=guild,proto3" json:"guild,omitempty"` - Lvl uint32 `protobuf:"varint,4,opt,name=lvl,proto3" json:"lvl,omitempty"` - Class uint32 `protobuf:"varint,5,opt,name=class,proto3" json:"class,omitempty"` - Race uint32 `protobuf:"varint,6,opt,name=race,proto3" json:"race,omitempty"` - Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` - ZoneID uint32 `protobuf:"varint,8,opt,name=zoneID,proto3" json:"zoneID,omitempty"` +func (x *InviteArenaTeamMemberRequest) GetInviterName() string { + if x != nil { + return x.InviterName + } + return "" } -func (x *WhoQueryResponse_WhoItem) Reset() { - *x = WhoQueryResponse_WhoItem{} +func (x *InviteArenaTeamMemberRequest) GetTargetGUID() uint64 { + if x != nil { + return x.TargetGUID + } + return 0 +} + +func (x *InviteArenaTeamMemberRequest) GetTargetName() string { + if x != nil { + return x.TargetName + } + return "" +} + +type InviteArenaTeamMemberResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamMutationStatus" json:"status,omitempty"` + Team *ArenaTeamData `protobuf:"bytes,3,opt,name=team,proto3" json:"team,omitempty"` +} + +func (x *InviteArenaTeamMemberResponse) Reset() { + *x = InviteArenaTeamMemberResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[35] + mi := &file_characters_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WhoQueryResponse_WhoItem) String() string { +func (x *InviteArenaTeamMemberResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WhoQueryResponse_WhoItem) ProtoMessage() {} +func (*InviteArenaTeamMemberResponse) ProtoMessage() {} -func (x *WhoQueryResponse_WhoItem) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[35] +func (x *InviteArenaTeamMemberResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2526,103 +3012,138 @@ func (x *WhoQueryResponse_WhoItem) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WhoQueryResponse_WhoItem.ProtoReflect.Descriptor instead. -func (*WhoQueryResponse_WhoItem) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{10, 0} +// Deprecated: Use InviteArenaTeamMemberResponse.ProtoReflect.Descriptor instead. +func (*InviteArenaTeamMemberResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{33} } -func (x *WhoQueryResponse_WhoItem) GetGuid() uint64 { +func (x *InviteArenaTeamMemberResponse) GetApi() string { if x != nil { - return x.Guid + return x.Api } - return 0 + return "" } -func (x *WhoQueryResponse_WhoItem) GetName() string { +func (x *InviteArenaTeamMemberResponse) GetStatus() ArenaTeamMutationStatus { if x != nil { - return x.Name + return x.Status } - return "" + return ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK } -func (x *WhoQueryResponse_WhoItem) GetGuild() string { +func (x *InviteArenaTeamMemberResponse) GetTeam() *ArenaTeamData { if x != nil { - return x.Guild + return x.Team } - return "" + return nil } -func (x *WhoQueryResponse_WhoItem) GetLvl() uint32 { +type AcceptArenaTeamInviteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PlayerName string `protobuf:"bytes,4,opt,name=playerName,proto3" json:"playerName,omitempty"` + PersonalRating uint32 `protobuf:"varint,5,opt,name=personalRating,proto3" json:"personalRating,omitempty"` +} + +func (x *AcceptArenaTeamInviteRequest) Reset() { + *x = AcceptArenaTeamInviteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptArenaTeamInviteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptArenaTeamInviteRequest) ProtoMessage() {} + +func (x *AcceptArenaTeamInviteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcceptArenaTeamInviteRequest.ProtoReflect.Descriptor instead. +func (*AcceptArenaTeamInviteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{34} +} + +func (x *AcceptArenaTeamInviteRequest) GetApi() string { if x != nil { - return x.Lvl + return x.Api } - return 0 + return "" } -func (x *WhoQueryResponse_WhoItem) GetClass() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetRealmID() uint32 { if x != nil { - return x.Class + return x.RealmID } return 0 } -func (x *WhoQueryResponse_WhoItem) GetRace() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetPlayerGUID() uint64 { if x != nil { - return x.Race + return x.PlayerGUID } return 0 } -func (x *WhoQueryResponse_WhoItem) GetGender() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetPlayerName() string { if x != nil { - return x.Gender + return x.PlayerName } - return 0 + return "" } -func (x *WhoQueryResponse_WhoItem) GetZoneID() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetPersonalRating() uint32 { if x != nil { - return x.ZoneID + return x.PersonalRating } return 0 } -type CharacterOnlineByNameResponse_Char struct { +type AcceptArenaTeamInviteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` - GatewayID string `protobuf:"bytes,2,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` - CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - CharName string `protobuf:"bytes,4,opt,name=charName,proto3" json:"charName,omitempty"` - CharRace uint32 `protobuf:"varint,5,opt,name=charRace,proto3" json:"charRace,omitempty"` - CharClass uint32 `protobuf:"varint,6,opt,name=charClass,proto3" json:"charClass,omitempty"` - CharGender uint32 `protobuf:"varint,7,opt,name=charGender,proto3" json:"charGender,omitempty"` - CharLvl uint32 `protobuf:"varint,8,opt,name=charLvl,proto3" json:"charLvl,omitempty"` - CharZone uint32 `protobuf:"varint,9,opt,name=charZone,proto3" json:"charZone,omitempty"` - CharMap uint32 `protobuf:"varint,10,opt,name=charMap,proto3" json:"charMap,omitempty"` - CharGuildID uint64 `protobuf:"varint,11,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` - AccountID uint32 `protobuf:"varint,12,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamMutationStatus" json:"status,omitempty"` + Team *ArenaTeamData `protobuf:"bytes,3,opt,name=team,proto3" json:"team,omitempty"` } -func (x *CharacterOnlineByNameResponse_Char) Reset() { - *x = CharacterOnlineByNameResponse_Char{} +func (x *AcceptArenaTeamInviteResponse) Reset() { + *x = AcceptArenaTeamInviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[36] + mi := &file_characters_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CharacterOnlineByNameResponse_Char) String() string { +func (x *AcceptArenaTeamInviteResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CharacterOnlineByNameResponse_Char) ProtoMessage() {} +func (*AcceptArenaTeamInviteResponse) ProtoMessage() {} -func (x *CharacterOnlineByNameResponse_Char) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[36] +func (x *AcceptArenaTeamInviteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2633,117 +3154,109 @@ func (x *CharacterOnlineByNameResponse_Char) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use CharacterOnlineByNameResponse_Char.ProtoReflect.Descriptor instead. -func (*CharacterOnlineByNameResponse_Char) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{12, 0} -} - -func (x *CharacterOnlineByNameResponse_Char) GetRealmID() uint32 { - if x != nil { - return x.RealmID - } - return 0 +// Deprecated: Use AcceptArenaTeamInviteResponse.ProtoReflect.Descriptor instead. +func (*AcceptArenaTeamInviteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{35} } -func (x *CharacterOnlineByNameResponse_Char) GetGatewayID() string { +func (x *AcceptArenaTeamInviteResponse) GetApi() string { if x != nil { - return x.GatewayID + return x.Api } return "" } -func (x *CharacterOnlineByNameResponse_Char) GetCharGUID() uint64 { +func (x *AcceptArenaTeamInviteResponse) GetStatus() ArenaTeamMutationStatus { if x != nil { - return x.CharGUID + return x.Status } - return 0 + return ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK } -func (x *CharacterOnlineByNameResponse_Char) GetCharName() string { +func (x *AcceptArenaTeamInviteResponse) GetTeam() *ArenaTeamData { if x != nil { - return x.CharName + return x.Team } - return "" + return nil } -func (x *CharacterOnlineByNameResponse_Char) GetCharRace() uint32 { - if x != nil { - return x.CharRace - } - return 0 +type DeclineArenaTeamInviteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` } -func (x *CharacterOnlineByNameResponse_Char) GetCharClass() uint32 { - if x != nil { - return x.CharClass +func (x *DeclineArenaTeamInviteRequest) Reset() { + *x = DeclineArenaTeamInviteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *CharacterOnlineByNameResponse_Char) GetCharGender() uint32 { - if x != nil { - return x.CharGender - } - return 0 +func (x *DeclineArenaTeamInviteRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *CharacterOnlineByNameResponse_Char) GetCharLvl() uint32 { - if x != nil { - return x.CharLvl +func (*DeclineArenaTeamInviteRequest) ProtoMessage() {} + +func (x *DeclineArenaTeamInviteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *CharacterOnlineByNameResponse_Char) GetCharZone() uint32 { - if x != nil { - return x.CharZone - } - return 0 +// Deprecated: Use DeclineArenaTeamInviteRequest.ProtoReflect.Descriptor instead. +func (*DeclineArenaTeamInviteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{36} } -func (x *CharacterOnlineByNameResponse_Char) GetCharMap() uint32 { +func (x *DeclineArenaTeamInviteRequest) GetApi() string { if x != nil { - return x.CharMap + return x.Api } - return 0 + return "" } -func (x *CharacterOnlineByNameResponse_Char) GetCharGuildID() uint64 { +func (x *DeclineArenaTeamInviteRequest) GetRealmID() uint32 { if x != nil { - return x.CharGuildID + return x.RealmID } return 0 } -func (x *CharacterOnlineByNameResponse_Char) GetAccountID() uint32 { +func (x *DeclineArenaTeamInviteRequest) GetPlayerGUID() uint64 { if x != nil { - return x.AccountID + return x.PlayerGUID } return 0 } -type CharacterByNameResponse_Char struct { +type AddArenaTeamMemberRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` - GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` - CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` - CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` - CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` - CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` - CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` - CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` - CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` - CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` - AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,4,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PersonalRating uint32 `protobuf:"varint,5,opt,name=personalRating,proto3" json:"personalRating,omitempty"` } -func (x *CharacterByNameResponse_Char) Reset() { - *x = CharacterByNameResponse_Char{} +func (x *AddArenaTeamMemberRequest) Reset() { + *x = AddArenaTeamMemberRequest{} if protoimpl.UnsafeEnabled { mi := &file_characters_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2751,13 +3264,13 @@ func (x *CharacterByNameResponse_Char) Reset() { } } -func (x *CharacterByNameResponse_Char) String() string { +func (x *AddArenaTeamMemberRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CharacterByNameResponse_Char) ProtoMessage() {} +func (*AddArenaTeamMemberRequest) ProtoMessage() {} -func (x *CharacterByNameResponse_Char) ProtoReflect() protoreflect.Message { +func (x *AddArenaTeamMemberRequest) ProtoReflect() protoreflect.Message { mi := &file_characters_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2769,139 +3282,153 @@ func (x *CharacterByNameResponse_Char) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CharacterByNameResponse_Char.ProtoReflect.Descriptor instead. -func (*CharacterByNameResponse_Char) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{14, 0} +// Deprecated: Use AddArenaTeamMemberRequest.ProtoReflect.Descriptor instead. +func (*AddArenaTeamMemberRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{37} } -func (x *CharacterByNameResponse_Char) GetRealmID() uint32 { +func (x *AddArenaTeamMemberRequest) GetApi() string { if x != nil { - return x.RealmID + return x.Api } - return 0 + return "" } -func (x *CharacterByNameResponse_Char) GetIsOnline() bool { +func (x *AddArenaTeamMemberRequest) GetRealmID() uint32 { if x != nil { - return x.IsOnline + return x.RealmID } - return false + return 0 } -func (x *CharacterByNameResponse_Char) GetGatewayID() string { +func (x *AddArenaTeamMemberRequest) GetArenaTeamID() uint32 { if x != nil { - return x.GatewayID + return x.ArenaTeamID } - return "" + return 0 } -func (x *CharacterByNameResponse_Char) GetCharGUID() uint64 { +func (x *AddArenaTeamMemberRequest) GetPlayerGUID() uint64 { if x != nil { - return x.CharGUID + return x.PlayerGUID } return 0 } -func (x *CharacterByNameResponse_Char) GetCharName() string { +func (x *AddArenaTeamMemberRequest) GetPersonalRating() uint32 { if x != nil { - return x.CharName + return x.PersonalRating } - return "" + return 0 } -func (x *CharacterByNameResponse_Char) GetCharRace() uint32 { - if x != nil { - return x.CharRace - } - return 0 +type RemoveArenaTeamMemberRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,4,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + ActorGUID uint64 `protobuf:"varint,5,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` } -func (x *CharacterByNameResponse_Char) GetCharClass() uint32 { - if x != nil { - return x.CharClass +func (x *RemoveArenaTeamMemberRequest) Reset() { + *x = RemoveArenaTeamMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *CharacterByNameResponse_Char) GetCharGender() uint32 { - if x != nil { - return x.CharGender - } - return 0 +func (x *RemoveArenaTeamMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *CharacterByNameResponse_Char) GetCharLvl() uint32 { +func (*RemoveArenaTeamMemberRequest) ProtoMessage() {} + +func (x *RemoveArenaTeamMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveArenaTeamMemberRequest.ProtoReflect.Descriptor instead. +func (*RemoveArenaTeamMemberRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{38} +} + +func (x *RemoveArenaTeamMemberRequest) GetApi() string { if x != nil { - return x.CharLvl + return x.Api } - return 0 + return "" } -func (x *CharacterByNameResponse_Char) GetCharZone() uint32 { +func (x *RemoveArenaTeamMemberRequest) GetRealmID() uint32 { if x != nil { - return x.CharZone + return x.RealmID } return 0 } -func (x *CharacterByNameResponse_Char) GetCharMap() uint32 { +func (x *RemoveArenaTeamMemberRequest) GetArenaTeamID() uint32 { if x != nil { - return x.CharMap + return x.ArenaTeamID } return 0 } -func (x *CharacterByNameResponse_Char) GetCharGuildID() uint64 { +func (x *RemoveArenaTeamMemberRequest) GetPlayerGUID() uint64 { if x != nil { - return x.CharGuildID + return x.PlayerGUID } return 0 } -func (x *CharacterByNameResponse_Char) GetAccountID() uint32 { +func (x *RemoveArenaTeamMemberRequest) GetActorGUID() uint64 { if x != nil { - return x.AccountID + return x.ActorGUID } return 0 } -type ShortCharactersDataByGUIDsResponse_ShortCharData struct { +type DisbandArenaTeamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` - GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` - CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` - CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` - CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` - CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` - CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` - CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` - CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` - CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` - AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + ActorGUID uint64 `protobuf:"varint,4,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) Reset() { - *x = ShortCharactersDataByGUIDsResponse_ShortCharData{} +func (x *DisbandArenaTeamRequest) Reset() { + *x = DisbandArenaTeamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[38] + mi := &file_characters_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) String() string { +func (x *DisbandArenaTeamRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoMessage() {} +func (*DisbandArenaTeamRequest) ProtoMessage() {} -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[38] +func (x *DisbandArenaTeamRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2912,132 +3439,230 @@ func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use ShortCharactersDataByGUIDsResponse_ShortCharData.ProtoReflect.Descriptor instead. -func (*ShortCharactersDataByGUIDsResponse_ShortCharData) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{16, 0} +// Deprecated: Use DisbandArenaTeamRequest.ProtoReflect.Descriptor instead. +func (*DisbandArenaTeamRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{39} } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetRealmID() uint32 { +func (x *DisbandArenaTeamRequest) GetApi() string { if x != nil { - return x.RealmID + return x.Api } - return 0 + return "" } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetIsOnline() bool { +func (x *DisbandArenaTeamRequest) GetRealmID() uint32 { if x != nil { - return x.IsOnline + return x.RealmID } - return false + return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetGatewayID() string { +func (x *DisbandArenaTeamRequest) GetArenaTeamID() uint32 { if x != nil { - return x.GatewayID + return x.ArenaTeamID } - return "" + return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGUID() uint64 { +func (x *DisbandArenaTeamRequest) GetActorGUID() uint64 { if x != nil { - return x.CharGUID + return x.ActorGUID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharName() string { +type SetArenaTeamCaptainRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + CaptainGUID uint64 `protobuf:"varint,4,opt,name=captainGUID,proto3" json:"captainGUID,omitempty"` + ActorGUID uint64 `protobuf:"varint,5,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` +} + +func (x *SetArenaTeamCaptainRequest) Reset() { + *x = SetArenaTeamCaptainRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetArenaTeamCaptainRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetArenaTeamCaptainRequest) ProtoMessage() {} + +func (x *SetArenaTeamCaptainRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetArenaTeamCaptainRequest.ProtoReflect.Descriptor instead. +func (*SetArenaTeamCaptainRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{40} +} + +func (x *SetArenaTeamCaptainRequest) GetApi() string { if x != nil { - return x.CharName + return x.Api } return "" } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharRace() uint32 { +func (x *SetArenaTeamCaptainRequest) GetRealmID() uint32 { if x != nil { - return x.CharRace + return x.RealmID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharClass() uint32 { +func (x *SetArenaTeamCaptainRequest) GetArenaTeamID() uint32 { if x != nil { - return x.CharClass + return x.ArenaTeamID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGender() uint32 { +func (x *SetArenaTeamCaptainRequest) GetCaptainGUID() uint64 { if x != nil { - return x.CharGender + return x.CaptainGUID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharLvl() uint32 { +func (x *SetArenaTeamCaptainRequest) GetActorGUID() uint64 { if x != nil { - return x.CharLvl + return x.ActorGUID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharZone() uint32 { +type SetArenaTeamNameRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + ActorGUID uint64 `protobuf:"varint,5,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` +} + +func (x *SetArenaTeamNameRequest) Reset() { + *x = SetArenaTeamNameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetArenaTeamNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetArenaTeamNameRequest) ProtoMessage() {} + +func (x *SetArenaTeamNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetArenaTeamNameRequest.ProtoReflect.Descriptor instead. +func (*SetArenaTeamNameRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{41} +} + +func (x *SetArenaTeamNameRequest) GetApi() string { if x != nil { - return x.CharZone + return x.Api } - return 0 + return "" } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharMap() uint32 { +func (x *SetArenaTeamNameRequest) GetRealmID() uint32 { if x != nil { - return x.CharMap + return x.RealmID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGuildID() uint64 { +func (x *SetArenaTeamNameRequest) GetArenaTeamID() uint32 { if x != nil { - return x.CharGuildID + return x.ArenaTeamID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetAccountID() uint32 { +func (x *SetArenaTeamNameRequest) GetName() string { if x != nil { - return x.AccountID + return x.Name + } + return "" +} + +func (x *SetArenaTeamNameRequest) GetActorGUID() uint64 { + if x != nil { + return x.ActorGUID } return 0 } -type GetFriendsListResponse_Friend struct { +type ArenaTeamStatsMember struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Note string `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` - Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0 = offline, 1 = online - Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` // zone ID if online - Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` - ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PersonalRating uint32 `protobuf:"varint,2,opt,name=personalRating,proto3" json:"personalRating,omitempty"` + WeekGames uint32 `protobuf:"varint,3,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,4,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,5,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,6,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,7,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` + MaxMMR uint32 `protobuf:"varint,8,opt,name=maxMMR,proto3" json:"maxMMR,omitempty"` + SaveArenaStats bool `protobuf:"varint,9,opt,name=saveArenaStats,proto3" json:"saveArenaStats,omitempty"` } -func (x *GetFriendsListResponse_Friend) Reset() { - *x = GetFriendsListResponse_Friend{} +func (x *ArenaTeamStatsMember) Reset() { + *x = ArenaTeamStatsMember{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[39] + mi := &file_characters_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListResponse_Friend) String() string { +func (x *ArenaTeamStatsMember) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListResponse_Friend) ProtoMessage() {} +func (*ArenaTeamStatsMember) ProtoMessage() {} -func (x *GetFriendsListResponse_Friend) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[39] +func (x *ArenaTeamStatsMember) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3048,78 +3673,109 @@ func (x *GetFriendsListResponse_Friend) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListResponse_Friend.ProtoReflect.Descriptor instead. -func (*GetFriendsListResponse_Friend) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{20, 0} +// Deprecated: Use ArenaTeamStatsMember.ProtoReflect.Descriptor instead. +func (*ArenaTeamStatsMember) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{42} } -func (x *GetFriendsListResponse_Friend) GetGuid() uint64 { +func (x *ArenaTeamStatsMember) GetPlayerGUID() uint64 { if x != nil { - return x.Guid + return x.PlayerGUID } return 0 } -func (x *GetFriendsListResponse_Friend) GetNote() string { +func (x *ArenaTeamStatsMember) GetPersonalRating() uint32 { if x != nil { - return x.Note + return x.PersonalRating } - return "" + return 0 } -func (x *GetFriendsListResponse_Friend) GetStatus() uint32 { +func (x *ArenaTeamStatsMember) GetWeekGames() uint32 { if x != nil { - return x.Status + return x.WeekGames } return 0 } -func (x *GetFriendsListResponse_Friend) GetArea() uint32 { +func (x *ArenaTeamStatsMember) GetWeekWins() uint32 { if x != nil { - return x.Area + return x.WeekWins } return 0 } -func (x *GetFriendsListResponse_Friend) GetLevel() uint32 { +func (x *ArenaTeamStatsMember) GetSeasonGames() uint32 { if x != nil { - return x.Level + return x.SeasonGames } return 0 } -func (x *GetFriendsListResponse_Friend) GetClassID() uint32 { +func (x *ArenaTeamStatsMember) GetSeasonWins() uint32 { if x != nil { - return x.ClassID + return x.SeasonWins } return 0 } -type GetFriendsListResponse_IgnoredPlayer struct { +func (x *ArenaTeamStatsMember) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +func (x *ArenaTeamStatsMember) GetMaxMMR() uint32 { + if x != nil { + return x.MaxMMR + } + return 0 +} + +func (x *ArenaTeamStatsMember) GetSaveArenaStats() bool { + if x != nil { + return x.SaveArenaStats + } + return false +} + +type SaveArenaTeamStatsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` -} - -func (x *GetFriendsListResponse_IgnoredPlayer) Reset() { - *x = GetFriendsListResponse_IgnoredPlayer{} + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + Rating uint32 `protobuf:"varint,4,opt,name=rating,proto3" json:"rating,omitempty"` + WeekGames uint32 `protobuf:"varint,5,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,6,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,7,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,8,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + Rank uint32 `protobuf:"varint,9,opt,name=rank,proto3" json:"rank,omitempty"` + Slot uint32 `protobuf:"varint,10,opt,name=slot,proto3" json:"slot,omitempty"` + Members []*ArenaTeamStatsMember `protobuf:"bytes,11,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *SaveArenaTeamStatsRequest) Reset() { + *x = SaveArenaTeamStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[40] + mi := &file_characters_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListResponse_IgnoredPlayer) String() string { +func (x *SaveArenaTeamStatsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListResponse_IgnoredPlayer) ProtoMessage() {} +func (*SaveArenaTeamStatsRequest) ProtoMessage() {} -func (x *GetFriendsListResponse_IgnoredPlayer) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[40] +func (x *SaveArenaTeamStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3130,612 +3786,5132 @@ func (x *GetFriendsListResponse_IgnoredPlayer) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListResponse_IgnoredPlayer.ProtoReflect.Descriptor instead. -func (*GetFriendsListResponse_IgnoredPlayer) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{20, 1} +// Deprecated: Use SaveArenaTeamStatsRequest.ProtoReflect.Descriptor instead. +func (*SaveArenaTeamStatsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{43} } -func (x *GetFriendsListResponse_IgnoredPlayer) GetGuid() uint64 { +func (x *SaveArenaTeamStatsRequest) GetApi() string { if x != nil { - return x.Guid + return x.Api + } + return "" +} + +func (x *SaveArenaTeamStatsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID } return 0 } -var File_characters_proto protoreflect.FileDescriptor +func (x *SaveArenaTeamStatsRequest) GetArenaTeamID() uint32 { + if x != nil { + return x.ArenaTeamID + } + return 0 +} -var file_characters_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xb0, 0x05, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, - 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x67, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, - 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x68, 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x69, - 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x61, - 0x69, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x61, 0x63, 0x69, 0x61, - 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x61, - 0x63, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x7a, - 0x6f, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x12, - 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x74, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x44, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, - 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x52, - 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x45, 0x71, - 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, - 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x6e, - 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x22, 0x6e, 0x0a, 0x22, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x22, 0x6b, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x22, 0x72, 0x0a, - 0x1e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x22, 0x65, 0x0a, 0x1f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, - 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x6f, 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, 0x09, 0x63, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x22, 0x49, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, - 0x1d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x22, 0xbb, 0x02, 0x0a, 0x0f, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x76, 0x6c, - 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x75, - 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x63, 0x65, 0x4d, - 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x61, 0x63, 0x65, 0x4d, - 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x73, - 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x68, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0e, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x1a, 0xb3, - 0x01, 0x0a, 0x07, 0x57, 0x68, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x76, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x76, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x72, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, - 0x6e, 0x65, 0x49, 0x44, 0x22, 0x70, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x03, 0x0a, 0x1d, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x09, 0x63, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, - 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, - 0x1a, 0xe0, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, - 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, - 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, - 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, - 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x44, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0xea, 0x03, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, - 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, - 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x1a, 0xfc, 0x02, - 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, - 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, - 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, - 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x21, - 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, - 0x05, 0x47, 0x55, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x47, 0x55, - 0x49, 0x44, 0x73, 0x22, 0x94, 0x04, 0x0a, 0x22, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, - 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x54, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, - 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x1a, 0x85, 0x03, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, - 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x19, 0x53, - 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, - 0x12, 0x0c, 0x0a, 0x01, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x6f, 0x22, 0x2e, - 0x0a, 0x1a, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x63, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x22, 0xdf, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x3b, 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, - 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x64, 0x1a, 0x8c, 0x01, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, - 0x1a, 0x23, 0x0a, 0x0d, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x67, 0x75, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x11, 0x41, - 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x29, 0x0a, - 0x15, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, - 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, 0x3d, 0x0a, 0x11, 0x41, - 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc3, 0x01, 0x0a, 0x19, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x61, 0x72, 0x65, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, - 0x22, 0x2e, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x22, 0x48, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x77, 0x0a, 0x1b, 0x47, 0x65, - 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x26, 0x0a, 0x0e, 0x63, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x32, 0xa4, 0x0a, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, - 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, - 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, - 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, - 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, - 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, - 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x57, - 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, - 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, - 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4a, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x20, - 0x53, 0x68, 0x6f, 0x72, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, - 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, - 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x53, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, - 0x09, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x53, 0x65, - 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, - 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x13, 0x5a, 0x11, 0x67, 0x65, - 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +func (x *SaveArenaTeamStatsRequest) GetRating() uint32 { + if x != nil { + return x.Rating + } + return 0 } -var ( - file_characters_proto_rawDescOnce sync.Once - file_characters_proto_rawDescData = file_characters_proto_rawDesc -) +func (x *SaveArenaTeamStatsRequest) GetWeekGames() uint32 { + if x != nil { + return x.WeekGames + } + return 0 +} -func file_characters_proto_rawDescGZIP() []byte { - file_characters_proto_rawDescOnce.Do(func() { - file_characters_proto_rawDescData = protoimpl.X.CompressGZIP(file_characters_proto_rawDescData) - }) - return file_characters_proto_rawDescData +func (x *SaveArenaTeamStatsRequest) GetWeekWins() uint32 { + if x != nil { + return x.WeekWins + } + return 0 } -var file_characters_proto_msgTypes = make([]protoimpl.MessageInfo, 41) -var file_characters_proto_goTypes = []interface{}{ - (*LogInCharacter)(nil), // 0: v1.LogInCharacter - (*EquipmentDisplay)(nil), // 1: v1.EquipmentDisplay - (*CharactersToLoginForAccountRequest)(nil), // 2: v1.CharactersToLoginForAccountRequest - (*CharactersToLoginForAccountResponse)(nil), // 3: v1.CharactersToLoginForAccountResponse - (*CharactersToLoginByGUIDRequest)(nil), // 4: v1.CharactersToLoginByGUIDRequest - (*CharactersToLoginByGUIDResponse)(nil), // 5: v1.CharactersToLoginByGUIDResponse - (*AccountDataForAccountRequest)(nil), // 6: v1.AccountDataForAccountRequest - (*AccountData)(nil), // 7: v1.AccountData - (*AccountDataForAccountResponse)(nil), // 8: v1.AccountDataForAccountResponse - (*WhoQueryRequest)(nil), // 9: v1.WhoQueryRequest - (*WhoQueryResponse)(nil), // 10: v1.WhoQueryResponse - (*CharacterOnlineByNameRequest)(nil), // 11: v1.CharacterOnlineByNameRequest - (*CharacterOnlineByNameResponse)(nil), // 12: v1.CharacterOnlineByNameResponse - (*CharacterByNameRequest)(nil), // 13: v1.CharacterByNameRequest - (*CharacterByNameResponse)(nil), // 14: v1.CharacterByNameResponse - (*ShortCharactersDataByGUIDsRequest)(nil), // 15: v1.ShortCharactersDataByGUIDsRequest - (*ShortCharactersDataByGUIDsResponse)(nil), // 16: v1.ShortCharactersDataByGUIDsResponse - (*SavePlayerPositionRequest)(nil), // 17: v1.SavePlayerPositionRequest - (*SavePlayerPositionResponse)(nil), // 18: v1.SavePlayerPositionResponse - (*GetFriendsListRequest)(nil), // 19: v1.GetFriendsListRequest - (*GetFriendsListResponse)(nil), // 20: v1.GetFriendsListResponse - (*AddFriendRequest)(nil), // 21: v1.AddFriendRequest - (*AddFriendResponse)(nil), // 22: v1.AddFriendResponse - (*RemoveFriendRequest)(nil), // 23: v1.RemoveFriendRequest - (*RemoveFriendResponse)(nil), // 24: v1.RemoveFriendResponse - (*SetFriendNoteRequest)(nil), // 25: v1.SetFriendNoteRequest - (*SetFriendNoteResponse)(nil), // 26: v1.SetFriendNoteResponse - (*AddIgnoreRequest)(nil), // 27: v1.AddIgnoreRequest - (*AddIgnoreResponse)(nil), // 28: v1.AddIgnoreResponse - (*RemoveIgnoreRequest)(nil), // 29: v1.RemoveIgnoreRequest - (*RemoveIgnoreResponse)(nil), // 30: v1.RemoveIgnoreResponse - (*NotifyStatusChangeRequest)(nil), // 31: v1.NotifyStatusChangeRequest - (*NotifyStatusChangeResponse)(nil), // 32: v1.NotifyStatusChangeResponse - (*GetOnlineCharactersRequest)(nil), // 33: v1.GetOnlineCharactersRequest - (*GetOnlineCharactersResponse)(nil), // 34: v1.GetOnlineCharactersResponse - (*WhoQueryResponse_WhoItem)(nil), // 35: v1.WhoQueryResponse.WhoItem - (*CharacterOnlineByNameResponse_Char)(nil), // 36: v1.CharacterOnlineByNameResponse.Char - (*CharacterByNameResponse_Char)(nil), // 37: v1.CharacterByNameResponse.Char - (*ShortCharactersDataByGUIDsResponse_ShortCharData)(nil), // 38: v1.ShortCharactersDataByGUIDsResponse.ShortCharData - (*GetFriendsListResponse_Friend)(nil), // 39: v1.GetFriendsListResponse.Friend - (*GetFriendsListResponse_IgnoredPlayer)(nil), // 40: v1.GetFriendsListResponse.IgnoredPlayer +func (x *SaveArenaTeamStatsRequest) GetSeasonGames() uint32 { + if x != nil { + return x.SeasonGames + } + return 0 } -var file_characters_proto_depIdxs = []int32{ - 1, // 0: v1.LogInCharacter.equipments:type_name -> v1.EquipmentDisplay - 0, // 1: v1.CharactersToLoginForAccountResponse.characters:type_name -> v1.LogInCharacter - 0, // 2: v1.CharactersToLoginByGUIDResponse.character:type_name -> v1.LogInCharacter - 7, // 3: v1.AccountDataForAccountResponse.accountData:type_name -> v1.AccountData - 35, // 4: v1.WhoQueryResponse.itemsToDisplay:type_name -> v1.WhoQueryResponse.WhoItem - 36, // 5: v1.CharacterOnlineByNameResponse.character:type_name -> v1.CharacterOnlineByNameResponse.Char - 37, // 6: v1.CharacterByNameResponse.character:type_name -> v1.CharacterByNameResponse.Char - 38, // 7: v1.ShortCharactersDataByGUIDsResponse.characters:type_name -> v1.ShortCharactersDataByGUIDsResponse.ShortCharData - 39, // 8: v1.GetFriendsListResponse.friends:type_name -> v1.GetFriendsListResponse.Friend - 40, // 9: v1.GetFriendsListResponse.ignored:type_name -> v1.GetFriendsListResponse.IgnoredPlayer - 2, // 10: v1.CharactersService.CharactersToLoginForAccount:input_type -> v1.CharactersToLoginForAccountRequest - 4, // 11: v1.CharactersService.CharactersToLoginByGUID:input_type -> v1.CharactersToLoginByGUIDRequest - 6, // 12: v1.CharactersService.AccountDataForAccount:input_type -> v1.AccountDataForAccountRequest - 9, // 13: v1.CharactersService.WhoQuery:input_type -> v1.WhoQueryRequest - 11, // 14: v1.CharactersService.CharacterOnlineByName:input_type -> v1.CharacterOnlineByNameRequest - 13, // 15: v1.CharactersService.CharacterByName:input_type -> v1.CharacterByNameRequest - 15, // 16: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:input_type -> v1.ShortCharactersDataByGUIDsRequest - 17, // 17: v1.CharactersService.SavePlayerPosition:input_type -> v1.SavePlayerPositionRequest - 19, // 18: v1.CharactersService.GetFriendsList:input_type -> v1.GetFriendsListRequest - 21, // 19: v1.CharactersService.AddFriend:input_type -> v1.AddFriendRequest - 23, // 20: v1.CharactersService.RemoveFriend:input_type -> v1.RemoveFriendRequest - 25, // 21: v1.CharactersService.SetFriendNote:input_type -> v1.SetFriendNoteRequest - 27, // 22: v1.CharactersService.AddIgnore:input_type -> v1.AddIgnoreRequest - 29, // 23: v1.CharactersService.RemoveIgnore:input_type -> v1.RemoveIgnoreRequest - 31, // 24: v1.CharactersService.NotifyStatusChange:input_type -> v1.NotifyStatusChangeRequest - 33, // 25: v1.CharactersService.GetOnlineCharacters:input_type -> v1.GetOnlineCharactersRequest - 3, // 26: v1.CharactersService.CharactersToLoginForAccount:output_type -> v1.CharactersToLoginForAccountResponse - 5, // 27: v1.CharactersService.CharactersToLoginByGUID:output_type -> v1.CharactersToLoginByGUIDResponse - 8, // 28: v1.CharactersService.AccountDataForAccount:output_type -> v1.AccountDataForAccountResponse - 10, // 29: v1.CharactersService.WhoQuery:output_type -> v1.WhoQueryResponse - 12, // 30: v1.CharactersService.CharacterOnlineByName:output_type -> v1.CharacterOnlineByNameResponse - 14, // 31: v1.CharactersService.CharacterByName:output_type -> v1.CharacterByNameResponse - 16, // 32: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:output_type -> v1.ShortCharactersDataByGUIDsResponse - 18, // 33: v1.CharactersService.SavePlayerPosition:output_type -> v1.SavePlayerPositionResponse - 20, // 34: v1.CharactersService.GetFriendsList:output_type -> v1.GetFriendsListResponse - 22, // 35: v1.CharactersService.AddFriend:output_type -> v1.AddFriendResponse - 24, // 36: v1.CharactersService.RemoveFriend:output_type -> v1.RemoveFriendResponse - 26, // 37: v1.CharactersService.SetFriendNote:output_type -> v1.SetFriendNoteResponse - 28, // 38: v1.CharactersService.AddIgnore:output_type -> v1.AddIgnoreResponse - 30, // 39: v1.CharactersService.RemoveIgnore:output_type -> v1.RemoveIgnoreResponse - 32, // 40: v1.CharactersService.NotifyStatusChange:output_type -> v1.NotifyStatusChangeResponse - 34, // 41: v1.CharactersService.GetOnlineCharacters:output_type -> v1.GetOnlineCharactersResponse - 26, // [26:42] is the sub-list for method output_type - 10, // [10:26] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + +func (x *SaveArenaTeamStatsRequest) GetSeasonWins() uint32 { + if x != nil { + return x.SeasonWins + } + return 0 } -func init() { file_characters_proto_init() } -func file_characters_proto_init() { - if File_characters_proto != nil { - return +func (x *SaveArenaTeamStatsRequest) GetRank() uint32 { + if x != nil { + return x.Rank } - if !protoimpl.UnsafeEnabled { - file_characters_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogInCharacter); i { + return 0 +} + +func (x *SaveArenaTeamStatsRequest) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *SaveArenaTeamStatsRequest) GetMembers() []*ArenaTeamStatsMember { + if x != nil { + return x.Members + } + return nil +} + +type DeleteAllArenaTeamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *DeleteAllArenaTeamsRequest) Reset() { + *x = DeleteAllArenaTeamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAllArenaTeamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAllArenaTeamsRequest) ProtoMessage() {} + +func (x *DeleteAllArenaTeamsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteAllArenaTeamsRequest.ProtoReflect.Descriptor instead. +func (*DeleteAllArenaTeamsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{44} +} + +func (x *DeleteAllArenaTeamsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DeleteAllArenaTeamsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type ValidateArenaTeamCharacterDeleteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) Reset() { + *x = ValidateArenaTeamCharacterDeleteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateArenaTeamCharacterDeleteRequest) ProtoMessage() {} + +func (x *ValidateArenaTeamCharacterDeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateArenaTeamCharacterDeleteRequest.ProtoReflect.Descriptor instead. +func (*ValidateArenaTeamCharacterDeleteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{45} +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type RemovePlayerFromArenaTeamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *RemovePlayerFromArenaTeamsRequest) Reset() { + *x = RemovePlayerFromArenaTeamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemovePlayerFromArenaTeamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemovePlayerFromArenaTeamsRequest) ProtoMessage() {} + +func (x *RemovePlayerFromArenaTeamsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemovePlayerFromArenaTeamsRequest.ProtoReflect.Descriptor instead. +func (*RemovePlayerFromArenaTeamsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{46} +} + +func (x *RemovePlayerFromArenaTeamsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemovePlayerFromArenaTeamsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RemovePlayerFromArenaTeamsRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type ArenaTeamMutationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamMutationStatus" json:"status,omitempty"` +} + +func (x *ArenaTeamMutationResponse) Reset() { + *x = ArenaTeamMutationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArenaTeamMutationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArenaTeamMutationResponse) ProtoMessage() {} + +func (x *ArenaTeamMutationResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArenaTeamMutationResponse.ProtoReflect.Descriptor instead. +func (*ArenaTeamMutationResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{47} +} + +func (x *ArenaTeamMutationResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ArenaTeamMutationResponse) GetStatus() ArenaTeamMutationStatus { + if x != nil { + return x.Status + } + return ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK +} + +type SavePlayerPositionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + X float32 `protobuf:"fixed32,5,opt,name=x,proto3" json:"x,omitempty"` + Y float32 `protobuf:"fixed32,6,opt,name=y,proto3" json:"y,omitempty"` + Z float32 `protobuf:"fixed32,7,opt,name=z,proto3" json:"z,omitempty"` + O float32 `protobuf:"fixed32,8,opt,name=o,proto3" json:"o,omitempty"` +} + +func (x *SavePlayerPositionRequest) Reset() { + *x = SavePlayerPositionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavePlayerPositionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavePlayerPositionRequest) ProtoMessage() {} + +func (x *SavePlayerPositionRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SavePlayerPositionRequest.ProtoReflect.Descriptor instead. +func (*SavePlayerPositionRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{48} +} + +func (x *SavePlayerPositionRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SavePlayerPositionRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetX() float32 { + if x != nil { + return x.X + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetY() float32 { + if x != nil { + return x.Y + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetZ() float32 { + if x != nil { + return x.Z + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetO() float32 { + if x != nil { + return x.O + } + return 0 +} + +type SavePlayerPositionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SavePlayerPositionResponse) Reset() { + *x = SavePlayerPositionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavePlayerPositionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavePlayerPositionResponse) ProtoMessage() {} + +func (x *SavePlayerPositionResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SavePlayerPositionResponse.ProtoReflect.Descriptor instead. +func (*SavePlayerPositionResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{49} +} + +func (x *SavePlayerPositionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type LfgDungeonRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + DungeonEntry uint32 `protobuf:"varint,3,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + OwnerRealmID uint32 `protobuf:"varint,6,opt,name=ownerRealmID,proto3" json:"ownerRealmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,7,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` + RequiresBoundInstance bool `protobuf:"varint,8,opt,name=requiresBoundInstance,proto3" json:"requiresBoundInstance,omitempty"` + InstanceID uint32 `protobuf:"varint,9,opt,name=instanceID,proto3" json:"instanceID,omitempty"` + BoundInstanceID uint32 `protobuf:"varint,10,opt,name=boundInstanceID,proto3" json:"boundInstanceID,omitempty"` +} + +func (x *LfgDungeonRoute) Reset() { + *x = LfgDungeonRoute{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgDungeonRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgDungeonRoute) ProtoMessage() {} + +func (x *LfgDungeonRoute) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LfgDungeonRoute.ProtoReflect.Descriptor instead. +func (*LfgDungeonRoute) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{50} +} + +func (x *LfgDungeonRoute) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LfgDungeonRoute) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *LfgDungeonRoute) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *LfgDungeonRoute) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *LfgDungeonRoute) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *LfgDungeonRoute) GetOwnerRealmID() uint32 { + if x != nil { + return x.OwnerRealmID + } + return 0 +} + +func (x *LfgDungeonRoute) GetIsCrossRealm() bool { + if x != nil { + return x.IsCrossRealm + } + return false +} + +func (x *LfgDungeonRoute) GetRequiresBoundInstance() bool { + if x != nil { + return x.RequiresBoundInstance + } + return false +} + +func (x *LfgDungeonRoute) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 +} + +func (x *LfgDungeonRoute) GetBoundInstanceID() uint32 { + if x != nil { + return x.BoundInstanceID + } + return 0 +} + +type RecordLfgDungeonRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Route *LfgDungeonRoute `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"` +} + +func (x *RecordLfgDungeonRouteRequest) Reset() { + *x = RecordLfgDungeonRouteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordLfgDungeonRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordLfgDungeonRouteRequest) ProtoMessage() {} + +func (x *RecordLfgDungeonRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecordLfgDungeonRouteRequest.ProtoReflect.Descriptor instead. +func (*RecordLfgDungeonRouteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{51} +} + +func (x *RecordLfgDungeonRouteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RecordLfgDungeonRouteRequest) GetRoute() *LfgDungeonRoute { + if x != nil { + return x.Route + } + return nil +} + +type RecordLfgDungeonRouteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RecordLfgDungeonRouteResponse) Reset() { + *x = RecordLfgDungeonRouteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordLfgDungeonRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordLfgDungeonRouteResponse) ProtoMessage() {} + +func (x *RecordLfgDungeonRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecordLfgDungeonRouteResponse.ProtoReflect.Descriptor instead. +func (*RecordLfgDungeonRouteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{52} +} + +func (x *RecordLfgDungeonRouteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type ConfirmLfgDungeonRouteEnteredRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + InstanceID uint32 `protobuf:"varint,6,opt,name=instanceID,proto3" json:"instanceID,omitempty"` +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) Reset() { + *x = ConfirmLfgDungeonRouteEnteredRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfirmLfgDungeonRouteEnteredRequest) ProtoMessage() {} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConfirmLfgDungeonRouteEnteredRequest.ProtoReflect.Descriptor instead. +func (*ConfirmLfgDungeonRouteEnteredRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{53} +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 +} + +type ConfirmLfgDungeonRouteEnteredResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Route *LfgDungeonRoute `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"` +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) Reset() { + *x = ConfirmLfgDungeonRouteEnteredResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfirmLfgDungeonRouteEnteredResponse) ProtoMessage() {} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConfirmLfgDungeonRouteEnteredResponse.ProtoReflect.Descriptor instead. +func (*ConfirmLfgDungeonRouteEnteredResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{54} +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) GetRoute() *LfgDungeonRoute { + if x != nil { + return x.Route + } + return nil +} + +type ClearUnboundLfgDungeonRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` +} + +func (x *ClearUnboundLfgDungeonRouteRequest) Reset() { + *x = ClearUnboundLfgDungeonRouteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearUnboundLfgDungeonRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearUnboundLfgDungeonRouteRequest) ProtoMessage() {} + +func (x *ClearUnboundLfgDungeonRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClearUnboundLfgDungeonRouteRequest.ProtoReflect.Descriptor instead. +func (*ClearUnboundLfgDungeonRouteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{55} +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +type ClearUnboundLfgDungeonRouteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *ClearUnboundLfgDungeonRouteResponse) Reset() { + *x = ClearUnboundLfgDungeonRouteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearUnboundLfgDungeonRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearUnboundLfgDungeonRouteResponse) ProtoMessage() {} + +func (x *ClearUnboundLfgDungeonRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClearUnboundLfgDungeonRouteResponse.ProtoReflect.Descriptor instead. +func (*ClearUnboundLfgDungeonRouteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{56} +} + +func (x *ClearUnboundLfgDungeonRouteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type GetLfgDungeonRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` +} + +func (x *GetLfgDungeonRouteRequest) Reset() { + *x = GetLfgDungeonRouteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonRouteRequest) ProtoMessage() {} + +func (x *GetLfgDungeonRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgDungeonRouteRequest.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonRouteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{57} +} + +func (x *GetLfgDungeonRouteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonRouteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetLfgDungeonRouteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *GetLfgDungeonRouteRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +type GetLfgDungeonRouteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Found bool `protobuf:"varint,2,opt,name=found,proto3" json:"found,omitempty"` + Available bool `protobuf:"varint,3,opt,name=available,proto3" json:"available,omitempty"` + Route *LfgDungeonRoute `protobuf:"bytes,4,opt,name=route,proto3" json:"route,omitempty"` +} + +func (x *GetLfgDungeonRouteResponse) Reset() { + *x = GetLfgDungeonRouteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonRouteResponse) ProtoMessage() {} + +func (x *GetLfgDungeonRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgDungeonRouteResponse.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonRouteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{58} +} + +func (x *GetLfgDungeonRouteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonRouteResponse) GetFound() bool { + if x != nil { + return x.Found + } + return false +} + +func (x *GetLfgDungeonRouteResponse) GetAvailable() bool { + if x != nil { + return x.Available + } + return false +} + +func (x *GetLfgDungeonRouteResponse) GetRoute() *LfgDungeonRoute { + if x != nil { + return x.Route + } + return nil +} + +type GetFriendsListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *GetFriendsListRequest) Reset() { + *x = GetFriendsListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListRequest) ProtoMessage() {} + +func (x *GetFriendsListRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFriendsListRequest.ProtoReflect.Descriptor instead. +func (*GetFriendsListRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{59} +} + +func (x *GetFriendsListRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetFriendsListRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetFriendsListRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type GetFriendsListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Friends []*GetFriendsListResponse_Friend `protobuf:"bytes,2,rep,name=friends,proto3" json:"friends,omitempty"` + Ignored []*GetFriendsListResponse_IgnoredPlayer `protobuf:"bytes,3,rep,name=ignored,proto3" json:"ignored,omitempty"` +} + +func (x *GetFriendsListResponse) Reset() { + *x = GetFriendsListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListResponse) ProtoMessage() {} + +func (x *GetFriendsListResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFriendsListResponse.ProtoReflect.Descriptor instead. +func (*GetFriendsListResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{60} +} + +func (x *GetFriendsListResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetFriendsListResponse) GetFriends() []*GetFriendsListResponse_Friend { + if x != nil { + return x.Friends + } + return nil +} + +func (x *GetFriendsListResponse) GetIgnored() []*GetFriendsListResponse_IgnoredPlayer { + if x != nil { + return x.Ignored + } + return nil +} + +type AddFriendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + FriendName string `protobuf:"bytes,5,opt,name=friendName,proto3" json:"friendName,omitempty"` + Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *AddFriendRequest) Reset() { + *x = AddFriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddFriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddFriendRequest) ProtoMessage() {} + +func (x *AddFriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddFriendRequest.ProtoReflect.Descriptor instead. +func (*AddFriendRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{61} +} + +func (x *AddFriendRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddFriendRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AddFriendRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AddFriendRequest) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AddFriendRequest) GetFriendName() string { + if x != nil { + return x.FriendName + } + return "" +} + +func (x *AddFriendRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type AddFriendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + FriendGUID uint64 `protobuf:"varint,7,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Pending bool `protobuf:"varint,8,opt,name=pending,proto3" json:"pending,omitempty"` + Accepted bool `protobuf:"varint,9,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AddFriendResponse) Reset() { + *x = AddFriendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddFriendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddFriendResponse) ProtoMessage() {} + +func (x *AddFriendResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddFriendResponse.ProtoReflect.Descriptor instead. +func (*AddFriendResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{62} +} + +func (x *AddFriendResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddFriendResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +func (x *AddFriendResponse) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AddFriendResponse) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *AddFriendResponse) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *AddFriendResponse) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *AddFriendResponse) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AddFriendResponse) GetPending() bool { + if x != nil { + return x.Pending + } + return false +} + +func (x *AddFriendResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type AddRealIDFriendByEmailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + AccountID uint32 `protobuf:"varint,4,opt,name=accountID,proto3" json:"accountID,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *AddRealIDFriendByEmailRequest) Reset() { + *x = AddRealIDFriendByEmailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddRealIDFriendByEmailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddRealIDFriendByEmailRequest) ProtoMessage() {} + +func (x *AddRealIDFriendByEmailRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddRealIDFriendByEmailRequest.ProtoReflect.Descriptor instead. +func (*AddRealIDFriendByEmailRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{63} +} + +func (x *AddRealIDFriendByEmailRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddRealIDFriendByEmailRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AddRealIDFriendByEmailRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AddRealIDFriendByEmailRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *AddRealIDFriendByEmailRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *AddRealIDFriendByEmailRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type AddRealIDFriendByEmailResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + FriendGUID uint64 `protobuf:"varint,7,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Pending bool `protobuf:"varint,8,opt,name=pending,proto3" json:"pending,omitempty"` + Accepted bool `protobuf:"varint,9,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AddRealIDFriendByEmailResponse) Reset() { + *x = AddRealIDFriendByEmailResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddRealIDFriendByEmailResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddRealIDFriendByEmailResponse) ProtoMessage() {} + +func (x *AddRealIDFriendByEmailResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddRealIDFriendByEmailResponse.ProtoReflect.Descriptor instead. +func (*AddRealIDFriendByEmailResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{64} +} + +func (x *AddRealIDFriendByEmailResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddRealIDFriendByEmailResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetPending() bool { + if x != nil { + return x.Pending + } + return false +} + +func (x *AddRealIDFriendByEmailResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type AcceptRealIDFriendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + AccountID uint32 `protobuf:"varint,4,opt,name=accountID,proto3" json:"accountID,omitempty"` + RequesterAccountID uint32 `protobuf:"varint,5,opt,name=requesterAccountID,proto3" json:"requesterAccountID,omitempty"` + Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *AcceptRealIDFriendRequest) Reset() { + *x = AcceptRealIDFriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptRealIDFriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptRealIDFriendRequest) ProtoMessage() {} + +func (x *AcceptRealIDFriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcceptRealIDFriendRequest.ProtoReflect.Descriptor instead. +func (*AcceptRealIDFriendRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{65} +} + +func (x *AcceptRealIDFriendRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AcceptRealIDFriendRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetRequesterAccountID() uint32 { + if x != nil { + return x.RequesterAccountID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type AcceptRealIDFriendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + FriendGUID uint64 `protobuf:"varint,7,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Pending bool `protobuf:"varint,8,opt,name=pending,proto3" json:"pending,omitempty"` + Accepted bool `protobuf:"varint,9,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AcceptRealIDFriendResponse) Reset() { + *x = AcceptRealIDFriendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptRealIDFriendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptRealIDFriendResponse) ProtoMessage() {} + +func (x *AcceptRealIDFriendResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcceptRealIDFriendResponse.ProtoReflect.Descriptor instead. +func (*AcceptRealIDFriendResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{66} +} + +func (x *AcceptRealIDFriendResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AcceptRealIDFriendResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetPending() bool { + if x != nil { + return x.Pending + } + return false +} + +func (x *AcceptRealIDFriendResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type AreRealIDFriendsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + AccountID uint32 `protobuf:"varint,2,opt,name=accountID,proto3" json:"accountID,omitempty"` + FriendAccountID uint32 `protobuf:"varint,3,opt,name=friendAccountID,proto3" json:"friendAccountID,omitempty"` +} + +func (x *AreRealIDFriendsRequest) Reset() { + *x = AreRealIDFriendsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AreRealIDFriendsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AreRealIDFriendsRequest) ProtoMessage() {} + +func (x *AreRealIDFriendsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AreRealIDFriendsRequest.ProtoReflect.Descriptor instead. +func (*AreRealIDFriendsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{67} +} + +func (x *AreRealIDFriendsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AreRealIDFriendsRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *AreRealIDFriendsRequest) GetFriendAccountID() uint32 { + if x != nil { + return x.FriendAccountID + } + return 0 +} + +type AreRealIDFriendsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Accepted bool `protobuf:"varint,2,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AreRealIDFriendsResponse) Reset() { + *x = AreRealIDFriendsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AreRealIDFriendsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AreRealIDFriendsResponse) ProtoMessage() {} + +func (x *AreRealIDFriendsResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AreRealIDFriendsResponse.ProtoReflect.Descriptor instead. +func (*AreRealIDFriendsResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{68} +} + +func (x *AreRealIDFriendsResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AreRealIDFriendsResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type RemoveFriendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` +} + +func (x *RemoveFriendRequest) Reset() { + *x = RemoveFriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveFriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveFriendRequest) ProtoMessage() {} + +func (x *RemoveFriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveFriendRequest.ProtoReflect.Descriptor instead. +func (*RemoveFriendRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{69} +} + +func (x *RemoveFriendRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemoveFriendRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RemoveFriendRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *RemoveFriendRequest) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +type RemoveFriendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RemoveFriendResponse) Reset() { + *x = RemoveFriendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveFriendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveFriendResponse) ProtoMessage() {} + +func (x *RemoveFriendResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveFriendResponse.ProtoReflect.Descriptor instead. +func (*RemoveFriendResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{70} +} + +func (x *RemoveFriendResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetFriendNoteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Note string `protobuf:"bytes,5,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *SetFriendNoteRequest) Reset() { + *x = SetFriendNoteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetFriendNoteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetFriendNoteRequest) ProtoMessage() {} + +func (x *SetFriendNoteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetFriendNoteRequest.ProtoReflect.Descriptor instead. +func (*SetFriendNoteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{71} +} + +func (x *SetFriendNoteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetFriendNoteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetFriendNoteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetFriendNoteRequest) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *SetFriendNoteRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type SetFriendNoteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetFriendNoteResponse) Reset() { + *x = SetFriendNoteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetFriendNoteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetFriendNoteResponse) ProtoMessage() {} + +func (x *SetFriendNoteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetFriendNoteResponse.ProtoReflect.Descriptor instead. +func (*SetFriendNoteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{72} +} + +func (x *SetFriendNoteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type AddIgnoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` +} + +func (x *AddIgnoreRequest) Reset() { + *x = AddIgnoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddIgnoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddIgnoreRequest) ProtoMessage() {} + +func (x *AddIgnoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddIgnoreRequest.ProtoReflect.Descriptor instead. +func (*AddIgnoreRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{73} +} + +func (x *AddIgnoreRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddIgnoreRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AddIgnoreRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AddIgnoreRequest) GetIgnoredGUID() uint64 { + if x != nil { + return x.IgnoredGUID + } + return 0 +} + +type AddIgnoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value +} + +func (x *AddIgnoreResponse) Reset() { + *x = AddIgnoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddIgnoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddIgnoreResponse) ProtoMessage() {} + +func (x *AddIgnoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddIgnoreResponse.ProtoReflect.Descriptor instead. +func (*AddIgnoreResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{74} +} + +func (x *AddIgnoreResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddIgnoreResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +type RemoveIgnoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` +} + +func (x *RemoveIgnoreRequest) Reset() { + *x = RemoveIgnoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIgnoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIgnoreRequest) ProtoMessage() {} + +func (x *RemoveIgnoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveIgnoreRequest.ProtoReflect.Descriptor instead. +func (*RemoveIgnoreRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{75} +} + +func (x *RemoveIgnoreRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemoveIgnoreRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RemoveIgnoreRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *RemoveIgnoreRequest) GetIgnoredGUID() uint64 { + if x != nil { + return x.IgnoredGUID + } + return 0 +} + +type RemoveIgnoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RemoveIgnoreResponse) Reset() { + *x = RemoveIgnoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIgnoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIgnoreResponse) ProtoMessage() {} + +func (x *RemoveIgnoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveIgnoreResponse.ProtoReflect.Descriptor instead. +func (*RemoveIgnoreResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{76} +} + +func (x *RemoveIgnoreResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type NotifyStatusChangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,5,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,7,opt,name=classID,proto3" json:"classID,omitempty"` +} + +func (x *NotifyStatusChangeRequest) Reset() { + *x = NotifyStatusChangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyStatusChangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyStatusChangeRequest) ProtoMessage() {} + +func (x *NotifyStatusChangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NotifyStatusChangeRequest.ProtoReflect.Descriptor instead. +func (*NotifyStatusChangeRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{77} +} + +func (x *NotifyStatusChangeRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *NotifyStatusChangeRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +type NotifyStatusChangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *NotifyStatusChangeResponse) Reset() { + *x = NotifyStatusChangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyStatusChangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyStatusChangeResponse) ProtoMessage() {} + +func (x *NotifyStatusChangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NotifyStatusChangeResponse.ProtoReflect.Descriptor instead. +func (*NotifyStatusChangeResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{78} +} + +func (x *NotifyStatusChangeResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type GetOnlineCharactersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetOnlineCharactersRequest) Reset() { + *x = GetOnlineCharactersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOnlineCharactersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOnlineCharactersRequest) ProtoMessage() {} + +func (x *GetOnlineCharactersRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOnlineCharactersRequest.ProtoReflect.Descriptor instead. +func (*GetOnlineCharactersRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{79} +} + +func (x *GetOnlineCharactersRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetOnlineCharactersRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type GetOnlineCharactersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + CharacterGUIDs []uint64 `protobuf:"varint,2,rep,packed,name=characterGUIDs,proto3" json:"characterGUIDs,omitempty"` + TotalCount uint32 `protobuf:"varint,3,opt,name=totalCount,proto3" json:"totalCount,omitempty"` +} + +func (x *GetOnlineCharactersResponse) Reset() { + *x = GetOnlineCharactersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOnlineCharactersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOnlineCharactersResponse) ProtoMessage() {} + +func (x *GetOnlineCharactersResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOnlineCharactersResponse.ProtoReflect.Descriptor instead. +func (*GetOnlineCharactersResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{80} +} + +func (x *GetOnlineCharactersResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetOnlineCharactersResponse) GetCharacterGUIDs() []uint64 { + if x != nil { + return x.CharacterGUIDs + } + return nil +} + +func (x *GetOnlineCharactersResponse) GetTotalCount() uint32 { + if x != nil { + return x.TotalCount + } + return 0 +} + +type WhoQueryResponse_WhoItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Guild string `protobuf:"bytes,3,opt,name=guild,proto3" json:"guild,omitempty"` + Lvl uint32 `protobuf:"varint,4,opt,name=lvl,proto3" json:"lvl,omitempty"` + Class uint32 `protobuf:"varint,5,opt,name=class,proto3" json:"class,omitempty"` + Race uint32 `protobuf:"varint,6,opt,name=race,proto3" json:"race,omitempty"` + Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` + ZoneID uint32 `protobuf:"varint,8,opt,name=zoneID,proto3" json:"zoneID,omitempty"` +} + +func (x *WhoQueryResponse_WhoItem) Reset() { + *x = WhoQueryResponse_WhoItem{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WhoQueryResponse_WhoItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WhoQueryResponse_WhoItem) ProtoMessage() {} + +func (x *WhoQueryResponse_WhoItem) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WhoQueryResponse_WhoItem.ProtoReflect.Descriptor instead. +func (*WhoQueryResponse_WhoItem) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *WhoQueryResponse_WhoItem) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WhoQueryResponse_WhoItem) GetGuild() string { + if x != nil { + return x.Guild + } + return "" +} + +func (x *WhoQueryResponse_WhoItem) GetLvl() uint32 { + if x != nil { + return x.Lvl + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetClass() uint32 { + if x != nil { + return x.Class + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetRace() uint32 { + if x != nil { + return x.Race + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetGender() uint32 { + if x != nil { + return x.Gender + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetZoneID() uint32 { + if x != nil { + return x.ZoneID + } + return 0 +} + +type CharacterOnlineByNameResponse_Char struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + GatewayID string `protobuf:"bytes,2,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + CharName string `protobuf:"bytes,4,opt,name=charName,proto3" json:"charName,omitempty"` + CharRace uint32 `protobuf:"varint,5,opt,name=charRace,proto3" json:"charRace,omitempty"` + CharClass uint32 `protobuf:"varint,6,opt,name=charClass,proto3" json:"charClass,omitempty"` + CharGender uint32 `protobuf:"varint,7,opt,name=charGender,proto3" json:"charGender,omitempty"` + CharLvl uint32 `protobuf:"varint,8,opt,name=charLvl,proto3" json:"charLvl,omitempty"` + CharZone uint32 `protobuf:"varint,9,opt,name=charZone,proto3" json:"charZone,omitempty"` + CharMap uint32 `protobuf:"varint,10,opt,name=charMap,proto3" json:"charMap,omitempty"` + CharGuildID uint64 `protobuf:"varint,11,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` + AccountID uint32 `protobuf:"varint,12,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *CharacterOnlineByNameResponse_Char) Reset() { + *x = CharacterOnlineByNameResponse_Char{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CharacterOnlineByNameResponse_Char) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CharacterOnlineByNameResponse_Char) ProtoMessage() {} + +func (x *CharacterOnlineByNameResponse_Char) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CharacterOnlineByNameResponse_Char.ProtoReflect.Descriptor instead. +func (*CharacterOnlineByNameResponse_Char) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{14, 0} +} + +func (x *CharacterOnlineByNameResponse_Char) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharName() string { + if x != nil { + return x.CharName + } + return "" +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharRace() uint32 { + if x != nil { + return x.CharRace + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharClass() uint32 { + if x != nil { + return x.CharClass + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharGender() uint32 { + if x != nil { + return x.CharGender + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharLvl() uint32 { + if x != nil { + return x.CharLvl + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharZone() uint32 { + if x != nil { + return x.CharZone + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharMap() uint32 { + if x != nil { + return x.CharMap + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharGuildID() uint64 { + if x != nil { + return x.CharGuildID + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +type CharacterByNameResponse_Char struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` + CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` + CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` + CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` + CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` + CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` + CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` + CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` + AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *CharacterByNameResponse_Char) Reset() { + *x = CharacterByNameResponse_Char{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CharacterByNameResponse_Char) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CharacterByNameResponse_Char) ProtoMessage() {} + +func (x *CharacterByNameResponse_Char) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CharacterByNameResponse_Char.ProtoReflect.Descriptor instead. +func (*CharacterByNameResponse_Char) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{16, 0} +} + +func (x *CharacterByNameResponse_Char) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *CharacterByNameResponse_Char) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" +} + +func (x *CharacterByNameResponse_Char) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharName() string { + if x != nil { + return x.CharName + } + return "" +} + +func (x *CharacterByNameResponse_Char) GetCharRace() uint32 { + if x != nil { + return x.CharRace + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharClass() uint32 { + if x != nil { + return x.CharClass + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharGender() uint32 { + if x != nil { + return x.CharGender + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharLvl() uint32 { + if x != nil { + return x.CharLvl + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharZone() uint32 { + if x != nil { + return x.CharZone + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharMap() uint32 { + if x != nil { + return x.CharMap + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharGuildID() uint64 { + if x != nil { + return x.CharGuildID + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +type ShortCharactersDataByGUIDsResponse_ShortCharData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` + CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` + CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` + CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` + CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` + CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` + CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` + CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` + AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) Reset() { + *x = ShortCharactersDataByGUIDsResponse_ShortCharData{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoMessage() {} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShortCharactersDataByGUIDsResponse_ShortCharData.ProtoReflect.Descriptor instead. +func (*ShortCharactersDataByGUIDsResponse_ShortCharData) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{20, 0} +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharName() string { + if x != nil { + return x.CharName + } + return "" +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharRace() uint32 { + if x != nil { + return x.CharRace + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharClass() uint32 { + if x != nil { + return x.CharClass + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGender() uint32 { + if x != nil { + return x.CharGender + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharLvl() uint32 { + if x != nil { + return x.CharLvl + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharZone() uint32 { + if x != nil { + return x.CharZone + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharMap() uint32 { + if x != nil { + return x.CharMap + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGuildID() uint64 { + if x != nil { + return x.CharGuildID + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +type GetFriendsListResponse_Friend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Note string `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0 = offline, 1 = online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` // zone ID if online + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + RealmID uint32 `protobuf:"varint,7,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetFriendsListResponse_Friend) Reset() { + *x = GetFriendsListResponse_Friend{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListResponse_Friend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListResponse_Friend) ProtoMessage() {} + +func (x *GetFriendsListResponse_Friend) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFriendsListResponse_Friend.ProtoReflect.Descriptor instead. +func (*GetFriendsListResponse_Friend) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{60, 0} +} + +func (x *GetFriendsListResponse_Friend) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +func (x *GetFriendsListResponse_Friend) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type GetFriendsListResponse_IgnoredPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` +} + +func (x *GetFriendsListResponse_IgnoredPlayer) Reset() { + *x = GetFriendsListResponse_IgnoredPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListResponse_IgnoredPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListResponse_IgnoredPlayer) ProtoMessage() {} + +func (x *GetFriendsListResponse_IgnoredPlayer) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFriendsListResponse_IgnoredPlayer.ProtoReflect.Descriptor instead. +func (*GetFriendsListResponse_IgnoredPlayer) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{60, 1} +} + +func (x *GetFriendsListResponse_IgnoredPlayer) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +var File_characters_proto protoreflect.FileDescriptor + +var file_characters_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xd0, 0x05, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x67, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, + 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x68, 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x69, + 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x61, + 0x69, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x61, 0x63, 0x69, 0x61, + 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x61, + 0x63, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x7a, + 0x6f, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x74, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x44, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x52, + 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x45, 0x71, + 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, + 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x49, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, + 0x22, 0x6e, 0x0a, 0x22, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x22, 0x6b, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x22, 0x90, 0x01, + 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, + 0x22, 0x65, 0x0a, 0x1f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x22, 0x49, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x1d, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x31, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x22, 0xaa, 0x01, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x37, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xbb, 0x02, 0x0a, 0x0f, 0x57, 0x68, 0x6f, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x24, + 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x6c, 0x76, 0x6c, 0x4d, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x72, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x57, 0x68, 0x6f, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x44, 0x0a, + 0x0e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x68, 0x6f, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x1a, 0xb3, 0x01, 0x0a, 0x07, 0x57, 0x68, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, + 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x76, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x76, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x22, 0x70, 0x0a, 0x1c, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x03, 0x0a, 0x1d, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x44, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x1a, 0xe0, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, + 0x4c, 0x76, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, + 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, + 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xea, 0x03, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x1a, 0xfc, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, + 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, + 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, + 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, + 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x44, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, + 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x6b, 0x0a, + 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, + 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x22, 0x65, 0x0a, 0x21, 0x53, 0x68, + 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x47, + 0x55, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x47, 0x55, 0x49, 0x44, + 0x73, 0x22, 0x94, 0x04, 0x0a, 0x22, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x54, 0x0a, 0x0a, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, + 0x1a, 0x85, 0x03, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, + 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, + 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xea, 0x01, 0x0a, 0x26, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, + 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x34, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x96, 0x03, 0x0a, 0x27, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, + 0x17, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x73, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x10, + 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x22, 0xf0, + 0x03, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x53, 0x74, 0x79, 0x6c, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x79, + 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x15, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x22, 0xba, 0x02, 0x0a, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x46, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x96, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x49, 0x6e, 0x54, 0x65, 0x61, 0x6d, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x45, + 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x10, + 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x07, 0x12, 0x0f, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x08, 0x22, 0xf5, + 0x02, 0x0a, 0x13, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, + 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x22, 0x88, 0x04, 0x0a, 0x0d, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, + 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, + 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, + 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x28, 0x0a, 0x0f, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, + 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6d, 0x62, + 0x6c, 0x65, 0x6d, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, + 0x65, 0x6d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, + 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x31, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x22, 0x63, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x74, 0x65, 0x61, + 0x6d, 0x22, 0x2a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, + 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0xcb, 0x01, + 0x0a, 0x15, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3f, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, + 0x0a, 0x08, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x70, 0x65, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, + 0xf0, 0x01, 0x0a, 0x1c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x74, + 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x8d, 0x01, 0x0a, 0x1d, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x25, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x6b, 0x0a, 0x1d, 0x44, 0x65, 0x63, 0x6c, 0x69, + 0x6e, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0xaa, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xaa, 0x01, + 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, + 0x70, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, + 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x99, 0x01, 0x0a, 0x17, 0x53, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x02, 0x0a, 0x14, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, 0x6b, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, + 0x69, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, + 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x73, 0x61, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, + 0xd9, 0x02, 0x0a, 0x19, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, + 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x48, 0x0a, 0x1a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x75, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x21, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x62, 0x0a, + 0x19, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x19, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x0c, 0x0a, + 0x01, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x12, 0x0c, 0x0a, 0x01, 0x6f, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x01, 0x6f, 0x22, 0x2e, 0x0a, 0x1a, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xed, 0x02, 0x0a, 0x0f, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, + 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, + 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, + 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x22, 0x5b, 0x0a, 0x1c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x22, 0x31, 0x0a, 0x1d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc8, 0x01, 0x0a, 0x24, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, + 0x22, 0x64, 0x0a, 0x25, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x05, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x22, 0x43, 0x6c, 0x65, 0x61, 0x72, + 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x22, + 0x37, 0x0a, 0x23, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x22, 0x8d, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x05, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x63, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xf9, 0x02, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x07, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x1a, 0xa6, 0x01, 0x0a, 0x06, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x1a, 0x23, 0x0a, 0x0d, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0xef, 0x01, + 0x0a, 0x11, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22, + 0xb3, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, + 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, + 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x65, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, + 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, + 0x22, 0xf8, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, + 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22, 0x73, 0x0a, 0x17, 0x41, + 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, + 0x22, 0x48, 0x0a, 0x18, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1a, + 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, 0x28, + 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x80, 0x01, 0x0a, + 0x10, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, + 0x3d, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x83, + 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, + 0x47, 0x55, 0x49, 0x44, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc3, + 0x01, 0x0a, 0x19, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x44, 0x22, 0x2e, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x22, 0x48, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x77, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x26, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x2a, 0x80, 0x04, 0x0a, 0x17, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, + 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, + 0x21, 0x0a, 0x1d, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, + 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, + 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x41, + 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, + 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x58, + 0x49, 0x53, 0x54, 0x53, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, + 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x05, 0x12, + 0x23, 0x0a, 0x1f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x55, + 0x4c, 0x4c, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, + 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, + 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x08, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x52, + 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4e, + 0x49, 0x45, 0x44, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, + 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, + 0x44, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x41, + 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, + 0x45, 0x44, 0x10, 0x0b, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, + 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x47, 0x4e, 0x4f, + 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x59, 0x4f, 0x55, 0x10, 0x0c, 0x32, 0xc2, 0x1c, 0x0a, 0x11, 0x43, + 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x6e, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, + 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x62, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, + 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, + 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x71, 0x0a, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, + 0x49, 0x44, 0x73, 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, + 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x1f, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, + 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x17, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x59, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x46, + 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x16, 0x44, 0x65, 0x63, 0x6c, + 0x69, 0x6e, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x62, + 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x54, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x13, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, + 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6e, 0x0a, 0x1b, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x26, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, + 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x53, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, + 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, + 0x09, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x52, 0x65, + 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, + 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, + 0x10, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x44, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, + 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, + 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x41, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x13, 0x5a, 0x11, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_characters_proto_rawDescOnce sync.Once + file_characters_proto_rawDescData = file_characters_proto_rawDesc +) + +func file_characters_proto_rawDescGZIP() []byte { + file_characters_proto_rawDescOnce.Do(func() { + file_characters_proto_rawDescData = protoimpl.X.CompressGZIP(file_characters_proto_rawDescData) + }) + return file_characters_proto_rawDescData +} + +var file_characters_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_characters_proto_msgTypes = make([]protoimpl.MessageInfo, 87) +var file_characters_proto_goTypes = []interface{}{ + (ArenaTeamMutationStatus)(0), // 0: v1.ArenaTeamMutationStatus + (ArenaTeamQueueDataForRatedArenaResponse_Status)(0), // 1: v1.ArenaTeamQueueDataForRatedArenaResponse.Status + (CreateArenaTeamFromPetitionResponse_Status)(0), // 2: v1.CreateArenaTeamFromPetitionResponse.Status + (GetArenaTeamResponse_Status)(0), // 3: v1.GetArenaTeamResponse.Status + (GetArenaTeamPetitionResponse_Status)(0), // 4: v1.GetArenaTeamPetitionResponse.Status + (*LogInCharacter)(nil), // 5: v1.LogInCharacter + (*EquipmentDisplay)(nil), // 6: v1.EquipmentDisplay + (*CharactersToLoginForAccountRequest)(nil), // 7: v1.CharactersToLoginForAccountRequest + (*CharactersToLoginForAccountResponse)(nil), // 8: v1.CharactersToLoginForAccountResponse + (*CharactersToLoginByGUIDRequest)(nil), // 9: v1.CharactersToLoginByGUIDRequest + (*CharactersToLoginByGUIDResponse)(nil), // 10: v1.CharactersToLoginByGUIDResponse + (*AccountDataForAccountRequest)(nil), // 11: v1.AccountDataForAccountRequest + (*AccountData)(nil), // 12: v1.AccountData + (*AccountDataForAccountResponse)(nil), // 13: v1.AccountDataForAccountResponse + (*UpdateAccountDataForAccountRequest)(nil), // 14: v1.UpdateAccountDataForAccountRequest + (*UpdateAccountDataForAccountResponse)(nil), // 15: v1.UpdateAccountDataForAccountResponse + (*WhoQueryRequest)(nil), // 16: v1.WhoQueryRequest + (*WhoQueryResponse)(nil), // 17: v1.WhoQueryResponse + (*CharacterOnlineByNameRequest)(nil), // 18: v1.CharacterOnlineByNameRequest + (*CharacterOnlineByNameResponse)(nil), // 19: v1.CharacterOnlineByNameResponse + (*CharacterByNameRequest)(nil), // 20: v1.CharacterByNameRequest + (*CharacterByNameResponse)(nil), // 21: v1.CharacterByNameResponse + (*CharacterByGUIDRequest)(nil), // 22: v1.CharacterByGUIDRequest + (*CharacterByGUIDResponse)(nil), // 23: v1.CharacterByGUIDResponse + (*ShortCharactersDataByGUIDsRequest)(nil), // 24: v1.ShortCharactersDataByGUIDsRequest + (*ShortCharactersDataByGUIDsResponse)(nil), // 25: v1.ShortCharactersDataByGUIDsResponse + (*ArenaTeamQueueDataForRatedArenaRequest)(nil), // 26: v1.ArenaTeamQueueDataForRatedArenaRequest + (*ArenaTeamQueueDataForRatedArenaResponse)(nil), // 27: v1.ArenaTeamQueueDataForRatedArenaResponse + (*CreateArenaTeamFromPetitionRequest)(nil), // 28: v1.CreateArenaTeamFromPetitionRequest + (*CreateArenaTeamFromPetitionResponse)(nil), // 29: v1.CreateArenaTeamFromPetitionResponse + (*ArenaTeamMemberData)(nil), // 30: v1.ArenaTeamMemberData + (*ArenaTeamData)(nil), // 31: v1.ArenaTeamData + (*GetArenaTeamRequest)(nil), // 32: v1.GetArenaTeamRequest + (*GetArenaTeamResponse)(nil), // 33: v1.GetArenaTeamResponse + (*ArenaTeamPetitionData)(nil), // 34: v1.ArenaTeamPetitionData + (*GetArenaTeamPetitionRequest)(nil), // 35: v1.GetArenaTeamPetitionRequest + (*GetArenaTeamPetitionResponse)(nil), // 36: v1.GetArenaTeamPetitionResponse + (*InviteArenaTeamMemberRequest)(nil), // 37: v1.InviteArenaTeamMemberRequest + (*InviteArenaTeamMemberResponse)(nil), // 38: v1.InviteArenaTeamMemberResponse + (*AcceptArenaTeamInviteRequest)(nil), // 39: v1.AcceptArenaTeamInviteRequest + (*AcceptArenaTeamInviteResponse)(nil), // 40: v1.AcceptArenaTeamInviteResponse + (*DeclineArenaTeamInviteRequest)(nil), // 41: v1.DeclineArenaTeamInviteRequest + (*AddArenaTeamMemberRequest)(nil), // 42: v1.AddArenaTeamMemberRequest + (*RemoveArenaTeamMemberRequest)(nil), // 43: v1.RemoveArenaTeamMemberRequest + (*DisbandArenaTeamRequest)(nil), // 44: v1.DisbandArenaTeamRequest + (*SetArenaTeamCaptainRequest)(nil), // 45: v1.SetArenaTeamCaptainRequest + (*SetArenaTeamNameRequest)(nil), // 46: v1.SetArenaTeamNameRequest + (*ArenaTeamStatsMember)(nil), // 47: v1.ArenaTeamStatsMember + (*SaveArenaTeamStatsRequest)(nil), // 48: v1.SaveArenaTeamStatsRequest + (*DeleteAllArenaTeamsRequest)(nil), // 49: v1.DeleteAllArenaTeamsRequest + (*ValidateArenaTeamCharacterDeleteRequest)(nil), // 50: v1.ValidateArenaTeamCharacterDeleteRequest + (*RemovePlayerFromArenaTeamsRequest)(nil), // 51: v1.RemovePlayerFromArenaTeamsRequest + (*ArenaTeamMutationResponse)(nil), // 52: v1.ArenaTeamMutationResponse + (*SavePlayerPositionRequest)(nil), // 53: v1.SavePlayerPositionRequest + (*SavePlayerPositionResponse)(nil), // 54: v1.SavePlayerPositionResponse + (*LfgDungeonRoute)(nil), // 55: v1.LfgDungeonRoute + (*RecordLfgDungeonRouteRequest)(nil), // 56: v1.RecordLfgDungeonRouteRequest + (*RecordLfgDungeonRouteResponse)(nil), // 57: v1.RecordLfgDungeonRouteResponse + (*ConfirmLfgDungeonRouteEnteredRequest)(nil), // 58: v1.ConfirmLfgDungeonRouteEnteredRequest + (*ConfirmLfgDungeonRouteEnteredResponse)(nil), // 59: v1.ConfirmLfgDungeonRouteEnteredResponse + (*ClearUnboundLfgDungeonRouteRequest)(nil), // 60: v1.ClearUnboundLfgDungeonRouteRequest + (*ClearUnboundLfgDungeonRouteResponse)(nil), // 61: v1.ClearUnboundLfgDungeonRouteResponse + (*GetLfgDungeonRouteRequest)(nil), // 62: v1.GetLfgDungeonRouteRequest + (*GetLfgDungeonRouteResponse)(nil), // 63: v1.GetLfgDungeonRouteResponse + (*GetFriendsListRequest)(nil), // 64: v1.GetFriendsListRequest + (*GetFriendsListResponse)(nil), // 65: v1.GetFriendsListResponse + (*AddFriendRequest)(nil), // 66: v1.AddFriendRequest + (*AddFriendResponse)(nil), // 67: v1.AddFriendResponse + (*AddRealIDFriendByEmailRequest)(nil), // 68: v1.AddRealIDFriendByEmailRequest + (*AddRealIDFriendByEmailResponse)(nil), // 69: v1.AddRealIDFriendByEmailResponse + (*AcceptRealIDFriendRequest)(nil), // 70: v1.AcceptRealIDFriendRequest + (*AcceptRealIDFriendResponse)(nil), // 71: v1.AcceptRealIDFriendResponse + (*AreRealIDFriendsRequest)(nil), // 72: v1.AreRealIDFriendsRequest + (*AreRealIDFriendsResponse)(nil), // 73: v1.AreRealIDFriendsResponse + (*RemoveFriendRequest)(nil), // 74: v1.RemoveFriendRequest + (*RemoveFriendResponse)(nil), // 75: v1.RemoveFriendResponse + (*SetFriendNoteRequest)(nil), // 76: v1.SetFriendNoteRequest + (*SetFriendNoteResponse)(nil), // 77: v1.SetFriendNoteResponse + (*AddIgnoreRequest)(nil), // 78: v1.AddIgnoreRequest + (*AddIgnoreResponse)(nil), // 79: v1.AddIgnoreResponse + (*RemoveIgnoreRequest)(nil), // 80: v1.RemoveIgnoreRequest + (*RemoveIgnoreResponse)(nil), // 81: v1.RemoveIgnoreResponse + (*NotifyStatusChangeRequest)(nil), // 82: v1.NotifyStatusChangeRequest + (*NotifyStatusChangeResponse)(nil), // 83: v1.NotifyStatusChangeResponse + (*GetOnlineCharactersRequest)(nil), // 84: v1.GetOnlineCharactersRequest + (*GetOnlineCharactersResponse)(nil), // 85: v1.GetOnlineCharactersResponse + (*WhoQueryResponse_WhoItem)(nil), // 86: v1.WhoQueryResponse.WhoItem + (*CharacterOnlineByNameResponse_Char)(nil), // 87: v1.CharacterOnlineByNameResponse.Char + (*CharacterByNameResponse_Char)(nil), // 88: v1.CharacterByNameResponse.Char + (*ShortCharactersDataByGUIDsResponse_ShortCharData)(nil), // 89: v1.ShortCharactersDataByGUIDsResponse.ShortCharData + (*GetFriendsListResponse_Friend)(nil), // 90: v1.GetFriendsListResponse.Friend + (*GetFriendsListResponse_IgnoredPlayer)(nil), // 91: v1.GetFriendsListResponse.IgnoredPlayer +} +var file_characters_proto_depIdxs = []int32{ + 6, // 0: v1.LogInCharacter.equipments:type_name -> v1.EquipmentDisplay + 5, // 1: v1.CharactersToLoginForAccountResponse.characters:type_name -> v1.LogInCharacter + 5, // 2: v1.CharactersToLoginByGUIDResponse.character:type_name -> v1.LogInCharacter + 12, // 3: v1.AccountDataForAccountResponse.accountData:type_name -> v1.AccountData + 86, // 4: v1.WhoQueryResponse.itemsToDisplay:type_name -> v1.WhoQueryResponse.WhoItem + 87, // 5: v1.CharacterOnlineByNameResponse.character:type_name -> v1.CharacterOnlineByNameResponse.Char + 88, // 6: v1.CharacterByNameResponse.character:type_name -> v1.CharacterByNameResponse.Char + 88, // 7: v1.CharacterByGUIDResponse.character:type_name -> v1.CharacterByNameResponse.Char + 89, // 8: v1.ShortCharactersDataByGUIDsResponse.characters:type_name -> v1.ShortCharactersDataByGUIDsResponse.ShortCharData + 1, // 9: v1.ArenaTeamQueueDataForRatedArenaResponse.status:type_name -> v1.ArenaTeamQueueDataForRatedArenaResponse.Status + 2, // 10: v1.CreateArenaTeamFromPetitionResponse.status:type_name -> v1.CreateArenaTeamFromPetitionResponse.Status + 30, // 11: v1.ArenaTeamData.members:type_name -> v1.ArenaTeamMemberData + 3, // 12: v1.GetArenaTeamResponse.status:type_name -> v1.GetArenaTeamResponse.Status + 31, // 13: v1.GetArenaTeamResponse.team:type_name -> v1.ArenaTeamData + 4, // 14: v1.GetArenaTeamPetitionResponse.status:type_name -> v1.GetArenaTeamPetitionResponse.Status + 34, // 15: v1.GetArenaTeamPetitionResponse.petition:type_name -> v1.ArenaTeamPetitionData + 0, // 16: v1.InviteArenaTeamMemberResponse.status:type_name -> v1.ArenaTeamMutationStatus + 31, // 17: v1.InviteArenaTeamMemberResponse.team:type_name -> v1.ArenaTeamData + 0, // 18: v1.AcceptArenaTeamInviteResponse.status:type_name -> v1.ArenaTeamMutationStatus + 31, // 19: v1.AcceptArenaTeamInviteResponse.team:type_name -> v1.ArenaTeamData + 47, // 20: v1.SaveArenaTeamStatsRequest.members:type_name -> v1.ArenaTeamStatsMember + 0, // 21: v1.ArenaTeamMutationResponse.status:type_name -> v1.ArenaTeamMutationStatus + 55, // 22: v1.RecordLfgDungeonRouteRequest.route:type_name -> v1.LfgDungeonRoute + 55, // 23: v1.ConfirmLfgDungeonRouteEnteredResponse.route:type_name -> v1.LfgDungeonRoute + 55, // 24: v1.GetLfgDungeonRouteResponse.route:type_name -> v1.LfgDungeonRoute + 90, // 25: v1.GetFriendsListResponse.friends:type_name -> v1.GetFriendsListResponse.Friend + 91, // 26: v1.GetFriendsListResponse.ignored:type_name -> v1.GetFriendsListResponse.IgnoredPlayer + 7, // 27: v1.CharactersService.CharactersToLoginForAccount:input_type -> v1.CharactersToLoginForAccountRequest + 9, // 28: v1.CharactersService.CharactersToLoginByGUID:input_type -> v1.CharactersToLoginByGUIDRequest + 11, // 29: v1.CharactersService.AccountDataForAccount:input_type -> v1.AccountDataForAccountRequest + 14, // 30: v1.CharactersService.UpdateAccountDataForAccount:input_type -> v1.UpdateAccountDataForAccountRequest + 16, // 31: v1.CharactersService.WhoQuery:input_type -> v1.WhoQueryRequest + 18, // 32: v1.CharactersService.CharacterOnlineByName:input_type -> v1.CharacterOnlineByNameRequest + 20, // 33: v1.CharactersService.CharacterByName:input_type -> v1.CharacterByNameRequest + 22, // 34: v1.CharactersService.CharacterByGUID:input_type -> v1.CharacterByGUIDRequest + 24, // 35: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:input_type -> v1.ShortCharactersDataByGUIDsRequest + 26, // 36: v1.CharactersService.ArenaTeamQueueDataForRatedArena:input_type -> v1.ArenaTeamQueueDataForRatedArenaRequest + 32, // 37: v1.CharactersService.GetArenaTeam:input_type -> v1.GetArenaTeamRequest + 35, // 38: v1.CharactersService.GetArenaTeamPetition:input_type -> v1.GetArenaTeamPetitionRequest + 28, // 39: v1.CharactersService.CreateArenaTeamFromPetition:input_type -> v1.CreateArenaTeamFromPetitionRequest + 37, // 40: v1.CharactersService.InviteArenaTeamMember:input_type -> v1.InviteArenaTeamMemberRequest + 39, // 41: v1.CharactersService.AcceptArenaTeamInvite:input_type -> v1.AcceptArenaTeamInviteRequest + 41, // 42: v1.CharactersService.DeclineArenaTeamInvite:input_type -> v1.DeclineArenaTeamInviteRequest + 42, // 43: v1.CharactersService.AddArenaTeamMember:input_type -> v1.AddArenaTeamMemberRequest + 43, // 44: v1.CharactersService.RemoveArenaTeamMember:input_type -> v1.RemoveArenaTeamMemberRequest + 44, // 45: v1.CharactersService.DisbandArenaTeam:input_type -> v1.DisbandArenaTeamRequest + 45, // 46: v1.CharactersService.SetArenaTeamCaptain:input_type -> v1.SetArenaTeamCaptainRequest + 46, // 47: v1.CharactersService.SetArenaTeamName:input_type -> v1.SetArenaTeamNameRequest + 48, // 48: v1.CharactersService.SaveArenaTeamStats:input_type -> v1.SaveArenaTeamStatsRequest + 49, // 49: v1.CharactersService.DeleteAllArenaTeams:input_type -> v1.DeleteAllArenaTeamsRequest + 50, // 50: v1.CharactersService.ValidateArenaTeamCharacterDelete:input_type -> v1.ValidateArenaTeamCharacterDeleteRequest + 51, // 51: v1.CharactersService.RemovePlayerFromArenaTeams:input_type -> v1.RemovePlayerFromArenaTeamsRequest + 53, // 52: v1.CharactersService.SavePlayerPosition:input_type -> v1.SavePlayerPositionRequest + 56, // 53: v1.CharactersService.RecordLfgDungeonRoute:input_type -> v1.RecordLfgDungeonRouteRequest + 58, // 54: v1.CharactersService.ConfirmLfgDungeonRouteEntered:input_type -> v1.ConfirmLfgDungeonRouteEnteredRequest + 60, // 55: v1.CharactersService.ClearUnboundLfgDungeonRoute:input_type -> v1.ClearUnboundLfgDungeonRouteRequest + 62, // 56: v1.CharactersService.GetLfgDungeonRoute:input_type -> v1.GetLfgDungeonRouteRequest + 64, // 57: v1.CharactersService.GetFriendsList:input_type -> v1.GetFriendsListRequest + 66, // 58: v1.CharactersService.AddFriend:input_type -> v1.AddFriendRequest + 68, // 59: v1.CharactersService.AddRealIDFriendByEmail:input_type -> v1.AddRealIDFriendByEmailRequest + 70, // 60: v1.CharactersService.AcceptRealIDFriend:input_type -> v1.AcceptRealIDFriendRequest + 72, // 61: v1.CharactersService.AreRealIDFriends:input_type -> v1.AreRealIDFriendsRequest + 74, // 62: v1.CharactersService.RemoveFriend:input_type -> v1.RemoveFriendRequest + 76, // 63: v1.CharactersService.SetFriendNote:input_type -> v1.SetFriendNoteRequest + 78, // 64: v1.CharactersService.AddIgnore:input_type -> v1.AddIgnoreRequest + 80, // 65: v1.CharactersService.RemoveIgnore:input_type -> v1.RemoveIgnoreRequest + 82, // 66: v1.CharactersService.NotifyStatusChange:input_type -> v1.NotifyStatusChangeRequest + 84, // 67: v1.CharactersService.GetOnlineCharacters:input_type -> v1.GetOnlineCharactersRequest + 8, // 68: v1.CharactersService.CharactersToLoginForAccount:output_type -> v1.CharactersToLoginForAccountResponse + 10, // 69: v1.CharactersService.CharactersToLoginByGUID:output_type -> v1.CharactersToLoginByGUIDResponse + 13, // 70: v1.CharactersService.AccountDataForAccount:output_type -> v1.AccountDataForAccountResponse + 15, // 71: v1.CharactersService.UpdateAccountDataForAccount:output_type -> v1.UpdateAccountDataForAccountResponse + 17, // 72: v1.CharactersService.WhoQuery:output_type -> v1.WhoQueryResponse + 19, // 73: v1.CharactersService.CharacterOnlineByName:output_type -> v1.CharacterOnlineByNameResponse + 21, // 74: v1.CharactersService.CharacterByName:output_type -> v1.CharacterByNameResponse + 23, // 75: v1.CharactersService.CharacterByGUID:output_type -> v1.CharacterByGUIDResponse + 25, // 76: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:output_type -> v1.ShortCharactersDataByGUIDsResponse + 27, // 77: v1.CharactersService.ArenaTeamQueueDataForRatedArena:output_type -> v1.ArenaTeamQueueDataForRatedArenaResponse + 33, // 78: v1.CharactersService.GetArenaTeam:output_type -> v1.GetArenaTeamResponse + 36, // 79: v1.CharactersService.GetArenaTeamPetition:output_type -> v1.GetArenaTeamPetitionResponse + 29, // 80: v1.CharactersService.CreateArenaTeamFromPetition:output_type -> v1.CreateArenaTeamFromPetitionResponse + 38, // 81: v1.CharactersService.InviteArenaTeamMember:output_type -> v1.InviteArenaTeamMemberResponse + 40, // 82: v1.CharactersService.AcceptArenaTeamInvite:output_type -> v1.AcceptArenaTeamInviteResponse + 52, // 83: v1.CharactersService.DeclineArenaTeamInvite:output_type -> v1.ArenaTeamMutationResponse + 52, // 84: v1.CharactersService.AddArenaTeamMember:output_type -> v1.ArenaTeamMutationResponse + 52, // 85: v1.CharactersService.RemoveArenaTeamMember:output_type -> v1.ArenaTeamMutationResponse + 52, // 86: v1.CharactersService.DisbandArenaTeam:output_type -> v1.ArenaTeamMutationResponse + 52, // 87: v1.CharactersService.SetArenaTeamCaptain:output_type -> v1.ArenaTeamMutationResponse + 52, // 88: v1.CharactersService.SetArenaTeamName:output_type -> v1.ArenaTeamMutationResponse + 52, // 89: v1.CharactersService.SaveArenaTeamStats:output_type -> v1.ArenaTeamMutationResponse + 52, // 90: v1.CharactersService.DeleteAllArenaTeams:output_type -> v1.ArenaTeamMutationResponse + 52, // 91: v1.CharactersService.ValidateArenaTeamCharacterDelete:output_type -> v1.ArenaTeamMutationResponse + 52, // 92: v1.CharactersService.RemovePlayerFromArenaTeams:output_type -> v1.ArenaTeamMutationResponse + 54, // 93: v1.CharactersService.SavePlayerPosition:output_type -> v1.SavePlayerPositionResponse + 57, // 94: v1.CharactersService.RecordLfgDungeonRoute:output_type -> v1.RecordLfgDungeonRouteResponse + 59, // 95: v1.CharactersService.ConfirmLfgDungeonRouteEntered:output_type -> v1.ConfirmLfgDungeonRouteEnteredResponse + 61, // 96: v1.CharactersService.ClearUnboundLfgDungeonRoute:output_type -> v1.ClearUnboundLfgDungeonRouteResponse + 63, // 97: v1.CharactersService.GetLfgDungeonRoute:output_type -> v1.GetLfgDungeonRouteResponse + 65, // 98: v1.CharactersService.GetFriendsList:output_type -> v1.GetFriendsListResponse + 67, // 99: v1.CharactersService.AddFriend:output_type -> v1.AddFriendResponse + 69, // 100: v1.CharactersService.AddRealIDFriendByEmail:output_type -> v1.AddRealIDFriendByEmailResponse + 71, // 101: v1.CharactersService.AcceptRealIDFriend:output_type -> v1.AcceptRealIDFriendResponse + 73, // 102: v1.CharactersService.AreRealIDFriends:output_type -> v1.AreRealIDFriendsResponse + 75, // 103: v1.CharactersService.RemoveFriend:output_type -> v1.RemoveFriendResponse + 77, // 104: v1.CharactersService.SetFriendNote:output_type -> v1.SetFriendNoteResponse + 79, // 105: v1.CharactersService.AddIgnore:output_type -> v1.AddIgnoreResponse + 81, // 106: v1.CharactersService.RemoveIgnore:output_type -> v1.RemoveIgnoreResponse + 83, // 107: v1.CharactersService.NotifyStatusChange:output_type -> v1.NotifyStatusChangeResponse + 85, // 108: v1.CharactersService.GetOnlineCharacters:output_type -> v1.GetOnlineCharactersResponse + 68, // [68:109] is the sub-list for method output_type + 27, // [27:68] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name +} + +func init() { file_characters_proto_init() } +func file_characters_proto_init() { + if File_characters_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_characters_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogInCharacter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EquipmentDisplay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginForAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginForAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginByGUIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginByGUIDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountDataForAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountDataForAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAccountDataForAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAccountDataForAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WhoQueryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WhoQueryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterOnlineByNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterOnlineByNameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByNameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByGUIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByGUIDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShortCharactersDataByGUIDsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShortCharactersDataByGUIDsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamQueueDataForRatedArenaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamQueueDataForRatedArenaResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateArenaTeamFromPetitionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateArenaTeamFromPetitionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamMemberData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamResponse); i { case 0: return &v.state case 1: @@ -3746,8 +8922,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EquipmentDisplay); i { + file_characters_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamPetitionData); i { case 0: return &v.state case 1: @@ -3758,8 +8934,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginForAccountRequest); i { + file_characters_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamPetitionRequest); i { case 0: return &v.state case 1: @@ -3770,8 +8946,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginForAccountResponse); i { + file_characters_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamPetitionResponse); i { case 0: return &v.state case 1: @@ -3782,8 +8958,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginByGUIDRequest); i { + file_characters_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteArenaTeamMemberRequest); i { case 0: return &v.state case 1: @@ -3794,8 +8970,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginByGUIDResponse); i { + file_characters_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteArenaTeamMemberResponse); i { case 0: return &v.state case 1: @@ -3806,8 +8982,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountDataForAccountRequest); i { + file_characters_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptArenaTeamInviteRequest); i { case 0: return &v.state case 1: @@ -3818,8 +8994,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountData); i { + file_characters_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptArenaTeamInviteResponse); i { case 0: return &v.state case 1: @@ -3830,8 +9006,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountDataForAccountResponse); i { + file_characters_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclineArenaTeamInviteRequest); i { case 0: return &v.state case 1: @@ -3842,8 +9018,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WhoQueryRequest); i { + file_characters_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArenaTeamMemberRequest); i { case 0: return &v.state case 1: @@ -3854,8 +9030,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WhoQueryResponse); i { + file_characters_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveArenaTeamMemberRequest); i { case 0: return &v.state case 1: @@ -3866,8 +9042,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterOnlineByNameRequest); i { + file_characters_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisbandArenaTeamRequest); i { case 0: return &v.state case 1: @@ -3878,8 +9054,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterOnlineByNameResponse); i { + file_characters_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetArenaTeamCaptainRequest); i { case 0: return &v.state case 1: @@ -3890,8 +9066,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterByNameRequest); i { + file_characters_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetArenaTeamNameRequest); i { case 0: return &v.state case 1: @@ -3902,8 +9078,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterByNameResponse); i { + file_characters_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamStatsMember); i { case 0: return &v.state case 1: @@ -3914,8 +9090,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShortCharactersDataByGUIDsRequest); i { + file_characters_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SaveArenaTeamStatsRequest); i { case 0: return &v.state case 1: @@ -3926,8 +9102,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShortCharactersDataByGUIDsResponse); i { + file_characters_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAllArenaTeamsRequest); i { case 0: return &v.state case 1: @@ -3938,7 +9114,43 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateArenaTeamCharacterDeleteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemovePlayerFromArenaTeamsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamMutationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SavePlayerPositionRequest); i { case 0: return &v.state @@ -3950,7 +9162,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SavePlayerPositionResponse); i { case 0: return &v.state @@ -3962,7 +9174,115 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgDungeonRoute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecordLfgDungeonRouteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecordLfgDungeonRouteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfirmLfgDungeonRouteEnteredRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfirmLfgDungeonRouteEnteredResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClearUnboundLfgDungeonRouteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClearUnboundLfgDungeonRouteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonRouteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonRouteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListRequest); i { case 0: return &v.state @@ -3974,7 +9294,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListResponse); i { case 0: return &v.state @@ -3986,7 +9306,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFriendRequest); i { case 0: return &v.state @@ -3998,7 +9318,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFriendResponse); i { case 0: return &v.state @@ -4010,7 +9330,79 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRealIDFriendByEmailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRealIDFriendByEmailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptRealIDFriendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptRealIDFriendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AreRealIDFriendsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AreRealIDFriendsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveFriendRequest); i { case 0: return &v.state @@ -4022,7 +9414,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveFriendResponse); i { case 0: return &v.state @@ -4034,7 +9426,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetFriendNoteRequest); i { case 0: return &v.state @@ -4046,7 +9438,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetFriendNoteResponse); i { case 0: return &v.state @@ -4058,7 +9450,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddIgnoreRequest); i { case 0: return &v.state @@ -4070,7 +9462,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddIgnoreResponse); i { case 0: return &v.state @@ -4082,7 +9474,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveIgnoreRequest); i { case 0: return &v.state @@ -4094,7 +9486,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveIgnoreResponse); i { case 0: return &v.state @@ -4106,7 +9498,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyStatusChangeRequest); i { case 0: return &v.state @@ -4118,7 +9510,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyStatusChangeResponse); i { case 0: return &v.state @@ -4130,7 +9522,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOnlineCharactersRequest); i { case 0: return &v.state @@ -4142,7 +9534,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOnlineCharactersResponse); i { case 0: return &v.state @@ -4154,7 +9546,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WhoQueryResponse_WhoItem); i { case 0: return &v.state @@ -4166,7 +9558,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CharacterOnlineByNameResponse_Char); i { case 0: return &v.state @@ -4178,7 +9570,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CharacterByNameResponse_Char); i { case 0: return &v.state @@ -4190,7 +9582,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShortCharactersDataByGUIDsResponse_ShortCharData); i { case 0: return &v.state @@ -4202,7 +9594,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListResponse_Friend); i { case 0: return &v.state @@ -4214,7 +9606,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListResponse_IgnoredPlayer); i { case 0: return &v.state @@ -4232,13 +9624,14 @@ func file_characters_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_characters_proto_rawDesc, - NumEnums: 0, - NumMessages: 41, + NumEnums: 5, + NumMessages: 87, NumExtensions: 0, NumServices: 1, }, GoTypes: file_characters_proto_goTypes, DependencyIndexes: file_characters_proto_depIdxs, + EnumInfos: file_characters_proto_enumTypes, MessageInfos: file_characters_proto_msgTypes, }.Build() File_characters_proto = out.File diff --git a/gen/characters/pb/characters_grpc.pb.go b/gen/characters/pb/characters_grpc.pb.go index a70982b..94efda8 100644 --- a/gen/characters/pb/characters_grpc.pb.go +++ b/gen/characters/pb/characters_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: characters.proto package pb @@ -22,13 +22,38 @@ const ( CharactersService_CharactersToLoginForAccount_FullMethodName = "/v1.CharactersService/CharactersToLoginForAccount" CharactersService_CharactersToLoginByGUID_FullMethodName = "/v1.CharactersService/CharactersToLoginByGUID" CharactersService_AccountDataForAccount_FullMethodName = "/v1.CharactersService/AccountDataForAccount" + CharactersService_UpdateAccountDataForAccount_FullMethodName = "/v1.CharactersService/UpdateAccountDataForAccount" CharactersService_WhoQuery_FullMethodName = "/v1.CharactersService/WhoQuery" CharactersService_CharacterOnlineByName_FullMethodName = "/v1.CharactersService/CharacterOnlineByName" CharactersService_CharacterByName_FullMethodName = "/v1.CharactersService/CharacterByName" + CharactersService_CharacterByGUID_FullMethodName = "/v1.CharactersService/CharacterByGUID" CharactersService_ShortOnlineCharactersDataByGUIDs_FullMethodName = "/v1.CharactersService/ShortOnlineCharactersDataByGUIDs" + CharactersService_ArenaTeamQueueDataForRatedArena_FullMethodName = "/v1.CharactersService/ArenaTeamQueueDataForRatedArena" + CharactersService_GetArenaTeam_FullMethodName = "/v1.CharactersService/GetArenaTeam" + CharactersService_GetArenaTeamPetition_FullMethodName = "/v1.CharactersService/GetArenaTeamPetition" + CharactersService_CreateArenaTeamFromPetition_FullMethodName = "/v1.CharactersService/CreateArenaTeamFromPetition" + CharactersService_InviteArenaTeamMember_FullMethodName = "/v1.CharactersService/InviteArenaTeamMember" + CharactersService_AcceptArenaTeamInvite_FullMethodName = "/v1.CharactersService/AcceptArenaTeamInvite" + CharactersService_DeclineArenaTeamInvite_FullMethodName = "/v1.CharactersService/DeclineArenaTeamInvite" + CharactersService_AddArenaTeamMember_FullMethodName = "/v1.CharactersService/AddArenaTeamMember" + CharactersService_RemoveArenaTeamMember_FullMethodName = "/v1.CharactersService/RemoveArenaTeamMember" + CharactersService_DisbandArenaTeam_FullMethodName = "/v1.CharactersService/DisbandArenaTeam" + CharactersService_SetArenaTeamCaptain_FullMethodName = "/v1.CharactersService/SetArenaTeamCaptain" + CharactersService_SetArenaTeamName_FullMethodName = "/v1.CharactersService/SetArenaTeamName" + CharactersService_SaveArenaTeamStats_FullMethodName = "/v1.CharactersService/SaveArenaTeamStats" + CharactersService_DeleteAllArenaTeams_FullMethodName = "/v1.CharactersService/DeleteAllArenaTeams" + CharactersService_ValidateArenaTeamCharacterDelete_FullMethodName = "/v1.CharactersService/ValidateArenaTeamCharacterDelete" + CharactersService_RemovePlayerFromArenaTeams_FullMethodName = "/v1.CharactersService/RemovePlayerFromArenaTeams" CharactersService_SavePlayerPosition_FullMethodName = "/v1.CharactersService/SavePlayerPosition" + CharactersService_RecordLfgDungeonRoute_FullMethodName = "/v1.CharactersService/RecordLfgDungeonRoute" + CharactersService_ConfirmLfgDungeonRouteEntered_FullMethodName = "/v1.CharactersService/ConfirmLfgDungeonRouteEntered" + CharactersService_ClearUnboundLfgDungeonRoute_FullMethodName = "/v1.CharactersService/ClearUnboundLfgDungeonRoute" + CharactersService_GetLfgDungeonRoute_FullMethodName = "/v1.CharactersService/GetLfgDungeonRoute" CharactersService_GetFriendsList_FullMethodName = "/v1.CharactersService/GetFriendsList" CharactersService_AddFriend_FullMethodName = "/v1.CharactersService/AddFriend" + CharactersService_AddRealIDFriendByEmail_FullMethodName = "/v1.CharactersService/AddRealIDFriendByEmail" + CharactersService_AcceptRealIDFriend_FullMethodName = "/v1.CharactersService/AcceptRealIDFriend" + CharactersService_AreRealIDFriends_FullMethodName = "/v1.CharactersService/AreRealIDFriends" CharactersService_RemoveFriend_FullMethodName = "/v1.CharactersService/RemoveFriend" CharactersService_SetFriendNote_FullMethodName = "/v1.CharactersService/SetFriendNote" CharactersService_AddIgnore_FullMethodName = "/v1.CharactersService/AddIgnore" @@ -44,15 +69,40 @@ type CharactersServiceClient interface { CharactersToLoginForAccount(ctx context.Context, in *CharactersToLoginForAccountRequest, opts ...grpc.CallOption) (*CharactersToLoginForAccountResponse, error) CharactersToLoginByGUID(ctx context.Context, in *CharactersToLoginByGUIDRequest, opts ...grpc.CallOption) (*CharactersToLoginByGUIDResponse, error) AccountDataForAccount(ctx context.Context, in *AccountDataForAccountRequest, opts ...grpc.CallOption) (*AccountDataForAccountResponse, error) + UpdateAccountDataForAccount(ctx context.Context, in *UpdateAccountDataForAccountRequest, opts ...grpc.CallOption) (*UpdateAccountDataForAccountResponse, error) WhoQuery(ctx context.Context, in *WhoQueryRequest, opts ...grpc.CallOption) (*WhoQueryResponse, error) CharacterOnlineByName(ctx context.Context, in *CharacterOnlineByNameRequest, opts ...grpc.CallOption) (*CharacterOnlineByNameResponse, error) CharacterByName(ctx context.Context, in *CharacterByNameRequest, opts ...grpc.CallOption) (*CharacterByNameResponse, error) + CharacterByGUID(ctx context.Context, in *CharacterByGUIDRequest, opts ...grpc.CallOption) (*CharacterByGUIDResponse, error) ShortOnlineCharactersDataByGUIDs(ctx context.Context, in *ShortCharactersDataByGUIDsRequest, opts ...grpc.CallOption) (*ShortCharactersDataByGUIDsResponse, error) + ArenaTeamQueueDataForRatedArena(ctx context.Context, in *ArenaTeamQueueDataForRatedArenaRequest, opts ...grpc.CallOption) (*ArenaTeamQueueDataForRatedArenaResponse, error) + GetArenaTeam(ctx context.Context, in *GetArenaTeamRequest, opts ...grpc.CallOption) (*GetArenaTeamResponse, error) + GetArenaTeamPetition(ctx context.Context, in *GetArenaTeamPetitionRequest, opts ...grpc.CallOption) (*GetArenaTeamPetitionResponse, error) + CreateArenaTeamFromPetition(ctx context.Context, in *CreateArenaTeamFromPetitionRequest, opts ...grpc.CallOption) (*CreateArenaTeamFromPetitionResponse, error) + InviteArenaTeamMember(ctx context.Context, in *InviteArenaTeamMemberRequest, opts ...grpc.CallOption) (*InviteArenaTeamMemberResponse, error) + AcceptArenaTeamInvite(ctx context.Context, in *AcceptArenaTeamInviteRequest, opts ...grpc.CallOption) (*AcceptArenaTeamInviteResponse, error) + DeclineArenaTeamInvite(ctx context.Context, in *DeclineArenaTeamInviteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + AddArenaTeamMember(ctx context.Context, in *AddArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + RemoveArenaTeamMember(ctx context.Context, in *RemoveArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + DisbandArenaTeam(ctx context.Context, in *DisbandArenaTeamRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + SetArenaTeamCaptain(ctx context.Context, in *SetArenaTeamCaptainRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + SetArenaTeamName(ctx context.Context, in *SetArenaTeamNameRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + SaveArenaTeamStats(ctx context.Context, in *SaveArenaTeamStatsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + DeleteAllArenaTeams(ctx context.Context, in *DeleteAllArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + ValidateArenaTeamCharacterDelete(ctx context.Context, in *ValidateArenaTeamCharacterDeleteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + RemovePlayerFromArenaTeams(ctx context.Context, in *RemovePlayerFromArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) // Would effect only offline player. SavePlayerPosition(ctx context.Context, in *SavePlayerPositionRequest, opts ...grpc.CallOption) (*SavePlayerPositionResponse, error) + RecordLfgDungeonRoute(ctx context.Context, in *RecordLfgDungeonRouteRequest, opts ...grpc.CallOption) (*RecordLfgDungeonRouteResponse, error) + ConfirmLfgDungeonRouteEntered(ctx context.Context, in *ConfirmLfgDungeonRouteEnteredRequest, opts ...grpc.CallOption) (*ConfirmLfgDungeonRouteEnteredResponse, error) + ClearUnboundLfgDungeonRoute(ctx context.Context, in *ClearUnboundLfgDungeonRouteRequest, opts ...grpc.CallOption) (*ClearUnboundLfgDungeonRouteResponse, error) + GetLfgDungeonRoute(ctx context.Context, in *GetLfgDungeonRouteRequest, opts ...grpc.CallOption) (*GetLfgDungeonRouteResponse, error) // Friends and ignore list management GetFriendsList(ctx context.Context, in *GetFriendsListRequest, opts ...grpc.CallOption) (*GetFriendsListResponse, error) AddFriend(ctx context.Context, in *AddFriendRequest, opts ...grpc.CallOption) (*AddFriendResponse, error) + AddRealIDFriendByEmail(ctx context.Context, in *AddRealIDFriendByEmailRequest, opts ...grpc.CallOption) (*AddRealIDFriendByEmailResponse, error) + AcceptRealIDFriend(ctx context.Context, in *AcceptRealIDFriendRequest, opts ...grpc.CallOption) (*AcceptRealIDFriendResponse, error) + AreRealIDFriends(ctx context.Context, in *AreRealIDFriendsRequest, opts ...grpc.CallOption) (*AreRealIDFriendsResponse, error) RemoveFriend(ctx context.Context, in *RemoveFriendRequest, opts ...grpc.CallOption) (*RemoveFriendResponse, error) SetFriendNote(ctx context.Context, in *SetFriendNoteRequest, opts ...grpc.CallOption) (*SetFriendNoteResponse, error) AddIgnore(ctx context.Context, in *AddIgnoreRequest, opts ...grpc.CallOption) (*AddIgnoreResponse, error) @@ -97,6 +147,15 @@ func (c *charactersServiceClient) AccountDataForAccount(ctx context.Context, in return out, nil } +func (c *charactersServiceClient) UpdateAccountDataForAccount(ctx context.Context, in *UpdateAccountDataForAccountRequest, opts ...grpc.CallOption) (*UpdateAccountDataForAccountResponse, error) { + out := new(UpdateAccountDataForAccountResponse) + err := c.cc.Invoke(ctx, CharactersService_UpdateAccountDataForAccount_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) WhoQuery(ctx context.Context, in *WhoQueryRequest, opts ...grpc.CallOption) (*WhoQueryResponse, error) { out := new(WhoQueryResponse) err := c.cc.Invoke(ctx, CharactersService_WhoQuery_FullMethodName, in, out, opts...) @@ -124,6 +183,15 @@ func (c *charactersServiceClient) CharacterByName(ctx context.Context, in *Chara return out, nil } +func (c *charactersServiceClient) CharacterByGUID(ctx context.Context, in *CharacterByGUIDRequest, opts ...grpc.CallOption) (*CharacterByGUIDResponse, error) { + out := new(CharacterByGUIDResponse) + err := c.cc.Invoke(ctx, CharactersService_CharacterByGUID_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) ShortOnlineCharactersDataByGUIDs(ctx context.Context, in *ShortCharactersDataByGUIDsRequest, opts ...grpc.CallOption) (*ShortCharactersDataByGUIDsResponse, error) { out := new(ShortCharactersDataByGUIDsResponse) err := c.cc.Invoke(ctx, CharactersService_ShortOnlineCharactersDataByGUIDs_FullMethodName, in, out, opts...) @@ -133,6 +201,150 @@ func (c *charactersServiceClient) ShortOnlineCharactersDataByGUIDs(ctx context.C return out, nil } +func (c *charactersServiceClient) ArenaTeamQueueDataForRatedArena(ctx context.Context, in *ArenaTeamQueueDataForRatedArenaRequest, opts ...grpc.CallOption) (*ArenaTeamQueueDataForRatedArenaResponse, error) { + out := new(ArenaTeamQueueDataForRatedArenaResponse) + err := c.cc.Invoke(ctx, CharactersService_ArenaTeamQueueDataForRatedArena_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) GetArenaTeam(ctx context.Context, in *GetArenaTeamRequest, opts ...grpc.CallOption) (*GetArenaTeamResponse, error) { + out := new(GetArenaTeamResponse) + err := c.cc.Invoke(ctx, CharactersService_GetArenaTeam_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) GetArenaTeamPetition(ctx context.Context, in *GetArenaTeamPetitionRequest, opts ...grpc.CallOption) (*GetArenaTeamPetitionResponse, error) { + out := new(GetArenaTeamPetitionResponse) + err := c.cc.Invoke(ctx, CharactersService_GetArenaTeamPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) CreateArenaTeamFromPetition(ctx context.Context, in *CreateArenaTeamFromPetitionRequest, opts ...grpc.CallOption) (*CreateArenaTeamFromPetitionResponse, error) { + out := new(CreateArenaTeamFromPetitionResponse) + err := c.cc.Invoke(ctx, CharactersService_CreateArenaTeamFromPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) InviteArenaTeamMember(ctx context.Context, in *InviteArenaTeamMemberRequest, opts ...grpc.CallOption) (*InviteArenaTeamMemberResponse, error) { + out := new(InviteArenaTeamMemberResponse) + err := c.cc.Invoke(ctx, CharactersService_InviteArenaTeamMember_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AcceptArenaTeamInvite(ctx context.Context, in *AcceptArenaTeamInviteRequest, opts ...grpc.CallOption) (*AcceptArenaTeamInviteResponse, error) { + out := new(AcceptArenaTeamInviteResponse) + err := c.cc.Invoke(ctx, CharactersService_AcceptArenaTeamInvite_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) DeclineArenaTeamInvite(ctx context.Context, in *DeclineArenaTeamInviteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_DeclineArenaTeamInvite_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AddArenaTeamMember(ctx context.Context, in *AddArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_AddArenaTeamMember_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) RemoveArenaTeamMember(ctx context.Context, in *RemoveArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_RemoveArenaTeamMember_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) DisbandArenaTeam(ctx context.Context, in *DisbandArenaTeamRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_DisbandArenaTeam_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) SetArenaTeamCaptain(ctx context.Context, in *SetArenaTeamCaptainRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_SetArenaTeamCaptain_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) SetArenaTeamName(ctx context.Context, in *SetArenaTeamNameRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_SetArenaTeamName_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) SaveArenaTeamStats(ctx context.Context, in *SaveArenaTeamStatsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_SaveArenaTeamStats_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) DeleteAllArenaTeams(ctx context.Context, in *DeleteAllArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_DeleteAllArenaTeams_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) ValidateArenaTeamCharacterDelete(ctx context.Context, in *ValidateArenaTeamCharacterDeleteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_ValidateArenaTeamCharacterDelete_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) RemovePlayerFromArenaTeams(ctx context.Context, in *RemovePlayerFromArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_RemovePlayerFromArenaTeams_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) SavePlayerPosition(ctx context.Context, in *SavePlayerPositionRequest, opts ...grpc.CallOption) (*SavePlayerPositionResponse, error) { out := new(SavePlayerPositionResponse) err := c.cc.Invoke(ctx, CharactersService_SavePlayerPosition_FullMethodName, in, out, opts...) @@ -142,6 +354,42 @@ func (c *charactersServiceClient) SavePlayerPosition(ctx context.Context, in *Sa return out, nil } +func (c *charactersServiceClient) RecordLfgDungeonRoute(ctx context.Context, in *RecordLfgDungeonRouteRequest, opts ...grpc.CallOption) (*RecordLfgDungeonRouteResponse, error) { + out := new(RecordLfgDungeonRouteResponse) + err := c.cc.Invoke(ctx, CharactersService_RecordLfgDungeonRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) ConfirmLfgDungeonRouteEntered(ctx context.Context, in *ConfirmLfgDungeonRouteEnteredRequest, opts ...grpc.CallOption) (*ConfirmLfgDungeonRouteEnteredResponse, error) { + out := new(ConfirmLfgDungeonRouteEnteredResponse) + err := c.cc.Invoke(ctx, CharactersService_ConfirmLfgDungeonRouteEntered_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) ClearUnboundLfgDungeonRoute(ctx context.Context, in *ClearUnboundLfgDungeonRouteRequest, opts ...grpc.CallOption) (*ClearUnboundLfgDungeonRouteResponse, error) { + out := new(ClearUnboundLfgDungeonRouteResponse) + err := c.cc.Invoke(ctx, CharactersService_ClearUnboundLfgDungeonRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) GetLfgDungeonRoute(ctx context.Context, in *GetLfgDungeonRouteRequest, opts ...grpc.CallOption) (*GetLfgDungeonRouteResponse, error) { + out := new(GetLfgDungeonRouteResponse) + err := c.cc.Invoke(ctx, CharactersService_GetLfgDungeonRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) GetFriendsList(ctx context.Context, in *GetFriendsListRequest, opts ...grpc.CallOption) (*GetFriendsListResponse, error) { out := new(GetFriendsListResponse) err := c.cc.Invoke(ctx, CharactersService_GetFriendsList_FullMethodName, in, out, opts...) @@ -160,6 +408,33 @@ func (c *charactersServiceClient) AddFriend(ctx context.Context, in *AddFriendRe return out, nil } +func (c *charactersServiceClient) AddRealIDFriendByEmail(ctx context.Context, in *AddRealIDFriendByEmailRequest, opts ...grpc.CallOption) (*AddRealIDFriendByEmailResponse, error) { + out := new(AddRealIDFriendByEmailResponse) + err := c.cc.Invoke(ctx, CharactersService_AddRealIDFriendByEmail_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AcceptRealIDFriend(ctx context.Context, in *AcceptRealIDFriendRequest, opts ...grpc.CallOption) (*AcceptRealIDFriendResponse, error) { + out := new(AcceptRealIDFriendResponse) + err := c.cc.Invoke(ctx, CharactersService_AcceptRealIDFriend_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AreRealIDFriends(ctx context.Context, in *AreRealIDFriendsRequest, opts ...grpc.CallOption) (*AreRealIDFriendsResponse, error) { + out := new(AreRealIDFriendsResponse) + err := c.cc.Invoke(ctx, CharactersService_AreRealIDFriends_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) RemoveFriend(ctx context.Context, in *RemoveFriendRequest, opts ...grpc.CallOption) (*RemoveFriendResponse, error) { out := new(RemoveFriendResponse) err := c.cc.Invoke(ctx, CharactersService_RemoveFriend_FullMethodName, in, out, opts...) @@ -221,15 +496,40 @@ type CharactersServiceServer interface { CharactersToLoginForAccount(context.Context, *CharactersToLoginForAccountRequest) (*CharactersToLoginForAccountResponse, error) CharactersToLoginByGUID(context.Context, *CharactersToLoginByGUIDRequest) (*CharactersToLoginByGUIDResponse, error) AccountDataForAccount(context.Context, *AccountDataForAccountRequest) (*AccountDataForAccountResponse, error) + UpdateAccountDataForAccount(context.Context, *UpdateAccountDataForAccountRequest) (*UpdateAccountDataForAccountResponse, error) WhoQuery(context.Context, *WhoQueryRequest) (*WhoQueryResponse, error) CharacterOnlineByName(context.Context, *CharacterOnlineByNameRequest) (*CharacterOnlineByNameResponse, error) CharacterByName(context.Context, *CharacterByNameRequest) (*CharacterByNameResponse, error) + CharacterByGUID(context.Context, *CharacterByGUIDRequest) (*CharacterByGUIDResponse, error) ShortOnlineCharactersDataByGUIDs(context.Context, *ShortCharactersDataByGUIDsRequest) (*ShortCharactersDataByGUIDsResponse, error) + ArenaTeamQueueDataForRatedArena(context.Context, *ArenaTeamQueueDataForRatedArenaRequest) (*ArenaTeamQueueDataForRatedArenaResponse, error) + GetArenaTeam(context.Context, *GetArenaTeamRequest) (*GetArenaTeamResponse, error) + GetArenaTeamPetition(context.Context, *GetArenaTeamPetitionRequest) (*GetArenaTeamPetitionResponse, error) + CreateArenaTeamFromPetition(context.Context, *CreateArenaTeamFromPetitionRequest) (*CreateArenaTeamFromPetitionResponse, error) + InviteArenaTeamMember(context.Context, *InviteArenaTeamMemberRequest) (*InviteArenaTeamMemberResponse, error) + AcceptArenaTeamInvite(context.Context, *AcceptArenaTeamInviteRequest) (*AcceptArenaTeamInviteResponse, error) + DeclineArenaTeamInvite(context.Context, *DeclineArenaTeamInviteRequest) (*ArenaTeamMutationResponse, error) + AddArenaTeamMember(context.Context, *AddArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) + RemoveArenaTeamMember(context.Context, *RemoveArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) + DisbandArenaTeam(context.Context, *DisbandArenaTeamRequest) (*ArenaTeamMutationResponse, error) + SetArenaTeamCaptain(context.Context, *SetArenaTeamCaptainRequest) (*ArenaTeamMutationResponse, error) + SetArenaTeamName(context.Context, *SetArenaTeamNameRequest) (*ArenaTeamMutationResponse, error) + SaveArenaTeamStats(context.Context, *SaveArenaTeamStatsRequest) (*ArenaTeamMutationResponse, error) + DeleteAllArenaTeams(context.Context, *DeleteAllArenaTeamsRequest) (*ArenaTeamMutationResponse, error) + ValidateArenaTeamCharacterDelete(context.Context, *ValidateArenaTeamCharacterDeleteRequest) (*ArenaTeamMutationResponse, error) + RemovePlayerFromArenaTeams(context.Context, *RemovePlayerFromArenaTeamsRequest) (*ArenaTeamMutationResponse, error) // Would effect only offline player. SavePlayerPosition(context.Context, *SavePlayerPositionRequest) (*SavePlayerPositionResponse, error) + RecordLfgDungeonRoute(context.Context, *RecordLfgDungeonRouteRequest) (*RecordLfgDungeonRouteResponse, error) + ConfirmLfgDungeonRouteEntered(context.Context, *ConfirmLfgDungeonRouteEnteredRequest) (*ConfirmLfgDungeonRouteEnteredResponse, error) + ClearUnboundLfgDungeonRoute(context.Context, *ClearUnboundLfgDungeonRouteRequest) (*ClearUnboundLfgDungeonRouteResponse, error) + GetLfgDungeonRoute(context.Context, *GetLfgDungeonRouteRequest) (*GetLfgDungeonRouteResponse, error) // Friends and ignore list management GetFriendsList(context.Context, *GetFriendsListRequest) (*GetFriendsListResponse, error) AddFriend(context.Context, *AddFriendRequest) (*AddFriendResponse, error) + AddRealIDFriendByEmail(context.Context, *AddRealIDFriendByEmailRequest) (*AddRealIDFriendByEmailResponse, error) + AcceptRealIDFriend(context.Context, *AcceptRealIDFriendRequest) (*AcceptRealIDFriendResponse, error) + AreRealIDFriends(context.Context, *AreRealIDFriendsRequest) (*AreRealIDFriendsResponse, error) RemoveFriend(context.Context, *RemoveFriendRequest) (*RemoveFriendResponse, error) SetFriendNote(context.Context, *SetFriendNoteRequest) (*SetFriendNoteResponse, error) AddIgnore(context.Context, *AddIgnoreRequest) (*AddIgnoreResponse, error) @@ -253,6 +553,9 @@ func (UnimplementedCharactersServiceServer) CharactersToLoginByGUID(context.Cont func (UnimplementedCharactersServiceServer) AccountDataForAccount(context.Context, *AccountDataForAccountRequest) (*AccountDataForAccountResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AccountDataForAccount not implemented") } +func (UnimplementedCharactersServiceServer) UpdateAccountDataForAccount(context.Context, *UpdateAccountDataForAccountRequest) (*UpdateAccountDataForAccountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateAccountDataForAccount not implemented") +} func (UnimplementedCharactersServiceServer) WhoQuery(context.Context, *WhoQueryRequest) (*WhoQueryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WhoQuery not implemented") } @@ -262,18 +565,90 @@ func (UnimplementedCharactersServiceServer) CharacterOnlineByName(context.Contex func (UnimplementedCharactersServiceServer) CharacterByName(context.Context, *CharacterByNameRequest) (*CharacterByNameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CharacterByName not implemented") } +func (UnimplementedCharactersServiceServer) CharacterByGUID(context.Context, *CharacterByGUIDRequest) (*CharacterByGUIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CharacterByGUID not implemented") +} func (UnimplementedCharactersServiceServer) ShortOnlineCharactersDataByGUIDs(context.Context, *ShortCharactersDataByGUIDsRequest) (*ShortCharactersDataByGUIDsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ShortOnlineCharactersDataByGUIDs not implemented") } +func (UnimplementedCharactersServiceServer) ArenaTeamQueueDataForRatedArena(context.Context, *ArenaTeamQueueDataForRatedArenaRequest) (*ArenaTeamQueueDataForRatedArenaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArenaTeamQueueDataForRatedArena not implemented") +} +func (UnimplementedCharactersServiceServer) GetArenaTeam(context.Context, *GetArenaTeamRequest) (*GetArenaTeamResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArenaTeam not implemented") +} +func (UnimplementedCharactersServiceServer) GetArenaTeamPetition(context.Context, *GetArenaTeamPetitionRequest) (*GetArenaTeamPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArenaTeamPetition not implemented") +} +func (UnimplementedCharactersServiceServer) CreateArenaTeamFromPetition(context.Context, *CreateArenaTeamFromPetitionRequest) (*CreateArenaTeamFromPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateArenaTeamFromPetition not implemented") +} +func (UnimplementedCharactersServiceServer) InviteArenaTeamMember(context.Context, *InviteArenaTeamMemberRequest) (*InviteArenaTeamMemberResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method InviteArenaTeamMember not implemented") +} +func (UnimplementedCharactersServiceServer) AcceptArenaTeamInvite(context.Context, *AcceptArenaTeamInviteRequest) (*AcceptArenaTeamInviteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcceptArenaTeamInvite not implemented") +} +func (UnimplementedCharactersServiceServer) DeclineArenaTeamInvite(context.Context, *DeclineArenaTeamInviteRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeclineArenaTeamInvite not implemented") +} +func (UnimplementedCharactersServiceServer) AddArenaTeamMember(context.Context, *AddArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddArenaTeamMember not implemented") +} +func (UnimplementedCharactersServiceServer) RemoveArenaTeamMember(context.Context, *RemoveArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveArenaTeamMember not implemented") +} +func (UnimplementedCharactersServiceServer) DisbandArenaTeam(context.Context, *DisbandArenaTeamRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisbandArenaTeam not implemented") +} +func (UnimplementedCharactersServiceServer) SetArenaTeamCaptain(context.Context, *SetArenaTeamCaptainRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetArenaTeamCaptain not implemented") +} +func (UnimplementedCharactersServiceServer) SetArenaTeamName(context.Context, *SetArenaTeamNameRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetArenaTeamName not implemented") +} +func (UnimplementedCharactersServiceServer) SaveArenaTeamStats(context.Context, *SaveArenaTeamStatsRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SaveArenaTeamStats not implemented") +} +func (UnimplementedCharactersServiceServer) DeleteAllArenaTeams(context.Context, *DeleteAllArenaTeamsRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteAllArenaTeams not implemented") +} +func (UnimplementedCharactersServiceServer) ValidateArenaTeamCharacterDelete(context.Context, *ValidateArenaTeamCharacterDeleteRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateArenaTeamCharacterDelete not implemented") +} +func (UnimplementedCharactersServiceServer) RemovePlayerFromArenaTeams(context.Context, *RemovePlayerFromArenaTeamsRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemovePlayerFromArenaTeams not implemented") +} func (UnimplementedCharactersServiceServer) SavePlayerPosition(context.Context, *SavePlayerPositionRequest) (*SavePlayerPositionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SavePlayerPosition not implemented") } +func (UnimplementedCharactersServiceServer) RecordLfgDungeonRoute(context.Context, *RecordLfgDungeonRouteRequest) (*RecordLfgDungeonRouteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordLfgDungeonRoute not implemented") +} +func (UnimplementedCharactersServiceServer) ConfirmLfgDungeonRouteEntered(context.Context, *ConfirmLfgDungeonRouteEnteredRequest) (*ConfirmLfgDungeonRouteEnteredResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ConfirmLfgDungeonRouteEntered not implemented") +} +func (UnimplementedCharactersServiceServer) ClearUnboundLfgDungeonRoute(context.Context, *ClearUnboundLfgDungeonRouteRequest) (*ClearUnboundLfgDungeonRouteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ClearUnboundLfgDungeonRoute not implemented") +} +func (UnimplementedCharactersServiceServer) GetLfgDungeonRoute(context.Context, *GetLfgDungeonRouteRequest) (*GetLfgDungeonRouteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgDungeonRoute not implemented") +} func (UnimplementedCharactersServiceServer) GetFriendsList(context.Context, *GetFriendsListRequest) (*GetFriendsListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFriendsList not implemented") } func (UnimplementedCharactersServiceServer) AddFriend(context.Context, *AddFriendRequest) (*AddFriendResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddFriend not implemented") } +func (UnimplementedCharactersServiceServer) AddRealIDFriendByEmail(context.Context, *AddRealIDFriendByEmailRequest) (*AddRealIDFriendByEmailResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddRealIDFriendByEmail not implemented") +} +func (UnimplementedCharactersServiceServer) AcceptRealIDFriend(context.Context, *AcceptRealIDFriendRequest) (*AcceptRealIDFriendResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcceptRealIDFriend not implemented") +} +func (UnimplementedCharactersServiceServer) AreRealIDFriends(context.Context, *AreRealIDFriendsRequest) (*AreRealIDFriendsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AreRealIDFriends not implemented") +} func (UnimplementedCharactersServiceServer) RemoveFriend(context.Context, *RemoveFriendRequest) (*RemoveFriendResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveFriend not implemented") } @@ -359,6 +734,24 @@ func _CharactersService_AccountDataForAccount_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _CharactersService_UpdateAccountDataForAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateAccountDataForAccountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).UpdateAccountDataForAccount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_UpdateAccountDataForAccount_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).UpdateAccountDataForAccount(ctx, req.(*UpdateAccountDataForAccountRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CharactersService_WhoQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WhoQueryRequest) if err := dec(in); err != nil { @@ -413,6 +806,24 @@ func _CharactersService_CharacterByName_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _CharactersService_CharacterByGUID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CharacterByGUIDRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).CharacterByGUID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_CharacterByGUID_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).CharacterByGUID(ctx, req.(*CharacterByGUIDRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CharactersService_ShortOnlineCharactersDataByGUIDs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ShortCharactersDataByGUIDsRequest) if err := dec(in); err != nil { @@ -431,178 +842,592 @@ func _CharactersService_ShortOnlineCharactersDataByGUIDs_Handler(srv interface{} return interceptor(ctx, in, info, handler) } -func _CharactersService_SavePlayerPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SavePlayerPositionRequest) +func _CharactersService_ArenaTeamQueueDataForRatedArena_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ArenaTeamQueueDataForRatedArenaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).SavePlayerPosition(ctx, in) + return srv.(CharactersServiceServer).ArenaTeamQueueDataForRatedArena(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_SavePlayerPosition_FullMethodName, + FullMethod: CharactersService_ArenaTeamQueueDataForRatedArena_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).SavePlayerPosition(ctx, req.(*SavePlayerPositionRequest)) + return srv.(CharactersServiceServer).ArenaTeamQueueDataForRatedArena(ctx, req.(*ArenaTeamQueueDataForRatedArenaRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_GetFriendsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendsListRequest) +func _CharactersService_GetArenaTeam_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArenaTeamRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).GetFriendsList(ctx, in) + return srv.(CharactersServiceServer).GetArenaTeam(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_GetFriendsList_FullMethodName, + FullMethod: CharactersService_GetArenaTeam_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).GetFriendsList(ctx, req.(*GetFriendsListRequest)) + return srv.(CharactersServiceServer).GetArenaTeam(ctx, req.(*GetArenaTeamRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddFriendRequest) +func _CharactersService_GetArenaTeamPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArenaTeamPetitionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).AddFriend(ctx, in) + return srv.(CharactersServiceServer).GetArenaTeamPetition(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_AddFriend_FullMethodName, + FullMethod: CharactersService_GetArenaTeamPetition_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).AddFriend(ctx, req.(*AddFriendRequest)) + return srv.(CharactersServiceServer).GetArenaTeamPetition(ctx, req.(*GetArenaTeamPetitionRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_RemoveFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveFriendRequest) +func _CharactersService_CreateArenaTeamFromPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateArenaTeamFromPetitionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).RemoveFriend(ctx, in) + return srv.(CharactersServiceServer).CreateArenaTeamFromPetition(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_RemoveFriend_FullMethodName, + FullMethod: CharactersService_CreateArenaTeamFromPetition_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).RemoveFriend(ctx, req.(*RemoveFriendRequest)) + return srv.(CharactersServiceServer).CreateArenaTeamFromPetition(ctx, req.(*CreateArenaTeamFromPetitionRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_SetFriendNote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetFriendNoteRequest) +func _CharactersService_InviteArenaTeamMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InviteArenaTeamMemberRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).SetFriendNote(ctx, in) + return srv.(CharactersServiceServer).InviteArenaTeamMember(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_SetFriendNote_FullMethodName, + FullMethod: CharactersService_InviteArenaTeamMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).SetFriendNote(ctx, req.(*SetFriendNoteRequest)) + return srv.(CharactersServiceServer).InviteArenaTeamMember(ctx, req.(*InviteArenaTeamMemberRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_AddIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddIgnoreRequest) +func _CharactersService_AcceptArenaTeamInvite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcceptArenaTeamInviteRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).AddIgnore(ctx, in) + return srv.(CharactersServiceServer).AcceptArenaTeamInvite(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_AddIgnore_FullMethodName, + FullMethod: CharactersService_AcceptArenaTeamInvite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).AddIgnore(ctx, req.(*AddIgnoreRequest)) + return srv.(CharactersServiceServer).AcceptArenaTeamInvite(ctx, req.(*AcceptArenaTeamInviteRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_RemoveIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveIgnoreRequest) +func _CharactersService_DeclineArenaTeamInvite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeclineArenaTeamInviteRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).RemoveIgnore(ctx, in) + return srv.(CharactersServiceServer).DeclineArenaTeamInvite(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_RemoveIgnore_FullMethodName, + FullMethod: CharactersService_DeclineArenaTeamInvite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).RemoveIgnore(ctx, req.(*RemoveIgnoreRequest)) + return srv.(CharactersServiceServer).DeclineArenaTeamInvite(ctx, req.(*DeclineArenaTeamInviteRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_NotifyStatusChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(NotifyStatusChangeRequest) +func _CharactersService_AddArenaTeamMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddArenaTeamMemberRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).NotifyStatusChange(ctx, in) + return srv.(CharactersServiceServer).AddArenaTeamMember(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_NotifyStatusChange_FullMethodName, + FullMethod: CharactersService_AddArenaTeamMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).NotifyStatusChange(ctx, req.(*NotifyStatusChangeRequest)) + return srv.(CharactersServiceServer).AddArenaTeamMember(ctx, req.(*AddArenaTeamMemberRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_GetOnlineCharacters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetOnlineCharactersRequest) +func _CharactersService_RemoveArenaTeamMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveArenaTeamMemberRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, in) + return srv.(CharactersServiceServer).RemoveArenaTeamMember(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_GetOnlineCharacters_FullMethodName, + FullMethod: CharactersService_RemoveArenaTeamMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, req.(*GetOnlineCharactersRequest)) + return srv.(CharactersServiceServer).RemoveArenaTeamMember(ctx, req.(*RemoveArenaTeamMemberRequest)) } return interceptor(ctx, in, info, handler) } -// CharactersService_ServiceDesc is the grpc.ServiceDesc for CharactersService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var CharactersService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "v1.CharactersService", - HandlerType: (*CharactersServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CharactersToLoginForAccount", - Handler: _CharactersService_CharactersToLoginForAccount_Handler, +func _CharactersService_DisbandArenaTeam_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisbandArenaTeamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).DisbandArenaTeam(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_DisbandArenaTeam_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).DisbandArenaTeam(ctx, req.(*DisbandArenaTeamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SetArenaTeamCaptain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetArenaTeamCaptainRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SetArenaTeamCaptain(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SetArenaTeamCaptain_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SetArenaTeamCaptain(ctx, req.(*SetArenaTeamCaptainRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SetArenaTeamName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetArenaTeamNameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SetArenaTeamName(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SetArenaTeamName_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SetArenaTeamName(ctx, req.(*SetArenaTeamNameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SaveArenaTeamStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SaveArenaTeamStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SaveArenaTeamStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SaveArenaTeamStats_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SaveArenaTeamStats(ctx, req.(*SaveArenaTeamStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_DeleteAllArenaTeams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAllArenaTeamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).DeleteAllArenaTeams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_DeleteAllArenaTeams_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).DeleteAllArenaTeams(ctx, req.(*DeleteAllArenaTeamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_ValidateArenaTeamCharacterDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateArenaTeamCharacterDeleteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).ValidateArenaTeamCharacterDelete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_ValidateArenaTeamCharacterDelete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).ValidateArenaTeamCharacterDelete(ctx, req.(*ValidateArenaTeamCharacterDeleteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RemovePlayerFromArenaTeams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemovePlayerFromArenaTeamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RemovePlayerFromArenaTeams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RemovePlayerFromArenaTeams_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RemovePlayerFromArenaTeams(ctx, req.(*RemovePlayerFromArenaTeamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SavePlayerPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SavePlayerPositionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SavePlayerPosition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SavePlayerPosition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SavePlayerPosition(ctx, req.(*SavePlayerPositionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RecordLfgDungeonRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordLfgDungeonRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RecordLfgDungeonRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RecordLfgDungeonRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RecordLfgDungeonRoute(ctx, req.(*RecordLfgDungeonRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_ConfirmLfgDungeonRouteEntered_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConfirmLfgDungeonRouteEnteredRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).ConfirmLfgDungeonRouteEntered(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_ConfirmLfgDungeonRouteEntered_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).ConfirmLfgDungeonRouteEntered(ctx, req.(*ConfirmLfgDungeonRouteEnteredRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_ClearUnboundLfgDungeonRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ClearUnboundLfgDungeonRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).ClearUnboundLfgDungeonRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_ClearUnboundLfgDungeonRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).ClearUnboundLfgDungeonRoute(ctx, req.(*ClearUnboundLfgDungeonRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_GetLfgDungeonRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgDungeonRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).GetLfgDungeonRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_GetLfgDungeonRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).GetLfgDungeonRoute(ctx, req.(*GetLfgDungeonRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_GetFriendsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFriendsListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).GetFriendsList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_GetFriendsList_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).GetFriendsList(ctx, req.(*GetFriendsListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddFriendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AddFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AddFriend_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AddFriend(ctx, req.(*AddFriendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AddRealIDFriendByEmail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddRealIDFriendByEmailRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AddRealIDFriendByEmail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AddRealIDFriendByEmail_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AddRealIDFriendByEmail(ctx, req.(*AddRealIDFriendByEmailRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AcceptRealIDFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcceptRealIDFriendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AcceptRealIDFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AcceptRealIDFriend_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AcceptRealIDFriend(ctx, req.(*AcceptRealIDFriendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AreRealIDFriends_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AreRealIDFriendsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AreRealIDFriends(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AreRealIDFriends_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AreRealIDFriends(ctx, req.(*AreRealIDFriendsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RemoveFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveFriendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RemoveFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RemoveFriend_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RemoveFriend(ctx, req.(*RemoveFriendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SetFriendNote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetFriendNoteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SetFriendNote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SetFriendNote_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SetFriendNote(ctx, req.(*SetFriendNoteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AddIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddIgnoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AddIgnore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AddIgnore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AddIgnore(ctx, req.(*AddIgnoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RemoveIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveIgnoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RemoveIgnore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RemoveIgnore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RemoveIgnore(ctx, req.(*RemoveIgnoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_NotifyStatusChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NotifyStatusChangeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).NotifyStatusChange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_NotifyStatusChange_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).NotifyStatusChange(ctx, req.(*NotifyStatusChangeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_GetOnlineCharacters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOnlineCharactersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_GetOnlineCharacters_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, req.(*GetOnlineCharactersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CharactersService_ServiceDesc is the grpc.ServiceDesc for CharactersService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CharactersService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "v1.CharactersService", + HandlerType: (*CharactersServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CharactersToLoginForAccount", + Handler: _CharactersService_CharactersToLoginForAccount_Handler, }, { MethodName: "CharactersToLoginByGUID", @@ -612,6 +1437,10 @@ var CharactersService_ServiceDesc = grpc.ServiceDesc{ MethodName: "AccountDataForAccount", Handler: _CharactersService_AccountDataForAccount_Handler, }, + { + MethodName: "UpdateAccountDataForAccount", + Handler: _CharactersService_UpdateAccountDataForAccount_Handler, + }, { MethodName: "WhoQuery", Handler: _CharactersService_WhoQuery_Handler, @@ -624,14 +1453,98 @@ var CharactersService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CharacterByName", Handler: _CharactersService_CharacterByName_Handler, }, + { + MethodName: "CharacterByGUID", + Handler: _CharactersService_CharacterByGUID_Handler, + }, { MethodName: "ShortOnlineCharactersDataByGUIDs", Handler: _CharactersService_ShortOnlineCharactersDataByGUIDs_Handler, }, + { + MethodName: "ArenaTeamQueueDataForRatedArena", + Handler: _CharactersService_ArenaTeamQueueDataForRatedArena_Handler, + }, + { + MethodName: "GetArenaTeam", + Handler: _CharactersService_GetArenaTeam_Handler, + }, + { + MethodName: "GetArenaTeamPetition", + Handler: _CharactersService_GetArenaTeamPetition_Handler, + }, + { + MethodName: "CreateArenaTeamFromPetition", + Handler: _CharactersService_CreateArenaTeamFromPetition_Handler, + }, + { + MethodName: "InviteArenaTeamMember", + Handler: _CharactersService_InviteArenaTeamMember_Handler, + }, + { + MethodName: "AcceptArenaTeamInvite", + Handler: _CharactersService_AcceptArenaTeamInvite_Handler, + }, + { + MethodName: "DeclineArenaTeamInvite", + Handler: _CharactersService_DeclineArenaTeamInvite_Handler, + }, + { + MethodName: "AddArenaTeamMember", + Handler: _CharactersService_AddArenaTeamMember_Handler, + }, + { + MethodName: "RemoveArenaTeamMember", + Handler: _CharactersService_RemoveArenaTeamMember_Handler, + }, + { + MethodName: "DisbandArenaTeam", + Handler: _CharactersService_DisbandArenaTeam_Handler, + }, + { + MethodName: "SetArenaTeamCaptain", + Handler: _CharactersService_SetArenaTeamCaptain_Handler, + }, + { + MethodName: "SetArenaTeamName", + Handler: _CharactersService_SetArenaTeamName_Handler, + }, + { + MethodName: "SaveArenaTeamStats", + Handler: _CharactersService_SaveArenaTeamStats_Handler, + }, + { + MethodName: "DeleteAllArenaTeams", + Handler: _CharactersService_DeleteAllArenaTeams_Handler, + }, + { + MethodName: "ValidateArenaTeamCharacterDelete", + Handler: _CharactersService_ValidateArenaTeamCharacterDelete_Handler, + }, + { + MethodName: "RemovePlayerFromArenaTeams", + Handler: _CharactersService_RemovePlayerFromArenaTeams_Handler, + }, { MethodName: "SavePlayerPosition", Handler: _CharactersService_SavePlayerPosition_Handler, }, + { + MethodName: "RecordLfgDungeonRoute", + Handler: _CharactersService_RecordLfgDungeonRoute_Handler, + }, + { + MethodName: "ConfirmLfgDungeonRouteEntered", + Handler: _CharactersService_ConfirmLfgDungeonRouteEntered_Handler, + }, + { + MethodName: "ClearUnboundLfgDungeonRoute", + Handler: _CharactersService_ClearUnboundLfgDungeonRoute_Handler, + }, + { + MethodName: "GetLfgDungeonRoute", + Handler: _CharactersService_GetLfgDungeonRoute_Handler, + }, { MethodName: "GetFriendsList", Handler: _CharactersService_GetFriendsList_Handler, @@ -640,6 +1553,18 @@ var CharactersService_ServiceDesc = grpc.ServiceDesc{ MethodName: "AddFriend", Handler: _CharactersService_AddFriend_Handler, }, + { + MethodName: "AddRealIDFriendByEmail", + Handler: _CharactersService_AddRealIDFriendByEmail_Handler, + }, + { + MethodName: "AcceptRealIDFriend", + Handler: _CharactersService_AcceptRealIDFriend_Handler, + }, + { + MethodName: "AreRealIDFriends", + Handler: _CharactersService_AreRealIDFriends_Handler, + }, { MethodName: "RemoveFriend", Handler: _CharactersService_RemoveFriend_Handler, diff --git a/gen/chat/gen/chat/pb/chat.pb.go b/gen/chat/gen/chat/pb/chat.pb.go index 5d10c6f..226c5cc 100644 --- a/gen/chat/gen/chat/pb/chat.pb.go +++ b/gen/chat/gen/chat/pb/chat.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: chat.proto package pb @@ -20,11 +20,61 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type TeamID int32 + +const ( + TeamID_TEAM_ALLIANCE TeamID = 0 + TeamID_TEAM_HORDE TeamID = 1 + TeamID_TEAM_NEUTRAL TeamID = 2 +) + +// Enum value maps for TeamID. +var ( + TeamID_name = map[int32]string{ + 0: "TEAM_ALLIANCE", + 1: "TEAM_HORDE", + 2: "TEAM_NEUTRAL", + } + TeamID_value = map[string]int32{ + "TEAM_ALLIANCE": 0, + "TEAM_HORDE": 1, + "TEAM_NEUTRAL": 2, + } +) + +func (x TeamID) Enum() *TeamID { + p := new(TeamID) + *p = x + return p +} + +func (x TeamID) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TeamID) Descriptor() protoreflect.EnumDescriptor { + return file_chat_proto_enumTypes[0].Descriptor() +} + +func (TeamID) Type() protoreflect.EnumType { + return &file_chat_proto_enumTypes[0] +} + +func (x TeamID) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TeamID.Descriptor instead. +func (TeamID) EnumDescriptor() ([]byte, []int) { + return file_chat_proto_rawDescGZIP(), []int{0} +} + type SendWhisperMessageResponse_Status int32 const ( - SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 - SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 + SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_CharacterAmbiguous SendWhisperMessageResponse_Status = 3 ) // Enum value maps for SendWhisperMessageResponse_Status. @@ -32,10 +82,12 @@ var ( SendWhisperMessageResponse_Status_name = map[int32]string{ 0: "Ok", 2: "CharacterNotFound", + 3: "CharacterAmbiguous", } SendWhisperMessageResponse_Status_value = map[string]int32{ - "Ok": 0, - "CharacterNotFound": 2, + "Ok": 0, + "CharacterNotFound": 2, + "CharacterAmbiguous": 3, } ) @@ -50,11 +102,11 @@ func (x SendWhisperMessageResponse_Status) String() string { } func (SendWhisperMessageResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[0].Descriptor() + return file_chat_proto_enumTypes[1].Descriptor() } func (SendWhisperMessageResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[0] + return &file_chat_proto_enumTypes[1] } func (x SendWhisperMessageResponse_Status) Number() protoreflect.EnumNumber { @@ -108,11 +160,11 @@ func (x JoinChannelResponse_Status) String() string { } func (JoinChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[1].Descriptor() + return file_chat_proto_enumTypes[2].Descriptor() } func (JoinChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[1] + return &file_chat_proto_enumTypes[2] } func (x JoinChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -154,11 +206,11 @@ func (x LeaveChannelResponse_Status) String() string { } func (LeaveChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[2].Descriptor() + return file_chat_proto_enumTypes[3].Descriptor() } func (LeaveChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[2] + return &file_chat_proto_enumTypes[3] } func (x LeaveChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -206,11 +258,11 @@ func (x SendChannelMessageResponse_Status) String() string { } func (SendChannelMessageResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[3].Descriptor() + return file_chat_proto_enumTypes[4].Descriptor() } func (SendChannelMessageResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[3] + return &file_chat_proto_enumTypes[4] } func (x SendChannelMessageResponse_Status) Number() protoreflect.EnumNumber { @@ -252,11 +304,11 @@ func (x GetChannelListResponse_Status) String() string { } func (GetChannelListResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[4].Descriptor() + return file_chat_proto_enumTypes[5].Descriptor() } func (GetChannelListResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[4] + return &file_chat_proto_enumTypes[5] } func (x GetChannelListResponse_Status) Number() protoreflect.EnumNumber { @@ -304,11 +356,11 @@ func (x KickFromChannelResponse_Status) String() string { } func (KickFromChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[5].Descriptor() + return file_chat_proto_enumTypes[6].Descriptor() } func (KickFromChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[5] + return &file_chat_proto_enumTypes[6] } func (x KickFromChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -356,11 +408,11 @@ func (x BanFromChannelResponse_Status) String() string { } func (BanFromChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[6].Descriptor() + return file_chat_proto_enumTypes[7].Descriptor() } func (BanFromChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[6] + return &file_chat_proto_enumTypes[7] } func (x BanFromChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -408,11 +460,11 @@ func (x UnbanFromChannelResponse_Status) String() string { } func (UnbanFromChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[7].Descriptor() + return file_chat_proto_enumTypes[8].Descriptor() } func (UnbanFromChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[7] + return &file_chat_proto_enumTypes[8] } func (x UnbanFromChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -460,11 +512,11 @@ func (x SetChannelModeratorResponse_Status) String() string { } func (SetChannelModeratorResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[8].Descriptor() + return file_chat_proto_enumTypes[9].Descriptor() } func (SetChannelModeratorResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[8] + return &file_chat_proto_enumTypes[9] } func (x SetChannelModeratorResponse_Status) Number() protoreflect.EnumNumber { @@ -512,11 +564,11 @@ func (x UnsetChannelModeratorResponse_Status) String() string { } func (UnsetChannelModeratorResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[9].Descriptor() + return file_chat_proto_enumTypes[10].Descriptor() } func (UnsetChannelModeratorResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[9] + return &file_chat_proto_enumTypes[10] } func (x UnsetChannelModeratorResponse_Status) Number() protoreflect.EnumNumber { @@ -564,11 +616,11 @@ func (x SetChannelMuteResponse_Status) String() string { } func (SetChannelMuteResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[10].Descriptor() + return file_chat_proto_enumTypes[11].Descriptor() } func (SetChannelMuteResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[10] + return &file_chat_proto_enumTypes[11] } func (x SetChannelMuteResponse_Status) Number() protoreflect.EnumNumber { @@ -616,11 +668,11 @@ func (x UnsetChannelMuteResponse_Status) String() string { } func (UnsetChannelMuteResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[11].Descriptor() + return file_chat_proto_enumTypes[12].Descriptor() } func (UnsetChannelMuteResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[11] + return &file_chat_proto_enumTypes[12] } func (x UnsetChannelMuteResponse_Status) Number() protoreflect.EnumNumber { @@ -668,11 +720,11 @@ func (x SetChannelOwnerResponse_Status) String() string { } func (SetChannelOwnerResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[12].Descriptor() + return file_chat_proto_enumTypes[13].Descriptor() } func (SetChannelOwnerResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[12] + return &file_chat_proto_enumTypes[13] } func (x SetChannelOwnerResponse_Status) Number() protoreflect.EnumNumber { @@ -717,11 +769,11 @@ func (x SetChannelPasswordResponse_Status) String() string { } func (SetChannelPasswordResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[13].Descriptor() + return file_chat_proto_enumTypes[14].Descriptor() } func (SetChannelPasswordResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[13] + return &file_chat_proto_enumTypes[14] } func (x SetChannelPasswordResponse_Status) Number() protoreflect.EnumNumber { @@ -766,11 +818,11 @@ func (x ToggleChannelModerationResponse_Status) String() string { } func (ToggleChannelModerationResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[14].Descriptor() + return file_chat_proto_enumTypes[15].Descriptor() } func (ToggleChannelModerationResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[14] + return &file_chat_proto_enumTypes[15] } func (x ToggleChannelModerationResponse_Status) Number() protoreflect.EnumNumber { @@ -815,11 +867,11 @@ func (x ToggleChannelAnnouncementsResponse_Status) String() string { } func (ToggleChannelAnnouncementsResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[15].Descriptor() + return file_chat_proto_enumTypes[16].Descriptor() } func (ToggleChannelAnnouncementsResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[15] + return &file_chat_proto_enumTypes[16] } func (x ToggleChannelAnnouncementsResponse_Status) Number() protoreflect.EnumNumber { @@ -873,11 +925,11 @@ func (x InviteToChannelResponse_Status) String() string { } func (InviteToChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[16].Descriptor() + return file_chat_proto_enumTypes[17].Descriptor() } func (InviteToChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[16] + return &file_chat_proto_enumTypes[17] } func (x InviteToChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -894,14 +946,20 @@ type SendWhisperMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` - Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,9,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + SenderClass uint32 `protobuf:"varint,10,opt,name=senderClass,proto3" json:"senderClass,omitempty"` + SenderGender uint32 `protobuf:"varint,11,opt,name=senderGender,proto3" json:"senderGender,omitempty"` + SenderAccountID uint32 `protobuf:"varint,12,opt,name=senderAccountID,proto3" json:"senderAccountID,omitempty"` + GatewayValidatedGameplayCrossrealmWhisper bool `protobuf:"varint,13,opt,name=gatewayValidatedGameplayCrossrealmWhisper,proto3" json:"gatewayValidatedGameplayCrossrealmWhisper,omitempty"` + SenderChatTag uint32 `protobuf:"varint,14,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendWhisperMessageRequest) Reset() { @@ -992,14 +1050,61 @@ func (x *SendWhisperMessageRequest) GetMsg() string { return "" } +func (x *SendWhisperMessageRequest) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderClass() uint32 { + if x != nil { + return x.SenderClass + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderGender() uint32 { + if x != nil { + return x.SenderGender + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderAccountID() uint32 { + if x != nil { + return x.SenderAccountID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetGatewayValidatedGameplayCrossrealmWhisper() bool { + if x != nil { + return x.GatewayValidatedGameplayCrossrealmWhisper + } + return false +} + +func (x *SendWhisperMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendWhisperMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` - ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` + ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,4,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + ReceiverName string `protobuf:"bytes,5,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + ReceiverRace uint32 `protobuf:"varint,6,opt,name=receiverRace,proto3" json:"receiverRace,omitempty"` + ReceiverClass uint32 `protobuf:"varint,7,opt,name=receiverClass,proto3" json:"receiverClass,omitempty"` + ReceiverGender uint32 `protobuf:"varint,8,opt,name=receiverGender,proto3" json:"receiverGender,omitempty"` } func (x *SendWhisperMessageResponse) Reset() { @@ -1055,19 +1160,55 @@ func (x *SendWhisperMessageResponse) GetReceiverGUID() uint64 { return 0 } +func (x *SendWhisperMessageResponse) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverName() string { + if x != nil { + return x.ReceiverName + } + return "" +} + +func (x *SendWhisperMessageResponse) GetReceiverRace() uint32 { + if x != nil { + return x.ReceiverRace + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverClass() uint32 { + if x != nil { + return x.ReceiverClass + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverGender() uint32 { + if x != nil { + return x.ReceiverGender + } + return 0 +} + type JoinChannelRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - PlayerName string `protobuf:"bytes,4,opt,name=playerName,proto3" json:"playerName,omitempty"` - TeamID uint32 `protobuf:"varint,5,opt,name=teamID,proto3" json:"teamID,omitempty"` // 0=Alliance, 1=Horde, 2=Neutral - ChannelName string `protobuf:"bytes,6,opt,name=channelName,proto3" json:"channelName,omitempty"` - ChannelID uint32 `protobuf:"varint,7,opt,name=channelID,proto3" json:"channelID,omitempty"` // 0 for custom channels - Password string `protobuf:"bytes,8,opt,name=password,proto3" json:"password,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PlayerName string `protobuf:"bytes,4,opt,name=playerName,proto3" json:"playerName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + ChannelName string `protobuf:"bytes,6,opt,name=channelName,proto3" json:"channelName,omitempty"` + ChannelID uint32 `protobuf:"varint,7,opt,name=channelID,proto3" json:"channelID,omitempty"` // 0 for custom channels, or worldserver's ID for territorial + Password string `protobuf:"bytes,8,opt,name=password,proto3" json:"password,omitempty"` + ChannelFlags uint32 `protobuf:"varint,9,opt,name=channelFlags,proto3" json:"channelFlags,omitempty"` // 0 to auto-detect, or worldserver's flags for territorial } func (x *JoinChannelRequest) Reset() { @@ -1130,11 +1271,11 @@ func (x *JoinChannelRequest) GetPlayerName() string { return "" } -func (x *JoinChannelRequest) GetTeamID() uint32 { +func (x *JoinChannelRequest) GetTeamID() TeamID { if x != nil { return x.TeamID } - return 0 + return TeamID_TEAM_ALLIANCE } func (x *JoinChannelRequest) GetChannelName() string { @@ -1158,6 +1299,13 @@ func (x *JoinChannelRequest) GetPassword() string { return "" } +func (x *JoinChannelRequest) GetChannelFlags() uint32 { + if x != nil { + return x.ChannelFlags + } + return 0 +} + type JoinChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1230,6 +1378,7 @@ type LeaveChannelRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *LeaveChannelRequest) Reset() { @@ -1292,6 +1441,13 @@ func (x *LeaveChannelRequest) GetChannelName() string { return "" } +func (x *LeaveChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type LeaveChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1352,13 +1508,15 @@ type SendChannelMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` + TeamID TeamID `protobuf:"varint,8,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + SenderChatTag uint32 `protobuf:"varint,9,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendChannelMessageRequest) Reset() { @@ -1442,6 +1600,20 @@ func (x *SendChannelMessageRequest) GetMessage() string { return "" } +func (x *SendChannelMessageRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + +func (x *SendChannelMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendChannelMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1506,6 +1678,7 @@ type GetChannelListRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *GetChannelListRequest) Reset() { @@ -1568,6 +1741,13 @@ func (x *GetChannelListRequest) GetChannelName() string { return "" } +func (x *GetChannelListRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type GetChannelListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1641,6 +1821,7 @@ type KickFromChannelRequest struct { KickerGUID uint64 `protobuf:"varint,3,opt,name=kickerGUID,proto3" json:"kickerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *KickFromChannelRequest) Reset() { @@ -1710,6 +1891,13 @@ func (x *KickFromChannelRequest) GetTargetName() string { return "" } +func (x *KickFromChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type KickFromChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1775,6 +1963,7 @@ type BanFromChannelRequest struct { BannerGUID uint64 `protobuf:"varint,3,opt,name=bannerGUID,proto3" json:"bannerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *BanFromChannelRequest) Reset() { @@ -1844,6 +2033,13 @@ func (x *BanFromChannelRequest) GetTargetName() string { return "" } +func (x *BanFromChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type BanFromChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1909,6 +2105,7 @@ type UnbanFromChannelRequest struct { UnbannerGUID uint64 `protobuf:"varint,3,opt,name=unbannerGUID,proto3" json:"unbannerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *UnbanFromChannelRequest) Reset() { @@ -1978,6 +2175,13 @@ func (x *UnbanFromChannelRequest) GetTargetName() string { return "" } +func (x *UnbanFromChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type UnbanFromChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2043,6 +2247,7 @@ type SetChannelModeratorRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelModeratorRequest) Reset() { @@ -2112,6 +2317,13 @@ func (x *SetChannelModeratorRequest) GetTargetName() string { return "" } +func (x *SetChannelModeratorRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelModeratorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2177,6 +2389,7 @@ type UnsetChannelModeratorRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *UnsetChannelModeratorRequest) Reset() { @@ -2246,6 +2459,13 @@ func (x *UnsetChannelModeratorRequest) GetTargetName() string { return "" } +func (x *UnsetChannelModeratorRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type UnsetChannelModeratorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2311,6 +2531,7 @@ type SetChannelMuteRequest struct { MuterGUID uint64 `protobuf:"varint,3,opt,name=muterGUID,proto3" json:"muterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelMuteRequest) Reset() { @@ -2380,6 +2601,13 @@ func (x *SetChannelMuteRequest) GetTargetName() string { return "" } +func (x *SetChannelMuteRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelMuteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2445,6 +2673,7 @@ type UnsetChannelMuteRequest struct { UnmuterGUID uint64 `protobuf:"varint,3,opt,name=unmuterGUID,proto3" json:"unmuterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *UnsetChannelMuteRequest) Reset() { @@ -2514,6 +2743,13 @@ func (x *UnsetChannelMuteRequest) GetTargetName() string { return "" } +func (x *UnsetChannelMuteRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type UnsetChannelMuteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2579,6 +2815,7 @@ type SetChannelOwnerRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelOwnerRequest) Reset() { @@ -2648,6 +2885,13 @@ func (x *SetChannelOwnerRequest) GetTargetName() string { return "" } +func (x *SetChannelOwnerRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelOwnerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2713,6 +2957,7 @@ type SetChannelPasswordRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` Password string `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelPasswordRequest) Reset() { @@ -2782,6 +3027,13 @@ func (x *SetChannelPasswordRequest) GetPassword() string { return "" } +func (x *SetChannelPasswordRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelPasswordResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2846,6 +3098,7 @@ type ToggleChannelModerationRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` TogglerGUID uint64 `protobuf:"varint,3,opt,name=togglerGUID,proto3" json:"togglerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *ToggleChannelModerationRequest) Reset() { @@ -2908,6 +3161,13 @@ func (x *ToggleChannelModerationRequest) GetChannelName() string { return "" } +func (x *ToggleChannelModerationRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type ToggleChannelModerationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2980,6 +3240,7 @@ type ToggleChannelAnnouncementsRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` TogglerGUID uint64 `protobuf:"varint,3,opt,name=togglerGUID,proto3" json:"togglerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *ToggleChannelAnnouncementsRequest) Reset() { @@ -3042,6 +3303,13 @@ func (x *ToggleChannelAnnouncementsRequest) GetChannelName() string { return "" } +func (x *ToggleChannelAnnouncementsRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type ToggleChannelAnnouncementsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3115,6 +3383,7 @@ type InviteToChannelRequest struct { InviterGUID uint64 `protobuf:"varint,3,opt,name=inviterGUID,proto3" json:"inviterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *InviteToChannelRequest) Reset() { @@ -3184,6 +3453,13 @@ func (x *InviteToChannelRequest) GetTargetName() string { return "" } +func (x *InviteToChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type InviteToChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3385,7 +3661,7 @@ var File_chat_proto protoreflect.FileDescriptor var file_chat_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, - 0x22, 0xf9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, + 0x22, 0x97, 0x04, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -3400,143 +3676,191 @@ var file_chat_proto_rawDesc = []byte{ 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xba, 0x01, 0x0a, - 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x22, 0xf4, 0x01, 0x0a, 0x12, 0x4a, 0x6f, - 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, - 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x22, 0x83, - 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x0f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x5c, 0x0a, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, + 0x73, 0x70, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x92, 0x03, 0x0a, 0x1a, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x3f, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x41, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x03, 0x22, + 0xa4, 0x02, 0x0a, 0x12, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x53, 0x65, - 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, + 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x64, 0x10, 0x05, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x82, + 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x01, 0x22, 0xa9, 0x02, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, + 0xa8, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0xca, 0x01, 0x0a, + 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1a, - 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x39, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb3, - 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xae, 0x01, 0x0a, 0x17, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, + 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, - 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xae, 0x01, - 0x0a, 0x17, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, - 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa5, - 0x01, 0x0a, 0x15, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x6e, 0x46, 0x72, + 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x15, 0x42, + 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, @@ -3547,7 +3871,7 @@ var file_chat_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xab, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, + 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, @@ -3558,41 +3882,21 @@ var file_chat_proto_rawDesc = []byte{ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, - 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x42, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, 0xaa, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xac, 0x01, 0x0a, 0x1c, 0x55, 0x6e, - 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, 0xce, 0x01, 0x0a, 0x1a, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, @@ -3602,29 +3906,58 @@ var file_chat_proto_rawDesc = []byte{ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb2, 0x01, 0x0a, + 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0x03, 0x22, 0xa3, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, + 0x03, 0x22, 0xd0, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, + 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, + 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc7, 0x01, + 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, @@ -3635,7 +3968,7 @@ var file_chat_proto_rawDesc = []byte{ 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa9, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, @@ -3646,69 +3979,78 @@ var file_chat_proto_rawDesc = []byte{ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, - 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, - 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xaa, - 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa5, 0x01, 0x0a, 0x19, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x22, 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, - 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x10, 0x02, 0x22, 0x90, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, + 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x22, 0xb4, + 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x42, 0x0a, 0x06, 0x73, @@ -3722,7 +4064,7 @@ var file_chat_proto_rawDesc = []byte{ 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, - 0x22, 0x93, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x22, 0xb7, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, @@ -3731,149 +4073,158 @@ var file_chat_proto_rawDesc = []byte{ 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x22, 0x54, 0x6f, 0x67, 0x67, 0x6c, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, - 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, + 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xe4, 0x01, 0x0a, 0x22, 0x54, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, + 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x6e, + 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, + 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, - 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x22, 0xa8, 0x01, - 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, - 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, - 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, - 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x32, 0xf3, 0x0a, - 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, - 0x12, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, - 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, - 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, - 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, + 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, + 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x2a, 0x3d, 0x0a, 0x06, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, + 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x41, 0x4e, 0x43, 0x45, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x48, 0x4f, 0x52, 0x44, 0x45, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, + 0x41, 0x4c, 0x10, 0x02, 0x32, 0xf3, 0x0a, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, + 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, - 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, + 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, + 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4b, + 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x47, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, - 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5c, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, - 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, - 0x0e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, - 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, - 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, - 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, + 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, + 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, + 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x65, + 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -3888,122 +4239,139 @@ func file_chat_proto_rawDescGZIP() []byte { return file_chat_proto_rawDescData } -var file_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 17) +var file_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 18) var file_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_chat_proto_goTypes = []interface{}{ - (SendWhisperMessageResponse_Status)(0), // 0: v1.SendWhisperMessageResponse.Status - (JoinChannelResponse_Status)(0), // 1: v1.JoinChannelResponse.Status - (LeaveChannelResponse_Status)(0), // 2: v1.LeaveChannelResponse.Status - (SendChannelMessageResponse_Status)(0), // 3: v1.SendChannelMessageResponse.Status - (GetChannelListResponse_Status)(0), // 4: v1.GetChannelListResponse.Status - (KickFromChannelResponse_Status)(0), // 5: v1.KickFromChannelResponse.Status - (BanFromChannelResponse_Status)(0), // 6: v1.BanFromChannelResponse.Status - (UnbanFromChannelResponse_Status)(0), // 7: v1.UnbanFromChannelResponse.Status - (SetChannelModeratorResponse_Status)(0), // 8: v1.SetChannelModeratorResponse.Status - (UnsetChannelModeratorResponse_Status)(0), // 9: v1.UnsetChannelModeratorResponse.Status - (SetChannelMuteResponse_Status)(0), // 10: v1.SetChannelMuteResponse.Status - (UnsetChannelMuteResponse_Status)(0), // 11: v1.UnsetChannelMuteResponse.Status - (SetChannelOwnerResponse_Status)(0), // 12: v1.SetChannelOwnerResponse.Status - (SetChannelPasswordResponse_Status)(0), // 13: v1.SetChannelPasswordResponse.Status - (ToggleChannelModerationResponse_Status)(0), // 14: v1.ToggleChannelModerationResponse.Status - (ToggleChannelAnnouncementsResponse_Status)(0), // 15: v1.ToggleChannelAnnouncementsResponse.Status - (InviteToChannelResponse_Status)(0), // 16: v1.InviteToChannelResponse.Status - (*SendWhisperMessageRequest)(nil), // 17: v1.SendWhisperMessageRequest - (*SendWhisperMessageResponse)(nil), // 18: v1.SendWhisperMessageResponse - (*JoinChannelRequest)(nil), // 19: v1.JoinChannelRequest - (*JoinChannelResponse)(nil), // 20: v1.JoinChannelResponse - (*LeaveChannelRequest)(nil), // 21: v1.LeaveChannelRequest - (*LeaveChannelResponse)(nil), // 22: v1.LeaveChannelResponse - (*SendChannelMessageRequest)(nil), // 23: v1.SendChannelMessageRequest - (*SendChannelMessageResponse)(nil), // 24: v1.SendChannelMessageResponse - (*GetChannelListRequest)(nil), // 25: v1.GetChannelListRequest - (*GetChannelListResponse)(nil), // 26: v1.GetChannelListResponse - (*KickFromChannelRequest)(nil), // 27: v1.KickFromChannelRequest - (*KickFromChannelResponse)(nil), // 28: v1.KickFromChannelResponse - (*BanFromChannelRequest)(nil), // 29: v1.BanFromChannelRequest - (*BanFromChannelResponse)(nil), // 30: v1.BanFromChannelResponse - (*UnbanFromChannelRequest)(nil), // 31: v1.UnbanFromChannelRequest - (*UnbanFromChannelResponse)(nil), // 32: v1.UnbanFromChannelResponse - (*SetChannelModeratorRequest)(nil), // 33: v1.SetChannelModeratorRequest - (*SetChannelModeratorResponse)(nil), // 34: v1.SetChannelModeratorResponse - (*UnsetChannelModeratorRequest)(nil), // 35: v1.UnsetChannelModeratorRequest - (*UnsetChannelModeratorResponse)(nil), // 36: v1.UnsetChannelModeratorResponse - (*SetChannelMuteRequest)(nil), // 37: v1.SetChannelMuteRequest - (*SetChannelMuteResponse)(nil), // 38: v1.SetChannelMuteResponse - (*UnsetChannelMuteRequest)(nil), // 39: v1.UnsetChannelMuteRequest - (*UnsetChannelMuteResponse)(nil), // 40: v1.UnsetChannelMuteResponse - (*SetChannelOwnerRequest)(nil), // 41: v1.SetChannelOwnerRequest - (*SetChannelOwnerResponse)(nil), // 42: v1.SetChannelOwnerResponse - (*SetChannelPasswordRequest)(nil), // 43: v1.SetChannelPasswordRequest - (*SetChannelPasswordResponse)(nil), // 44: v1.SetChannelPasswordResponse - (*ToggleChannelModerationRequest)(nil), // 45: v1.ToggleChannelModerationRequest - (*ToggleChannelModerationResponse)(nil), // 46: v1.ToggleChannelModerationResponse - (*ToggleChannelAnnouncementsRequest)(nil), // 47: v1.ToggleChannelAnnouncementsRequest - (*ToggleChannelAnnouncementsResponse)(nil), // 48: v1.ToggleChannelAnnouncementsResponse - (*InviteToChannelRequest)(nil), // 49: v1.InviteToChannelRequest - (*InviteToChannelResponse)(nil), // 50: v1.InviteToChannelResponse - (*ChannelInfo)(nil), // 51: v1.ChannelInfo - (*ChannelMember)(nil), // 52: v1.ChannelMember + (TeamID)(0), // 0: v1.TeamID + (SendWhisperMessageResponse_Status)(0), // 1: v1.SendWhisperMessageResponse.Status + (JoinChannelResponse_Status)(0), // 2: v1.JoinChannelResponse.Status + (LeaveChannelResponse_Status)(0), // 3: v1.LeaveChannelResponse.Status + (SendChannelMessageResponse_Status)(0), // 4: v1.SendChannelMessageResponse.Status + (GetChannelListResponse_Status)(0), // 5: v1.GetChannelListResponse.Status + (KickFromChannelResponse_Status)(0), // 6: v1.KickFromChannelResponse.Status + (BanFromChannelResponse_Status)(0), // 7: v1.BanFromChannelResponse.Status + (UnbanFromChannelResponse_Status)(0), // 8: v1.UnbanFromChannelResponse.Status + (SetChannelModeratorResponse_Status)(0), // 9: v1.SetChannelModeratorResponse.Status + (UnsetChannelModeratorResponse_Status)(0), // 10: v1.UnsetChannelModeratorResponse.Status + (SetChannelMuteResponse_Status)(0), // 11: v1.SetChannelMuteResponse.Status + (UnsetChannelMuteResponse_Status)(0), // 12: v1.UnsetChannelMuteResponse.Status + (SetChannelOwnerResponse_Status)(0), // 13: v1.SetChannelOwnerResponse.Status + (SetChannelPasswordResponse_Status)(0), // 14: v1.SetChannelPasswordResponse.Status + (ToggleChannelModerationResponse_Status)(0), // 15: v1.ToggleChannelModerationResponse.Status + (ToggleChannelAnnouncementsResponse_Status)(0), // 16: v1.ToggleChannelAnnouncementsResponse.Status + (InviteToChannelResponse_Status)(0), // 17: v1.InviteToChannelResponse.Status + (*SendWhisperMessageRequest)(nil), // 18: v1.SendWhisperMessageRequest + (*SendWhisperMessageResponse)(nil), // 19: v1.SendWhisperMessageResponse + (*JoinChannelRequest)(nil), // 20: v1.JoinChannelRequest + (*JoinChannelResponse)(nil), // 21: v1.JoinChannelResponse + (*LeaveChannelRequest)(nil), // 22: v1.LeaveChannelRequest + (*LeaveChannelResponse)(nil), // 23: v1.LeaveChannelResponse + (*SendChannelMessageRequest)(nil), // 24: v1.SendChannelMessageRequest + (*SendChannelMessageResponse)(nil), // 25: v1.SendChannelMessageResponse + (*GetChannelListRequest)(nil), // 26: v1.GetChannelListRequest + (*GetChannelListResponse)(nil), // 27: v1.GetChannelListResponse + (*KickFromChannelRequest)(nil), // 28: v1.KickFromChannelRequest + (*KickFromChannelResponse)(nil), // 29: v1.KickFromChannelResponse + (*BanFromChannelRequest)(nil), // 30: v1.BanFromChannelRequest + (*BanFromChannelResponse)(nil), // 31: v1.BanFromChannelResponse + (*UnbanFromChannelRequest)(nil), // 32: v1.UnbanFromChannelRequest + (*UnbanFromChannelResponse)(nil), // 33: v1.UnbanFromChannelResponse + (*SetChannelModeratorRequest)(nil), // 34: v1.SetChannelModeratorRequest + (*SetChannelModeratorResponse)(nil), // 35: v1.SetChannelModeratorResponse + (*UnsetChannelModeratorRequest)(nil), // 36: v1.UnsetChannelModeratorRequest + (*UnsetChannelModeratorResponse)(nil), // 37: v1.UnsetChannelModeratorResponse + (*SetChannelMuteRequest)(nil), // 38: v1.SetChannelMuteRequest + (*SetChannelMuteResponse)(nil), // 39: v1.SetChannelMuteResponse + (*UnsetChannelMuteRequest)(nil), // 40: v1.UnsetChannelMuteRequest + (*UnsetChannelMuteResponse)(nil), // 41: v1.UnsetChannelMuteResponse + (*SetChannelOwnerRequest)(nil), // 42: v1.SetChannelOwnerRequest + (*SetChannelOwnerResponse)(nil), // 43: v1.SetChannelOwnerResponse + (*SetChannelPasswordRequest)(nil), // 44: v1.SetChannelPasswordRequest + (*SetChannelPasswordResponse)(nil), // 45: v1.SetChannelPasswordResponse + (*ToggleChannelModerationRequest)(nil), // 46: v1.ToggleChannelModerationRequest + (*ToggleChannelModerationResponse)(nil), // 47: v1.ToggleChannelModerationResponse + (*ToggleChannelAnnouncementsRequest)(nil), // 48: v1.ToggleChannelAnnouncementsRequest + (*ToggleChannelAnnouncementsResponse)(nil), // 49: v1.ToggleChannelAnnouncementsResponse + (*InviteToChannelRequest)(nil), // 50: v1.InviteToChannelRequest + (*InviteToChannelResponse)(nil), // 51: v1.InviteToChannelResponse + (*ChannelInfo)(nil), // 52: v1.ChannelInfo + (*ChannelMember)(nil), // 53: v1.ChannelMember } var file_chat_proto_depIdxs = []int32{ - 0, // 0: v1.SendWhisperMessageResponse.status:type_name -> v1.SendWhisperMessageResponse.Status - 1, // 1: v1.JoinChannelResponse.status:type_name -> v1.JoinChannelResponse.Status - 51, // 2: v1.JoinChannelResponse.channel:type_name -> v1.ChannelInfo - 2, // 3: v1.LeaveChannelResponse.status:type_name -> v1.LeaveChannelResponse.Status - 3, // 4: v1.SendChannelMessageResponse.status:type_name -> v1.SendChannelMessageResponse.Status - 4, // 5: v1.GetChannelListResponse.status:type_name -> v1.GetChannelListResponse.Status - 52, // 6: v1.GetChannelListResponse.members:type_name -> v1.ChannelMember - 5, // 7: v1.KickFromChannelResponse.status:type_name -> v1.KickFromChannelResponse.Status - 6, // 8: v1.BanFromChannelResponse.status:type_name -> v1.BanFromChannelResponse.Status - 7, // 9: v1.UnbanFromChannelResponse.status:type_name -> v1.UnbanFromChannelResponse.Status - 8, // 10: v1.SetChannelModeratorResponse.status:type_name -> v1.SetChannelModeratorResponse.Status - 9, // 11: v1.UnsetChannelModeratorResponse.status:type_name -> v1.UnsetChannelModeratorResponse.Status - 10, // 12: v1.SetChannelMuteResponse.status:type_name -> v1.SetChannelMuteResponse.Status - 11, // 13: v1.UnsetChannelMuteResponse.status:type_name -> v1.UnsetChannelMuteResponse.Status - 12, // 14: v1.SetChannelOwnerResponse.status:type_name -> v1.SetChannelOwnerResponse.Status - 13, // 15: v1.SetChannelPasswordResponse.status:type_name -> v1.SetChannelPasswordResponse.Status - 14, // 16: v1.ToggleChannelModerationResponse.status:type_name -> v1.ToggleChannelModerationResponse.Status - 15, // 17: v1.ToggleChannelAnnouncementsResponse.status:type_name -> v1.ToggleChannelAnnouncementsResponse.Status - 16, // 18: v1.InviteToChannelResponse.status:type_name -> v1.InviteToChannelResponse.Status - 17, // 19: v1.ChatService.SendWhisperMessage:input_type -> v1.SendWhisperMessageRequest - 19, // 20: v1.ChatService.JoinChannel:input_type -> v1.JoinChannelRequest - 21, // 21: v1.ChatService.LeaveChannel:input_type -> v1.LeaveChannelRequest - 23, // 22: v1.ChatService.SendChannelMessage:input_type -> v1.SendChannelMessageRequest - 25, // 23: v1.ChatService.GetChannelList:input_type -> v1.GetChannelListRequest - 27, // 24: v1.ChatService.KickFromChannel:input_type -> v1.KickFromChannelRequest - 29, // 25: v1.ChatService.BanFromChannel:input_type -> v1.BanFromChannelRequest - 31, // 26: v1.ChatService.UnbanFromChannel:input_type -> v1.UnbanFromChannelRequest - 33, // 27: v1.ChatService.SetChannelModerator:input_type -> v1.SetChannelModeratorRequest - 35, // 28: v1.ChatService.UnsetChannelModerator:input_type -> v1.UnsetChannelModeratorRequest - 37, // 29: v1.ChatService.SetChannelMute:input_type -> v1.SetChannelMuteRequest - 39, // 30: v1.ChatService.UnsetChannelMute:input_type -> v1.UnsetChannelMuteRequest - 41, // 31: v1.ChatService.SetChannelOwner:input_type -> v1.SetChannelOwnerRequest - 43, // 32: v1.ChatService.SetChannelPassword:input_type -> v1.SetChannelPasswordRequest - 45, // 33: v1.ChatService.ToggleChannelModeration:input_type -> v1.ToggleChannelModerationRequest - 47, // 34: v1.ChatService.ToggleChannelAnnouncements:input_type -> v1.ToggleChannelAnnouncementsRequest - 49, // 35: v1.ChatService.InviteToChannel:input_type -> v1.InviteToChannelRequest - 18, // 36: v1.ChatService.SendWhisperMessage:output_type -> v1.SendWhisperMessageResponse - 20, // 37: v1.ChatService.JoinChannel:output_type -> v1.JoinChannelResponse - 22, // 38: v1.ChatService.LeaveChannel:output_type -> v1.LeaveChannelResponse - 24, // 39: v1.ChatService.SendChannelMessage:output_type -> v1.SendChannelMessageResponse - 26, // 40: v1.ChatService.GetChannelList:output_type -> v1.GetChannelListResponse - 28, // 41: v1.ChatService.KickFromChannel:output_type -> v1.KickFromChannelResponse - 30, // 42: v1.ChatService.BanFromChannel:output_type -> v1.BanFromChannelResponse - 32, // 43: v1.ChatService.UnbanFromChannel:output_type -> v1.UnbanFromChannelResponse - 34, // 44: v1.ChatService.SetChannelModerator:output_type -> v1.SetChannelModeratorResponse - 36, // 45: v1.ChatService.UnsetChannelModerator:output_type -> v1.UnsetChannelModeratorResponse - 38, // 46: v1.ChatService.SetChannelMute:output_type -> v1.SetChannelMuteResponse - 40, // 47: v1.ChatService.UnsetChannelMute:output_type -> v1.UnsetChannelMuteResponse - 42, // 48: v1.ChatService.SetChannelOwner:output_type -> v1.SetChannelOwnerResponse - 44, // 49: v1.ChatService.SetChannelPassword:output_type -> v1.SetChannelPasswordResponse - 46, // 50: v1.ChatService.ToggleChannelModeration:output_type -> v1.ToggleChannelModerationResponse - 48, // 51: v1.ChatService.ToggleChannelAnnouncements:output_type -> v1.ToggleChannelAnnouncementsResponse - 50, // 52: v1.ChatService.InviteToChannel:output_type -> v1.InviteToChannelResponse - 36, // [36:53] is the sub-list for method output_type - 19, // [19:36] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 1, // 0: v1.SendWhisperMessageResponse.status:type_name -> v1.SendWhisperMessageResponse.Status + 0, // 1: v1.JoinChannelRequest.teamID:type_name -> v1.TeamID + 2, // 2: v1.JoinChannelResponse.status:type_name -> v1.JoinChannelResponse.Status + 52, // 3: v1.JoinChannelResponse.channel:type_name -> v1.ChannelInfo + 0, // 4: v1.LeaveChannelRequest.teamID:type_name -> v1.TeamID + 3, // 5: v1.LeaveChannelResponse.status:type_name -> v1.LeaveChannelResponse.Status + 0, // 6: v1.SendChannelMessageRequest.teamID:type_name -> v1.TeamID + 4, // 7: v1.SendChannelMessageResponse.status:type_name -> v1.SendChannelMessageResponse.Status + 0, // 8: v1.GetChannelListRequest.teamID:type_name -> v1.TeamID + 5, // 9: v1.GetChannelListResponse.status:type_name -> v1.GetChannelListResponse.Status + 53, // 10: v1.GetChannelListResponse.members:type_name -> v1.ChannelMember + 0, // 11: v1.KickFromChannelRequest.teamID:type_name -> v1.TeamID + 6, // 12: v1.KickFromChannelResponse.status:type_name -> v1.KickFromChannelResponse.Status + 0, // 13: v1.BanFromChannelRequest.teamID:type_name -> v1.TeamID + 7, // 14: v1.BanFromChannelResponse.status:type_name -> v1.BanFromChannelResponse.Status + 0, // 15: v1.UnbanFromChannelRequest.teamID:type_name -> v1.TeamID + 8, // 16: v1.UnbanFromChannelResponse.status:type_name -> v1.UnbanFromChannelResponse.Status + 0, // 17: v1.SetChannelModeratorRequest.teamID:type_name -> v1.TeamID + 9, // 18: v1.SetChannelModeratorResponse.status:type_name -> v1.SetChannelModeratorResponse.Status + 0, // 19: v1.UnsetChannelModeratorRequest.teamID:type_name -> v1.TeamID + 10, // 20: v1.UnsetChannelModeratorResponse.status:type_name -> v1.UnsetChannelModeratorResponse.Status + 0, // 21: v1.SetChannelMuteRequest.teamID:type_name -> v1.TeamID + 11, // 22: v1.SetChannelMuteResponse.status:type_name -> v1.SetChannelMuteResponse.Status + 0, // 23: v1.UnsetChannelMuteRequest.teamID:type_name -> v1.TeamID + 12, // 24: v1.UnsetChannelMuteResponse.status:type_name -> v1.UnsetChannelMuteResponse.Status + 0, // 25: v1.SetChannelOwnerRequest.teamID:type_name -> v1.TeamID + 13, // 26: v1.SetChannelOwnerResponse.status:type_name -> v1.SetChannelOwnerResponse.Status + 0, // 27: v1.SetChannelPasswordRequest.teamID:type_name -> v1.TeamID + 14, // 28: v1.SetChannelPasswordResponse.status:type_name -> v1.SetChannelPasswordResponse.Status + 0, // 29: v1.ToggleChannelModerationRequest.teamID:type_name -> v1.TeamID + 15, // 30: v1.ToggleChannelModerationResponse.status:type_name -> v1.ToggleChannelModerationResponse.Status + 0, // 31: v1.ToggleChannelAnnouncementsRequest.teamID:type_name -> v1.TeamID + 16, // 32: v1.ToggleChannelAnnouncementsResponse.status:type_name -> v1.ToggleChannelAnnouncementsResponse.Status + 0, // 33: v1.InviteToChannelRequest.teamID:type_name -> v1.TeamID + 17, // 34: v1.InviteToChannelResponse.status:type_name -> v1.InviteToChannelResponse.Status + 18, // 35: v1.ChatService.SendWhisperMessage:input_type -> v1.SendWhisperMessageRequest + 20, // 36: v1.ChatService.JoinChannel:input_type -> v1.JoinChannelRequest + 22, // 37: v1.ChatService.LeaveChannel:input_type -> v1.LeaveChannelRequest + 24, // 38: v1.ChatService.SendChannelMessage:input_type -> v1.SendChannelMessageRequest + 26, // 39: v1.ChatService.GetChannelList:input_type -> v1.GetChannelListRequest + 28, // 40: v1.ChatService.KickFromChannel:input_type -> v1.KickFromChannelRequest + 30, // 41: v1.ChatService.BanFromChannel:input_type -> v1.BanFromChannelRequest + 32, // 42: v1.ChatService.UnbanFromChannel:input_type -> v1.UnbanFromChannelRequest + 34, // 43: v1.ChatService.SetChannelModerator:input_type -> v1.SetChannelModeratorRequest + 36, // 44: v1.ChatService.UnsetChannelModerator:input_type -> v1.UnsetChannelModeratorRequest + 38, // 45: v1.ChatService.SetChannelMute:input_type -> v1.SetChannelMuteRequest + 40, // 46: v1.ChatService.UnsetChannelMute:input_type -> v1.UnsetChannelMuteRequest + 42, // 47: v1.ChatService.SetChannelOwner:input_type -> v1.SetChannelOwnerRequest + 44, // 48: v1.ChatService.SetChannelPassword:input_type -> v1.SetChannelPasswordRequest + 46, // 49: v1.ChatService.ToggleChannelModeration:input_type -> v1.ToggleChannelModerationRequest + 48, // 50: v1.ChatService.ToggleChannelAnnouncements:input_type -> v1.ToggleChannelAnnouncementsRequest + 50, // 51: v1.ChatService.InviteToChannel:input_type -> v1.InviteToChannelRequest + 19, // 52: v1.ChatService.SendWhisperMessage:output_type -> v1.SendWhisperMessageResponse + 21, // 53: v1.ChatService.JoinChannel:output_type -> v1.JoinChannelResponse + 23, // 54: v1.ChatService.LeaveChannel:output_type -> v1.LeaveChannelResponse + 25, // 55: v1.ChatService.SendChannelMessage:output_type -> v1.SendChannelMessageResponse + 27, // 56: v1.ChatService.GetChannelList:output_type -> v1.GetChannelListResponse + 29, // 57: v1.ChatService.KickFromChannel:output_type -> v1.KickFromChannelResponse + 31, // 58: v1.ChatService.BanFromChannel:output_type -> v1.BanFromChannelResponse + 33, // 59: v1.ChatService.UnbanFromChannel:output_type -> v1.UnbanFromChannelResponse + 35, // 60: v1.ChatService.SetChannelModerator:output_type -> v1.SetChannelModeratorResponse + 37, // 61: v1.ChatService.UnsetChannelModerator:output_type -> v1.UnsetChannelModeratorResponse + 39, // 62: v1.ChatService.SetChannelMute:output_type -> v1.SetChannelMuteResponse + 41, // 63: v1.ChatService.UnsetChannelMute:output_type -> v1.UnsetChannelMuteResponse + 43, // 64: v1.ChatService.SetChannelOwner:output_type -> v1.SetChannelOwnerResponse + 45, // 65: v1.ChatService.SetChannelPassword:output_type -> v1.SetChannelPasswordResponse + 47, // 66: v1.ChatService.ToggleChannelModeration:output_type -> v1.ToggleChannelModerationResponse + 49, // 67: v1.ChatService.ToggleChannelAnnouncements:output_type -> v1.ToggleChannelAnnouncementsResponse + 51, // 68: v1.ChatService.InviteToChannel:output_type -> v1.InviteToChannelResponse + 52, // [52:69] is the sub-list for method output_type + 35, // [35:52] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name } func init() { file_chat_proto_init() } @@ -4450,7 +4818,7 @@ func file_chat_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_chat_proto_rawDesc, - NumEnums: 17, + NumEnums: 18, NumMessages: 36, NumExtensions: 0, NumServices: 1, diff --git a/gen/chat/gen/chat/pb/chat_grpc.pb.go b/gen/chat/gen/chat/pb/chat_grpc.pb.go index 4ca578c..27a4311 100644 --- a/gen/chat/gen/chat/pb/chat_grpc.pb.go +++ b/gen/chat/gen/chat/pb/chat_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: chat.proto package pb diff --git a/gen/chat/pb/chat.pb.go b/gen/chat/pb/chat.pb.go index f9aab7f..226c5cc 100644 --- a/gen/chat/pb/chat.pb.go +++ b/gen/chat/pb/chat.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: chat.proto package pb @@ -72,8 +72,9 @@ func (TeamID) EnumDescriptor() ([]byte, []int) { type SendWhisperMessageResponse_Status int32 const ( - SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 - SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 + SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_CharacterAmbiguous SendWhisperMessageResponse_Status = 3 ) // Enum value maps for SendWhisperMessageResponse_Status. @@ -81,10 +82,12 @@ var ( SendWhisperMessageResponse_Status_name = map[int32]string{ 0: "Ok", 2: "CharacterNotFound", + 3: "CharacterAmbiguous", } SendWhisperMessageResponse_Status_value = map[string]int32{ - "Ok": 0, - "CharacterNotFound": 2, + "Ok": 0, + "CharacterNotFound": 2, + "CharacterAmbiguous": 3, } ) @@ -943,14 +946,20 @@ type SendWhisperMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` - Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,9,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + SenderClass uint32 `protobuf:"varint,10,opt,name=senderClass,proto3" json:"senderClass,omitempty"` + SenderGender uint32 `protobuf:"varint,11,opt,name=senderGender,proto3" json:"senderGender,omitempty"` + SenderAccountID uint32 `protobuf:"varint,12,opt,name=senderAccountID,proto3" json:"senderAccountID,omitempty"` + GatewayValidatedGameplayCrossrealmWhisper bool `protobuf:"varint,13,opt,name=gatewayValidatedGameplayCrossrealmWhisper,proto3" json:"gatewayValidatedGameplayCrossrealmWhisper,omitempty"` + SenderChatTag uint32 `protobuf:"varint,14,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendWhisperMessageRequest) Reset() { @@ -1041,14 +1050,61 @@ func (x *SendWhisperMessageRequest) GetMsg() string { return "" } +func (x *SendWhisperMessageRequest) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderClass() uint32 { + if x != nil { + return x.SenderClass + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderGender() uint32 { + if x != nil { + return x.SenderGender + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderAccountID() uint32 { + if x != nil { + return x.SenderAccountID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetGatewayValidatedGameplayCrossrealmWhisper() bool { + if x != nil { + return x.GatewayValidatedGameplayCrossrealmWhisper + } + return false +} + +func (x *SendWhisperMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendWhisperMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` - ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` + ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,4,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + ReceiverName string `protobuf:"bytes,5,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + ReceiverRace uint32 `protobuf:"varint,6,opt,name=receiverRace,proto3" json:"receiverRace,omitempty"` + ReceiverClass uint32 `protobuf:"varint,7,opt,name=receiverClass,proto3" json:"receiverClass,omitempty"` + ReceiverGender uint32 `protobuf:"varint,8,opt,name=receiverGender,proto3" json:"receiverGender,omitempty"` } func (x *SendWhisperMessageResponse) Reset() { @@ -1104,6 +1160,41 @@ func (x *SendWhisperMessageResponse) GetReceiverGUID() uint64 { return 0 } +func (x *SendWhisperMessageResponse) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverName() string { + if x != nil { + return x.ReceiverName + } + return "" +} + +func (x *SendWhisperMessageResponse) GetReceiverRace() uint32 { + if x != nil { + return x.ReceiverRace + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverClass() uint32 { + if x != nil { + return x.ReceiverClass + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverGender() uint32 { + if x != nil { + return x.ReceiverGender + } + return 0 +} + type JoinChannelRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1417,14 +1508,15 @@ type SendChannelMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` - TeamID TeamID `protobuf:"varint,8,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` + TeamID TeamID `protobuf:"varint,8,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + SenderChatTag uint32 `protobuf:"varint,9,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendChannelMessageRequest) Reset() { @@ -1515,6 +1607,13 @@ func (x *SendChannelMessageRequest) GetTeamID() TeamID { return TeamID_TEAM_ALLIANCE } +func (x *SendChannelMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendChannelMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3562,7 +3661,7 @@ var File_chat_proto protoreflect.FileDescriptor var file_chat_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, - 0x22, 0xf9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, + 0x22, 0x97, 0x04, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -3577,521 +3676,555 @@ var file_chat_proto_rawDesc = []byte{ 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xba, 0x01, 0x0a, - 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x22, 0xa4, 0x02, 0x0a, 0x12, 0x4a, 0x6f, - 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, - 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, - 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, - 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x22, 0xa7, - 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x0f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x5c, 0x0a, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, + 0x73, 0x70, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x92, 0x03, 0x0a, 0x1a, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x3f, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x41, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x03, 0x22, + 0xa4, 0x02, 0x0a, 0x12, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0x83, 0x02, - 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x22, 0xa8, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, - 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0xa9, - 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, - 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, - 0x22, 0xca, 0x01, 0x0a, 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x69, 0x63, - 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xae, 0x01, - 0x0a, 0x17, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, - 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, - 0x01, 0x0a, 0x15, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, - 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, - 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, - 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x17, 0x55, 0x6e, - 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, - 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x18, - 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, - 0xce, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, - 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, - 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x22, 0xb2, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, + 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x64, 0x10, 0x05, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x82, + 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, - 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xd0, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, - 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, - 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0x03, 0x22, 0xc7, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, - 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x72, 0x10, 0x01, 0x22, 0xa9, 0x02, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, + 0xa8, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0xca, 0x01, 0x0a, + 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xae, 0x01, 0x0a, 0x17, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, + 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x17, 0x55, - 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, - 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xca, 0x01, - 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, - 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x15, 0x42, + 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, + 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, + 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, + 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x22, 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x74, 0x75, 0x73, 0x22, 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x10, 0x02, 0x22, 0xb4, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, - 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, - 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x10, 0x02, 0x22, 0xb7, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, 0xce, 0x01, 0x0a, 0x1a, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, - 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xe4, - 0x01, 0x0a, 0x22, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, - 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, - 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, - 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, - 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, - 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x10, 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb2, 0x01, 0x0a, + 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x03, 0x22, 0xd0, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, - 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x70, + 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, + 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, + 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc7, 0x01, + 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, + 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x22, 0xb4, + 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x42, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x2c, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x6f, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, + 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, + 0x22, 0xb7, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xe4, 0x01, 0x0a, 0x22, 0x54, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, + 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x6e, + 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6c, 0x72, - 0x65, 0x61, 0x64, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, - 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x10, - 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x05, - 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, - 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, 0x0a, 0x0d, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x2a, 0x3d, 0x0a, 0x06, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4c, 0x4c, 0x49, - 0x41, 0x4e, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x48, - 0x4f, 0x52, 0x44, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4e, - 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x10, 0x02, 0x32, 0xf3, 0x0a, 0x0a, 0x0b, 0x43, 0x68, 0x61, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, - 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, - 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x76, - 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, - 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x17, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, - 0x0a, 0x0f, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, + 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, + 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, + 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x2a, 0x3d, 0x0a, 0x06, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, + 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x41, 0x4e, 0x43, 0x45, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x48, 0x4f, 0x52, 0x44, 0x45, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, + 0x41, 0x4c, 0x10, 0x02, 0x32, 0xf3, 0x0a, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, + 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, + 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x42, 0x61, - 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, - 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, - 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, - 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x55, 0x6e, - 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4b, + 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, + 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4a, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x62, 0x0a, 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x76, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, + 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, + 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, - 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0d, - 0x5a, 0x0b, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x65, + 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/gen/chat/pb/chat_grpc.pb.go b/gen/chat/pb/chat_grpc.pb.go index 4ca578c..27a4311 100644 --- a/gen/chat/pb/chat_grpc.pb.go +++ b/gen/chat/pb/chat_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: chat.proto package pb diff --git a/gen/group/pb/group.pb.go b/gen/group/pb/group.pb.go index 6e20280..22bfd95 100644 --- a/gen/group/pb/group.pb.go +++ b/gen/group/pb/group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: group.proto package pb @@ -115,6 +115,55 @@ func (AcceptInviteResponse_Status) EnumDescriptor() ([]byte, []int) { return file_group_proto_rawDescGZIP(), []int{3, 0} } +type DeclineInviteResponse_Status int32 + +const ( + DeclineInviteResponse_Ok DeclineInviteResponse_Status = 0 + DeclineInviteResponse_InviteNotFound DeclineInviteResponse_Status = 1 + DeclineInviteResponse_Error DeclineInviteResponse_Status = 2 +) + +// Enum value maps for DeclineInviteResponse_Status. +var ( + DeclineInviteResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "InviteNotFound", + 2: "Error", + } + DeclineInviteResponse_Status_value = map[string]int32{ + "Ok": 0, + "InviteNotFound": 1, + "Error": 2, + } +) + +func (x DeclineInviteResponse_Status) Enum() *DeclineInviteResponse_Status { + p := new(DeclineInviteResponse_Status) + *p = x + return p +} + +func (x DeclineInviteResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DeclineInviteResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_group_proto_enumTypes[2].Descriptor() +} + +func (DeclineInviteResponse_Status) Type() protoreflect.EnumType { + return &file_group_proto_enumTypes[2] +} + +func (x DeclineInviteResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DeclineInviteResponse_Status.Descriptor instead. +func (DeclineInviteResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{5, 0} +} + type UninviteResponse_Status int32 const ( @@ -145,11 +194,11 @@ func (x UninviteResponse_Status) String() string { } func (UninviteResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_group_proto_enumTypes[2].Descriptor() + return file_group_proto_enumTypes[3].Descriptor() } func (UninviteResponse_Status) Type() protoreflect.EnumType { - return &file_group_proto_enumTypes[2] + return &file_group_proto_enumTypes[3] } func (x UninviteResponse_Status) Number() protoreflect.EnumNumber { @@ -158,7 +207,7 @@ func (x UninviteResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use UninviteResponse_Status.Descriptor instead. func (UninviteResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{10, 0} + return file_group_proto_rawDescGZIP(), []int{15, 0} } type SetDungeonDifficultyResponse_Status int32 @@ -191,11 +240,11 @@ func (x SetDungeonDifficultyResponse_Status) String() string { } func (SetDungeonDifficultyResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_group_proto_enumTypes[3].Descriptor() + return file_group_proto_enumTypes[4].Descriptor() } func (SetDungeonDifficultyResponse_Status) Type() protoreflect.EnumType { - return &file_group_proto_enumTypes[3] + return &file_group_proto_enumTypes[4] } func (x SetDungeonDifficultyResponse_Status) Number() protoreflect.EnumNumber { @@ -204,7 +253,7 @@ func (x SetDungeonDifficultyResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use SetDungeonDifficultyResponse_Status.Descriptor instead. func (SetDungeonDifficultyResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{26, 0} + return file_group_proto_rawDescGZIP(), []int{31, 0} } type SetRaidDifficultyResponse_Status int32 @@ -237,11 +286,11 @@ func (x SetRaidDifficultyResponse_Status) String() string { } func (SetRaidDifficultyResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_group_proto_enumTypes[4].Descriptor() + return file_group_proto_enumTypes[5].Descriptor() } func (SetRaidDifficultyResponse_Status) Type() protoreflect.EnumType { - return &file_group_proto_enumTypes[4] + return &file_group_proto_enumTypes[5] } func (x SetRaidDifficultyResponse_Status) Number() protoreflect.EnumNumber { @@ -250,7 +299,7 @@ func (x SetRaidDifficultyResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use SetRaidDifficultyResponse_Status.Descriptor instead. func (SetRaidDifficultyResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{28, 0} + return file_group_proto_rawDescGZIP(), []int{33, 0} } type InviteParams struct { @@ -513,6 +562,124 @@ func (x *AcceptInviteResponse) GetStatus() AcceptInviteResponse_Status { return AcceptInviteResponse_Ok } +type DeclineInviteParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` +} + +func (x *DeclineInviteParams) Reset() { + *x = DeclineInviteParams{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeclineInviteParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeclineInviteParams) ProtoMessage() {} + +func (x *DeclineInviteParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeclineInviteParams.ProtoReflect.Descriptor instead. +func (*DeclineInviteParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{4} +} + +func (x *DeclineInviteParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DeclineInviteParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *DeclineInviteParams) GetPlayer() uint64 { + if x != nil { + return x.Player + } + return 0 +} + +type DeclineInviteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status DeclineInviteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.DeclineInviteResponse_Status" json:"status,omitempty"` +} + +func (x *DeclineInviteResponse) Reset() { + *x = DeclineInviteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeclineInviteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeclineInviteResponse) ProtoMessage() {} + +func (x *DeclineInviteResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeclineInviteResponse.ProtoReflect.Descriptor instead. +func (*DeclineInviteResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{5} +} + +func (x *DeclineInviteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DeclineInviteResponse) GetStatus() DeclineInviteResponse_Status { + if x != nil { + return x.Status + } + return DeclineInviteResponse_Ok +} + type GetGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -526,7 +693,7 @@ type GetGroupRequest struct { func (x *GetGroupRequest) Reset() { *x = GetGroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[4] + mi := &file_group_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -539,7 +706,7 @@ func (x *GetGroupRequest) String() string { func (*GetGroupRequest) ProtoMessage() {} func (x *GetGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[4] + mi := &file_group_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -552,7 +719,7 @@ func (x *GetGroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupRequest.ProtoReflect.Descriptor instead. func (*GetGroupRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{4} + return file_group_proto_rawDescGZIP(), []int{6} } func (x *GetGroupRequest) GetApi() string { @@ -588,7 +755,7 @@ type GetGroupResponse struct { func (x *GetGroupResponse) Reset() { *x = GetGroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[5] + mi := &file_group_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -601,7 +768,7 @@ func (x *GetGroupResponse) String() string { func (*GetGroupResponse) ProtoMessage() {} func (x *GetGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[5] + mi := &file_group_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -614,7 +781,7 @@ func (x *GetGroupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupResponse.ProtoReflect.Descriptor instead. func (*GetGroupResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{5} + return file_group_proto_rawDescGZIP(), []int{7} } func (x *GetGroupResponse) GetApi() string { @@ -644,7 +811,7 @@ type GetGroupByMemberRequest struct { func (x *GetGroupByMemberRequest) Reset() { *x = GetGroupByMemberRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[6] + mi := &file_group_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -657,7 +824,7 @@ func (x *GetGroupByMemberRequest) String() string { func (*GetGroupByMemberRequest) ProtoMessage() {} func (x *GetGroupByMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[6] + mi := &file_group_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -670,7 +837,7 @@ func (x *GetGroupByMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupByMemberRequest.ProtoReflect.Descriptor instead. func (*GetGroupByMemberRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{6} + return file_group_proto_rawDescGZIP(), []int{8} } func (x *GetGroupByMemberRequest) GetApi() string { @@ -707,7 +874,7 @@ type GetGroupIDByPlayerRequest struct { func (x *GetGroupIDByPlayerRequest) Reset() { *x = GetGroupIDByPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[7] + mi := &file_group_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -720,7 +887,7 @@ func (x *GetGroupIDByPlayerRequest) String() string { func (*GetGroupIDByPlayerRequest) ProtoMessage() {} func (x *GetGroupIDByPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[7] + mi := &file_group_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -733,7 +900,7 @@ func (x *GetGroupIDByPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupIDByPlayerRequest.ProtoReflect.Descriptor instead. func (*GetGroupIDByPlayerRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{7} + return file_group_proto_rawDescGZIP(), []int{9} } func (x *GetGroupIDByPlayerRequest) GetApi() string { @@ -762,14 +929,15 @@ type GetGroupIDByPlayerResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GroupID uint32 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GroupID uint32 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"` + GroupRealmID uint32 `protobuf:"varint,3,opt,name=groupRealmID,proto3" json:"groupRealmID,omitempty"` } func (x *GetGroupIDByPlayerResponse) Reset() { *x = GetGroupIDByPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[8] + mi := &file_group_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -782,7 +950,7 @@ func (x *GetGroupIDByPlayerResponse) String() string { func (*GetGroupIDByPlayerResponse) ProtoMessage() {} func (x *GetGroupIDByPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[8] + mi := &file_group_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -795,7 +963,7 @@ func (x *GetGroupIDByPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupIDByPlayerResponse.ProtoReflect.Descriptor instead. func (*GetGroupIDByPlayerResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{8} + return file_group_proto_rawDescGZIP(), []int{10} } func (x *GetGroupIDByPlayerResponse) GetApi() string { @@ -812,35 +980,40 @@ func (x *GetGroupIDByPlayerResponse) GetGroupID() uint32 { return 0 } -type UninviteParams struct { +func (x *GetGroupIDByPlayerResponse) GetGroupRealmID() uint32 { + if x != nil { + return x.GroupRealmID + } + return 0 +} + +type GetMemberPlacementsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Initiator uint64 `protobuf:"varint,3,opt,name=initiator,proto3" json:"initiator,omitempty"` - Target uint64 `protobuf:"varint,4,opt,name=target,proto3" json:"target,omitempty"` - Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MemberGUIDs []uint64 `protobuf:"varint,3,rep,packed,name=memberGUIDs,proto3" json:"memberGUIDs,omitempty"` } -func (x *UninviteParams) Reset() { - *x = UninviteParams{} +func (x *GetMemberPlacementsRequest) Reset() { + *x = GetMemberPlacementsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[9] + mi := &file_group_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UninviteParams) String() string { +func (x *GetMemberPlacementsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UninviteParams) ProtoMessage() {} +func (*GetMemberPlacementsRequest) ProtoMessage() {} -func (x *UninviteParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[9] +func (x *GetMemberPlacementsRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -851,72 +1024,66 @@ func (x *UninviteParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UninviteParams.ProtoReflect.Descriptor instead. -func (*UninviteParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{9} +// Deprecated: Use GetMemberPlacementsRequest.ProtoReflect.Descriptor instead. +func (*GetMemberPlacementsRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{11} } -func (x *UninviteParams) GetApi() string { +func (x *GetMemberPlacementsRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *UninviteParams) GetRealmID() uint32 { +func (x *GetMemberPlacementsRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *UninviteParams) GetInitiator() uint64 { - if x != nil { - return x.Initiator - } - return 0 -} - -func (x *UninviteParams) GetTarget() uint64 { - if x != nil { - return x.Target - } - return 0 -} - -func (x *UninviteParams) GetReason() string { +func (x *GetMemberPlacementsRequest) GetMemberGUIDs() []uint64 { if x != nil { - return x.Reason + return x.MemberGUIDs } - return "" + return nil } -type UninviteResponse struct { +type MemberPlacement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status UninviteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.UninviteResponse_Status" json:"status,omitempty"` + MemberGUID uint64 `protobuf:"varint,1,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Online bool `protobuf:"varint,2,opt,name=online,proto3" json:"online,omitempty"` + Fresh bool `protobuf:"varint,3,opt,name=fresh,proto3" json:"fresh,omitempty"` + GatewayID string `protobuf:"bytes,4,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + WorldserverID string `protobuf:"bytes,5,opt,name=worldserverID,proto3" json:"worldserverID,omitempty"` + MapID uint32 `protobuf:"varint,6,opt,name=mapID,proto3" json:"mapID,omitempty"` + InstanceID uint32 `protobuf:"varint,7,opt,name=instanceID,proto3" json:"instanceID,omitempty"` + InstanceKnown bool `protobuf:"varint,8,opt,name=instanceKnown,proto3" json:"instanceKnown,omitempty"` + TimestampMs uint64 `protobuf:"varint,9,opt,name=timestampMs,proto3" json:"timestampMs,omitempty"` + UpdatedAtMs uint64 `protobuf:"varint,10,opt,name=updatedAtMs,proto3" json:"updatedAtMs,omitempty"` } -func (x *UninviteResponse) Reset() { - *x = UninviteResponse{} +func (x *MemberPlacement) Reset() { + *x = MemberPlacement{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[10] + mi := &file_group_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UninviteResponse) String() string { +func (x *MemberPlacement) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UninviteResponse) ProtoMessage() {} +func (*MemberPlacement) ProtoMessage() {} -func (x *UninviteResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[10] +func (x *MemberPlacement) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -927,113 +1094,107 @@ func (x *UninviteResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UninviteResponse.ProtoReflect.Descriptor instead. -func (*UninviteResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{10} +// Deprecated: Use MemberPlacement.ProtoReflect.Descriptor instead. +func (*MemberPlacement) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{12} } -func (x *UninviteResponse) GetApi() string { +func (x *MemberPlacement) GetMemberGUID() uint64 { if x != nil { - return x.Api + return x.MemberGUID } - return "" + return 0 } -func (x *UninviteResponse) GetStatus() UninviteResponse_Status { +func (x *MemberPlacement) GetOnline() bool { if x != nil { - return x.Status + return x.Online } - return UninviteResponse_Ok -} - -type GroupLeaveParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` + return false } -func (x *GroupLeaveParams) Reset() { - *x = GroupLeaveParams{} - if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *MemberPlacement) GetFresh() bool { + if x != nil { + return x.Fresh } + return false } -func (x *GroupLeaveParams) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *MemberPlacement) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" } -func (*GroupLeaveParams) ProtoMessage() {} +func (x *MemberPlacement) GetWorldserverID() string { + if x != nil { + return x.WorldserverID + } + return "" +} -func (x *GroupLeaveParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *MemberPlacement) GetMapID() uint32 { + if x != nil { + return x.MapID } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use GroupLeaveParams.ProtoReflect.Descriptor instead. -func (*GroupLeaveParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{11} +func (x *MemberPlacement) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 } -func (x *GroupLeaveParams) GetApi() string { +func (x *MemberPlacement) GetInstanceKnown() bool { if x != nil { - return x.Api + return x.InstanceKnown } - return "" + return false } -func (x *GroupLeaveParams) GetRealmID() uint32 { +func (x *MemberPlacement) GetTimestampMs() uint64 { if x != nil { - return x.RealmID + return x.TimestampMs } return 0 } -func (x *GroupLeaveParams) GetPlayer() uint64 { +func (x *MemberPlacement) GetUpdatedAtMs() uint64 { if x != nil { - return x.Player + return x.UpdatedAtMs } return 0 } -type GroupLeaveResponse struct { +type GetMemberPlacementsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Placements []*MemberPlacement `protobuf:"bytes,2,rep,name=placements,proto3" json:"placements,omitempty"` } -func (x *GroupLeaveResponse) Reset() { - *x = GroupLeaveResponse{} +func (x *GetMemberPlacementsResponse) Reset() { + *x = GetMemberPlacementsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[12] + mi := &file_group_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GroupLeaveResponse) String() string { +func (x *GetMemberPlacementsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GroupLeaveResponse) ProtoMessage() {} +func (*GetMemberPlacementsResponse) ProtoMessage() {} -func (x *GroupLeaveResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[12] +func (x *GetMemberPlacementsResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1044,45 +1205,54 @@ func (x *GroupLeaveResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GroupLeaveResponse.ProtoReflect.Descriptor instead. -func (*GroupLeaveResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{12} +// Deprecated: Use GetMemberPlacementsResponse.ProtoReflect.Descriptor instead. +func (*GetMemberPlacementsResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{13} } -func (x *GroupLeaveResponse) GetApi() string { +func (x *GetMemberPlacementsResponse) GetApi() string { if x != nil { return x.Api } return "" } -type ConvertToRaidParams struct { +func (x *GetMemberPlacementsResponse) GetPlacements() []*MemberPlacement { + if x != nil { + return x.Placements + } + return nil +} + +type UninviteParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Initiator uint64 `protobuf:"varint,3,opt,name=initiator,proto3" json:"initiator,omitempty"` + Target uint64 `protobuf:"varint,4,opt,name=target,proto3" json:"target,omitempty"` + Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` } -func (x *ConvertToRaidParams) Reset() { - *x = ConvertToRaidParams{} +func (x *UninviteParams) Reset() { + *x = UninviteParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[13] + mi := &file_group_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConvertToRaidParams) String() string { +func (x *UninviteParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConvertToRaidParams) ProtoMessage() {} +func (*UninviteParams) ProtoMessage() {} -func (x *ConvertToRaidParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[13] +func (x *UninviteParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1093,57 +1263,72 @@ func (x *ConvertToRaidParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConvertToRaidParams.ProtoReflect.Descriptor instead. -func (*ConvertToRaidParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{13} +// Deprecated: Use UninviteParams.ProtoReflect.Descriptor instead. +func (*UninviteParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{14} } -func (x *ConvertToRaidParams) GetApi() string { +func (x *UninviteParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ConvertToRaidParams) GetRealmID() uint32 { +func (x *UninviteParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *ConvertToRaidParams) GetPlayer() uint64 { +func (x *UninviteParams) GetInitiator() uint64 { if x != nil { - return x.Player + return x.Initiator } return 0 } -type ConvertToRaidResponse struct { +func (x *UninviteParams) GetTarget() uint64 { + if x != nil { + return x.Target + } + return 0 +} + +func (x *UninviteParams) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +type UninviteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status UninviteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.UninviteResponse_Status" json:"status,omitempty"` } -func (x *ConvertToRaidResponse) Reset() { - *x = ConvertToRaidResponse{} +func (x *UninviteResponse) Reset() { + *x = UninviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[14] + mi := &file_group_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConvertToRaidResponse) String() string { +func (x *UninviteResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConvertToRaidResponse) ProtoMessage() {} +func (*UninviteResponse) ProtoMessage() {} -func (x *ConvertToRaidResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[14] +func (x *UninviteResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1154,46 +1339,52 @@ func (x *ConvertToRaidResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConvertToRaidResponse.ProtoReflect.Descriptor instead. -func (*ConvertToRaidResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{14} +// Deprecated: Use UninviteResponse.ProtoReflect.Descriptor instead. +func (*UninviteResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{15} } -func (x *ConvertToRaidResponse) GetApi() string { +func (x *UninviteResponse) GetApi() string { if x != nil { return x.Api } return "" } -type ChangeLeaderParams struct { +func (x *UninviteResponse) GetStatus() UninviteResponse_Status { + if x != nil { + return x.Status + } + return UninviteResponse_Ok +} + +type GroupLeaveParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` - NewLeader uint64 `protobuf:"varint,4,opt,name=newLeader,proto3" json:"newLeader,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` } -func (x *ChangeLeaderParams) Reset() { - *x = ChangeLeaderParams{} +func (x *GroupLeaveParams) Reset() { + *x = GroupLeaveParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[15] + mi := &file_group_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeLeaderParams) String() string { +func (x *GroupLeaveParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeLeaderParams) ProtoMessage() {} +func (*GroupLeaveParams) ProtoMessage() {} -func (x *ChangeLeaderParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[15] +func (x *GroupLeaveParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1204,40 +1395,33 @@ func (x *ChangeLeaderParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeLeaderParams.ProtoReflect.Descriptor instead. -func (*ChangeLeaderParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{15} +// Deprecated: Use GroupLeaveParams.ProtoReflect.Descriptor instead. +func (*GroupLeaveParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{16} } -func (x *ChangeLeaderParams) GetApi() string { +func (x *GroupLeaveParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ChangeLeaderParams) GetRealmID() uint32 { +func (x *GroupLeaveParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *ChangeLeaderParams) GetPlayer() uint64 { +func (x *GroupLeaveParams) GetPlayer() uint64 { if x != nil { return x.Player } return 0 } -func (x *ChangeLeaderParams) GetNewLeader() uint64 { - if x != nil { - return x.NewLeader - } - return 0 -} - -type ChangeLeaderResponse struct { +type GroupLeaveResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1245,23 +1429,23 @@ type ChangeLeaderResponse struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *ChangeLeaderResponse) Reset() { - *x = ChangeLeaderResponse{} +func (x *GroupLeaveResponse) Reset() { + *x = GroupLeaveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[16] + mi := &file_group_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeLeaderResponse) String() string { +func (x *GroupLeaveResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeLeaderResponse) ProtoMessage() {} +func (*GroupLeaveResponse) ProtoMessage() {} -func (x *ChangeLeaderResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[16] +func (x *GroupLeaveResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1272,48 +1456,45 @@ func (x *ChangeLeaderResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeLeaderResponse.ProtoReflect.Descriptor instead. -func (*ChangeLeaderResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{16} +// Deprecated: Use GroupLeaveResponse.ProtoReflect.Descriptor instead. +func (*GroupLeaveResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{17} } -func (x *ChangeLeaderResponse) GetApi() string { +func (x *GroupLeaveResponse) GetApi() string { if x != nil { return x.Api } return "" } -type SendGroupMessageParams struct { +type ConvertToRaidParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - MessageType uint32 `protobuf:"varint,4,opt,name=messageType,proto3" json:"messageType,omitempty"` - Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` } -func (x *SendGroupMessageParams) Reset() { - *x = SendGroupMessageParams{} +func (x *ConvertToRaidParams) Reset() { + *x = ConvertToRaidParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[17] + mi := &file_group_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SendGroupMessageParams) String() string { +func (x *ConvertToRaidParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SendGroupMessageParams) ProtoMessage() {} +func (*ConvertToRaidParams) ProtoMessage() {} -func (x *SendGroupMessageParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[17] +func (x *ConvertToRaidParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1324,78 +1505,57 @@ func (x *SendGroupMessageParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SendGroupMessageParams.ProtoReflect.Descriptor instead. -func (*SendGroupMessageParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{17} +// Deprecated: Use ConvertToRaidParams.ProtoReflect.Descriptor instead. +func (*ConvertToRaidParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{18} } -func (x *SendGroupMessageParams) GetApi() string { +func (x *ConvertToRaidParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SendGroupMessageParams) GetRealmID() uint32 { +func (x *ConvertToRaidParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SendGroupMessageParams) GetSenderGUID() uint64 { +func (x *ConvertToRaidParams) GetPlayer() uint64 { if x != nil { - return x.SenderGUID + return x.Player } return 0 } -func (x *SendGroupMessageParams) GetMessageType() uint32 { - if x != nil { - return x.MessageType - } - return 0 +type ConvertToRaidResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SendGroupMessageParams) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *SendGroupMessageParams) GetLanguage() uint32 { - if x != nil { - return x.Language - } - return 0 -} - -type SendGroupMessageResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` -} - -func (x *SendGroupMessageResponse) Reset() { - *x = SendGroupMessageResponse{} +func (x *ConvertToRaidResponse) Reset() { + *x = ConvertToRaidResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[18] + mi := &file_group_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SendGroupMessageResponse) String() string { +func (x *ConvertToRaidResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SendGroupMessageResponse) ProtoMessage() {} +func (*ConvertToRaidResponse) ProtoMessage() {} -func (x *SendGroupMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[18] +func (x *ConvertToRaidResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1406,47 +1566,46 @@ func (x *SendGroupMessageResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SendGroupMessageResponse.ProtoReflect.Descriptor instead. -func (*SendGroupMessageResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{18} +// Deprecated: Use ConvertToRaidResponse.ProtoReflect.Descriptor instead. +func (*ConvertToRaidResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{19} } -func (x *SendGroupMessageResponse) GetApi() string { +func (x *ConvertToRaidResponse) GetApi() string { if x != nil { return x.Api } return "" } -type SetGroupTargetIconRequest struct { +type ChangeLeaderParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` - IconID uint32 `protobuf:"varint,4,opt,name=iconID,proto3" json:"iconID,omitempty"` - TargetGUID uint64 `protobuf:"varint,5,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` + NewLeader uint64 `protobuf:"varint,4,opt,name=newLeader,proto3" json:"newLeader,omitempty"` } -func (x *SetGroupTargetIconRequest) Reset() { - *x = SetGroupTargetIconRequest{} +func (x *ChangeLeaderParams) Reset() { + *x = ChangeLeaderParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[19] + mi := &file_group_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetGroupTargetIconRequest) String() string { +func (x *ChangeLeaderParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetGroupTargetIconRequest) ProtoMessage() {} +func (*ChangeLeaderParams) ProtoMessage() {} -func (x *SetGroupTargetIconRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[19] +func (x *ChangeLeaderParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1457,47 +1616,40 @@ func (x *SetGroupTargetIconRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetGroupTargetIconRequest.ProtoReflect.Descriptor instead. -func (*SetGroupTargetIconRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{19} +// Deprecated: Use ChangeLeaderParams.ProtoReflect.Descriptor instead. +func (*ChangeLeaderParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{20} } -func (x *SetGroupTargetIconRequest) GetApi() string { +func (x *ChangeLeaderParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetGroupTargetIconRequest) GetRealmID() uint32 { +func (x *ChangeLeaderParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetGroupTargetIconRequest) GetSetterGUID() uint64 { - if x != nil { - return x.SetterGUID - } - return 0 -} - -func (x *SetGroupTargetIconRequest) GetIconID() uint32 { +func (x *ChangeLeaderParams) GetPlayer() uint64 { if x != nil { - return x.IconID + return x.Player } return 0 } -func (x *SetGroupTargetIconRequest) GetTargetGUID() uint64 { +func (x *ChangeLeaderParams) GetNewLeader() uint64 { if x != nil { - return x.TargetGUID + return x.NewLeader } return 0 } -type SetGroupTargetIconResponse struct { +type ChangeLeaderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1505,23 +1657,23 @@ type SetGroupTargetIconResponse struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SetGroupTargetIconResponse) Reset() { - *x = SetGroupTargetIconResponse{} +func (x *ChangeLeaderResponse) Reset() { + *x = ChangeLeaderResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[20] + mi := &file_group_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetGroupTargetIconResponse) String() string { +func (x *ChangeLeaderResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetGroupTargetIconResponse) ProtoMessage() {} +func (*ChangeLeaderResponse) ProtoMessage() {} -func (x *SetGroupTargetIconResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[20] +func (x *ChangeLeaderResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1532,45 +1684,49 @@ func (x *SetGroupTargetIconResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetGroupTargetIconResponse.ProtoReflect.Descriptor instead. -func (*SetGroupTargetIconResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{20} +// Deprecated: Use ChangeLeaderResponse.ProtoReflect.Descriptor instead. +func (*ChangeLeaderResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{21} } -func (x *SetGroupTargetIconResponse) GetApi() string { +func (x *ChangeLeaderResponse) GetApi() string { if x != nil { return x.Api } return "" } -type GetGroupTargetIconsRequest struct { +type SendGroupMessageParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + MessageType uint32 `protobuf:"varint,4,opt,name=messageType,proto3" json:"messageType,omitempty"` + Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + SenderChatTag uint32 `protobuf:"varint,7,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } -func (x *GetGroupTargetIconsRequest) Reset() { - *x = GetGroupTargetIconsRequest{} +func (x *SendGroupMessageParams) Reset() { + *x = SendGroupMessageParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[21] + mi := &file_group_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupTargetIconsRequest) String() string { +func (x *SendGroupMessageParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupTargetIconsRequest) ProtoMessage() {} +func (*SendGroupMessageParams) ProtoMessage() {} -func (x *GetGroupTargetIconsRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[21] +func (x *SendGroupMessageParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1581,58 +1737,85 @@ func (x *GetGroupTargetIconsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupTargetIconsRequest.ProtoReflect.Descriptor instead. -func (*GetGroupTargetIconsRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{21} +// Deprecated: Use SendGroupMessageParams.ProtoReflect.Descriptor instead. +func (*SendGroupMessageParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{22} } -func (x *GetGroupTargetIconsRequest) GetApi() string { +func (x *SendGroupMessageParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetGroupTargetIconsRequest) GetRealmID() uint32 { +func (x *SendGroupMessageParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *GetGroupTargetIconsRequest) GetPlayerGUID() uint64 { +func (x *SendGroupMessageParams) GetSenderGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.SenderGUID } return 0 } -type GetGroupTargetIconsResponse struct { +func (x *SendGroupMessageParams) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *SendGroupMessageParams) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *SendGroupMessageParams) GetLanguage() uint32 { + if x != nil { + return x.Language + } + return 0 +} + +func (x *SendGroupMessageParams) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + +type SendGroupMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Targets []uint64 `protobuf:"varint,2,rep,packed,name=targets,proto3" json:"targets,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *GetGroupTargetIconsResponse) Reset() { - *x = GetGroupTargetIconsResponse{} +func (x *SendGroupMessageResponse) Reset() { + *x = SendGroupMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[22] + mi := &file_group_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupTargetIconsResponse) String() string { +func (x *SendGroupMessageResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupTargetIconsResponse) ProtoMessage() {} +func (*SendGroupMessageResponse) ProtoMessage() {} -func (x *GetGroupTargetIconsResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[22] +func (x *SendGroupMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1643,55 +1826,47 @@ func (x *GetGroupTargetIconsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupTargetIconsResponse.ProtoReflect.Descriptor instead. -func (*GetGroupTargetIconsResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{22} +// Deprecated: Use SendGroupMessageResponse.ProtoReflect.Descriptor instead. +func (*SendGroupMessageResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{23} } -func (x *GetGroupTargetIconsResponse) GetApi() string { +func (x *SendGroupMessageResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetGroupTargetIconsResponse) GetTargets() []uint64 { - if x != nil { - return x.Targets - } - return nil -} - -type SetLootMethodRequest struct { +type SetGroupTargetIconRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Method uint32 `protobuf:"varint,4,opt,name=method,proto3" json:"method,omitempty"` - LootMaster uint64 `protobuf:"varint,5,opt,name=lootMaster,proto3" json:"lootMaster,omitempty"` - LootThreshold uint32 `protobuf:"varint,6,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` + IconID uint32 `protobuf:"varint,4,opt,name=iconID,proto3" json:"iconID,omitempty"` + TargetGUID uint64 `protobuf:"varint,5,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` } -func (x *SetLootMethodRequest) Reset() { - *x = SetLootMethodRequest{} +func (x *SetGroupTargetIconRequest) Reset() { + *x = SetGroupTargetIconRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[23] + mi := &file_group_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetLootMethodRequest) String() string { +func (x *SetGroupTargetIconRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetLootMethodRequest) ProtoMessage() {} +func (*SetGroupTargetIconRequest) ProtoMessage() {} -func (x *SetLootMethodRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[23] +func (x *SetGroupTargetIconRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1702,54 +1877,47 @@ func (x *SetLootMethodRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetLootMethodRequest.ProtoReflect.Descriptor instead. -func (*SetLootMethodRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{23} +// Deprecated: Use SetGroupTargetIconRequest.ProtoReflect.Descriptor instead. +func (*SetGroupTargetIconRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{24} } -func (x *SetLootMethodRequest) GetApi() string { +func (x *SetGroupTargetIconRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetLootMethodRequest) GetRealmID() uint32 { +func (x *SetGroupTargetIconRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetLootMethodRequest) GetPlayerGUID() uint64 { +func (x *SetGroupTargetIconRequest) GetSetterGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.SetterGUID } return 0 } -func (x *SetLootMethodRequest) GetMethod() uint32 { +func (x *SetGroupTargetIconRequest) GetIconID() uint32 { if x != nil { - return x.Method + return x.IconID } return 0 } -func (x *SetLootMethodRequest) GetLootMaster() uint64 { - if x != nil { - return x.LootMaster - } - return 0 -} - -func (x *SetLootMethodRequest) GetLootThreshold() uint32 { +func (x *SetGroupTargetIconRequest) GetTargetGUID() uint64 { if x != nil { - return x.LootThreshold + return x.TargetGUID } return 0 } -type SetLootMethodResponse struct { +type SetGroupTargetIconResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1757,23 +1925,23 @@ type SetLootMethodResponse struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SetLootMethodResponse) Reset() { - *x = SetLootMethodResponse{} +func (x *SetGroupTargetIconResponse) Reset() { + *x = SetGroupTargetIconResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[24] + mi := &file_group_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetLootMethodResponse) String() string { +func (x *SetGroupTargetIconResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetLootMethodResponse) ProtoMessage() {} +func (*SetGroupTargetIconResponse) ProtoMessage() {} -func (x *SetLootMethodResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[24] +func (x *SetGroupTargetIconResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1784,19 +1952,19 @@ func (x *SetLootMethodResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetLootMethodResponse.ProtoReflect.Descriptor instead. -func (*SetLootMethodResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{24} +// Deprecated: Use SetGroupTargetIconResponse.ProtoReflect.Descriptor instead. +func (*SetGroupTargetIconResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{25} } -func (x *SetLootMethodResponse) GetApi() string { +func (x *SetGroupTargetIconResponse) GetApi() string { if x != nil { return x.Api } return "" } -type SetDungeonDifficultyRequest struct { +type GetGroupTargetIconsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1804,26 +1972,25 @@ type SetDungeonDifficultyRequest struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` } -func (x *SetDungeonDifficultyRequest) Reset() { - *x = SetDungeonDifficultyRequest{} +func (x *GetGroupTargetIconsRequest) Reset() { + *x = GetGroupTargetIconsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[25] + mi := &file_group_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetDungeonDifficultyRequest) String() string { +func (x *GetGroupTargetIconsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetDungeonDifficultyRequest) ProtoMessage() {} +func (*GetGroupTargetIconsRequest) ProtoMessage() {} -func (x *SetDungeonDifficultyRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[25] +func (x *GetGroupTargetIconsRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1834,65 +2001,58 @@ func (x *SetDungeonDifficultyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetDungeonDifficultyRequest.ProtoReflect.Descriptor instead. -func (*SetDungeonDifficultyRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{25} +// Deprecated: Use GetGroupTargetIconsRequest.ProtoReflect.Descriptor instead. +func (*GetGroupTargetIconsRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{26} } -func (x *SetDungeonDifficultyRequest) GetApi() string { +func (x *GetGroupTargetIconsRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetDungeonDifficultyRequest) GetRealmID() uint32 { +func (x *GetGroupTargetIconsRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetDungeonDifficultyRequest) GetPlayerGUID() uint64 { +func (x *GetGroupTargetIconsRequest) GetPlayerGUID() uint64 { if x != nil { return x.PlayerGUID } return 0 } -func (x *SetDungeonDifficultyRequest) GetDifficulty() uint32 { - if x != nil { - return x.Difficulty - } - return 0 -} - -type SetDungeonDifficultyResponse struct { +type GetGroupTargetIconsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SetDungeonDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetDungeonDifficultyResponse_Status" json:"status,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Targets []uint64 `protobuf:"varint,2,rep,packed,name=targets,proto3" json:"targets,omitempty"` } -func (x *SetDungeonDifficultyResponse) Reset() { - *x = SetDungeonDifficultyResponse{} +func (x *GetGroupTargetIconsResponse) Reset() { + *x = GetGroupTargetIconsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[26] + mi := &file_group_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetDungeonDifficultyResponse) String() string { +func (x *GetGroupTargetIconsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetDungeonDifficultyResponse) ProtoMessage() {} +func (*GetGroupTargetIconsResponse) ProtoMessage() {} -func (x *SetDungeonDifficultyResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[26] +func (x *GetGroupTargetIconsResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1903,53 +2063,55 @@ func (x *SetDungeonDifficultyResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetDungeonDifficultyResponse.ProtoReflect.Descriptor instead. -func (*SetDungeonDifficultyResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{26} +// Deprecated: Use GetGroupTargetIconsResponse.ProtoReflect.Descriptor instead. +func (*GetGroupTargetIconsResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{27} } -func (x *SetDungeonDifficultyResponse) GetApi() string { +func (x *GetGroupTargetIconsResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetDungeonDifficultyResponse) GetStatus() SetDungeonDifficultyResponse_Status { +func (x *GetGroupTargetIconsResponse) GetTargets() []uint64 { if x != nil { - return x.Status + return x.Targets } - return SetDungeonDifficultyResponse_Ok + return nil } -type SetRaidDifficultyRequest struct { +type SetLootMethodRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Method uint32 `protobuf:"varint,4,opt,name=method,proto3" json:"method,omitempty"` + LootMaster uint64 `protobuf:"varint,5,opt,name=lootMaster,proto3" json:"lootMaster,omitempty"` + LootThreshold uint32 `protobuf:"varint,6,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` } -func (x *SetRaidDifficultyRequest) Reset() { - *x = SetRaidDifficultyRequest{} +func (x *SetLootMethodRequest) Reset() { + *x = SetLootMethodRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[27] + mi := &file_group_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetRaidDifficultyRequest) String() string { +func (x *SetLootMethodRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetRaidDifficultyRequest) ProtoMessage() {} +func (*SetLootMethodRequest) ProtoMessage() {} -func (x *SetRaidDifficultyRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[27] +func (x *SetLootMethodRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1960,65 +2122,78 @@ func (x *SetRaidDifficultyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetRaidDifficultyRequest.ProtoReflect.Descriptor instead. -func (*SetRaidDifficultyRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{27} +// Deprecated: Use SetLootMethodRequest.ProtoReflect.Descriptor instead. +func (*SetLootMethodRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{28} } -func (x *SetRaidDifficultyRequest) GetApi() string { +func (x *SetLootMethodRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetRaidDifficultyRequest) GetRealmID() uint32 { +func (x *SetLootMethodRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetRaidDifficultyRequest) GetPlayerGUID() uint64 { +func (x *SetLootMethodRequest) GetPlayerGUID() uint64 { if x != nil { return x.PlayerGUID } return 0 } -func (x *SetRaidDifficultyRequest) GetDifficulty() uint32 { +func (x *SetLootMethodRequest) GetMethod() uint32 { if x != nil { - return x.Difficulty + return x.Method } return 0 } -type SetRaidDifficultyResponse struct { +func (x *SetLootMethodRequest) GetLootMaster() uint64 { + if x != nil { + return x.LootMaster + } + return 0 +} + +func (x *SetLootMethodRequest) GetLootThreshold() uint32 { + if x != nil { + return x.LootThreshold + } + return 0 +} + +type SetLootMethodResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SetRaidDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetRaidDifficultyResponse_Status" json:"status,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SetRaidDifficultyResponse) Reset() { - *x = SetRaidDifficultyResponse{} +func (x *SetLootMethodResponse) Reset() { + *x = SetLootMethodResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[28] + mi := &file_group_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetRaidDifficultyResponse) String() string { +func (x *SetLootMethodResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetRaidDifficultyResponse) ProtoMessage() {} +func (*SetLootMethodResponse) ProtoMessage() {} -func (x *SetRaidDifficultyResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[28] +func (x *SetLootMethodResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2029,55 +2204,46 @@ func (x *SetRaidDifficultyResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetRaidDifficultyResponse.ProtoReflect.Descriptor instead. -func (*SetRaidDifficultyResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{28} +// Deprecated: Use SetLootMethodResponse.ProtoReflect.Descriptor instead. +func (*SetLootMethodResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{29} } -func (x *SetRaidDifficultyResponse) GetApi() string { +func (x *SetLootMethodResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetRaidDifficultyResponse) GetStatus() SetRaidDifficultyResponse_Status { - if x != nil { - return x.Status - } - return SetRaidDifficultyResponse_Ok -} - -type GetGroupResponse_GroupMember struct { +type SetDungeonDifficultyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - IsOnline bool `protobuf:"varint,4,opt,name=isOnline,proto3" json:"isOnline,omitempty"` - SubGroup uint32 `protobuf:"varint,5,opt,name=subGroup,proto3" json:"subGroup,omitempty"` - Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` } -func (x *GetGroupResponse_GroupMember) Reset() { - *x = GetGroupResponse_GroupMember{} +func (x *SetDungeonDifficultyRequest) Reset() { + *x = SetDungeonDifficultyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[29] + mi := &file_group_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupResponse_GroupMember) String() string { +func (x *SetDungeonDifficultyRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupResponse_GroupMember) ProtoMessage() {} +func (*SetDungeonDifficultyRequest) ProtoMessage() {} -func (x *GetGroupResponse_GroupMember) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[29] +func (x *SetDungeonDifficultyRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2088,581 +2254,3582 @@ func (x *GetGroupResponse_GroupMember) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupResponse_GroupMember.ProtoReflect.Descriptor instead. -func (*GetGroupResponse_GroupMember) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{5, 0} +// Deprecated: Use SetDungeonDifficultyRequest.ProtoReflect.Descriptor instead. +func (*SetDungeonDifficultyRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{30} } -func (x *GetGroupResponse_GroupMember) GetGuid() uint64 { +func (x *SetDungeonDifficultyRequest) GetApi() string { if x != nil { - return x.Guid + return x.Api } - return 0 + return "" } -func (x *GetGroupResponse_GroupMember) GetFlags() uint32 { +func (x *SetDungeonDifficultyRequest) GetRealmID() uint32 { if x != nil { - return x.Flags + return x.RealmID } return 0 } -func (x *GetGroupResponse_GroupMember) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *GetGroupResponse_GroupMember) GetIsOnline() bool { +func (x *SetDungeonDifficultyRequest) GetPlayerGUID() uint64 { if x != nil { - return x.IsOnline + return x.PlayerGUID } - return false + return 0 } -func (x *GetGroupResponse_GroupMember) GetSubGroup() uint32 { +func (x *SetDungeonDifficultyRequest) GetDifficulty() uint32 { if x != nil { - return x.SubGroup + return x.Difficulty } return 0 } -func (x *GetGroupResponse_GroupMember) GetRoles() uint32 { - if x != nil { - return x.Roles - } +type SetDungeonDifficultyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SetDungeonDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetDungeonDifficultyResponse_Status" json:"status,omitempty"` +} + +func (x *SetDungeonDifficultyResponse) Reset() { + *x = SetDungeonDifficultyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDungeonDifficultyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDungeonDifficultyResponse) ProtoMessage() {} + +func (x *SetDungeonDifficultyResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDungeonDifficultyResponse.ProtoReflect.Descriptor instead. +func (*SetDungeonDifficultyResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{31} +} + +func (x *SetDungeonDifficultyResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetDungeonDifficultyResponse) GetStatus() SetDungeonDifficultyResponse_Status { + if x != nil { + return x.Status + } + return SetDungeonDifficultyResponse_Ok +} + +type SetRaidDifficultyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` +} + +func (x *SetRaidDifficultyRequest) Reset() { + *x = SetRaidDifficultyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetRaidDifficultyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetRaidDifficultyRequest) ProtoMessage() {} + +func (x *SetRaidDifficultyRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetRaidDifficultyRequest.ProtoReflect.Descriptor instead. +func (*SetRaidDifficultyRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{32} +} + +func (x *SetRaidDifficultyRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetRaidDifficultyRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } return 0 } -type GetGroupResponse_Group struct { +func (x *SetRaidDifficultyRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetRaidDifficultyRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +type SetRaidDifficultyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Leader uint64 `protobuf:"varint,2,opt,name=leader,proto3" json:"leader,omitempty"` - LootMethod uint32 `protobuf:"varint,3,opt,name=lootMethod,proto3" json:"lootMethod,omitempty"` - Looter uint64 `protobuf:"varint,4,opt,name=looter,proto3" json:"looter,omitempty"` - LootThreshold uint32 `protobuf:"varint,5,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` - GroupType uint32 `protobuf:"varint,6,opt,name=groupType,proto3" json:"groupType,omitempty"` - Difficulty uint32 `protobuf:"varint,7,opt,name=difficulty,proto3" json:"difficulty,omitempty"` - RaidDifficulty uint32 `protobuf:"varint,8,opt,name=raidDifficulty,proto3" json:"raidDifficulty,omitempty"` - MasterLooter uint64 `protobuf:"varint,9,opt,name=masterLooter,proto3" json:"masterLooter,omitempty"` - TargetIconsList []uint64 `protobuf:"varint,10,rep,packed,name=targetIconsList,proto3" json:"targetIconsList,omitempty"` - Members []*GetGroupResponse_GroupMember `protobuf:"bytes,11,rep,name=members,proto3" json:"members,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SetRaidDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetRaidDifficultyResponse_Status" json:"status,omitempty"` } -func (x *GetGroupResponse_Group) Reset() { - *x = GetGroupResponse_Group{} +func (x *SetRaidDifficultyResponse) Reset() { + *x = SetRaidDifficultyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[30] + mi := &file_group_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupResponse_Group) String() string { +func (x *SetRaidDifficultyResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupResponse_Group) ProtoMessage() {} +func (*SetRaidDifficultyResponse) ProtoMessage() {} -func (x *GetGroupResponse_Group) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[30] +func (x *SetRaidDifficultyResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetRaidDifficultyResponse.ProtoReflect.Descriptor instead. +func (*SetRaidDifficultyResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{33} +} + +func (x *SetRaidDifficultyResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetRaidDifficultyResponse) GetStatus() SetRaidDifficultyResponse_Status { + if x != nil { + return x.Status + } + return SetRaidDifficultyResponse_Ok +} + +type StartReadyCheckRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,3,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + DurationMs uint32 `protobuf:"varint,4,opt,name=durationMs,proto3" json:"durationMs,omitempty"` +} + +func (x *StartReadyCheckRequest) Reset() { + *x = StartReadyCheckRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartReadyCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartReadyCheckRequest) ProtoMessage() {} + +func (x *StartReadyCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartReadyCheckRequest.ProtoReflect.Descriptor instead. +func (*StartReadyCheckRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{34} +} + +func (x *StartReadyCheckRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *StartReadyCheckRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *StartReadyCheckRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *StartReadyCheckRequest) GetDurationMs() uint32 { + if x != nil { + return x.DurationMs + } + return 0 +} + +type StartReadyCheckResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *StartReadyCheckResponse) Reset() { + *x = StartReadyCheckResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartReadyCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartReadyCheckResponse) ProtoMessage() {} + +func (x *StartReadyCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetGroupResponse_Group.ProtoReflect.Descriptor instead. -func (*GetGroupResponse_Group) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{5, 1} -} - -func (x *GetGroupResponse_Group) GetId() uint32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLeader() uint64 { - if x != nil { - return x.Leader - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLootMethod() uint32 { - if x != nil { - return x.LootMethod - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLooter() uint64 { - if x != nil { - return x.Looter - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLootThreshold() uint32 { - if x != nil { - return x.LootThreshold - } - return 0 -} - -func (x *GetGroupResponse_Group) GetGroupType() uint32 { - if x != nil { - return x.GroupType - } - return 0 -} - -func (x *GetGroupResponse_Group) GetDifficulty() uint32 { - if x != nil { - return x.Difficulty - } - return 0 -} - -func (x *GetGroupResponse_Group) GetRaidDifficulty() uint32 { - if x != nil { - return x.RaidDifficulty - } - return 0 -} - -func (x *GetGroupResponse_Group) GetMasterLooter() uint64 { - if x != nil { - return x.MasterLooter - } - return 0 -} - -func (x *GetGroupResponse_Group) GetTargetIconsList() []uint64 { - if x != nil { - return x.TargetIconsList - } - return nil -} - -func (x *GetGroupResponse_Group) GetMembers() []*GetGroupResponse_GroupMember { - if x != nil { - return x.Members - } - return nil -} - -var File_group_proto protoreflect.FileDescriptor - -var file_group_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, - 0x31, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x58, 0x0a, 0x12, 0x41, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x22, 0xf2, 0x04, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x99, 0x01, 0x0a, 0x0b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x1a, 0xfd, 0x02, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, - 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, - 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, - 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x74, 0x65, - 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, - 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, - 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, - 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x22, 0x0a, - 0x0c, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, - 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x5d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, - 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x76, - 0x0a, 0x10, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x56, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x26, - 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, - 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x4c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x4c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xbc, - 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, - 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x9f, 0x01, 0x0a, 0x19, - 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x22, 0x2e, 0x0a, - 0x1a, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, - 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, - 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, - 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x9a, 0x01, 0x0a, - 0x1c, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, - 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x10, 0x01, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x53, 0x65, - 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, - 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x24, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, - 0x52, 0x61, 0x69, 0x64, 0x10, 0x01, 0x32, 0xd8, 0x07, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x55, 0x6e, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, - 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, - 0x6f, 0x52, 0x61, 0x69, 0x64, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x41, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, - 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, - 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, - 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x53, - 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, - 0x6c, 0x74, 0x79, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, - 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, - 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, - 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, - 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x0e, 0x5a, 0x0c, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_group_proto_rawDescOnce sync.Once - file_group_proto_rawDescData = file_group_proto_rawDesc -) - -func file_group_proto_rawDescGZIP() []byte { - file_group_proto_rawDescOnce.Do(func() { - file_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_proto_rawDescData) - }) - return file_group_proto_rawDescData -} - -var file_group_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_group_proto_msgTypes = make([]protoimpl.MessageInfo, 31) -var file_group_proto_goTypes = []interface{}{ - (InviteResponse_Status)(0), // 0: v1.InviteResponse.Status - (AcceptInviteResponse_Status)(0), // 1: v1.AcceptInviteResponse.Status - (UninviteResponse_Status)(0), // 2: v1.UninviteResponse.Status - (SetDungeonDifficultyResponse_Status)(0), // 3: v1.SetDungeonDifficultyResponse.Status - (SetRaidDifficultyResponse_Status)(0), // 4: v1.SetRaidDifficultyResponse.Status - (*InviteParams)(nil), // 5: v1.InviteParams - (*InviteResponse)(nil), // 6: v1.InviteResponse - (*AcceptInviteParams)(nil), // 7: v1.AcceptInviteParams - (*AcceptInviteResponse)(nil), // 8: v1.AcceptInviteResponse - (*GetGroupRequest)(nil), // 9: v1.GetGroupRequest - (*GetGroupResponse)(nil), // 10: v1.GetGroupResponse - (*GetGroupByMemberRequest)(nil), // 11: v1.GetGroupByMemberRequest - (*GetGroupIDByPlayerRequest)(nil), // 12: v1.GetGroupIDByPlayerRequest - (*GetGroupIDByPlayerResponse)(nil), // 13: v1.GetGroupIDByPlayerResponse - (*UninviteParams)(nil), // 14: v1.UninviteParams - (*UninviteResponse)(nil), // 15: v1.UninviteResponse - (*GroupLeaveParams)(nil), // 16: v1.GroupLeaveParams - (*GroupLeaveResponse)(nil), // 17: v1.GroupLeaveResponse - (*ConvertToRaidParams)(nil), // 18: v1.ConvertToRaidParams - (*ConvertToRaidResponse)(nil), // 19: v1.ConvertToRaidResponse - (*ChangeLeaderParams)(nil), // 20: v1.ChangeLeaderParams - (*ChangeLeaderResponse)(nil), // 21: v1.ChangeLeaderResponse - (*SendGroupMessageParams)(nil), // 22: v1.SendGroupMessageParams - (*SendGroupMessageResponse)(nil), // 23: v1.SendGroupMessageResponse - (*SetGroupTargetIconRequest)(nil), // 24: v1.SetGroupTargetIconRequest - (*SetGroupTargetIconResponse)(nil), // 25: v1.SetGroupTargetIconResponse - (*GetGroupTargetIconsRequest)(nil), // 26: v1.GetGroupTargetIconsRequest - (*GetGroupTargetIconsResponse)(nil), // 27: v1.GetGroupTargetIconsResponse - (*SetLootMethodRequest)(nil), // 28: v1.SetLootMethodRequest - (*SetLootMethodResponse)(nil), // 29: v1.SetLootMethodResponse - (*SetDungeonDifficultyRequest)(nil), // 30: v1.SetDungeonDifficultyRequest - (*SetDungeonDifficultyResponse)(nil), // 31: v1.SetDungeonDifficultyResponse - (*SetRaidDifficultyRequest)(nil), // 32: v1.SetRaidDifficultyRequest - (*SetRaidDifficultyResponse)(nil), // 33: v1.SetRaidDifficultyResponse - (*GetGroupResponse_GroupMember)(nil), // 34: v1.GetGroupResponse.GroupMember - (*GetGroupResponse_Group)(nil), // 35: v1.GetGroupResponse.Group -} -var file_group_proto_depIdxs = []int32{ - 0, // 0: v1.InviteResponse.status:type_name -> v1.InviteResponse.Status - 1, // 1: v1.AcceptInviteResponse.status:type_name -> v1.AcceptInviteResponse.Status - 35, // 2: v1.GetGroupResponse.group:type_name -> v1.GetGroupResponse.Group - 2, // 3: v1.UninviteResponse.status:type_name -> v1.UninviteResponse.Status - 3, // 4: v1.SetDungeonDifficultyResponse.status:type_name -> v1.SetDungeonDifficultyResponse.Status - 4, // 5: v1.SetRaidDifficultyResponse.status:type_name -> v1.SetRaidDifficultyResponse.Status - 34, // 6: v1.GetGroupResponse.Group.members:type_name -> v1.GetGroupResponse.GroupMember - 5, // 7: v1.GroupService.Invite:input_type -> v1.InviteParams - 14, // 8: v1.GroupService.Uninvite:input_type -> v1.UninviteParams - 16, // 9: v1.GroupService.Leave:input_type -> v1.GroupLeaveParams - 18, // 10: v1.GroupService.ConvertToRaid:input_type -> v1.ConvertToRaidParams - 20, // 11: v1.GroupService.ChangeLeader:input_type -> v1.ChangeLeaderParams - 7, // 12: v1.GroupService.AcceptInvite:input_type -> v1.AcceptInviteParams - 9, // 13: v1.GroupService.GetGroup:input_type -> v1.GetGroupRequest - 11, // 14: v1.GroupService.GetGroupByMember:input_type -> v1.GetGroupByMemberRequest - 12, // 15: v1.GroupService.GetGroupIDByPlayer:input_type -> v1.GetGroupIDByPlayerRequest - 24, // 16: v1.GroupService.SetGroupTargetIcon:input_type -> v1.SetGroupTargetIconRequest - 28, // 17: v1.GroupService.SetLootMethod:input_type -> v1.SetLootMethodRequest - 30, // 18: v1.GroupService.SetDungeonDifficulty:input_type -> v1.SetDungeonDifficultyRequest - 32, // 19: v1.GroupService.SetRaidDifficulty:input_type -> v1.SetRaidDifficultyRequest - 22, // 20: v1.GroupService.SendMessage:input_type -> v1.SendGroupMessageParams - 6, // 21: v1.GroupService.Invite:output_type -> v1.InviteResponse - 15, // 22: v1.GroupService.Uninvite:output_type -> v1.UninviteResponse - 17, // 23: v1.GroupService.Leave:output_type -> v1.GroupLeaveResponse - 19, // 24: v1.GroupService.ConvertToRaid:output_type -> v1.ConvertToRaidResponse - 21, // 25: v1.GroupService.ChangeLeader:output_type -> v1.ChangeLeaderResponse - 8, // 26: v1.GroupService.AcceptInvite:output_type -> v1.AcceptInviteResponse - 10, // 27: v1.GroupService.GetGroup:output_type -> v1.GetGroupResponse - 10, // 28: v1.GroupService.GetGroupByMember:output_type -> v1.GetGroupResponse - 13, // 29: v1.GroupService.GetGroupIDByPlayer:output_type -> v1.GetGroupIDByPlayerResponse - 25, // 30: v1.GroupService.SetGroupTargetIcon:output_type -> v1.SetGroupTargetIconResponse - 29, // 31: v1.GroupService.SetLootMethod:output_type -> v1.SetLootMethodResponse - 31, // 32: v1.GroupService.SetDungeonDifficulty:output_type -> v1.SetDungeonDifficultyResponse - 33, // 33: v1.GroupService.SetRaidDifficulty:output_type -> v1.SetRaidDifficultyResponse - 23, // 34: v1.GroupService.SendMessage:output_type -> v1.SendGroupMessageResponse - 21, // [21:35] is the sub-list for method output_type - 7, // [7:21] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name -} - -func init() { file_group_proto_init() } -func file_group_proto_init() { - if File_group_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteParams); i { + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartReadyCheckResponse.ProtoReflect.Descriptor instead. +func (*StartReadyCheckResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{35} +} + +func (x *StartReadyCheckResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetReadyCheckMemberStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MemberGUID uint64 `protobuf:"varint,3,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + State uint32 `protobuf:"varint,4,opt,name=state,proto3" json:"state,omitempty"` +} + +func (x *SetReadyCheckMemberStateRequest) Reset() { + *x = SetReadyCheckMemberStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetReadyCheckMemberStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetReadyCheckMemberStateRequest) ProtoMessage() {} + +func (x *SetReadyCheckMemberStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetReadyCheckMemberStateRequest.ProtoReflect.Descriptor instead. +func (*SetReadyCheckMemberStateRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{36} +} + +func (x *SetReadyCheckMemberStateRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetReadyCheckMemberStateRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetReadyCheckMemberStateRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *SetReadyCheckMemberStateRequest) GetState() uint32 { + if x != nil { + return x.State + } + return 0 +} + +type SetReadyCheckMemberStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetReadyCheckMemberStateResponse) Reset() { + *x = SetReadyCheckMemberStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetReadyCheckMemberStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetReadyCheckMemberStateResponse) ProtoMessage() {} + +func (x *SetReadyCheckMemberStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetReadyCheckMemberStateResponse.ProtoReflect.Descriptor instead. +func (*SetReadyCheckMemberStateResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{37} +} + +func (x *SetReadyCheckMemberStateResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type FinishReadyCheckRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *FinishReadyCheckRequest) Reset() { + *x = FinishReadyCheckRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishReadyCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishReadyCheckRequest) ProtoMessage() {} + +func (x *FinishReadyCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FinishReadyCheckRequest.ProtoReflect.Descriptor instead. +func (*FinishReadyCheckRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{38} +} + +func (x *FinishReadyCheckRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *FinishReadyCheckRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *FinishReadyCheckRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type FinishReadyCheckResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *FinishReadyCheckResponse) Reset() { + *x = FinishReadyCheckResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishReadyCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishReadyCheckResponse) ProtoMessage() {} + +func (x *FinishReadyCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FinishReadyCheckResponse.ProtoReflect.Descriptor instead. +func (*FinishReadyCheckResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{39} +} + +func (x *FinishReadyCheckResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type ChangeMemberSubGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + UpdaterGUID uint64 `protobuf:"varint,3,opt,name=updaterGUID,proto3" json:"updaterGUID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + SubGroup uint32 `protobuf:"varint,5,opt,name=subGroup,proto3" json:"subGroup,omitempty"` +} + +func (x *ChangeMemberSubGroupRequest) Reset() { + *x = ChangeMemberSubGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeMemberSubGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeMemberSubGroupRequest) ProtoMessage() {} + +func (x *ChangeMemberSubGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeMemberSubGroupRequest.ProtoReflect.Descriptor instead. +func (*ChangeMemberSubGroupRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{40} +} + +func (x *ChangeMemberSubGroupRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ChangeMemberSubGroupRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ChangeMemberSubGroupRequest) GetUpdaterGUID() uint64 { + if x != nil { + return x.UpdaterGUID + } + return 0 +} + +func (x *ChangeMemberSubGroupRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *ChangeMemberSubGroupRequest) GetSubGroup() uint32 { + if x != nil { + return x.SubGroup + } + return 0 +} + +type ChangeMemberSubGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *ChangeMemberSubGroupResponse) Reset() { + *x = ChangeMemberSubGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeMemberSubGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeMemberSubGroupResponse) ProtoMessage() {} + +func (x *ChangeMemberSubGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeMemberSubGroupResponse.ProtoReflect.Descriptor instead. +func (*ChangeMemberSubGroupResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{41} +} + +func (x *ChangeMemberSubGroupResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetMemberFlagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + UpdaterGUID uint64 `protobuf:"varint,3,opt,name=updaterGUID,proto3" json:"updaterGUID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Flags uint32 `protobuf:"varint,5,opt,name=flags,proto3" json:"flags,omitempty"` + Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` +} + +func (x *SetMemberFlagsRequest) Reset() { + *x = SetMemberFlagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMemberFlagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMemberFlagsRequest) ProtoMessage() {} + +func (x *SetMemberFlagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMemberFlagsRequest.ProtoReflect.Descriptor instead. +func (*SetMemberFlagsRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{42} +} + +func (x *SetMemberFlagsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetMemberFlagsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetUpdaterGUID() uint64 { + if x != nil { + return x.UpdaterGUID + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +type SetMemberFlagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetMemberFlagsResponse) Reset() { + *x = SetMemberFlagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMemberFlagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMemberFlagsResponse) ProtoMessage() {} + +func (x *SetMemberFlagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMemberFlagsResponse.ProtoReflect.Descriptor instead. +func (*SetMemberFlagsResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{43} +} + +func (x *SetMemberFlagsResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type AcceptedLfgGroupMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + SelectedRoles uint32 `protobuf:"varint,3,opt,name=selectedRoles,proto3" json:"selectedRoles,omitempty"` + AssignedRole uint32 `protobuf:"varint,4,opt,name=assignedRole,proto3" json:"assignedRole,omitempty"` + QueueLeaderRealmID uint32 `protobuf:"varint,5,opt,name=queueLeaderRealmID,proto3" json:"queueLeaderRealmID,omitempty"` + QueueLeaderGUID uint64 `protobuf:"varint,6,opt,name=queueLeaderGUID,proto3" json:"queueLeaderGUID,omitempty"` +} + +func (x *AcceptedLfgGroupMember) Reset() { + *x = AcceptedLfgGroupMember{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptedLfgGroupMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptedLfgGroupMember) ProtoMessage() {} + +func (x *AcceptedLfgGroupMember) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcceptedLfgGroupMember.ProtoReflect.Descriptor instead. +func (*AcceptedLfgGroupMember) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{44} +} + +func (x *AcceptedLfgGroupMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetSelectedRoles() uint32 { + if x != nil { + return x.SelectedRoles + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetAssignedRole() uint32 { + if x != nil { + return x.AssignedRole + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetQueueLeaderRealmID() uint32 { + if x != nil { + return x.QueueLeaderRealmID + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetQueueLeaderGUID() uint64 { + if x != nil { + return x.QueueLeaderGUID + } + return 0 +} + +type RegisterAcceptedLfgGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ProposalID uint32 `protobuf:"varint,3,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + LeaderRealmID uint32 `protobuf:"varint,5,opt,name=leaderRealmID,proto3" json:"leaderRealmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,6,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + CrossRealm bool `protobuf:"varint,7,opt,name=crossRealm,proto3" json:"crossRealm,omitempty"` + Members []*AcceptedLfgGroupMember `protobuf:"bytes,8,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *RegisterAcceptedLfgGroupRequest) Reset() { + *x = RegisterAcceptedLfgGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterAcceptedLfgGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterAcceptedLfgGroupRequest) ProtoMessage() {} + +func (x *RegisterAcceptedLfgGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterAcceptedLfgGroupRequest.ProtoReflect.Descriptor instead. +func (*RegisterAcceptedLfgGroupRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{45} +} + +func (x *RegisterAcceptedLfgGroupRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterAcceptedLfgGroupRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetLeaderRealmID() uint32 { + if x != nil { + return x.LeaderRealmID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetCrossRealm() bool { + if x != nil { + return x.CrossRealm + } + return false +} + +func (x *RegisterAcceptedLfgGroupRequest) GetMembers() []*AcceptedLfgGroupMember { + if x != nil { + return x.Members + } + return nil +} + +type RegisterAcceptedLfgGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GroupID uint32 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"` +} + +func (x *RegisterAcceptedLfgGroupResponse) Reset() { + *x = RegisterAcceptedLfgGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterAcceptedLfgGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterAcceptedLfgGroupResponse) ProtoMessage() {} + +func (x *RegisterAcceptedLfgGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterAcceptedLfgGroupResponse.ProtoReflect.Descriptor instead. +func (*RegisterAcceptedLfgGroupResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{46} +} + +func (x *RegisterAcceptedLfgGroupResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterAcceptedLfgGroupResponse) GetGroupID() uint32 { + if x != nil { + return x.GroupID + } + return 0 +} + +type MaterializedLfgGroupMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + IsOnline bool `protobuf:"varint,4,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + Flags uint32 `protobuf:"varint,5,opt,name=flags,proto3" json:"flags,omitempty"` + Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` + SubGroup uint32 `protobuf:"varint,7,opt,name=subGroup,proto3" json:"subGroup,omitempty"` +} + +func (x *MaterializedLfgGroupMember) Reset() { + *x = MaterializedLfgGroupMember{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializedLfgGroupMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializedLfgGroupMember) ProtoMessage() {} + +func (x *MaterializedLfgGroupMember) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MaterializedLfgGroupMember.ProtoReflect.Descriptor instead. +func (*MaterializedLfgGroupMember) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{47} +} + +func (x *MaterializedLfgGroupMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MaterializedLfgGroupMember) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *MaterializedLfgGroupMember) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetSubGroup() uint32 { + if x != nil { + return x.SubGroup + } + return 0 +} + +type RegisterMaterializedLfgGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GroupID uint32 `protobuf:"varint,3,opt,name=groupID,proto3" json:"groupID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,4,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + GroupType uint32 `protobuf:"varint,5,opt,name=groupType,proto3" json:"groupType,omitempty"` + Difficulty uint32 `protobuf:"varint,6,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + RaidDifficulty uint32 `protobuf:"varint,7,opt,name=raidDifficulty,proto3" json:"raidDifficulty,omitempty"` + Members []*MaterializedLfgGroupMember `protobuf:"bytes,8,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *RegisterMaterializedLfgGroupRequest) Reset() { + *x = RegisterMaterializedLfgGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterMaterializedLfgGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMaterializedLfgGroupRequest) ProtoMessage() {} + +func (x *RegisterMaterializedLfgGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterMaterializedLfgGroupRequest.ProtoReflect.Descriptor instead. +func (*RegisterMaterializedLfgGroupRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{48} +} + +func (x *RegisterMaterializedLfgGroupRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterMaterializedLfgGroupRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetGroupID() uint32 { + if x != nil { + return x.GroupID + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetGroupType() uint32 { + if x != nil { + return x.GroupType + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetRaidDifficulty() uint32 { + if x != nil { + return x.RaidDifficulty + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetMembers() []*MaterializedLfgGroupMember { + if x != nil { + return x.Members + } + return nil +} + +type RegisterMaterializedLfgGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RegisterMaterializedLfgGroupResponse) Reset() { + *x = RegisterMaterializedLfgGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterMaterializedLfgGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMaterializedLfgGroupResponse) ProtoMessage() {} + +func (x *RegisterMaterializedLfgGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterMaterializedLfgGroupResponse.ProtoReflect.Descriptor instead. +func (*RegisterMaterializedLfgGroupResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{49} +} + +func (x *RegisterMaterializedLfgGroupResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type UpdateMemberStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MemberGUID uint64 `protobuf:"varint,3,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Online bool `protobuf:"varint,4,opt,name=online,proto3" json:"online,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + ZoneID uint32 `protobuf:"varint,7,opt,name=zoneID,proto3" json:"zoneID,omitempty"` + MapID uint32 `protobuf:"varint,8,opt,name=mapID,proto3" json:"mapID,omitempty"` + Health uint32 `protobuf:"varint,9,opt,name=health,proto3" json:"health,omitempty"` + MaxHealth uint32 `protobuf:"varint,10,opt,name=maxHealth,proto3" json:"maxHealth,omitempty"` + PowerType uint32 `protobuf:"varint,11,opt,name=powerType,proto3" json:"powerType,omitempty"` + Power uint32 `protobuf:"varint,12,opt,name=power,proto3" json:"power,omitempty"` + MaxPower uint32 `protobuf:"varint,13,opt,name=maxPower,proto3" json:"maxPower,omitempty"` + InstanceID *uint32 `protobuf:"varint,14,opt,name=instanceID,proto3,oneof" json:"instanceID,omitempty"` +} + +func (x *UpdateMemberStateRequest) Reset() { + *x = UpdateMemberStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMemberStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMemberStateRequest) ProtoMessage() {} + +func (x *UpdateMemberStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMemberStateRequest.ProtoReflect.Descriptor instead. +func (*UpdateMemberStateRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{50} +} + +func (x *UpdateMemberStateRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *UpdateMemberStateRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetOnline() bool { + if x != nil { + return x.Online + } + return false +} + +func (x *UpdateMemberStateRequest) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetZoneID() uint32 { + if x != nil { + return x.ZoneID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetHealth() uint32 { + if x != nil { + return x.Health + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMaxHealth() uint32 { + if x != nil { + return x.MaxHealth + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetPowerType() uint32 { + if x != nil { + return x.PowerType + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetPower() uint32 { + if x != nil { + return x.Power + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMaxPower() uint32 { + if x != nil { + return x.MaxPower + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetInstanceID() uint32 { + if x != nil && x.InstanceID != nil { + return *x.InstanceID + } + return 0 +} + +type UpdateMemberStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *UpdateMemberStateResponse) Reset() { + *x = UpdateMemberStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMemberStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMemberStateResponse) ProtoMessage() {} + +func (x *UpdateMemberStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMemberStateResponse.ProtoReflect.Descriptor instead. +func (*UpdateMemberStateResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{51} +} + +func (x *UpdateMemberStateResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type PlayerStateSnapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberGUID uint64 `protobuf:"varint,1,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Online bool `protobuf:"varint,2,opt,name=online,proto3" json:"online,omitempty"` + Level uint32 `protobuf:"varint,3,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,4,opt,name=classID,proto3" json:"classID,omitempty"` + ZoneID uint32 `protobuf:"varint,5,opt,name=zoneID,proto3" json:"zoneID,omitempty"` + MapID uint32 `protobuf:"varint,6,opt,name=mapID,proto3" json:"mapID,omitempty"` + Health uint32 `protobuf:"varint,7,opt,name=health,proto3" json:"health,omitempty"` + MaxHealth uint32 `protobuf:"varint,8,opt,name=maxHealth,proto3" json:"maxHealth,omitempty"` + PowerType uint32 `protobuf:"varint,9,opt,name=powerType,proto3" json:"powerType,omitempty"` + Power uint32 `protobuf:"varint,10,opt,name=power,proto3" json:"power,omitempty"` + MaxPower uint32 `protobuf:"varint,11,opt,name=maxPower,proto3" json:"maxPower,omitempty"` + TimestampMs uint64 `protobuf:"varint,12,opt,name=timestampMs,proto3" json:"timestampMs,omitempty"` + AurasKnown bool `protobuf:"varint,13,opt,name=aurasKnown,proto3" json:"aurasKnown,omitempty"` + Auras []*PlayerAuraSnapshot `protobuf:"bytes,14,rep,name=auras,proto3" json:"auras,omitempty"` + InstanceID *uint32 `protobuf:"varint,15,opt,name=instanceID,proto3,oneof" json:"instanceID,omitempty"` + Dead *bool `protobuf:"varint,16,opt,name=dead,proto3,oneof" json:"dead,omitempty"` + Ghost *bool `protobuf:"varint,17,opt,name=ghost,proto3,oneof" json:"ghost,omitempty"` +} + +func (x *PlayerStateSnapshot) Reset() { + *x = PlayerStateSnapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerStateSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerStateSnapshot) ProtoMessage() {} + +func (x *PlayerStateSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerStateSnapshot.ProtoReflect.Descriptor instead. +func (*PlayerStateSnapshot) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{52} +} + +func (x *PlayerStateSnapshot) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetOnline() bool { + if x != nil { + return x.Online + } + return false +} + +func (x *PlayerStateSnapshot) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *PlayerStateSnapshot) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetZoneID() uint32 { + if x != nil { + return x.ZoneID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetHealth() uint32 { + if x != nil { + return x.Health + } + return 0 +} + +func (x *PlayerStateSnapshot) GetMaxHealth() uint32 { + if x != nil { + return x.MaxHealth + } + return 0 +} + +func (x *PlayerStateSnapshot) GetPowerType() uint32 { + if x != nil { + return x.PowerType + } + return 0 +} + +func (x *PlayerStateSnapshot) GetPower() uint32 { + if x != nil { + return x.Power + } + return 0 +} + +func (x *PlayerStateSnapshot) GetMaxPower() uint32 { + if x != nil { + return x.MaxPower + } + return 0 +} + +func (x *PlayerStateSnapshot) GetTimestampMs() uint64 { + if x != nil { + return x.TimestampMs + } + return 0 +} + +func (x *PlayerStateSnapshot) GetAurasKnown() bool { + if x != nil { + return x.AurasKnown + } + return false +} + +func (x *PlayerStateSnapshot) GetAuras() []*PlayerAuraSnapshot { + if x != nil { + return x.Auras + } + return nil +} + +func (x *PlayerStateSnapshot) GetInstanceID() uint32 { + if x != nil && x.InstanceID != nil { + return *x.InstanceID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetDead() bool { + if x != nil && x.Dead != nil { + return *x.Dead + } + return false +} + +func (x *PlayerStateSnapshot) GetGhost() bool { + if x != nil && x.Ghost != nil { + return *x.Ghost + } + return false +} + +type PlayerAuraSnapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot uint32 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"` + SpellID uint32 `protobuf:"varint,2,opt,name=spellID,proto3" json:"spellID,omitempty"` + Flags uint32 `protobuf:"varint,3,opt,name=flags,proto3" json:"flags,omitempty"` +} + +func (x *PlayerAuraSnapshot) Reset() { + *x = PlayerAuraSnapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerAuraSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerAuraSnapshot) ProtoMessage() {} + +func (x *PlayerAuraSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlayerAuraSnapshot.ProtoReflect.Descriptor instead. +func (*PlayerAuraSnapshot) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{53} +} + +func (x *PlayerAuraSnapshot) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *PlayerAuraSnapshot) GetSpellID() uint32 { + if x != nil { + return x.SpellID + } + return 0 +} + +func (x *PlayerAuraSnapshot) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +type BulkUpdateMemberStatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SourceGatewayID string `protobuf:"bytes,3,opt,name=sourceGatewayID,proto3" json:"sourceGatewayID,omitempty"` + SourceWorldserverID string `protobuf:"bytes,4,opt,name=sourceWorldserverID,proto3" json:"sourceWorldserverID,omitempty"` + Snapshots []*PlayerStateSnapshot `protobuf:"bytes,5,rep,name=snapshots,proto3" json:"snapshots,omitempty"` +} + +func (x *BulkUpdateMemberStatesRequest) Reset() { + *x = BulkUpdateMemberStatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BulkUpdateMemberStatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BulkUpdateMemberStatesRequest) ProtoMessage() {} + +func (x *BulkUpdateMemberStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BulkUpdateMemberStatesRequest.ProtoReflect.Descriptor instead. +func (*BulkUpdateMemberStatesRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{54} +} + +func (x *BulkUpdateMemberStatesRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *BulkUpdateMemberStatesRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *BulkUpdateMemberStatesRequest) GetSourceGatewayID() string { + if x != nil { + return x.SourceGatewayID + } + return "" +} + +func (x *BulkUpdateMemberStatesRequest) GetSourceWorldserverID() string { + if x != nil { + return x.SourceWorldserverID + } + return "" +} + +func (x *BulkUpdateMemberStatesRequest) GetSnapshots() []*PlayerStateSnapshot { + if x != nil { + return x.Snapshots + } + return nil +} + +type BulkUpdateMemberStatesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *BulkUpdateMemberStatesResponse) Reset() { + *x = BulkUpdateMemberStatesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BulkUpdateMemberStatesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BulkUpdateMemberStatesResponse) ProtoMessage() {} + +func (x *BulkUpdateMemberStatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BulkUpdateMemberStatesResponse.ProtoReflect.Descriptor instead. +func (*BulkUpdateMemberStatesResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{55} +} + +func (x *BulkUpdateMemberStatesResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type ResetInstanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` +} + +func (x *ResetInstanceRequest) Reset() { + *x = ResetInstanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResetInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResetInstanceRequest) ProtoMessage() {} + +func (x *ResetInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResetInstanceRequest.ProtoReflect.Descriptor instead. +func (*ResetInstanceRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{56} +} + +func (x *ResetInstanceRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ResetInstanceRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ResetInstanceRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *ResetInstanceRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *ResetInstanceRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +type ResetInstanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *ResetInstanceResponse) Reset() { + *x = ResetInstanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResetInstanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResetInstanceResponse) ProtoMessage() {} + +func (x *ResetInstanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResetInstanceResponse.ProtoReflect.Descriptor instead. +func (*ResetInstanceResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{57} +} + +func (x *ResetInstanceResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetInstanceBindExtensionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + Extended bool `protobuf:"varint,6,opt,name=extended,proto3" json:"extended,omitempty"` +} + +func (x *SetInstanceBindExtensionRequest) Reset() { + *x = SetInstanceBindExtensionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetInstanceBindExtensionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetInstanceBindExtensionRequest) ProtoMessage() {} + +func (x *SetInstanceBindExtensionRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetInstanceBindExtensionRequest.ProtoReflect.Descriptor instead. +func (*SetInstanceBindExtensionRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{58} +} + +func (x *SetInstanceBindExtensionRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetInstanceBindExtensionRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetExtended() bool { + if x != nil { + return x.Extended + } + return false +} + +type SetInstanceBindExtensionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetInstanceBindExtensionResponse) Reset() { + *x = SetInstanceBindExtensionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetInstanceBindExtensionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetInstanceBindExtensionResponse) ProtoMessage() {} + +func (x *SetInstanceBindExtensionResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetInstanceBindExtensionResponse.ProtoReflect.Descriptor instead. +func (*SetInstanceBindExtensionResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{59} +} + +func (x *SetInstanceBindExtensionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type GetGroupResponse_GroupMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + IsOnline bool `protobuf:"varint,4,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + SubGroup uint32 `protobuf:"varint,5,opt,name=subGroup,proto3" json:"subGroup,omitempty"` + Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` + RealmID uint32 `protobuf:"varint,7,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetGroupResponse_GroupMember) Reset() { + *x = GetGroupResponse_GroupMember{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupResponse_GroupMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupResponse_GroupMember) ProtoMessage() {} + +func (x *GetGroupResponse_GroupMember) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupResponse_GroupMember.ProtoReflect.Descriptor instead. +func (*GetGroupResponse_GroupMember) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *GetGroupResponse_GroupMember) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetGroupResponse_GroupMember) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *GetGroupResponse_GroupMember) GetSubGroup() uint32 { + if x != nil { + return x.SubGroup + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type GetGroupResponse_Group struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Leader uint64 `protobuf:"varint,2,opt,name=leader,proto3" json:"leader,omitempty"` + LootMethod uint32 `protobuf:"varint,3,opt,name=lootMethod,proto3" json:"lootMethod,omitempty"` + Looter uint64 `protobuf:"varint,4,opt,name=looter,proto3" json:"looter,omitempty"` + LootThreshold uint32 `protobuf:"varint,5,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` + GroupType uint32 `protobuf:"varint,6,opt,name=groupType,proto3" json:"groupType,omitempty"` + Difficulty uint32 `protobuf:"varint,7,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + RaidDifficulty uint32 `protobuf:"varint,8,opt,name=raidDifficulty,proto3" json:"raidDifficulty,omitempty"` + MasterLooter uint64 `protobuf:"varint,9,opt,name=masterLooter,proto3" json:"masterLooter,omitempty"` + TargetIconsList []uint64 `protobuf:"varint,10,rep,packed,name=targetIconsList,proto3" json:"targetIconsList,omitempty"` + Members []*GetGroupResponse_GroupMember `protobuf:"bytes,11,rep,name=members,proto3" json:"members,omitempty"` + RealmID uint32 `protobuf:"varint,12,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetGroupResponse_Group) Reset() { + *x = GetGroupResponse_Group{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupResponse_Group) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupResponse_Group) ProtoMessage() {} + +func (x *GetGroupResponse_Group) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupResponse_Group.ProtoReflect.Descriptor instead. +func (*GetGroupResponse_Group) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{7, 1} +} + +func (x *GetGroupResponse_Group) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLeader() uint64 { + if x != nil { + return x.Leader + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLootMethod() uint32 { + if x != nil { + return x.LootMethod + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLooter() uint64 { + if x != nil { + return x.Looter + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLootThreshold() uint32 { + if x != nil { + return x.LootThreshold + } + return 0 +} + +func (x *GetGroupResponse_Group) GetGroupType() uint32 { + if x != nil { + return x.GroupType + } + return 0 +} + +func (x *GetGroupResponse_Group) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *GetGroupResponse_Group) GetRaidDifficulty() uint32 { + if x != nil { + return x.RaidDifficulty + } + return 0 +} + +func (x *GetGroupResponse_Group) GetMasterLooter() uint64 { + if x != nil { + return x.MasterLooter + } + return 0 +} + +func (x *GetGroupResponse_Group) GetTargetIconsList() []uint64 { + if x != nil { + return x.TargetIconsList + } + return nil +} + +func (x *GetGroupResponse_Group) GetMembers() []*GetGroupResponse_GroupMember { + if x != nil { + return x.Members + } + return nil +} + +func (x *GetGroupResponse_Group) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +var File_group_proto protoreflect.FileDescriptor + +var file_group_proto_rawDesc = []byte{ + 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, + 0x31, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x58, 0x0a, 0x12, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x59, 0x0a, 0x13, 0x44, 0x65, 0x63, + 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x22, 0x94, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x22, 0xa6, 0x05, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xb3, 0x01, + 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, + 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, + 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x1a, 0x97, 0x03, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, + 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, + 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0c, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, + 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, + 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x5d, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x6c, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x6a, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x22, 0xc3, 0x02, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, + 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4b, + 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x4d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x4d, 0x73, 0x22, 0x64, 0x0a, + 0x1b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x22, 0x76, 0x0a, 0x10, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x56, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x22, 0x26, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, + 0x52, 0x61, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, + 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x77, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x22, 0xe2, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x2c, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, + 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x47, 0x55, 0x49, 0x44, 0x22, 0x2e, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, + 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x14, 0x53, + 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, + 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x29, 0x0a, + 0x15, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, + 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, + 0x75, 0x6c, 0x74, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, + 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x10, + 0x01, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, + 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x19, 0x53, + 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x24, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, 0x52, 0x61, 0x69, 0x64, 0x10, 0x01, 0x22, 0x84, + 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x22, 0x2b, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x22, 0x83, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x65, + 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x2c, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x22, 0xa7, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x30, 0x0a, + 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xb1, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x22, 0x2a, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xf6, 0x01, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2e, + 0x0a, 0x12, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xad, 0x02, 0x0a, 0x1f, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, + 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, + 0x6c, 0x6d, 0x12, 0x34, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, + 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x4e, 0x0a, 0x20, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0xce, 0x01, 0x0a, 0x1a, 0x4d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xab, 0x02, 0x0a, 0x23, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, + 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, + 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x38, 0x0a, + 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x38, 0x0a, 0x24, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4c, + 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x22, 0x96, 0x03, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, + 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, + 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x19, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x9c, 0x04, 0x0a, 0x13, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, + 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x72, 0x61, 0x73, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x72, 0x61, 0x73, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, + 0x2c, 0x0a, 0x05, 0x61, 0x75, 0x72, 0x61, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x75, 0x72, 0x61, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x61, 0x75, 0x72, 0x61, 0x73, 0x12, 0x23, 0x0a, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x64, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x04, 0x64, 0x65, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x67, + 0x68, 0x6f, 0x73, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x67, 0x68, + 0x6f, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x41, 0x75, 0x72, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x1d, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x57, + 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x73, 0x22, 0x32, 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, + 0x74, 0x79, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xbf, 0x01, + 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, + 0x34, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x32, 0xd5, 0x10, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, + 0x52, 0x61, 0x69, 0x64, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, + 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x17, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, + 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x35, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x53, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, + 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, + 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, + 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, + 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x61, + 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, + 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4d, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, + 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x59, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x19, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x1c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x66, 0x67, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5f, 0x0a, 0x16, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0e, 0x5a, + 0x0c, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_group_proto_rawDescOnce sync.Once + file_group_proto_rawDescData = file_group_proto_rawDesc +) + +func file_group_proto_rawDescGZIP() []byte { + file_group_proto_rawDescOnce.Do(func() { + file_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_proto_rawDescData) + }) + return file_group_proto_rawDescData +} + +var file_group_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_group_proto_msgTypes = make([]protoimpl.MessageInfo, 62) +var file_group_proto_goTypes = []interface{}{ + (InviteResponse_Status)(0), // 0: v1.InviteResponse.Status + (AcceptInviteResponse_Status)(0), // 1: v1.AcceptInviteResponse.Status + (DeclineInviteResponse_Status)(0), // 2: v1.DeclineInviteResponse.Status + (UninviteResponse_Status)(0), // 3: v1.UninviteResponse.Status + (SetDungeonDifficultyResponse_Status)(0), // 4: v1.SetDungeonDifficultyResponse.Status + (SetRaidDifficultyResponse_Status)(0), // 5: v1.SetRaidDifficultyResponse.Status + (*InviteParams)(nil), // 6: v1.InviteParams + (*InviteResponse)(nil), // 7: v1.InviteResponse + (*AcceptInviteParams)(nil), // 8: v1.AcceptInviteParams + (*AcceptInviteResponse)(nil), // 9: v1.AcceptInviteResponse + (*DeclineInviteParams)(nil), // 10: v1.DeclineInviteParams + (*DeclineInviteResponse)(nil), // 11: v1.DeclineInviteResponse + (*GetGroupRequest)(nil), // 12: v1.GetGroupRequest + (*GetGroupResponse)(nil), // 13: v1.GetGroupResponse + (*GetGroupByMemberRequest)(nil), // 14: v1.GetGroupByMemberRequest + (*GetGroupIDByPlayerRequest)(nil), // 15: v1.GetGroupIDByPlayerRequest + (*GetGroupIDByPlayerResponse)(nil), // 16: v1.GetGroupIDByPlayerResponse + (*GetMemberPlacementsRequest)(nil), // 17: v1.GetMemberPlacementsRequest + (*MemberPlacement)(nil), // 18: v1.MemberPlacement + (*GetMemberPlacementsResponse)(nil), // 19: v1.GetMemberPlacementsResponse + (*UninviteParams)(nil), // 20: v1.UninviteParams + (*UninviteResponse)(nil), // 21: v1.UninviteResponse + (*GroupLeaveParams)(nil), // 22: v1.GroupLeaveParams + (*GroupLeaveResponse)(nil), // 23: v1.GroupLeaveResponse + (*ConvertToRaidParams)(nil), // 24: v1.ConvertToRaidParams + (*ConvertToRaidResponse)(nil), // 25: v1.ConvertToRaidResponse + (*ChangeLeaderParams)(nil), // 26: v1.ChangeLeaderParams + (*ChangeLeaderResponse)(nil), // 27: v1.ChangeLeaderResponse + (*SendGroupMessageParams)(nil), // 28: v1.SendGroupMessageParams + (*SendGroupMessageResponse)(nil), // 29: v1.SendGroupMessageResponse + (*SetGroupTargetIconRequest)(nil), // 30: v1.SetGroupTargetIconRequest + (*SetGroupTargetIconResponse)(nil), // 31: v1.SetGroupTargetIconResponse + (*GetGroupTargetIconsRequest)(nil), // 32: v1.GetGroupTargetIconsRequest + (*GetGroupTargetIconsResponse)(nil), // 33: v1.GetGroupTargetIconsResponse + (*SetLootMethodRequest)(nil), // 34: v1.SetLootMethodRequest + (*SetLootMethodResponse)(nil), // 35: v1.SetLootMethodResponse + (*SetDungeonDifficultyRequest)(nil), // 36: v1.SetDungeonDifficultyRequest + (*SetDungeonDifficultyResponse)(nil), // 37: v1.SetDungeonDifficultyResponse + (*SetRaidDifficultyRequest)(nil), // 38: v1.SetRaidDifficultyRequest + (*SetRaidDifficultyResponse)(nil), // 39: v1.SetRaidDifficultyResponse + (*StartReadyCheckRequest)(nil), // 40: v1.StartReadyCheckRequest + (*StartReadyCheckResponse)(nil), // 41: v1.StartReadyCheckResponse + (*SetReadyCheckMemberStateRequest)(nil), // 42: v1.SetReadyCheckMemberStateRequest + (*SetReadyCheckMemberStateResponse)(nil), // 43: v1.SetReadyCheckMemberStateResponse + (*FinishReadyCheckRequest)(nil), // 44: v1.FinishReadyCheckRequest + (*FinishReadyCheckResponse)(nil), // 45: v1.FinishReadyCheckResponse + (*ChangeMemberSubGroupRequest)(nil), // 46: v1.ChangeMemberSubGroupRequest + (*ChangeMemberSubGroupResponse)(nil), // 47: v1.ChangeMemberSubGroupResponse + (*SetMemberFlagsRequest)(nil), // 48: v1.SetMemberFlagsRequest + (*SetMemberFlagsResponse)(nil), // 49: v1.SetMemberFlagsResponse + (*AcceptedLfgGroupMember)(nil), // 50: v1.AcceptedLfgGroupMember + (*RegisterAcceptedLfgGroupRequest)(nil), // 51: v1.RegisterAcceptedLfgGroupRequest + (*RegisterAcceptedLfgGroupResponse)(nil), // 52: v1.RegisterAcceptedLfgGroupResponse + (*MaterializedLfgGroupMember)(nil), // 53: v1.MaterializedLfgGroupMember + (*RegisterMaterializedLfgGroupRequest)(nil), // 54: v1.RegisterMaterializedLfgGroupRequest + (*RegisterMaterializedLfgGroupResponse)(nil), // 55: v1.RegisterMaterializedLfgGroupResponse + (*UpdateMemberStateRequest)(nil), // 56: v1.UpdateMemberStateRequest + (*UpdateMemberStateResponse)(nil), // 57: v1.UpdateMemberStateResponse + (*PlayerStateSnapshot)(nil), // 58: v1.PlayerStateSnapshot + (*PlayerAuraSnapshot)(nil), // 59: v1.PlayerAuraSnapshot + (*BulkUpdateMemberStatesRequest)(nil), // 60: v1.BulkUpdateMemberStatesRequest + (*BulkUpdateMemberStatesResponse)(nil), // 61: v1.BulkUpdateMemberStatesResponse + (*ResetInstanceRequest)(nil), // 62: v1.ResetInstanceRequest + (*ResetInstanceResponse)(nil), // 63: v1.ResetInstanceResponse + (*SetInstanceBindExtensionRequest)(nil), // 64: v1.SetInstanceBindExtensionRequest + (*SetInstanceBindExtensionResponse)(nil), // 65: v1.SetInstanceBindExtensionResponse + (*GetGroupResponse_GroupMember)(nil), // 66: v1.GetGroupResponse.GroupMember + (*GetGroupResponse_Group)(nil), // 67: v1.GetGroupResponse.Group +} +var file_group_proto_depIdxs = []int32{ + 0, // 0: v1.InviteResponse.status:type_name -> v1.InviteResponse.Status + 1, // 1: v1.AcceptInviteResponse.status:type_name -> v1.AcceptInviteResponse.Status + 2, // 2: v1.DeclineInviteResponse.status:type_name -> v1.DeclineInviteResponse.Status + 67, // 3: v1.GetGroupResponse.group:type_name -> v1.GetGroupResponse.Group + 18, // 4: v1.GetMemberPlacementsResponse.placements:type_name -> v1.MemberPlacement + 3, // 5: v1.UninviteResponse.status:type_name -> v1.UninviteResponse.Status + 4, // 6: v1.SetDungeonDifficultyResponse.status:type_name -> v1.SetDungeonDifficultyResponse.Status + 5, // 7: v1.SetRaidDifficultyResponse.status:type_name -> v1.SetRaidDifficultyResponse.Status + 50, // 8: v1.RegisterAcceptedLfgGroupRequest.members:type_name -> v1.AcceptedLfgGroupMember + 53, // 9: v1.RegisterMaterializedLfgGroupRequest.members:type_name -> v1.MaterializedLfgGroupMember + 59, // 10: v1.PlayerStateSnapshot.auras:type_name -> v1.PlayerAuraSnapshot + 58, // 11: v1.BulkUpdateMemberStatesRequest.snapshots:type_name -> v1.PlayerStateSnapshot + 66, // 12: v1.GetGroupResponse.Group.members:type_name -> v1.GetGroupResponse.GroupMember + 6, // 13: v1.GroupService.Invite:input_type -> v1.InviteParams + 20, // 14: v1.GroupService.Uninvite:input_type -> v1.UninviteParams + 22, // 15: v1.GroupService.Leave:input_type -> v1.GroupLeaveParams + 24, // 16: v1.GroupService.ConvertToRaid:input_type -> v1.ConvertToRaidParams + 26, // 17: v1.GroupService.ChangeLeader:input_type -> v1.ChangeLeaderParams + 8, // 18: v1.GroupService.AcceptInvite:input_type -> v1.AcceptInviteParams + 10, // 19: v1.GroupService.DeclineInvite:input_type -> v1.DeclineInviteParams + 12, // 20: v1.GroupService.GetGroup:input_type -> v1.GetGroupRequest + 14, // 21: v1.GroupService.GetGroupByMember:input_type -> v1.GetGroupByMemberRequest + 15, // 22: v1.GroupService.GetGroupIDByPlayer:input_type -> v1.GetGroupIDByPlayerRequest + 17, // 23: v1.GroupService.GetMemberPlacements:input_type -> v1.GetMemberPlacementsRequest + 30, // 24: v1.GroupService.SetGroupTargetIcon:input_type -> v1.SetGroupTargetIconRequest + 34, // 25: v1.GroupService.SetLootMethod:input_type -> v1.SetLootMethodRequest + 36, // 26: v1.GroupService.SetDungeonDifficulty:input_type -> v1.SetDungeonDifficultyRequest + 38, // 27: v1.GroupService.SetRaidDifficulty:input_type -> v1.SetRaidDifficultyRequest + 28, // 28: v1.GroupService.SendMessage:input_type -> v1.SendGroupMessageParams + 40, // 29: v1.GroupService.StartReadyCheck:input_type -> v1.StartReadyCheckRequest + 42, // 30: v1.GroupService.SetReadyCheckMemberState:input_type -> v1.SetReadyCheckMemberStateRequest + 44, // 31: v1.GroupService.FinishReadyCheck:input_type -> v1.FinishReadyCheckRequest + 46, // 32: v1.GroupService.ChangeMemberSubGroup:input_type -> v1.ChangeMemberSubGroupRequest + 48, // 33: v1.GroupService.SetMemberFlags:input_type -> v1.SetMemberFlagsRequest + 51, // 34: v1.GroupService.RegisterAcceptedLfgGroup:input_type -> v1.RegisterAcceptedLfgGroupRequest + 54, // 35: v1.GroupService.RegisterMaterializedLfgGroup:input_type -> v1.RegisterMaterializedLfgGroupRequest + 56, // 36: v1.GroupService.UpdateMemberState:input_type -> v1.UpdateMemberStateRequest + 60, // 37: v1.GroupService.BulkUpdateMemberStates:input_type -> v1.BulkUpdateMemberStatesRequest + 62, // 38: v1.GroupService.ResetInstance:input_type -> v1.ResetInstanceRequest + 64, // 39: v1.GroupService.SetInstanceBindExtension:input_type -> v1.SetInstanceBindExtensionRequest + 7, // 40: v1.GroupService.Invite:output_type -> v1.InviteResponse + 21, // 41: v1.GroupService.Uninvite:output_type -> v1.UninviteResponse + 23, // 42: v1.GroupService.Leave:output_type -> v1.GroupLeaveResponse + 25, // 43: v1.GroupService.ConvertToRaid:output_type -> v1.ConvertToRaidResponse + 27, // 44: v1.GroupService.ChangeLeader:output_type -> v1.ChangeLeaderResponse + 9, // 45: v1.GroupService.AcceptInvite:output_type -> v1.AcceptInviteResponse + 11, // 46: v1.GroupService.DeclineInvite:output_type -> v1.DeclineInviteResponse + 13, // 47: v1.GroupService.GetGroup:output_type -> v1.GetGroupResponse + 13, // 48: v1.GroupService.GetGroupByMember:output_type -> v1.GetGroupResponse + 16, // 49: v1.GroupService.GetGroupIDByPlayer:output_type -> v1.GetGroupIDByPlayerResponse + 19, // 50: v1.GroupService.GetMemberPlacements:output_type -> v1.GetMemberPlacementsResponse + 31, // 51: v1.GroupService.SetGroupTargetIcon:output_type -> v1.SetGroupTargetIconResponse + 35, // 52: v1.GroupService.SetLootMethod:output_type -> v1.SetLootMethodResponse + 37, // 53: v1.GroupService.SetDungeonDifficulty:output_type -> v1.SetDungeonDifficultyResponse + 39, // 54: v1.GroupService.SetRaidDifficulty:output_type -> v1.SetRaidDifficultyResponse + 29, // 55: v1.GroupService.SendMessage:output_type -> v1.SendGroupMessageResponse + 41, // 56: v1.GroupService.StartReadyCheck:output_type -> v1.StartReadyCheckResponse + 43, // 57: v1.GroupService.SetReadyCheckMemberState:output_type -> v1.SetReadyCheckMemberStateResponse + 45, // 58: v1.GroupService.FinishReadyCheck:output_type -> v1.FinishReadyCheckResponse + 47, // 59: v1.GroupService.ChangeMemberSubGroup:output_type -> v1.ChangeMemberSubGroupResponse + 49, // 60: v1.GroupService.SetMemberFlags:output_type -> v1.SetMemberFlagsResponse + 52, // 61: v1.GroupService.RegisterAcceptedLfgGroup:output_type -> v1.RegisterAcceptedLfgGroupResponse + 55, // 62: v1.GroupService.RegisterMaterializedLfgGroup:output_type -> v1.RegisterMaterializedLfgGroupResponse + 57, // 63: v1.GroupService.UpdateMemberState:output_type -> v1.UpdateMemberStateResponse + 61, // 64: v1.GroupService.BulkUpdateMemberStates:output_type -> v1.BulkUpdateMemberStatesResponse + 63, // 65: v1.GroupService.ResetInstance:output_type -> v1.ResetInstanceResponse + 65, // 66: v1.GroupService.SetInstanceBindExtension:output_type -> v1.SetInstanceBindExtensionResponse + 40, // [40:67] is the sub-list for method output_type + 13, // [13:40] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_group_proto_init() } +func file_group_proto_init() { + if File_group_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptInviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptInviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclineInviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclineInviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupByMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupIDByPlayerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupIDByPlayerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMemberPlacementsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberPlacement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMemberPlacementsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupLeaveParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupLeaveResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConvertToRaidParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConvertToRaidResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeLeaderParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeLeaderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGroupMessageParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGroupMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupTargetIconRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupTargetIconResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupTargetIconsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupTargetIconsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLootMethodRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLootMethodResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDungeonDifficultyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDungeonDifficultyResponse); i { case 0: return &v.state case 1: @@ -2673,8 +5840,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteResponse); i { + file_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetRaidDifficultyRequest); i { case 0: return &v.state case 1: @@ -2685,8 +5852,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AcceptInviteParams); i { + file_group_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetRaidDifficultyResponse); i { case 0: return &v.state case 1: @@ -2697,8 +5864,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AcceptInviteResponse); i { + file_group_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartReadyCheckRequest); i { case 0: return &v.state case 1: @@ -2709,8 +5876,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupRequest); i { + file_group_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartReadyCheckResponse); i { case 0: return &v.state case 1: @@ -2721,8 +5888,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupResponse); i { + file_group_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetReadyCheckMemberStateRequest); i { case 0: return &v.state case 1: @@ -2733,8 +5900,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupByMemberRequest); i { + file_group_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetReadyCheckMemberStateResponse); i { case 0: return &v.state case 1: @@ -2745,8 +5912,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupIDByPlayerRequest); i { + file_group_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishReadyCheckRequest); i { case 0: return &v.state case 1: @@ -2757,8 +5924,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupIDByPlayerResponse); i { + file_group_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishReadyCheckResponse); i { case 0: return &v.state case 1: @@ -2769,8 +5936,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UninviteParams); i { + file_group_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeMemberSubGroupRequest); i { case 0: return &v.state case 1: @@ -2781,8 +5948,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UninviteResponse); i { + file_group_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeMemberSubGroupResponse); i { case 0: return &v.state case 1: @@ -2793,8 +5960,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupLeaveParams); i { + file_group_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMemberFlagsRequest); i { case 0: return &v.state case 1: @@ -2805,8 +5972,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupLeaveResponse); i { + file_group_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMemberFlagsResponse); i { case 0: return &v.state case 1: @@ -2817,8 +5984,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConvertToRaidParams); i { + file_group_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptedLfgGroupMember); i { case 0: return &v.state case 1: @@ -2829,8 +5996,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConvertToRaidResponse); i { + file_group_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterAcceptedLfgGroupRequest); i { case 0: return &v.state case 1: @@ -2841,8 +6008,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeLeaderParams); i { + file_group_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterAcceptedLfgGroupResponse); i { case 0: return &v.state case 1: @@ -2853,8 +6020,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeLeaderResponse); i { + file_group_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializedLfgGroupMember); i { case 0: return &v.state case 1: @@ -2865,8 +6032,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGroupMessageParams); i { + file_group_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterMaterializedLfgGroupRequest); i { case 0: return &v.state case 1: @@ -2877,8 +6044,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGroupMessageResponse); i { + file_group_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterMaterializedLfgGroupResponse); i { case 0: return &v.state case 1: @@ -2889,8 +6056,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupTargetIconRequest); i { + file_group_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMemberStateRequest); i { case 0: return &v.state case 1: @@ -2901,8 +6068,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupTargetIconResponse); i { + file_group_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMemberStateResponse); i { case 0: return &v.state case 1: @@ -2913,8 +6080,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupTargetIconsRequest); i { + file_group_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerStateSnapshot); i { case 0: return &v.state case 1: @@ -2925,8 +6092,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupTargetIconsResponse); i { + file_group_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerAuraSnapshot); i { case 0: return &v.state case 1: @@ -2937,8 +6104,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetLootMethodRequest); i { + file_group_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BulkUpdateMemberStatesRequest); i { case 0: return &v.state case 1: @@ -2949,8 +6116,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetLootMethodResponse); i { + file_group_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BulkUpdateMemberStatesResponse); i { case 0: return &v.state case 1: @@ -2961,8 +6128,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDungeonDifficultyRequest); i { + file_group_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResetInstanceRequest); i { case 0: return &v.state case 1: @@ -2973,8 +6140,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDungeonDifficultyResponse); i { + file_group_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResetInstanceResponse); i { case 0: return &v.state case 1: @@ -2985,8 +6152,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRaidDifficultyRequest); i { + file_group_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetInstanceBindExtensionRequest); i { case 0: return &v.state case 1: @@ -2997,8 +6164,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRaidDifficultyResponse); i { + file_group_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetInstanceBindExtensionResponse); i { case 0: return &v.state case 1: @@ -3009,7 +6176,7 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_group_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupResponse_GroupMember); i { case 0: return &v.state @@ -3021,7 +6188,7 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_group_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupResponse_Group); i { case 0: return &v.state @@ -3034,13 +6201,15 @@ func file_group_proto_init() { } } } + file_group_proto_msgTypes[50].OneofWrappers = []interface{}{} + file_group_proto_msgTypes[52].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_group_proto_rawDesc, - NumEnums: 5, - NumMessages: 31, + NumEnums: 6, + NumMessages: 62, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/group/pb/group_grpc.pb.go b/gen/group/pb/group_grpc.pb.go index 5142fc3..58a1796 100644 --- a/gen/group/pb/group_grpc.pb.go +++ b/gen/group/pb/group_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: group.proto package pb @@ -19,20 +19,33 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - GroupService_Invite_FullMethodName = "/v1.GroupService/Invite" - GroupService_Uninvite_FullMethodName = "/v1.GroupService/Uninvite" - GroupService_Leave_FullMethodName = "/v1.GroupService/Leave" - GroupService_ConvertToRaid_FullMethodName = "/v1.GroupService/ConvertToRaid" - GroupService_ChangeLeader_FullMethodName = "/v1.GroupService/ChangeLeader" - GroupService_AcceptInvite_FullMethodName = "/v1.GroupService/AcceptInvite" - GroupService_GetGroup_FullMethodName = "/v1.GroupService/GetGroup" - GroupService_GetGroupByMember_FullMethodName = "/v1.GroupService/GetGroupByMember" - GroupService_GetGroupIDByPlayer_FullMethodName = "/v1.GroupService/GetGroupIDByPlayer" - GroupService_SetGroupTargetIcon_FullMethodName = "/v1.GroupService/SetGroupTargetIcon" - GroupService_SetLootMethod_FullMethodName = "/v1.GroupService/SetLootMethod" - GroupService_SetDungeonDifficulty_FullMethodName = "/v1.GroupService/SetDungeonDifficulty" - GroupService_SetRaidDifficulty_FullMethodName = "/v1.GroupService/SetRaidDifficulty" - GroupService_SendMessage_FullMethodName = "/v1.GroupService/SendMessage" + GroupService_Invite_FullMethodName = "/v1.GroupService/Invite" + GroupService_Uninvite_FullMethodName = "/v1.GroupService/Uninvite" + GroupService_Leave_FullMethodName = "/v1.GroupService/Leave" + GroupService_ConvertToRaid_FullMethodName = "/v1.GroupService/ConvertToRaid" + GroupService_ChangeLeader_FullMethodName = "/v1.GroupService/ChangeLeader" + GroupService_AcceptInvite_FullMethodName = "/v1.GroupService/AcceptInvite" + GroupService_DeclineInvite_FullMethodName = "/v1.GroupService/DeclineInvite" + GroupService_GetGroup_FullMethodName = "/v1.GroupService/GetGroup" + GroupService_GetGroupByMember_FullMethodName = "/v1.GroupService/GetGroupByMember" + GroupService_GetGroupIDByPlayer_FullMethodName = "/v1.GroupService/GetGroupIDByPlayer" + GroupService_GetMemberPlacements_FullMethodName = "/v1.GroupService/GetMemberPlacements" + GroupService_SetGroupTargetIcon_FullMethodName = "/v1.GroupService/SetGroupTargetIcon" + GroupService_SetLootMethod_FullMethodName = "/v1.GroupService/SetLootMethod" + GroupService_SetDungeonDifficulty_FullMethodName = "/v1.GroupService/SetDungeonDifficulty" + GroupService_SetRaidDifficulty_FullMethodName = "/v1.GroupService/SetRaidDifficulty" + GroupService_SendMessage_FullMethodName = "/v1.GroupService/SendMessage" + GroupService_StartReadyCheck_FullMethodName = "/v1.GroupService/StartReadyCheck" + GroupService_SetReadyCheckMemberState_FullMethodName = "/v1.GroupService/SetReadyCheckMemberState" + GroupService_FinishReadyCheck_FullMethodName = "/v1.GroupService/FinishReadyCheck" + GroupService_ChangeMemberSubGroup_FullMethodName = "/v1.GroupService/ChangeMemberSubGroup" + GroupService_SetMemberFlags_FullMethodName = "/v1.GroupService/SetMemberFlags" + GroupService_RegisterAcceptedLfgGroup_FullMethodName = "/v1.GroupService/RegisterAcceptedLfgGroup" + GroupService_RegisterMaterializedLfgGroup_FullMethodName = "/v1.GroupService/RegisterMaterializedLfgGroup" + GroupService_UpdateMemberState_FullMethodName = "/v1.GroupService/UpdateMemberState" + GroupService_BulkUpdateMemberStates_FullMethodName = "/v1.GroupService/BulkUpdateMemberStates" + GroupService_ResetInstance_FullMethodName = "/v1.GroupService/ResetInstance" + GroupService_SetInstanceBindExtension_FullMethodName = "/v1.GroupService/SetInstanceBindExtension" ) // GroupServiceClient is the client API for GroupService service. @@ -45,14 +58,27 @@ type GroupServiceClient interface { ConvertToRaid(ctx context.Context, in *ConvertToRaidParams, opts ...grpc.CallOption) (*ConvertToRaidResponse, error) ChangeLeader(ctx context.Context, in *ChangeLeaderParams, opts ...grpc.CallOption) (*ChangeLeaderResponse, error) AcceptInvite(ctx context.Context, in *AcceptInviteParams, opts ...grpc.CallOption) (*AcceptInviteResponse, error) + DeclineInvite(ctx context.Context, in *DeclineInviteParams, opts ...grpc.CallOption) (*DeclineInviteResponse, error) GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*GetGroupResponse, error) GetGroupByMember(ctx context.Context, in *GetGroupByMemberRequest, opts ...grpc.CallOption) (*GetGroupResponse, error) GetGroupIDByPlayer(ctx context.Context, in *GetGroupIDByPlayerRequest, opts ...grpc.CallOption) (*GetGroupIDByPlayerResponse, error) + GetMemberPlacements(ctx context.Context, in *GetMemberPlacementsRequest, opts ...grpc.CallOption) (*GetMemberPlacementsResponse, error) SetGroupTargetIcon(ctx context.Context, in *SetGroupTargetIconRequest, opts ...grpc.CallOption) (*SetGroupTargetIconResponse, error) SetLootMethod(ctx context.Context, in *SetLootMethodRequest, opts ...grpc.CallOption) (*SetLootMethodResponse, error) SetDungeonDifficulty(ctx context.Context, in *SetDungeonDifficultyRequest, opts ...grpc.CallOption) (*SetDungeonDifficultyResponse, error) SetRaidDifficulty(ctx context.Context, in *SetRaidDifficultyRequest, opts ...grpc.CallOption) (*SetRaidDifficultyResponse, error) SendMessage(ctx context.Context, in *SendGroupMessageParams, opts ...grpc.CallOption) (*SendGroupMessageResponse, error) + StartReadyCheck(ctx context.Context, in *StartReadyCheckRequest, opts ...grpc.CallOption) (*StartReadyCheckResponse, error) + SetReadyCheckMemberState(ctx context.Context, in *SetReadyCheckMemberStateRequest, opts ...grpc.CallOption) (*SetReadyCheckMemberStateResponse, error) + FinishReadyCheck(ctx context.Context, in *FinishReadyCheckRequest, opts ...grpc.CallOption) (*FinishReadyCheckResponse, error) + ChangeMemberSubGroup(ctx context.Context, in *ChangeMemberSubGroupRequest, opts ...grpc.CallOption) (*ChangeMemberSubGroupResponse, error) + SetMemberFlags(ctx context.Context, in *SetMemberFlagsRequest, opts ...grpc.CallOption) (*SetMemberFlagsResponse, error) + RegisterAcceptedLfgGroup(ctx context.Context, in *RegisterAcceptedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterAcceptedLfgGroupResponse, error) + RegisterMaterializedLfgGroup(ctx context.Context, in *RegisterMaterializedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterMaterializedLfgGroupResponse, error) + UpdateMemberState(ctx context.Context, in *UpdateMemberStateRequest, opts ...grpc.CallOption) (*UpdateMemberStateResponse, error) + BulkUpdateMemberStates(ctx context.Context, in *BulkUpdateMemberStatesRequest, opts ...grpc.CallOption) (*BulkUpdateMemberStatesResponse, error) + ResetInstance(ctx context.Context, in *ResetInstanceRequest, opts ...grpc.CallOption) (*ResetInstanceResponse, error) + SetInstanceBindExtension(ctx context.Context, in *SetInstanceBindExtensionRequest, opts ...grpc.CallOption) (*SetInstanceBindExtensionResponse, error) } type groupServiceClient struct { @@ -117,6 +143,15 @@ func (c *groupServiceClient) AcceptInvite(ctx context.Context, in *AcceptInviteP return out, nil } +func (c *groupServiceClient) DeclineInvite(ctx context.Context, in *DeclineInviteParams, opts ...grpc.CallOption) (*DeclineInviteResponse, error) { + out := new(DeclineInviteResponse) + err := c.cc.Invoke(ctx, GroupService_DeclineInvite_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *groupServiceClient) GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*GetGroupResponse, error) { out := new(GetGroupResponse) err := c.cc.Invoke(ctx, GroupService_GetGroup_FullMethodName, in, out, opts...) @@ -144,6 +179,15 @@ func (c *groupServiceClient) GetGroupIDByPlayer(ctx context.Context, in *GetGrou return out, nil } +func (c *groupServiceClient) GetMemberPlacements(ctx context.Context, in *GetMemberPlacementsRequest, opts ...grpc.CallOption) (*GetMemberPlacementsResponse, error) { + out := new(GetMemberPlacementsResponse) + err := c.cc.Invoke(ctx, GroupService_GetMemberPlacements_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *groupServiceClient) SetGroupTargetIcon(ctx context.Context, in *SetGroupTargetIconRequest, opts ...grpc.CallOption) (*SetGroupTargetIconResponse, error) { out := new(SetGroupTargetIconResponse) err := c.cc.Invoke(ctx, GroupService_SetGroupTargetIcon_FullMethodName, in, out, opts...) @@ -189,6 +233,105 @@ func (c *groupServiceClient) SendMessage(ctx context.Context, in *SendGroupMessa return out, nil } +func (c *groupServiceClient) StartReadyCheck(ctx context.Context, in *StartReadyCheckRequest, opts ...grpc.CallOption) (*StartReadyCheckResponse, error) { + out := new(StartReadyCheckResponse) + err := c.cc.Invoke(ctx, GroupService_StartReadyCheck_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) SetReadyCheckMemberState(ctx context.Context, in *SetReadyCheckMemberStateRequest, opts ...grpc.CallOption) (*SetReadyCheckMemberStateResponse, error) { + out := new(SetReadyCheckMemberStateResponse) + err := c.cc.Invoke(ctx, GroupService_SetReadyCheckMemberState_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) FinishReadyCheck(ctx context.Context, in *FinishReadyCheckRequest, opts ...grpc.CallOption) (*FinishReadyCheckResponse, error) { + out := new(FinishReadyCheckResponse) + err := c.cc.Invoke(ctx, GroupService_FinishReadyCheck_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) ChangeMemberSubGroup(ctx context.Context, in *ChangeMemberSubGroupRequest, opts ...grpc.CallOption) (*ChangeMemberSubGroupResponse, error) { + out := new(ChangeMemberSubGroupResponse) + err := c.cc.Invoke(ctx, GroupService_ChangeMemberSubGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) SetMemberFlags(ctx context.Context, in *SetMemberFlagsRequest, opts ...grpc.CallOption) (*SetMemberFlagsResponse, error) { + out := new(SetMemberFlagsResponse) + err := c.cc.Invoke(ctx, GroupService_SetMemberFlags_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) RegisterAcceptedLfgGroup(ctx context.Context, in *RegisterAcceptedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterAcceptedLfgGroupResponse, error) { + out := new(RegisterAcceptedLfgGroupResponse) + err := c.cc.Invoke(ctx, GroupService_RegisterAcceptedLfgGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) RegisterMaterializedLfgGroup(ctx context.Context, in *RegisterMaterializedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterMaterializedLfgGroupResponse, error) { + out := new(RegisterMaterializedLfgGroupResponse) + err := c.cc.Invoke(ctx, GroupService_RegisterMaterializedLfgGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) UpdateMemberState(ctx context.Context, in *UpdateMemberStateRequest, opts ...grpc.CallOption) (*UpdateMemberStateResponse, error) { + out := new(UpdateMemberStateResponse) + err := c.cc.Invoke(ctx, GroupService_UpdateMemberState_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) BulkUpdateMemberStates(ctx context.Context, in *BulkUpdateMemberStatesRequest, opts ...grpc.CallOption) (*BulkUpdateMemberStatesResponse, error) { + out := new(BulkUpdateMemberStatesResponse) + err := c.cc.Invoke(ctx, GroupService_BulkUpdateMemberStates_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) ResetInstance(ctx context.Context, in *ResetInstanceRequest, opts ...grpc.CallOption) (*ResetInstanceResponse, error) { + out := new(ResetInstanceResponse) + err := c.cc.Invoke(ctx, GroupService_ResetInstance_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) SetInstanceBindExtension(ctx context.Context, in *SetInstanceBindExtensionRequest, opts ...grpc.CallOption) (*SetInstanceBindExtensionResponse, error) { + out := new(SetInstanceBindExtensionResponse) + err := c.cc.Invoke(ctx, GroupService_SetInstanceBindExtension_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GroupServiceServer is the server API for GroupService service. // All implementations must embed UnimplementedGroupServiceServer // for forward compatibility @@ -199,14 +342,27 @@ type GroupServiceServer interface { ConvertToRaid(context.Context, *ConvertToRaidParams) (*ConvertToRaidResponse, error) ChangeLeader(context.Context, *ChangeLeaderParams) (*ChangeLeaderResponse, error) AcceptInvite(context.Context, *AcceptInviteParams) (*AcceptInviteResponse, error) + DeclineInvite(context.Context, *DeclineInviteParams) (*DeclineInviteResponse, error) GetGroup(context.Context, *GetGroupRequest) (*GetGroupResponse, error) GetGroupByMember(context.Context, *GetGroupByMemberRequest) (*GetGroupResponse, error) GetGroupIDByPlayer(context.Context, *GetGroupIDByPlayerRequest) (*GetGroupIDByPlayerResponse, error) + GetMemberPlacements(context.Context, *GetMemberPlacementsRequest) (*GetMemberPlacementsResponse, error) SetGroupTargetIcon(context.Context, *SetGroupTargetIconRequest) (*SetGroupTargetIconResponse, error) SetLootMethod(context.Context, *SetLootMethodRequest) (*SetLootMethodResponse, error) SetDungeonDifficulty(context.Context, *SetDungeonDifficultyRequest) (*SetDungeonDifficultyResponse, error) SetRaidDifficulty(context.Context, *SetRaidDifficultyRequest) (*SetRaidDifficultyResponse, error) SendMessage(context.Context, *SendGroupMessageParams) (*SendGroupMessageResponse, error) + StartReadyCheck(context.Context, *StartReadyCheckRequest) (*StartReadyCheckResponse, error) + SetReadyCheckMemberState(context.Context, *SetReadyCheckMemberStateRequest) (*SetReadyCheckMemberStateResponse, error) + FinishReadyCheck(context.Context, *FinishReadyCheckRequest) (*FinishReadyCheckResponse, error) + ChangeMemberSubGroup(context.Context, *ChangeMemberSubGroupRequest) (*ChangeMemberSubGroupResponse, error) + SetMemberFlags(context.Context, *SetMemberFlagsRequest) (*SetMemberFlagsResponse, error) + RegisterAcceptedLfgGroup(context.Context, *RegisterAcceptedLfgGroupRequest) (*RegisterAcceptedLfgGroupResponse, error) + RegisterMaterializedLfgGroup(context.Context, *RegisterMaterializedLfgGroupRequest) (*RegisterMaterializedLfgGroupResponse, error) + UpdateMemberState(context.Context, *UpdateMemberStateRequest) (*UpdateMemberStateResponse, error) + BulkUpdateMemberStates(context.Context, *BulkUpdateMemberStatesRequest) (*BulkUpdateMemberStatesResponse, error) + ResetInstance(context.Context, *ResetInstanceRequest) (*ResetInstanceResponse, error) + SetInstanceBindExtension(context.Context, *SetInstanceBindExtensionRequest) (*SetInstanceBindExtensionResponse, error) mustEmbedUnimplementedGroupServiceServer() } @@ -232,6 +388,9 @@ func (UnimplementedGroupServiceServer) ChangeLeader(context.Context, *ChangeLead func (UnimplementedGroupServiceServer) AcceptInvite(context.Context, *AcceptInviteParams) (*AcceptInviteResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AcceptInvite not implemented") } +func (UnimplementedGroupServiceServer) DeclineInvite(context.Context, *DeclineInviteParams) (*DeclineInviteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeclineInvite not implemented") +} func (UnimplementedGroupServiceServer) GetGroup(context.Context, *GetGroupRequest) (*GetGroupResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") } @@ -241,6 +400,9 @@ func (UnimplementedGroupServiceServer) GetGroupByMember(context.Context, *GetGro func (UnimplementedGroupServiceServer) GetGroupIDByPlayer(context.Context, *GetGroupIDByPlayerRequest) (*GetGroupIDByPlayerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroupIDByPlayer not implemented") } +func (UnimplementedGroupServiceServer) GetMemberPlacements(context.Context, *GetMemberPlacementsRequest) (*GetMemberPlacementsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMemberPlacements not implemented") +} func (UnimplementedGroupServiceServer) SetGroupTargetIcon(context.Context, *SetGroupTargetIconRequest) (*SetGroupTargetIconResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetGroupTargetIcon not implemented") } @@ -256,6 +418,39 @@ func (UnimplementedGroupServiceServer) SetRaidDifficulty(context.Context, *SetRa func (UnimplementedGroupServiceServer) SendMessage(context.Context, *SendGroupMessageParams) (*SendGroupMessageResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented") } +func (UnimplementedGroupServiceServer) StartReadyCheck(context.Context, *StartReadyCheckRequest) (*StartReadyCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StartReadyCheck not implemented") +} +func (UnimplementedGroupServiceServer) SetReadyCheckMemberState(context.Context, *SetReadyCheckMemberStateRequest) (*SetReadyCheckMemberStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetReadyCheckMemberState not implemented") +} +func (UnimplementedGroupServiceServer) FinishReadyCheck(context.Context, *FinishReadyCheckRequest) (*FinishReadyCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FinishReadyCheck not implemented") +} +func (UnimplementedGroupServiceServer) ChangeMemberSubGroup(context.Context, *ChangeMemberSubGroupRequest) (*ChangeMemberSubGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangeMemberSubGroup not implemented") +} +func (UnimplementedGroupServiceServer) SetMemberFlags(context.Context, *SetMemberFlagsRequest) (*SetMemberFlagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetMemberFlags not implemented") +} +func (UnimplementedGroupServiceServer) RegisterAcceptedLfgGroup(context.Context, *RegisterAcceptedLfgGroupRequest) (*RegisterAcceptedLfgGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterAcceptedLfgGroup not implemented") +} +func (UnimplementedGroupServiceServer) RegisterMaterializedLfgGroup(context.Context, *RegisterMaterializedLfgGroupRequest) (*RegisterMaterializedLfgGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterMaterializedLfgGroup not implemented") +} +func (UnimplementedGroupServiceServer) UpdateMemberState(context.Context, *UpdateMemberStateRequest) (*UpdateMemberStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateMemberState not implemented") +} +func (UnimplementedGroupServiceServer) BulkUpdateMemberStates(context.Context, *BulkUpdateMemberStatesRequest) (*BulkUpdateMemberStatesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BulkUpdateMemberStates not implemented") +} +func (UnimplementedGroupServiceServer) ResetInstance(context.Context, *ResetInstanceRequest) (*ResetInstanceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResetInstance not implemented") +} +func (UnimplementedGroupServiceServer) SetInstanceBindExtension(context.Context, *SetInstanceBindExtensionRequest) (*SetInstanceBindExtensionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetInstanceBindExtension not implemented") +} func (UnimplementedGroupServiceServer) mustEmbedUnimplementedGroupServiceServer() {} // UnsafeGroupServiceServer may be embedded to opt out of forward compatibility for this service. @@ -377,6 +572,24 @@ func _GroupService_AcceptInvite_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _GroupService_DeclineInvite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeclineInviteParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).DeclineInvite(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_DeclineInvite_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).DeclineInvite(ctx, req.(*DeclineInviteParams)) + } + return interceptor(ctx, in, info, handler) +} + func _GroupService_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetGroupRequest) if err := dec(in); err != nil { @@ -431,6 +644,24 @@ func _GroupService_GetGroupIDByPlayer_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _GroupService_GetMemberPlacements_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMemberPlacementsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).GetMemberPlacements(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_GetMemberPlacements_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).GetMemberPlacements(ctx, req.(*GetMemberPlacementsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _GroupService_SetGroupTargetIcon_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetGroupTargetIconRequest) if err := dec(in); err != nil { @@ -521,6 +752,204 @@ func _GroupService_SendMessage_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _GroupService_StartReadyCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StartReadyCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).StartReadyCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_StartReadyCheck_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).StartReadyCheck(ctx, req.(*StartReadyCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_SetReadyCheckMemberState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetReadyCheckMemberStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).SetReadyCheckMemberState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_SetReadyCheckMemberState_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).SetReadyCheckMemberState(ctx, req.(*SetReadyCheckMemberStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_FinishReadyCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FinishReadyCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).FinishReadyCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_FinishReadyCheck_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).FinishReadyCheck(ctx, req.(*FinishReadyCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_ChangeMemberSubGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChangeMemberSubGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).ChangeMemberSubGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_ChangeMemberSubGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).ChangeMemberSubGroup(ctx, req.(*ChangeMemberSubGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_SetMemberFlags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetMemberFlagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).SetMemberFlags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_SetMemberFlags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).SetMemberFlags(ctx, req.(*SetMemberFlagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_RegisterAcceptedLfgGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterAcceptedLfgGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).RegisterAcceptedLfgGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_RegisterAcceptedLfgGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).RegisterAcceptedLfgGroup(ctx, req.(*RegisterAcceptedLfgGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_RegisterMaterializedLfgGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterMaterializedLfgGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).RegisterMaterializedLfgGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_RegisterMaterializedLfgGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).RegisterMaterializedLfgGroup(ctx, req.(*RegisterMaterializedLfgGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_UpdateMemberState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateMemberStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).UpdateMemberState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_UpdateMemberState_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).UpdateMemberState(ctx, req.(*UpdateMemberStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_BulkUpdateMemberStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BulkUpdateMemberStatesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).BulkUpdateMemberStates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_BulkUpdateMemberStates_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).BulkUpdateMemberStates(ctx, req.(*BulkUpdateMemberStatesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_ResetInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResetInstanceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).ResetInstance(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_ResetInstance_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).ResetInstance(ctx, req.(*ResetInstanceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_SetInstanceBindExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetInstanceBindExtensionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).SetInstanceBindExtension(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_SetInstanceBindExtension_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).SetInstanceBindExtension(ctx, req.(*SetInstanceBindExtensionRequest)) + } + return interceptor(ctx, in, info, handler) +} + // GroupService_ServiceDesc is the grpc.ServiceDesc for GroupService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -552,6 +981,10 @@ var GroupService_ServiceDesc = grpc.ServiceDesc{ MethodName: "AcceptInvite", Handler: _GroupService_AcceptInvite_Handler, }, + { + MethodName: "DeclineInvite", + Handler: _GroupService_DeclineInvite_Handler, + }, { MethodName: "GetGroup", Handler: _GroupService_GetGroup_Handler, @@ -564,6 +997,10 @@ var GroupService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetGroupIDByPlayer", Handler: _GroupService_GetGroupIDByPlayer_Handler, }, + { + MethodName: "GetMemberPlacements", + Handler: _GroupService_GetMemberPlacements_Handler, + }, { MethodName: "SetGroupTargetIcon", Handler: _GroupService_SetGroupTargetIcon_Handler, @@ -584,6 +1021,50 @@ var GroupService_ServiceDesc = grpc.ServiceDesc{ MethodName: "SendMessage", Handler: _GroupService_SendMessage_Handler, }, + { + MethodName: "StartReadyCheck", + Handler: _GroupService_StartReadyCheck_Handler, + }, + { + MethodName: "SetReadyCheckMemberState", + Handler: _GroupService_SetReadyCheckMemberState_Handler, + }, + { + MethodName: "FinishReadyCheck", + Handler: _GroupService_FinishReadyCheck_Handler, + }, + { + MethodName: "ChangeMemberSubGroup", + Handler: _GroupService_ChangeMemberSubGroup_Handler, + }, + { + MethodName: "SetMemberFlags", + Handler: _GroupService_SetMemberFlags_Handler, + }, + { + MethodName: "RegisterAcceptedLfgGroup", + Handler: _GroupService_RegisterAcceptedLfgGroup_Handler, + }, + { + MethodName: "RegisterMaterializedLfgGroup", + Handler: _GroupService_RegisterMaterializedLfgGroup_Handler, + }, + { + MethodName: "UpdateMemberState", + Handler: _GroupService_UpdateMemberState_Handler, + }, + { + MethodName: "BulkUpdateMemberStates", + Handler: _GroupService_BulkUpdateMemberStates_Handler, + }, + { + MethodName: "ResetInstance", + Handler: _GroupService_ResetInstance_Handler, + }, + { + MethodName: "SetInstanceBindExtension", + Handler: _GroupService_SetInstanceBindExtension_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group.proto", diff --git a/gen/guid/pb/guid.pb.go b/gen/guid/pb/guid.pb.go index d3d48c1..18512b5 100644 --- a/gen/guid/pb/guid.pb.go +++ b/gen/guid/pb/guid.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: guid.proto package pb diff --git a/gen/guid/pb/guid_grpc.pb.go b/gen/guid/pb/guid_grpc.pb.go index e27c655..7b71658 100644 --- a/gen/guid/pb/guid_grpc.pb.go +++ b/gen/guid/pb/guid_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: guid.proto package pb diff --git a/gen/guilds/pb/guilds.pb.go b/gen/guilds/pb/guilds.pb.go index 6f96a24..9c456e6 100644 --- a/gen/guilds/pb/guilds.pb.go +++ b/gen/guilds/pb/guilds.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: guilds.proto package pb @@ -66,6 +66,207 @@ func (InviteMemberResponse_Status) EnumDescriptor() ([]byte, []int) { return file_guilds_proto_rawDescGZIP(), []int{5, 0} } +type OfferGuildPetitionResponse_Status int32 + +const ( + OfferGuildPetitionResponse_Ok OfferGuildPetitionResponse_Status = 0 + OfferGuildPetitionResponse_NotFound OfferGuildPetitionResponse_Status = 1 + OfferGuildPetitionResponse_NotOwner OfferGuildPetitionResponse_Status = 2 + OfferGuildPetitionResponse_TargetNotFound OfferGuildPetitionResponse_Status = 3 + OfferGuildPetitionResponse_TargetAlreadyInGuild OfferGuildPetitionResponse_Status = 4 + OfferGuildPetitionResponse_TargetAlreadyInvited OfferGuildPetitionResponse_Status = 5 + OfferGuildPetitionResponse_Failed OfferGuildPetitionResponse_Status = 6 +) + +// Enum value maps for OfferGuildPetitionResponse_Status. +var ( + OfferGuildPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "NotOwner", + 3: "TargetNotFound", + 4: "TargetAlreadyInGuild", + 5: "TargetAlreadyInvited", + 6: "Failed", + } + OfferGuildPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "NotOwner": 2, + "TargetNotFound": 3, + "TargetAlreadyInGuild": 4, + "TargetAlreadyInvited": 5, + "Failed": 6, + } +) + +func (x OfferGuildPetitionResponse_Status) Enum() *OfferGuildPetitionResponse_Status { + p := new(OfferGuildPetitionResponse_Status) + *p = x + return p +} + +func (x OfferGuildPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OfferGuildPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_guilds_proto_enumTypes[1].Descriptor() +} + +func (OfferGuildPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_guilds_proto_enumTypes[1] +} + +func (x OfferGuildPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OfferGuildPetitionResponse_Status.Descriptor instead. +func (OfferGuildPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{33, 0} +} + +type SignGuildPetitionResponse_Status int32 + +const ( + SignGuildPetitionResponse_Ok SignGuildPetitionResponse_Status = 0 + SignGuildPetitionResponse_AlreadySigned SignGuildPetitionResponse_Status = 1 + SignGuildPetitionResponse_AlreadyInGuild SignGuildPetitionResponse_Status = 2 + SignGuildPetitionResponse_CantSignOwn SignGuildPetitionResponse_Status = 3 + SignGuildPetitionResponse_NotServer SignGuildPetitionResponse_Status = 4 + SignGuildPetitionResponse_NotFound SignGuildPetitionResponse_Status = 5 + SignGuildPetitionResponse_Full SignGuildPetitionResponse_Status = 6 + SignGuildPetitionResponse_Failed SignGuildPetitionResponse_Status = 7 + SignGuildPetitionResponse_AlreadyInvited SignGuildPetitionResponse_Status = 8 +) + +// Enum value maps for SignGuildPetitionResponse_Status. +var ( + SignGuildPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "AlreadySigned", + 2: "AlreadyInGuild", + 3: "CantSignOwn", + 4: "NotServer", + 5: "NotFound", + 6: "Full", + 7: "Failed", + 8: "AlreadyInvited", + } + SignGuildPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "AlreadySigned": 1, + "AlreadyInGuild": 2, + "CantSignOwn": 3, + "NotServer": 4, + "NotFound": 5, + "Full": 6, + "Failed": 7, + "AlreadyInvited": 8, + } +) + +func (x SignGuildPetitionResponse_Status) Enum() *SignGuildPetitionResponse_Status { + p := new(SignGuildPetitionResponse_Status) + *p = x + return p +} + +func (x SignGuildPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SignGuildPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_guilds_proto_enumTypes[2].Descriptor() +} + +func (SignGuildPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_guilds_proto_enumTypes[2] +} + +func (x SignGuildPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SignGuildPetitionResponse_Status.Descriptor instead. +func (SignGuildPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{35, 0} +} + +type GuildBankStatus_Status int32 + +const ( + GuildBankStatus_Ok GuildBankStatus_Status = 0 + GuildBankStatus_Failed GuildBankStatus_Status = 1 + GuildBankStatus_GuildNotFound GuildBankStatus_Status = 2 + GuildBankStatus_NotInGuild GuildBankStatus_Status = 3 + GuildBankStatus_NotEnoughRights GuildBankStatus_Status = 4 + GuildBankStatus_InvalidTab GuildBankStatus_Status = 5 + GuildBankStatus_InvalidSlot GuildBankStatus_Status = 6 + GuildBankStatus_NotEnoughMoney GuildBankStatus_Status = 7 + GuildBankStatus_BankFull GuildBankStatus_Status = 8 + GuildBankStatus_WithdrawLimit GuildBankStatus_Status = 9 + GuildBankStatus_ItemNotFound GuildBankStatus_Status = 10 +) + +// Enum value maps for GuildBankStatus_Status. +var ( + GuildBankStatus_Status_name = map[int32]string{ + 0: "Ok", + 1: "Failed", + 2: "GuildNotFound", + 3: "NotInGuild", + 4: "NotEnoughRights", + 5: "InvalidTab", + 6: "InvalidSlot", + 7: "NotEnoughMoney", + 8: "BankFull", + 9: "WithdrawLimit", + 10: "ItemNotFound", + } + GuildBankStatus_Status_value = map[string]int32{ + "Ok": 0, + "Failed": 1, + "GuildNotFound": 2, + "NotInGuild": 3, + "NotEnoughRights": 4, + "InvalidTab": 5, + "InvalidSlot": 6, + "NotEnoughMoney": 7, + "BankFull": 8, + "WithdrawLimit": 9, + "ItemNotFound": 10, + } +) + +func (x GuildBankStatus_Status) Enum() *GuildBankStatus_Status { + p := new(GuildBankStatus_Status) + *p = x + return p +} + +func (x GuildBankStatus_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GuildBankStatus_Status) Descriptor() protoreflect.EnumDescriptor { + return file_guilds_proto_enumTypes[3].Descriptor() +} + +func (GuildBankStatus_Status) Type() protoreflect.EnumType { + return &file_guilds_proto_enumTypes[3] +} + +func (x GuildBankStatus_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GuildBankStatus_Status.Descriptor instead. +func (GuildBankStatus_Status) EnumDescriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{39, 0} +} + type GetInfoParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -363,11 +564,13 @@ type InviteMemberParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Inviter uint64 `protobuf:"varint,3,opt,name=inviter,proto3" json:"inviter,omitempty"` - Invitee uint64 `protobuf:"varint,4,opt,name=invitee,proto3" json:"invitee,omitempty"` - InviteeName string `protobuf:"bytes,5,opt,name=inviteeName,proto3" json:"inviteeName,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Inviter uint64 `protobuf:"varint,3,opt,name=inviter,proto3" json:"inviter,omitempty"` + Invitee uint64 `protobuf:"varint,4,opt,name=invitee,proto3" json:"invitee,omitempty"` + InviteeName string `protobuf:"bytes,5,opt,name=inviteeName,proto3" json:"inviteeName,omitempty"` + InviteeRace uint32 `protobuf:"varint,6,opt,name=inviteeRace,proto3" json:"inviteeRace,omitempty"` + AllowCrossFaction bool `protobuf:"varint,7,opt,name=allowCrossFaction,proto3" json:"allowCrossFaction,omitempty"` } func (x *InviteMemberParams) Reset() { @@ -437,6 +640,20 @@ func (x *InviteMemberParams) GetInviteeName() string { return "" } +func (x *InviteMemberParams) GetInviteeRace() uint32 { + if x != nil { + return x.InviteeRace + } + return 0 +} + +func (x *InviteMemberParams) GetAllowCrossFaction() bool { + if x != nil { + return x.AllowCrossFaction + } + return false +} + type InviteMemberResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -489,9 +706,10 @@ type InviteAcceptedParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Character *InviteAcceptedParams_Character `protobuf:"bytes,3,opt,name=character,proto3" json:"character,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Character *InviteAcceptedParams_Character `protobuf:"bytes,3,opt,name=character,proto3" json:"character,omitempty"` + AllowCrossFaction bool `protobuf:"varint,4,opt,name=allowCrossFaction,proto3" json:"allowCrossFaction,omitempty"` } func (x *InviteAcceptedParams) Reset() { @@ -547,6 +765,13 @@ func (x *InviteAcceptedParams) GetCharacter() *InviteAcceptedParams_Character { return nil } +func (x *InviteAcceptedParams) GetAllowCrossFaction() bool { + if x != nil { + return x.AllowCrossFaction + } + return false +} + type InviteAcceptedResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1197,13 +1422,14 @@ type RankUpdateParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - ChangerGUID uint64 `protobuf:"varint,3,opt,name=changerGUID,proto3" json:"changerGUID,omitempty"` - Rank uint32 `protobuf:"varint,4,opt,name=rank,proto3" json:"rank,omitempty"` - RankName string `protobuf:"bytes,5,opt,name=rankName,proto3" json:"rankName,omitempty"` - Rights uint32 `protobuf:"varint,6,opt,name=rights,proto3" json:"rights,omitempty"` - MoneyPerDay uint32 `protobuf:"varint,7,opt,name=moneyPerDay,proto3" json:"moneyPerDay,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ChangerGUID uint64 `protobuf:"varint,3,opt,name=changerGUID,proto3" json:"changerGUID,omitempty"` + Rank uint32 `protobuf:"varint,4,opt,name=rank,proto3" json:"rank,omitempty"` + RankName string `protobuf:"bytes,5,opt,name=rankName,proto3" json:"rankName,omitempty"` + Rights uint32 `protobuf:"varint,6,opt,name=rights,proto3" json:"rights,omitempty"` + MoneyPerDay uint32 `protobuf:"varint,7,opt,name=moneyPerDay,proto3" json:"moneyPerDay,omitempty"` + BankTabRights []*RankUpdateParams_BankTabRight `protobuf:"bytes,8,rep,name=bankTabRights,proto3" json:"bankTabRights,omitempty"` } func (x *RankUpdateParams) Reset() { @@ -1287,6 +1513,13 @@ func (x *RankUpdateParams) GetMoneyPerDay() uint32 { return 0 } +func (x *RankUpdateParams) GetBankTabRights() []*RankUpdateParams_BankTabRight { + if x != nil { + return x.BankTabRights + } + return nil +} + type RankUpdateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1691,6 +1924,7 @@ type SendGuildMessageParams struct { IsOfficerMessage bool `protobuf:"varint,4,opt,name=isOfficerMessage,proto3" json:"isOfficerMessage,omitempty"` Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + SenderChatTag uint32 `protobuf:"varint,7,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendGuildMessageParams) Reset() { @@ -1767,6 +2001,13 @@ func (x *SendGuildMessageParams) GetLanguage() uint32 { return 0 } +func (x *SendGuildMessageParams) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendGuildMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1814,26 +2055,17 @@ func (x *SendGuildMessageResponse) GetApi() string { return "" } -type GetRosterInfoResponse_Member struct { +type GuildPetitionSignature struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` - RankID uint32 `protobuf:"varint,4,opt,name=rankID,proto3" json:"rankID,omitempty"` - Lvl uint32 `protobuf:"varint,5,opt,name=lvl,proto3" json:"lvl,omitempty"` - ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` - Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` - AreaID uint32 `protobuf:"varint,8,opt,name=areaID,proto3" json:"areaID,omitempty"` - LogoutTime int64 `protobuf:"varint,9,opt,name=logoutTime,proto3" json:"logoutTime,omitempty"` - Note string `protobuf:"bytes,10,opt,name=note,proto3" json:"note,omitempty"` - OfficerNote string `protobuf:"bytes,11,opt,name=officerNote,proto3" json:"officerNote,omitempty"` + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PlayerAccount uint32 `protobuf:"varint,2,opt,name=playerAccount,proto3" json:"playerAccount,omitempty"` } -func (x *GetRosterInfoResponse_Member) Reset() { - *x = GetRosterInfoResponse_Member{} +func (x *GuildPetitionSignature) Reset() { + *x = GuildPetitionSignature{} if protoimpl.UnsafeEnabled { mi := &file_guilds_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1841,13 +2073,13 @@ func (x *GetRosterInfoResponse_Member) Reset() { } } -func (x *GetRosterInfoResponse_Member) String() string { +func (x *GuildPetitionSignature) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRosterInfoResponse_Member) ProtoMessage() {} +func (*GuildPetitionSignature) ProtoMessage() {} -func (x *GetRosterInfoResponse_Member) ProtoReflect() protoreflect.Message { +func (x *GuildPetitionSignature) ProtoReflect() protoreflect.Message { mi := &file_guilds_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1859,115 +2091,139 @@ func (x *GetRosterInfoResponse_Member) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRosterInfoResponse_Member.ProtoReflect.Descriptor instead. -func (*GetRosterInfoResponse_Member) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{3, 0} +// Deprecated: Use GuildPetitionSignature.ProtoReflect.Descriptor instead. +func (*GuildPetitionSignature) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{28} } -func (x *GetRosterInfoResponse_Member) GetGuid() uint64 { +func (x *GuildPetitionSignature) GetPlayerGUID() uint64 { if x != nil { - return x.Guid + return x.PlayerGUID } return 0 } -func (x *GetRosterInfoResponse_Member) GetName() string { +func (x *GuildPetitionSignature) GetPlayerAccount() uint32 { if x != nil { - return x.Name + return x.PlayerAccount } - return "" + return 0 } -func (x *GetRosterInfoResponse_Member) GetStatus() uint32 { - if x != nil { - return x.Status - } - return 0 +type GuildPetition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PetitionGUID uint64 `protobuf:"varint,1,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` + PetitionID uint32 `protobuf:"varint,2,opt,name=petitionID,proto3" json:"petitionID,omitempty"` + OwnerGUID uint64 `protobuf:"varint,3,opt,name=ownerGUID,proto3" json:"ownerGUID,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Type uint32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` + Signatures []*GuildPetitionSignature `protobuf:"bytes,6,rep,name=signatures,proto3" json:"signatures,omitempty"` } -func (x *GetRosterInfoResponse_Member) GetRankID() uint32 { - if x != nil { - return x.RankID +func (x *GuildPetition) Reset() { + *x = GuildPetition{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *GetRosterInfoResponse_Member) GetLvl() uint32 { - if x != nil { - return x.Lvl +func (x *GuildPetition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildPetition) ProtoMessage() {} + +func (x *GuildPetition) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *GetRosterInfoResponse_Member) GetClassID() uint32 { +// Deprecated: Use GuildPetition.ProtoReflect.Descriptor instead. +func (*GuildPetition) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{29} +} + +func (x *GuildPetition) GetPetitionGUID() uint64 { if x != nil { - return x.ClassID + return x.PetitionGUID } return 0 } -func (x *GetRosterInfoResponse_Member) GetGender() uint32 { +func (x *GuildPetition) GetPetitionID() uint32 { if x != nil { - return x.Gender + return x.PetitionID } return 0 } -func (x *GetRosterInfoResponse_Member) GetAreaID() uint32 { +func (x *GuildPetition) GetOwnerGUID() uint64 { if x != nil { - return x.AreaID + return x.OwnerGUID } return 0 } -func (x *GetRosterInfoResponse_Member) GetLogoutTime() int64 { +func (x *GuildPetition) GetName() string { if x != nil { - return x.LogoutTime + return x.Name } - return 0 + return "" } -func (x *GetRosterInfoResponse_Member) GetNote() string { +func (x *GuildPetition) GetType() uint32 { if x != nil { - return x.Note + return x.Type } - return "" + return 0 } -func (x *GetRosterInfoResponse_Member) GetOfficerNote() string { +func (x *GuildPetition) GetSignatures() []*GuildPetitionSignature { if x != nil { - return x.OfficerNote + return x.Signatures } - return "" + return nil } -type GetRosterInfoResponse_Rank struct { +type GetGuildPetitionParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` - GoldLimit uint32 `protobuf:"varint,3,opt,name=goldLimit,proto3" json:"goldLimit,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,3,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` } -func (x *GetRosterInfoResponse_Rank) Reset() { - *x = GetRosterInfoResponse_Rank{} +func (x *GetGuildPetitionParams) Reset() { + *x = GetGuildPetitionParams{} if protoimpl.UnsafeEnabled { - mi := &file_guilds_proto_msgTypes[29] + mi := &file_guilds_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRosterInfoResponse_Rank) String() string { +func (x *GetGuildPetitionParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRosterInfoResponse_Rank) ProtoMessage() {} +func (*GetGuildPetitionParams) ProtoMessage() {} -func (x *GetRosterInfoResponse_Rank) ProtoReflect() protoreflect.Message { - mi := &file_guilds_proto_msgTypes[29] +func (x *GetGuildPetitionParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1978,61 +2234,58 @@ func (x *GetRosterInfoResponse_Rank) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRosterInfoResponse_Rank.ProtoReflect.Descriptor instead. -func (*GetRosterInfoResponse_Rank) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{3, 1} +// Deprecated: Use GetGuildPetitionParams.ProtoReflect.Descriptor instead. +func (*GetGuildPetitionParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{30} } -func (x *GetRosterInfoResponse_Rank) GetId() uint32 { +func (x *GetGuildPetitionParams) GetApi() string { if x != nil { - return x.Id + return x.Api } - return 0 + return "" } -func (x *GetRosterInfoResponse_Rank) GetFlags() uint32 { +func (x *GetGuildPetitionParams) GetRealmID() uint32 { if x != nil { - return x.Flags + return x.RealmID } return 0 } -func (x *GetRosterInfoResponse_Rank) GetGoldLimit() uint32 { +func (x *GetGuildPetitionParams) GetPetitionGUID() uint64 { if x != nil { - return x.GoldLimit + return x.PetitionGUID } return 0 } -type GetRosterInfoResponse_Guild struct { +type GetGuildPetitionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - WelcomeText string `protobuf:"bytes,2,opt,name=welcomeText,proto3" json:"welcomeText,omitempty"` - InfoText string `protobuf:"bytes,3,opt,name=infoText,proto3" json:"infoText,omitempty"` - Members []*GetRosterInfoResponse_Member `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` - Ranks []*GetRosterInfoResponse_Rank `protobuf:"bytes,5,rep,name=ranks,proto3" json:"ranks,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Petition *GuildPetition `protobuf:"bytes,2,opt,name=petition,proto3" json:"petition,omitempty"` } -func (x *GetRosterInfoResponse_Guild) Reset() { - *x = GetRosterInfoResponse_Guild{} +func (x *GetGuildPetitionResponse) Reset() { + *x = GetGuildPetitionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_guilds_proto_msgTypes[30] + mi := &file_guilds_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRosterInfoResponse_Guild) String() string { +func (x *GetGuildPetitionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRosterInfoResponse_Guild) ProtoMessage() {} +func (*GetGuildPetitionResponse) ProtoMessage() {} -func (x *GetRosterInfoResponse_Guild) ProtoReflect() protoreflect.Message { - mi := &file_guilds_proto_msgTypes[30] +func (x *GetGuildPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2043,78 +2296,55 @@ func (x *GetRosterInfoResponse_Guild) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRosterInfoResponse_Guild.ProtoReflect.Descriptor instead. -func (*GetRosterInfoResponse_Guild) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{3, 2} -} - -func (x *GetRosterInfoResponse_Guild) GetId() uint64 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *GetRosterInfoResponse_Guild) GetWelcomeText() string { - if x != nil { - return x.WelcomeText - } - return "" +// Deprecated: Use GetGuildPetitionResponse.ProtoReflect.Descriptor instead. +func (*GetGuildPetitionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{31} } -func (x *GetRosterInfoResponse_Guild) GetInfoText() string { +func (x *GetGuildPetitionResponse) GetApi() string { if x != nil { - return x.InfoText + return x.Api } return "" } -func (x *GetRosterInfoResponse_Guild) GetMembers() []*GetRosterInfoResponse_Member { - if x != nil { - return x.Members - } - return nil -} - -func (x *GetRosterInfoResponse_Guild) GetRanks() []*GetRosterInfoResponse_Rank { +func (x *GetGuildPetitionResponse) GetPetition() *GuildPetition { if x != nil { - return x.Ranks + return x.Petition } return nil } -type InviteAcceptedParams_Character struct { +type OfferGuildPetitionParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Lvl uint32 `protobuf:"varint,3,opt,name=lvl,proto3" json:"lvl,omitempty"` - Race uint32 `protobuf:"varint,4,opt,name=race,proto3" json:"race,omitempty"` - ClassID uint32 `protobuf:"varint,5,opt,name=classID,proto3" json:"classID,omitempty"` - Gender uint32 `protobuf:"varint,6,opt,name=gender,proto3" json:"gender,omitempty"` - AreaID uint32 `protobuf:"varint,7,opt,name=areaID,proto3" json:"areaID,omitempty"` - AccountID uint64 `protobuf:"varint,8,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + OwnerGUID uint64 `protobuf:"varint,3,opt,name=ownerGUID,proto3" json:"ownerGUID,omitempty"` + TargetGUID uint64 `protobuf:"varint,4,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` + TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + PetitionGUID uint64 `protobuf:"varint,6,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` } -func (x *InviteAcceptedParams_Character) Reset() { - *x = InviteAcceptedParams_Character{} +func (x *OfferGuildPetitionParams) Reset() { + *x = OfferGuildPetitionParams{} if protoimpl.UnsafeEnabled { - mi := &file_guilds_proto_msgTypes[31] + mi := &file_guilds_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InviteAcceptedParams_Character) String() string { +func (x *OfferGuildPetitionParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InviteAcceptedParams_Character) ProtoMessage() {} +func (*OfferGuildPetitionParams) ProtoMessage() {} -func (x *InviteAcceptedParams_Character) ProtoReflect() protoreflect.Message { - mi := &file_guilds_proto_msgTypes[31] +func (x *OfferGuildPetitionParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2125,12 +2355,2685 @@ func (x *InviteAcceptedParams_Character) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InviteAcceptedParams_Character.ProtoReflect.Descriptor instead. -func (*InviteAcceptedParams_Character) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{6, 0} +// Deprecated: Use OfferGuildPetitionParams.ProtoReflect.Descriptor instead. +func (*OfferGuildPetitionParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{32} } -func (x *InviteAcceptedParams_Character) GetGuid() uint64 { +func (x *OfferGuildPetitionParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *OfferGuildPetitionParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *OfferGuildPetitionParams) GetOwnerGUID() uint64 { + if x != nil { + return x.OwnerGUID + } + return 0 +} + +func (x *OfferGuildPetitionParams) GetTargetGUID() uint64 { + if x != nil { + return x.TargetGUID + } + return 0 +} + +func (x *OfferGuildPetitionParams) GetTargetName() string { + if x != nil { + return x.TargetName + } + return "" +} + +func (x *OfferGuildPetitionParams) GetPetitionGUID() uint64 { + if x != nil { + return x.PetitionGUID + } + return 0 +} + +type OfferGuildPetitionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status OfferGuildPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.OfferGuildPetitionResponse_Status" json:"status,omitempty"` +} + +func (x *OfferGuildPetitionResponse) Reset() { + *x = OfferGuildPetitionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OfferGuildPetitionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OfferGuildPetitionResponse) ProtoMessage() {} + +func (x *OfferGuildPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OfferGuildPetitionResponse.ProtoReflect.Descriptor instead. +func (*OfferGuildPetitionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{33} +} + +func (x *OfferGuildPetitionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *OfferGuildPetitionResponse) GetStatus() OfferGuildPetitionResponse_Status { + if x != nil { + return x.Status + } + return OfferGuildPetitionResponse_Ok +} + +type SignGuildPetitionParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SignerGUID uint64 `protobuf:"varint,3,opt,name=signerGUID,proto3" json:"signerGUID,omitempty"` + SignerName string `protobuf:"bytes,4,opt,name=signerName,proto3" json:"signerName,omitempty"` + SignerAccountID uint32 `protobuf:"varint,5,opt,name=signerAccountID,proto3" json:"signerAccountID,omitempty"` + SignerGuildID uint32 `protobuf:"varint,6,opt,name=signerGuildID,proto3" json:"signerGuildID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,7,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` +} + +func (x *SignGuildPetitionParams) Reset() { + *x = SignGuildPetitionParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignGuildPetitionParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignGuildPetitionParams) ProtoMessage() {} + +func (x *SignGuildPetitionParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignGuildPetitionParams.ProtoReflect.Descriptor instead. +func (*SignGuildPetitionParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{34} +} + +func (x *SignGuildPetitionParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SignGuildPetitionParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetSignerGUID() uint64 { + if x != nil { + return x.SignerGUID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetSignerName() string { + if x != nil { + return x.SignerName + } + return "" +} + +func (x *SignGuildPetitionParams) GetSignerAccountID() uint32 { + if x != nil { + return x.SignerAccountID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetSignerGuildID() uint32 { + if x != nil { + return x.SignerGuildID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetPetitionGUID() uint64 { + if x != nil { + return x.PetitionGUID + } + return 0 +} + +type SignGuildPetitionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SignGuildPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SignGuildPetitionResponse_Status" json:"status,omitempty"` +} + +func (x *SignGuildPetitionResponse) Reset() { + *x = SignGuildPetitionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignGuildPetitionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignGuildPetitionResponse) ProtoMessage() {} + +func (x *SignGuildPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignGuildPetitionResponse.ProtoReflect.Descriptor instead. +func (*SignGuildPetitionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{35} +} + +func (x *SignGuildPetitionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SignGuildPetitionResponse) GetStatus() SignGuildPetitionResponse_Status { + if x != nil { + return x.Status + } + return SignGuildPetitionResponse_Ok +} + +type GuildBankSocketEnchant struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SocketIndex uint32 `protobuf:"varint,1,opt,name=socketIndex,proto3" json:"socketIndex,omitempty"` + SocketEnchantID uint32 `protobuf:"varint,2,opt,name=socketEnchantID,proto3" json:"socketEnchantID,omitempty"` +} + +func (x *GuildBankSocketEnchant) Reset() { + *x = GuildBankSocketEnchant{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankSocketEnchant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankSocketEnchant) ProtoMessage() {} + +func (x *GuildBankSocketEnchant) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildBankSocketEnchant.ProtoReflect.Descriptor instead. +func (*GuildBankSocketEnchant) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{36} +} + +func (x *GuildBankSocketEnchant) GetSocketIndex() uint32 { + if x != nil { + return x.SocketIndex + } + return 0 +} + +func (x *GuildBankSocketEnchant) GetSocketEnchantID() uint32 { + if x != nil { + return x.SocketEnchantID + } + return 0 +} + +type GuildBankItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemGUID uint64 `protobuf:"varint,1,opt,name=itemGUID,proto3" json:"itemGUID,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Slot uint32 `protobuf:"varint,3,opt,name=slot,proto3" json:"slot,omitempty"` + Count uint32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,5,opt,name=flags,proto3" json:"flags,omitempty"` + RandomPropertyID int32 `protobuf:"varint,6,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + RandomPropertySeed int32 `protobuf:"varint,7,opt,name=randomPropertySeed,proto3" json:"randomPropertySeed,omitempty"` + Durability uint32 `protobuf:"varint,8,opt,name=durability,proto3" json:"durability,omitempty"` + EnchantmentID uint32 `protobuf:"varint,9,opt,name=enchantmentID,proto3" json:"enchantmentID,omitempty"` + SocketEnchants []*GuildBankSocketEnchant `protobuf:"bytes,10,rep,name=socketEnchants,proto3" json:"socketEnchants,omitempty"` + Charges uint32 `protobuf:"varint,11,opt,name=charges,proto3" json:"charges,omitempty"` + Text string `protobuf:"bytes,12,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *GuildBankItem) Reset() { + *x = GuildBankItem{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankItem) ProtoMessage() {} + +func (x *GuildBankItem) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildBankItem.ProtoReflect.Descriptor instead. +func (*GuildBankItem) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{37} +} + +func (x *GuildBankItem) GetItemGUID() uint64 { + if x != nil { + return x.ItemGUID + } + return 0 +} + +func (x *GuildBankItem) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *GuildBankItem) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *GuildBankItem) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GuildBankItem) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GuildBankItem) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *GuildBankItem) GetRandomPropertySeed() int32 { + if x != nil { + return x.RandomPropertySeed + } + return 0 +} + +func (x *GuildBankItem) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *GuildBankItem) GetEnchantmentID() uint32 { + if x != nil { + return x.EnchantmentID + } + return 0 +} + +func (x *GuildBankItem) GetSocketEnchants() []*GuildBankSocketEnchant { + if x != nil { + return x.SocketEnchants + } + return nil +} + +func (x *GuildBankItem) GetCharges() uint32 { + if x != nil { + return x.Charges + } + return 0 +} + +func (x *GuildBankItem) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type GuildBankTab struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TabID uint32 `protobuf:"varint,1,opt,name=tabID,proto3" json:"tabID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` + Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` + Items []*GuildBankItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GuildBankTab) Reset() { + *x = GuildBankTab{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankTab) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankTab) ProtoMessage() {} + +func (x *GuildBankTab) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildBankTab.ProtoReflect.Descriptor instead. +func (*GuildBankTab) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{38} +} + +func (x *GuildBankTab) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GuildBankTab) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GuildBankTab) GetIcon() string { + if x != nil { + return x.Icon + } + return "" +} + +func (x *GuildBankTab) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *GuildBankTab) GetItems() []*GuildBankItem { + if x != nil { + return x.Items + } + return nil +} + +type GuildBankStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GuildBankStatus) Reset() { + *x = GuildBankStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankStatus) ProtoMessage() {} + +func (x *GuildBankStatus) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildBankStatus.ProtoReflect.Descriptor instead. +func (*GuildBankStatus) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{39} +} + +type GetGuildBankParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + FullUpdate bool `protobuf:"varint,6,opt,name=fullUpdate,proto3" json:"fullUpdate,omitempty"` +} + +func (x *GetGuildBankParams) Reset() { + *x = GetGuildBankParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankParams) ProtoMessage() {} + +func (x *GetGuildBankParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGuildBankParams.ProtoReflect.Descriptor instead. +func (*GetGuildBankParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{40} +} + +func (x *GetGuildBankParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetGuildBankParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *GetGuildBankParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *GetGuildBankParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankParams) GetFullUpdate() bool { + if x != nil { + return x.FullUpdate + } + return false +} + +type GetGuildBankResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + Money uint64 `protobuf:"varint,3,opt,name=money,proto3" json:"money,omitempty"` + TabID uint32 `protobuf:"varint,4,opt,name=tabID,proto3" json:"tabID,omitempty"` + WithdrawalsRemaining int32 `protobuf:"varint,5,opt,name=withdrawalsRemaining,proto3" json:"withdrawalsRemaining,omitempty"` + FullUpdate bool `protobuf:"varint,6,opt,name=fullUpdate,proto3" json:"fullUpdate,omitempty"` + Tabs []*GuildBankTab `protobuf:"bytes,7,rep,name=tabs,proto3" json:"tabs,omitempty"` + Items []*GuildBankItem `protobuf:"bytes,8,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GetGuildBankResponse) Reset() { + *x = GetGuildBankResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankResponse) ProtoMessage() {} + +func (x *GetGuildBankResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGuildBankResponse.ProtoReflect.Descriptor instead. +func (*GetGuildBankResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{41} +} + +func (x *GetGuildBankResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GetGuildBankResponse) GetMoney() uint64 { + if x != nil { + return x.Money + } + return 0 +} + +func (x *GetGuildBankResponse) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankResponse) GetWithdrawalsRemaining() int32 { + if x != nil { + return x.WithdrawalsRemaining + } + return 0 +} + +func (x *GetGuildBankResponse) GetFullUpdate() bool { + if x != nil { + return x.FullUpdate + } + return false +} + +func (x *GetGuildBankResponse) GetTabs() []*GuildBankTab { + if x != nil { + return x.Tabs + } + return nil +} + +func (x *GetGuildBankResponse) GetItems() []*GuildBankItem { + if x != nil { + return x.Items + } + return nil +} + +type GetGuildBankLogParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` +} + +func (x *GetGuildBankLogParams) Reset() { + *x = GetGuildBankLogParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankLogParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankLogParams) ProtoMessage() {} + +func (x *GetGuildBankLogParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGuildBankLogParams.ProtoReflect.Descriptor instead. +func (*GetGuildBankLogParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{42} +} + +func (x *GetGuildBankLogParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankLogParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetGuildBankLogParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *GetGuildBankLogParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *GetGuildBankLogParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +type GuildBankLogEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + TimeOffset uint32 `protobuf:"varint,2,opt,name=timeOffset,proto3" json:"timeOffset,omitempty"` + EntryType int32 `protobuf:"varint,3,opt,name=entryType,proto3" json:"entryType,omitempty"` + Money uint32 `protobuf:"varint,4,opt,name=money,proto3" json:"money,omitempty"` + ItemID int32 `protobuf:"varint,5,opt,name=itemID,proto3" json:"itemID,omitempty"` + Count int32 `protobuf:"varint,6,opt,name=count,proto3" json:"count,omitempty"` + OtherTab int32 `protobuf:"varint,7,opt,name=otherTab,proto3" json:"otherTab,omitempty"` +} + +func (x *GuildBankLogEntry) Reset() { + *x = GuildBankLogEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankLogEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankLogEntry) ProtoMessage() {} + +func (x *GuildBankLogEntry) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildBankLogEntry.ProtoReflect.Descriptor instead. +func (*GuildBankLogEntry) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{43} +} + +func (x *GuildBankLogEntry) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *GuildBankLogEntry) GetTimeOffset() uint32 { + if x != nil { + return x.TimeOffset + } + return 0 +} + +func (x *GuildBankLogEntry) GetEntryType() int32 { + if x != nil { + return x.EntryType + } + return 0 +} + +func (x *GuildBankLogEntry) GetMoney() uint32 { + if x != nil { + return x.Money + } + return 0 +} + +func (x *GuildBankLogEntry) GetItemID() int32 { + if x != nil { + return x.ItemID + } + return 0 +} + +func (x *GuildBankLogEntry) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GuildBankLogEntry) GetOtherTab() int32 { + if x != nil { + return x.OtherTab + } + return 0 +} + +type GetGuildBankLogResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + TabID uint32 `protobuf:"varint,3,opt,name=tabID,proto3" json:"tabID,omitempty"` + Entries []*GuildBankLogEntry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries,omitempty"` +} + +func (x *GetGuildBankLogResponse) Reset() { + *x = GetGuildBankLogResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankLogResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankLogResponse) ProtoMessage() {} + +func (x *GetGuildBankLogResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGuildBankLogResponse.ProtoReflect.Descriptor instead. +func (*GetGuildBankLogResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{44} +} + +func (x *GetGuildBankLogResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankLogResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GetGuildBankLogResponse) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankLogResponse) GetEntries() []*GuildBankLogEntry { + if x != nil { + return x.Entries + } + return nil +} + +type GetGuildBankTabTextParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` +} + +func (x *GetGuildBankTabTextParams) Reset() { + *x = GetGuildBankTabTextParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankTabTextParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankTabTextParams) ProtoMessage() {} + +func (x *GetGuildBankTabTextParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGuildBankTabTextParams.ProtoReflect.Descriptor instead. +func (*GetGuildBankTabTextParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{45} +} + +func (x *GetGuildBankTabTextParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankTabTextParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetGuildBankTabTextParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *GetGuildBankTabTextParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *GetGuildBankTabTextParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +type GetGuildBankTabTextResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + TabID uint32 `protobuf:"varint,3,opt,name=tabID,proto3" json:"tabID,omitempty"` + Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *GetGuildBankTabTextResponse) Reset() { + *x = GetGuildBankTabTextResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankTabTextResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankTabTextResponse) ProtoMessage() {} + +func (x *GetGuildBankTabTextResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGuildBankTabTextResponse.ProtoReflect.Descriptor instead. +func (*GetGuildBankTabTextResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{46} +} + +func (x *GetGuildBankTabTextResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankTabTextResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GetGuildBankTabTextResponse) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankTabTextResponse) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type UpdateGuildBankTabParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,7,opt,name=icon,proto3" json:"icon,omitempty"` +} + +func (x *UpdateGuildBankTabParams) Reset() { + *x = UpdateGuildBankTabParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateGuildBankTabParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGuildBankTabParams) ProtoMessage() {} + +func (x *UpdateGuildBankTabParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateGuildBankTabParams.ProtoReflect.Descriptor instead. +func (*UpdateGuildBankTabParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{47} +} + +func (x *UpdateGuildBankTabParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *UpdateGuildBankTabParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateGuildBankTabParams) GetIcon() string { + if x != nil { + return x.Icon + } + return "" +} + +type SetGuildBankTabTextParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + Text string `protobuf:"bytes,6,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *SetGuildBankTabTextParams) Reset() { + *x = SetGuildBankTabTextParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetGuildBankTabTextParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetGuildBankTabTextParams) ProtoMessage() {} + +func (x *SetGuildBankTabTextParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetGuildBankTabTextParams.ProtoReflect.Descriptor instead. +func (*SetGuildBankTabTextParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{48} +} + +func (x *SetGuildBankTabTextParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetGuildBankTabTextParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type BuyGuildBankTabParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` +} + +func (x *BuyGuildBankTabParams) Reset() { + *x = BuyGuildBankTabParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuyGuildBankTabParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuyGuildBankTabParams) ProtoMessage() {} + +func (x *BuyGuildBankTabParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BuyGuildBankTabParams.ProtoReflect.Descriptor instead. +func (*BuyGuildBankTabParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{49} +} + +func (x *BuyGuildBankTabParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *BuyGuildBankTabParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *BuyGuildBankTabParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *BuyGuildBankTabParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *BuyGuildBankTabParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +type BuyGuildBankTabResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + TabCost uint32 `protobuf:"varint,3,opt,name=tabCost,proto3" json:"tabCost,omitempty"` +} + +func (x *BuyGuildBankTabResponse) Reset() { + *x = BuyGuildBankTabResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuyGuildBankTabResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuyGuildBankTabResponse) ProtoMessage() {} + +func (x *BuyGuildBankTabResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BuyGuildBankTabResponse.ProtoReflect.Descriptor instead. +func (*BuyGuildBankTabResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{50} +} + +func (x *BuyGuildBankTabResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *BuyGuildBankTabResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *BuyGuildBankTabResponse) GetTabCost() uint32 { + if x != nil { + return x.TabCost + } + return 0 +} + +type DepositGuildBankMoneyParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Amount uint32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *DepositGuildBankMoneyParams) Reset() { + *x = DepositGuildBankMoneyParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DepositGuildBankMoneyParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DepositGuildBankMoneyParams) ProtoMessage() {} + +func (x *DepositGuildBankMoneyParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DepositGuildBankMoneyParams.ProtoReflect.Descriptor instead. +func (*DepositGuildBankMoneyParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{51} +} + +func (x *DepositGuildBankMoneyParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DepositGuildBankMoneyParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *DepositGuildBankMoneyParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *DepositGuildBankMoneyParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *DepositGuildBankMoneyParams) GetAmount() uint32 { + if x != nil { + return x.Amount + } + return 0 +} + +type WithdrawGuildBankMoneyParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Amount uint32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"` + Repair bool `protobuf:"varint,6,opt,name=repair,proto3" json:"repair,omitempty"` +} + +func (x *WithdrawGuildBankMoneyParams) Reset() { + *x = WithdrawGuildBankMoneyParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawGuildBankMoneyParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawGuildBankMoneyParams) ProtoMessage() {} + +func (x *WithdrawGuildBankMoneyParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WithdrawGuildBankMoneyParams.ProtoReflect.Descriptor instead. +func (*WithdrawGuildBankMoneyParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{52} +} + +func (x *WithdrawGuildBankMoneyParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *WithdrawGuildBankMoneyParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetAmount() uint32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetRepair() bool { + if x != nil { + return x.Repair + } + return false +} + +type RollbackGuildBankMoneyWithdrawParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Amount uint32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"` + Repair bool `protobuf:"varint,6,opt,name=repair,proto3" json:"repair,omitempty"` + LogGUID uint32 `protobuf:"varint,7,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *RollbackGuildBankMoneyWithdrawParams) Reset() { + *x = RollbackGuildBankMoneyWithdrawParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RollbackGuildBankMoneyWithdrawParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RollbackGuildBankMoneyWithdrawParams) ProtoMessage() {} + +func (x *RollbackGuildBankMoneyWithdrawParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RollbackGuildBankMoneyWithdrawParams.ProtoReflect.Descriptor instead. +func (*RollbackGuildBankMoneyWithdrawParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{53} +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetAmount() uint32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetRepair() bool { + if x != nil { + return x.Repair + } + return false +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type DepositGuildBankItemParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + SlotID uint32 `protobuf:"varint,6,opt,name=slotID,proto3" json:"slotID,omitempty"` + Item *GuildBankItem `protobuf:"bytes,7,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *DepositGuildBankItemParams) Reset() { + *x = DepositGuildBankItemParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DepositGuildBankItemParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DepositGuildBankItemParams) ProtoMessage() {} + +func (x *DepositGuildBankItemParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DepositGuildBankItemParams.ProtoReflect.Descriptor instead. +func (*DepositGuildBankItemParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{54} +} + +func (x *DepositGuildBankItemParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DepositGuildBankItemParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetSlotID() uint32 { + if x != nil { + return x.SlotID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetItem() *GuildBankItem { + if x != nil { + return x.Item + } + return nil +} + +type WithdrawGuildBankItemParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + SlotID uint32 `protobuf:"varint,6,opt,name=slotID,proto3" json:"slotID,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *WithdrawGuildBankItemParams) Reset() { + *x = WithdrawGuildBankItemParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawGuildBankItemParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawGuildBankItemParams) ProtoMessage() {} + +func (x *WithdrawGuildBankItemParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WithdrawGuildBankItemParams.ProtoReflect.Descriptor instead. +func (*WithdrawGuildBankItemParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{55} +} + +func (x *WithdrawGuildBankItemParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *WithdrawGuildBankItemParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetSlotID() uint32 { + if x != nil { + return x.SlotID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +type RollbackGuildBankItemWithdrawParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + SlotID uint32 `protobuf:"varint,6,opt,name=slotID,proto3" json:"slotID,omitempty"` + Item *GuildBankItem `protobuf:"bytes,7,opt,name=item,proto3" json:"item,omitempty"` + LogGUID uint32 `protobuf:"varint,8,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *RollbackGuildBankItemWithdrawParams) Reset() { + *x = RollbackGuildBankItemWithdrawParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RollbackGuildBankItemWithdrawParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RollbackGuildBankItemWithdrawParams) ProtoMessage() {} + +func (x *RollbackGuildBankItemWithdrawParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RollbackGuildBankItemWithdrawParams.ProtoReflect.Descriptor instead. +func (*RollbackGuildBankItemWithdrawParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{56} +} + +func (x *RollbackGuildBankItemWithdrawParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RollbackGuildBankItemWithdrawParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetSlotID() uint32 { + if x != nil { + return x.SlotID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetItem() *GuildBankItem { + if x != nil { + return x.Item + } + return nil +} + +func (x *RollbackGuildBankItemWithdrawParams) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type MoveGuildBankItemParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + SourceTabID uint32 `protobuf:"varint,5,opt,name=sourceTabID,proto3" json:"sourceTabID,omitempty"` + SourceSlotID uint32 `protobuf:"varint,6,opt,name=sourceSlotID,proto3" json:"sourceSlotID,omitempty"` + DestinationTabID uint32 `protobuf:"varint,7,opt,name=destinationTabID,proto3" json:"destinationTabID,omitempty"` + DestinationSlotID uint32 `protobuf:"varint,8,opt,name=destinationSlotID,proto3" json:"destinationSlotID,omitempty"` + Count uint32 `protobuf:"varint,9,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *MoveGuildBankItemParams) Reset() { + *x = MoveGuildBankItemParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MoveGuildBankItemParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MoveGuildBankItemParams) ProtoMessage() {} + +func (x *MoveGuildBankItemParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MoveGuildBankItemParams.ProtoReflect.Descriptor instead. +func (*MoveGuildBankItemParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{57} +} + +func (x *MoveGuildBankItemParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *MoveGuildBankItemParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetSourceTabID() uint32 { + if x != nil { + return x.SourceTabID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetSourceSlotID() uint32 { + if x != nil { + return x.SourceSlotID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetDestinationTabID() uint32 { + if x != nil { + return x.DestinationTabID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetDestinationSlotID() uint32 { + if x != nil { + return x.DestinationSlotID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +type GuildBankActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + LogGUID uint32 `protobuf:"varint,3,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *GuildBankActionResponse) Reset() { + *x = GuildBankActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankActionResponse) ProtoMessage() {} + +func (x *GuildBankActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildBankActionResponse.ProtoReflect.Descriptor instead. +func (*GuildBankActionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{58} +} + +func (x *GuildBankActionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GuildBankActionResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GuildBankActionResponse) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type GuildBankItemMutationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + Item *GuildBankItem `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` + ChangedSlots []uint32 `protobuf:"varint,4,rep,packed,name=changedSlots,proto3" json:"changedSlots,omitempty"` + LogGUID uint32 `protobuf:"varint,5,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *GuildBankItemMutationResponse) Reset() { + *x = GuildBankItemMutationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankItemMutationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankItemMutationResponse) ProtoMessage() {} + +func (x *GuildBankItemMutationResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildBankItemMutationResponse.ProtoReflect.Descriptor instead. +func (*GuildBankItemMutationResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{59} +} + +func (x *GuildBankItemMutationResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GuildBankItemMutationResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GuildBankItemMutationResponse) GetItem() *GuildBankItem { + if x != nil { + return x.Item + } + return nil +} + +func (x *GuildBankItemMutationResponse) GetChangedSlots() []uint32 { + if x != nil { + return x.ChangedSlots + } + return nil +} + +func (x *GuildBankItemMutationResponse) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type GetRosterInfoResponse_Member struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` + RankID uint32 `protobuf:"varint,4,opt,name=rankID,proto3" json:"rankID,omitempty"` + Lvl uint32 `protobuf:"varint,5,opt,name=lvl,proto3" json:"lvl,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` + AreaID uint32 `protobuf:"varint,8,opt,name=areaID,proto3" json:"areaID,omitempty"` + LogoutTime int64 `protobuf:"varint,9,opt,name=logoutTime,proto3" json:"logoutTime,omitempty"` + Note string `protobuf:"bytes,10,opt,name=note,proto3" json:"note,omitempty"` + OfficerNote string `protobuf:"bytes,11,opt,name=officerNote,proto3" json:"officerNote,omitempty"` + BankWithdraw []uint32 `protobuf:"varint,12,rep,packed,name=bankWithdraw,proto3" json:"bankWithdraw,omitempty"` +} + +func (x *GetRosterInfoResponse_Member) Reset() { + *x = GetRosterInfoResponse_Member{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Member) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Member) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Member) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRosterInfoResponse_Member.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Member) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *GetRosterInfoResponse_Member) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetRosterInfoResponse_Member) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetRankID() uint32 { + if x != nil { + return x.RankID + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetLvl() uint32 { + if x != nil { + return x.Lvl + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetGender() uint32 { + if x != nil { + return x.Gender + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetAreaID() uint32 { + if x != nil { + return x.AreaID + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetLogoutTime() int64 { + if x != nil { + return x.LogoutTime + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +func (x *GetRosterInfoResponse_Member) GetOfficerNote() string { + if x != nil { + return x.OfficerNote + } + return "" +} + +func (x *GetRosterInfoResponse_Member) GetBankWithdraw() []uint32 { + if x != nil { + return x.BankWithdraw + } + return nil +} + +type GetRosterInfoResponse_Rank struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + GoldLimit uint32 `protobuf:"varint,3,opt,name=goldLimit,proto3" json:"goldLimit,omitempty"` + BankTabRights []*GetRosterInfoResponse_Rank_BankTabRight `protobuf:"bytes,4,rep,name=bankTabRights,proto3" json:"bankTabRights,omitempty"` +} + +func (x *GetRosterInfoResponse_Rank) Reset() { + *x = GetRosterInfoResponse_Rank{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Rank) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Rank) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Rank) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRosterInfoResponse_Rank.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Rank) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 1} +} + +func (x *GetRosterInfoResponse_Rank) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank) GetGoldLimit() uint32 { + if x != nil { + return x.GoldLimit + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank) GetBankTabRights() []*GetRosterInfoResponse_Rank_BankTabRight { + if x != nil { + return x.BankTabRights + } + return nil +} + +type GetRosterInfoResponse_Guild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + WelcomeText string `protobuf:"bytes,2,opt,name=welcomeText,proto3" json:"welcomeText,omitempty"` + InfoText string `protobuf:"bytes,3,opt,name=infoText,proto3" json:"infoText,omitempty"` + Members []*GetRosterInfoResponse_Member `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` + Ranks []*GetRosterInfoResponse_Rank `protobuf:"bytes,5,rep,name=ranks,proto3" json:"ranks,omitempty"` + PurchasedBankTabs uint32 `protobuf:"varint,6,opt,name=purchasedBankTabs,proto3" json:"purchasedBankTabs,omitempty"` +} + +func (x *GetRosterInfoResponse_Guild) Reset() { + *x = GetRosterInfoResponse_Guild{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Guild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Guild) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Guild) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRosterInfoResponse_Guild.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Guild) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 2} +} + +func (x *GetRosterInfoResponse_Guild) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetRosterInfoResponse_Guild) GetWelcomeText() string { + if x != nil { + return x.WelcomeText + } + return "" +} + +func (x *GetRosterInfoResponse_Guild) GetInfoText() string { + if x != nil { + return x.InfoText + } + return "" +} + +func (x *GetRosterInfoResponse_Guild) GetMembers() []*GetRosterInfoResponse_Member { + if x != nil { + return x.Members + } + return nil +} + +func (x *GetRosterInfoResponse_Guild) GetRanks() []*GetRosterInfoResponse_Rank { + if x != nil { + return x.Ranks + } + return nil +} + +func (x *GetRosterInfoResponse_Guild) GetPurchasedBankTabs() uint32 { + if x != nil { + return x.PurchasedBankTabs + } + return 0 +} + +type GetRosterInfoResponse_Rank_BankTabRight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TabID uint32 `protobuf:"varint,1,opt,name=tabID,proto3" json:"tabID,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + WithdrawItemLimit uint32 `protobuf:"varint,3,opt,name=withdrawItemLimit,proto3" json:"withdrawItemLimit,omitempty"` +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) Reset() { + *x = GetRosterInfoResponse_Rank_BankTabRight{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Rank_BankTabRight) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRosterInfoResponse_Rank_BankTabRight.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Rank_BankTabRight) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 1, 0} +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) GetWithdrawItemLimit() uint32 { + if x != nil { + return x.WithdrawItemLimit + } + return 0 +} + +type InviteAcceptedParams_Character struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Lvl uint32 `protobuf:"varint,3,opt,name=lvl,proto3" json:"lvl,omitempty"` + Race uint32 `protobuf:"varint,4,opt,name=race,proto3" json:"race,omitempty"` + ClassID uint32 `protobuf:"varint,5,opt,name=classID,proto3" json:"classID,omitempty"` + Gender uint32 `protobuf:"varint,6,opt,name=gender,proto3" json:"gender,omitempty"` + AreaID uint32 `protobuf:"varint,7,opt,name=areaID,proto3" json:"areaID,omitempty"` + AccountID uint64 `protobuf:"varint,8,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *InviteAcceptedParams_Character) Reset() { + *x = InviteAcceptedParams_Character{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InviteAcceptedParams_Character) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InviteAcceptedParams_Character) ProtoMessage() {} + +func (x *InviteAcceptedParams_Character) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InviteAcceptedParams_Character.ProtoReflect.Descriptor instead. +func (*InviteAcceptedParams_Character) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *InviteAcceptedParams_Character) GetGuid() uint64 { if x != nil { return x.Guid } @@ -2167,21 +5070,84 @@ func (x *InviteAcceptedParams_Character) GetClassID() uint32 { func (x *InviteAcceptedParams_Character) GetGender() uint32 { if x != nil { - return x.Gender + return x.Gender + } + return 0 +} + +func (x *InviteAcceptedParams_Character) GetAreaID() uint32 { + if x != nil { + return x.AreaID + } + return 0 +} + +func (x *InviteAcceptedParams_Character) GetAccountID() uint64 { + if x != nil { + return x.AccountID + } + return 0 +} + +type RankUpdateParams_BankTabRight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TabID uint32 `protobuf:"varint,1,opt,name=tabID,proto3" json:"tabID,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + WithdrawItemLimit uint32 `protobuf:"varint,3,opt,name=withdrawItemLimit,proto3" json:"withdrawItemLimit,omitempty"` +} + +func (x *RankUpdateParams_BankTabRight) Reset() { + *x = RankUpdateParams_BankTabRight{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankUpdateParams_BankTabRight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankUpdateParams_BankTabRight) ProtoMessage() {} + +func (x *RankUpdateParams_BankTabRight) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RankUpdateParams_BankTabRight.ProtoReflect.Descriptor instead. +func (*RankUpdateParams_BankTabRight) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *RankUpdateParams_BankTabRight) GetTabID() uint32 { + if x != nil { + return x.TabID } return 0 } -func (x *InviteAcceptedParams_Character) GetAreaID() uint32 { +func (x *RankUpdateParams_BankTabRight) GetFlags() uint32 { if x != nil { - return x.AreaID + return x.Flags } return 0 } -func (x *InviteAcceptedParams_Character) GetAccountID() uint64 { +func (x *RankUpdateParams_BankTabRight) GetWithdrawItemLimit() uint32 { if x != nil { - return x.AccountID + return x.WithdrawItemLimit } return 0 } @@ -2220,13 +5186,13 @@ var file_guilds_proto_rawDesc = []byte{ 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x44, 0x22, 0x8b, 0x05, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, + 0x6c, 0x64, 0x49, 0x44, 0x22, 0x9b, 0x07, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x35, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x1a, 0x92, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x62, + 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x1a, 0xb6, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, @@ -2243,25 +5209,42 @@ var file_guilds_proto_rawDesc = []byte{ 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x1a, 0x4a, 0x0a, 0x04, - 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x6f, - 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, - 0x6f, 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0xc7, 0x01, 0x0a, 0x05, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x54, 0x65, 0x78, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, - 0x54, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x78, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x78, 0x74, - 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x05, - 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e, - 0x6b, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, + 0x0b, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x62, 0x61, 0x6e, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x1a, 0x87, 0x02, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x51, 0x0a, + 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x1a, 0x68, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x11, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0xf5, 0x01, 0x0a, 0x05, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x54, + 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, + 0x6d, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, + 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x34, + 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, + 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, + 0x62, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, @@ -2270,12 +5253,17 @@ var file_guilds_proto_rawDesc = []byte{ 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x49, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x52, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x0a, + 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, + 0x72, 0x6f, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x1c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x10, 0x01, 0x22, 0xc8, 0x02, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, + 0x64, 0x10, 0x01, 0x22, 0xf6, 0x02, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, @@ -2283,201 +5271,688 @@ var file_guilds_proto_rawDesc = []byte{ 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x1a, 0xc1, 0x01, 0x0a, 0x09, 0x43, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, - 0x76, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, - 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x44, - 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x44, 0x22, 0x51, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x22, 0x21, 0x0a, 0x0d, 0x4c, 0x65, 0x61, 0x76, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, 0x0a, 0x4b, 0x69, - 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x92, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, - 0x65, 0x44, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x22, 0x2e, 0x0a, 0x1a, 0x53, - 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, 0x53, - 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x6f, 0x73, + 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xc1, 0x01, 0x0a, 0x09, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x76, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x72, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x44, 0x0a, 0x16, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x44, 0x22, 0x51, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, + 0x65, 0x61, 0x76, 0x65, 0x72, 0x22, 0x21, 0x0a, 0x0d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, 0x0a, 0x4b, 0x69, 0x63, 0x6b, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x22, 0x92, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, - 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x91, 0x01, - 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, + 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x22, 0x2e, 0x0a, 0x1a, 0x53, 0x65, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, 0x53, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, - 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xca, 0x01, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x6b, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, - 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, 0x44, 0x61, 0x79, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, - 0x44, 0x61, 0x79, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x79, 0x0a, 0x0d, 0x41, - 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, - 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x61, - 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x64, 0x0a, 0x14, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x22, 0x2a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, - 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x83, 0x01, - 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, + 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x91, 0x01, 0x0a, 0x0d, + 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, + 0x23, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x22, 0xfd, 0x02, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, 0x44, 0x61, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, 0x44, 0x61, + 0x79, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, + 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x42, + 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x0d, 0x62, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x1a, 0x68, 0x0a, 0x0c, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, + 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x79, 0x0a, 0x0d, + 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x64, 0x0a, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x22, 0x2a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x83, + 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x47, 0x55, 0x49, 0x44, 0x22, 0x29, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xec, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x2c, + 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x5e, 0x0a, 0x16, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd5, 0x01, 0x0a, + 0x0d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x22, 0x68, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0x5b, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x2d, 0x0a, 0x08, + 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x18, + 0x4f, 0x66, 0x66, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0xf0, 0x01, 0x0a, 0x1a, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, + 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0a, 0x0a, + 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x06, 0x22, 0xf9, 0x01, 0x0a, 0x17, 0x53, 0x69, + 0x67, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, - 0x55, 0x49, 0x44, 0x22, 0x29, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc6, - 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0xfd, 0x01, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x6c, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x02, 0x12, 0x0f, 0x0a, + 0x0b, 0x43, 0x61, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x77, 0x6e, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x04, 0x12, 0x0c, 0x0a, + 0x08, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x46, + 0x75, 0x6c, 0x6c, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, + 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x10, 0x08, 0x22, 0x64, 0x0a, 0x16, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, + 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x95, 0x03, 0x0a, 0x0d, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x74, 0x65, 0x6d, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x69, 0x74, 0x65, 0x6d, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x65, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x65, + 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x44, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, + 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, + 0x68, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, + 0xd0, 0x01, 0x0a, 0x0f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, + 0x67, 0x68, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x61, 0x62, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4e, + 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x10, 0x07, 0x12, + 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x11, 0x0a, + 0x0d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x09, + 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, + 0x10, 0x0a, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, 0x63, - 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x32, 0x8f, 0x08, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, - 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, - 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x4b, 0x69, - 0x63, 0x6b, 0x12, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x1a, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, - 0x61, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x13, 0x53, 0x65, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4e, 0x6f, 0x74, - 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x14, 0x53, 0x65, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, - 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, - 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x43, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x53, 0x65, 0x6e, - 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x67, 0x65, 0x6e, 0x2f, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xab, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, + 0x12, 0x32, 0x0a, 0x14, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x61, 0x62, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x52, 0x04, 0x74, 0x61, 0x62, 0x73, 0x12, 0x27, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, + 0x6e, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x61, 0x62, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x61, 0x62, 0x22, 0xa6, 0x01, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, + 0x22, 0x8d, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, + 0x22, 0xbe, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, + 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, + 0x93, 0x01, 0x0a, 0x15, 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x74, 0x61, 0x62, 0x49, 0x44, 0x22, 0x79, 0x0a, 0x17, 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x62, 0x43, 0x6f, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x43, 0x6f, 0x73, 0x74, + 0x22, 0x9b, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb4, + 0x01, 0x0a, 0x1c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, + 0x65, 0x70, 0x61, 0x69, 0x72, 0x22, 0xd6, 0x01, 0x0a, 0x24, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, + 0x70, 0x61, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x22, 0xd7, + 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x6f, + 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, + 0x44, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x22, 0xc7, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, + 0x61, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xfa, 0x01, 0x0a, 0x23, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x12, 0x25, + 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x22, + 0xb5, 0x02, 0x0a, 0x17, 0x4d, 0x6f, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, + 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x6c, 0x6f, + 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, + 0x62, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x17, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, + 0x49, 0x44, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x74, + 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, + 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x6c, 0x6f, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x32, + 0xe8, 0x12, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x36, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, + 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, + 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x46, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, + 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, + 0x12, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x4b, 0x69, 0x63, 0x6b, 0x12, 0x0e, 0x2e, 0x76, + 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x10, 0x2e, 0x76, + 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, + 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, + 0x65, 0x44, 0x61, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, + 0x6b, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x31, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x52, 0x0a, 0x12, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x55, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x12, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x13, 0x53, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, + 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, + 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0f, + 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x12, + 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x15, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, + 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, + 0x0a, 0x16, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, + 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x1e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x15, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1d, 0x52, 0x6f, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x4d, 0x6f, 0x76, 0x65, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x6f, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x67, 0x65, + 0x6e, 0x2f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -2492,85 +5967,174 @@ func file_guilds_proto_rawDescGZIP() []byte { return file_guilds_proto_rawDescData } -var file_guilds_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_guilds_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_guilds_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_guilds_proto_msgTypes = make([]protoimpl.MessageInfo, 66) var file_guilds_proto_goTypes = []interface{}{ - (InviteMemberResponse_Status)(0), // 0: v1.InviteMemberResponse.Status - (*GetInfoParams)(nil), // 1: v1.GetInfoParams - (*GetInfoResponse)(nil), // 2: v1.GetInfoResponse - (*GetRosterInfoParams)(nil), // 3: v1.GetRosterInfoParams - (*GetRosterInfoResponse)(nil), // 4: v1.GetRosterInfoResponse - (*InviteMemberParams)(nil), // 5: v1.InviteMemberParams - (*InviteMemberResponse)(nil), // 6: v1.InviteMemberResponse - (*InviteAcceptedParams)(nil), // 7: v1.InviteAcceptedParams - (*InviteAcceptedResponse)(nil), // 8: v1.InviteAcceptedResponse - (*LeaveParams)(nil), // 9: v1.LeaveParams - (*LeaveResponse)(nil), // 10: v1.LeaveResponse - (*KickParams)(nil), // 11: v1.KickParams - (*KickResponse)(nil), // 12: v1.KickResponse - (*SetMessageOfTheDayParams)(nil), // 13: v1.SetMessageOfTheDayParams - (*SetMessageOfTheDayResponse)(nil), // 14: v1.SetMessageOfTheDayResponse - (*SetGuildInfoParams)(nil), // 15: v1.SetGuildInfoParams - (*SetGuildInfoResponse)(nil), // 16: v1.SetGuildInfoResponse - (*SetNoteParams)(nil), // 17: v1.SetNoteParams - (*SetNoteResponse)(nil), // 18: v1.SetNoteResponse - (*RankUpdateParams)(nil), // 19: v1.RankUpdateParams - (*RankUpdateResponse)(nil), // 20: v1.RankUpdateResponse - (*AddRankParams)(nil), // 21: v1.AddRankParams - (*AddRankResponse)(nil), // 22: v1.AddRankResponse - (*DeleteLastRankParams)(nil), // 23: v1.DeleteLastRankParams - (*DeleteLastRankResponse)(nil), // 24: v1.DeleteLastRankResponse - (*PromoteDemoteParams)(nil), // 25: v1.PromoteDemoteParams - (*PromoteDemoteResponse)(nil), // 26: v1.PromoteDemoteResponse - (*SendGuildMessageParams)(nil), // 27: v1.SendGuildMessageParams - (*SendGuildMessageResponse)(nil), // 28: v1.SendGuildMessageResponse - (*GetRosterInfoResponse_Member)(nil), // 29: v1.GetRosterInfoResponse.Member - (*GetRosterInfoResponse_Rank)(nil), // 30: v1.GetRosterInfoResponse.Rank - (*GetRosterInfoResponse_Guild)(nil), // 31: v1.GetRosterInfoResponse.Guild - (*InviteAcceptedParams_Character)(nil), // 32: v1.InviteAcceptedParams.Character + (InviteMemberResponse_Status)(0), // 0: v1.InviteMemberResponse.Status + (OfferGuildPetitionResponse_Status)(0), // 1: v1.OfferGuildPetitionResponse.Status + (SignGuildPetitionResponse_Status)(0), // 2: v1.SignGuildPetitionResponse.Status + (GuildBankStatus_Status)(0), // 3: v1.GuildBankStatus.Status + (*GetInfoParams)(nil), // 4: v1.GetInfoParams + (*GetInfoResponse)(nil), // 5: v1.GetInfoResponse + (*GetRosterInfoParams)(nil), // 6: v1.GetRosterInfoParams + (*GetRosterInfoResponse)(nil), // 7: v1.GetRosterInfoResponse + (*InviteMemberParams)(nil), // 8: v1.InviteMemberParams + (*InviteMemberResponse)(nil), // 9: v1.InviteMemberResponse + (*InviteAcceptedParams)(nil), // 10: v1.InviteAcceptedParams + (*InviteAcceptedResponse)(nil), // 11: v1.InviteAcceptedResponse + (*LeaveParams)(nil), // 12: v1.LeaveParams + (*LeaveResponse)(nil), // 13: v1.LeaveResponse + (*KickParams)(nil), // 14: v1.KickParams + (*KickResponse)(nil), // 15: v1.KickResponse + (*SetMessageOfTheDayParams)(nil), // 16: v1.SetMessageOfTheDayParams + (*SetMessageOfTheDayResponse)(nil), // 17: v1.SetMessageOfTheDayResponse + (*SetGuildInfoParams)(nil), // 18: v1.SetGuildInfoParams + (*SetGuildInfoResponse)(nil), // 19: v1.SetGuildInfoResponse + (*SetNoteParams)(nil), // 20: v1.SetNoteParams + (*SetNoteResponse)(nil), // 21: v1.SetNoteResponse + (*RankUpdateParams)(nil), // 22: v1.RankUpdateParams + (*RankUpdateResponse)(nil), // 23: v1.RankUpdateResponse + (*AddRankParams)(nil), // 24: v1.AddRankParams + (*AddRankResponse)(nil), // 25: v1.AddRankResponse + (*DeleteLastRankParams)(nil), // 26: v1.DeleteLastRankParams + (*DeleteLastRankResponse)(nil), // 27: v1.DeleteLastRankResponse + (*PromoteDemoteParams)(nil), // 28: v1.PromoteDemoteParams + (*PromoteDemoteResponse)(nil), // 29: v1.PromoteDemoteResponse + (*SendGuildMessageParams)(nil), // 30: v1.SendGuildMessageParams + (*SendGuildMessageResponse)(nil), // 31: v1.SendGuildMessageResponse + (*GuildPetitionSignature)(nil), // 32: v1.GuildPetitionSignature + (*GuildPetition)(nil), // 33: v1.GuildPetition + (*GetGuildPetitionParams)(nil), // 34: v1.GetGuildPetitionParams + (*GetGuildPetitionResponse)(nil), // 35: v1.GetGuildPetitionResponse + (*OfferGuildPetitionParams)(nil), // 36: v1.OfferGuildPetitionParams + (*OfferGuildPetitionResponse)(nil), // 37: v1.OfferGuildPetitionResponse + (*SignGuildPetitionParams)(nil), // 38: v1.SignGuildPetitionParams + (*SignGuildPetitionResponse)(nil), // 39: v1.SignGuildPetitionResponse + (*GuildBankSocketEnchant)(nil), // 40: v1.GuildBankSocketEnchant + (*GuildBankItem)(nil), // 41: v1.GuildBankItem + (*GuildBankTab)(nil), // 42: v1.GuildBankTab + (*GuildBankStatus)(nil), // 43: v1.GuildBankStatus + (*GetGuildBankParams)(nil), // 44: v1.GetGuildBankParams + (*GetGuildBankResponse)(nil), // 45: v1.GetGuildBankResponse + (*GetGuildBankLogParams)(nil), // 46: v1.GetGuildBankLogParams + (*GuildBankLogEntry)(nil), // 47: v1.GuildBankLogEntry + (*GetGuildBankLogResponse)(nil), // 48: v1.GetGuildBankLogResponse + (*GetGuildBankTabTextParams)(nil), // 49: v1.GetGuildBankTabTextParams + (*GetGuildBankTabTextResponse)(nil), // 50: v1.GetGuildBankTabTextResponse + (*UpdateGuildBankTabParams)(nil), // 51: v1.UpdateGuildBankTabParams + (*SetGuildBankTabTextParams)(nil), // 52: v1.SetGuildBankTabTextParams + (*BuyGuildBankTabParams)(nil), // 53: v1.BuyGuildBankTabParams + (*BuyGuildBankTabResponse)(nil), // 54: v1.BuyGuildBankTabResponse + (*DepositGuildBankMoneyParams)(nil), // 55: v1.DepositGuildBankMoneyParams + (*WithdrawGuildBankMoneyParams)(nil), // 56: v1.WithdrawGuildBankMoneyParams + (*RollbackGuildBankMoneyWithdrawParams)(nil), // 57: v1.RollbackGuildBankMoneyWithdrawParams + (*DepositGuildBankItemParams)(nil), // 58: v1.DepositGuildBankItemParams + (*WithdrawGuildBankItemParams)(nil), // 59: v1.WithdrawGuildBankItemParams + (*RollbackGuildBankItemWithdrawParams)(nil), // 60: v1.RollbackGuildBankItemWithdrawParams + (*MoveGuildBankItemParams)(nil), // 61: v1.MoveGuildBankItemParams + (*GuildBankActionResponse)(nil), // 62: v1.GuildBankActionResponse + (*GuildBankItemMutationResponse)(nil), // 63: v1.GuildBankItemMutationResponse + (*GetRosterInfoResponse_Member)(nil), // 64: v1.GetRosterInfoResponse.Member + (*GetRosterInfoResponse_Rank)(nil), // 65: v1.GetRosterInfoResponse.Rank + (*GetRosterInfoResponse_Guild)(nil), // 66: v1.GetRosterInfoResponse.Guild + (*GetRosterInfoResponse_Rank_BankTabRight)(nil), // 67: v1.GetRosterInfoResponse.Rank.BankTabRight + (*InviteAcceptedParams_Character)(nil), // 68: v1.InviteAcceptedParams.Character + (*RankUpdateParams_BankTabRight)(nil), // 69: v1.RankUpdateParams.BankTabRight } var file_guilds_proto_depIdxs = []int32{ - 31, // 0: v1.GetRosterInfoResponse.guild:type_name -> v1.GetRosterInfoResponse.Guild - 32, // 1: v1.InviteAcceptedParams.character:type_name -> v1.InviteAcceptedParams.Character - 29, // 2: v1.GetRosterInfoResponse.Guild.members:type_name -> v1.GetRosterInfoResponse.Member - 30, // 3: v1.GetRosterInfoResponse.Guild.ranks:type_name -> v1.GetRosterInfoResponse.Rank - 1, // 4: v1.GuildService.GetGuildInfo:input_type -> v1.GetInfoParams - 3, // 5: v1.GuildService.GetRosterInfo:input_type -> v1.GetRosterInfoParams - 5, // 6: v1.GuildService.InviteMember:input_type -> v1.InviteMemberParams - 7, // 7: v1.GuildService.InviteAccepted:input_type -> v1.InviteAcceptedParams - 9, // 8: v1.GuildService.Leave:input_type -> v1.LeaveParams - 11, // 9: v1.GuildService.Kick:input_type -> v1.KickParams - 13, // 10: v1.GuildService.SetMessageOfTheDay:input_type -> v1.SetMessageOfTheDayParams - 15, // 11: v1.GuildService.SetGuildInfo:input_type -> v1.SetGuildInfoParams - 17, // 12: v1.GuildService.SetMemberPublicNote:input_type -> v1.SetNoteParams - 17, // 13: v1.GuildService.SetMemberOfficerNote:input_type -> v1.SetNoteParams - 19, // 14: v1.GuildService.UpdateRank:input_type -> v1.RankUpdateParams - 21, // 15: v1.GuildService.AddRank:input_type -> v1.AddRankParams - 23, // 16: v1.GuildService.DeleteLastRank:input_type -> v1.DeleteLastRankParams - 25, // 17: v1.GuildService.PromoteMember:input_type -> v1.PromoteDemoteParams - 25, // 18: v1.GuildService.DemoteMember:input_type -> v1.PromoteDemoteParams - 27, // 19: v1.GuildService.SendGuildMessage:input_type -> v1.SendGuildMessageParams - 2, // 20: v1.GuildService.GetGuildInfo:output_type -> v1.GetInfoResponse - 4, // 21: v1.GuildService.GetRosterInfo:output_type -> v1.GetRosterInfoResponse - 6, // 22: v1.GuildService.InviteMember:output_type -> v1.InviteMemberResponse - 8, // 23: v1.GuildService.InviteAccepted:output_type -> v1.InviteAcceptedResponse - 10, // 24: v1.GuildService.Leave:output_type -> v1.LeaveResponse - 12, // 25: v1.GuildService.Kick:output_type -> v1.KickResponse - 14, // 26: v1.GuildService.SetMessageOfTheDay:output_type -> v1.SetMessageOfTheDayResponse - 16, // 27: v1.GuildService.SetGuildInfo:output_type -> v1.SetGuildInfoResponse - 18, // 28: v1.GuildService.SetMemberPublicNote:output_type -> v1.SetNoteResponse - 18, // 29: v1.GuildService.SetMemberOfficerNote:output_type -> v1.SetNoteResponse - 20, // 30: v1.GuildService.UpdateRank:output_type -> v1.RankUpdateResponse - 22, // 31: v1.GuildService.AddRank:output_type -> v1.AddRankResponse - 24, // 32: v1.GuildService.DeleteLastRank:output_type -> v1.DeleteLastRankResponse - 26, // 33: v1.GuildService.PromoteMember:output_type -> v1.PromoteDemoteResponse - 26, // 34: v1.GuildService.DemoteMember:output_type -> v1.PromoteDemoteResponse - 28, // 35: v1.GuildService.SendGuildMessage:output_type -> v1.SendGuildMessageResponse - 20, // [20:36] is the sub-list for method output_type - 4, // [4:20] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 66, // 0: v1.GetRosterInfoResponse.guild:type_name -> v1.GetRosterInfoResponse.Guild + 68, // 1: v1.InviteAcceptedParams.character:type_name -> v1.InviteAcceptedParams.Character + 69, // 2: v1.RankUpdateParams.bankTabRights:type_name -> v1.RankUpdateParams.BankTabRight + 32, // 3: v1.GuildPetition.signatures:type_name -> v1.GuildPetitionSignature + 33, // 4: v1.GetGuildPetitionResponse.petition:type_name -> v1.GuildPetition + 1, // 5: v1.OfferGuildPetitionResponse.status:type_name -> v1.OfferGuildPetitionResponse.Status + 2, // 6: v1.SignGuildPetitionResponse.status:type_name -> v1.SignGuildPetitionResponse.Status + 40, // 7: v1.GuildBankItem.socketEnchants:type_name -> v1.GuildBankSocketEnchant + 41, // 8: v1.GuildBankTab.items:type_name -> v1.GuildBankItem + 3, // 9: v1.GetGuildBankResponse.status:type_name -> v1.GuildBankStatus.Status + 42, // 10: v1.GetGuildBankResponse.tabs:type_name -> v1.GuildBankTab + 41, // 11: v1.GetGuildBankResponse.items:type_name -> v1.GuildBankItem + 3, // 12: v1.GetGuildBankLogResponse.status:type_name -> v1.GuildBankStatus.Status + 47, // 13: v1.GetGuildBankLogResponse.entries:type_name -> v1.GuildBankLogEntry + 3, // 14: v1.GetGuildBankTabTextResponse.status:type_name -> v1.GuildBankStatus.Status + 3, // 15: v1.BuyGuildBankTabResponse.status:type_name -> v1.GuildBankStatus.Status + 41, // 16: v1.DepositGuildBankItemParams.item:type_name -> v1.GuildBankItem + 41, // 17: v1.RollbackGuildBankItemWithdrawParams.item:type_name -> v1.GuildBankItem + 3, // 18: v1.GuildBankActionResponse.status:type_name -> v1.GuildBankStatus.Status + 3, // 19: v1.GuildBankItemMutationResponse.status:type_name -> v1.GuildBankStatus.Status + 41, // 20: v1.GuildBankItemMutationResponse.item:type_name -> v1.GuildBankItem + 67, // 21: v1.GetRosterInfoResponse.Rank.bankTabRights:type_name -> v1.GetRosterInfoResponse.Rank.BankTabRight + 64, // 22: v1.GetRosterInfoResponse.Guild.members:type_name -> v1.GetRosterInfoResponse.Member + 65, // 23: v1.GetRosterInfoResponse.Guild.ranks:type_name -> v1.GetRosterInfoResponse.Rank + 4, // 24: v1.GuildService.GetGuildInfo:input_type -> v1.GetInfoParams + 6, // 25: v1.GuildService.GetRosterInfo:input_type -> v1.GetRosterInfoParams + 8, // 26: v1.GuildService.InviteMember:input_type -> v1.InviteMemberParams + 10, // 27: v1.GuildService.InviteAccepted:input_type -> v1.InviteAcceptedParams + 12, // 28: v1.GuildService.Leave:input_type -> v1.LeaveParams + 14, // 29: v1.GuildService.Kick:input_type -> v1.KickParams + 16, // 30: v1.GuildService.SetMessageOfTheDay:input_type -> v1.SetMessageOfTheDayParams + 18, // 31: v1.GuildService.SetGuildInfo:input_type -> v1.SetGuildInfoParams + 20, // 32: v1.GuildService.SetMemberPublicNote:input_type -> v1.SetNoteParams + 20, // 33: v1.GuildService.SetMemberOfficerNote:input_type -> v1.SetNoteParams + 22, // 34: v1.GuildService.UpdateRank:input_type -> v1.RankUpdateParams + 24, // 35: v1.GuildService.AddRank:input_type -> v1.AddRankParams + 26, // 36: v1.GuildService.DeleteLastRank:input_type -> v1.DeleteLastRankParams + 28, // 37: v1.GuildService.PromoteMember:input_type -> v1.PromoteDemoteParams + 28, // 38: v1.GuildService.DemoteMember:input_type -> v1.PromoteDemoteParams + 30, // 39: v1.GuildService.SendGuildMessage:input_type -> v1.SendGuildMessageParams + 34, // 40: v1.GuildService.GetGuildPetition:input_type -> v1.GetGuildPetitionParams + 36, // 41: v1.GuildService.OfferGuildPetition:input_type -> v1.OfferGuildPetitionParams + 38, // 42: v1.GuildService.SignGuildPetition:input_type -> v1.SignGuildPetitionParams + 44, // 43: v1.GuildService.GetGuildBank:input_type -> v1.GetGuildBankParams + 46, // 44: v1.GuildService.GetGuildBankLog:input_type -> v1.GetGuildBankLogParams + 49, // 45: v1.GuildService.GetGuildBankTabText:input_type -> v1.GetGuildBankTabTextParams + 51, // 46: v1.GuildService.UpdateGuildBankTab:input_type -> v1.UpdateGuildBankTabParams + 52, // 47: v1.GuildService.SetGuildBankTabText:input_type -> v1.SetGuildBankTabTextParams + 53, // 48: v1.GuildService.BuyGuildBankTab:input_type -> v1.BuyGuildBankTabParams + 55, // 49: v1.GuildService.DepositGuildBankMoney:input_type -> v1.DepositGuildBankMoneyParams + 56, // 50: v1.GuildService.WithdrawGuildBankMoney:input_type -> v1.WithdrawGuildBankMoneyParams + 57, // 51: v1.GuildService.RollbackGuildBankMoneyWithdraw:input_type -> v1.RollbackGuildBankMoneyWithdrawParams + 58, // 52: v1.GuildService.DepositGuildBankItem:input_type -> v1.DepositGuildBankItemParams + 59, // 53: v1.GuildService.WithdrawGuildBankItem:input_type -> v1.WithdrawGuildBankItemParams + 60, // 54: v1.GuildService.RollbackGuildBankItemWithdraw:input_type -> v1.RollbackGuildBankItemWithdrawParams + 61, // 55: v1.GuildService.MoveGuildBankItem:input_type -> v1.MoveGuildBankItemParams + 5, // 56: v1.GuildService.GetGuildInfo:output_type -> v1.GetInfoResponse + 7, // 57: v1.GuildService.GetRosterInfo:output_type -> v1.GetRosterInfoResponse + 9, // 58: v1.GuildService.InviteMember:output_type -> v1.InviteMemberResponse + 11, // 59: v1.GuildService.InviteAccepted:output_type -> v1.InviteAcceptedResponse + 13, // 60: v1.GuildService.Leave:output_type -> v1.LeaveResponse + 15, // 61: v1.GuildService.Kick:output_type -> v1.KickResponse + 17, // 62: v1.GuildService.SetMessageOfTheDay:output_type -> v1.SetMessageOfTheDayResponse + 19, // 63: v1.GuildService.SetGuildInfo:output_type -> v1.SetGuildInfoResponse + 21, // 64: v1.GuildService.SetMemberPublicNote:output_type -> v1.SetNoteResponse + 21, // 65: v1.GuildService.SetMemberOfficerNote:output_type -> v1.SetNoteResponse + 23, // 66: v1.GuildService.UpdateRank:output_type -> v1.RankUpdateResponse + 25, // 67: v1.GuildService.AddRank:output_type -> v1.AddRankResponse + 27, // 68: v1.GuildService.DeleteLastRank:output_type -> v1.DeleteLastRankResponse + 29, // 69: v1.GuildService.PromoteMember:output_type -> v1.PromoteDemoteResponse + 29, // 70: v1.GuildService.DemoteMember:output_type -> v1.PromoteDemoteResponse + 31, // 71: v1.GuildService.SendGuildMessage:output_type -> v1.SendGuildMessageResponse + 35, // 72: v1.GuildService.GetGuildPetition:output_type -> v1.GetGuildPetitionResponse + 37, // 73: v1.GuildService.OfferGuildPetition:output_type -> v1.OfferGuildPetitionResponse + 39, // 74: v1.GuildService.SignGuildPetition:output_type -> v1.SignGuildPetitionResponse + 45, // 75: v1.GuildService.GetGuildBank:output_type -> v1.GetGuildBankResponse + 48, // 76: v1.GuildService.GetGuildBankLog:output_type -> v1.GetGuildBankLogResponse + 50, // 77: v1.GuildService.GetGuildBankTabText:output_type -> v1.GetGuildBankTabTextResponse + 62, // 78: v1.GuildService.UpdateGuildBankTab:output_type -> v1.GuildBankActionResponse + 62, // 79: v1.GuildService.SetGuildBankTabText:output_type -> v1.GuildBankActionResponse + 54, // 80: v1.GuildService.BuyGuildBankTab:output_type -> v1.BuyGuildBankTabResponse + 62, // 81: v1.GuildService.DepositGuildBankMoney:output_type -> v1.GuildBankActionResponse + 62, // 82: v1.GuildService.WithdrawGuildBankMoney:output_type -> v1.GuildBankActionResponse + 62, // 83: v1.GuildService.RollbackGuildBankMoneyWithdraw:output_type -> v1.GuildBankActionResponse + 63, // 84: v1.GuildService.DepositGuildBankItem:output_type -> v1.GuildBankItemMutationResponse + 63, // 85: v1.GuildService.WithdrawGuildBankItem:output_type -> v1.GuildBankItemMutationResponse + 63, // 86: v1.GuildService.RollbackGuildBankItemWithdraw:output_type -> v1.GuildBankItemMutationResponse + 63, // 87: v1.GuildService.MoveGuildBankItem:output_type -> v1.GuildBankItemMutationResponse + 56, // [56:88] is the sub-list for method output_type + 24, // [24:56] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_guilds_proto_init() } @@ -2591,8 +6155,212 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetInfoResponse); i { + file_guilds_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRosterInfoParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRosterInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteMemberParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteMemberResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteAcceptedParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteAcceptedResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMessageOfTheDayParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMessageOfTheDayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGuildInfoParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGuildInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetNoteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetNoteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankUpdateParams); i { case 0: return &v.state case 1: @@ -2603,8 +6371,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRosterInfoParams); i { + file_guilds_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankUpdateResponse); i { case 0: return &v.state case 1: @@ -2615,8 +6383,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRosterInfoResponse); i { + file_guilds_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRankParams); i { case 0: return &v.state case 1: @@ -2627,8 +6395,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteMemberParams); i { + file_guilds_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRankResponse); i { case 0: return &v.state case 1: @@ -2639,8 +6407,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteMemberResponse); i { + file_guilds_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteLastRankParams); i { case 0: return &v.state case 1: @@ -2651,8 +6419,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteAcceptedParams); i { + file_guilds_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteLastRankResponse); i { case 0: return &v.state case 1: @@ -2663,8 +6431,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteAcceptedResponse); i { + file_guilds_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PromoteDemoteParams); i { case 0: return &v.state case 1: @@ -2675,8 +6443,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveParams); i { + file_guilds_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PromoteDemoteResponse); i { case 0: return &v.state case 1: @@ -2687,8 +6455,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveResponse); i { + file_guilds_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGuildMessageParams); i { case 0: return &v.state case 1: @@ -2699,8 +6467,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickParams); i { + file_guilds_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGuildMessageResponse); i { case 0: return &v.state case 1: @@ -2711,8 +6479,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickResponse); i { + file_guilds_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildPetitionSignature); i { case 0: return &v.state case 1: @@ -2723,8 +6491,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMessageOfTheDayParams); i { + file_guilds_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildPetition); i { case 0: return &v.state case 1: @@ -2735,8 +6503,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMessageOfTheDayResponse); i { + file_guilds_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildPetitionParams); i { case 0: return &v.state case 1: @@ -2747,8 +6515,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGuildInfoParams); i { + file_guilds_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildPetitionResponse); i { case 0: return &v.state case 1: @@ -2759,8 +6527,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGuildInfoResponse); i { + file_guilds_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfferGuildPetitionParams); i { case 0: return &v.state case 1: @@ -2771,8 +6539,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetNoteParams); i { + file_guilds_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfferGuildPetitionResponse); i { case 0: return &v.state case 1: @@ -2783,8 +6551,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetNoteResponse); i { + file_guilds_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignGuildPetitionParams); i { case 0: return &v.state case 1: @@ -2795,8 +6563,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankUpdateParams); i { + file_guilds_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignGuildPetitionResponse); i { case 0: return &v.state case 1: @@ -2807,8 +6575,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankUpdateResponse); i { + file_guilds_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankSocketEnchant); i { case 0: return &v.state case 1: @@ -2819,8 +6587,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRankParams); i { + file_guilds_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankItem); i { case 0: return &v.state case 1: @@ -2831,8 +6599,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRankResponse); i { + file_guilds_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankTab); i { case 0: return &v.state case 1: @@ -2843,8 +6611,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteLastRankParams); i { + file_guilds_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankStatus); i { case 0: return &v.state case 1: @@ -2855,8 +6623,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteLastRankResponse); i { + file_guilds_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankParams); i { case 0: return &v.state case 1: @@ -2867,8 +6635,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PromoteDemoteParams); i { + file_guilds_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankResponse); i { case 0: return &v.state case 1: @@ -2879,8 +6647,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PromoteDemoteResponse); i { + file_guilds_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankLogParams); i { case 0: return &v.state case 1: @@ -2891,8 +6659,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGuildMessageParams); i { + file_guilds_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankLogEntry); i { case 0: return &v.state case 1: @@ -2903,8 +6671,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGuildMessageResponse); i { + file_guilds_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankLogResponse); i { case 0: return &v.state case 1: @@ -2915,7 +6683,187 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankTabTextParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankTabTextResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateGuildBankTabParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGuildBankTabTextParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuyGuildBankTabParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuyGuildBankTabResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DepositGuildBankMoneyParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawGuildBankMoneyParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RollbackGuildBankMoneyWithdrawParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DepositGuildBankItemParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawGuildBankItemParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RollbackGuildBankItemWithdrawParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MoveGuildBankItemParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankItemMutationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRosterInfoResponse_Member); i { case 0: return &v.state @@ -2927,7 +6875,7 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRosterInfoResponse_Rank); i { case 0: return &v.state @@ -2939,7 +6887,7 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRosterInfoResponse_Guild); i { case 0: return &v.state @@ -2951,7 +6899,19 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRosterInfoResponse_Rank_BankTabRight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InviteAcceptedParams_Character); i { case 0: return &v.state @@ -2963,14 +6923,26 @@ func file_guilds_proto_init() { return nil } } + file_guilds_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankUpdateParams_BankTabRight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_guilds_proto_rawDesc, - NumEnums: 1, - NumMessages: 32, + NumEnums: 4, + NumMessages: 66, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/guilds/pb/guilds_grpc.pb.go b/gen/guilds/pb/guilds_grpc.pb.go index 98ef71c..066506c 100644 --- a/gen/guilds/pb/guilds_grpc.pb.go +++ b/gen/guilds/pb/guilds_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: guilds.proto package pb @@ -19,22 +19,38 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - GuildService_GetGuildInfo_FullMethodName = "/v1.GuildService/GetGuildInfo" - GuildService_GetRosterInfo_FullMethodName = "/v1.GuildService/GetRosterInfo" - GuildService_InviteMember_FullMethodName = "/v1.GuildService/InviteMember" - GuildService_InviteAccepted_FullMethodName = "/v1.GuildService/InviteAccepted" - GuildService_Leave_FullMethodName = "/v1.GuildService/Leave" - GuildService_Kick_FullMethodName = "/v1.GuildService/Kick" - GuildService_SetMessageOfTheDay_FullMethodName = "/v1.GuildService/SetMessageOfTheDay" - GuildService_SetGuildInfo_FullMethodName = "/v1.GuildService/SetGuildInfo" - GuildService_SetMemberPublicNote_FullMethodName = "/v1.GuildService/SetMemberPublicNote" - GuildService_SetMemberOfficerNote_FullMethodName = "/v1.GuildService/SetMemberOfficerNote" - GuildService_UpdateRank_FullMethodName = "/v1.GuildService/UpdateRank" - GuildService_AddRank_FullMethodName = "/v1.GuildService/AddRank" - GuildService_DeleteLastRank_FullMethodName = "/v1.GuildService/DeleteLastRank" - GuildService_PromoteMember_FullMethodName = "/v1.GuildService/PromoteMember" - GuildService_DemoteMember_FullMethodName = "/v1.GuildService/DemoteMember" - GuildService_SendGuildMessage_FullMethodName = "/v1.GuildService/SendGuildMessage" + GuildService_GetGuildInfo_FullMethodName = "/v1.GuildService/GetGuildInfo" + GuildService_GetRosterInfo_FullMethodName = "/v1.GuildService/GetRosterInfo" + GuildService_InviteMember_FullMethodName = "/v1.GuildService/InviteMember" + GuildService_InviteAccepted_FullMethodName = "/v1.GuildService/InviteAccepted" + GuildService_Leave_FullMethodName = "/v1.GuildService/Leave" + GuildService_Kick_FullMethodName = "/v1.GuildService/Kick" + GuildService_SetMessageOfTheDay_FullMethodName = "/v1.GuildService/SetMessageOfTheDay" + GuildService_SetGuildInfo_FullMethodName = "/v1.GuildService/SetGuildInfo" + GuildService_SetMemberPublicNote_FullMethodName = "/v1.GuildService/SetMemberPublicNote" + GuildService_SetMemberOfficerNote_FullMethodName = "/v1.GuildService/SetMemberOfficerNote" + GuildService_UpdateRank_FullMethodName = "/v1.GuildService/UpdateRank" + GuildService_AddRank_FullMethodName = "/v1.GuildService/AddRank" + GuildService_DeleteLastRank_FullMethodName = "/v1.GuildService/DeleteLastRank" + GuildService_PromoteMember_FullMethodName = "/v1.GuildService/PromoteMember" + GuildService_DemoteMember_FullMethodName = "/v1.GuildService/DemoteMember" + GuildService_SendGuildMessage_FullMethodName = "/v1.GuildService/SendGuildMessage" + GuildService_GetGuildPetition_FullMethodName = "/v1.GuildService/GetGuildPetition" + GuildService_OfferGuildPetition_FullMethodName = "/v1.GuildService/OfferGuildPetition" + GuildService_SignGuildPetition_FullMethodName = "/v1.GuildService/SignGuildPetition" + GuildService_GetGuildBank_FullMethodName = "/v1.GuildService/GetGuildBank" + GuildService_GetGuildBankLog_FullMethodName = "/v1.GuildService/GetGuildBankLog" + GuildService_GetGuildBankTabText_FullMethodName = "/v1.GuildService/GetGuildBankTabText" + GuildService_UpdateGuildBankTab_FullMethodName = "/v1.GuildService/UpdateGuildBankTab" + GuildService_SetGuildBankTabText_FullMethodName = "/v1.GuildService/SetGuildBankTabText" + GuildService_BuyGuildBankTab_FullMethodName = "/v1.GuildService/BuyGuildBankTab" + GuildService_DepositGuildBankMoney_FullMethodName = "/v1.GuildService/DepositGuildBankMoney" + GuildService_WithdrawGuildBankMoney_FullMethodName = "/v1.GuildService/WithdrawGuildBankMoney" + GuildService_RollbackGuildBankMoneyWithdraw_FullMethodName = "/v1.GuildService/RollbackGuildBankMoneyWithdraw" + GuildService_DepositGuildBankItem_FullMethodName = "/v1.GuildService/DepositGuildBankItem" + GuildService_WithdrawGuildBankItem_FullMethodName = "/v1.GuildService/WithdrawGuildBankItem" + GuildService_RollbackGuildBankItemWithdraw_FullMethodName = "/v1.GuildService/RollbackGuildBankItemWithdraw" + GuildService_MoveGuildBankItem_FullMethodName = "/v1.GuildService/MoveGuildBankItem" ) // GuildServiceClient is the client API for GuildService service. @@ -57,6 +73,22 @@ type GuildServiceClient interface { PromoteMember(ctx context.Context, in *PromoteDemoteParams, opts ...grpc.CallOption) (*PromoteDemoteResponse, error) DemoteMember(ctx context.Context, in *PromoteDemoteParams, opts ...grpc.CallOption) (*PromoteDemoteResponse, error) SendGuildMessage(ctx context.Context, in *SendGuildMessageParams, opts ...grpc.CallOption) (*SendGuildMessageResponse, error) + GetGuildPetition(ctx context.Context, in *GetGuildPetitionParams, opts ...grpc.CallOption) (*GetGuildPetitionResponse, error) + OfferGuildPetition(ctx context.Context, in *OfferGuildPetitionParams, opts ...grpc.CallOption) (*OfferGuildPetitionResponse, error) + SignGuildPetition(ctx context.Context, in *SignGuildPetitionParams, opts ...grpc.CallOption) (*SignGuildPetitionResponse, error) + GetGuildBank(ctx context.Context, in *GetGuildBankParams, opts ...grpc.CallOption) (*GetGuildBankResponse, error) + GetGuildBankLog(ctx context.Context, in *GetGuildBankLogParams, opts ...grpc.CallOption) (*GetGuildBankLogResponse, error) + GetGuildBankTabText(ctx context.Context, in *GetGuildBankTabTextParams, opts ...grpc.CallOption) (*GetGuildBankTabTextResponse, error) + UpdateGuildBankTab(ctx context.Context, in *UpdateGuildBankTabParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + SetGuildBankTabText(ctx context.Context, in *SetGuildBankTabTextParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + BuyGuildBankTab(ctx context.Context, in *BuyGuildBankTabParams, opts ...grpc.CallOption) (*BuyGuildBankTabResponse, error) + DepositGuildBankMoney(ctx context.Context, in *DepositGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + WithdrawGuildBankMoney(ctx context.Context, in *WithdrawGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + RollbackGuildBankMoneyWithdraw(ctx context.Context, in *RollbackGuildBankMoneyWithdrawParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + DepositGuildBankItem(ctx context.Context, in *DepositGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) + WithdrawGuildBankItem(ctx context.Context, in *WithdrawGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) + RollbackGuildBankItemWithdraw(ctx context.Context, in *RollbackGuildBankItemWithdrawParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) + MoveGuildBankItem(ctx context.Context, in *MoveGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) } type guildServiceClient struct { @@ -211,6 +243,150 @@ func (c *guildServiceClient) SendGuildMessage(ctx context.Context, in *SendGuild return out, nil } +func (c *guildServiceClient) GetGuildPetition(ctx context.Context, in *GetGuildPetitionParams, opts ...grpc.CallOption) (*GetGuildPetitionResponse, error) { + out := new(GetGuildPetitionResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) OfferGuildPetition(ctx context.Context, in *OfferGuildPetitionParams, opts ...grpc.CallOption) (*OfferGuildPetitionResponse, error) { + out := new(OfferGuildPetitionResponse) + err := c.cc.Invoke(ctx, GuildService_OfferGuildPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) SignGuildPetition(ctx context.Context, in *SignGuildPetitionParams, opts ...grpc.CallOption) (*SignGuildPetitionResponse, error) { + out := new(SignGuildPetitionResponse) + err := c.cc.Invoke(ctx, GuildService_SignGuildPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) GetGuildBank(ctx context.Context, in *GetGuildBankParams, opts ...grpc.CallOption) (*GetGuildBankResponse, error) { + out := new(GetGuildBankResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildBank_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) GetGuildBankLog(ctx context.Context, in *GetGuildBankLogParams, opts ...grpc.CallOption) (*GetGuildBankLogResponse, error) { + out := new(GetGuildBankLogResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildBankLog_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) GetGuildBankTabText(ctx context.Context, in *GetGuildBankTabTextParams, opts ...grpc.CallOption) (*GetGuildBankTabTextResponse, error) { + out := new(GetGuildBankTabTextResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildBankTabText_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) UpdateGuildBankTab(ctx context.Context, in *UpdateGuildBankTabParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_UpdateGuildBankTab_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) SetGuildBankTabText(ctx context.Context, in *SetGuildBankTabTextParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_SetGuildBankTabText_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) BuyGuildBankTab(ctx context.Context, in *BuyGuildBankTabParams, opts ...grpc.CallOption) (*BuyGuildBankTabResponse, error) { + out := new(BuyGuildBankTabResponse) + err := c.cc.Invoke(ctx, GuildService_BuyGuildBankTab_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) DepositGuildBankMoney(ctx context.Context, in *DepositGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_DepositGuildBankMoney_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) WithdrawGuildBankMoney(ctx context.Context, in *WithdrawGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_WithdrawGuildBankMoney_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) RollbackGuildBankMoneyWithdraw(ctx context.Context, in *RollbackGuildBankMoneyWithdrawParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_RollbackGuildBankMoneyWithdraw_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) DepositGuildBankItem(ctx context.Context, in *DepositGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_DepositGuildBankItem_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) WithdrawGuildBankItem(ctx context.Context, in *WithdrawGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_WithdrawGuildBankItem_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) RollbackGuildBankItemWithdraw(ctx context.Context, in *RollbackGuildBankItemWithdrawParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_RollbackGuildBankItemWithdraw_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) MoveGuildBankItem(ctx context.Context, in *MoveGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_MoveGuildBankItem_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GuildServiceServer is the server API for GuildService service. // All implementations must embed UnimplementedGuildServiceServer // for forward compatibility @@ -231,6 +407,22 @@ type GuildServiceServer interface { PromoteMember(context.Context, *PromoteDemoteParams) (*PromoteDemoteResponse, error) DemoteMember(context.Context, *PromoteDemoteParams) (*PromoteDemoteResponse, error) SendGuildMessage(context.Context, *SendGuildMessageParams) (*SendGuildMessageResponse, error) + GetGuildPetition(context.Context, *GetGuildPetitionParams) (*GetGuildPetitionResponse, error) + OfferGuildPetition(context.Context, *OfferGuildPetitionParams) (*OfferGuildPetitionResponse, error) + SignGuildPetition(context.Context, *SignGuildPetitionParams) (*SignGuildPetitionResponse, error) + GetGuildBank(context.Context, *GetGuildBankParams) (*GetGuildBankResponse, error) + GetGuildBankLog(context.Context, *GetGuildBankLogParams) (*GetGuildBankLogResponse, error) + GetGuildBankTabText(context.Context, *GetGuildBankTabTextParams) (*GetGuildBankTabTextResponse, error) + UpdateGuildBankTab(context.Context, *UpdateGuildBankTabParams) (*GuildBankActionResponse, error) + SetGuildBankTabText(context.Context, *SetGuildBankTabTextParams) (*GuildBankActionResponse, error) + BuyGuildBankTab(context.Context, *BuyGuildBankTabParams) (*BuyGuildBankTabResponse, error) + DepositGuildBankMoney(context.Context, *DepositGuildBankMoneyParams) (*GuildBankActionResponse, error) + WithdrawGuildBankMoney(context.Context, *WithdrawGuildBankMoneyParams) (*GuildBankActionResponse, error) + RollbackGuildBankMoneyWithdraw(context.Context, *RollbackGuildBankMoneyWithdrawParams) (*GuildBankActionResponse, error) + DepositGuildBankItem(context.Context, *DepositGuildBankItemParams) (*GuildBankItemMutationResponse, error) + WithdrawGuildBankItem(context.Context, *WithdrawGuildBankItemParams) (*GuildBankItemMutationResponse, error) + RollbackGuildBankItemWithdraw(context.Context, *RollbackGuildBankItemWithdrawParams) (*GuildBankItemMutationResponse, error) + MoveGuildBankItem(context.Context, *MoveGuildBankItemParams) (*GuildBankItemMutationResponse, error) mustEmbedUnimplementedGuildServiceServer() } @@ -286,6 +478,54 @@ func (UnimplementedGuildServiceServer) DemoteMember(context.Context, *PromoteDem func (UnimplementedGuildServiceServer) SendGuildMessage(context.Context, *SendGuildMessageParams) (*SendGuildMessageResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendGuildMessage not implemented") } +func (UnimplementedGuildServiceServer) GetGuildPetition(context.Context, *GetGuildPetitionParams) (*GetGuildPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildPetition not implemented") +} +func (UnimplementedGuildServiceServer) OfferGuildPetition(context.Context, *OfferGuildPetitionParams) (*OfferGuildPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OfferGuildPetition not implemented") +} +func (UnimplementedGuildServiceServer) SignGuildPetition(context.Context, *SignGuildPetitionParams) (*SignGuildPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignGuildPetition not implemented") +} +func (UnimplementedGuildServiceServer) GetGuildBank(context.Context, *GetGuildBankParams) (*GetGuildBankResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildBank not implemented") +} +func (UnimplementedGuildServiceServer) GetGuildBankLog(context.Context, *GetGuildBankLogParams) (*GetGuildBankLogResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildBankLog not implemented") +} +func (UnimplementedGuildServiceServer) GetGuildBankTabText(context.Context, *GetGuildBankTabTextParams) (*GetGuildBankTabTextResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildBankTabText not implemented") +} +func (UnimplementedGuildServiceServer) UpdateGuildBankTab(context.Context, *UpdateGuildBankTabParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateGuildBankTab not implemented") +} +func (UnimplementedGuildServiceServer) SetGuildBankTabText(context.Context, *SetGuildBankTabTextParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetGuildBankTabText not implemented") +} +func (UnimplementedGuildServiceServer) BuyGuildBankTab(context.Context, *BuyGuildBankTabParams) (*BuyGuildBankTabResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BuyGuildBankTab not implemented") +} +func (UnimplementedGuildServiceServer) DepositGuildBankMoney(context.Context, *DepositGuildBankMoneyParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DepositGuildBankMoney not implemented") +} +func (UnimplementedGuildServiceServer) WithdrawGuildBankMoney(context.Context, *WithdrawGuildBankMoneyParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WithdrawGuildBankMoney not implemented") +} +func (UnimplementedGuildServiceServer) RollbackGuildBankMoneyWithdraw(context.Context, *RollbackGuildBankMoneyWithdrawParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RollbackGuildBankMoneyWithdraw not implemented") +} +func (UnimplementedGuildServiceServer) DepositGuildBankItem(context.Context, *DepositGuildBankItemParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DepositGuildBankItem not implemented") +} +func (UnimplementedGuildServiceServer) WithdrawGuildBankItem(context.Context, *WithdrawGuildBankItemParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WithdrawGuildBankItem not implemented") +} +func (UnimplementedGuildServiceServer) RollbackGuildBankItemWithdraw(context.Context, *RollbackGuildBankItemWithdrawParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RollbackGuildBankItemWithdraw not implemented") +} +func (UnimplementedGuildServiceServer) MoveGuildBankItem(context.Context, *MoveGuildBankItemParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MoveGuildBankItem not implemented") +} func (UnimplementedGuildServiceServer) mustEmbedUnimplementedGuildServiceServer() {} // UnsafeGuildServiceServer may be embedded to opt out of forward compatibility for this service. @@ -587,6 +827,294 @@ func _GuildService_SendGuildMessage_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _GuildService_GetGuildPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildPetitionParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildPetition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildPetition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildPetition(ctx, req.(*GetGuildPetitionParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_OfferGuildPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OfferGuildPetitionParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).OfferGuildPetition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_OfferGuildPetition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).OfferGuildPetition(ctx, req.(*OfferGuildPetitionParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_SignGuildPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SignGuildPetitionParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).SignGuildPetition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_SignGuildPetition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).SignGuildPetition(ctx, req.(*SignGuildPetitionParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_GetGuildBank_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildBankParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildBank(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildBank_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildBank(ctx, req.(*GetGuildBankParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_GetGuildBankLog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildBankLogParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildBankLog(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildBankLog_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildBankLog(ctx, req.(*GetGuildBankLogParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_GetGuildBankTabText_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildBankTabTextParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildBankTabText(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildBankTabText_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildBankTabText(ctx, req.(*GetGuildBankTabTextParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_UpdateGuildBankTab_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateGuildBankTabParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).UpdateGuildBankTab(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_UpdateGuildBankTab_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).UpdateGuildBankTab(ctx, req.(*UpdateGuildBankTabParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_SetGuildBankTabText_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetGuildBankTabTextParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).SetGuildBankTabText(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_SetGuildBankTabText_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).SetGuildBankTabText(ctx, req.(*SetGuildBankTabTextParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_BuyGuildBankTab_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BuyGuildBankTabParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).BuyGuildBankTab(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_BuyGuildBankTab_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).BuyGuildBankTab(ctx, req.(*BuyGuildBankTabParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_DepositGuildBankMoney_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DepositGuildBankMoneyParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).DepositGuildBankMoney(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_DepositGuildBankMoney_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).DepositGuildBankMoney(ctx, req.(*DepositGuildBankMoneyParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_WithdrawGuildBankMoney_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WithdrawGuildBankMoneyParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).WithdrawGuildBankMoney(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_WithdrawGuildBankMoney_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).WithdrawGuildBankMoney(ctx, req.(*WithdrawGuildBankMoneyParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_RollbackGuildBankMoneyWithdraw_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RollbackGuildBankMoneyWithdrawParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).RollbackGuildBankMoneyWithdraw(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_RollbackGuildBankMoneyWithdraw_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).RollbackGuildBankMoneyWithdraw(ctx, req.(*RollbackGuildBankMoneyWithdrawParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_DepositGuildBankItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DepositGuildBankItemParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).DepositGuildBankItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_DepositGuildBankItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).DepositGuildBankItem(ctx, req.(*DepositGuildBankItemParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_WithdrawGuildBankItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WithdrawGuildBankItemParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).WithdrawGuildBankItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_WithdrawGuildBankItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).WithdrawGuildBankItem(ctx, req.(*WithdrawGuildBankItemParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_RollbackGuildBankItemWithdraw_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RollbackGuildBankItemWithdrawParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).RollbackGuildBankItemWithdraw(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_RollbackGuildBankItemWithdraw_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).RollbackGuildBankItemWithdraw(ctx, req.(*RollbackGuildBankItemWithdrawParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_MoveGuildBankItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MoveGuildBankItemParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).MoveGuildBankItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_MoveGuildBankItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).MoveGuildBankItem(ctx, req.(*MoveGuildBankItemParams)) + } + return interceptor(ctx, in, info, handler) +} + // GuildService_ServiceDesc is the grpc.ServiceDesc for GuildService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -658,6 +1186,70 @@ var GuildService_ServiceDesc = grpc.ServiceDesc{ MethodName: "SendGuildMessage", Handler: _GuildService_SendGuildMessage_Handler, }, + { + MethodName: "GetGuildPetition", + Handler: _GuildService_GetGuildPetition_Handler, + }, + { + MethodName: "OfferGuildPetition", + Handler: _GuildService_OfferGuildPetition_Handler, + }, + { + MethodName: "SignGuildPetition", + Handler: _GuildService_SignGuildPetition_Handler, + }, + { + MethodName: "GetGuildBank", + Handler: _GuildService_GetGuildBank_Handler, + }, + { + MethodName: "GetGuildBankLog", + Handler: _GuildService_GetGuildBankLog_Handler, + }, + { + MethodName: "GetGuildBankTabText", + Handler: _GuildService_GetGuildBankTabText_Handler, + }, + { + MethodName: "UpdateGuildBankTab", + Handler: _GuildService_UpdateGuildBankTab_Handler, + }, + { + MethodName: "SetGuildBankTabText", + Handler: _GuildService_SetGuildBankTabText_Handler, + }, + { + MethodName: "BuyGuildBankTab", + Handler: _GuildService_BuyGuildBankTab_Handler, + }, + { + MethodName: "DepositGuildBankMoney", + Handler: _GuildService_DepositGuildBankMoney_Handler, + }, + { + MethodName: "WithdrawGuildBankMoney", + Handler: _GuildService_WithdrawGuildBankMoney_Handler, + }, + { + MethodName: "RollbackGuildBankMoneyWithdraw", + Handler: _GuildService_RollbackGuildBankMoneyWithdraw_Handler, + }, + { + MethodName: "DepositGuildBankItem", + Handler: _GuildService_DepositGuildBankItem_Handler, + }, + { + MethodName: "WithdrawGuildBankItem", + Handler: _GuildService_WithdrawGuildBankItem_Handler, + }, + { + MethodName: "RollbackGuildBankItemWithdraw", + Handler: _GuildService_RollbackGuildBankItemWithdraw_Handler, + }, + { + MethodName: "MoveGuildBankItem", + Handler: _GuildService_MoveGuildBankItem_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "guilds.proto", diff --git a/gen/mail/pb/mail.pb.go b/gen/mail/pb/mail.pb.go index 708bbb2..e67ac3c 100644 --- a/gen/mail/pb/mail.pb.go +++ b/gen/mail/pb/mail.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: mail.proto package pb diff --git a/gen/mail/pb/mail_grpc.pb.go b/gen/mail/pb/mail_grpc.pb.go index 9ae125e..0c90115 100644 --- a/gen/mail/pb/mail_grpc.pb.go +++ b/gen/mail/pb/mail_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: mail.proto package pb diff --git a/gen/matchmaking/pb/matchmaking.pb.go b/gen/matchmaking/pb/matchmaking.pb.go index 88c7415..02ac9c8 100644 --- a/gen/matchmaking/pb/matchmaking.pb.go +++ b/gen/matchmaking/pb/matchmaking.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: matchmaking.proto package pb @@ -121,6 +121,277 @@ func (PlayerQueueStatus) EnumDescriptor() ([]byte, []int) { return file_matchmaking_proto_rawDescGZIP(), []int{1} } +type MatchmakingArenaTeamMutationStatus int32 + +const ( + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_OK MatchmakingArenaTeamMutationStatus = 0 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND MatchmakingArenaTeamMutationStatus = 1 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH MatchmakingArenaTeamMutationStatus = 2 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE MatchmakingArenaTeamMutationStatus = 3 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS MatchmakingArenaTeamMutationStatus = 4 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM MatchmakingArenaTeamMutationStatus = 5 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL MatchmakingArenaTeamMutationStatus = 6 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_FAILED MatchmakingArenaTeamMutationStatus = 7 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME MatchmakingArenaTeamMutationStatus = 8 +) + +// Enum value maps for MatchmakingArenaTeamMutationStatus. +var ( + MatchmakingArenaTeamMutationStatus_name = map[int32]string{ + 0: "MATCHMAKING_ARENA_TEAM_MUTATION_OK", + 1: "MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND", + 2: "MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH", + 3: "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE", + 4: "MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS", + 5: "MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM", + 6: "MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL", + 7: "MATCHMAKING_ARENA_TEAM_MUTATION_FAILED", + 8: "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME", + } + MatchmakingArenaTeamMutationStatus_value = map[string]int32{ + "MATCHMAKING_ARENA_TEAM_MUTATION_OK": 0, + "MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND": 1, + "MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH": 2, + "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE": 3, + "MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS": 4, + "MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM": 5, + "MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL": 6, + "MATCHMAKING_ARENA_TEAM_MUTATION_FAILED": 7, + "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME": 8, + } +) + +func (x MatchmakingArenaTeamMutationStatus) Enum() *MatchmakingArenaTeamMutationStatus { + p := new(MatchmakingArenaTeamMutationStatus) + *p = x + return p +} + +func (x MatchmakingArenaTeamMutationStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MatchmakingArenaTeamMutationStatus) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[2].Descriptor() +} + +func (MatchmakingArenaTeamMutationStatus) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[2] +} + +func (x MatchmakingArenaTeamMutationStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MatchmakingArenaTeamMutationStatus.Descriptor instead. +func (MatchmakingArenaTeamMutationStatus) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{2} +} + +type LfgState int32 + +const ( + LfgState_LFG_STATE_NONE LfgState = 0 + LfgState_LFG_STATE_ROLECHECK LfgState = 1 + LfgState_LFG_STATE_QUEUED LfgState = 2 + LfgState_LFG_STATE_PROPOSAL LfgState = 3 + LfgState_LFG_STATE_BOOT LfgState = 4 + LfgState_LFG_STATE_DUNGEON LfgState = 5 + LfgState_LFG_STATE_FINISHED_DUNGEON LfgState = 6 + LfgState_LFG_STATE_RAIDBROWSER LfgState = 7 +) + +// Enum value maps for LfgState. +var ( + LfgState_name = map[int32]string{ + 0: "LFG_STATE_NONE", + 1: "LFG_STATE_ROLECHECK", + 2: "LFG_STATE_QUEUED", + 3: "LFG_STATE_PROPOSAL", + 4: "LFG_STATE_BOOT", + 5: "LFG_STATE_DUNGEON", + 6: "LFG_STATE_FINISHED_DUNGEON", + 7: "LFG_STATE_RAIDBROWSER", + } + LfgState_value = map[string]int32{ + "LFG_STATE_NONE": 0, + "LFG_STATE_ROLECHECK": 1, + "LFG_STATE_QUEUED": 2, + "LFG_STATE_PROPOSAL": 3, + "LFG_STATE_BOOT": 4, + "LFG_STATE_DUNGEON": 5, + "LFG_STATE_FINISHED_DUNGEON": 6, + "LFG_STATE_RAIDBROWSER": 7, + } +) + +func (x LfgState) Enum() *LfgState { + p := new(LfgState) + *p = x + return p +} + +func (x LfgState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LfgState) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[3].Descriptor() +} + +func (LfgState) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[3] +} + +func (x LfgState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LfgState.Descriptor instead. +func (LfgState) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{3} +} + +type LfgProposalState int32 + +const ( + LfgProposalState_LFG_PROPOSAL_INITIATING LfgProposalState = 0 + LfgProposalState_LFG_PROPOSAL_FAILED LfgProposalState = 1 + LfgProposalState_LFG_PROPOSAL_SUCCESS LfgProposalState = 2 +) + +// Enum value maps for LfgProposalState. +var ( + LfgProposalState_name = map[int32]string{ + 0: "LFG_PROPOSAL_INITIATING", + 1: "LFG_PROPOSAL_FAILED", + 2: "LFG_PROPOSAL_SUCCESS", + } + LfgProposalState_value = map[string]int32{ + "LFG_PROPOSAL_INITIATING": 0, + "LFG_PROPOSAL_FAILED": 1, + "LFG_PROPOSAL_SUCCESS": 2, + } +) + +func (x LfgProposalState) Enum() *LfgProposalState { + p := new(LfgProposalState) + *p = x + return p +} + +func (x LfgProposalState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LfgProposalState) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[4].Descriptor() +} + +func (LfgProposalState) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[4] +} + +func (x LfgProposalState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LfgProposalState.Descriptor instead. +func (LfgProposalState) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{4} +} + +type LfgJoinResult int32 + +const ( + LfgJoinResult_LFG_JOIN_OK LfgJoinResult = 0 + LfgJoinResult_LFG_JOIN_FAILED LfgJoinResult = 1 + LfgJoinResult_LFG_JOIN_GROUP_FULL LfgJoinResult = 2 + LfgJoinResult_LFG_JOIN_INTERNAL_ERROR LfgJoinResult = 4 + LfgJoinResult_LFG_JOIN_NOT_MEET_REQS LfgJoinResult = 5 + LfgJoinResult_LFG_JOIN_PARTY_NOT_MEET_REQS LfgJoinResult = 6 + LfgJoinResult_LFG_JOIN_MIXED_RAID_DUNGEON LfgJoinResult = 7 + LfgJoinResult_LFG_JOIN_MULTI_REALM LfgJoinResult = 8 + LfgJoinResult_LFG_JOIN_DISCONNECTED LfgJoinResult = 9 + LfgJoinResult_LFG_JOIN_PARTY_INFO_FAILED LfgJoinResult = 10 + LfgJoinResult_LFG_JOIN_DUNGEON_INVALID LfgJoinResult = 11 + LfgJoinResult_LFG_JOIN_DESERTER LfgJoinResult = 12 + LfgJoinResult_LFG_JOIN_PARTY_DESERTER LfgJoinResult = 13 + LfgJoinResult_LFG_JOIN_RANDOM_COOLDOWN LfgJoinResult = 14 + LfgJoinResult_LFG_JOIN_PARTY_RANDOM_COOLDOWN LfgJoinResult = 15 + LfgJoinResult_LFG_JOIN_TOO_MANY_MEMBERS LfgJoinResult = 16 + LfgJoinResult_LFG_JOIN_USING_BG_SYSTEM LfgJoinResult = 17 +) + +// Enum value maps for LfgJoinResult. +var ( + LfgJoinResult_name = map[int32]string{ + 0: "LFG_JOIN_OK", + 1: "LFG_JOIN_FAILED", + 2: "LFG_JOIN_GROUP_FULL", + 4: "LFG_JOIN_INTERNAL_ERROR", + 5: "LFG_JOIN_NOT_MEET_REQS", + 6: "LFG_JOIN_PARTY_NOT_MEET_REQS", + 7: "LFG_JOIN_MIXED_RAID_DUNGEON", + 8: "LFG_JOIN_MULTI_REALM", + 9: "LFG_JOIN_DISCONNECTED", + 10: "LFG_JOIN_PARTY_INFO_FAILED", + 11: "LFG_JOIN_DUNGEON_INVALID", + 12: "LFG_JOIN_DESERTER", + 13: "LFG_JOIN_PARTY_DESERTER", + 14: "LFG_JOIN_RANDOM_COOLDOWN", + 15: "LFG_JOIN_PARTY_RANDOM_COOLDOWN", + 16: "LFG_JOIN_TOO_MANY_MEMBERS", + 17: "LFG_JOIN_USING_BG_SYSTEM", + } + LfgJoinResult_value = map[string]int32{ + "LFG_JOIN_OK": 0, + "LFG_JOIN_FAILED": 1, + "LFG_JOIN_GROUP_FULL": 2, + "LFG_JOIN_INTERNAL_ERROR": 4, + "LFG_JOIN_NOT_MEET_REQS": 5, + "LFG_JOIN_PARTY_NOT_MEET_REQS": 6, + "LFG_JOIN_MIXED_RAID_DUNGEON": 7, + "LFG_JOIN_MULTI_REALM": 8, + "LFG_JOIN_DISCONNECTED": 9, + "LFG_JOIN_PARTY_INFO_FAILED": 10, + "LFG_JOIN_DUNGEON_INVALID": 11, + "LFG_JOIN_DESERTER": 12, + "LFG_JOIN_PARTY_DESERTER": 13, + "LFG_JOIN_RANDOM_COOLDOWN": 14, + "LFG_JOIN_PARTY_RANDOM_COOLDOWN": 15, + "LFG_JOIN_TOO_MANY_MEMBERS": 16, + "LFG_JOIN_USING_BG_SYSTEM": 17, + } +) + +func (x LfgJoinResult) Enum() *LfgJoinResult { + p := new(LfgJoinResult) + *p = x + return p +} + +func (x LfgJoinResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LfgJoinResult) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[5].Descriptor() +} + +func (LfgJoinResult) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[5] +} + +func (x LfgJoinResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LfgJoinResult.Descriptor instead. +func (LfgJoinResult) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{5} +} + // Use the same statuses as in gameserver (AC/TC) type BattlegroundStatusChangedRequest_Status int32 @@ -161,11 +432,11 @@ func (x BattlegroundStatusChangedRequest_Status) String() string { } func (BattlegroundStatusChangedRequest_Status) Descriptor() protoreflect.EnumDescriptor { - return file_matchmaking_proto_enumTypes[2].Descriptor() + return file_matchmaking_proto_enumTypes[6].Descriptor() } func (BattlegroundStatusChangedRequest_Status) Type() protoreflect.EnumType { - return &file_matchmaking_proto_enumTypes[2] + return &file_matchmaking_proto_enumTypes[6] } func (x BattlegroundStatusChangedRequest_Status) Number() protoreflect.EnumNumber { @@ -189,6 +460,8 @@ type EnqueueToBattlegroundRequest struct { LeadersLvl uint32 `protobuf:"varint,5,opt,name=leadersLvl,proto3" json:"leadersLvl,omitempty"` BgTypeID uint32 `protobuf:"varint,6,opt,name=bgTypeID,proto3" json:"bgTypeID,omitempty"` TeamID PVPTeamID `protobuf:"varint,7,opt,name=teamID,proto3,enum=v1.PVPTeamID" json:"teamID,omitempty"` + ArenaType uint32 `protobuf:"varint,8,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + IsRated bool `protobuf:"varint,9,opt,name=isRated,proto3" json:"isRated,omitempty"` } func (x *EnqueueToBattlegroundRequest) Reset() { @@ -272,6 +545,20 @@ func (x *EnqueueToBattlegroundRequest) GetTeamID() PVPTeamID { return PVPTeamID_Any } +func (x *EnqueueToBattlegroundRequest) GetArenaType() uint32 { + if x != nil { + return x.ArenaType + } + return 0 +} + +func (x *EnqueueToBattlegroundRequest) GetIsRated() bool { + if x != nil { + return x.IsRated + } + return false +} + type EnqueueToBattlegroundResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -933,20 +1220,17 @@ func (x *BattlegroundStatusChangedResponse) GetApi() string { return "" } -type BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData struct { +type RatedArenaParticipant struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AssignedBattlegroundInstanceID uint32 `protobuf:"varint,1,opt,name=assignedBattlegroundInstanceID,proto3" json:"assignedBattlegroundInstanceID,omitempty"` - MapID uint32 `protobuf:"varint,2,opt,name=mapID,proto3" json:"mapID,omitempty"` - BattlegroupID uint32 `protobuf:"varint,3,opt,name=battlegroupID,proto3" json:"battlegroupID,omitempty"` - GameserverAddress string `protobuf:"bytes,4,opt,name=gameserverAddress,proto3" json:"gameserverAddress,omitempty"` - GameserverGRPCAddress string `protobuf:"bytes,5,opt,name=gameserverGRPCAddress,proto3" json:"gameserverGRPCAddress,omitempty"` + Team PVPTeamID `protobuf:"varint,1,opt,name=team,proto3,enum=v1.PVPTeamID" json:"team,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Reset() { - *x = BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData{} +func (x *RatedArenaParticipant) Reset() { + *x = RatedArenaParticipant{} if protoimpl.UnsafeEnabled { mi := &file_matchmaking_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -954,13 +1238,13 @@ func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Reset( } } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) String() string { +func (x *RatedArenaParticipant) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoMessage() {} +func (*RatedArenaParticipant) ProtoMessage() {} -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoReflect() protoreflect.Message { +func (x *RatedArenaParticipant) ProtoReflect() protoreflect.Message { mi := &file_matchmaking_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -972,73 +1256,136 @@ func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoR return mi.MessageOf(x) } -// Deprecated: Use BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData.ProtoReflect.Descriptor instead. -func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Descriptor() ([]byte, []int) { - return file_matchmaking_proto_rawDescGZIP(), []int{5, 0} +// Deprecated: Use RatedArenaParticipant.ProtoReflect.Descriptor instead. +func (*RatedArenaParticipant) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{12} } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetAssignedBattlegroundInstanceID() uint32 { +func (x *RatedArenaParticipant) GetTeam() PVPTeamID { if x != nil { - return x.AssignedBattlegroundInstanceID + return x.Team + } + return PVPTeamID_Any +} + +func (x *RatedArenaParticipant) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetMapID() uint32 { +type RatedArenaTeamScore struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,2,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + TeamName string `protobuf:"bytes,3,opt,name=teamName,proto3" json:"teamName,omitempty"` + RatingChange int32 `protobuf:"varint,4,opt,name=ratingChange,proto3" json:"ratingChange,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,5,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` +} + +func (x *RatedArenaTeamScore) Reset() { + *x = RatedArenaTeamScore{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RatedArenaTeamScore) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RatedArenaTeamScore) ProtoMessage() {} + +func (x *RatedArenaTeamScore) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RatedArenaTeamScore.ProtoReflect.Descriptor instead. +func (*RatedArenaTeamScore) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{13} +} + +func (x *RatedArenaTeamScore) GetRealmID() uint32 { if x != nil { - return x.MapID + return x.RealmID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetBattlegroupID() uint32 { +func (x *RatedArenaTeamScore) GetArenaTeamID() uint32 { if x != nil { - return x.BattlegroupID + return x.ArenaTeamID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverAddress() string { +func (x *RatedArenaTeamScore) GetTeamName() string { if x != nil { - return x.GameserverAddress + return x.TeamName } return "" } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverGRPCAddress() string { +func (x *RatedArenaTeamScore) GetRatingChange() int32 { if x != nil { - return x.GameserverGRPCAddress + return x.RatingChange } - return "" + return 0 } -type BattlegroundQueueDataForPlayerResponse_QueueSlot struct { +func (x *RatedArenaTeamScore) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +type RatedArenaMemberResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BgTypeID uint32 `protobuf:"varint,1,opt,name=bgTypeID,proto3" json:"bgTypeID,omitempty"` - Status PlayerQueueStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.PlayerQueueStatus" json:"status,omitempty"` - AssignedBattlegroundData *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData `protobuf:"bytes,3,opt,name=assignedBattlegroundData,proto3,oneof" json:"assignedBattlegroundData,omitempty"` + Team PVPTeamID `protobuf:"varint,1,opt,name=team,proto3,enum=v1.PVPTeamID" json:"team,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PersonalRating uint32 `protobuf:"varint,3,opt,name=personalRating,proto3" json:"personalRating,omitempty"` + WeekGames uint32 `protobuf:"varint,4,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + SeasonGames uint32 `protobuf:"varint,5,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + WeekWins uint32 `protobuf:"varint,6,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonWins uint32 `protobuf:"varint,7,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,8,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) Reset() { - *x = BattlegroundQueueDataForPlayerResponse_QueueSlot{} +func (x *RatedArenaMemberResult) Reset() { + *x = RatedArenaMemberResult{} if protoimpl.UnsafeEnabled { - mi := &file_matchmaking_proto_msgTypes[13] + mi := &file_matchmaking_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) String() string { +func (x *RatedArenaMemberResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoMessage() {} +func (*RatedArenaMemberResult) ProtoMessage() {} -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoReflect() protoreflect.Message { - mi := &file_matchmaking_proto_msgTypes[13] +func (x *RatedArenaMemberResult) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1049,191 +1396,2037 @@ func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use BattlegroundQueueDataForPlayerResponse_QueueSlot.ProtoReflect.Descriptor instead. -func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) Descriptor() ([]byte, []int) { - return file_matchmaking_proto_rawDescGZIP(), []int{5, 1} +// Deprecated: Use RatedArenaMemberResult.ProtoReflect.Descriptor instead. +func (*RatedArenaMemberResult) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{14} } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetBgTypeID() uint32 { +func (x *RatedArenaMemberResult) GetTeam() PVPTeamID { if x != nil { - return x.BgTypeID + return x.Team + } + return PVPTeamID_Any +} + +func (x *RatedArenaMemberResult) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetStatus() PlayerQueueStatus { +func (x *RatedArenaMemberResult) GetPersonalRating() uint32 { if x != nil { - return x.Status + return x.PersonalRating } - return PlayerQueueStatus_NotInQueue + return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetAssignedBattlegroundData() *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData { +func (x *RatedArenaMemberResult) GetWeekGames() uint32 { if x != nil { - return x.AssignedBattlegroundData + return x.WeekGames } - return nil + return 0 } -var File_matchmaking_proto protoreflect.FileDescriptor +func (x *RatedArenaMemberResult) GetSeasonGames() uint32 { + if x != nil { + return x.SeasonGames + } + return 0 +} -var file_matchmaking_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xf1, 0x01, 0x0a, 0x1c, 0x45, 0x6e, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x79, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, - 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x31, 0x0a, 0x1d, 0x45, - 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, - 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, - 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x62, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x73, 0x0a, 0x25, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, - 0x88, 0x05, 0x0a, 0x26, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x05, - 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, - 0x74, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x1a, 0x82, 0x02, 0x0a, 0x18, 0x41, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x1e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x61, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, - 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, - 0x70, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x61, 0x6d, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x52, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x47, 0x52, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0xfa, 0x01, - 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, - 0x19, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x01, 0x0a, 0x1d, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, - 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x32, 0x0a, 0x1e, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x22, 0xb1, 0x01, 0x0a, 0x1f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, - 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, - 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, - 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x34, 0x0a, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, - 0x69, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xa3, 0x02, 0x0a, 0x20, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, - 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, - 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, - 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x61, 0x69, 0x74, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x10, 0x04, - 0x22, 0x35, 0x0a, 0x21, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x2a, 0x2d, 0x0a, 0x09, 0x50, 0x56, 0x50, 0x54, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x48, - 0x6f, 0x72, 0x64, 0x65, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, - 0x6f, 0x74, 0x49, 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, - 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x10, 0x03, 0x32, 0xfb, 0x04, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x15, - 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, +func (x *RatedArenaMemberResult) GetWeekWins() uint32 { + if x != nil { + return x.WeekWins + } + return 0 +} + +func (x *RatedArenaMemberResult) GetSeasonWins() uint32 { + if x != nil { + return x.SeasonWins + } + return 0 +} + +func (x *RatedArenaMemberResult) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +type FinishRatedArenaMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + OwnerRealmID uint32 `protobuf:"varint,2,opt,name=ownerRealmID,proto3" json:"ownerRealmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` + InstanceID uint32 `protobuf:"varint,4,opt,name=instanceID,proto3" json:"instanceID,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + WinnerTeam PVPTeamID `protobuf:"varint,6,opt,name=winnerTeam,proto3,enum=v1.PVPTeamID" json:"winnerTeam,omitempty"` + ValidArena bool `protobuf:"varint,7,opt,name=validArena,proto3" json:"validArena,omitempty"` + AllianceArenaTeamID uint32 `protobuf:"varint,8,opt,name=allianceArenaTeamID,proto3" json:"allianceArenaTeamID,omitempty"` + HordeArenaTeamID uint32 `protobuf:"varint,9,opt,name=hordeArenaTeamID,proto3" json:"hordeArenaTeamID,omitempty"` + AllianceArenaMatchmakerRating uint32 `protobuf:"varint,10,opt,name=allianceArenaMatchmakerRating,proto3" json:"allianceArenaMatchmakerRating,omitempty"` + HordeArenaMatchmakerRating uint32 `protobuf:"varint,11,opt,name=hordeArenaMatchmakerRating,proto3" json:"hordeArenaMatchmakerRating,omitempty"` + Participants []*RatedArenaParticipant `protobuf:"bytes,12,rep,name=participants,proto3" json:"participants,omitempty"` +} + +func (x *FinishRatedArenaMatchRequest) Reset() { + *x = FinishRatedArenaMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishRatedArenaMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishRatedArenaMatchRequest) ProtoMessage() {} + +func (x *FinishRatedArenaMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FinishRatedArenaMatchRequest.ProtoReflect.Descriptor instead. +func (*FinishRatedArenaMatchRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{15} +} + +func (x *FinishRatedArenaMatchRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *FinishRatedArenaMatchRequest) GetOwnerRealmID() uint32 { + if x != nil { + return x.OwnerRealmID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetIsCrossRealm() bool { + if x != nil { + return x.IsCrossRealm + } + return false +} + +func (x *FinishRatedArenaMatchRequest) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetArenaType() uint32 { + if x != nil { + return x.ArenaType + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetWinnerTeam() PVPTeamID { + if x != nil { + return x.WinnerTeam + } + return PVPTeamID_Any +} + +func (x *FinishRatedArenaMatchRequest) GetValidArena() bool { + if x != nil { + return x.ValidArena + } + return false +} + +func (x *FinishRatedArenaMatchRequest) GetAllianceArenaTeamID() uint32 { + if x != nil { + return x.AllianceArenaTeamID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetHordeArenaTeamID() uint32 { + if x != nil { + return x.HordeArenaTeamID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetAllianceArenaMatchmakerRating() uint32 { + if x != nil { + return x.AllianceArenaMatchmakerRating + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetHordeArenaMatchmakerRating() uint32 { + if x != nil { + return x.HordeArenaMatchmakerRating + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetParticipants() []*RatedArenaParticipant { + if x != nil { + return x.Participants + } + return nil +} + +type FinishRatedArenaMatchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status MatchmakingArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.MatchmakingArenaTeamMutationStatus" json:"status,omitempty"` + AllianceScore *RatedArenaTeamScore `protobuf:"bytes,3,opt,name=allianceScore,proto3" json:"allianceScore,omitempty"` + HordeScore *RatedArenaTeamScore `protobuf:"bytes,4,opt,name=hordeScore,proto3" json:"hordeScore,omitempty"` + MemberResults []*RatedArenaMemberResult `protobuf:"bytes,5,rep,name=memberResults,proto3" json:"memberResults,omitempty"` +} + +func (x *FinishRatedArenaMatchResponse) Reset() { + *x = FinishRatedArenaMatchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishRatedArenaMatchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishRatedArenaMatchResponse) ProtoMessage() {} + +func (x *FinishRatedArenaMatchResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FinishRatedArenaMatchResponse.ProtoReflect.Descriptor instead. +func (*FinishRatedArenaMatchResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{16} +} + +func (x *FinishRatedArenaMatchResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *FinishRatedArenaMatchResponse) GetStatus() MatchmakingArenaTeamMutationStatus { + if x != nil { + return x.Status + } + return MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_OK +} + +func (x *FinishRatedArenaMatchResponse) GetAllianceScore() *RatedArenaTeamScore { + if x != nil { + return x.AllianceScore + } + return nil +} + +func (x *FinishRatedArenaMatchResponse) GetHordeScore() *RatedArenaTeamScore { + if x != nil { + return x.HordeScore + } + return nil +} + +func (x *FinishRatedArenaMatchResponse) GetMemberResults() []*RatedArenaMemberResult { + if x != nil { + return x.MemberResults + } + return nil +} + +type LfgMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Roles uint32 `protobuf:"varint,2,opt,name=roles,proto3" json:"roles,omitempty"` + Leader bool `protobuf:"varint,3,opt,name=leader,proto3" json:"leader,omitempty"` + WorldserverID string `protobuf:"bytes,4,opt,name=worldserverID,proto3" json:"worldserverID,omitempty"` + RealmID uint32 `protobuf:"varint,5,opt,name=realmID,proto3" json:"realmID,omitempty"` + QueueLeaderRealmID uint32 `protobuf:"varint,6,opt,name=queueLeaderRealmID,proto3" json:"queueLeaderRealmID,omitempty"` + QueueLeaderGUID uint64 `protobuf:"varint,7,opt,name=queueLeaderGUID,proto3" json:"queueLeaderGUID,omitempty"` +} + +func (x *LfgMember) Reset() { + *x = LfgMember{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgMember) ProtoMessage() {} + +func (x *LfgMember) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LfgMember.ProtoReflect.Descriptor instead. +func (*LfgMember) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{17} +} + +func (x *LfgMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *LfgMember) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +func (x *LfgMember) GetLeader() bool { + if x != nil { + return x.Leader + } + return false +} + +func (x *LfgMember) GetWorldserverID() string { + if x != nil { + return x.WorldserverID + } + return "" +} + +func (x *LfgMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LfgMember) GetQueueLeaderRealmID() uint32 { + if x != nil { + return x.QueueLeaderRealmID + } + return 0 +} + +func (x *LfgMember) GetQueueLeaderGUID() uint64 { + if x != nil { + return x.QueueLeaderGUID + } + return 0 +} + +type LfgProposalMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + SelectedRoles uint32 `protobuf:"varint,2,opt,name=selectedRoles,proto3" json:"selectedRoles,omitempty"` + AssignedRole uint32 `protobuf:"varint,3,opt,name=assignedRole,proto3" json:"assignedRole,omitempty"` + Answered bool `protobuf:"varint,4,opt,name=answered,proto3" json:"answered,omitempty"` + Accepted bool `protobuf:"varint,5,opt,name=accepted,proto3" json:"accepted,omitempty"` + RealmID uint32 `protobuf:"varint,6,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *LfgProposalMember) Reset() { + *x = LfgProposalMember{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgProposalMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgProposalMember) ProtoMessage() {} + +func (x *LfgProposalMember) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LfgProposalMember.ProtoReflect.Descriptor instead. +func (*LfgProposalMember) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{18} +} + +func (x *LfgProposalMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *LfgProposalMember) GetSelectedRoles() uint32 { + if x != nil { + return x.SelectedRoles + } + return 0 +} + +func (x *LfgProposalMember) GetAssignedRole() uint32 { + if x != nil { + return x.AssignedRole + } + return 0 +} + +func (x *LfgProposalMember) GetAnswered() bool { + if x != nil { + return x.Answered + } + return false +} + +func (x *LfgProposalMember) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +func (x *LfgProposalMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type LfgStatusData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State LfgState `protobuf:"varint,1,opt,name=state,proto3,enum=v1.LfgState" json:"state,omitempty"` + ProposalID uint32 `protobuf:"varint,2,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + ProposalState LfgProposalState `protobuf:"varint,3,opt,name=proposalState,proto3,enum=v1.LfgProposalState" json:"proposalState,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + SelectedDungeons []uint32 `protobuf:"varint,5,rep,packed,name=selectedDungeons,proto3" json:"selectedDungeons,omitempty"` + QueuedMembers []*LfgMember `protobuf:"bytes,6,rep,name=queuedMembers,proto3" json:"queuedMembers,omitempty"` + ProposalMembers []*LfgProposalMember `protobuf:"bytes,7,rep,name=proposalMembers,proto3" json:"proposalMembers,omitempty"` + QueuedTimeMilliseconds uint32 `protobuf:"varint,8,opt,name=queuedTimeMilliseconds,proto3" json:"queuedTimeMilliseconds,omitempty"` + TanksNeeded uint32 `protobuf:"varint,9,opt,name=tanksNeeded,proto3" json:"tanksNeeded,omitempty"` + HealersNeeded uint32 `protobuf:"varint,10,opt,name=healersNeeded,proto3" json:"healersNeeded,omitempty"` + DamageNeeded uint32 `protobuf:"varint,11,opt,name=damageNeeded,proto3" json:"damageNeeded,omitempty"` +} + +func (x *LfgStatusData) Reset() { + *x = LfgStatusData{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgStatusData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgStatusData) ProtoMessage() {} + +func (x *LfgStatusData) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LfgStatusData.ProtoReflect.Descriptor instead. +func (*LfgStatusData) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{19} +} + +func (x *LfgStatusData) GetState() LfgState { + if x != nil { + return x.State + } + return LfgState_LFG_STATE_NONE +} + +func (x *LfgStatusData) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *LfgStatusData) GetProposalState() LfgProposalState { + if x != nil { + return x.ProposalState + } + return LfgProposalState_LFG_PROPOSAL_INITIATING +} + +func (x *LfgStatusData) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *LfgStatusData) GetSelectedDungeons() []uint32 { + if x != nil { + return x.SelectedDungeons + } + return nil +} + +func (x *LfgStatusData) GetQueuedMembers() []*LfgMember { + if x != nil { + return x.QueuedMembers + } + return nil +} + +func (x *LfgStatusData) GetProposalMembers() []*LfgProposalMember { + if x != nil { + return x.ProposalMembers + } + return nil +} + +func (x *LfgStatusData) GetQueuedTimeMilliseconds() uint32 { + if x != nil { + return x.QueuedTimeMilliseconds + } + return 0 +} + +func (x *LfgStatusData) GetTanksNeeded() uint32 { + if x != nil { + return x.TanksNeeded + } + return 0 +} + +func (x *LfgStatusData) GetHealersNeeded() uint32 { + if x != nil { + return x.HealersNeeded + } + return 0 +} + +func (x *LfgStatusData) GetDamageNeeded() uint32 { + if x != nil { + return x.DamageNeeded + } + return 0 +} + +type JoinLfgRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,3,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + Members []*LfgMember `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` + DungeonEntries []uint32 `protobuf:"varint,5,rep,packed,name=dungeonEntries,proto3" json:"dungeonEntries,omitempty"` + Comment string `protobuf:"bytes,6,opt,name=comment,proto3" json:"comment,omitempty"` +} + +func (x *JoinLfgRequest) Reset() { + *x = JoinLfgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinLfgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinLfgRequest) ProtoMessage() {} + +func (x *JoinLfgRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JoinLfgRequest.ProtoReflect.Descriptor instead. +func (*JoinLfgRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{20} +} + +func (x *JoinLfgRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *JoinLfgRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *JoinLfgRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *JoinLfgRequest) GetMembers() []*LfgMember { + if x != nil { + return x.Members + } + return nil +} + +func (x *JoinLfgRequest) GetDungeonEntries() []uint32 { + if x != nil { + return x.DungeonEntries + } + return nil +} + +func (x *JoinLfgRequest) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +type JoinLfgResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result LfgJoinResult `protobuf:"varint,2,opt,name=result,proto3,enum=v1.LfgJoinResult" json:"result,omitempty"` + Status *LfgStatusData `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *JoinLfgResponse) Reset() { + *x = JoinLfgResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinLfgResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinLfgResponse) ProtoMessage() {} + +func (x *JoinLfgResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JoinLfgResponse.ProtoReflect.Descriptor instead. +func (*JoinLfgResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{21} +} + +func (x *JoinLfgResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *JoinLfgResponse) GetResult() LfgJoinResult { + if x != nil { + return x.Result + } + return LfgJoinResult_LFG_JOIN_OK +} + +func (x *JoinLfgResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type LeaveLfgRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *LeaveLfgRequest) Reset() { + *x = LeaveLfgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveLfgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveLfgRequest) ProtoMessage() {} + +func (x *LeaveLfgRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeaveLfgRequest.ProtoReflect.Descriptor instead. +func (*LeaveLfgRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{22} +} + +func (x *LeaveLfgRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *LeaveLfgRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LeaveLfgRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type LeaveLfgResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *LeaveLfgResponse) Reset() { + *x = LeaveLfgResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveLfgResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveLfgResponse) ProtoMessage() {} + +func (x *LeaveLfgResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeaveLfgResponse.ProtoReflect.Descriptor instead. +func (*LeaveLfgResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{23} +} + +func (x *LeaveLfgResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetLfgRolesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Roles uint32 `protobuf:"varint,4,opt,name=roles,proto3" json:"roles,omitempty"` +} + +func (x *SetLfgRolesRequest) Reset() { + *x = SetLfgRolesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgRolesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgRolesRequest) ProtoMessage() {} + +func (x *SetLfgRolesRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetLfgRolesRequest.ProtoReflect.Descriptor instead. +func (*SetLfgRolesRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{24} +} + +func (x *SetLfgRolesRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgRolesRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetLfgRolesRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetLfgRolesRequest) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +type SetLfgRolesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status *LfgStatusData `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *SetLfgRolesResponse) Reset() { + *x = SetLfgRolesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgRolesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgRolesResponse) ProtoMessage() {} + +func (x *SetLfgRolesResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetLfgRolesResponse.ProtoReflect.Descriptor instead. +func (*SetLfgRolesResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{25} +} + +func (x *SetLfgRolesResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgRolesResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type AnswerLfgProposalRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + ProposalID uint32 `protobuf:"varint,4,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + Accept bool `protobuf:"varint,5,opt,name=accept,proto3" json:"accept,omitempty"` +} + +func (x *AnswerLfgProposalRequest) Reset() { + *x = AnswerLfgProposalRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerLfgProposalRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerLfgProposalRequest) ProtoMessage() {} + +func (x *AnswerLfgProposalRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnswerLfgProposalRequest.ProtoReflect.Descriptor instead. +func (*AnswerLfgProposalRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{26} +} + +func (x *AnswerLfgProposalRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AnswerLfgProposalRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AnswerLfgProposalRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AnswerLfgProposalRequest) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *AnswerLfgProposalRequest) GetAccept() bool { + if x != nil { + return x.Accept + } + return false +} + +type AnswerLfgProposalResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status *LfgStatusData `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *AnswerLfgProposalResponse) Reset() { + *x = AnswerLfgProposalResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerLfgProposalResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerLfgProposalResponse) ProtoMessage() {} + +func (x *AnswerLfgProposalResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnswerLfgProposalResponse.ProtoReflect.Descriptor instead. +func (*AnswerLfgProposalResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{27} +} + +func (x *AnswerLfgProposalResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AnswerLfgProposalResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type LfgStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *LfgStatusRequest) Reset() { + *x = LfgStatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgStatusRequest) ProtoMessage() {} + +func (x *LfgStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LfgStatusRequest.ProtoReflect.Descriptor instead. +func (*LfgStatusRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{28} +} + +func (x *LfgStatusRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *LfgStatusRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LfgStatusRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type LfgStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status *LfgStatusData `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *LfgStatusResponse) Reset() { + *x = LfgStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgStatusResponse) ProtoMessage() {} + +func (x *LfgStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LfgStatusResponse.ProtoReflect.Descriptor instead. +func (*LfgStatusResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{29} +} + +func (x *LfgStatusResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *LfgStatusResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type CompleteLfgDungeonPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *CompleteLfgDungeonPlayer) Reset() { + *x = CompleteLfgDungeonPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompleteLfgDungeonPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompleteLfgDungeonPlayer) ProtoMessage() {} + +func (x *CompleteLfgDungeonPlayer) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CompleteLfgDungeonPlayer.ProtoReflect.Descriptor instead. +func (*CompleteLfgDungeonPlayer) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{30} +} + +func (x *CompleteLfgDungeonPlayer) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *CompleteLfgDungeonPlayer) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type CompleteLfgDungeonRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + CompletedDungeonEntry uint32 `protobuf:"varint,2,opt,name=completedDungeonEntry,proto3" json:"completedDungeonEntry,omitempty"` + SelectedDungeonEntry uint32 `protobuf:"varint,3,opt,name=selectedDungeonEntry,proto3" json:"selectedDungeonEntry,omitempty"` + Players []*CompleteLfgDungeonPlayer `protobuf:"bytes,4,rep,name=players,proto3" json:"players,omitempty"` +} + +func (x *CompleteLfgDungeonRequest) Reset() { + *x = CompleteLfgDungeonRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompleteLfgDungeonRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompleteLfgDungeonRequest) ProtoMessage() {} + +func (x *CompleteLfgDungeonRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CompleteLfgDungeonRequest.ProtoReflect.Descriptor instead. +func (*CompleteLfgDungeonRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{31} +} + +func (x *CompleteLfgDungeonRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *CompleteLfgDungeonRequest) GetCompletedDungeonEntry() uint32 { + if x != nil { + return x.CompletedDungeonEntry + } + return 0 +} + +func (x *CompleteLfgDungeonRequest) GetSelectedDungeonEntry() uint32 { + if x != nil { + return x.SelectedDungeonEntry + } + return 0 +} + +func (x *CompleteLfgDungeonRequest) GetPlayers() []*CompleteLfgDungeonPlayer { + if x != nil { + return x.Players + } + return nil +} + +type CompleteLfgDungeonResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *CompleteLfgDungeonResponse) Reset() { + *x = CompleteLfgDungeonResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompleteLfgDungeonResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompleteLfgDungeonResponse) ProtoMessage() {} + +func (x *CompleteLfgDungeonResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CompleteLfgDungeonResponse.ProtoReflect.Descriptor instead. +func (*CompleteLfgDungeonResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{32} +} + +func (x *CompleteLfgDungeonResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssignedBattlegroundInstanceID uint32 `protobuf:"varint,1,opt,name=assignedBattlegroundInstanceID,proto3" json:"assignedBattlegroundInstanceID,omitempty"` + MapID uint32 `protobuf:"varint,2,opt,name=mapID,proto3" json:"mapID,omitempty"` + BattlegroupID uint32 `protobuf:"varint,3,opt,name=battlegroupID,proto3" json:"battlegroupID,omitempty"` + GameserverAddress string `protobuf:"bytes,4,opt,name=gameserverAddress,proto3" json:"gameserverAddress,omitempty"` + GameserverGRPCAddress string `protobuf:"bytes,5,opt,name=gameserverGRPCAddress,proto3" json:"gameserverGRPCAddress,omitempty"` + AssignedTeamID PVPTeamID `protobuf:"varint,6,opt,name=assignedTeamID,proto3,enum=v1.PVPTeamID" json:"assignedTeamID,omitempty"` +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Reset() { + *x = BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoMessage() {} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData.ProtoReflect.Descriptor instead. +func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetAssignedBattlegroundInstanceID() uint32 { + if x != nil { + return x.AssignedBattlegroundInstanceID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetBattlegroupID() uint32 { + if x != nil { + return x.BattlegroupID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverAddress() string { + if x != nil { + return x.GameserverAddress + } + return "" +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverGRPCAddress() string { + if x != nil { + return x.GameserverGRPCAddress + } + return "" +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetAssignedTeamID() PVPTeamID { + if x != nil { + return x.AssignedTeamID + } + return PVPTeamID_Any +} + +type BattlegroundQueueDataForPlayerResponse_QueueSlot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BgTypeID uint32 `protobuf:"varint,1,opt,name=bgTypeID,proto3" json:"bgTypeID,omitempty"` + Status PlayerQueueStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.PlayerQueueStatus" json:"status,omitempty"` + AssignedBattlegroundData *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData `protobuf:"bytes,3,opt,name=assignedBattlegroundData,proto3,oneof" json:"assignedBattlegroundData,omitempty"` +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) Reset() { + *x = BattlegroundQueueDataForPlayerResponse_QueueSlot{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoMessage() {} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BattlegroundQueueDataForPlayerResponse_QueueSlot.ProtoReflect.Descriptor instead. +func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetBgTypeID() uint32 { + if x != nil { + return x.BgTypeID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetStatus() PlayerQueueStatus { + if x != nil { + return x.Status + } + return PlayerQueueStatus_NotInQueue +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetAssignedBattlegroundData() *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData { + if x != nil { + return x.AssignedBattlegroundData + } + return nil +} + +var File_matchmaking_proto protoreflect.FileDescriptor + +var file_matchmaking_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xa9, 0x02, 0x0a, 0x1c, 0x45, 0x6e, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x79, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, + 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, + 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x61, + 0x74, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x1d, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x31, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, + 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x22, 0x73, 0x0a, 0x25, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xbf, 0x05, 0x0a, 0x26, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, + 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, + 0x1a, 0xb9, 0x02, 0x0a, 0x18, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, + 0x1e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x61, + 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x34, 0x0a, 0x15, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x52, 0x50, + 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, + 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x52, 0x50, 0x43, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x35, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x0e, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x1a, 0xfa, 0x01, 0x0a, + 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x01, 0x0a, 0x1d, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, + 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, + 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x32, 0x0a, 0x1e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xb1, 0x01, 0x0a, 0x1f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, + 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, + 0x61, 0x6c, 0x6d, 0x22, 0x34, 0x0a, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xa3, 0x02, 0x0a, 0x20, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, + 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x43, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, + 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x61, 0x69, 0x74, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x4a, 0x6f, + 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x10, 0x04, 0x22, + 0x35, 0x0a, 0x21, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x5a, 0x0a, 0x15, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, + 0x21, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x22, 0xab, 0x02, 0x0a, 0x16, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, + 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, + 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, + 0x57, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, 0x65, 0x6b, + 0x57, 0x69, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, + 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x57, 0x69, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x22, 0xa8, 0x04, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, + 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, + 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x0a, 0x77, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x6f, + 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x1d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, + 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, + 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x61, + 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x1a, + 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x1a, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3d, 0x0a, 0x0c, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0c, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0xab, 0x02, 0x0a, 0x1d, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x3d, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x37, + 0x0a, 0x0a, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x0a, 0x68, 0x6f, 0x72, + 0x64, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x09, 0x4c, 0x66, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x12, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, + 0xcf, 0x01, 0x0a, 0x11, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x22, 0xf9, 0x03, 0x0a, 0x0d, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x66, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x6e, 0x6b, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x61, 0x6e, 0x6b, 0x73, 0x4e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x73, 0x4e, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, + 0x65, 0x72, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x61, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0xc7, 0x01, + 0x0a, 0x0e, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x27, 0x0a, 0x07, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x64, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x0f, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, + 0x66, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x5d, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x22, 0x24, 0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4c, 0x66, + 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, + 0x52, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x18, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, + 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x22, 0x58, 0x0a, 0x19, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, + 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5e, + 0x0a, 0x10, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x50, + 0x0a, 0x11, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x54, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xcf, 0x01, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x14, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x36, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, + 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x2a, 0x2d, 0x0a, 0x09, 0x50, 0x56, 0x50, 0x54, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x48, 0x6f, 0x72, 0x64, 0x65, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x0a, + 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x49, 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x10, 0x03, 0x2a, 0xd7, 0x03, 0x0a, 0x22, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, + 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, + 0x22, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, + 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, + 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, + 0x4e, 0x44, 0x10, 0x01, 0x12, 0x33, 0x0a, 0x2f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, + 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, + 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4d, + 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x41, 0x54, + 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, + 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x2f, 0x0a, 0x2b, 0x4d, + 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, + 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, + 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x04, 0x12, 0x33, 0x0a, 0x2f, + 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, + 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, + 0x05, 0x12, 0x2f, 0x0a, 0x2b, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, + 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, + 0x10, 0x06, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, + 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x30, + 0x0a, 0x2c, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, + 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x08, + 0x2a, 0xcb, 0x01, 0x0a, 0x08, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, + 0x4f, 0x4c, 0x45, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x46, + 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x02, + 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, + 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x46, 0x47, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, + 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, + 0x4e, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, + 0x4e, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x52, 0x41, 0x49, 0x44, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x10, 0x07, 0x2a, 0x62, + 0x0a, 0x10, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x46, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, + 0x41, 0x4c, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, + 0x17, 0x0a, 0x13, 0x4c, 0x46, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x46, 0x47, 0x5f, + 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x10, 0x02, 0x2a, 0xf0, 0x03, 0x0a, 0x0d, 0x4c, 0x66, 0x67, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, + 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x46, + 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x46, 0x55, 0x4c, + 0x4c, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, + 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x4d, 0x45, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x53, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, + 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x4d, 0x45, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x53, 0x10, 0x06, 0x12, 0x1f, + 0x0a, 0x1b, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, + 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, 0x4e, 0x10, 0x07, 0x12, + 0x18, 0x0a, 0x14, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, + 0x49, 0x5f, 0x52, 0x45, 0x41, 0x4c, 0x4d, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x46, 0x47, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x44, + 0x45, 0x53, 0x45, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x46, 0x47, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x53, 0x45, + 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, + 0x49, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, + 0x57, 0x4e, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x43, 0x4f, + 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0f, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x46, 0x47, 0x5f, + 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x59, 0x5f, 0x4d, 0x45, + 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x46, 0x47, 0x5f, 0x4a, + 0x4f, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x47, 0x5f, 0x53, 0x59, 0x53, + 0x54, 0x45, 0x4d, 0x10, 0x11, 0x32, 0xe5, 0x08, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x15, + 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, @@ -1257,9 +3450,39 @@ var file_matchmaking_proto_rawDesc = []byte{ 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x14, 0x5a, 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x32, 0x0a, 0x07, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x12, 0x12, 0x2e, 0x76, + 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, + 0x67, 0x12, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, + 0x65, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, + 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, + 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, 0x67, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, 0x67, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, + 0x0a, 0x09, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x14, 0x5a, + 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1274,50 +3497,109 @@ func file_matchmaking_proto_rawDescGZIP() []byte { return file_matchmaking_proto_rawDescData } -var file_matchmaking_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_matchmaking_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_matchmaking_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_matchmaking_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_matchmaking_proto_goTypes = []interface{}{ - (PVPTeamID)(0), // 0: v1.PVPTeamID - (PlayerQueueStatus)(0), // 1: v1.PlayerQueueStatus - (BattlegroundStatusChangedRequest_Status)(0), // 2: v1.BattlegroundStatusChangedRequest.Status - (*EnqueueToBattlegroundRequest)(nil), // 3: v1.EnqueueToBattlegroundRequest - (*EnqueueToBattlegroundResponse)(nil), // 4: v1.EnqueueToBattlegroundResponse - (*RemovePlayerFromQueueRequest)(nil), // 5: v1.RemovePlayerFromQueueRequest - (*RemovePlayerFromQueueResponse)(nil), // 6: v1.RemovePlayerFromQueueResponse - (*BattlegroundQueueDataForPlayerRequest)(nil), // 7: v1.BattlegroundQueueDataForPlayerRequest - (*BattlegroundQueueDataForPlayerResponse)(nil), // 8: v1.BattlegroundQueueDataForPlayerResponse - (*PlayerLeftBattlegroundRequest)(nil), // 9: v1.PlayerLeftBattlegroundRequest - (*PlayerLeftBattlegroundResponse)(nil), // 10: v1.PlayerLeftBattlegroundResponse - (*PlayerJoinedBattlegroundRequest)(nil), // 11: v1.PlayerJoinedBattlegroundRequest - (*PlayerJoinedBattlegroundResponse)(nil), // 12: v1.PlayerJoinedBattlegroundResponse - (*BattlegroundStatusChangedRequest)(nil), // 13: v1.BattlegroundStatusChangedRequest - (*BattlegroundStatusChangedResponse)(nil), // 14: v1.BattlegroundStatusChangedResponse - (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData)(nil), // 15: v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData - (*BattlegroundQueueDataForPlayerResponse_QueueSlot)(nil), // 16: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot + (PVPTeamID)(0), // 0: v1.PVPTeamID + (PlayerQueueStatus)(0), // 1: v1.PlayerQueueStatus + (MatchmakingArenaTeamMutationStatus)(0), // 2: v1.MatchmakingArenaTeamMutationStatus + (LfgState)(0), // 3: v1.LfgState + (LfgProposalState)(0), // 4: v1.LfgProposalState + (LfgJoinResult)(0), // 5: v1.LfgJoinResult + (BattlegroundStatusChangedRequest_Status)(0), // 6: v1.BattlegroundStatusChangedRequest.Status + (*EnqueueToBattlegroundRequest)(nil), // 7: v1.EnqueueToBattlegroundRequest + (*EnqueueToBattlegroundResponse)(nil), // 8: v1.EnqueueToBattlegroundResponse + (*RemovePlayerFromQueueRequest)(nil), // 9: v1.RemovePlayerFromQueueRequest + (*RemovePlayerFromQueueResponse)(nil), // 10: v1.RemovePlayerFromQueueResponse + (*BattlegroundQueueDataForPlayerRequest)(nil), // 11: v1.BattlegroundQueueDataForPlayerRequest + (*BattlegroundQueueDataForPlayerResponse)(nil), // 12: v1.BattlegroundQueueDataForPlayerResponse + (*PlayerLeftBattlegroundRequest)(nil), // 13: v1.PlayerLeftBattlegroundRequest + (*PlayerLeftBattlegroundResponse)(nil), // 14: v1.PlayerLeftBattlegroundResponse + (*PlayerJoinedBattlegroundRequest)(nil), // 15: v1.PlayerJoinedBattlegroundRequest + (*PlayerJoinedBattlegroundResponse)(nil), // 16: v1.PlayerJoinedBattlegroundResponse + (*BattlegroundStatusChangedRequest)(nil), // 17: v1.BattlegroundStatusChangedRequest + (*BattlegroundStatusChangedResponse)(nil), // 18: v1.BattlegroundStatusChangedResponse + (*RatedArenaParticipant)(nil), // 19: v1.RatedArenaParticipant + (*RatedArenaTeamScore)(nil), // 20: v1.RatedArenaTeamScore + (*RatedArenaMemberResult)(nil), // 21: v1.RatedArenaMemberResult + (*FinishRatedArenaMatchRequest)(nil), // 22: v1.FinishRatedArenaMatchRequest + (*FinishRatedArenaMatchResponse)(nil), // 23: v1.FinishRatedArenaMatchResponse + (*LfgMember)(nil), // 24: v1.LfgMember + (*LfgProposalMember)(nil), // 25: v1.LfgProposalMember + (*LfgStatusData)(nil), // 26: v1.LfgStatusData + (*JoinLfgRequest)(nil), // 27: v1.JoinLfgRequest + (*JoinLfgResponse)(nil), // 28: v1.JoinLfgResponse + (*LeaveLfgRequest)(nil), // 29: v1.LeaveLfgRequest + (*LeaveLfgResponse)(nil), // 30: v1.LeaveLfgResponse + (*SetLfgRolesRequest)(nil), // 31: v1.SetLfgRolesRequest + (*SetLfgRolesResponse)(nil), // 32: v1.SetLfgRolesResponse + (*AnswerLfgProposalRequest)(nil), // 33: v1.AnswerLfgProposalRequest + (*AnswerLfgProposalResponse)(nil), // 34: v1.AnswerLfgProposalResponse + (*LfgStatusRequest)(nil), // 35: v1.LfgStatusRequest + (*LfgStatusResponse)(nil), // 36: v1.LfgStatusResponse + (*CompleteLfgDungeonPlayer)(nil), // 37: v1.CompleteLfgDungeonPlayer + (*CompleteLfgDungeonRequest)(nil), // 38: v1.CompleteLfgDungeonRequest + (*CompleteLfgDungeonResponse)(nil), // 39: v1.CompleteLfgDungeonResponse + (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData)(nil), // 40: v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData + (*BattlegroundQueueDataForPlayerResponse_QueueSlot)(nil), // 41: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot } var file_matchmaking_proto_depIdxs = []int32{ 0, // 0: v1.EnqueueToBattlegroundRequest.teamID:type_name -> v1.PVPTeamID - 16, // 1: v1.BattlegroundQueueDataForPlayerResponse.slots:type_name -> v1.BattlegroundQueueDataForPlayerResponse.QueueSlot - 2, // 2: v1.BattlegroundStatusChangedRequest.status:type_name -> v1.BattlegroundStatusChangedRequest.Status - 1, // 3: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.status:type_name -> v1.PlayerQueueStatus - 15, // 4: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.assignedBattlegroundData:type_name -> v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData - 3, // 5: v1.MatchmakingService.EnqueueToBattleground:input_type -> v1.EnqueueToBattlegroundRequest - 5, // 6: v1.MatchmakingService.RemovePlayerFromQueue:input_type -> v1.RemovePlayerFromQueueRequest - 7, // 7: v1.MatchmakingService.BattlegroundQueueDataForPlayer:input_type -> v1.BattlegroundQueueDataForPlayerRequest - 9, // 8: v1.MatchmakingService.PlayerLeftBattleground:input_type -> v1.PlayerLeftBattlegroundRequest - 11, // 9: v1.MatchmakingService.PlayerJoinedBattleground:input_type -> v1.PlayerJoinedBattlegroundRequest - 13, // 10: v1.MatchmakingService.BattlegroundStatusChanged:input_type -> v1.BattlegroundStatusChangedRequest - 4, // 11: v1.MatchmakingService.EnqueueToBattleground:output_type -> v1.EnqueueToBattlegroundResponse - 6, // 12: v1.MatchmakingService.RemovePlayerFromQueue:output_type -> v1.RemovePlayerFromQueueResponse - 8, // 13: v1.MatchmakingService.BattlegroundQueueDataForPlayer:output_type -> v1.BattlegroundQueueDataForPlayerResponse - 10, // 14: v1.MatchmakingService.PlayerLeftBattleground:output_type -> v1.PlayerLeftBattlegroundResponse - 12, // 15: v1.MatchmakingService.PlayerJoinedBattleground:output_type -> v1.PlayerJoinedBattlegroundResponse - 14, // 16: v1.MatchmakingService.BattlegroundStatusChanged:output_type -> v1.BattlegroundStatusChangedResponse - 11, // [11:17] is the sub-list for method output_type - 5, // [5:11] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 41, // 1: v1.BattlegroundQueueDataForPlayerResponse.slots:type_name -> v1.BattlegroundQueueDataForPlayerResponse.QueueSlot + 6, // 2: v1.BattlegroundStatusChangedRequest.status:type_name -> v1.BattlegroundStatusChangedRequest.Status + 0, // 3: v1.RatedArenaParticipant.team:type_name -> v1.PVPTeamID + 0, // 4: v1.RatedArenaMemberResult.team:type_name -> v1.PVPTeamID + 0, // 5: v1.FinishRatedArenaMatchRequest.winnerTeam:type_name -> v1.PVPTeamID + 19, // 6: v1.FinishRatedArenaMatchRequest.participants:type_name -> v1.RatedArenaParticipant + 2, // 7: v1.FinishRatedArenaMatchResponse.status:type_name -> v1.MatchmakingArenaTeamMutationStatus + 20, // 8: v1.FinishRatedArenaMatchResponse.allianceScore:type_name -> v1.RatedArenaTeamScore + 20, // 9: v1.FinishRatedArenaMatchResponse.hordeScore:type_name -> v1.RatedArenaTeamScore + 21, // 10: v1.FinishRatedArenaMatchResponse.memberResults:type_name -> v1.RatedArenaMemberResult + 3, // 11: v1.LfgStatusData.state:type_name -> v1.LfgState + 4, // 12: v1.LfgStatusData.proposalState:type_name -> v1.LfgProposalState + 24, // 13: v1.LfgStatusData.queuedMembers:type_name -> v1.LfgMember + 25, // 14: v1.LfgStatusData.proposalMembers:type_name -> v1.LfgProposalMember + 24, // 15: v1.JoinLfgRequest.members:type_name -> v1.LfgMember + 5, // 16: v1.JoinLfgResponse.result:type_name -> v1.LfgJoinResult + 26, // 17: v1.JoinLfgResponse.status:type_name -> v1.LfgStatusData + 26, // 18: v1.SetLfgRolesResponse.status:type_name -> v1.LfgStatusData + 26, // 19: v1.AnswerLfgProposalResponse.status:type_name -> v1.LfgStatusData + 26, // 20: v1.LfgStatusResponse.status:type_name -> v1.LfgStatusData + 37, // 21: v1.CompleteLfgDungeonRequest.players:type_name -> v1.CompleteLfgDungeonPlayer + 0, // 22: v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData.assignedTeamID:type_name -> v1.PVPTeamID + 1, // 23: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.status:type_name -> v1.PlayerQueueStatus + 40, // 24: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.assignedBattlegroundData:type_name -> v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData + 7, // 25: v1.MatchmakingService.EnqueueToBattleground:input_type -> v1.EnqueueToBattlegroundRequest + 9, // 26: v1.MatchmakingService.RemovePlayerFromQueue:input_type -> v1.RemovePlayerFromQueueRequest + 11, // 27: v1.MatchmakingService.BattlegroundQueueDataForPlayer:input_type -> v1.BattlegroundQueueDataForPlayerRequest + 13, // 28: v1.MatchmakingService.PlayerLeftBattleground:input_type -> v1.PlayerLeftBattlegroundRequest + 15, // 29: v1.MatchmakingService.PlayerJoinedBattleground:input_type -> v1.PlayerJoinedBattlegroundRequest + 17, // 30: v1.MatchmakingService.BattlegroundStatusChanged:input_type -> v1.BattlegroundStatusChangedRequest + 22, // 31: v1.MatchmakingService.FinishRatedArenaMatch:input_type -> v1.FinishRatedArenaMatchRequest + 27, // 32: v1.MatchmakingService.JoinLfg:input_type -> v1.JoinLfgRequest + 29, // 33: v1.MatchmakingService.LeaveLfg:input_type -> v1.LeaveLfgRequest + 31, // 34: v1.MatchmakingService.SetLfgRoles:input_type -> v1.SetLfgRolesRequest + 33, // 35: v1.MatchmakingService.AnswerLfgProposal:input_type -> v1.AnswerLfgProposalRequest + 35, // 36: v1.MatchmakingService.LfgStatus:input_type -> v1.LfgStatusRequest + 38, // 37: v1.MatchmakingService.CompleteLfgDungeon:input_type -> v1.CompleteLfgDungeonRequest + 8, // 38: v1.MatchmakingService.EnqueueToBattleground:output_type -> v1.EnqueueToBattlegroundResponse + 10, // 39: v1.MatchmakingService.RemovePlayerFromQueue:output_type -> v1.RemovePlayerFromQueueResponse + 12, // 40: v1.MatchmakingService.BattlegroundQueueDataForPlayer:output_type -> v1.BattlegroundQueueDataForPlayerResponse + 14, // 41: v1.MatchmakingService.PlayerLeftBattleground:output_type -> v1.PlayerLeftBattlegroundResponse + 16, // 42: v1.MatchmakingService.PlayerJoinedBattleground:output_type -> v1.PlayerJoinedBattlegroundResponse + 18, // 43: v1.MatchmakingService.BattlegroundStatusChanged:output_type -> v1.BattlegroundStatusChangedResponse + 23, // 44: v1.MatchmakingService.FinishRatedArenaMatch:output_type -> v1.FinishRatedArenaMatchResponse + 28, // 45: v1.MatchmakingService.JoinLfg:output_type -> v1.JoinLfgResponse + 30, // 46: v1.MatchmakingService.LeaveLfg:output_type -> v1.LeaveLfgResponse + 32, // 47: v1.MatchmakingService.SetLfgRoles:output_type -> v1.SetLfgRolesResponse + 34, // 48: v1.MatchmakingService.AnswerLfgProposal:output_type -> v1.AnswerLfgProposalResponse + 36, // 49: v1.MatchmakingService.LfgStatus:output_type -> v1.LfgStatusResponse + 39, // 50: v1.MatchmakingService.CompleteLfgDungeon:output_type -> v1.CompleteLfgDungeonResponse + 38, // [38:51] is the sub-list for method output_type + 25, // [25:38] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_matchmaking_proto_init() } @@ -1471,7 +3753,7 @@ func file_matchmaking_proto_init() { } } file_matchmaking_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData); i { + switch v := v.(*RatedArenaParticipant); i { case 0: return &v.state case 1: @@ -1483,6 +3765,258 @@ func file_matchmaking_proto_init() { } } file_matchmaking_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RatedArenaTeamScore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RatedArenaMemberResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishRatedArenaMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishRatedArenaMatchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgProposalMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgStatusData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinLfgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinLfgResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveLfgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveLfgResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgRolesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgRolesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerLfgProposalRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerLfgProposalResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompleteLfgDungeonPlayer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompleteLfgDungeonRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompleteLfgDungeonResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BattlegroundQueueDataForPlayerResponse_QueueSlot); i { case 0: return &v.state @@ -1495,14 +4029,14 @@ func file_matchmaking_proto_init() { } } } - file_matchmaking_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_matchmaking_proto_msgTypes[34].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_matchmaking_proto_rawDesc, - NumEnums: 3, - NumMessages: 14, + NumEnums: 7, + NumMessages: 35, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/matchmaking/pb/matchmaking_grpc.pb.go b/gen/matchmaking/pb/matchmaking_grpc.pb.go index 3d3bac4..e0cf9bc 100644 --- a/gen/matchmaking/pb/matchmaking_grpc.pb.go +++ b/gen/matchmaking/pb/matchmaking_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: matchmaking.proto package pb @@ -25,6 +25,13 @@ const ( MatchmakingService_PlayerLeftBattleground_FullMethodName = "/v1.MatchmakingService/PlayerLeftBattleground" MatchmakingService_PlayerJoinedBattleground_FullMethodName = "/v1.MatchmakingService/PlayerJoinedBattleground" MatchmakingService_BattlegroundStatusChanged_FullMethodName = "/v1.MatchmakingService/BattlegroundStatusChanged" + MatchmakingService_FinishRatedArenaMatch_FullMethodName = "/v1.MatchmakingService/FinishRatedArenaMatch" + MatchmakingService_JoinLfg_FullMethodName = "/v1.MatchmakingService/JoinLfg" + MatchmakingService_LeaveLfg_FullMethodName = "/v1.MatchmakingService/LeaveLfg" + MatchmakingService_SetLfgRoles_FullMethodName = "/v1.MatchmakingService/SetLfgRoles" + MatchmakingService_AnswerLfgProposal_FullMethodName = "/v1.MatchmakingService/AnswerLfgProposal" + MatchmakingService_LfgStatus_FullMethodName = "/v1.MatchmakingService/LfgStatus" + MatchmakingService_CompleteLfgDungeon_FullMethodName = "/v1.MatchmakingService/CompleteLfgDungeon" ) // MatchmakingServiceClient is the client API for MatchmakingService service. @@ -37,6 +44,13 @@ type MatchmakingServiceClient interface { PlayerLeftBattleground(ctx context.Context, in *PlayerLeftBattlegroundRequest, opts ...grpc.CallOption) (*PlayerLeftBattlegroundResponse, error) PlayerJoinedBattleground(ctx context.Context, in *PlayerJoinedBattlegroundRequest, opts ...grpc.CallOption) (*PlayerJoinedBattlegroundResponse, error) BattlegroundStatusChanged(ctx context.Context, in *BattlegroundStatusChangedRequest, opts ...grpc.CallOption) (*BattlegroundStatusChangedResponse, error) + FinishRatedArenaMatch(ctx context.Context, in *FinishRatedArenaMatchRequest, opts ...grpc.CallOption) (*FinishRatedArenaMatchResponse, error) + JoinLfg(ctx context.Context, in *JoinLfgRequest, opts ...grpc.CallOption) (*JoinLfgResponse, error) + LeaveLfg(ctx context.Context, in *LeaveLfgRequest, opts ...grpc.CallOption) (*LeaveLfgResponse, error) + SetLfgRoles(ctx context.Context, in *SetLfgRolesRequest, opts ...grpc.CallOption) (*SetLfgRolesResponse, error) + AnswerLfgProposal(ctx context.Context, in *AnswerLfgProposalRequest, opts ...grpc.CallOption) (*AnswerLfgProposalResponse, error) + LfgStatus(ctx context.Context, in *LfgStatusRequest, opts ...grpc.CallOption) (*LfgStatusResponse, error) + CompleteLfgDungeon(ctx context.Context, in *CompleteLfgDungeonRequest, opts ...grpc.CallOption) (*CompleteLfgDungeonResponse, error) } type matchmakingServiceClient struct { @@ -101,6 +115,69 @@ func (c *matchmakingServiceClient) BattlegroundStatusChanged(ctx context.Context return out, nil } +func (c *matchmakingServiceClient) FinishRatedArenaMatch(ctx context.Context, in *FinishRatedArenaMatchRequest, opts ...grpc.CallOption) (*FinishRatedArenaMatchResponse, error) { + out := new(FinishRatedArenaMatchResponse) + err := c.cc.Invoke(ctx, MatchmakingService_FinishRatedArenaMatch_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) JoinLfg(ctx context.Context, in *JoinLfgRequest, opts ...grpc.CallOption) (*JoinLfgResponse, error) { + out := new(JoinLfgResponse) + err := c.cc.Invoke(ctx, MatchmakingService_JoinLfg_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) LeaveLfg(ctx context.Context, in *LeaveLfgRequest, opts ...grpc.CallOption) (*LeaveLfgResponse, error) { + out := new(LeaveLfgResponse) + err := c.cc.Invoke(ctx, MatchmakingService_LeaveLfg_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) SetLfgRoles(ctx context.Context, in *SetLfgRolesRequest, opts ...grpc.CallOption) (*SetLfgRolesResponse, error) { + out := new(SetLfgRolesResponse) + err := c.cc.Invoke(ctx, MatchmakingService_SetLfgRoles_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) AnswerLfgProposal(ctx context.Context, in *AnswerLfgProposalRequest, opts ...grpc.CallOption) (*AnswerLfgProposalResponse, error) { + out := new(AnswerLfgProposalResponse) + err := c.cc.Invoke(ctx, MatchmakingService_AnswerLfgProposal_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) LfgStatus(ctx context.Context, in *LfgStatusRequest, opts ...grpc.CallOption) (*LfgStatusResponse, error) { + out := new(LfgStatusResponse) + err := c.cc.Invoke(ctx, MatchmakingService_LfgStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) CompleteLfgDungeon(ctx context.Context, in *CompleteLfgDungeonRequest, opts ...grpc.CallOption) (*CompleteLfgDungeonResponse, error) { + out := new(CompleteLfgDungeonResponse) + err := c.cc.Invoke(ctx, MatchmakingService_CompleteLfgDungeon_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MatchmakingServiceServer is the server API for MatchmakingService service. // All implementations must embed UnimplementedMatchmakingServiceServer // for forward compatibility @@ -111,6 +188,13 @@ type MatchmakingServiceServer interface { PlayerLeftBattleground(context.Context, *PlayerLeftBattlegroundRequest) (*PlayerLeftBattlegroundResponse, error) PlayerJoinedBattleground(context.Context, *PlayerJoinedBattlegroundRequest) (*PlayerJoinedBattlegroundResponse, error) BattlegroundStatusChanged(context.Context, *BattlegroundStatusChangedRequest) (*BattlegroundStatusChangedResponse, error) + FinishRatedArenaMatch(context.Context, *FinishRatedArenaMatchRequest) (*FinishRatedArenaMatchResponse, error) + JoinLfg(context.Context, *JoinLfgRequest) (*JoinLfgResponse, error) + LeaveLfg(context.Context, *LeaveLfgRequest) (*LeaveLfgResponse, error) + SetLfgRoles(context.Context, *SetLfgRolesRequest) (*SetLfgRolesResponse, error) + AnswerLfgProposal(context.Context, *AnswerLfgProposalRequest) (*AnswerLfgProposalResponse, error) + LfgStatus(context.Context, *LfgStatusRequest) (*LfgStatusResponse, error) + CompleteLfgDungeon(context.Context, *CompleteLfgDungeonRequest) (*CompleteLfgDungeonResponse, error) mustEmbedUnimplementedMatchmakingServiceServer() } @@ -136,6 +220,27 @@ func (UnimplementedMatchmakingServiceServer) PlayerJoinedBattleground(context.Co func (UnimplementedMatchmakingServiceServer) BattlegroundStatusChanged(context.Context, *BattlegroundStatusChangedRequest) (*BattlegroundStatusChangedResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BattlegroundStatusChanged not implemented") } +func (UnimplementedMatchmakingServiceServer) FinishRatedArenaMatch(context.Context, *FinishRatedArenaMatchRequest) (*FinishRatedArenaMatchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FinishRatedArenaMatch not implemented") +} +func (UnimplementedMatchmakingServiceServer) JoinLfg(context.Context, *JoinLfgRequest) (*JoinLfgResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method JoinLfg not implemented") +} +func (UnimplementedMatchmakingServiceServer) LeaveLfg(context.Context, *LeaveLfgRequest) (*LeaveLfgResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LeaveLfg not implemented") +} +func (UnimplementedMatchmakingServiceServer) SetLfgRoles(context.Context, *SetLfgRolesRequest) (*SetLfgRolesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetLfgRoles not implemented") +} +func (UnimplementedMatchmakingServiceServer) AnswerLfgProposal(context.Context, *AnswerLfgProposalRequest) (*AnswerLfgProposalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AnswerLfgProposal not implemented") +} +func (UnimplementedMatchmakingServiceServer) LfgStatus(context.Context, *LfgStatusRequest) (*LfgStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LfgStatus not implemented") +} +func (UnimplementedMatchmakingServiceServer) CompleteLfgDungeon(context.Context, *CompleteLfgDungeonRequest) (*CompleteLfgDungeonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CompleteLfgDungeon not implemented") +} func (UnimplementedMatchmakingServiceServer) mustEmbedUnimplementedMatchmakingServiceServer() {} // UnsafeMatchmakingServiceServer may be embedded to opt out of forward compatibility for this service. @@ -257,6 +362,132 @@ func _MatchmakingService_BattlegroundStatusChanged_Handler(srv interface{}, ctx return interceptor(ctx, in, info, handler) } +func _MatchmakingService_FinishRatedArenaMatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FinishRatedArenaMatchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).FinishRatedArenaMatch(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_FinishRatedArenaMatch_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).FinishRatedArenaMatch(ctx, req.(*FinishRatedArenaMatchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_JoinLfg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(JoinLfgRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).JoinLfg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_JoinLfg_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).JoinLfg(ctx, req.(*JoinLfgRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_LeaveLfg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LeaveLfgRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).LeaveLfg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_LeaveLfg_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).LeaveLfg(ctx, req.(*LeaveLfgRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_SetLfgRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetLfgRolesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).SetLfgRoles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_SetLfgRoles_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).SetLfgRoles(ctx, req.(*SetLfgRolesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_AnswerLfgProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AnswerLfgProposalRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).AnswerLfgProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_AnswerLfgProposal_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).AnswerLfgProposal(ctx, req.(*AnswerLfgProposalRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_LfgStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LfgStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).LfgStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_LfgStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).LfgStatus(ctx, req.(*LfgStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_CompleteLfgDungeon_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CompleteLfgDungeonRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).CompleteLfgDungeon(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_CompleteLfgDungeon_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).CompleteLfgDungeon(ctx, req.(*CompleteLfgDungeonRequest)) + } + return interceptor(ctx, in, info, handler) +} + // MatchmakingService_ServiceDesc is the grpc.ServiceDesc for MatchmakingService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -288,6 +519,34 @@ var MatchmakingService_ServiceDesc = grpc.ServiceDesc{ MethodName: "BattlegroundStatusChanged", Handler: _MatchmakingService_BattlegroundStatusChanged_Handler, }, + { + MethodName: "FinishRatedArenaMatch", + Handler: _MatchmakingService_FinishRatedArenaMatch_Handler, + }, + { + MethodName: "JoinLfg", + Handler: _MatchmakingService_JoinLfg_Handler, + }, + { + MethodName: "LeaveLfg", + Handler: _MatchmakingService_LeaveLfg_Handler, + }, + { + MethodName: "SetLfgRoles", + Handler: _MatchmakingService_SetLfgRoles_Handler, + }, + { + MethodName: "AnswerLfgProposal", + Handler: _MatchmakingService_AnswerLfgProposal_Handler, + }, + { + MethodName: "LfgStatus", + Handler: _MatchmakingService_LfgStatus_Handler, + }, + { + MethodName: "CompleteLfgDungeon", + Handler: _MatchmakingService_CompleteLfgDungeon_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "matchmaking.proto", diff --git a/gen/servers-registry/pb/registry.pb.go b/gen/servers-registry/pb/registry.pb.go index 4f5f8d3..5cbdb38 100644 --- a/gen/servers-registry/pb/registry.pb.go +++ b/gen/servers-registry/pb/registry.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc-gen-go v1.36.11 +// protoc v3.21.12 // source: registry.proto package pb @@ -11,6 +11,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -22,27 +23,24 @@ const ( // RegisterGameServer type RegisterGameServerRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` - HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` - GrpcPort uint32 `protobuf:"varint,4,opt,name=grpcPort,proto3" json:"grpcPort,omitempty"` - RealmID uint32 `protobuf:"varint,5,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,6,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // If true realm id should be 0 - AvailableMaps string `protobuf:"bytes,7,opt,name=availableMaps,proto3" json:"availableMaps,omitempty"` - PreferredHostName string `protobuf:"bytes,8,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` + HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` + GrpcPort uint32 `protobuf:"varint,4,opt,name=grpcPort,proto3" json:"grpcPort,omitempty"` + RealmID uint32 `protobuf:"varint,5,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,6,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // If true realm id should be 0 + AvailableMaps string `protobuf:"bytes,7,opt,name=availableMaps,proto3" json:"availableMaps,omitempty"` + PreferredHostName string `protobuf:"bytes,8,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RegisterGameServerRequest) Reset() { *x = RegisterGameServerRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGameServerRequest) String() string { @@ -53,7 +51,7 @@ func (*RegisterGameServerRequest) ProtoMessage() {} func (x *RegisterGameServerRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -125,22 +123,19 @@ func (x *RegisterGameServerRequest) GetPreferredHostName() string { } type RegisterGameServerResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + AssignedMaps []uint32 `protobuf:"varint,3,rep,packed,name=assignedMaps,proto3" json:"assignedMaps,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - AssignedMaps []uint32 `protobuf:"varint,3,rep,packed,name=assignedMaps,proto3" json:"assignedMaps,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RegisterGameServerResponse) Reset() { *x = RegisterGameServerResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGameServerResponse) String() string { @@ -151,7 +146,7 @@ func (*RegisterGameServerResponse) ProtoMessage() {} func (x *RegisterGameServerResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -189,23 +184,20 @@ func (x *RegisterGameServerResponse) GetAssignedMaps() []uint32 { // AvailableGameServersForMapAndRealm type AvailableGameServersForMapAndRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MapID uint32 `protobuf:"varint,3,opt,name=mapID,proto3" json:"mapID,omitempty"` + IsCrossRealm bool `protobuf:"varint,4,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - MapID uint32 `protobuf:"varint,3,opt,name=mapID,proto3" json:"mapID,omitempty"` - IsCrossRealm bool `protobuf:"varint,4,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id + sizeCache protoimpl.SizeCache } func (x *AvailableGameServersForMapAndRealmRequest) Reset() { *x = AvailableGameServersForMapAndRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AvailableGameServersForMapAndRealmRequest) String() string { @@ -216,7 +208,7 @@ func (*AvailableGameServersForMapAndRealmRequest) ProtoMessage() {} func (x *AvailableGameServersForMapAndRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -260,21 +252,18 @@ func (x *AvailableGameServersForMapAndRealmRequest) GetIsCrossRealm() bool { } type AvailableGameServersForMapAndRealmResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServers []*Server `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServers []*Server `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AvailableGameServersForMapAndRealmResponse) Reset() { *x = AvailableGameServersForMapAndRealmResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AvailableGameServersForMapAndRealmResponse) String() string { @@ -285,7 +274,7 @@ func (*AvailableGameServersForMapAndRealmResponse) ProtoMessage() {} func (x *AvailableGameServersForMapAndRealmResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -316,21 +305,18 @@ func (x *AvailableGameServersForMapAndRealmResponse) GetGameServers() []*Server // RandomGameServerForRealm type RandomGameServerForRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RandomGameServerForRealmRequest) Reset() { *x = RandomGameServerForRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RandomGameServerForRealmRequest) String() string { @@ -341,7 +327,7 @@ func (*RandomGameServerForRealmRequest) ProtoMessage() {} func (x *RandomGameServerForRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -371,21 +357,18 @@ func (x *RandomGameServerForRealmRequest) GetRealmID() uint32 { } type RandomGameServerForRealmResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServer *Server `protobuf:"bytes,2,opt,name=gameServer,proto3" json:"gameServer,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServer *Server `protobuf:"bytes,2,opt,name=gameServer,proto3" json:"gameServer,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RandomGameServerForRealmResponse) Reset() { *x = RandomGameServerForRealmResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RandomGameServerForRealmResponse) String() string { @@ -396,7 +379,7 @@ func (*RandomGameServerForRealmResponse) ProtoMessage() {} func (x *RandomGameServerForRealmResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -427,22 +410,19 @@ func (x *RandomGameServerForRealmResponse) GetGameServer() *Server { // ListGameServersForRealm type ListGameServersForRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id + sizeCache protoimpl.SizeCache } func (x *ListGameServersForRealmRequest) Reset() { *x = ListGameServersForRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGameServersForRealmRequest) String() string { @@ -453,7 +433,7 @@ func (*ListGameServersForRealmRequest) ProtoMessage() {} func (x *ListGameServersForRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -490,10 +470,7 @@ func (x *ListGameServersForRealmRequest) GetIsCrossRealm() bool { } type GameServerDetailed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` HealthAddress string `protobuf:"bytes,3,opt,name=healthAddress,proto3" json:"healthAddress,omitempty"` @@ -504,15 +481,15 @@ type GameServerDetailed struct { Diff *GameServerDetailed_Diff `protobuf:"bytes,8,opt,name=diff,proto3" json:"diff,omitempty"` AvailableMaps []uint32 `protobuf:"varint,9,rep,packed,name=availableMaps,proto3" json:"availableMaps,omitempty"` AssignedMaps []uint32 `protobuf:"varint,10,rep,packed,name=assignedMaps,proto3" json:"assignedMaps,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GameServerDetailed) Reset() { *x = GameServerDetailed{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerDetailed) String() string { @@ -523,7 +500,7 @@ func (*GameServerDetailed) ProtoMessage() {} func (x *GameServerDetailed) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -609,21 +586,18 @@ func (x *GameServerDetailed) GetAssignedMaps() []uint32 { } type ListGameServersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServers []*GameServerDetailed `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServers []*GameServerDetailed `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListGameServersResponse) Reset() { *x = ListGameServersResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGameServersResponse) String() string { @@ -634,7 +608,7 @@ func (*ListGameServersResponse) ProtoMessage() {} func (x *ListGameServersResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -665,20 +639,17 @@ func (x *ListGameServersResponse) GetGameServers() []*GameServerDetailed { // ListAllGameServers type ListAllGameServersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAllGameServersRequest) Reset() { *x = ListAllGameServersRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListAllGameServersRequest) String() string { @@ -689,7 +660,7 @@ func (*ListAllGameServersRequest) ProtoMessage() {} func (x *ListAllGameServersRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -713,22 +684,19 @@ func (x *ListAllGameServersRequest) GetApi() string { // GameServerMapsLoaded type GameServerMapsLoadedRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServerID string `protobuf:"bytes,2,opt,name=gameServerID,proto3" json:"gameServerID,omitempty"` + MapsLoaded []uint32 `protobuf:"varint,3,rep,packed,name=mapsLoaded,proto3" json:"mapsLoaded,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServerID string `protobuf:"bytes,2,opt,name=gameServerID,proto3" json:"gameServerID,omitempty"` - MapsLoaded []uint32 `protobuf:"varint,3,rep,packed,name=mapsLoaded,proto3" json:"mapsLoaded,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GameServerMapsLoadedRequest) Reset() { *x = GameServerMapsLoadedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerMapsLoadedRequest) String() string { @@ -739,7 +707,7 @@ func (*GameServerMapsLoadedRequest) ProtoMessage() {} func (x *GameServerMapsLoadedRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -776,20 +744,17 @@ func (x *GameServerMapsLoadedRequest) GetMapsLoaded() []uint32 { } type GameServerMapsLoadedResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GameServerMapsLoadedResponse) Reset() { *x = GameServerMapsLoadedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerMapsLoadedResponse) String() string { @@ -800,7 +765,7 @@ func (*GameServerMapsLoadedResponse) ProtoMessage() {} func (x *GameServerMapsLoadedResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -824,25 +789,22 @@ func (x *GameServerMapsLoadedResponse) GetApi() string { // RegisterGateway type RegisterGatewayRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` - HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` - RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,5,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id - PreferredHostName string `protobuf:"bytes,6,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` + HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` + RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,5,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id + PreferredHostName string `protobuf:"bytes,6,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RegisterGatewayRequest) Reset() { *x = RegisterGatewayRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGatewayRequest) String() string { @@ -853,7 +815,7 @@ func (*RegisterGatewayRequest) ProtoMessage() {} func (x *RegisterGatewayRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -911,21 +873,18 @@ func (x *RegisterGatewayRequest) GetPreferredHostName() string { } type RegisterGatewayResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RegisterGatewayResponse) Reset() { *x = RegisterGatewayResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGatewayResponse) String() string { @@ -936,7 +895,7 @@ func (*RegisterGatewayResponse) ProtoMessage() {} func (x *RegisterGatewayResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -967,21 +926,18 @@ func (x *RegisterGatewayResponse) GetId() string { // GatewaysForRealms type GatewaysForRealmsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmIDs []uint32 `protobuf:"varint,2,rep,packed,name=realmIDs,proto3" json:"realmIDs,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmIDs []uint32 `protobuf:"varint,2,rep,packed,name=realmIDs,proto3" json:"realmIDs,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GatewaysForRealmsRequest) Reset() { *x = GatewaysForRealmsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GatewaysForRealmsRequest) String() string { @@ -992,7 +948,7 @@ func (*GatewaysForRealmsRequest) ProtoMessage() {} func (x *GatewaysForRealmsRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1022,21 +978,18 @@ func (x *GatewaysForRealmsRequest) GetRealmIDs() []uint32 { } type GatewaysForRealmsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Gateways []*Server `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Gateways []*Server `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GatewaysForRealmsResponse) Reset() { *x = GatewaysForRealmsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GatewaysForRealmsResponse) String() string { @@ -1047,7 +1000,7 @@ func (*GatewaysForRealmsResponse) ProtoMessage() {} func (x *GatewaysForRealmsResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1078,21 +1031,18 @@ func (x *GatewaysForRealmsResponse) GetGateways() []*Server { // ListGatewaysForRealm type ListGatewaysForRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListGatewaysForRealmRequest) Reset() { *x = ListGatewaysForRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGatewaysForRealmRequest) String() string { @@ -1103,7 +1053,7 @@ func (*ListGatewaysForRealmRequest) ProtoMessage() {} func (x *ListGatewaysForRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1133,24 +1083,21 @@ func (x *ListGatewaysForRealmRequest) GetRealmID() uint32 { } type GatewayServerDetailed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` - HealthAddress string `protobuf:"bytes,3,opt,name=healthAddress,proto3" json:"healthAddress,omitempty"` - RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` - ActiveConnections uint32 `protobuf:"varint,5,opt,name=activeConnections,proto3" json:"activeConnections,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + HealthAddress string `protobuf:"bytes,3,opt,name=healthAddress,proto3" json:"healthAddress,omitempty"` + RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` + ActiveConnections uint32 `protobuf:"varint,5,opt,name=activeConnections,proto3" json:"activeConnections,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GatewayServerDetailed) Reset() { *x = GatewayServerDetailed{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GatewayServerDetailed) String() string { @@ -1161,7 +1108,7 @@ func (*GatewayServerDetailed) ProtoMessage() {} func (x *GatewayServerDetailed) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1212,21 +1159,18 @@ func (x *GatewayServerDetailed) GetActiveConnections() uint32 { } type ListGatewaysForRealmResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Gateways []*GatewayServerDetailed `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Gateways []*GatewayServerDetailed `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListGatewaysForRealmResponse) Reset() { *x = ListGatewaysForRealmResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGatewaysForRealmResponse) String() string { @@ -1237,7 +1181,7 @@ func (*ListGatewaysForRealmResponse) ProtoMessage() {} func (x *ListGatewaysForRealmResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1266,25 +1210,152 @@ func (x *ListGatewaysForRealmResponse) GetGateways() []*GatewayServerDetailed { return nil } +// RegisterMatchmakingServer +type RegisterMatchmakingServerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + ServicePort uint32 `protobuf:"varint,2,opt,name=servicePort,proto3" json:"servicePort,omitempty"` + HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` + PreferredHostName string `protobuf:"bytes,4,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + StartedAtUnixMs int64 `protobuf:"varint,5,opt,name=startedAtUnixMs,proto3" json:"startedAtUnixMs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterMatchmakingServerRequest) Reset() { + *x = RegisterMatchmakingServerRequest{} + mi := &file_registry_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterMatchmakingServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMatchmakingServerRequest) ProtoMessage() {} + +func (x *RegisterMatchmakingServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_registry_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterMatchmakingServerRequest.ProtoReflect.Descriptor instead. +func (*RegisterMatchmakingServerRequest) Descriptor() ([]byte, []int) { + return file_registry_proto_rawDescGZIP(), []int{19} +} + +func (x *RegisterMatchmakingServerRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterMatchmakingServerRequest) GetServicePort() uint32 { + if x != nil { + return x.ServicePort + } + return 0 +} + +func (x *RegisterMatchmakingServerRequest) GetHealthPort() uint32 { + if x != nil { + return x.HealthPort + } + return 0 +} + +func (x *RegisterMatchmakingServerRequest) GetPreferredHostName() string { + if x != nil { + return x.PreferredHostName + } + return "" +} + +func (x *RegisterMatchmakingServerRequest) GetStartedAtUnixMs() int64 { + if x != nil { + return x.StartedAtUnixMs + } + return 0 +} + +type RegisterMatchmakingServerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterMatchmakingServerResponse) Reset() { + *x = RegisterMatchmakingServerResponse{} + mi := &file_registry_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterMatchmakingServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMatchmakingServerResponse) ProtoMessage() {} + +func (x *RegisterMatchmakingServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_registry_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RegisterMatchmakingServerResponse.ProtoReflect.Descriptor instead. +func (*RegisterMatchmakingServerResponse) Descriptor() ([]byte, []int) { + return file_registry_proto_rawDescGZIP(), []int{20} +} + +func (x *RegisterMatchmakingServerResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterMatchmakingServerResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + // Shared type Server struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` + GrpcAddress string `protobuf:"bytes,4,opt,name=grpcAddress,proto3" json:"grpcAddress,omitempty"` + Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` - GrpcAddress string `protobuf:"bytes,4,opt,name=grpcAddress,proto3" json:"grpcAddress,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Server) Reset() { *x = Server{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Server) String() string { @@ -1294,8 +1365,8 @@ func (x *Server) String() string { func (*Server) ProtoMessage() {} func (x *Server) ProtoReflect() protoreflect.Message { - mi := &file_registry_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_registry_proto_msgTypes[21] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1307,7 +1378,7 @@ func (x *Server) ProtoReflect() protoreflect.Message { // Deprecated: Use Server.ProtoReflect.Descriptor instead. func (*Server) Descriptor() ([]byte, []int) { - return file_registry_proto_rawDescGZIP(), []int{19} + return file_registry_proto_rawDescGZIP(), []int{21} } func (x *Server) GetAddress() string { @@ -1338,25 +1409,29 @@ func (x *Server) GetGrpcAddress() string { return "" } +func (x *Server) GetId() string { + if x != nil { + return x.Id + } + return "" +} + type GameServerDetailed_Diff struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Mean uint32 `protobuf:"varint,1,opt,name=mean,proto3" json:"mean,omitempty"` + Median uint32 `protobuf:"varint,2,opt,name=median,proto3" json:"median,omitempty"` + Percentile95 uint32 `protobuf:"varint,3,opt,name=percentile95,proto3" json:"percentile95,omitempty"` + Percentile99 uint32 `protobuf:"varint,4,opt,name=percentile99,proto3" json:"percentile99,omitempty"` + Max uint32 `protobuf:"varint,5,opt,name=max,proto3" json:"max,omitempty"` unknownFields protoimpl.UnknownFields - - Mean uint32 `protobuf:"varint,1,opt,name=mean,proto3" json:"mean,omitempty"` - Median uint32 `protobuf:"varint,2,opt,name=median,proto3" json:"median,omitempty"` - Percentile95 uint32 `protobuf:"varint,3,opt,name=percentile95,proto3" json:"percentile95,omitempty"` - Percentile99 uint32 `protobuf:"varint,4,opt,name=percentile99,proto3" json:"percentile99,omitempty"` - Max uint32 `protobuf:"varint,5,opt,name=max,proto3" json:"max,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GameServerDetailed_Diff) Reset() { *x = GameServerDetailed_Diff{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerDetailed_Diff) String() string { @@ -1366,8 +1441,8 @@ func (x *GameServerDetailed_Diff) String() string { func (*GameServerDetailed_Diff) ProtoMessage() {} func (x *GameServerDetailed_Diff) ProtoReflect() protoreflect.Message { - mi := &file_registry_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_registry_proto_msgTypes[22] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1419,249 +1494,151 @@ func (x *GameServerDetailed_Diff) GetMax() uint32 { var File_registry_proto protoreflect.FileDescriptor -var file_registry_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x02, 0x76, 0x31, 0x22, 0x97, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x67, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, - 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, - 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x6f, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x62, - 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, - 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x70, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x61, - 0x70, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x29, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, - 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, - 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, - 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, - 0x6c, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, - 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x6c, 0x0a, 0x2a, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, - 0x72, 0x4d, 0x61, 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x2c, 0x0a, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x22, 0x4d, 0x0a, 0x1f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x22, 0x60, 0x0a, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x2a, 0x0a, 0x0a, 0x67, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, - 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, - 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0xfc, 0x03, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x2c, - 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x04, - 0x64, 0x69, 0x66, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x12, 0x24, 0x0a, - 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, - 0x61, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, - 0x61, 0x70, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x70, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, - 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x6d, 0x65, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x12, 0x22, 0x0a, 0x0c, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x35, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x35, - 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x39, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, - 0x6c, 0x65, 0x39, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0x65, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x38, 0x0a, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x52, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x2d, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x73, 0x0a, 0x1b, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x22, 0x0a, - 0x0c, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x22, 0xd2, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, - 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, - 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x0a, 0x17, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x18, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x73, 0x22, - 0x55, 0x0a, 0x19, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, - 0x61, 0x6c, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x26, - 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x08, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x22, 0x49, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x22, 0xaf, 0x01, 0x0a, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x67, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x35, 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x52, 0x08, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x22, 0x82, 0x01, 0x0a, - 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, - 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, - 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x32, 0xdc, 0x06, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x83, 0x01, 0x0a, 0x22, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x47, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, 0x70, - 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x52, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, - 0x61, 0x6c, 0x6d, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, - 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, - 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x12, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, - 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1f, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, - 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, - 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x19, 0x5a, 0x17, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2d, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} +const file_registry_proto_rawDesc = "" + + "\n" + + "\x0eregistry.proto\x12\x02v1\"\x97\x02\n" + + "\x19RegisterGameServerRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x1a\n" + + "\bgamePort\x18\x02 \x01(\rR\bgamePort\x12\x1e\n" + + "\n" + + "healthPort\x18\x03 \x01(\rR\n" + + "healthPort\x12\x1a\n" + + "\bgrpcPort\x18\x04 \x01(\rR\bgrpcPort\x12\x18\n" + + "\arealmID\x18\x05 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x06 \x01(\bR\fisCrossRealm\x12$\n" + + "\ravailableMaps\x18\a \x01(\tR\ravailableMaps\x12,\n" + + "\x11preferredHostName\x18\b \x01(\tR\x11preferredHostName\"b\n" + + "\x1aRegisterGameServerResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\"\n" + + "\fassignedMaps\x18\x03 \x03(\rR\fassignedMaps\"\x91\x01\n" + + ")AvailableGameServersForMapAndRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\x12\x14\n" + + "\x05mapID\x18\x03 \x01(\rR\x05mapID\x12\"\n" + + "\fisCrossRealm\x18\x04 \x01(\bR\fisCrossRealm\"l\n" + + "*AvailableGameServersForMapAndRealmResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12,\n" + + "\vgameServers\x18\x02 \x03(\v2\n" + + ".v1.ServerR\vgameServers\"M\n" + + "\x1fRandomGameServerForRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\"`\n" + + " RandomGameServerForRealmResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12*\n" + + "\n" + + "gameServer\x18\x02 \x01(\v2\n" + + ".v1.ServerR\n" + + "gameServer\"p\n" + + "\x1eListGameServersForRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x03 \x01(\bR\fisCrossRealm\"\xfc\x03\n" + + "\x12GameServerDetailed\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x18\n" + + "\aaddress\x18\x02 \x01(\tR\aaddress\x12$\n" + + "\rhealthAddress\x18\x03 \x01(\tR\rhealthAddress\x12 \n" + + "\vgrpcAddress\x18\x04 \x01(\tR\vgrpcAddress\x12\x18\n" + + "\arealmID\x18\x05 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x06 \x01(\bR\fisCrossRealm\x12,\n" + + "\x11activeConnections\x18\a \x01(\rR\x11activeConnections\x12/\n" + + "\x04diff\x18\b \x01(\v2\x1b.v1.GameServerDetailed.DiffR\x04diff\x12$\n" + + "\ravailableMaps\x18\t \x03(\rR\ravailableMaps\x12\"\n" + + "\fassignedMaps\x18\n" + + " \x03(\rR\fassignedMaps\x1a\x8c\x01\n" + + "\x04Diff\x12\x12\n" + + "\x04mean\x18\x01 \x01(\rR\x04mean\x12\x16\n" + + "\x06median\x18\x02 \x01(\rR\x06median\x12\"\n" + + "\fpercentile95\x18\x03 \x01(\rR\fpercentile95\x12\"\n" + + "\fpercentile99\x18\x04 \x01(\rR\fpercentile99\x12\x10\n" + + "\x03max\x18\x05 \x01(\rR\x03max\"e\n" + + "\x17ListGameServersResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x128\n" + + "\vgameServers\x18\x02 \x03(\v2\x16.v1.GameServerDetailedR\vgameServers\"-\n" + + "\x19ListAllGameServersRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\"s\n" + + "\x1bGameServerMapsLoadedRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\"\n" + + "\fgameServerID\x18\x02 \x01(\tR\fgameServerID\x12\x1e\n" + + "\n" + + "mapsLoaded\x18\x03 \x03(\rR\n" + + "mapsLoaded\"0\n" + + "\x1cGameServerMapsLoadedResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\"\xd2\x01\n" + + "\x16RegisterGatewayRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x1a\n" + + "\bgamePort\x18\x02 \x01(\rR\bgamePort\x12\x1e\n" + + "\n" + + "healthPort\x18\x03 \x01(\rR\n" + + "healthPort\x12\x18\n" + + "\arealmID\x18\x04 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x05 \x01(\bR\fisCrossRealm\x12,\n" + + "\x11preferredHostName\x18\x06 \x01(\tR\x11preferredHostName\";\n" + + "\x17RegisterGatewayResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"H\n" + + "\x18GatewaysForRealmsRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x1a\n" + + "\brealmIDs\x18\x02 \x03(\rR\brealmIDs\"U\n" + + "\x19GatewaysForRealmsResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12&\n" + + "\bgateways\x18\x02 \x03(\v2\n" + + ".v1.ServerR\bgateways\"I\n" + + "\x1bListGatewaysForRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\"\xaf\x01\n" + + "\x15GatewayServerDetailed\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" + + "\aaddress\x18\x02 \x01(\tR\aaddress\x12$\n" + + "\rhealthAddress\x18\x03 \x01(\tR\rhealthAddress\x12\x18\n" + + "\arealmID\x18\x04 \x01(\rR\arealmID\x12,\n" + + "\x11activeConnections\x18\x05 \x01(\rR\x11activeConnections\"g\n" + + "\x1cListGatewaysForRealmResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x125\n" + + "\bgateways\x18\x02 \x03(\v2\x19.v1.GatewayServerDetailedR\bgateways\"\xce\x01\n" + + " RegisterMatchmakingServerRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12 \n" + + "\vservicePort\x18\x02 \x01(\rR\vservicePort\x12\x1e\n" + + "\n" + + "healthPort\x18\x03 \x01(\rR\n" + + "healthPort\x12,\n" + + "\x11preferredHostName\x18\x04 \x01(\tR\x11preferredHostName\x12(\n" + + "\x0fstartedAtUnixMs\x18\x05 \x01(\x03R\x0fstartedAtUnixMs\"E\n" + + "!RegisterMatchmakingServerResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"\x92\x01\n" + + "\x06Server\x12\x18\n" + + "\aaddress\x18\x01 \x01(\tR\aaddress\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x03 \x01(\bR\fisCrossRealm\x12 \n" + + "\vgrpcAddress\x18\x04 \x01(\tR\vgrpcAddress\x12\x0e\n" + + "\x02id\x18\x05 \x01(\tR\x02id2\xc6\a\n" + + "\x16ServersRegistryService\x12S\n" + + "\x12RegisterGameServer\x12\x1d.v1.RegisterGameServerRequest\x1a\x1e.v1.RegisterGameServerResponse\x12\x83\x01\n" + + "\"AvailableGameServersForMapAndRealm\x12-.v1.AvailableGameServersForMapAndRealmRequest\x1a..v1.AvailableGameServersForMapAndRealmResponse\x12e\n" + + "\x18RandomGameServerForRealm\x12#.v1.RandomGameServerForRealmRequest\x1a$.v1.RandomGameServerForRealmResponse\x12Z\n" + + "\x17ListGameServersForRealm\x12\".v1.ListGameServersForRealmRequest\x1a\x1b.v1.ListGameServersResponse\x12P\n" + + "\x12ListAllGameServers\x12\x1d.v1.ListAllGameServersRequest\x1a\x1b.v1.ListGameServersResponse\x12Y\n" + + "\x14GameServerMapsLoaded\x12\x1f.v1.GameServerMapsLoadedRequest\x1a .v1.GameServerMapsLoadedResponse\x12J\n" + + "\x0fRegisterGateway\x12\x1a.v1.RegisterGatewayRequest\x1a\x1b.v1.RegisterGatewayResponse\x12P\n" + + "\x11GatewaysForRealms\x12\x1c.v1.GatewaysForRealmsRequest\x1a\x1d.v1.GatewaysForRealmsResponse\x12Y\n" + + "\x14ListGatewaysForRealm\x12\x1f.v1.ListGatewaysForRealmRequest\x1a .v1.ListGatewaysForRealmResponse\x12h\n" + + "\x19RegisterMatchmakingServer\x12$.v1.RegisterMatchmakingServerRequest\x1a%.v1.RegisterMatchmakingServerResponseB\x19Z\x17gen/servers-registry/pbb\x06proto3" var ( file_registry_proto_rawDescOnce sync.Once - file_registry_proto_rawDescData = file_registry_proto_rawDesc + file_registry_proto_rawDescData []byte ) func file_registry_proto_rawDescGZIP() []byte { file_registry_proto_rawDescOnce.Do(func() { - file_registry_proto_rawDescData = protoimpl.X.CompressGZIP(file_registry_proto_rawDescData) + file_registry_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_registry_proto_rawDesc), len(file_registry_proto_rawDesc))) }) return file_registry_proto_rawDescData } -var file_registry_proto_msgTypes = make([]protoimpl.MessageInfo, 21) -var file_registry_proto_goTypes = []interface{}{ +var file_registry_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_registry_proto_goTypes = []any{ (*RegisterGameServerRequest)(nil), // 0: v1.RegisterGameServerRequest (*RegisterGameServerResponse)(nil), // 1: v1.RegisterGameServerResponse (*AvailableGameServersForMapAndRealmRequest)(nil), // 2: v1.AvailableGameServersForMapAndRealmRequest @@ -1681,15 +1658,17 @@ var file_registry_proto_goTypes = []interface{}{ (*ListGatewaysForRealmRequest)(nil), // 16: v1.ListGatewaysForRealmRequest (*GatewayServerDetailed)(nil), // 17: v1.GatewayServerDetailed (*ListGatewaysForRealmResponse)(nil), // 18: v1.ListGatewaysForRealmResponse - (*Server)(nil), // 19: v1.Server - (*GameServerDetailed_Diff)(nil), // 20: v1.GameServerDetailed.Diff + (*RegisterMatchmakingServerRequest)(nil), // 19: v1.RegisterMatchmakingServerRequest + (*RegisterMatchmakingServerResponse)(nil), // 20: v1.RegisterMatchmakingServerResponse + (*Server)(nil), // 21: v1.Server + (*GameServerDetailed_Diff)(nil), // 22: v1.GameServerDetailed.Diff } var file_registry_proto_depIdxs = []int32{ - 19, // 0: v1.AvailableGameServersForMapAndRealmResponse.gameServers:type_name -> v1.Server - 19, // 1: v1.RandomGameServerForRealmResponse.gameServer:type_name -> v1.Server - 20, // 2: v1.GameServerDetailed.diff:type_name -> v1.GameServerDetailed.Diff + 21, // 0: v1.AvailableGameServersForMapAndRealmResponse.gameServers:type_name -> v1.Server + 21, // 1: v1.RandomGameServerForRealmResponse.gameServer:type_name -> v1.Server + 22, // 2: v1.GameServerDetailed.diff:type_name -> v1.GameServerDetailed.Diff 7, // 3: v1.ListGameServersResponse.gameServers:type_name -> v1.GameServerDetailed - 19, // 4: v1.GatewaysForRealmsResponse.gateways:type_name -> v1.Server + 21, // 4: v1.GatewaysForRealmsResponse.gateways:type_name -> v1.Server 17, // 5: v1.ListGatewaysForRealmResponse.gateways:type_name -> v1.GatewayServerDetailed 0, // 6: v1.ServersRegistryService.RegisterGameServer:input_type -> v1.RegisterGameServerRequest 2, // 7: v1.ServersRegistryService.AvailableGameServersForMapAndRealm:input_type -> v1.AvailableGameServersForMapAndRealmRequest @@ -1700,17 +1679,19 @@ var file_registry_proto_depIdxs = []int32{ 12, // 12: v1.ServersRegistryService.RegisterGateway:input_type -> v1.RegisterGatewayRequest 14, // 13: v1.ServersRegistryService.GatewaysForRealms:input_type -> v1.GatewaysForRealmsRequest 16, // 14: v1.ServersRegistryService.ListGatewaysForRealm:input_type -> v1.ListGatewaysForRealmRequest - 1, // 15: v1.ServersRegistryService.RegisterGameServer:output_type -> v1.RegisterGameServerResponse - 3, // 16: v1.ServersRegistryService.AvailableGameServersForMapAndRealm:output_type -> v1.AvailableGameServersForMapAndRealmResponse - 5, // 17: v1.ServersRegistryService.RandomGameServerForRealm:output_type -> v1.RandomGameServerForRealmResponse - 8, // 18: v1.ServersRegistryService.ListGameServersForRealm:output_type -> v1.ListGameServersResponse - 8, // 19: v1.ServersRegistryService.ListAllGameServers:output_type -> v1.ListGameServersResponse - 11, // 20: v1.ServersRegistryService.GameServerMapsLoaded:output_type -> v1.GameServerMapsLoadedResponse - 13, // 21: v1.ServersRegistryService.RegisterGateway:output_type -> v1.RegisterGatewayResponse - 15, // 22: v1.ServersRegistryService.GatewaysForRealms:output_type -> v1.GatewaysForRealmsResponse - 18, // 23: v1.ServersRegistryService.ListGatewaysForRealm:output_type -> v1.ListGatewaysForRealmResponse - 15, // [15:24] is the sub-list for method output_type - 6, // [6:15] is the sub-list for method input_type + 19, // 15: v1.ServersRegistryService.RegisterMatchmakingServer:input_type -> v1.RegisterMatchmakingServerRequest + 1, // 16: v1.ServersRegistryService.RegisterGameServer:output_type -> v1.RegisterGameServerResponse + 3, // 17: v1.ServersRegistryService.AvailableGameServersForMapAndRealm:output_type -> v1.AvailableGameServersForMapAndRealmResponse + 5, // 18: v1.ServersRegistryService.RandomGameServerForRealm:output_type -> v1.RandomGameServerForRealmResponse + 8, // 19: v1.ServersRegistryService.ListGameServersForRealm:output_type -> v1.ListGameServersResponse + 8, // 20: v1.ServersRegistryService.ListAllGameServers:output_type -> v1.ListGameServersResponse + 11, // 21: v1.ServersRegistryService.GameServerMapsLoaded:output_type -> v1.GameServerMapsLoadedResponse + 13, // 22: v1.ServersRegistryService.RegisterGateway:output_type -> v1.RegisterGatewayResponse + 15, // 23: v1.ServersRegistryService.GatewaysForRealms:output_type -> v1.GatewaysForRealmsResponse + 18, // 24: v1.ServersRegistryService.ListGatewaysForRealm:output_type -> v1.ListGatewaysForRealmResponse + 20, // 25: v1.ServersRegistryService.RegisterMatchmakingServer:output_type -> v1.RegisterMatchmakingServerResponse + 16, // [16:26] is the sub-list for method output_type + 6, // [6:16] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name @@ -1721,267 +1702,13 @@ func file_registry_proto_init() { if File_registry_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_registry_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGameServerRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGameServerResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailableGameServersForMapAndRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailableGameServersForMapAndRealmResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RandomGameServerForRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RandomGameServerForRealmResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGameServersForRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerDetailed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGameServersResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAllGameServersRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerMapsLoadedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerMapsLoadedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGatewayRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGatewayResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GatewaysForRealmsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GatewaysForRealmsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGatewaysForRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GatewayServerDetailed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGatewaysForRealmResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Server); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerDetailed_Diff); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_registry_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_registry_proto_rawDesc), len(file_registry_proto_rawDesc)), NumEnums: 0, - NumMessages: 21, + NumMessages: 23, NumExtensions: 0, NumServices: 1, }, @@ -1990,7 +1717,6 @@ func file_registry_proto_init() { MessageInfos: file_registry_proto_msgTypes, }.Build() File_registry_proto = out.File - file_registry_proto_rawDesc = nil file_registry_proto_goTypes = nil file_registry_proto_depIdxs = nil } diff --git a/gen/servers-registry/pb/registry_grpc.pb.go b/gen/servers-registry/pb/registry_grpc.pb.go index 75ce5f9..1bd9a51 100644 --- a/gen/servers-registry/pb/registry_grpc.pb.go +++ b/gen/servers-registry/pb/registry_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc-gen-go-grpc v1.6.2 +// - protoc v3.21.12 // source: registry.proto package pb @@ -15,8 +15,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 const ( ServersRegistryService_RegisterGameServer_FullMethodName = "/v1.ServersRegistryService/RegisterGameServer" @@ -28,6 +28,7 @@ const ( ServersRegistryService_RegisterGateway_FullMethodName = "/v1.ServersRegistryService/RegisterGateway" ServersRegistryService_GatewaysForRealms_FullMethodName = "/v1.ServersRegistryService/GatewaysForRealms" ServersRegistryService_ListGatewaysForRealm_FullMethodName = "/v1.ServersRegistryService/ListGatewaysForRealm" + ServersRegistryService_RegisterMatchmakingServer_FullMethodName = "/v1.ServersRegistryService/RegisterMatchmakingServer" ) // ServersRegistryServiceClient is the client API for ServersRegistryService service. @@ -43,6 +44,7 @@ type ServersRegistryServiceClient interface { RegisterGateway(ctx context.Context, in *RegisterGatewayRequest, opts ...grpc.CallOption) (*RegisterGatewayResponse, error) GatewaysForRealms(ctx context.Context, in *GatewaysForRealmsRequest, opts ...grpc.CallOption) (*GatewaysForRealmsResponse, error) ListGatewaysForRealm(ctx context.Context, in *ListGatewaysForRealmRequest, opts ...grpc.CallOption) (*ListGatewaysForRealmResponse, error) + RegisterMatchmakingServer(ctx context.Context, in *RegisterMatchmakingServerRequest, opts ...grpc.CallOption) (*RegisterMatchmakingServerResponse, error) } type serversRegistryServiceClient struct { @@ -54,8 +56,9 @@ func NewServersRegistryServiceClient(cc grpc.ClientConnInterface) ServersRegistr } func (c *serversRegistryServiceClient) RegisterGameServer(ctx context.Context, in *RegisterGameServerRequest, opts ...grpc.CallOption) (*RegisterGameServerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RegisterGameServerResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGameServer_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGameServer_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -63,8 +66,9 @@ func (c *serversRegistryServiceClient) RegisterGameServer(ctx context.Context, i } func (c *serversRegistryServiceClient) AvailableGameServersForMapAndRealm(ctx context.Context, in *AvailableGameServersForMapAndRealmRequest, opts ...grpc.CallOption) (*AvailableGameServersForMapAndRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(AvailableGameServersForMapAndRealmResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_AvailableGameServersForMapAndRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_AvailableGameServersForMapAndRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -72,8 +76,9 @@ func (c *serversRegistryServiceClient) AvailableGameServersForMapAndRealm(ctx co } func (c *serversRegistryServiceClient) RandomGameServerForRealm(ctx context.Context, in *RandomGameServerForRealmRequest, opts ...grpc.CallOption) (*RandomGameServerForRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RandomGameServerForRealmResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_RandomGameServerForRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_RandomGameServerForRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -81,8 +86,9 @@ func (c *serversRegistryServiceClient) RandomGameServerForRealm(ctx context.Cont } func (c *serversRegistryServiceClient) ListGameServersForRealm(ctx context.Context, in *ListGameServersForRealmRequest, opts ...grpc.CallOption) (*ListGameServersResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListGameServersResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_ListGameServersForRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_ListGameServersForRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -90,8 +96,9 @@ func (c *serversRegistryServiceClient) ListGameServersForRealm(ctx context.Conte } func (c *serversRegistryServiceClient) ListAllGameServers(ctx context.Context, in *ListAllGameServersRequest, opts ...grpc.CallOption) (*ListGameServersResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListGameServersResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_ListAllGameServers_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_ListAllGameServers_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -99,8 +106,9 @@ func (c *serversRegistryServiceClient) ListAllGameServers(ctx context.Context, i } func (c *serversRegistryServiceClient) GameServerMapsLoaded(ctx context.Context, in *GameServerMapsLoadedRequest, opts ...grpc.CallOption) (*GameServerMapsLoadedResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GameServerMapsLoadedResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_GameServerMapsLoaded_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_GameServerMapsLoaded_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -108,8 +116,9 @@ func (c *serversRegistryServiceClient) GameServerMapsLoaded(ctx context.Context, } func (c *serversRegistryServiceClient) RegisterGateway(ctx context.Context, in *RegisterGatewayRequest, opts ...grpc.CallOption) (*RegisterGatewayResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RegisterGatewayResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGateway_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGateway_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -117,8 +126,9 @@ func (c *serversRegistryServiceClient) RegisterGateway(ctx context.Context, in * } func (c *serversRegistryServiceClient) GatewaysForRealms(ctx context.Context, in *GatewaysForRealmsRequest, opts ...grpc.CallOption) (*GatewaysForRealmsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GatewaysForRealmsResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_GatewaysForRealms_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_GatewaysForRealms_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -126,8 +136,19 @@ func (c *serversRegistryServiceClient) GatewaysForRealms(ctx context.Context, in } func (c *serversRegistryServiceClient) ListGatewaysForRealm(ctx context.Context, in *ListGatewaysForRealmRequest, opts ...grpc.CallOption) (*ListGatewaysForRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListGatewaysForRealmResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_ListGatewaysForRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_ListGatewaysForRealm_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serversRegistryServiceClient) RegisterMatchmakingServer(ctx context.Context, in *RegisterMatchmakingServerRequest, opts ...grpc.CallOption) (*RegisterMatchmakingServerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RegisterMatchmakingServerResponse) + err := c.cc.Invoke(ctx, ServersRegistryService_RegisterMatchmakingServer_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -136,7 +157,7 @@ func (c *serversRegistryServiceClient) ListGatewaysForRealm(ctx context.Context, // ServersRegistryServiceServer is the server API for ServersRegistryService service. // All implementations must embed UnimplementedServersRegistryServiceServer -// for forward compatibility +// for forward compatibility. type ServersRegistryServiceServer interface { RegisterGameServer(context.Context, *RegisterGameServerRequest) (*RegisterGameServerResponse, error) AvailableGameServersForMapAndRealm(context.Context, *AvailableGameServersForMapAndRealmRequest) (*AvailableGameServersForMapAndRealmResponse, error) @@ -147,42 +168,50 @@ type ServersRegistryServiceServer interface { RegisterGateway(context.Context, *RegisterGatewayRequest) (*RegisterGatewayResponse, error) GatewaysForRealms(context.Context, *GatewaysForRealmsRequest) (*GatewaysForRealmsResponse, error) ListGatewaysForRealm(context.Context, *ListGatewaysForRealmRequest) (*ListGatewaysForRealmResponse, error) + RegisterMatchmakingServer(context.Context, *RegisterMatchmakingServerRequest) (*RegisterMatchmakingServerResponse, error) mustEmbedUnimplementedServersRegistryServiceServer() } -// UnimplementedServersRegistryServiceServer must be embedded to have forward compatible implementations. -type UnimplementedServersRegistryServiceServer struct { -} +// UnimplementedServersRegistryServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedServersRegistryServiceServer struct{} func (UnimplementedServersRegistryServiceServer) RegisterGameServer(context.Context, *RegisterGameServerRequest) (*RegisterGameServerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RegisterGameServer not implemented") + return nil, status.Error(codes.Unimplemented, "method RegisterGameServer not implemented") } func (UnimplementedServersRegistryServiceServer) AvailableGameServersForMapAndRealm(context.Context, *AvailableGameServersForMapAndRealmRequest) (*AvailableGameServersForMapAndRealmResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AvailableGameServersForMapAndRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method AvailableGameServersForMapAndRealm not implemented") } func (UnimplementedServersRegistryServiceServer) RandomGameServerForRealm(context.Context, *RandomGameServerForRealmRequest) (*RandomGameServerForRealmResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RandomGameServerForRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method RandomGameServerForRealm not implemented") } func (UnimplementedServersRegistryServiceServer) ListGameServersForRealm(context.Context, *ListGameServersForRealmRequest) (*ListGameServersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListGameServersForRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method ListGameServersForRealm not implemented") } func (UnimplementedServersRegistryServiceServer) ListAllGameServers(context.Context, *ListAllGameServersRequest) (*ListGameServersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListAllGameServers not implemented") + return nil, status.Error(codes.Unimplemented, "method ListAllGameServers not implemented") } func (UnimplementedServersRegistryServiceServer) GameServerMapsLoaded(context.Context, *GameServerMapsLoadedRequest) (*GameServerMapsLoadedResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GameServerMapsLoaded not implemented") + return nil, status.Error(codes.Unimplemented, "method GameServerMapsLoaded not implemented") } func (UnimplementedServersRegistryServiceServer) RegisterGateway(context.Context, *RegisterGatewayRequest) (*RegisterGatewayResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RegisterGateway not implemented") + return nil, status.Error(codes.Unimplemented, "method RegisterGateway not implemented") } func (UnimplementedServersRegistryServiceServer) GatewaysForRealms(context.Context, *GatewaysForRealmsRequest) (*GatewaysForRealmsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GatewaysForRealms not implemented") + return nil, status.Error(codes.Unimplemented, "method GatewaysForRealms not implemented") } func (UnimplementedServersRegistryServiceServer) ListGatewaysForRealm(context.Context, *ListGatewaysForRealmRequest) (*ListGatewaysForRealmResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListGatewaysForRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method ListGatewaysForRealm not implemented") +} +func (UnimplementedServersRegistryServiceServer) RegisterMatchmakingServer(context.Context, *RegisterMatchmakingServerRequest) (*RegisterMatchmakingServerResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RegisterMatchmakingServer not implemented") } func (UnimplementedServersRegistryServiceServer) mustEmbedUnimplementedServersRegistryServiceServer() { } +func (UnimplementedServersRegistryServiceServer) testEmbeddedByValue() {} // UnsafeServersRegistryServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ServersRegistryServiceServer will @@ -192,6 +221,13 @@ type UnsafeServersRegistryServiceServer interface { } func RegisterServersRegistryServiceServer(s grpc.ServiceRegistrar, srv ServersRegistryServiceServer) { + // If the following call panics, it indicates UnimplementedServersRegistryServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ServersRegistryService_ServiceDesc, srv) } @@ -357,6 +393,24 @@ func _ServersRegistryService_ListGatewaysForRealm_Handler(srv interface{}, ctx c return interceptor(ctx, in, info, handler) } +func _ServersRegistryService_RegisterMatchmakingServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterMatchmakingServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServersRegistryServiceServer).RegisterMatchmakingServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ServersRegistryService_RegisterMatchmakingServer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServersRegistryServiceServer).RegisterMatchmakingServer(ctx, req.(*RegisterMatchmakingServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ServersRegistryService_ServiceDesc is the grpc.ServiceDesc for ServersRegistryService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -400,6 +454,10 @@ var ServersRegistryService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListGatewaysForRealm", Handler: _ServersRegistryService_ListGatewaysForRealm_Handler, }, + { + MethodName: "RegisterMatchmakingServer", + Handler: _ServersRegistryService_RegisterMatchmakingServer_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "registry.proto", diff --git a/gen/worldserver/pb/worldserver.pb.go b/gen/worldserver/pb/worldserver.pb.go index 0f845e8..e9e2d73 100644 --- a/gen/worldserver/pb/worldserver.pb.go +++ b/gen/worldserver/pb/worldserver.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: worldserver.proto package pb @@ -102,6 +102,61 @@ func (BattlegroundType) EnumDescriptor() ([]byte, []int) { return file_worldserver_proto_rawDescGZIP(), []int{0} } +type TakePlayerItemByPosResponse_Status int32 + +const ( + TakePlayerItemByPosResponse_Success TakePlayerItemByPosResponse_Status = 0 + TakePlayerItemByPosResponse_PlayerNotFound TakePlayerItemByPosResponse_Status = 1 + TakePlayerItemByPosResponse_ItemNotFound TakePlayerItemByPosResponse_Status = 2 + TakePlayerItemByPosResponse_ItemNotTradable TakePlayerItemByPosResponse_Status = 3 + TakePlayerItemByPosResponse_Failed TakePlayerItemByPosResponse_Status = 4 +) + +// Enum value maps for TakePlayerItemByPosResponse_Status. +var ( + TakePlayerItemByPosResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "PlayerNotFound", + 2: "ItemNotFound", + 3: "ItemNotTradable", + 4: "Failed", + } + TakePlayerItemByPosResponse_Status_value = map[string]int32{ + "Success": 0, + "PlayerNotFound": 1, + "ItemNotFound": 2, + "ItemNotTradable": 3, + "Failed": 4, + } +) + +func (x TakePlayerItemByPosResponse_Status) Enum() *TakePlayerItemByPosResponse_Status { + p := new(TakePlayerItemByPosResponse_Status) + *p = x + return p +} + +func (x TakePlayerItemByPosResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TakePlayerItemByPosResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[1].Descriptor() +} + +func (TakePlayerItemByPosResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[1] +} + +func (x TakePlayerItemByPosResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TakePlayerItemByPosResponse_Status.Descriptor instead. +func (TakePlayerItemByPosResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{3, 0} +} + type AddExistingItemToPlayerResponse_Status int32 const ( @@ -132,11 +187,11 @@ func (x AddExistingItemToPlayerResponse_Status) String() string { } func (AddExistingItemToPlayerResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_worldserver_proto_enumTypes[1].Descriptor() + return file_worldserver_proto_enumTypes[2].Descriptor() } func (AddExistingItemToPlayerResponse_Status) Type() protoreflect.EnumType { - return &file_worldserver_proto_enumTypes[1] + return &file_worldserver_proto_enumTypes[2] } func (x AddExistingItemToPlayerResponse_Status) Number() protoreflect.EnumNumber { @@ -145,7 +200,7 @@ func (x AddExistingItemToPlayerResponse_Status) Number() protoreflect.EnumNumber // Deprecated: Use AddExistingItemToPlayerResponse_Status.Descriptor instead. func (AddExistingItemToPlayerResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{5, 0} + return file_worldserver_proto_rawDescGZIP(), []int{7, 0} } type CanPlayerJoinBattlegroundQueueResponse_Status int32 @@ -175,11 +230,11 @@ func (x CanPlayerJoinBattlegroundQueueResponse_Status) String() string { } func (CanPlayerJoinBattlegroundQueueResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_worldserver_proto_enumTypes[2].Descriptor() + return file_worldserver_proto_enumTypes[3].Descriptor() } func (CanPlayerJoinBattlegroundQueueResponse_Status) Type() protoreflect.EnumType { - return &file_worldserver_proto_enumTypes[2] + return &file_worldserver_proto_enumTypes[3] } func (x CanPlayerJoinBattlegroundQueueResponse_Status) Number() protoreflect.EnumNumber { @@ -188,7 +243,7 @@ func (x CanPlayerJoinBattlegroundQueueResponse_Status) Number() protoreflect.Enu // Deprecated: Use CanPlayerJoinBattlegroundQueueResponse_Status.Descriptor instead. func (CanPlayerJoinBattlegroundQueueResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{19, 0} + return file_worldserver_proto_rawDescGZIP(), []int{21, 0} } type CanPlayerTeleportToBattlegroundResponse_Status int32 @@ -218,11 +273,11 @@ func (x CanPlayerTeleportToBattlegroundResponse_Status) String() string { } func (CanPlayerTeleportToBattlegroundResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_worldserver_proto_enumTypes[3].Descriptor() + return file_worldserver_proto_enumTypes[4].Descriptor() } func (CanPlayerTeleportToBattlegroundResponse_Status) Type() protoreflect.EnumType { - return &file_worldserver_proto_enumTypes[3] + return &file_worldserver_proto_enumTypes[4] } func (x CanPlayerTeleportToBattlegroundResponse_Status) Number() protoreflect.EnumNumber { @@ -231,7 +286,374 @@ func (x CanPlayerTeleportToBattlegroundResponse_Status) Number() protoreflect.En // Deprecated: Use CanPlayerTeleportToBattlegroundResponse_Status.Descriptor instead. func (CanPlayerTeleportToBattlegroundResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{21, 0} + return file_worldserver_proto_rawDescGZIP(), []int{23, 0} +} + +type GetLfgPlayerLockInfoResponse_Status int32 + +const ( + GetLfgPlayerLockInfoResponse_Success GetLfgPlayerLockInfoResponse_Status = 0 + GetLfgPlayerLockInfoResponse_PlayerNotFound GetLfgPlayerLockInfoResponse_Status = 1 + GetLfgPlayerLockInfoResponse_InternalError GetLfgPlayerLockInfoResponse_Status = 2 +) + +// Enum value maps for GetLfgPlayerLockInfoResponse_Status. +var ( + GetLfgPlayerLockInfoResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "PlayerNotFound", + 2: "InternalError", + } + GetLfgPlayerLockInfoResponse_Status_value = map[string]int32{ + "Success": 0, + "PlayerNotFound": 1, + "InternalError": 2, + } +) + +func (x GetLfgPlayerLockInfoResponse_Status) Enum() *GetLfgPlayerLockInfoResponse_Status { + p := new(GetLfgPlayerLockInfoResponse_Status) + *p = x + return p +} + +func (x GetLfgPlayerLockInfoResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetLfgPlayerLockInfoResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[5].Descriptor() +} + +func (GetLfgPlayerLockInfoResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[5] +} + +func (x GetLfgPlayerLockInfoResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetLfgPlayerLockInfoResponse_Status.Descriptor instead. +func (GetLfgPlayerLockInfoResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{26, 0} +} + +type GetLfgPlayerInfoResponse_Status int32 + +const ( + GetLfgPlayerInfoResponse_Success GetLfgPlayerInfoResponse_Status = 0 + GetLfgPlayerInfoResponse_NoHandler GetLfgPlayerInfoResponse_Status = 1 + GetLfgPlayerInfoResponse_PlayerNotFound GetLfgPlayerInfoResponse_Status = 2 + GetLfgPlayerInfoResponse_InternalError GetLfgPlayerInfoResponse_Status = 3 +) + +// Enum value maps for GetLfgPlayerInfoResponse_Status. +var ( + GetLfgPlayerInfoResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "PlayerNotFound", + 3: "InternalError", + } + GetLfgPlayerInfoResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "PlayerNotFound": 2, + "InternalError": 3, + } +) + +func (x GetLfgPlayerInfoResponse_Status) Enum() *GetLfgPlayerInfoResponse_Status { + p := new(GetLfgPlayerInfoResponse_Status) + *p = x + return p +} + +func (x GetLfgPlayerInfoResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetLfgPlayerInfoResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[6].Descriptor() +} + +func (GetLfgPlayerInfoResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[6] +} + +func (x GetLfgPlayerInfoResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetLfgPlayerInfoResponse_Status.Descriptor instead. +func (GetLfgPlayerInfoResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{30, 0} +} + +type GetLfgDungeonInfoResponse_Status int32 + +const ( + GetLfgDungeonInfoResponse_Success GetLfgDungeonInfoResponse_Status = 0 + GetLfgDungeonInfoResponse_NoHandler GetLfgDungeonInfoResponse_Status = 1 + GetLfgDungeonInfoResponse_DungeonNotFound GetLfgDungeonInfoResponse_Status = 2 + GetLfgDungeonInfoResponse_InternalError GetLfgDungeonInfoResponse_Status = 3 +) + +// Enum value maps for GetLfgDungeonInfoResponse_Status. +var ( + GetLfgDungeonInfoResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "DungeonNotFound", + 3: "InternalError", + } + GetLfgDungeonInfoResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "DungeonNotFound": 2, + "InternalError": 3, + } +) + +func (x GetLfgDungeonInfoResponse_Status) Enum() *GetLfgDungeonInfoResponse_Status { + p := new(GetLfgDungeonInfoResponse_Status) + *p = x + return p +} + +func (x GetLfgDungeonInfoResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetLfgDungeonInfoResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[7].Descriptor() +} + +func (GetLfgDungeonInfoResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[7] +} + +func (x GetLfgDungeonInfoResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetLfgDungeonInfoResponse_Status.Descriptor instead. +func (GetLfgDungeonInfoResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{32, 0} +} + +type TeleportLfgPlayerResponse_Status int32 + +const ( + TeleportLfgPlayerResponse_Success TeleportLfgPlayerResponse_Status = 0 + TeleportLfgPlayerResponse_NoHandler TeleportLfgPlayerResponse_Status = 1 + TeleportLfgPlayerResponse_PlayerNotFound TeleportLfgPlayerResponse_Status = 2 + TeleportLfgPlayerResponse_InternalError TeleportLfgPlayerResponse_Status = 3 +) + +// Enum value maps for TeleportLfgPlayerResponse_Status. +var ( + TeleportLfgPlayerResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "PlayerNotFound", + 3: "InternalError", + } + TeleportLfgPlayerResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "PlayerNotFound": 2, + "InternalError": 3, + } +) + +func (x TeleportLfgPlayerResponse_Status) Enum() *TeleportLfgPlayerResponse_Status { + p := new(TeleportLfgPlayerResponse_Status) + *p = x + return p +} + +func (x TeleportLfgPlayerResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TeleportLfgPlayerResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[8].Descriptor() +} + +func (TeleportLfgPlayerResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[8] +} + +func (x TeleportLfgPlayerResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TeleportLfgPlayerResponse_Status.Descriptor instead. +func (TeleportLfgPlayerResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{34, 0} +} + +type SetLfgBootVoteResponse_Status int32 + +const ( + SetLfgBootVoteResponse_Success SetLfgBootVoteResponse_Status = 0 + SetLfgBootVoteResponse_NoHandler SetLfgBootVoteResponse_Status = 1 + SetLfgBootVoteResponse_PlayerNotFound SetLfgBootVoteResponse_Status = 2 + SetLfgBootVoteResponse_InternalError SetLfgBootVoteResponse_Status = 3 +) + +// Enum value maps for SetLfgBootVoteResponse_Status. +var ( + SetLfgBootVoteResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "PlayerNotFound", + 3: "InternalError", + } + SetLfgBootVoteResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "PlayerNotFound": 2, + "InternalError": 3, + } +) + +func (x SetLfgBootVoteResponse_Status) Enum() *SetLfgBootVoteResponse_Status { + p := new(SetLfgBootVoteResponse_Status) + *p = x + return p +} + +func (x SetLfgBootVoteResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SetLfgBootVoteResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[9].Descriptor() +} + +func (SetLfgBootVoteResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[9] +} + +func (x SetLfgBootVoteResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SetLfgBootVoteResponse_Status.Descriptor instead. +func (SetLfgBootVoteResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{36, 0} +} + +type MaterializeLfgProposalResponse_Status int32 + +const ( + MaterializeLfgProposalResponse_Success MaterializeLfgProposalResponse_Status = 0 + MaterializeLfgProposalResponse_NoHandler MaterializeLfgProposalResponse_Status = 1 + MaterializeLfgProposalResponse_DungeonNotFound MaterializeLfgProposalResponse_Status = 2 + MaterializeLfgProposalResponse_NoLocalPlayer MaterializeLfgProposalResponse_Status = 3 + MaterializeLfgProposalResponse_InternalError MaterializeLfgProposalResponse_Status = 4 +) + +// Enum value maps for MaterializeLfgProposalResponse_Status. +var ( + MaterializeLfgProposalResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "DungeonNotFound", + 3: "NoLocalPlayer", + 4: "InternalError", + } + MaterializeLfgProposalResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "DungeonNotFound": 2, + "NoLocalPlayer": 3, + "InternalError": 4, + } +) + +func (x MaterializeLfgProposalResponse_Status) Enum() *MaterializeLfgProposalResponse_Status { + p := new(MaterializeLfgProposalResponse_Status) + *p = x + return p +} + +func (x MaterializeLfgProposalResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MaterializeLfgProposalResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[10].Descriptor() +} + +func (MaterializeLfgProposalResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[10] +} + +func (x MaterializeLfgProposalResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MaterializeLfgProposalResponse_Status.Descriptor instead. +func (MaterializeLfgProposalResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{38, 0} +} + +type CreateGuildResponse_Status int32 + +const ( + CreateGuildResponse_Success CreateGuildResponse_Status = 0 + CreateGuildResponse_NameExists CreateGuildResponse_Status = 1 + CreateGuildResponse_InvalidName CreateGuildResponse_Status = 2 + CreateGuildResponse_LeaderNotFound CreateGuildResponse_Status = 3 + CreateGuildResponse_InternalError CreateGuildResponse_Status = 4 +) + +// Enum value maps for CreateGuildResponse_Status. +var ( + CreateGuildResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NameExists", + 2: "InvalidName", + 3: "LeaderNotFound", + 4: "InternalError", + } + CreateGuildResponse_Status_value = map[string]int32{ + "Success": 0, + "NameExists": 1, + "InvalidName": 2, + "LeaderNotFound": 3, + "InternalError": 4, + } +) + +func (x CreateGuildResponse_Status) Enum() *CreateGuildResponse_Status { + p := new(CreateGuildResponse_Status) + *p = x + return p +} + +func (x CreateGuildResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CreateGuildResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[11].Descriptor() +} + +func (CreateGuildResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[11] +} + +func (x CreateGuildResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CreateGuildResponse_Status.Descriptor instead. +func (CreateGuildResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{40, 0} } // GetPlayerItemsByGuids @@ -353,20 +775,22 @@ func (x *GetPlayerItemsByGuidsResponse) GetItems() []*GetPlayerItemsByGuidsRespo return nil } -// RemoveItemsWithGuidsFromPlayer -type RemoveItemsWithGuidsFromPlayerRequest struct { +// TakePlayerItemByPos +type TakePlayerItemByPosRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` - Guids []uint64 `protobuf:"varint,3,rep,packed,name=guids,proto3" json:"guids,omitempty"` - AssignToPlayerGuid uint64 `protobuf:"varint,4,opt,name=assignToPlayerGuid,proto3" json:"assignToPlayerGuid,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` + BagSlot uint32 `protobuf:"varint,3,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,4,opt,name=slot,proto3" json:"slot,omitempty"` + Count uint32 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"` + AssignToPlayerGuid uint64 `protobuf:"varint,6,opt,name=assignToPlayerGuid,proto3" json:"assignToPlayerGuid,omitempty"` } -func (x *RemoveItemsWithGuidsFromPlayerRequest) Reset() { - *x = RemoveItemsWithGuidsFromPlayerRequest{} +func (x *TakePlayerItemByPosRequest) Reset() { + *x = TakePlayerItemByPosRequest{} if protoimpl.UnsafeEnabled { mi := &file_worldserver_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -374,13 +798,13 @@ func (x *RemoveItemsWithGuidsFromPlayerRequest) Reset() { } } -func (x *RemoveItemsWithGuidsFromPlayerRequest) String() string { +func (x *TakePlayerItemByPosRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveItemsWithGuidsFromPlayerRequest) ProtoMessage() {} +func (*TakePlayerItemByPosRequest) ProtoMessage() {} -func (x *RemoveItemsWithGuidsFromPlayerRequest) ProtoReflect() protoreflect.Message { +func (x *TakePlayerItemByPosRequest) ProtoReflect() protoreflect.Message { mi := &file_worldserver_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -392,50 +816,65 @@ func (x *RemoveItemsWithGuidsFromPlayerRequest) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use RemoveItemsWithGuidsFromPlayerRequest.ProtoReflect.Descriptor instead. -func (*RemoveItemsWithGuidsFromPlayerRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use TakePlayerItemByPosRequest.ProtoReflect.Descriptor instead. +func (*TakePlayerItemByPosRequest) Descriptor() ([]byte, []int) { return file_worldserver_proto_rawDescGZIP(), []int{2} } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetApi() string { +func (x *TakePlayerItemByPosRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetPlayerGuid() uint64 { +func (x *TakePlayerItemByPosRequest) GetPlayerGuid() uint64 { if x != nil { return x.PlayerGuid } return 0 } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetGuids() []uint64 { +func (x *TakePlayerItemByPosRequest) GetBagSlot() uint32 { if x != nil { - return x.Guids + return x.BagSlot } - return nil + return 0 } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetAssignToPlayerGuid() uint64 { +func (x *TakePlayerItemByPosRequest) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *TakePlayerItemByPosRequest) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *TakePlayerItemByPosRequest) GetAssignToPlayerGuid() uint64 { if x != nil { return x.AssignToPlayerGuid } return 0 } -type RemoveItemsWithGuidsFromPlayerResponse struct { +type TakePlayerItemByPosResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - UpdatedItemsGuids []uint64 `protobuf:"varint,2,rep,packed,name=updatedItemsGuids,proto3" json:"updatedItemsGuids,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status TakePlayerItemByPosResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.TakePlayerItemByPosResponse_Status" json:"status,omitempty"` + Item *TakePlayerItemByPosResponse_Item `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` } -func (x *RemoveItemsWithGuidsFromPlayerResponse) Reset() { - *x = RemoveItemsWithGuidsFromPlayerResponse{} +func (x *TakePlayerItemByPosResponse) Reset() { + *x = TakePlayerItemByPosResponse{} if protoimpl.UnsafeEnabled { mi := &file_worldserver_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -443,6 +882,140 @@ func (x *RemoveItemsWithGuidsFromPlayerResponse) Reset() { } } +func (x *TakePlayerItemByPosResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TakePlayerItemByPosResponse) ProtoMessage() {} + +func (x *TakePlayerItemByPosResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TakePlayerItemByPosResponse.ProtoReflect.Descriptor instead. +func (*TakePlayerItemByPosResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{3} +} + +func (x *TakePlayerItemByPosResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *TakePlayerItemByPosResponse) GetStatus() TakePlayerItemByPosResponse_Status { + if x != nil { + return x.Status + } + return TakePlayerItemByPosResponse_Success +} + +func (x *TakePlayerItemByPosResponse) GetItem() *TakePlayerItemByPosResponse_Item { + if x != nil { + return x.Item + } + return nil +} + +// RemoveItemsWithGuidsFromPlayer +type RemoveItemsWithGuidsFromPlayerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` + Guids []uint64 `protobuf:"varint,3,rep,packed,name=guids,proto3" json:"guids,omitempty"` + AssignToPlayerGuid uint64 `protobuf:"varint,4,opt,name=assignToPlayerGuid,proto3" json:"assignToPlayerGuid,omitempty"` +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) Reset() { + *x = RemoveItemsWithGuidsFromPlayerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveItemsWithGuidsFromPlayerRequest) ProtoMessage() {} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveItemsWithGuidsFromPlayerRequest.ProtoReflect.Descriptor instead. +func (*RemoveItemsWithGuidsFromPlayerRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{4} +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetPlayerGuid() uint64 { + if x != nil { + return x.PlayerGuid + } + return 0 +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetGuids() []uint64 { + if x != nil { + return x.Guids + } + return nil +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetAssignToPlayerGuid() uint64 { + if x != nil { + return x.AssignToPlayerGuid + } + return 0 +} + +type RemoveItemsWithGuidsFromPlayerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + UpdatedItemsGuids []uint64 `protobuf:"varint,2,rep,packed,name=updatedItemsGuids,proto3" json:"updatedItemsGuids,omitempty"` +} + +func (x *RemoveItemsWithGuidsFromPlayerResponse) Reset() { + *x = RemoveItemsWithGuidsFromPlayerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + func (x *RemoveItemsWithGuidsFromPlayerResponse) String() string { return protoimpl.X.MessageStringOf(x) } @@ -450,7 +1023,7 @@ func (x *RemoveItemsWithGuidsFromPlayerResponse) String() string { func (*RemoveItemsWithGuidsFromPlayerResponse) ProtoMessage() {} func (x *RemoveItemsWithGuidsFromPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[3] + mi := &file_worldserver_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -463,7 +1036,7 @@ func (x *RemoveItemsWithGuidsFromPlayerResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use RemoveItemsWithGuidsFromPlayerResponse.ProtoReflect.Descriptor instead. func (*RemoveItemsWithGuidsFromPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{3} + return file_worldserver_proto_rawDescGZIP(), []int{5} } func (x *RemoveItemsWithGuidsFromPlayerResponse) GetApi() string { @@ -489,12 +1062,15 @@ type AddExistingItemToPlayerRequest struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` Item *AddExistingItemToPlayerRequest_Item `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` + StoreAtPos bool `protobuf:"varint,4,opt,name=storeAtPos,proto3" json:"storeAtPos,omitempty"` + BagSlot uint32 `protobuf:"varint,5,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,6,opt,name=slot,proto3" json:"slot,omitempty"` } func (x *AddExistingItemToPlayerRequest) Reset() { *x = AddExistingItemToPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[4] + mi := &file_worldserver_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -507,7 +1083,7 @@ func (x *AddExistingItemToPlayerRequest) String() string { func (*AddExistingItemToPlayerRequest) ProtoMessage() {} func (x *AddExistingItemToPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[4] + mi := &file_worldserver_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -520,7 +1096,7 @@ func (x *AddExistingItemToPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddExistingItemToPlayerRequest.ProtoReflect.Descriptor instead. func (*AddExistingItemToPlayerRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{4} + return file_worldserver_proto_rawDescGZIP(), []int{6} } func (x *AddExistingItemToPlayerRequest) GetApi() string { @@ -544,6 +1120,27 @@ func (x *AddExistingItemToPlayerRequest) GetItem() *AddExistingItemToPlayerReque return nil } +func (x *AddExistingItemToPlayerRequest) GetStoreAtPos() bool { + if x != nil { + return x.StoreAtPos + } + return false +} + +func (x *AddExistingItemToPlayerRequest) GetBagSlot() uint32 { + if x != nil { + return x.BagSlot + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + type AddExistingItemToPlayerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -556,7 +1153,7 @@ type AddExistingItemToPlayerResponse struct { func (x *AddExistingItemToPlayerResponse) Reset() { *x = AddExistingItemToPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[5] + mi := &file_worldserver_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -569,7 +1166,7 @@ func (x *AddExistingItemToPlayerResponse) String() string { func (*AddExistingItemToPlayerResponse) ProtoMessage() {} func (x *AddExistingItemToPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[5] + mi := &file_worldserver_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -582,7 +1179,7 @@ func (x *AddExistingItemToPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddExistingItemToPlayerResponse.ProtoReflect.Descriptor instead. func (*AddExistingItemToPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{5} + return file_worldserver_proto_rawDescGZIP(), []int{7} } func (x *AddExistingItemToPlayerResponse) GetApi() string { @@ -612,7 +1209,7 @@ type GetMoneyForPlayerRequest struct { func (x *GetMoneyForPlayerRequest) Reset() { *x = GetMoneyForPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[6] + mi := &file_worldserver_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -625,7 +1222,7 @@ func (x *GetMoneyForPlayerRequest) String() string { func (*GetMoneyForPlayerRequest) ProtoMessage() {} func (x *GetMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[6] + mi := &file_worldserver_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -638,7 +1235,7 @@ func (x *GetMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMoneyForPlayerRequest.ProtoReflect.Descriptor instead. func (*GetMoneyForPlayerRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{6} + return file_worldserver_proto_rawDescGZIP(), []int{8} } func (x *GetMoneyForPlayerRequest) GetApi() string { @@ -667,7 +1264,7 @@ type GetMoneyForPlayerResponse struct { func (x *GetMoneyForPlayerResponse) Reset() { *x = GetMoneyForPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[7] + mi := &file_worldserver_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -680,7 +1277,7 @@ func (x *GetMoneyForPlayerResponse) String() string { func (*GetMoneyForPlayerResponse) ProtoMessage() {} func (x *GetMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[7] + mi := &file_worldserver_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -693,7 +1290,7 @@ func (x *GetMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMoneyForPlayerResponse.ProtoReflect.Descriptor instead. func (*GetMoneyForPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{7} + return file_worldserver_proto_rawDescGZIP(), []int{9} } func (x *GetMoneyForPlayerResponse) GetApi() string { @@ -724,7 +1321,7 @@ type ModifyMoneyForPlayerRequest struct { func (x *ModifyMoneyForPlayerRequest) Reset() { *x = ModifyMoneyForPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[8] + mi := &file_worldserver_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -737,7 +1334,7 @@ func (x *ModifyMoneyForPlayerRequest) String() string { func (*ModifyMoneyForPlayerRequest) ProtoMessage() {} func (x *ModifyMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[8] + mi := &file_worldserver_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -750,7 +1347,7 @@ func (x *ModifyMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ModifyMoneyForPlayerRequest.ProtoReflect.Descriptor instead. func (*ModifyMoneyForPlayerRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{8} + return file_worldserver_proto_rawDescGZIP(), []int{10} } func (x *ModifyMoneyForPlayerRequest) GetApi() string { @@ -786,7 +1383,7 @@ type ModifyMoneyForPlayerResponse struct { func (x *ModifyMoneyForPlayerResponse) Reset() { *x = ModifyMoneyForPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[9] + mi := &file_worldserver_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -799,7 +1396,7 @@ func (x *ModifyMoneyForPlayerResponse) String() string { func (*ModifyMoneyForPlayerResponse) ProtoMessage() {} func (x *ModifyMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[9] + mi := &file_worldserver_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -812,7 +1409,7 @@ func (x *ModifyMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ModifyMoneyForPlayerResponse.ProtoReflect.Descriptor instead. func (*ModifyMoneyForPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{9} + return file_worldserver_proto_rawDescGZIP(), []int{11} } func (x *ModifyMoneyForPlayerResponse) GetApi() string { @@ -844,7 +1441,7 @@ type CanPlayerInteractWithNPCRequest struct { func (x *CanPlayerInteractWithNPCRequest) Reset() { *x = CanPlayerInteractWithNPCRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[10] + mi := &file_worldserver_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -857,7 +1454,7 @@ func (x *CanPlayerInteractWithNPCRequest) String() string { func (*CanPlayerInteractWithNPCRequest) ProtoMessage() {} func (x *CanPlayerInteractWithNPCRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[10] + mi := &file_worldserver_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -870,7 +1467,7 @@ func (x *CanPlayerInteractWithNPCRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CanPlayerInteractWithNPCRequest.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithNPCRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{10} + return file_worldserver_proto_rawDescGZIP(), []int{12} } func (x *CanPlayerInteractWithNPCRequest) GetApi() string { @@ -913,7 +1510,7 @@ type CanPlayerInteractWithNPCResponse struct { func (x *CanPlayerInteractWithNPCResponse) Reset() { *x = CanPlayerInteractWithNPCResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[11] + mi := &file_worldserver_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -926,7 +1523,7 @@ func (x *CanPlayerInteractWithNPCResponse) String() string { func (*CanPlayerInteractWithNPCResponse) ProtoMessage() {} func (x *CanPlayerInteractWithNPCResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[11] + mi := &file_worldserver_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -939,7 +1536,7 @@ func (x *CanPlayerInteractWithNPCResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CanPlayerInteractWithNPCResponse.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithNPCResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{11} + return file_worldserver_proto_rawDescGZIP(), []int{13} } func (x *CanPlayerInteractWithNPCResponse) GetApi() string { @@ -971,7 +1568,7 @@ type CanPlayerInteractWithGameObjectRequest struct { func (x *CanPlayerInteractWithGameObjectRequest) Reset() { *x = CanPlayerInteractWithGameObjectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[12] + mi := &file_worldserver_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -984,7 +1581,7 @@ func (x *CanPlayerInteractWithGameObjectRequest) String() string { func (*CanPlayerInteractWithGameObjectRequest) ProtoMessage() {} func (x *CanPlayerInteractWithGameObjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[12] + mi := &file_worldserver_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -997,7 +1594,7 @@ func (x *CanPlayerInteractWithGameObjectRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use CanPlayerInteractWithGameObjectRequest.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithGameObjectRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{12} + return file_worldserver_proto_rawDescGZIP(), []int{14} } func (x *CanPlayerInteractWithGameObjectRequest) GetApi() string { @@ -1040,7 +1637,7 @@ type CanPlayerInteractWithGameObjectResponse struct { func (x *CanPlayerInteractWithGameObjectResponse) Reset() { *x = CanPlayerInteractWithGameObjectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[13] + mi := &file_worldserver_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1053,7 +1650,7 @@ func (x *CanPlayerInteractWithGameObjectResponse) String() string { func (*CanPlayerInteractWithGameObjectResponse) ProtoMessage() {} func (x *CanPlayerInteractWithGameObjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[13] + mi := &file_worldserver_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1066,7 +1663,7 @@ func (x *CanPlayerInteractWithGameObjectResponse) ProtoReflect() protoreflect.Me // Deprecated: Use CanPlayerInteractWithGameObjectResponse.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithGameObjectResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{13} + return file_worldserver_proto_rawDescGZIP(), []int{15} } func (x *CanPlayerInteractWithGameObjectResponse) GetApi() string { @@ -1089,20 +1686,24 @@ type StartBattlegroundRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - BattlegroundTypeID BattlegroundType `protobuf:"varint,2,opt,name=battlegroundTypeID,proto3,enum=v1.BattlegroundType" json:"battlegroundTypeID,omitempty"` - ArenaType uint32 `protobuf:"varint,3,opt,name=arenaType,proto3" json:"arenaType,omitempty"` // Arenas not supported yet. - IsRated bool `protobuf:"varint,4,opt,name=isRated,proto3" json:"isRated,omitempty"` // Arenas not supported yet. - MapID uint32 `protobuf:"varint,5,opt,name=mapID,proto3" json:"mapID,omitempty"` - BracketLvl uint32 `protobuf:"varint,6,opt,name=bracketLvl,proto3" json:"bracketLvl,omitempty"` - PlayersToAddAlliance []uint64 `protobuf:"varint,7,rep,packed,name=playersToAddAlliance,proto3" json:"playersToAddAlliance,omitempty"` - PlayersToAddHorde []uint64 `protobuf:"varint,8,rep,packed,name=playersToAddHorde,proto3" json:"playersToAddHorde,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + BattlegroundTypeID BattlegroundType `protobuf:"varint,2,opt,name=battlegroundTypeID,proto3,enum=v1.BattlegroundType" json:"battlegroundTypeID,omitempty"` + ArenaType uint32 `protobuf:"varint,3,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + IsRated bool `protobuf:"varint,4,opt,name=isRated,proto3" json:"isRated,omitempty"` + MapID uint32 `protobuf:"varint,5,opt,name=mapID,proto3" json:"mapID,omitempty"` + BracketLvl uint32 `protobuf:"varint,6,opt,name=bracketLvl,proto3" json:"bracketLvl,omitempty"` + PlayersToAddAlliance []uint64 `protobuf:"varint,7,rep,packed,name=playersToAddAlliance,proto3" json:"playersToAddAlliance,omitempty"` + PlayersToAddHorde []uint64 `protobuf:"varint,8,rep,packed,name=playersToAddHorde,proto3" json:"playersToAddHorde,omitempty"` + AllianceArenaTeamID uint32 `protobuf:"varint,9,opt,name=allianceArenaTeamID,proto3" json:"allianceArenaTeamID,omitempty"` + HordeArenaTeamID uint32 `protobuf:"varint,10,opt,name=hordeArenaTeamID,proto3" json:"hordeArenaTeamID,omitempty"` + AllianceArenaMatchmakerRating uint32 `protobuf:"varint,11,opt,name=allianceArenaMatchmakerRating,proto3" json:"allianceArenaMatchmakerRating,omitempty"` + HordeArenaMatchmakerRating uint32 `protobuf:"varint,12,opt,name=hordeArenaMatchmakerRating,proto3" json:"hordeArenaMatchmakerRating,omitempty"` } func (x *StartBattlegroundRequest) Reset() { *x = StartBattlegroundRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[14] + mi := &file_worldserver_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1115,7 +1716,7 @@ func (x *StartBattlegroundRequest) String() string { func (*StartBattlegroundRequest) ProtoMessage() {} func (x *StartBattlegroundRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[14] + mi := &file_worldserver_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1128,7 +1729,7 @@ func (x *StartBattlegroundRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartBattlegroundRequest.ProtoReflect.Descriptor instead. func (*StartBattlegroundRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{14} + return file_worldserver_proto_rawDescGZIP(), []int{16} } func (x *StartBattlegroundRequest) GetApi() string { @@ -1187,6 +1788,34 @@ func (x *StartBattlegroundRequest) GetPlayersToAddHorde() []uint64 { return nil } +func (x *StartBattlegroundRequest) GetAllianceArenaTeamID() uint32 { + if x != nil { + return x.AllianceArenaTeamID + } + return 0 +} + +func (x *StartBattlegroundRequest) GetHordeArenaTeamID() uint32 { + if x != nil { + return x.HordeArenaTeamID + } + return 0 +} + +func (x *StartBattlegroundRequest) GetAllianceArenaMatchmakerRating() uint32 { + if x != nil { + return x.AllianceArenaMatchmakerRating + } + return 0 +} + +func (x *StartBattlegroundRequest) GetHordeArenaMatchmakerRating() uint32 { + if x != nil { + return x.HordeArenaMatchmakerRating + } + return 0 +} + type StartBattlegroundResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1200,7 +1829,7 @@ type StartBattlegroundResponse struct { func (x *StartBattlegroundResponse) Reset() { *x = StartBattlegroundResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[15] + mi := &file_worldserver_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1213,7 +1842,7 @@ func (x *StartBattlegroundResponse) String() string { func (*StartBattlegroundResponse) ProtoMessage() {} func (x *StartBattlegroundResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[15] + mi := &file_worldserver_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1226,7 +1855,7 @@ func (x *StartBattlegroundResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StartBattlegroundResponse.ProtoReflect.Descriptor instead. func (*StartBattlegroundResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{15} + return file_worldserver_proto_rawDescGZIP(), []int{17} } func (x *StartBattlegroundResponse) GetApi() string { @@ -1266,7 +1895,7 @@ type AddPlayersToBattlegroundRequest struct { func (x *AddPlayersToBattlegroundRequest) Reset() { *x = AddPlayersToBattlegroundRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[16] + mi := &file_worldserver_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1279,7 +1908,7 @@ func (x *AddPlayersToBattlegroundRequest) String() string { func (*AddPlayersToBattlegroundRequest) ProtoMessage() {} func (x *AddPlayersToBattlegroundRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[16] + mi := &file_worldserver_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1292,7 +1921,7 @@ func (x *AddPlayersToBattlegroundRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddPlayersToBattlegroundRequest.ProtoReflect.Descriptor instead. func (*AddPlayersToBattlegroundRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{16} + return file_worldserver_proto_rawDescGZIP(), []int{18} } func (x *AddPlayersToBattlegroundRequest) GetApi() string { @@ -1341,7 +1970,7 @@ type AddPlayersToBattlegroundResponse struct { func (x *AddPlayersToBattlegroundResponse) Reset() { *x = AddPlayersToBattlegroundResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[17] + mi := &file_worldserver_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1354,7 +1983,7 @@ func (x *AddPlayersToBattlegroundResponse) String() string { func (*AddPlayersToBattlegroundResponse) ProtoMessage() {} func (x *AddPlayersToBattlegroundResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[17] + mi := &file_worldserver_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1367,7 +1996,7 @@ func (x *AddPlayersToBattlegroundResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddPlayersToBattlegroundResponse.ProtoReflect.Descriptor instead. func (*AddPlayersToBattlegroundResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{17} + return file_worldserver_proto_rawDescGZIP(), []int{19} } func (x *AddPlayersToBattlegroundResponse) GetApi() string { @@ -1390,7 +2019,7 @@ type CanPlayerJoinBattlegroundQueueRequest struct { func (x *CanPlayerJoinBattlegroundQueueRequest) Reset() { *x = CanPlayerJoinBattlegroundQueueRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[18] + mi := &file_worldserver_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1403,7 +2032,7 @@ func (x *CanPlayerJoinBattlegroundQueueRequest) String() string { func (*CanPlayerJoinBattlegroundQueueRequest) ProtoMessage() {} func (x *CanPlayerJoinBattlegroundQueueRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[18] + mi := &file_worldserver_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1416,7 +2045,7 @@ func (x *CanPlayerJoinBattlegroundQueueRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use CanPlayerJoinBattlegroundQueueRequest.ProtoReflect.Descriptor instead. func (*CanPlayerJoinBattlegroundQueueRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{18} + return file_worldserver_proto_rawDescGZIP(), []int{20} } func (x *CanPlayerJoinBattlegroundQueueRequest) GetApi() string { @@ -1445,7 +2074,7 @@ type CanPlayerJoinBattlegroundQueueResponse struct { func (x *CanPlayerJoinBattlegroundQueueResponse) Reset() { *x = CanPlayerJoinBattlegroundQueueResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[19] + mi := &file_worldserver_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1458,7 +2087,7 @@ func (x *CanPlayerJoinBattlegroundQueueResponse) String() string { func (*CanPlayerJoinBattlegroundQueueResponse) ProtoMessage() {} func (x *CanPlayerJoinBattlegroundQueueResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[19] + mi := &file_worldserver_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1471,7 +2100,7 @@ func (x *CanPlayerJoinBattlegroundQueueResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use CanPlayerJoinBattlegroundQueueResponse.ProtoReflect.Descriptor instead. func (*CanPlayerJoinBattlegroundQueueResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{19} + return file_worldserver_proto_rawDescGZIP(), []int{21} } func (x *CanPlayerJoinBattlegroundQueueResponse) GetApi() string { @@ -1501,7 +2130,7 @@ type CanPlayerTeleportToBattlegroundRequest struct { func (x *CanPlayerTeleportToBattlegroundRequest) Reset() { *x = CanPlayerTeleportToBattlegroundRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[20] + mi := &file_worldserver_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1514,7 +2143,7 @@ func (x *CanPlayerTeleportToBattlegroundRequest) String() string { func (*CanPlayerTeleportToBattlegroundRequest) ProtoMessage() {} func (x *CanPlayerTeleportToBattlegroundRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[20] + mi := &file_worldserver_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1527,7 +2156,7 @@ func (x *CanPlayerTeleportToBattlegroundRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use CanPlayerTeleportToBattlegroundRequest.ProtoReflect.Descriptor instead. func (*CanPlayerTeleportToBattlegroundRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{20} + return file_worldserver_proto_rawDescGZIP(), []int{22} } func (x *CanPlayerTeleportToBattlegroundRequest) GetApi() string { @@ -1556,7 +2185,7 @@ type CanPlayerTeleportToBattlegroundResponse struct { func (x *CanPlayerTeleportToBattlegroundResponse) Reset() { *x = CanPlayerTeleportToBattlegroundResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[21] + mi := &file_worldserver_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1569,7 +2198,7 @@ func (x *CanPlayerTeleportToBattlegroundResponse) String() string { func (*CanPlayerTeleportToBattlegroundResponse) ProtoMessage() {} func (x *CanPlayerTeleportToBattlegroundResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[21] + mi := &file_worldserver_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1582,7 +2211,7 @@ func (x *CanPlayerTeleportToBattlegroundResponse) ProtoReflect() protoreflect.Me // Deprecated: Use CanPlayerTeleportToBattlegroundResponse.ProtoReflect.Descriptor instead. func (*CanPlayerTeleportToBattlegroundResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{21} + return file_worldserver_proto_rawDescGZIP(), []int{23} } func (x *CanPlayerTeleportToBattlegroundResponse) GetApi() string { @@ -1599,41 +2228,32 @@ func (x *CanPlayerTeleportToBattlegroundResponse) GetStatus() CanPlayerTeleportT return CanPlayerTeleportToBattlegroundResponse_Success } -type GetPlayerItemsByGuidsResponse_Item struct { +type LfgDungeonLock struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` - Owner uint64 `protobuf:"varint,3,opt,name=owner,proto3" json:"owner,omitempty"` - BagSlot uint32 `protobuf:"varint,4,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` - Slot uint32 `protobuf:"varint,5,opt,name=slot,proto3" json:"slot,omitempty"` - IsTradable bool `protobuf:"varint,6,opt,name=isTradable,proto3" json:"isTradable,omitempty"` - Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` - Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` - Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` - RandomPropertyID uint32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` - Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` + DungeonEntry uint32 `protobuf:"varint,1,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + LockStatus uint32 `protobuf:"varint,2,opt,name=lockStatus,proto3" json:"lockStatus,omitempty"` } -func (x *GetPlayerItemsByGuidsResponse_Item) Reset() { - *x = GetPlayerItemsByGuidsResponse_Item{} +func (x *LfgDungeonLock) Reset() { + *x = LfgDungeonLock{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[22] + mi := &file_worldserver_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetPlayerItemsByGuidsResponse_Item) String() string { +func (x *LfgDungeonLock) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPlayerItemsByGuidsResponse_Item) ProtoMessage() {} +func (*LfgDungeonLock) ProtoMessage() {} -func (x *GetPlayerItemsByGuidsResponse_Item) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[22] +func (x *LfgDungeonLock) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1644,119 +2264,265 @@ func (x *GetPlayerItemsByGuidsResponse_Item) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use GetPlayerItemsByGuidsResponse_Item.ProtoReflect.Descriptor instead. -func (*GetPlayerItemsByGuidsResponse_Item) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{1, 0} +// Deprecated: Use LfgDungeonLock.ProtoReflect.Descriptor instead. +func (*LfgDungeonLock) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{24} } -func (x *GetPlayerItemsByGuidsResponse_Item) GetGuid() uint64 { +func (x *LfgDungeonLock) GetDungeonEntry() uint32 { if x != nil { - return x.Guid + return x.DungeonEntry } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetEntry() uint32 { +func (x *LfgDungeonLock) GetLockStatus() uint32 { if x != nil { - return x.Entry + return x.LockStatus } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetOwner() uint64 { +type GetLfgPlayerLockInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + DungeonEntries []uint32 `protobuf:"varint,3,rep,packed,name=dungeonEntries,proto3" json:"dungeonEntries,omitempty"` +} + +func (x *GetLfgPlayerLockInfoRequest) Reset() { + *x = GetLfgPlayerLockInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerLockInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerLockInfoRequest) ProtoMessage() {} + +func (x *GetLfgPlayerLockInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgPlayerLockInfoRequest.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerLockInfoRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{25} +} + +func (x *GetLfgPlayerLockInfoRequest) GetApi() string { if x != nil { - return x.Owner + return x.Api } - return 0 + return "" } -func (x *GetPlayerItemsByGuidsResponse_Item) GetBagSlot() uint32 { +func (x *GetLfgPlayerLockInfoRequest) GetPlayerGUID() uint64 { if x != nil { - return x.BagSlot + return x.PlayerGUID } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetSlot() uint32 { +func (x *GetLfgPlayerLockInfoRequest) GetDungeonEntries() []uint32 { if x != nil { - return x.Slot + return x.DungeonEntries } - return 0 + return nil } -func (x *GetPlayerItemsByGuidsResponse_Item) GetIsTradable() bool { +type GetLfgPlayerLockInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetLfgPlayerLockInfoResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetLfgPlayerLockInfoResponse_Status" json:"status,omitempty"` + Locks []*LfgDungeonLock `protobuf:"bytes,3,rep,name=locks,proto3" json:"locks,omitempty"` + // AzerothCore LfgJoinResult for player-wide join restrictions not represented + // as per-dungeon lock rows, such as deserter or random dungeon cooldown. + JoinResult uint32 `protobuf:"varint,4,opt,name=joinResult,proto3" json:"joinResult,omitempty"` + // AzerothCore DBC-filtered and canonicalized dungeon entries accepted from + // the client selection. Gateway must queue these instead of raw client slots. + ValidDungeonEntries []uint32 `protobuf:"varint,5,rep,packed,name=validDungeonEntries,proto3" json:"validDungeonEntries,omitempty"` +} + +func (x *GetLfgPlayerLockInfoResponse) Reset() { + *x = GetLfgPlayerLockInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerLockInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerLockInfoResponse) ProtoMessage() {} + +func (x *GetLfgPlayerLockInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgPlayerLockInfoResponse.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerLockInfoResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{26} +} + +func (x *GetLfgPlayerLockInfoResponse) GetApi() string { if x != nil { - return x.IsTradable + return x.Api } - return false + return "" } -func (x *GetPlayerItemsByGuidsResponse_Item) GetCount() uint32 { +func (x *GetLfgPlayerLockInfoResponse) GetStatus() GetLfgPlayerLockInfoResponse_Status { if x != nil { - return x.Count + return x.Status } - return 0 + return GetLfgPlayerLockInfoResponse_Success } -func (x *GetPlayerItemsByGuidsResponse_Item) GetFlags() uint32 { +func (x *GetLfgPlayerLockInfoResponse) GetLocks() []*LfgDungeonLock { if x != nil { - return x.Flags + return x.Locks + } + return nil +} + +func (x *GetLfgPlayerLockInfoResponse) GetJoinResult() uint32 { + if x != nil { + return x.JoinResult } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetDurability() uint32 { +func (x *GetLfgPlayerLockInfoResponse) GetValidDungeonEntries() []uint32 { if x != nil { - return x.Durability + return x.ValidDungeonEntries + } + return nil +} + +type LfgRewardItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemID uint32 `protobuf:"varint,1,opt,name=itemID,proto3" json:"itemID,omitempty"` + DisplayID uint32 `protobuf:"varint,2,opt,name=displayID,proto3" json:"displayID,omitempty"` + Count uint32 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *LfgRewardItem) Reset() { + *x = LfgRewardItem{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgRewardItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgRewardItem) ProtoMessage() {} + +func (x *LfgRewardItem) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LfgRewardItem.ProtoReflect.Descriptor instead. +func (*LfgRewardItem) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{27} +} + +func (x *LfgRewardItem) GetItemID() uint32 { + if x != nil { + return x.ItemID } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetRandomPropertyID() uint32 { +func (x *LfgRewardItem) GetDisplayID() uint32 { if x != nil { - return x.RandomPropertyID + return x.DisplayID } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetText() string { +func (x *LfgRewardItem) GetCount() uint32 { if x != nil { - return x.Text + return x.Count } - return "" + return 0 } -type AddExistingItemToPlayerRequest_Item struct { +type LfgRandomDungeonInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` - Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` - Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` - Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` - RandomPropertyID uint32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` - Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` + DungeonEntry uint32 `protobuf:"varint,1,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + Done bool `protobuf:"varint,2,opt,name=done,proto3" json:"done,omitempty"` + RewardMoney uint32 `protobuf:"varint,3,opt,name=rewardMoney,proto3" json:"rewardMoney,omitempty"` + RewardXP uint32 `protobuf:"varint,4,opt,name=rewardXP,proto3" json:"rewardXP,omitempty"` + RewardUnknown1 uint32 `protobuf:"varint,5,opt,name=rewardUnknown1,proto3" json:"rewardUnknown1,omitempty"` + RewardUnknown2 uint32 `protobuf:"varint,6,opt,name=rewardUnknown2,proto3" json:"rewardUnknown2,omitempty"` + RewardItems []*LfgRewardItem `protobuf:"bytes,7,rep,name=rewardItems,proto3" json:"rewardItems,omitempty"` } -func (x *AddExistingItemToPlayerRequest_Item) Reset() { - *x = AddExistingItemToPlayerRequest_Item{} +func (x *LfgRandomDungeonInfo) Reset() { + *x = LfgRandomDungeonInfo{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[23] + mi := &file_worldserver_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddExistingItemToPlayerRequest_Item) String() string { +func (x *LfgRandomDungeonInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddExistingItemToPlayerRequest_Item) ProtoMessage() {} +func (*LfgRandomDungeonInfo) ProtoMessage() {} -func (x *AddExistingItemToPlayerRequest_Item) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[23] +func (x *LfgRandomDungeonInfo) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1767,76 +2533,1285 @@ func (x *AddExistingItemToPlayerRequest_Item) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use AddExistingItemToPlayerRequest_Item.ProtoReflect.Descriptor instead. -func (*AddExistingItemToPlayerRequest_Item) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{4, 0} +// Deprecated: Use LfgRandomDungeonInfo.ProtoReflect.Descriptor instead. +func (*LfgRandomDungeonInfo) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{28} } -func (x *AddExistingItemToPlayerRequest_Item) GetGuid() uint64 { +func (x *LfgRandomDungeonInfo) GetDungeonEntry() uint32 { if x != nil { - return x.Guid + return x.DungeonEntry } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetEntry() uint32 { +func (x *LfgRandomDungeonInfo) GetDone() bool { if x != nil { - return x.Entry + return x.Done } - return 0 + return false } -func (x *AddExistingItemToPlayerRequest_Item) GetCount() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardMoney() uint32 { if x != nil { - return x.Count + return x.RewardMoney } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetFlags() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardXP() uint32 { if x != nil { - return x.Flags + return x.RewardXP } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetDurability() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardUnknown1() uint32 { if x != nil { - return x.Durability + return x.RewardUnknown1 } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetRandomPropertyID() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardUnknown2() uint32 { if x != nil { - return x.RandomPropertyID + return x.RewardUnknown2 } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetText() string { +func (x *LfgRandomDungeonInfo) GetRewardItems() []*LfgRewardItem { if x != nil { - return x.Text + return x.RewardItems + } + return nil +} + +type GetLfgPlayerInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *GetLfgPlayerInfoRequest) Reset() { + *x = GetLfgPlayerInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerInfoRequest) ProtoMessage() {} + +func (x *GetLfgPlayerInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgPlayerInfoRequest.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerInfoRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{29} +} + +func (x *GetLfgPlayerInfoRequest) GetApi() string { + if x != nil { + return x.Api } return "" } -var File_worldserver_proto protoreflect.FileDescriptor +func (x *GetLfgPlayerInfoRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} -var file_worldserver_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x66, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x22, - 0x92, 0x03, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, +type GetLfgPlayerInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetLfgPlayerInfoResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetLfgPlayerInfoResponse_Status" json:"status,omitempty"` + RandomDungeons []*LfgRandomDungeonInfo `protobuf:"bytes,3,rep,name=randomDungeons,proto3" json:"randomDungeons,omitempty"` + Locks []*LfgDungeonLock `protobuf:"bytes,4,rep,name=locks,proto3" json:"locks,omitempty"` +} + +func (x *GetLfgPlayerInfoResponse) Reset() { + *x = GetLfgPlayerInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerInfoResponse) ProtoMessage() {} + +func (x *GetLfgPlayerInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgPlayerInfoResponse.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerInfoResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{30} +} + +func (x *GetLfgPlayerInfoResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgPlayerInfoResponse) GetStatus() GetLfgPlayerInfoResponse_Status { + if x != nil { + return x.Status + } + return GetLfgPlayerInfoResponse_Success +} + +func (x *GetLfgPlayerInfoResponse) GetRandomDungeons() []*LfgRandomDungeonInfo { + if x != nil { + return x.RandomDungeons + } + return nil +} + +func (x *GetLfgPlayerInfoResponse) GetLocks() []*LfgDungeonLock { + if x != nil { + return x.Locks + } + return nil +} + +type GetLfgDungeonInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + DungeonEntry uint32 `protobuf:"varint,2,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` +} + +func (x *GetLfgDungeonInfoRequest) Reset() { + *x = GetLfgDungeonInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonInfoRequest) ProtoMessage() {} + +func (x *GetLfgDungeonInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgDungeonInfoRequest.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonInfoRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{31} +} + +func (x *GetLfgDungeonInfoRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonInfoRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +type GetLfgDungeonInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetLfgDungeonInfoResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetLfgDungeonInfoResponse_Status" json:"status,omitempty"` + DungeonEntry uint32 `protobuf:"varint,3,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + DungeonID uint32 `protobuf:"varint,4,opt,name=dungeonID,proto3" json:"dungeonID,omitempty"` + MapID uint32 `protobuf:"varint,5,opt,name=mapID,proto3" json:"mapID,omitempty"` + TypeID uint32 `protobuf:"varint,6,opt,name=typeID,proto3" json:"typeID,omitempty"` + Difficulty uint32 `protobuf:"varint,7,opt,name=difficulty,proto3" json:"difficulty,omitempty"` +} + +func (x *GetLfgDungeonInfoResponse) Reset() { + *x = GetLfgDungeonInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonInfoResponse) ProtoMessage() {} + +func (x *GetLfgDungeonInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLfgDungeonInfoResponse.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonInfoResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{32} +} + +func (x *GetLfgDungeonInfoResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonInfoResponse) GetStatus() GetLfgDungeonInfoResponse_Status { + if x != nil { + return x.Status + } + return GetLfgDungeonInfoResponse_Success +} + +func (x *GetLfgDungeonInfoResponse) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetDungeonID() uint32 { + if x != nil { + return x.DungeonID + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetTypeID() uint32 { + if x != nil { + return x.TypeID + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +type TeleportLfgPlayerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Out bool `protobuf:"varint,3,opt,name=out,proto3" json:"out,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` +} + +func (x *TeleportLfgPlayerRequest) Reset() { + *x = TeleportLfgPlayerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TeleportLfgPlayerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TeleportLfgPlayerRequest) ProtoMessage() {} + +func (x *TeleportLfgPlayerRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TeleportLfgPlayerRequest.ProtoReflect.Descriptor instead. +func (*TeleportLfgPlayerRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{33} +} + +func (x *TeleportLfgPlayerRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *TeleportLfgPlayerRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *TeleportLfgPlayerRequest) GetOut() bool { + if x != nil { + return x.Out + } + return false +} + +func (x *TeleportLfgPlayerRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +type TeleportLfgPlayerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status TeleportLfgPlayerResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.TeleportLfgPlayerResponse_Status" json:"status,omitempty"` +} + +func (x *TeleportLfgPlayerResponse) Reset() { + *x = TeleportLfgPlayerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TeleportLfgPlayerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TeleportLfgPlayerResponse) ProtoMessage() {} + +func (x *TeleportLfgPlayerResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TeleportLfgPlayerResponse.ProtoReflect.Descriptor instead. +func (*TeleportLfgPlayerResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{34} +} + +func (x *TeleportLfgPlayerResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *TeleportLfgPlayerResponse) GetStatus() TeleportLfgPlayerResponse_Status { + if x != nil { + return x.Status + } + return TeleportLfgPlayerResponse_Success +} + +type SetLfgBootVoteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Agree bool `protobuf:"varint,3,opt,name=agree,proto3" json:"agree,omitempty"` +} + +func (x *SetLfgBootVoteRequest) Reset() { + *x = SetLfgBootVoteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgBootVoteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgBootVoteRequest) ProtoMessage() {} + +func (x *SetLfgBootVoteRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetLfgBootVoteRequest.ProtoReflect.Descriptor instead. +func (*SetLfgBootVoteRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{35} +} + +func (x *SetLfgBootVoteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgBootVoteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetLfgBootVoteRequest) GetAgree() bool { + if x != nil { + return x.Agree + } + return false +} + +type SetLfgBootVoteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SetLfgBootVoteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetLfgBootVoteResponse_Status" json:"status,omitempty"` +} + +func (x *SetLfgBootVoteResponse) Reset() { + *x = SetLfgBootVoteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgBootVoteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgBootVoteResponse) ProtoMessage() {} + +func (x *SetLfgBootVoteResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetLfgBootVoteResponse.ProtoReflect.Descriptor instead. +func (*SetLfgBootVoteResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{36} +} + +func (x *SetLfgBootVoteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgBootVoteResponse) GetStatus() SetLfgBootVoteResponse_Status { + if x != nil { + return x.Status + } + return SetLfgBootVoteResponse_Success +} + +// MaterializeLfgProposal +type MaterializeLfgProposalRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ProposalID uint32 `protobuf:"varint,3,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + LeaderGUID uint64 `protobuf:"varint,5,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + Members []*MaterializeLfgProposalRequest_Member `protobuf:"bytes,6,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *MaterializeLfgProposalRequest) Reset() { + *x = MaterializeLfgProposalRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializeLfgProposalRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializeLfgProposalRequest) ProtoMessage() {} + +func (x *MaterializeLfgProposalRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MaterializeLfgProposalRequest.ProtoReflect.Descriptor instead. +func (*MaterializeLfgProposalRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{37} +} + +func (x *MaterializeLfgProposalRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *MaterializeLfgProposalRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetMembers() []*MaterializeLfgProposalRequest_Member { + if x != nil { + return x.Members + } + return nil +} + +type MaterializeLfgProposalResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status MaterializeLfgProposalResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.MaterializeLfgProposalResponse_Status" json:"status,omitempty"` +} + +func (x *MaterializeLfgProposalResponse) Reset() { + *x = MaterializeLfgProposalResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializeLfgProposalResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializeLfgProposalResponse) ProtoMessage() {} + +func (x *MaterializeLfgProposalResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MaterializeLfgProposalResponse.ProtoReflect.Descriptor instead. +func (*MaterializeLfgProposalResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{38} +} + +func (x *MaterializeLfgProposalResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *MaterializeLfgProposalResponse) GetStatus() MaterializeLfgProposalResponse_Status { + if x != nil { + return x.Status + } + return MaterializeLfgProposalResponse_Success +} + +type CreateGuildRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + LeaderGuid uint64 `protobuf:"varint,2,opt,name=leaderGuid,proto3" json:"leaderGuid,omitempty"` + GuildName string `protobuf:"bytes,3,opt,name=guildName,proto3" json:"guildName,omitempty"` +} + +func (x *CreateGuildRequest) Reset() { + *x = CreateGuildRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGuildRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGuildRequest) ProtoMessage() {} + +func (x *CreateGuildRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateGuildRequest.ProtoReflect.Descriptor instead. +func (*CreateGuildRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{39} +} + +func (x *CreateGuildRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *CreateGuildRequest) GetLeaderGuid() uint64 { + if x != nil { + return x.LeaderGuid + } + return 0 +} + +func (x *CreateGuildRequest) GetGuildName() string { + if x != nil { + return x.GuildName + } + return "" +} + +type CreateGuildResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status CreateGuildResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.CreateGuildResponse_Status" json:"status,omitempty"` + GuildId uint64 `protobuf:"varint,3,opt,name=guildId,proto3" json:"guildId,omitempty"` +} + +func (x *CreateGuildResponse) Reset() { + *x = CreateGuildResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGuildResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGuildResponse) ProtoMessage() {} + +func (x *CreateGuildResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateGuildResponse.ProtoReflect.Descriptor instead. +func (*CreateGuildResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{40} +} + +func (x *CreateGuildResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *CreateGuildResponse) GetStatus() CreateGuildResponse_Status { + if x != nil { + return x.Status + } + return CreateGuildResponse_Success +} + +func (x *CreateGuildResponse) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +type GetPlayerItemsByGuidsResponse_Item struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Owner uint64 `protobuf:"varint,3,opt,name=owner,proto3" json:"owner,omitempty"` + BagSlot uint32 `protobuf:"varint,4,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,5,opt,name=slot,proto3" json:"slot,omitempty"` + IsTradable bool `protobuf:"varint,6,opt,name=isTradable,proto3" json:"isTradable,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` + Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` + RandomPropertyID int32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *GetPlayerItemsByGuidsResponse_Item) Reset() { + *x = GetPlayerItemsByGuidsResponse_Item{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPlayerItemsByGuidsResponse_Item) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPlayerItemsByGuidsResponse_Item) ProtoMessage() {} + +func (x *GetPlayerItemsByGuidsResponse_Item) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPlayerItemsByGuidsResponse_Item.ProtoReflect.Descriptor instead. +func (*GetPlayerItemsByGuidsResponse_Item) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetOwner() uint64 { + if x != nil { + return x.Owner + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetBagSlot() uint32 { + if x != nil { + return x.BagSlot + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetIsTradable() bool { + if x != nil { + return x.IsTradable + } + return false +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type TakePlayerItemByPosResponse_Item struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Owner uint64 `protobuf:"varint,3,opt,name=owner,proto3" json:"owner,omitempty"` + BagSlot uint32 `protobuf:"varint,4,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,5,opt,name=slot,proto3" json:"slot,omitempty"` + IsTradable bool `protobuf:"varint,6,opt,name=isTradable,proto3" json:"isTradable,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` + Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` + RandomPropertyID int32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *TakePlayerItemByPosResponse_Item) Reset() { + *x = TakePlayerItemByPosResponse_Item{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TakePlayerItemByPosResponse_Item) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TakePlayerItemByPosResponse_Item) ProtoMessage() {} + +func (x *TakePlayerItemByPosResponse_Item) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TakePlayerItemByPosResponse_Item.ProtoReflect.Descriptor instead. +func (*TakePlayerItemByPosResponse_Item) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *TakePlayerItemByPosResponse_Item) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetOwner() uint64 { + if x != nil { + return x.Owner + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetBagSlot() uint32 { + if x != nil { + return x.BagSlot + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetIsTradable() bool { + if x != nil { + return x.IsTradable + } + return false +} + +func (x *TakePlayerItemByPosResponse_Item) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type AddExistingItemToPlayerRequest_Item struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` + Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` + RandomPropertyID int32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *AddExistingItemToPlayerRequest_Item) Reset() { + *x = AddExistingItemToPlayerRequest_Item{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddExistingItemToPlayerRequest_Item) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddExistingItemToPlayerRequest_Item) ProtoMessage() {} + +func (x *AddExistingItemToPlayerRequest_Item) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddExistingItemToPlayerRequest_Item.ProtoReflect.Descriptor instead. +func (*AddExistingItemToPlayerRequest_Item) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *AddExistingItemToPlayerRequest_Item) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type MaterializeLfgProposalRequest_Member struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + SelectedRoles uint32 `protobuf:"varint,2,opt,name=selectedRoles,proto3" json:"selectedRoles,omitempty"` + AssignedRole uint32 `protobuf:"varint,3,opt,name=assignedRole,proto3" json:"assignedRole,omitempty"` + QueueLeaderGUID uint64 `protobuf:"varint,4,opt,name=queueLeaderGUID,proto3" json:"queueLeaderGUID,omitempty"` +} + +func (x *MaterializeLfgProposalRequest_Member) Reset() { + *x = MaterializeLfgProposalRequest_Member{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializeLfgProposalRequest_Member) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializeLfgProposalRequest_Member) ProtoMessage() {} + +func (x *MaterializeLfgProposalRequest_Member) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MaterializeLfgProposalRequest_Member.ProtoReflect.Descriptor instead. +func (*MaterializeLfgProposalRequest_Member) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{37, 0} +} + +func (x *MaterializeLfgProposalRequest_Member) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest_Member) GetSelectedRoles() uint32 { + if x != nil { + return x.SelectedRoles + } + return 0 +} + +func (x *MaterializeLfgProposalRequest_Member) GetAssignedRole() uint32 { + if x != nil { + return x.AssignedRole + } + return 0 +} + +func (x *MaterializeLfgProposalRequest_Member) GetQueueLeaderGUID() uint64 { + if x != nil { + return x.QueueLeaderGUID + } + return 0 +} + +var File_worldserver_proto protoreflect.FileDescriptor + +var file_worldserver_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x66, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x22, + 0x92, 0x03, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xa0, 0x02, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, @@ -1854,36 +3829,88 @@ var file_worldserver_proto_rawDesc = []byte{ 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x65, 0x78, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, - 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x47, 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x11, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x75, 0x69, 0x64, 0x73, - 0x22, 0xce, 0x02, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x74, 0x65, 0x78, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x1a, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, - 0x65, 0x6d, 0x1a, 0xbc, 0x01, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, + 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x22, 0xaa, 0x04, 0x0a, 0x1b, 0x54, 0x61, + 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, 0x6f, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, + 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x69, + 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, + 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x04, 0x69, 0x74, 0x65, 0x6d, 0x1a, 0xa0, 0x02, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, + 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x69, 0x73, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x69, 0x73, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, + 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x5c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x22, 0x9f, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, + 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, + 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, + 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x47, 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x75, 0x69, + 0x64, 0x73, 0x22, 0x9c, 0x03, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x69, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x74, 0x50, + 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x41, + 0x74, 0x50, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x1a, 0xbc, 0x01, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, @@ -1892,7 +3919,7 @@ var file_worldserver_proto_rawDesc = []byte{ 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x72, 0x61, 0x6e, + 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, @@ -1957,7 +3984,7 @@ var file_worldserver_proto_rawDesc = []byte{ 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, - 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x74, 0x22, 0xa6, 0x04, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x12, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, @@ -1977,158 +4004,413 @@ var file_worldserver_proto_rawDesc = []byte{ 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, - 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x22, 0x79, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, - 0x44, 0x22, 0xfb, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x12, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x32, 0x0a, + 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, + 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x6f, 0x72, 0x64, + 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x1d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x61, 0x6c, 0x6c, + 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x1a, 0x68, 0x6f, + 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, + 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x79, 0x0a, 0x19, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x22, 0xfb, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x12, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, + 0x44, 0x12, 0x32, 0x0a, 0x14, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, + 0x64, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x14, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, - 0x69, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x14, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, - 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x11, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x22, - 0x34, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x25, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x69, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, + 0x72, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x25, 0x43, 0x61, 0x6e, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x22, 0x9c, 0x01, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x9c, 0x01, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, - 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x49, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x22, - 0x5a, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, + 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x49, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x10, 0x00, 0x22, 0x5a, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, + 0x9e, 0x01, 0x0a, 0x27, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, + 0x22, 0x54, 0x0a, 0x0e, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x77, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x0e, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, + 0xab, 0x02, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, + 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, + 0x3c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x5b, 0x0a, + 0x0d, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x14, 0x4c, + 0x66, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x58, 0x50, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x58, 0x50, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x31, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x32, 0x12, 0x33, 0x0a, 0x0b, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4b, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x9e, 0x01, 0x0a, 0x27, - 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x2a, 0x9a, 0x02, 0x0a, - 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x61, 0x63, 0x56, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x10, 0x01, 0x12, 0x10, - 0x0a, 0x0c, 0x57, 0x61, 0x72, 0x73, 0x6f, 0x6e, 0x67, 0x47, 0x75, 0x6c, 0x63, 0x68, 0x10, 0x02, - 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x72, 0x61, 0x74, 0x68, 0x69, 0x42, 0x61, 0x73, 0x69, 0x6e, 0x10, - 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x61, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, 0x6e, - 0x61, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x73, 0x45, 0x64, 0x67, - 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x41, - 0x72, 0x65, 0x6e, 0x61, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x79, 0x65, 0x4f, 0x66, - 0x54, 0x68, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x75, - 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x4c, 0x6f, 0x72, 0x64, 0x61, 0x65, 0x72, 0x6f, 0x6e, 0x10, 0x08, - 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x41, - 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x61, 0x6c, - 0x61, 0x72, 0x61, 0x6e, 0x53, 0x65, 0x77, 0x65, 0x72, 0x73, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, - 0x52, 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x56, 0x61, 0x6c, 0x6f, 0x72, 0x10, 0x0b, 0x12, 0x12, 0x0a, - 0x0e, 0x49, 0x73, 0x6c, 0x65, 0x4f, 0x66, 0x43, 0x6f, 0x6e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, - 0x1e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x20, 0x32, 0x8d, 0x09, 0x0a, 0x12, 0x57, 0x6f, - 0x72, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x5c, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, - 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, - 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, - 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, - 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, - 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x45, 0x78, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xa2, 0x02, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, + 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x22, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, + 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, + 0x22, 0x50, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x22, + 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x22, 0xc9, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, + 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x22, 0x4c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x22, 0x82, + 0x01, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6f, 0x75, 0x74, 0x12, + 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x22, 0xb8, 0x01, 0x0a, 0x19, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x22, 0x5f, + 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x67, 0x72, + 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x67, 0x72, 0x65, 0x65, 0x22, + 0xb2, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, + 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x10, 0x03, 0x22, 0x92, 0x03, 0x0a, 0x1d, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x9c, 0x01, 0x0a, 0x06, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xd6, 0x01, 0x0a, 0x1e, 0x4d, 0x61, + 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x41, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, + 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x5f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, + 0x4e, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x03, 0x12, + 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x04, 0x22, 0x64, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, + 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, + 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, + 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x04, 0x2a, 0x9a, 0x02, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x61, 0x63, 0x56, 0x61, 0x6c, + 0x6c, 0x65, 0x79, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x61, 0x72, 0x73, 0x6f, 0x6e, 0x67, + 0x47, 0x75, 0x6c, 0x63, 0x68, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x72, 0x61, 0x74, 0x68, + 0x69, 0x42, 0x61, 0x73, 0x69, 0x6e, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x61, 0x67, 0x72, + 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, + 0x61, 0x64, 0x65, 0x73, 0x45, 0x64, 0x67, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x05, 0x12, + 0x0d, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x10, 0x06, 0x12, 0x11, + 0x0a, 0x0d, 0x45, 0x79, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x10, + 0x07, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x75, 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x4c, 0x6f, 0x72, 0x64, + 0x61, 0x65, 0x72, 0x6f, 0x6e, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x41, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x09, + 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x61, 0x6c, 0x61, 0x72, 0x61, 0x6e, 0x53, 0x65, 0x77, 0x65, 0x72, + 0x73, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x56, 0x61, 0x6c, + 0x6f, 0x72, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x73, 0x6c, 0x65, 0x4f, 0x66, 0x43, 0x6f, + 0x6e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x1e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x20, + 0x32, 0x9d, 0x0e, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, + 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, 0x6f, 0x73, 0x12, 0x1e, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, + 0x42, 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, + 0x42, 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, + 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, + 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, + 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, - 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, - 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, - 0x14, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, + 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, - 0x68, 0x4e, 0x50, 0x43, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, - 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, - 0x57, 0x69, 0x74, 0x68, 0x4e, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7a, 0x0a, 0x1f, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x4e, 0x50, 0x43, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x50, + 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, + 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, + 0x69, 0x74, 0x68, 0x4e, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, + 0x0a, 0x1f, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, - 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, - 0x18, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, - 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, + 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, - 0x1f, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, + 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x1f, + 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x14, 0x5a, 0x12, 0x67, 0x65, 0x6e, - 0x2f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, + 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, + 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, + 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, + 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5f, 0x0a, 0x16, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, + 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, + 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x14, 0x5a, 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2143,73 +4425,132 @@ func file_worldserver_proto_rawDescGZIP() []byte { return file_worldserver_proto_rawDescData } -var file_worldserver_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_worldserver_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_worldserver_proto_enumTypes = make([]protoimpl.EnumInfo, 12) +var file_worldserver_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_worldserver_proto_goTypes = []interface{}{ (BattlegroundType)(0), // 0: v1.BattlegroundType - (AddExistingItemToPlayerResponse_Status)(0), // 1: v1.AddExistingItemToPlayerResponse.Status - (CanPlayerJoinBattlegroundQueueResponse_Status)(0), // 2: v1.CanPlayerJoinBattlegroundQueueResponse.Status - (CanPlayerTeleportToBattlegroundResponse_Status)(0), // 3: v1.CanPlayerTeleportToBattlegroundResponse.Status - (*GetPlayerItemsByGuidsRequest)(nil), // 4: v1.GetPlayerItemsByGuidsRequest - (*GetPlayerItemsByGuidsResponse)(nil), // 5: v1.GetPlayerItemsByGuidsResponse - (*RemoveItemsWithGuidsFromPlayerRequest)(nil), // 6: v1.RemoveItemsWithGuidsFromPlayerRequest - (*RemoveItemsWithGuidsFromPlayerResponse)(nil), // 7: v1.RemoveItemsWithGuidsFromPlayerResponse - (*AddExistingItemToPlayerRequest)(nil), // 8: v1.AddExistingItemToPlayerRequest - (*AddExistingItemToPlayerResponse)(nil), // 9: v1.AddExistingItemToPlayerResponse - (*GetMoneyForPlayerRequest)(nil), // 10: v1.GetMoneyForPlayerRequest - (*GetMoneyForPlayerResponse)(nil), // 11: v1.GetMoneyForPlayerResponse - (*ModifyMoneyForPlayerRequest)(nil), // 12: v1.ModifyMoneyForPlayerRequest - (*ModifyMoneyForPlayerResponse)(nil), // 13: v1.ModifyMoneyForPlayerResponse - (*CanPlayerInteractWithNPCRequest)(nil), // 14: v1.CanPlayerInteractWithNPCRequest - (*CanPlayerInteractWithNPCResponse)(nil), // 15: v1.CanPlayerInteractWithNPCResponse - (*CanPlayerInteractWithGameObjectRequest)(nil), // 16: v1.CanPlayerInteractWithGameObjectRequest - (*CanPlayerInteractWithGameObjectResponse)(nil), // 17: v1.CanPlayerInteractWithGameObjectResponse - (*StartBattlegroundRequest)(nil), // 18: v1.StartBattlegroundRequest - (*StartBattlegroundResponse)(nil), // 19: v1.StartBattlegroundResponse - (*AddPlayersToBattlegroundRequest)(nil), // 20: v1.AddPlayersToBattlegroundRequest - (*AddPlayersToBattlegroundResponse)(nil), // 21: v1.AddPlayersToBattlegroundResponse - (*CanPlayerJoinBattlegroundQueueRequest)(nil), // 22: v1.CanPlayerJoinBattlegroundQueueRequest - (*CanPlayerJoinBattlegroundQueueResponse)(nil), // 23: v1.CanPlayerJoinBattlegroundQueueResponse - (*CanPlayerTeleportToBattlegroundRequest)(nil), // 24: v1.CanPlayerTeleportToBattlegroundRequest - (*CanPlayerTeleportToBattlegroundResponse)(nil), // 25: v1.CanPlayerTeleportToBattlegroundResponse - (*GetPlayerItemsByGuidsResponse_Item)(nil), // 26: v1.GetPlayerItemsByGuidsResponse.Item - (*AddExistingItemToPlayerRequest_Item)(nil), // 27: v1.AddExistingItemToPlayerRequest.Item + (TakePlayerItemByPosResponse_Status)(0), // 1: v1.TakePlayerItemByPosResponse.Status + (AddExistingItemToPlayerResponse_Status)(0), // 2: v1.AddExistingItemToPlayerResponse.Status + (CanPlayerJoinBattlegroundQueueResponse_Status)(0), // 3: v1.CanPlayerJoinBattlegroundQueueResponse.Status + (CanPlayerTeleportToBattlegroundResponse_Status)(0), // 4: v1.CanPlayerTeleportToBattlegroundResponse.Status + (GetLfgPlayerLockInfoResponse_Status)(0), // 5: v1.GetLfgPlayerLockInfoResponse.Status + (GetLfgPlayerInfoResponse_Status)(0), // 6: v1.GetLfgPlayerInfoResponse.Status + (GetLfgDungeonInfoResponse_Status)(0), // 7: v1.GetLfgDungeonInfoResponse.Status + (TeleportLfgPlayerResponse_Status)(0), // 8: v1.TeleportLfgPlayerResponse.Status + (SetLfgBootVoteResponse_Status)(0), // 9: v1.SetLfgBootVoteResponse.Status + (MaterializeLfgProposalResponse_Status)(0), // 10: v1.MaterializeLfgProposalResponse.Status + (CreateGuildResponse_Status)(0), // 11: v1.CreateGuildResponse.Status + (*GetPlayerItemsByGuidsRequest)(nil), // 12: v1.GetPlayerItemsByGuidsRequest + (*GetPlayerItemsByGuidsResponse)(nil), // 13: v1.GetPlayerItemsByGuidsResponse + (*TakePlayerItemByPosRequest)(nil), // 14: v1.TakePlayerItemByPosRequest + (*TakePlayerItemByPosResponse)(nil), // 15: v1.TakePlayerItemByPosResponse + (*RemoveItemsWithGuidsFromPlayerRequest)(nil), // 16: v1.RemoveItemsWithGuidsFromPlayerRequest + (*RemoveItemsWithGuidsFromPlayerResponse)(nil), // 17: v1.RemoveItemsWithGuidsFromPlayerResponse + (*AddExistingItemToPlayerRequest)(nil), // 18: v1.AddExistingItemToPlayerRequest + (*AddExistingItemToPlayerResponse)(nil), // 19: v1.AddExistingItemToPlayerResponse + (*GetMoneyForPlayerRequest)(nil), // 20: v1.GetMoneyForPlayerRequest + (*GetMoneyForPlayerResponse)(nil), // 21: v1.GetMoneyForPlayerResponse + (*ModifyMoneyForPlayerRequest)(nil), // 22: v1.ModifyMoneyForPlayerRequest + (*ModifyMoneyForPlayerResponse)(nil), // 23: v1.ModifyMoneyForPlayerResponse + (*CanPlayerInteractWithNPCRequest)(nil), // 24: v1.CanPlayerInteractWithNPCRequest + (*CanPlayerInteractWithNPCResponse)(nil), // 25: v1.CanPlayerInteractWithNPCResponse + (*CanPlayerInteractWithGameObjectRequest)(nil), // 26: v1.CanPlayerInteractWithGameObjectRequest + (*CanPlayerInteractWithGameObjectResponse)(nil), // 27: v1.CanPlayerInteractWithGameObjectResponse + (*StartBattlegroundRequest)(nil), // 28: v1.StartBattlegroundRequest + (*StartBattlegroundResponse)(nil), // 29: v1.StartBattlegroundResponse + (*AddPlayersToBattlegroundRequest)(nil), // 30: v1.AddPlayersToBattlegroundRequest + (*AddPlayersToBattlegroundResponse)(nil), // 31: v1.AddPlayersToBattlegroundResponse + (*CanPlayerJoinBattlegroundQueueRequest)(nil), // 32: v1.CanPlayerJoinBattlegroundQueueRequest + (*CanPlayerJoinBattlegroundQueueResponse)(nil), // 33: v1.CanPlayerJoinBattlegroundQueueResponse + (*CanPlayerTeleportToBattlegroundRequest)(nil), // 34: v1.CanPlayerTeleportToBattlegroundRequest + (*CanPlayerTeleportToBattlegroundResponse)(nil), // 35: v1.CanPlayerTeleportToBattlegroundResponse + (*LfgDungeonLock)(nil), // 36: v1.LfgDungeonLock + (*GetLfgPlayerLockInfoRequest)(nil), // 37: v1.GetLfgPlayerLockInfoRequest + (*GetLfgPlayerLockInfoResponse)(nil), // 38: v1.GetLfgPlayerLockInfoResponse + (*LfgRewardItem)(nil), // 39: v1.LfgRewardItem + (*LfgRandomDungeonInfo)(nil), // 40: v1.LfgRandomDungeonInfo + (*GetLfgPlayerInfoRequest)(nil), // 41: v1.GetLfgPlayerInfoRequest + (*GetLfgPlayerInfoResponse)(nil), // 42: v1.GetLfgPlayerInfoResponse + (*GetLfgDungeonInfoRequest)(nil), // 43: v1.GetLfgDungeonInfoRequest + (*GetLfgDungeonInfoResponse)(nil), // 44: v1.GetLfgDungeonInfoResponse + (*TeleportLfgPlayerRequest)(nil), // 45: v1.TeleportLfgPlayerRequest + (*TeleportLfgPlayerResponse)(nil), // 46: v1.TeleportLfgPlayerResponse + (*SetLfgBootVoteRequest)(nil), // 47: v1.SetLfgBootVoteRequest + (*SetLfgBootVoteResponse)(nil), // 48: v1.SetLfgBootVoteResponse + (*MaterializeLfgProposalRequest)(nil), // 49: v1.MaterializeLfgProposalRequest + (*MaterializeLfgProposalResponse)(nil), // 50: v1.MaterializeLfgProposalResponse + (*CreateGuildRequest)(nil), // 51: v1.CreateGuildRequest + (*CreateGuildResponse)(nil), // 52: v1.CreateGuildResponse + (*GetPlayerItemsByGuidsResponse_Item)(nil), // 53: v1.GetPlayerItemsByGuidsResponse.Item + (*TakePlayerItemByPosResponse_Item)(nil), // 54: v1.TakePlayerItemByPosResponse.Item + (*AddExistingItemToPlayerRequest_Item)(nil), // 55: v1.AddExistingItemToPlayerRequest.Item + (*MaterializeLfgProposalRequest_Member)(nil), // 56: v1.MaterializeLfgProposalRequest.Member } var file_worldserver_proto_depIdxs = []int32{ - 26, // 0: v1.GetPlayerItemsByGuidsResponse.items:type_name -> v1.GetPlayerItemsByGuidsResponse.Item - 27, // 1: v1.AddExistingItemToPlayerRequest.item:type_name -> v1.AddExistingItemToPlayerRequest.Item - 1, // 2: v1.AddExistingItemToPlayerResponse.status:type_name -> v1.AddExistingItemToPlayerResponse.Status - 0, // 3: v1.StartBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType - 0, // 4: v1.AddPlayersToBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType - 2, // 5: v1.CanPlayerJoinBattlegroundQueueResponse.status:type_name -> v1.CanPlayerJoinBattlegroundQueueResponse.Status - 3, // 6: v1.CanPlayerTeleportToBattlegroundResponse.status:type_name -> v1.CanPlayerTeleportToBattlegroundResponse.Status - 4, // 7: v1.WorldServerService.GetPlayerItemsByGuids:input_type -> v1.GetPlayerItemsByGuidsRequest - 6, // 8: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:input_type -> v1.RemoveItemsWithGuidsFromPlayerRequest - 8, // 9: v1.WorldServerService.AddExistingItemToPlayer:input_type -> v1.AddExistingItemToPlayerRequest - 10, // 10: v1.WorldServerService.GetMoneyForPlayer:input_type -> v1.GetMoneyForPlayerRequest - 12, // 11: v1.WorldServerService.ModifyMoneyForPlayer:input_type -> v1.ModifyMoneyForPlayerRequest - 14, // 12: v1.WorldServerService.CanPlayerInteractWithNPC:input_type -> v1.CanPlayerInteractWithNPCRequest - 16, // 13: v1.WorldServerService.CanPlayerInteractWithGameObject:input_type -> v1.CanPlayerInteractWithGameObjectRequest - 18, // 14: v1.WorldServerService.StartBattleground:input_type -> v1.StartBattlegroundRequest - 20, // 15: v1.WorldServerService.AddPlayersToBattleground:input_type -> v1.AddPlayersToBattlegroundRequest - 22, // 16: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:input_type -> v1.CanPlayerJoinBattlegroundQueueRequest - 24, // 17: v1.WorldServerService.CanPlayerTeleportToBattleground:input_type -> v1.CanPlayerTeleportToBattlegroundRequest - 5, // 18: v1.WorldServerService.GetPlayerItemsByGuids:output_type -> v1.GetPlayerItemsByGuidsResponse - 7, // 19: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:output_type -> v1.RemoveItemsWithGuidsFromPlayerResponse - 9, // 20: v1.WorldServerService.AddExistingItemToPlayer:output_type -> v1.AddExistingItemToPlayerResponse - 11, // 21: v1.WorldServerService.GetMoneyForPlayer:output_type -> v1.GetMoneyForPlayerResponse - 13, // 22: v1.WorldServerService.ModifyMoneyForPlayer:output_type -> v1.ModifyMoneyForPlayerResponse - 15, // 23: v1.WorldServerService.CanPlayerInteractWithNPC:output_type -> v1.CanPlayerInteractWithNPCResponse - 17, // 24: v1.WorldServerService.CanPlayerInteractWithGameObject:output_type -> v1.CanPlayerInteractWithGameObjectResponse - 19, // 25: v1.WorldServerService.StartBattleground:output_type -> v1.StartBattlegroundResponse - 21, // 26: v1.WorldServerService.AddPlayersToBattleground:output_type -> v1.AddPlayersToBattlegroundResponse - 23, // 27: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:output_type -> v1.CanPlayerJoinBattlegroundQueueResponse - 25, // 28: v1.WorldServerService.CanPlayerTeleportToBattleground:output_type -> v1.CanPlayerTeleportToBattlegroundResponse - 18, // [18:29] is the sub-list for method output_type - 7, // [7:18] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 53, // 0: v1.GetPlayerItemsByGuidsResponse.items:type_name -> v1.GetPlayerItemsByGuidsResponse.Item + 1, // 1: v1.TakePlayerItemByPosResponse.status:type_name -> v1.TakePlayerItemByPosResponse.Status + 54, // 2: v1.TakePlayerItemByPosResponse.item:type_name -> v1.TakePlayerItemByPosResponse.Item + 55, // 3: v1.AddExistingItemToPlayerRequest.item:type_name -> v1.AddExistingItemToPlayerRequest.Item + 2, // 4: v1.AddExistingItemToPlayerResponse.status:type_name -> v1.AddExistingItemToPlayerResponse.Status + 0, // 5: v1.StartBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType + 0, // 6: v1.AddPlayersToBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType + 3, // 7: v1.CanPlayerJoinBattlegroundQueueResponse.status:type_name -> v1.CanPlayerJoinBattlegroundQueueResponse.Status + 4, // 8: v1.CanPlayerTeleportToBattlegroundResponse.status:type_name -> v1.CanPlayerTeleportToBattlegroundResponse.Status + 5, // 9: v1.GetLfgPlayerLockInfoResponse.status:type_name -> v1.GetLfgPlayerLockInfoResponse.Status + 36, // 10: v1.GetLfgPlayerLockInfoResponse.locks:type_name -> v1.LfgDungeonLock + 39, // 11: v1.LfgRandomDungeonInfo.rewardItems:type_name -> v1.LfgRewardItem + 6, // 12: v1.GetLfgPlayerInfoResponse.status:type_name -> v1.GetLfgPlayerInfoResponse.Status + 40, // 13: v1.GetLfgPlayerInfoResponse.randomDungeons:type_name -> v1.LfgRandomDungeonInfo + 36, // 14: v1.GetLfgPlayerInfoResponse.locks:type_name -> v1.LfgDungeonLock + 7, // 15: v1.GetLfgDungeonInfoResponse.status:type_name -> v1.GetLfgDungeonInfoResponse.Status + 8, // 16: v1.TeleportLfgPlayerResponse.status:type_name -> v1.TeleportLfgPlayerResponse.Status + 9, // 17: v1.SetLfgBootVoteResponse.status:type_name -> v1.SetLfgBootVoteResponse.Status + 56, // 18: v1.MaterializeLfgProposalRequest.members:type_name -> v1.MaterializeLfgProposalRequest.Member + 10, // 19: v1.MaterializeLfgProposalResponse.status:type_name -> v1.MaterializeLfgProposalResponse.Status + 11, // 20: v1.CreateGuildResponse.status:type_name -> v1.CreateGuildResponse.Status + 12, // 21: v1.WorldServerService.GetPlayerItemsByGuids:input_type -> v1.GetPlayerItemsByGuidsRequest + 14, // 22: v1.WorldServerService.TakePlayerItemByPos:input_type -> v1.TakePlayerItemByPosRequest + 16, // 23: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:input_type -> v1.RemoveItemsWithGuidsFromPlayerRequest + 18, // 24: v1.WorldServerService.AddExistingItemToPlayer:input_type -> v1.AddExistingItemToPlayerRequest + 20, // 25: v1.WorldServerService.GetMoneyForPlayer:input_type -> v1.GetMoneyForPlayerRequest + 22, // 26: v1.WorldServerService.ModifyMoneyForPlayer:input_type -> v1.ModifyMoneyForPlayerRequest + 24, // 27: v1.WorldServerService.CanPlayerInteractWithNPC:input_type -> v1.CanPlayerInteractWithNPCRequest + 26, // 28: v1.WorldServerService.CanPlayerInteractWithGameObject:input_type -> v1.CanPlayerInteractWithGameObjectRequest + 28, // 29: v1.WorldServerService.StartBattleground:input_type -> v1.StartBattlegroundRequest + 30, // 30: v1.WorldServerService.AddPlayersToBattleground:input_type -> v1.AddPlayersToBattlegroundRequest + 32, // 31: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:input_type -> v1.CanPlayerJoinBattlegroundQueueRequest + 34, // 32: v1.WorldServerService.CanPlayerTeleportToBattleground:input_type -> v1.CanPlayerTeleportToBattlegroundRequest + 37, // 33: v1.WorldServerService.GetLfgPlayerLockInfo:input_type -> v1.GetLfgPlayerLockInfoRequest + 41, // 34: v1.WorldServerService.GetLfgPlayerInfo:input_type -> v1.GetLfgPlayerInfoRequest + 43, // 35: v1.WorldServerService.GetLfgDungeonInfo:input_type -> v1.GetLfgDungeonInfoRequest + 45, // 36: v1.WorldServerService.TeleportLfgPlayer:input_type -> v1.TeleportLfgPlayerRequest + 47, // 37: v1.WorldServerService.SetLfgBootVote:input_type -> v1.SetLfgBootVoteRequest + 49, // 38: v1.WorldServerService.MaterializeLfgProposal:input_type -> v1.MaterializeLfgProposalRequest + 51, // 39: v1.WorldServerService.CreateGuild:input_type -> v1.CreateGuildRequest + 13, // 40: v1.WorldServerService.GetPlayerItemsByGuids:output_type -> v1.GetPlayerItemsByGuidsResponse + 15, // 41: v1.WorldServerService.TakePlayerItemByPos:output_type -> v1.TakePlayerItemByPosResponse + 17, // 42: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:output_type -> v1.RemoveItemsWithGuidsFromPlayerResponse + 19, // 43: v1.WorldServerService.AddExistingItemToPlayer:output_type -> v1.AddExistingItemToPlayerResponse + 21, // 44: v1.WorldServerService.GetMoneyForPlayer:output_type -> v1.GetMoneyForPlayerResponse + 23, // 45: v1.WorldServerService.ModifyMoneyForPlayer:output_type -> v1.ModifyMoneyForPlayerResponse + 25, // 46: v1.WorldServerService.CanPlayerInteractWithNPC:output_type -> v1.CanPlayerInteractWithNPCResponse + 27, // 47: v1.WorldServerService.CanPlayerInteractWithGameObject:output_type -> v1.CanPlayerInteractWithGameObjectResponse + 29, // 48: v1.WorldServerService.StartBattleground:output_type -> v1.StartBattlegroundResponse + 31, // 49: v1.WorldServerService.AddPlayersToBattleground:output_type -> v1.AddPlayersToBattlegroundResponse + 33, // 50: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:output_type -> v1.CanPlayerJoinBattlegroundQueueResponse + 35, // 51: v1.WorldServerService.CanPlayerTeleportToBattleground:output_type -> v1.CanPlayerTeleportToBattlegroundResponse + 38, // 52: v1.WorldServerService.GetLfgPlayerLockInfo:output_type -> v1.GetLfgPlayerLockInfoResponse + 42, // 53: v1.WorldServerService.GetLfgPlayerInfo:output_type -> v1.GetLfgPlayerInfoResponse + 44, // 54: v1.WorldServerService.GetLfgDungeonInfo:output_type -> v1.GetLfgDungeonInfoResponse + 46, // 55: v1.WorldServerService.TeleportLfgPlayer:output_type -> v1.TeleportLfgPlayerResponse + 48, // 56: v1.WorldServerService.SetLfgBootVote:output_type -> v1.SetLfgBootVoteResponse + 50, // 57: v1.WorldServerService.MaterializeLfgProposal:output_type -> v1.MaterializeLfgProposalResponse + 52, // 58: v1.WorldServerService.CreateGuild:output_type -> v1.CreateGuildResponse + 40, // [40:59] is the sub-list for method output_type + 21, // [21:40] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_worldserver_proto_init() } @@ -2243,7 +4584,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveItemsWithGuidsFromPlayerRequest); i { + switch v := v.(*TakePlayerItemByPosRequest); i { case 0: return &v.state case 1: @@ -2255,7 +4596,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveItemsWithGuidsFromPlayerResponse); i { + switch v := v.(*TakePlayerItemByPosResponse); i { case 0: return &v.state case 1: @@ -2267,7 +4608,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddExistingItemToPlayerRequest); i { + switch v := v.(*RemoveItemsWithGuidsFromPlayerRequest); i { case 0: return &v.state case 1: @@ -2279,7 +4620,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddExistingItemToPlayerResponse); i { + switch v := v.(*RemoveItemsWithGuidsFromPlayerResponse); i { case 0: return &v.state case 1: @@ -2291,7 +4632,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMoneyForPlayerRequest); i { + switch v := v.(*AddExistingItemToPlayerRequest); i { case 0: return &v.state case 1: @@ -2303,7 +4644,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMoneyForPlayerResponse); i { + switch v := v.(*AddExistingItemToPlayerResponse); i { case 0: return &v.state case 1: @@ -2315,7 +4656,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ModifyMoneyForPlayerRequest); i { + switch v := v.(*GetMoneyForPlayerRequest); i { case 0: return &v.state case 1: @@ -2327,7 +4668,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ModifyMoneyForPlayerResponse); i { + switch v := v.(*GetMoneyForPlayerResponse); i { case 0: return &v.state case 1: @@ -2339,7 +4680,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithNPCRequest); i { + switch v := v.(*ModifyMoneyForPlayerRequest); i { case 0: return &v.state case 1: @@ -2351,7 +4692,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithNPCResponse); i { + switch v := v.(*ModifyMoneyForPlayerResponse); i { case 0: return &v.state case 1: @@ -2363,7 +4704,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithGameObjectRequest); i { + switch v := v.(*CanPlayerInteractWithNPCRequest); i { case 0: return &v.state case 1: @@ -2375,7 +4716,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithGameObjectResponse); i { + switch v := v.(*CanPlayerInteractWithNPCResponse); i { case 0: return &v.state case 1: @@ -2387,7 +4728,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartBattlegroundRequest); i { + switch v := v.(*CanPlayerInteractWithGameObjectRequest); i { case 0: return &v.state case 1: @@ -2399,7 +4740,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartBattlegroundResponse); i { + switch v := v.(*CanPlayerInteractWithGameObjectResponse); i { case 0: return &v.state case 1: @@ -2411,7 +4752,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddPlayersToBattlegroundRequest); i { + switch v := v.(*StartBattlegroundRequest); i { case 0: return &v.state case 1: @@ -2423,7 +4764,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddPlayersToBattlegroundResponse); i { + switch v := v.(*StartBattlegroundResponse); i { case 0: return &v.state case 1: @@ -2435,7 +4776,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerJoinBattlegroundQueueRequest); i { + switch v := v.(*AddPlayersToBattlegroundRequest); i { case 0: return &v.state case 1: @@ -2447,7 +4788,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerJoinBattlegroundQueueResponse); i { + switch v := v.(*AddPlayersToBattlegroundResponse); i { case 0: return &v.state case 1: @@ -2459,7 +4800,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerTeleportToBattlegroundRequest); i { + switch v := v.(*CanPlayerJoinBattlegroundQueueRequest); i { case 0: return &v.state case 1: @@ -2471,7 +4812,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerTeleportToBattlegroundResponse); i { + switch v := v.(*CanPlayerJoinBattlegroundQueueResponse); i { case 0: return &v.state case 1: @@ -2483,7 +4824,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPlayerItemsByGuidsResponse_Item); i { + switch v := v.(*CanPlayerTeleportToBattlegroundRequest); i { case 0: return &v.state case 1: @@ -2495,6 +4836,246 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CanPlayerTeleportToBattlegroundResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgDungeonLock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerLockInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerLockInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgRewardItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgRandomDungeonInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TeleportLfgPlayerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TeleportLfgPlayerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgBootVoteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgBootVoteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializeLfgProposalRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializeLfgProposalResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGuildRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGuildResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPlayerItemsByGuidsResponse_Item); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TakePlayerItemByPosResponse_Item); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddExistingItemToPlayerRequest_Item); i { case 0: return &v.state @@ -2506,14 +5087,26 @@ func file_worldserver_proto_init() { return nil } } + file_worldserver_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializeLfgProposalRequest_Member); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_worldserver_proto_rawDesc, - NumEnums: 4, - NumMessages: 24, + NumEnums: 12, + NumMessages: 45, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/worldserver/pb/worldserver_grpc.pb.go b/gen/worldserver/pb/worldserver_grpc.pb.go index 769043a..cf54e4e 100644 --- a/gen/worldserver/pb/worldserver_grpc.pb.go +++ b/gen/worldserver/pb/worldserver_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: worldserver.proto package pb @@ -20,6 +20,7 @@ const _ = grpc.SupportPackageIsVersion7 const ( WorldServerService_GetPlayerItemsByGuids_FullMethodName = "/v1.WorldServerService/GetPlayerItemsByGuids" + WorldServerService_TakePlayerItemByPos_FullMethodName = "/v1.WorldServerService/TakePlayerItemByPos" WorldServerService_RemoveItemsWithGuidsFromPlayer_FullMethodName = "/v1.WorldServerService/RemoveItemsWithGuidsFromPlayer" WorldServerService_AddExistingItemToPlayer_FullMethodName = "/v1.WorldServerService/AddExistingItemToPlayer" WorldServerService_GetMoneyForPlayer_FullMethodName = "/v1.WorldServerService/GetMoneyForPlayer" @@ -30,6 +31,13 @@ const ( WorldServerService_AddPlayersToBattleground_FullMethodName = "/v1.WorldServerService/AddPlayersToBattleground" WorldServerService_CanPlayerJoinBattlegroundQueue_FullMethodName = "/v1.WorldServerService/CanPlayerJoinBattlegroundQueue" WorldServerService_CanPlayerTeleportToBattleground_FullMethodName = "/v1.WorldServerService/CanPlayerTeleportToBattleground" + WorldServerService_GetLfgPlayerLockInfo_FullMethodName = "/v1.WorldServerService/GetLfgPlayerLockInfo" + WorldServerService_GetLfgPlayerInfo_FullMethodName = "/v1.WorldServerService/GetLfgPlayerInfo" + WorldServerService_GetLfgDungeonInfo_FullMethodName = "/v1.WorldServerService/GetLfgDungeonInfo" + WorldServerService_TeleportLfgPlayer_FullMethodName = "/v1.WorldServerService/TeleportLfgPlayer" + WorldServerService_SetLfgBootVote_FullMethodName = "/v1.WorldServerService/SetLfgBootVote" + WorldServerService_MaterializeLfgProposal_FullMethodName = "/v1.WorldServerService/MaterializeLfgProposal" + WorldServerService_CreateGuild_FullMethodName = "/v1.WorldServerService/CreateGuild" ) // WorldServerServiceClient is the client API for WorldServerService service. @@ -38,6 +46,7 @@ const ( type WorldServerServiceClient interface { // Items GetPlayerItemsByGuids(ctx context.Context, in *GetPlayerItemsByGuidsRequest, opts ...grpc.CallOption) (*GetPlayerItemsByGuidsResponse, error) + TakePlayerItemByPos(ctx context.Context, in *TakePlayerItemByPosRequest, opts ...grpc.CallOption) (*TakePlayerItemByPosResponse, error) RemoveItemsWithGuidsFromPlayer(ctx context.Context, in *RemoveItemsWithGuidsFromPlayerRequest, opts ...grpc.CallOption) (*RemoveItemsWithGuidsFromPlayerResponse, error) AddExistingItemToPlayer(ctx context.Context, in *AddExistingItemToPlayerRequest, opts ...grpc.CallOption) (*AddExistingItemToPlayerResponse, error) // Money @@ -51,6 +60,15 @@ type WorldServerServiceClient interface { AddPlayersToBattleground(ctx context.Context, in *AddPlayersToBattlegroundRequest, opts ...grpc.CallOption) (*AddPlayersToBattlegroundResponse, error) CanPlayerJoinBattlegroundQueue(ctx context.Context, in *CanPlayerJoinBattlegroundQueueRequest, opts ...grpc.CallOption) (*CanPlayerJoinBattlegroundQueueResponse, error) CanPlayerTeleportToBattleground(ctx context.Context, in *CanPlayerTeleportToBattlegroundRequest, opts ...grpc.CallOption) (*CanPlayerTeleportToBattlegroundResponse, error) + // LFG + GetLfgPlayerLockInfo(ctx context.Context, in *GetLfgPlayerLockInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerLockInfoResponse, error) + GetLfgPlayerInfo(ctx context.Context, in *GetLfgPlayerInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerInfoResponse, error) + GetLfgDungeonInfo(ctx context.Context, in *GetLfgDungeonInfoRequest, opts ...grpc.CallOption) (*GetLfgDungeonInfoResponse, error) + TeleportLfgPlayer(ctx context.Context, in *TeleportLfgPlayerRequest, opts ...grpc.CallOption) (*TeleportLfgPlayerResponse, error) + SetLfgBootVote(ctx context.Context, in *SetLfgBootVoteRequest, opts ...grpc.CallOption) (*SetLfgBootVoteResponse, error) + MaterializeLfgProposal(ctx context.Context, in *MaterializeLfgProposalRequest, opts ...grpc.CallOption) (*MaterializeLfgProposalResponse, error) + // Guilds + CreateGuild(ctx context.Context, in *CreateGuildRequest, opts ...grpc.CallOption) (*CreateGuildResponse, error) } type worldServerServiceClient struct { @@ -70,6 +88,15 @@ func (c *worldServerServiceClient) GetPlayerItemsByGuids(ctx context.Context, in return out, nil } +func (c *worldServerServiceClient) TakePlayerItemByPos(ctx context.Context, in *TakePlayerItemByPosRequest, opts ...grpc.CallOption) (*TakePlayerItemByPosResponse, error) { + out := new(TakePlayerItemByPosResponse) + err := c.cc.Invoke(ctx, WorldServerService_TakePlayerItemByPos_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *worldServerServiceClient) RemoveItemsWithGuidsFromPlayer(ctx context.Context, in *RemoveItemsWithGuidsFromPlayerRequest, opts ...grpc.CallOption) (*RemoveItemsWithGuidsFromPlayerResponse, error) { out := new(RemoveItemsWithGuidsFromPlayerResponse) err := c.cc.Invoke(ctx, WorldServerService_RemoveItemsWithGuidsFromPlayer_FullMethodName, in, out, opts...) @@ -160,12 +187,76 @@ func (c *worldServerServiceClient) CanPlayerTeleportToBattleground(ctx context.C return out, nil } +func (c *worldServerServiceClient) GetLfgPlayerLockInfo(ctx context.Context, in *GetLfgPlayerLockInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerLockInfoResponse, error) { + out := new(GetLfgPlayerLockInfoResponse) + err := c.cc.Invoke(ctx, WorldServerService_GetLfgPlayerLockInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) GetLfgPlayerInfo(ctx context.Context, in *GetLfgPlayerInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerInfoResponse, error) { + out := new(GetLfgPlayerInfoResponse) + err := c.cc.Invoke(ctx, WorldServerService_GetLfgPlayerInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) GetLfgDungeonInfo(ctx context.Context, in *GetLfgDungeonInfoRequest, opts ...grpc.CallOption) (*GetLfgDungeonInfoResponse, error) { + out := new(GetLfgDungeonInfoResponse) + err := c.cc.Invoke(ctx, WorldServerService_GetLfgDungeonInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) TeleportLfgPlayer(ctx context.Context, in *TeleportLfgPlayerRequest, opts ...grpc.CallOption) (*TeleportLfgPlayerResponse, error) { + out := new(TeleportLfgPlayerResponse) + err := c.cc.Invoke(ctx, WorldServerService_TeleportLfgPlayer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) SetLfgBootVote(ctx context.Context, in *SetLfgBootVoteRequest, opts ...grpc.CallOption) (*SetLfgBootVoteResponse, error) { + out := new(SetLfgBootVoteResponse) + err := c.cc.Invoke(ctx, WorldServerService_SetLfgBootVote_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) MaterializeLfgProposal(ctx context.Context, in *MaterializeLfgProposalRequest, opts ...grpc.CallOption) (*MaterializeLfgProposalResponse, error) { + out := new(MaterializeLfgProposalResponse) + err := c.cc.Invoke(ctx, WorldServerService_MaterializeLfgProposal_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) CreateGuild(ctx context.Context, in *CreateGuildRequest, opts ...grpc.CallOption) (*CreateGuildResponse, error) { + out := new(CreateGuildResponse) + err := c.cc.Invoke(ctx, WorldServerService_CreateGuild_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // WorldServerServiceServer is the server API for WorldServerService service. // All implementations must embed UnimplementedWorldServerServiceServer // for forward compatibility type WorldServerServiceServer interface { // Items GetPlayerItemsByGuids(context.Context, *GetPlayerItemsByGuidsRequest) (*GetPlayerItemsByGuidsResponse, error) + TakePlayerItemByPos(context.Context, *TakePlayerItemByPosRequest) (*TakePlayerItemByPosResponse, error) RemoveItemsWithGuidsFromPlayer(context.Context, *RemoveItemsWithGuidsFromPlayerRequest) (*RemoveItemsWithGuidsFromPlayerResponse, error) AddExistingItemToPlayer(context.Context, *AddExistingItemToPlayerRequest) (*AddExistingItemToPlayerResponse, error) // Money @@ -179,6 +270,15 @@ type WorldServerServiceServer interface { AddPlayersToBattleground(context.Context, *AddPlayersToBattlegroundRequest) (*AddPlayersToBattlegroundResponse, error) CanPlayerJoinBattlegroundQueue(context.Context, *CanPlayerJoinBattlegroundQueueRequest) (*CanPlayerJoinBattlegroundQueueResponse, error) CanPlayerTeleportToBattleground(context.Context, *CanPlayerTeleportToBattlegroundRequest) (*CanPlayerTeleportToBattlegroundResponse, error) + // LFG + GetLfgPlayerLockInfo(context.Context, *GetLfgPlayerLockInfoRequest) (*GetLfgPlayerLockInfoResponse, error) + GetLfgPlayerInfo(context.Context, *GetLfgPlayerInfoRequest) (*GetLfgPlayerInfoResponse, error) + GetLfgDungeonInfo(context.Context, *GetLfgDungeonInfoRequest) (*GetLfgDungeonInfoResponse, error) + TeleportLfgPlayer(context.Context, *TeleportLfgPlayerRequest) (*TeleportLfgPlayerResponse, error) + SetLfgBootVote(context.Context, *SetLfgBootVoteRequest) (*SetLfgBootVoteResponse, error) + MaterializeLfgProposal(context.Context, *MaterializeLfgProposalRequest) (*MaterializeLfgProposalResponse, error) + // Guilds + CreateGuild(context.Context, *CreateGuildRequest) (*CreateGuildResponse, error) mustEmbedUnimplementedWorldServerServiceServer() } @@ -189,6 +289,9 @@ type UnimplementedWorldServerServiceServer struct { func (UnimplementedWorldServerServiceServer) GetPlayerItemsByGuids(context.Context, *GetPlayerItemsByGuidsRequest) (*GetPlayerItemsByGuidsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPlayerItemsByGuids not implemented") } +func (UnimplementedWorldServerServiceServer) TakePlayerItemByPos(context.Context, *TakePlayerItemByPosRequest) (*TakePlayerItemByPosResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TakePlayerItemByPos not implemented") +} func (UnimplementedWorldServerServiceServer) RemoveItemsWithGuidsFromPlayer(context.Context, *RemoveItemsWithGuidsFromPlayerRequest) (*RemoveItemsWithGuidsFromPlayerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveItemsWithGuidsFromPlayer not implemented") } @@ -219,6 +322,27 @@ func (UnimplementedWorldServerServiceServer) CanPlayerJoinBattlegroundQueue(cont func (UnimplementedWorldServerServiceServer) CanPlayerTeleportToBattleground(context.Context, *CanPlayerTeleportToBattlegroundRequest) (*CanPlayerTeleportToBattlegroundResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CanPlayerTeleportToBattleground not implemented") } +func (UnimplementedWorldServerServiceServer) GetLfgPlayerLockInfo(context.Context, *GetLfgPlayerLockInfoRequest) (*GetLfgPlayerLockInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgPlayerLockInfo not implemented") +} +func (UnimplementedWorldServerServiceServer) GetLfgPlayerInfo(context.Context, *GetLfgPlayerInfoRequest) (*GetLfgPlayerInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgPlayerInfo not implemented") +} +func (UnimplementedWorldServerServiceServer) GetLfgDungeonInfo(context.Context, *GetLfgDungeonInfoRequest) (*GetLfgDungeonInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgDungeonInfo not implemented") +} +func (UnimplementedWorldServerServiceServer) TeleportLfgPlayer(context.Context, *TeleportLfgPlayerRequest) (*TeleportLfgPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TeleportLfgPlayer not implemented") +} +func (UnimplementedWorldServerServiceServer) SetLfgBootVote(context.Context, *SetLfgBootVoteRequest) (*SetLfgBootVoteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetLfgBootVote not implemented") +} +func (UnimplementedWorldServerServiceServer) MaterializeLfgProposal(context.Context, *MaterializeLfgProposalRequest) (*MaterializeLfgProposalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MaterializeLfgProposal not implemented") +} +func (UnimplementedWorldServerServiceServer) CreateGuild(context.Context, *CreateGuildRequest) (*CreateGuildResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateGuild not implemented") +} func (UnimplementedWorldServerServiceServer) mustEmbedUnimplementedWorldServerServiceServer() {} // UnsafeWorldServerServiceServer may be embedded to opt out of forward compatibility for this service. @@ -250,6 +374,24 @@ func _WorldServerService_GetPlayerItemsByGuids_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _WorldServerService_TakePlayerItemByPos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TakePlayerItemByPosRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).TakePlayerItemByPos(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_TakePlayerItemByPos_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).TakePlayerItemByPos(ctx, req.(*TakePlayerItemByPosRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _WorldServerService_RemoveItemsWithGuidsFromPlayer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RemoveItemsWithGuidsFromPlayerRequest) if err := dec(in); err != nil { @@ -430,6 +572,132 @@ func _WorldServerService_CanPlayerTeleportToBattleground_Handler(srv interface{} return interceptor(ctx, in, info, handler) } +func _WorldServerService_GetLfgPlayerLockInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgPlayerLockInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).GetLfgPlayerLockInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_GetLfgPlayerLockInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).GetLfgPlayerLockInfo(ctx, req.(*GetLfgPlayerLockInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_GetLfgPlayerInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgPlayerInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).GetLfgPlayerInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_GetLfgPlayerInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).GetLfgPlayerInfo(ctx, req.(*GetLfgPlayerInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_GetLfgDungeonInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgDungeonInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).GetLfgDungeonInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_GetLfgDungeonInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).GetLfgDungeonInfo(ctx, req.(*GetLfgDungeonInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_TeleportLfgPlayer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TeleportLfgPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).TeleportLfgPlayer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_TeleportLfgPlayer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).TeleportLfgPlayer(ctx, req.(*TeleportLfgPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_SetLfgBootVote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetLfgBootVoteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).SetLfgBootVote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_SetLfgBootVote_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).SetLfgBootVote(ctx, req.(*SetLfgBootVoteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_MaterializeLfgProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MaterializeLfgProposalRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).MaterializeLfgProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_MaterializeLfgProposal_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).MaterializeLfgProposal(ctx, req.(*MaterializeLfgProposalRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_CreateGuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateGuildRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).CreateGuild(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_CreateGuild_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).CreateGuild(ctx, req.(*CreateGuildRequest)) + } + return interceptor(ctx, in, info, handler) +} + // WorldServerService_ServiceDesc is the grpc.ServiceDesc for WorldServerService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -441,6 +709,10 @@ var WorldServerService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetPlayerItemsByGuids", Handler: _WorldServerService_GetPlayerItemsByGuids_Handler, }, + { + MethodName: "TakePlayerItemByPos", + Handler: _WorldServerService_TakePlayerItemByPos_Handler, + }, { MethodName: "RemoveItemsWithGuidsFromPlayer", Handler: _WorldServerService_RemoveItemsWithGuidsFromPlayer_Handler, @@ -481,6 +753,34 @@ var WorldServerService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CanPlayerTeleportToBattleground", Handler: _WorldServerService_CanPlayerTeleportToBattleground_Handler, }, + { + MethodName: "GetLfgPlayerLockInfo", + Handler: _WorldServerService_GetLfgPlayerLockInfo_Handler, + }, + { + MethodName: "GetLfgPlayerInfo", + Handler: _WorldServerService_GetLfgPlayerInfo_Handler, + }, + { + MethodName: "GetLfgDungeonInfo", + Handler: _WorldServerService_GetLfgDungeonInfo_Handler, + }, + { + MethodName: "TeleportLfgPlayer", + Handler: _WorldServerService_TeleportLfgPlayer_Handler, + }, + { + MethodName: "SetLfgBootVote", + Handler: _WorldServerService_SetLfgBootVote_Handler, + }, + { + MethodName: "MaterializeLfgProposal", + Handler: _WorldServerService_MaterializeLfgProposal_Handler, + }, + { + MethodName: "CreateGuild", + Handler: _WorldServerService_CreateGuild_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "worldserver.proto", diff --git a/go.mod b/go.mod index efd3cfb..a58dd15 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.22 require ( github.com/go-mysql-org/go-mysql v1.10.1-0.20241221150101-2f4217957dd5 github.com/go-sql-driver/mysql v1.8.1 + github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/nats-io/nats.go v1.38.0 github.com/pingcap/tidb/pkg/parser v0.0.0-20250124080159-3f742662039e @@ -21,13 +22,13 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect + github.com/DATA-DOG/go-sqlmock v1.5.2 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/goccy/go-json v0.10.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/mattn/go-colorable v0.1.14 // indirect diff --git a/go.sum b/go.sum index fab66ab..4aa21fb 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= +github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -42,6 +44,7 @@ github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2l github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= diff --git a/shared/authidentity/identity.go b/shared/authidentity/identity.go new file mode 100644 index 0000000..388f1ed --- /dev/null +++ b/shared/authidentity/identity.go @@ -0,0 +1,116 @@ +package authidentity + +import "strings" + +const ( + MaxClassicUsernameLen = 16 + MaxEmailLen = 255 +) + +func NormalizeLoginIdentity(identity string) string { + return strings.TrimSpace(identity) +} + +func IsValidLoginIdentity(identity string) bool { + normalized := NormalizeLoginIdentity(identity) + if identity != normalized { + return false + } + return IsValidClassicUsername(normalized) +} + +func IsValidClassicUsername(username string) bool { + if len(username) == 0 || len(username) > MaxClassicUsernameLen { + return false + } + for i := 0; i < len(username); i++ { + c := username[i] + if isASCIILetter(c) || isASCIIDigit(c) || c == '_' || c == '-' || c == '.' { + continue + } + return false + } + return true +} + +func IsValidEmail(email string) bool { + normalized := NormalizeLoginIdentity(email) + if email != normalized { + return false + } + email = normalized + if len(email) == 0 || len(email) > MaxEmailLen || !isPrintableASCII(email) { + return false + } + if strings.Count(email, "@") != 1 { + return false + } + + parts := strings.Split(email, "@") + local, domain := parts[0], parts[1] + if !isValidEmailLocalPart(local) || !isValidEmailDomain(domain) { + return false + } + return true +} + +func isValidEmailLocalPart(local string) bool { + if len(local) == 0 || len(local) > 64 { + return false + } + if local[0] == '.' || local[len(local)-1] == '.' || strings.Contains(local, "..") { + return false + } + for i := 0; i < len(local); i++ { + c := local[i] + if isASCIILetter(c) || isASCIIDigit(c) { + continue + } + switch c { + case '.', '_', '%', '+', '-': + continue + default: + return false + } + } + return true +} + +func isValidEmailDomain(domain string) bool { + if len(domain) == 0 || len(domain) > 253 || !strings.Contains(domain, ".") { + return false + } + labels := strings.Split(domain, ".") + for _, label := range labels { + if len(label) == 0 || len(label) > 63 { + return false + } + if label[0] == '-' || label[len(label)-1] == '-' { + return false + } + for i := 0; i < len(label); i++ { + c := label[i] + if !isASCIILetter(c) && !isASCIIDigit(c) && c != '-' { + return false + } + } + } + return true +} + +func isPrintableASCII(value string) bool { + for i := 0; i < len(value); i++ { + if value[i] < 0x21 || value[i] > 0x7E { + return false + } + } + return true +} + +func isASCIILetter(c byte) bool { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') +} + +func isASCIIDigit(c byte) bool { + return c >= '0' && c <= '9' +} diff --git a/shared/events/consumer-gateway.go b/shared/events/consumer-gateway.go index d7b33d3..60d86c4 100644 --- a/shared/events/consumer-gateway.go +++ b/shared/events/consumer-gateway.go @@ -10,6 +10,11 @@ type GWCharacterLoggedInHandler interface { HandleCharacterLoggedIn(payload GWEventCharacterLoggedInPayload) error } +type GWGatewayStartedHandler interface { + // HandleGatewayStarted handles gateway lifecycle start events. + HandleGatewayStarted(payload GWEventGatewayStartedPayload) error +} + type GWCharacterLoggedOutHandler interface { // HandleCharacterLoggedOut handles player logged out events. HandleCharacterLoggedOut(payload GWEventCharacterLoggedOutPayload) error @@ -20,6 +25,11 @@ type GWCharactersUpdatesHandler interface { HandleCharactersUpdates(payload GWEventCharactersUpdatesPayload) error } +type GWGuildCreatedHandler interface { + // HandleGuildCreated handles guild creation events observed by gateway. + HandleGuildCreated(payload GWEventGuildCreatedPayload) error +} + // GatewayConsumer listens to gateway events and handles events if there are handlers. type GatewayConsumer interface { // Listen is non-blocking operation that listens to the gateway events. @@ -37,10 +47,12 @@ func NewGatewayConsumer(nc *nats.Conn, options ...GatewayConsumerOption) Gateway opt.apply(params) } return &gatewayConsumerImpl{ - nc: nc, - loggedInHandler: params.loggedInHandler, - loggedOutHandler: params.loggedOutHandler, - charsUpdatesHandler: params.charsUpdatesHandler, + nc: nc, + gatewayStartedHandler: params.gatewayStartedHandler, + loggedInHandler: params.loggedInHandler, + loggedOutHandler: params.loggedOutHandler, + charsUpdatesHandler: params.charsUpdatesHandler, + guildCreatedHandler: params.guildCreatedHandler, } } @@ -49,6 +61,14 @@ type GatewayConsumerOption interface { apply(*gatewayConsumerParams) } +// WithGWConsumerGatewayStartedHandler creates gateway consumer option with gateway started handler. +// If not specified, listener will ignore this kind of events. +func WithGWConsumerGatewayStartedHandler(h GWGatewayStartedHandler) GatewayConsumerOption { + return newFuncGatewayConsumerOption(func(params *gatewayConsumerParams) { + params.gatewayStartedHandler = h + }) +} + // WithGWConsumerLoggedInHandler creates gateway consumer option with logged in handler. // If not specified, listener will ignore these kind of events. func WithGWConsumerLoggedInHandler(h GWCharacterLoggedInHandler) GatewayConsumerOption { @@ -73,6 +93,14 @@ func WithGWConsumerCharsUpdatesHandler(h GWCharactersUpdatesHandler) GatewayCons }) } +// WithGWConsumerGuildCreatedHandler creates gateway consumer option with guild created handler. +// If not specified, listener will ignore this kind of events. +func WithGWConsumerGuildCreatedHandler(h GWGuildCreatedHandler) GatewayConsumerOption { + return newFuncGatewayConsumerOption(func(params *gatewayConsumerParams) { + params.guildCreatedHandler = h + }) +} + // funcGatewayConsumerOption wraps a function that modifies funcGatewayConsumerOption into an // implementation of the GatewayConsumerOption interface. type funcGatewayConsumerOption struct { @@ -91,9 +119,11 @@ func newFuncGatewayConsumerOption(f func(*gatewayConsumerParams)) *funcGatewayCo // gatewayConsumerParams list of all possible parameters of GatewayConsumer. type gatewayConsumerParams struct { - loggedInHandler GWCharacterLoggedInHandler - loggedOutHandler GWCharacterLoggedOutHandler - charsUpdatesHandler GWCharactersUpdatesHandler + gatewayStartedHandler GWGatewayStartedHandler + loggedInHandler GWCharacterLoggedInHandler + loggedOutHandler GWCharacterLoggedOutHandler + charsUpdatesHandler GWCharactersUpdatesHandler + guildCreatedHandler GWGuildCreatedHandler } // gatewayConsumerImpl implementation of GatewayConsumer. @@ -102,13 +132,37 @@ type gatewayConsumerImpl struct { // subs is all subscriptions list. subs []*nats.Subscription - loggedInHandler GWCharacterLoggedInHandler - loggedOutHandler GWCharacterLoggedOutHandler - charsUpdatesHandler GWCharactersUpdatesHandler + gatewayStartedHandler GWGatewayStartedHandler + loggedInHandler GWCharacterLoggedInHandler + loggedOutHandler GWCharacterLoggedOutHandler + charsUpdatesHandler GWCharactersUpdatesHandler + guildCreatedHandler GWGuildCreatedHandler } // Listen is non-blocking operation that listens to gateway events. func (c *gatewayConsumerImpl) Listen() error { + if c.gatewayStartedHandler != nil { + sub, err := c.nc.Subscribe(GWEventGatewayStarted.SubjectName(), func(msg *nats.Msg) { + payload := GWEventGatewayStartedPayload{} + _, err := Unmarshal(msg.Data, &payload) + if err != nil { + log.Error().Err(err).Msg("can't read GWEventGatewayStarted (payload part) event") + return + } + + err = c.gatewayStartedHandler.HandleGatewayStarted(payload) + if err != nil { + log.Error().Err(err).Msg("can't handle GWEventGatewayStarted event") + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) + } + if c.loggedInHandler != nil { sub, err := c.nc.Subscribe(GWEventCharacterLoggedIn.SubjectName(), func(msg *nats.Msg) { loggedInP := GWEventCharacterLoggedInPayload{} @@ -175,6 +229,28 @@ func (c *gatewayConsumerImpl) Listen() error { c.subs = append(c.subs, sub) } + if c.guildCreatedHandler != nil { + sub, err := c.nc.Subscribe(GWEventGuildCreated.SubjectName(), func(msg *nats.Msg) { + guildCreatedP := GWEventGuildCreatedPayload{} + _, err := Unmarshal(msg.Data, &guildCreatedP) + if err != nil { + log.Error().Err(err).Msg("can't read GWEventGuildCreated (payload part) event") + return + } + + err = c.guildCreatedHandler.HandleGuildCreated(guildCreatedP) + if err != nil { + log.Error().Err(err).Msg("can't handle GWEventGuildCreated event") + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) + } + return nil } diff --git a/shared/events/consumer-group.go b/shared/events/consumer-group.go index 086bee8..caa68dc 100644 --- a/shared/events/consumer-group.go +++ b/shared/events/consumer-group.go @@ -10,6 +10,11 @@ type GroupEventInviteCreatedHandler interface { GroupInviteCreatedEvent(payload *GroupEventInviteCreatedPayload) error } +type GroupEventInviteDeclinedHandler interface { + // GroupInviteDeclinedEvent handles group invite declined events. + GroupInviteDeclinedEvent(payload *GroupEventInviteDeclinedPayload) error +} + type GroupEventGroupCreatedHandler interface { // GroupCreatedEvent handles group invite created events. GroupCreatedEvent(payload *GroupEventGroupCreatedPayload) error @@ -65,6 +70,42 @@ type GroupEventGroupDifficultyChangedHandler interface { GroupDifficultyChangedEvent(payload *GroupEventGroupDifficultyChangedPayload) error } +type GroupEventReadyCheckStartedHandler interface { + GroupReadyCheckStartedEvent(payload *GroupEventReadyCheckStartedPayload) error +} + +type GroupEventReadyCheckMemberStateHandler interface { + GroupReadyCheckMemberStateEvent(payload *GroupEventReadyCheckMemberStatePayload) error +} + +type GroupEventReadyCheckFinishedHandler interface { + GroupReadyCheckFinishedEvent(payload *GroupEventReadyCheckFinishedPayload) error +} + +type GroupEventMemberSubGroupChangedHandler interface { + GroupMemberSubGroupChangedEvent(payload *GroupEventMemberSubGroupChangedPayload) error +} + +type GroupEventMemberFlagsChangedHandler interface { + GroupMemberFlagsChangedEvent(payload *GroupEventMemberFlagsChangedPayload) error +} + +type GroupEventMemberStateChangedHandler interface { + GroupMemberStateChangedEvent(payload *GroupEventMemberStateChangedPayload) error +} + +type GroupEventMemberStatesChangedHandler interface { + GroupMemberStatesChangedEvent(payload *GroupEventMemberStatesChangedPayload) error +} + +type GroupEventInstanceResetRequestHandler interface { + GroupInstanceResetRequestEvent(payload *GroupEventInstanceResetRequestPayload) error +} + +type GroupEventInstanceBindExtensionRequestHandler interface { + GroupInstanceBindExtensionRequestEvent(payload *GroupEventInstanceBindExtensionRequestPayload) error +} + // GroupEventsConsumer listens to group events and handles events if there are handlers. type GroupEventsConsumer interface { // Listen is non-blocking operation that listens to the group events. @@ -84,6 +125,7 @@ func NewGroupEventsConsumer(nc *nats.Conn, options ...GroupEventsConsumerOption) return &groupEventsConsumerImpl{ nc: nc, inviteCreatedHandler: params.inviteCreatedHandler, + inviteDeclinedHandler: params.inviteDeclinedHandler, groupCreatedHandler: params.groupCreatedHandler, groupMemberOnlineStatusChangedHandler: params.groupMemberOnlineStatusChangedHandler, groupMemberLeftHandler: params.groupMemberLeftHandler, @@ -95,6 +137,15 @@ func NewGroupEventsConsumer(nc *nats.Conn, options ...GroupEventsConsumerOption) newMessageHandler: params.newMessageHandler, newTargetIconHandler: params.newTargetIconHandler, difficultyChangedHandler: params.difficultyChangedHandler, + readyCheckStartedHandler: params.readyCheckStartedHandler, + readyCheckMemberStateHandler: params.readyCheckMemberStateHandler, + readyCheckFinishedHandler: params.readyCheckFinishedHandler, + memberSubGroupChangedHandler: params.memberSubGroupChangedHandler, + memberFlagsChangedHandler: params.memberFlagsChangedHandler, + memberStateChangedHandler: params.memberStateChangedHandler, + memberStatesChangedHandler: params.memberStatesChangedHandler, + instanceResetRequestHandler: params.instanceResetRequestHandler, + instanceBindExtensionRequestHandler: params.instanceBindExtensionRequestHandler, } } @@ -111,6 +162,14 @@ func WithGroupEventConsumerInviteCreatedHandler(h GroupEventInviteCreatedHandler }) } +// WithGroupEventConsumerInviteDeclinedHandler creates group events consumer option with invite declined handler. +// If not specified, listener will ignore this kind of events. +func WithGroupEventConsumerInviteDeclinedHandler(h GroupEventInviteDeclinedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.inviteDeclinedHandler = h + }) +} + // WithGroupEventConsumerGroupCreatedHandler creates group events consumer option with group created handler. // If not specified, listener will ignore this kind of events. func WithGroupEventConsumerGroupCreatedHandler(h GroupEventGroupCreatedHandler) GroupEventsConsumerOption { @@ -200,6 +259,60 @@ func WithGroupDifficultyChangedHandler(h GroupEventGroupDifficultyChangedHandler }) } +func WithGroupEventReadyCheckStartedHandler(h GroupEventReadyCheckStartedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.readyCheckStartedHandler = h + }) +} + +func WithGroupEventReadyCheckMemberStateHandler(h GroupEventReadyCheckMemberStateHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.readyCheckMemberStateHandler = h + }) +} + +func WithGroupEventReadyCheckFinishedHandler(h GroupEventReadyCheckFinishedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.readyCheckFinishedHandler = h + }) +} + +func WithGroupEventMemberSubGroupChangedHandler(h GroupEventMemberSubGroupChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberSubGroupChangedHandler = h + }) +} + +func WithGroupEventMemberFlagsChangedHandler(h GroupEventMemberFlagsChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberFlagsChangedHandler = h + }) +} + +func WithGroupEventMemberStateChangedHandler(h GroupEventMemberStateChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberStateChangedHandler = h + }) +} + +func WithGroupEventMemberStatesChangedHandler(h GroupEventMemberStatesChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberStatesChangedHandler = h + }) +} + +func WithGroupEventInstanceResetRequestHandler(h GroupEventInstanceResetRequestHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.instanceResetRequestHandler = h + }) +} + +func WithGroupEventInstanceBindExtensionRequestHandler(h GroupEventInstanceBindExtensionRequestHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.instanceBindExtensionRequestHandler = h + }) +} + // funcGatewayConsumerOption wraps a function that modifies funcGatewayConsumerOption into an // implementation of the GatewayConsumerOption interface. type funcGroupEventsConsumerOption struct { @@ -219,6 +332,7 @@ func newFuncGroupEventsConsumerOption(f func(*groupEventsConsumerParams)) *funcG // groupEventsConsumerParams list of all possible parameters of GroupEventsConsumer. type groupEventsConsumerParams struct { inviteCreatedHandler GroupEventInviteCreatedHandler + inviteDeclinedHandler GroupEventInviteDeclinedHandler groupCreatedHandler GroupEventGroupCreatedHandler groupMemberOnlineStatusChangedHandler GroupEventGroupMemberOnlineStatusChangedHandler groupMemberLeftHandler GroupEventGroupMemberLeftHandler @@ -230,6 +344,15 @@ type groupEventsConsumerParams struct { newMessageHandler GroupEventNewMessageHandler newTargetIconHandler GroupEventNewTargetIconHandler difficultyChangedHandler GroupEventGroupDifficultyChangedHandler + readyCheckStartedHandler GroupEventReadyCheckStartedHandler + readyCheckMemberStateHandler GroupEventReadyCheckMemberStateHandler + readyCheckFinishedHandler GroupEventReadyCheckFinishedHandler + memberSubGroupChangedHandler GroupEventMemberSubGroupChangedHandler + memberFlagsChangedHandler GroupEventMemberFlagsChangedHandler + memberStateChangedHandler GroupEventMemberStateChangedHandler + memberStatesChangedHandler GroupEventMemberStatesChangedHandler + instanceResetRequestHandler GroupEventInstanceResetRequestHandler + instanceBindExtensionRequestHandler GroupEventInstanceBindExtensionRequestHandler } // groupEventsConsumerImpl implementation of GroupEventsConsumer. @@ -239,6 +362,7 @@ type groupEventsConsumerImpl struct { subs []*nats.Subscription inviteCreatedHandler GroupEventInviteCreatedHandler + inviteDeclinedHandler GroupEventInviteDeclinedHandler groupCreatedHandler GroupEventGroupCreatedHandler groupMemberOnlineStatusChangedHandler GroupEventGroupMemberOnlineStatusChangedHandler groupMemberLeftHandler GroupEventGroupMemberLeftHandler @@ -250,6 +374,15 @@ type groupEventsConsumerImpl struct { newMessageHandler GroupEventNewMessageHandler newTargetIconHandler GroupEventNewTargetIconHandler difficultyChangedHandler GroupEventGroupDifficultyChangedHandler + readyCheckStartedHandler GroupEventReadyCheckStartedHandler + readyCheckMemberStateHandler GroupEventReadyCheckMemberStateHandler + readyCheckFinishedHandler GroupEventReadyCheckFinishedHandler + memberSubGroupChangedHandler GroupEventMemberSubGroupChangedHandler + memberFlagsChangedHandler GroupEventMemberFlagsChangedHandler + memberStateChangedHandler GroupEventMemberStateChangedHandler + memberStatesChangedHandler GroupEventMemberStatesChangedHandler + instanceResetRequestHandler GroupEventInstanceResetRequestHandler + instanceBindExtensionRequestHandler GroupEventInstanceBindExtensionRequestHandler } // Listen is non-blocking operation that listens to gateway events. @@ -276,6 +409,28 @@ func (c *groupEventsConsumerImpl) Listen() error { c.subs = append(c.subs, sub) } + if c.inviteDeclinedHandler != nil { + sub, err := c.nc.Subscribe(GroupEventInviteDeclined.SubjectName(), func(msg *nats.Msg) { + payload := GroupEventInviteDeclinedPayload{} + _, err := Unmarshal(msg.Data, &payload) + if err != nil { + log.Error().Err(err).Msg("can't read GroupEventInviteDeclined (payload part) event") + return + } + + err = c.inviteDeclinedHandler.GroupInviteDeclinedEvent(&payload) + if err != nil { + log.Error().Err(err).Msg("can't handle GroupEventInviteDeclined event") + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) + } + if c.groupCreatedHandler != nil { sub, err := c.nc.Subscribe(GroupEventGroupCreated.SubjectName(), func(msg *nats.Msg) { payload := GroupEventGroupCreatedPayload{} @@ -518,6 +673,82 @@ func (c *groupEventsConsumerImpl) Listen() error { c.subs = append(c.subs, sub) } + if c.readyCheckStartedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupReadyCheckStarted, "GroupEventGroupReadyCheckStarted", c.readyCheckStartedHandler.GroupReadyCheckStartedEvent); err != nil { + return err + } + } + + if c.readyCheckMemberStateHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupReadyCheckMemberState, "GroupEventGroupReadyCheckMemberState", c.readyCheckMemberStateHandler.GroupReadyCheckMemberStateEvent); err != nil { + return err + } + } + + if c.readyCheckFinishedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupReadyCheckFinished, "GroupEventGroupReadyCheckFinished", c.readyCheckFinishedHandler.GroupReadyCheckFinishedEvent); err != nil { + return err + } + } + + if c.memberSubGroupChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberSubGroupChanged, "GroupEventGroupMemberSubGroupChanged", c.memberSubGroupChangedHandler.GroupMemberSubGroupChangedEvent); err != nil { + return err + } + } + + if c.memberFlagsChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberFlagsChanged, "GroupEventGroupMemberFlagsChanged", c.memberFlagsChangedHandler.GroupMemberFlagsChangedEvent); err != nil { + return err + } + } + + if c.memberStateChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberStateChanged, "GroupEventGroupMemberStateChanged", c.memberStateChangedHandler.GroupMemberStateChangedEvent); err != nil { + return err + } + } + + if c.memberStatesChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberStatesChanged, "GroupEventGroupMemberStatesChanged", c.memberStatesChangedHandler.GroupMemberStatesChangedEvent); err != nil { + return err + } + } + + if c.instanceResetRequestHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupInstanceResetRequest, "GroupEventGroupInstanceResetRequest", c.instanceResetRequestHandler.GroupInstanceResetRequestEvent); err != nil { + return err + } + } + + if c.instanceBindExtensionRequestHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupInstanceBindExtensionRequest, "GroupEventGroupInstanceBindExtensionRequest", c.instanceBindExtensionRequestHandler.GroupInstanceBindExtensionRequestEvent); err != nil { + return err + } + } + + return nil +} + +func subscribeGroupEvent[T any](c *groupEventsConsumerImpl, event GroupServiceEvent, eventName string, handler func(*T) error) error { + sub, err := c.nc.Subscribe(event.SubjectName(), func(msg *nats.Msg) { + payload := new(T) + _, err := Unmarshal(msg.Data, payload) + if err != nil { + log.Error().Err(err).Msgf("can't read %s (payload part) event", eventName) + return + } + + if err = handler(payload); err != nil { + log.Error().Err(err).Msgf("can't handle %s event", eventName) + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) return nil } diff --git a/shared/events/events-characters.go b/shared/events/events-characters.go index 2046c31..24eb9af 100644 --- a/shared/events/events-characters.go +++ b/shared/events/events-characters.go @@ -8,6 +8,12 @@ type CharactersServiceEvent int const ( // CharEventCharsDisconnectedUnhealthyGW event that contains players that were connected to unhealthy gateway CharEventCharsDisconnectedUnhealthyGW CharactersServiceEvent = iota + 1 + + // CharEventArenaTeamInviteCreated is emitted when charserver accepts an arena team invite request. + CharEventArenaTeamInviteCreated + + // CharEventArenaTeamNativeEvent is emitted after a committed arena team mutation. + CharEventArenaTeamNativeEvent ) // SubjectName is key that nats uses @@ -15,13 +21,37 @@ func (e CharactersServiceEvent) SubjectName() string { switch e { case CharEventCharsDisconnectedUnhealthyGW: return "char.chars.unhealthy.gw" + case CharEventArenaTeamInviteCreated: + return "char.arena-team.invite-created" + case CharEventArenaTeamNativeEvent: + return "char.arena-team.native-event" } panic(fmt.Errorf("unk event %d", e)) } // CharEventCharsDisconnectedUnhealthyGWPayload represents payload of CharEventCharsDisconnectedUnhealthyGW event type CharEventCharsDisconnectedUnhealthyGWPayload struct { - RealmID uint32 - GatewayID string - CharactersGUID []uint64 + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + CharactersGUID []uint64 +} + +type CharEventArenaTeamInviteCreatedPayload struct { + RealmID uint32 + TargetGUID uint64 + TargetName string + InviterGUID uint64 + InviterName string + ArenaTeamID uint32 + TeamName string +} + +type CharEventArenaTeamNativeEventPayload struct { + RealmID uint32 + ReceiverGUIDs []uint64 + ArenaTeamID uint32 + Event uint8 + EventGUID uint64 + Args []string } diff --git a/shared/events/events-chat.go b/shared/events/events-chat.go index b8e0557..98f1257 100644 --- a/shared/events/events-chat.go +++ b/shared/events/events-chat.go @@ -37,45 +37,59 @@ func (e ChatServiceEvent) SubjectName(gatewayID string) string { // ChatEventIncomingWhisperPayload represents payload of ChatEventIncomingWhisper event type ChatEventIncomingWhisperPayload struct { - SenderGUID uint64 - SenderName string - SenderRace uint8 - ReceiverGUID uint64 - ReceiverName string - Language uint32 - Msg string + SenderRealmID uint32 + SenderGUID uint64 + SenderName string + SenderRace uint8 + SenderClass uint8 + SenderGender uint8 + SenderChatTag uint8 + ReceiverRealmID uint32 + ReceiverGUID uint64 + ReceiverName string + Language uint32 + Msg string } // ChatEventChannelMessagePayload represents payload of ChatEventChannelMessage event type ChatEventChannelMessagePayload struct { - RealmID uint32 - ChannelName string - ChannelID uint32 - SenderGUID uint64 - SenderName string - Language uint32 - Message string + RealmID uint32 + ChannelName string + ChannelID uint32 + TeamID uint32 + SenderGUID uint64 + SenderName string + Language uint32 + Message string + SenderChatTag uint8 } // ChatEventChannelJoinedPayload represents payload of ChatEventChannelJoined event type ChatEventChannelJoinedPayload struct { - ServiceID string - RealmID uint32 - ChannelName string - ChannelID uint32 - PlayerGUID uint64 - PlayerName string - PlayerFlags uint8 // MEMBER_FLAG_* + ServiceID string + RealmID uint32 + ChannelName string + ChannelID uint32 + ChannelFlags uint32 + TeamID uint32 + NumMembers uint32 + PlayerGUID uint64 + PlayerName string + PlayerFlags uint8 // MEMBER_FLAG_* } // ChatEventChannelLeftPayload represents payload of ChatEventChannelLeft event type ChatEventChannelLeftPayload struct { - ServiceID string - RealmID uint32 - ChannelName string - ChannelID uint32 - PlayerGUID uint64 - PlayerName string + ServiceID string + RealmID uint32 + ChannelName string + ChannelID uint32 + ChannelFlags uint32 + TeamID uint32 + NumMembers uint32 + PlayerGUID uint64 + PlayerName string + Silent bool } // ChatEventChannelNotificationPayload represents payload of ChatEventChannelNotification event @@ -83,6 +97,9 @@ type ChatEventChannelNotificationPayload struct { RealmID uint32 ChannelName string ChannelID uint32 + ChannelFlags uint32 + TeamID uint32 + NumMembers uint32 NotifyType uint8 // ChatNotify type from Channel.h TargetGUID uint64 TargetName string diff --git a/shared/events/events-friends.go b/shared/events/events-friends.go index fd382ac..b4e6add 100644 --- a/shared/events/events-friends.go +++ b/shared/events/events-friends.go @@ -29,7 +29,7 @@ type FriendEventStatusChangePayload struct { ServiceID string RealmID uint32 PlayerGUID uint64 - Status uint8 // 0=offline, 1=online + Status uint8 // 0=offline, 1=online Area uint32 Level uint32 ClassID uint32 diff --git a/shared/events/events-gateway.go b/shared/events/events-gateway.go index 53b1e57..97f4cb6 100644 --- a/shared/events/events-gateway.go +++ b/shared/events/events-gateway.go @@ -14,6 +14,12 @@ const ( // GWEventCharactersUpdates pack of characters update that occurs every N seconds. GWEventCharactersUpdates + + // GWEventGuildCreated is event that occurs when gateway observes successful guild creation from worldserver. + GWEventGuildCreated + + // GWEventGatewayStarted is event that occurs when gateway is registered and ready to accept new sessions. + GWEventGatewayStarted ) // SubjectName is key that nats uses. @@ -25,50 +31,73 @@ func (e GatewayEvent) SubjectName() string { return "gw.char.logged-out" case GWEventCharactersUpdates: return "gw.char.chars-updates" + case GWEventGuildCreated: + return "gw.guild.created" + case GWEventGatewayStarted: + return "gw.gateway.started" } panic(fmt.Errorf("unk event %d", e)) } -// GWEventCharacterLoggedInPayload represents payload of GWEventCharacterLoggedIn event. -type GWEventCharacterLoggedInPayload struct { +// GWEventGatewayStartedPayload represents payload of GWEventGatewayStarted event. +type GWEventGatewayStartedPayload struct { RealmID uint32 GatewayID string - CharGUID uint64 - CharName string - CharRace uint8 - CharClass uint8 - CharGender uint8 - CharLevel uint8 - CharZone uint32 - CharMap uint32 - CharPosX float32 - CharPosY float32 - CharPosZ float32 - CharGuildID uint32 - AccountID uint32 + StartedAtMs uint64 +} + +// GWEventCharacterLoggedInPayload represents payload of GWEventCharacterLoggedIn event. +type GWEventCharacterLoggedInPayload struct { + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + CharGUID uint64 + CharName string + CharRace uint8 + CharClass uint8 + CharGender uint8 + CharLevel uint8 + CharZone uint32 + CharMap uint32 + CharPosX float32 + CharPosY float32 + CharPosZ float32 + CharGuildID uint32 + AccountID uint32 } // GWEventCharacterLoggedOutPayload represents payload of GWEventCharacterLoggedOut event. type GWEventCharacterLoggedOutPayload struct { - RealmID uint32 - GatewayID string - CharGUID uint64 - CharName string - CharGuildID uint32 - AccountID uint32 + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + CharGUID uint64 + CharName string + CharGuildID uint32 + AccountID uint32 } type GWEventCharactersUpdatesPayload struct { - RealmID uint32 - GatewayID string - Updates []*CharacterUpdate + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + Updates []*CharacterUpdate +} + +// GWEventGuildCreatedPayload represents payload of GWEventGuildCreated event. +type GWEventGuildCreatedPayload struct { + RealmID uint32 + GatewayID string + LeaderGUID uint64 + GuildName string } // CharacterUpdate represents new values of fields for the character. type CharacterUpdate struct { - ID uint64 `json:"i"` - Lvl *uint8 `json:"l,omitempty"` - Map *uint32 `json:"m,omitempty"` - Area *uint32 `json:"a,omitempty"` - Zone *uint32 `json:"z,omitempty"` + ID uint64 `json:"i"` + EventTimeUnixNano uint64 `json:"t,omitempty"` + Lvl *uint8 `json:"l,omitempty"` + Map *uint32 `json:"m,omitempty"` + Area *uint32 `json:"a,omitempty"` + Zone *uint32 `json:"z,omitempty"` } diff --git a/shared/events/events-group.go b/shared/events/events-group.go index 918781c..337efff 100644 --- a/shared/events/events-group.go +++ b/shared/events/events-group.go @@ -41,6 +41,20 @@ const ( // GroupEventGroupDifficultyChanged group event when dungeon or raid difficulty changed for the group GroupEventGroupDifficultyChanged + + GroupEventGroupReadyCheckStarted + GroupEventGroupReadyCheckMemberState + GroupEventGroupReadyCheckFinished + GroupEventGroupMemberSubGroupChanged + GroupEventGroupMemberFlagsChanged + GroupEventGroupMemberStateChanged + GroupEventGroupInstanceResetRequest + GroupEventGroupInstanceBindExtensionRequest + + // GroupEventInviteDeclined group event when player invite declined + GroupEventInviteDeclined + + GroupEventGroupMemberStatesChanged ) // SubjectName is key that nats uses @@ -48,6 +62,8 @@ func (e GroupServiceEvent) SubjectName() string { switch e { case GroupEventInviteCreated: return "group.invite.created" + case GroupEventInviteDeclined: + return "group.invite.declined" case GroupEventGroupCreated: return "group.created" case GroupEventGroupMemberOnlineStatusChanged: @@ -70,6 +86,24 @@ func (e GroupServiceEvent) SubjectName() string { return "group.targeticons.new" case GroupEventGroupDifficultyChanged: return "group.difficulty.changed" + case GroupEventGroupReadyCheckStarted: + return "group.readycheck.started" + case GroupEventGroupReadyCheckMemberState: + return "group.readycheck.member.state" + case GroupEventGroupReadyCheckFinished: + return "group.readycheck.finished" + case GroupEventGroupMemberSubGroupChanged: + return "group.member.subgroup.changed" + case GroupEventGroupMemberFlagsChanged: + return "group.member.flags.changed" + case GroupEventGroupMemberStateChanged: + return "group.member.state.changed" + case GroupEventGroupMemberStatesChanged: + return "group.member.states.changed" + case GroupEventGroupInstanceResetRequest: + return "group.instance.reset.request" + case GroupEventGroupInstanceBindExtensionRequest: + return "group.instance.bind.extension.request" } panic(fmt.Errorf("unk event %d", e)) } @@ -88,6 +122,15 @@ type GroupEventInviteCreatedPayload struct { InviteeName string } +type GroupEventInviteDeclinedPayload struct { + ServiceID string + RealmID uint32 + + InviterGUID uint64 + InviteeGUID uint64 + InviteeName string +} + type GroupEventGroupCreatedPayload struct { ServiceID string RealmID uint32 @@ -101,6 +144,7 @@ type GroupEventGroupCreatedPayload struct { Difficulty uint8 RaidDifficulty uint8 MasterLooterGuid uint64 + LfgDungeonEntry uint32 Members []GroupMember } @@ -186,8 +230,9 @@ type GroupEventNewMessagePayload struct { GroupID uint - SenderGUID uint64 - SenderName string + SenderGUID uint64 + SenderName string + SenderChatTag uint8 Language uint32 Msg string @@ -230,3 +275,130 @@ type GroupMember struct { SubGroup uint8 Roles uint8 } + +type GroupEventReadyCheckStartedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + LeaderGUID uint64 + DurationMs uint32 + Receivers []uint64 +} + +type GroupEventReadyCheckMemberStatePayload struct { + ServiceID string + RealmID uint32 + GroupID uint + MemberGUID uint64 + State uint8 // 0 waiting, 1 ready, 2 not ready + Receivers []uint64 +} + +type GroupEventReadyCheckFinishedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + Receivers []uint64 +} + +type GroupEventMemberSubGroupChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + MemberGUID uint64 + SubGroup uint8 + Receivers []uint64 +} + +type GroupEventMemberFlagsChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + MemberGUID uint64 + Flags uint8 + Roles uint8 + Receivers []uint64 +} + +type GroupEventMemberStateChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + SourceGatewayID string + SourceWorldserverID string + MemberGUID uint64 + Online bool + Level uint8 + Class uint8 + ZoneID uint32 + MapID uint32 + Health uint32 + MaxHealth uint32 + PowerType uint8 + Power uint32 + MaxPower uint32 + AurasKnown bool + Auras []GroupMemberAuraState + DeadKnown bool + Dead bool + GhostKnown bool + Ghost bool + Receivers []uint64 +} + +type GroupEventMemberStatesChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + SourceGatewayID string + SourceWorldserverID string + States []GroupMemberStateUpdate + Receivers []uint64 +} + +type GroupMemberStateUpdate struct { + MemberGUID uint64 + Online bool + Level uint8 + Class uint8 + ZoneID uint32 + MapID uint32 + Health uint32 + MaxHealth uint32 + PowerType uint8 + Power uint32 + MaxPower uint32 + AurasKnown bool + Auras []GroupMemberAuraState + DeadKnown bool + Dead bool + GhostKnown bool + Ghost bool +} + +type GroupMemberAuraState struct { + Slot uint8 + SpellID uint32 + Flags uint8 +} + +type GroupEventInstanceResetRequestPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + PlayerGUID uint64 + MapID uint32 + Difficulty uint8 + Receivers []uint64 +} + +type GroupEventInstanceBindExtensionRequestPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + PlayerGUID uint64 + MapID uint32 + Difficulty uint8 + Extended bool + Receivers []uint64 +} diff --git a/shared/events/events-guild.go b/shared/events/events-guild.go index 986af18..afb7f2b 100644 --- a/shared/events/events-guild.go +++ b/shared/events/events-guild.go @@ -47,6 +47,12 @@ const ( // GuildEventNewMessage guild event when guild member sent some message GuildEventNewMessage + + // GuildEventPetitionOffered guild event when a guild charter is offered to a same-realm target. + GuildEventPetitionOffered + + // GuildEventPetitionSigned guild event when a same-realm guild charter signature was processed. + GuildEventPetitionSigned ) // SubjectName is key that nats uses @@ -80,6 +86,10 @@ func (e GuildServiceEvent) SubjectName() string { return "guild.info.updated" case GuildEventNewMessage: return "guild.message.new" + case GuildEventPetitionOffered: + return "guild.petition.offered" + case GuildEventPetitionSigned: + return "guild.petition.signed" } panic(fmt.Errorf("unk event %d", e)) } @@ -231,8 +241,9 @@ type GuildEventNewMessagePayload struct { GuildID uint64 - SenderGUID uint64 - SenderName string + SenderGUID uint64 + SenderName string + SenderChatTag uint8 Language uint32 Msg string @@ -241,3 +252,36 @@ type GuildEventNewMessagePayload struct { Receivers []uint64 } + +type GuildPetitionSignature struct { + PlayerGUID uint64 + PlayerAccount uint32 +} + +type GuildEventPetitionOfferedPayload struct { + ServiceID string + RealmID uint32 + + PetitionGUID uint64 + PetitionID uint32 + OwnerGUID uint64 + TargetGUID uint64 + TargetName string + GuildName string + + RequiredSigns uint32 + Signatures []GuildPetitionSignature +} + +type GuildEventPetitionSignedPayload struct { + ServiceID string + RealmID uint32 + + PetitionGUID uint64 + OwnerGUID uint64 + SignerGUID uint64 + SignerName string + NativeStatus uint32 + + RequiredSigns uint32 +} diff --git a/shared/events/events-matchmaking.go b/shared/events/events-matchmaking.go index 7ad2bb5..ccfd886 100644 --- a/shared/events/events-matchmaking.go +++ b/shared/events/events-matchmaking.go @@ -17,6 +17,12 @@ const ( // MatchmakingEventPlayersInviteExpired matchmaking event for battleground and arena queue when players invite expired. MatchmakingEventPlayersInviteExpired + + // MatchmakingEventLfgStatusChanged matchmaking event for LFG queue, role check, and proposal state changes. + MatchmakingEventLfgStatusChanged + + // MatchmakingEventLfgProposalAccepted matchmaking event emitted when every LFG proposal member accepts. + MatchmakingEventLfgProposalAccepted ) // SubjectName is key that nats uses @@ -28,6 +34,10 @@ func (e MatchmakingServiceEvent) SubjectName() string { return "matchmaking.pvpqueue.invited" case MatchmakingEventPlayersInviteExpired: return "matchmaking.pvpqueue.invite.expired" + case MatchmakingEventLfgStatusChanged: + return "matchmaking.lfg.status.changed" + case MatchmakingEventLfgProposalAccepted: + return "matchmaking.lfg.proposal.accepted" } panic(fmt.Errorf("unk event %d", e)) } @@ -78,3 +88,96 @@ type MatchmakingEventPlayersInviteExpiredPayload struct { PlayersGUID []guid.LowType QueueSlotByPlayer map[guid.LowType]uint8 } + +type MatchmakingLfgState uint8 + +const ( + MatchmakingLfgStateNone MatchmakingLfgState = iota + MatchmakingLfgStateRoleCheck + MatchmakingLfgStateQueued + MatchmakingLfgStateProposal + MatchmakingLfgStateBoot + MatchmakingLfgStateDungeon + MatchmakingLfgStateFinishedDungeon + MatchmakingLfgStateRaidBrowser +) + +type MatchmakingLfgProposalState uint8 + +const ( + MatchmakingLfgProposalInitiating MatchmakingLfgProposalState = iota + MatchmakingLfgProposalFailed + MatchmakingLfgProposalSuccess +) + +type MatchmakingLfgProposalFailure uint8 + +const ( + MatchmakingLfgProposalFailureNone MatchmakingLfgProposalFailure = iota + MatchmakingLfgProposalFailureFailed + MatchmakingLfgProposalFailureDeclined +) + +type MatchmakingLfgMember struct { + RealmID uint32 + PlayerGUID guid.LowType + Roles uint8 + Leader bool + QueueLeaderRealmID uint32 + QueueLeaderGUID guid.LowType +} + +type MatchmakingLfgProposalMember struct { + RealmID uint32 + PlayerGUID guid.LowType + SelectedRoles uint8 + AssignedRole uint8 + Answered bool + Accepted bool +} + +type MatchmakingLfgStatusPayload struct { + State MatchmakingLfgState + ProposalID uint32 + ProposalState MatchmakingLfgProposalState + ProposalFailure MatchmakingLfgProposalFailure + DungeonEntry uint32 + SelectedDungeons []uint32 + QueuedMembers []MatchmakingLfgMember + ProposalMembers []MatchmakingLfgProposalMember + + QueuedTimeMilliseconds uint32 + TanksNeeded uint8 + HealersNeeded uint8 + DamageNeeded uint8 +} + +type MatchmakingEventLfgStatusChangedPayload struct { + RealmID uint32 + PlayersGUID []guid.LowType + Status MatchmakingLfgStatusPayload +} + +type MatchmakingLfgProposalAcceptedMember struct { + RealmID uint32 + PlayerGUID guid.LowType + SelectedRoles uint8 + AssignedRole uint8 + QueueLeaderRealmID uint32 + QueueLeaderGUID guid.LowType + WorldserverID string +} + +type MatchmakingEventLfgProposalAcceptedPayload struct { + RealmID uint32 + LeaderRealmID uint32 + BattlegroupID uint32 + CrossRealm bool + ProposalID uint32 + GroupID uint32 + DungeonEntry uint32 + LeaderGUID guid.LowType + LeaderWorldserverID string + PlayersGUID []guid.LowType + Members []MatchmakingLfgProposalAcceptedMember +} diff --git a/shared/events/events-serversregistry.go b/shared/events/events-serversregistry.go index 36571ac..57a3559 100644 --- a/shared/events/events-serversregistry.go +++ b/shared/events/events-serversregistry.go @@ -20,6 +20,12 @@ const ( // ServerRegistryEventGSRemoved is event that occurs when server registry removes game server (unhealthy or shutdown). ServerRegistryEventGSRemoved + + // ServerRegistryEventMatchmakingRemovedUnhealthy is event that occurs when matchmaking service becomes unhealthy. + ServerRegistryEventMatchmakingRemovedUnhealthy + + // ServerRegistryEventMatchmakingRecovered is event that occurs when matchmaking service becomes healthy again. + ServerRegistryEventMatchmakingRecovered ) // SubjectName is key that nats uses. @@ -35,6 +41,10 @@ func (e ServerRegistryEvent) SubjectName() string { return "sr.gs.added" case ServerRegistryEventGSRemoved: return "sr.gs.removed" + case ServerRegistryEventMatchmakingRemovedUnhealthy: + return "sr.matchmaking.removed.unhealthy" + case ServerRegistryEventMatchmakingRecovered: + return "sr.matchmaking.recovered" } panic(fmt.Errorf("unk event %d", e)) } @@ -49,10 +59,11 @@ type ServerRegistryEventGWAddedPayload struct { // ServerRegistryEventGWRemovedUnhealthyPayload represents payload of ServerRegistryEventGWRemovedUnhealthy event. type ServerRegistryEventGWRemovedUnhealthyPayload struct { - ID string - Address string - HealthCheckAddr string - RealmID uint32 + ID string + Address string + HealthCheckAddr string + RealmID uint32 + EventTimeUnixNano uint64 } type GameServer struct { @@ -112,3 +123,18 @@ type ServerRegistryEventGSAddedPayload struct { type ServerRegistryEventGSRemovedPayload struct { GameServer GameServer } + +type MatchmakingService struct { + Address string + HealthCheckAddr string + ObservedAtUnixMs int64 +} + +type ServerRegistryEventMatchmakingRemovedUnhealthyPayload struct { + MatchmakingService MatchmakingService + Error string +} + +type ServerRegistryEventMatchmakingRecoveredPayload struct { + MatchmakingService MatchmakingService +} diff --git a/shared/events/producer-characters.go b/shared/events/producer-characters.go index 6ba7519..ad2d8b2 100644 --- a/shared/events/producer-characters.go +++ b/shared/events/producer-characters.go @@ -2,12 +2,15 @@ package events import ( "encoding/json" + "time" "github.com/nats-io/nats.go" ) type CharactersServiceProducer interface { CharsDisconnectedUnhealthyLB(payload *CharEventCharsDisconnectedUnhealthyGWPayload) error + ArenaTeamInviteCreated(payload *CharEventArenaTeamInviteCreatedPayload) error + ArenaTeamNativeEvent(payload *CharEventArenaTeamNativeEventPayload) error } type charactersServiceProducerNatsJSON struct { @@ -24,9 +27,20 @@ func NewCharactersServiceProducerNatsJSON(conn *nats.Conn, ver string) Character } func (c *charactersServiceProducerNatsJSON) CharsDisconnectedUnhealthyLB(payload *CharEventCharsDisconnectedUnhealthyGWPayload) error { + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return c.publish(CharEventCharsDisconnectedUnhealthyGW, payload) } +func (c *charactersServiceProducerNatsJSON) ArenaTeamInviteCreated(payload *CharEventArenaTeamInviteCreatedPayload) error { + return c.publish(CharEventArenaTeamInviteCreated, payload) +} + +func (c *charactersServiceProducerNatsJSON) ArenaTeamNativeEvent(payload *CharEventArenaTeamNativeEventPayload) error { + return c.publish(CharEventArenaTeamNativeEvent, payload) +} + func (c *charactersServiceProducerNatsJSON) publish(e CharactersServiceEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: c.ver, diff --git a/shared/events/producer-gateway.go b/shared/events/producer-gateway.go index 299d2c3..e0d93a6 100644 --- a/shared/events/producer-gateway.go +++ b/shared/events/producer-gateway.go @@ -2,15 +2,18 @@ package events import ( "encoding/json" + "time" "github.com/nats-io/nats.go" ) //go:generate mockery --name=GatewayProducer type GatewayProducer interface { + GatewayStarted(payload *GWEventGatewayStartedPayload) error CharacterLoggedIn(payload *GWEventCharacterLoggedInPayload) error CharacterLoggedOut(payload *GWEventCharacterLoggedOutPayload) error CharactersUpdates(payload *GWEventCharactersUpdatesPayload) error + GuildCreated(payload *GWEventGuildCreatedPayload) error } type gatewayProducerNatsJSON struct { @@ -30,24 +33,48 @@ func NewGatewayProducerNatsJSON(conn *nats.Conn, ver string, realmID uint32, gat } } +func (p *gatewayProducerNatsJSON) GatewayStarted(payload *GWEventGatewayStartedPayload) error { + payload.RealmID = p.RealmID + payload.GatewayID = p.ID + if payload.StartedAtMs == 0 { + payload.StartedAtMs = uint64(time.Now().UnixMilli()) + } + return p.publish(GWEventGatewayStarted, payload) +} + func (p *gatewayProducerNatsJSON) CharacterLoggedIn(payload *GWEventCharacterLoggedInPayload) error { payload.RealmID = p.RealmID payload.GatewayID = p.ID + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return p.publish(GWEventCharacterLoggedIn, payload) } func (p *gatewayProducerNatsJSON) CharacterLoggedOut(payload *GWEventCharacterLoggedOutPayload) error { payload.RealmID = p.RealmID payload.GatewayID = p.ID + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return p.publish(GWEventCharacterLoggedOut, payload) } func (p *gatewayProducerNatsJSON) CharactersUpdates(payload *GWEventCharactersUpdatesPayload) error { payload.RealmID = p.RealmID payload.GatewayID = p.ID + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return p.publish(GWEventCharactersUpdates, payload) } +func (p *gatewayProducerNatsJSON) GuildCreated(payload *GWEventGuildCreatedPayload) error { + payload.RealmID = p.RealmID + payload.GatewayID = p.ID + return p.publish(GWEventGuildCreated, payload) +} + func (p *gatewayProducerNatsJSON) publish(e GatewayEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: p.ver, diff --git a/shared/events/producer-group.go b/shared/events/producer-group.go index ef1fa65..b371ead 100644 --- a/shared/events/producer-group.go +++ b/shared/events/producer-group.go @@ -13,6 +13,9 @@ type GroupServiceProducer interface { // InviteCreated publishes an event for an invite being created. InviteCreated(payload *GroupEventInviteCreatedPayload) error + // InviteDeclined publishes an event for an invite being declined. + InviteDeclined(payload *GroupEventInviteDeclinedPayload) error + // GroupCreated publishes an event for a group being created. GroupCreated(payload *GroupEventGroupCreatedPayload) error @@ -45,6 +48,16 @@ type GroupServiceProducer interface { // SendChatMessage publishes an event for a new chat message in a group or raid. SendChatMessage(payload *GroupEventNewMessagePayload) error + + GroupReadyCheckStarted(payload *GroupEventReadyCheckStartedPayload) error + GroupReadyCheckMemberState(payload *GroupEventReadyCheckMemberStatePayload) error + GroupReadyCheckFinished(payload *GroupEventReadyCheckFinishedPayload) error + GroupMemberSubGroupChanged(payload *GroupEventMemberSubGroupChangedPayload) error + GroupMemberFlagsChanged(payload *GroupEventMemberFlagsChangedPayload) error + GroupMemberStateChanged(payload *GroupEventMemberStateChangedPayload) error + GroupMemberStatesChanged(payload *GroupEventMemberStatesChangedPayload) error + GroupInstanceResetRequest(payload *GroupEventInstanceResetRequestPayload) error + GroupInstanceBindExtensionRequest(payload *GroupEventInstanceBindExtensionRequestPayload) error } // groupServiceProducerNatsJSON implements the GroupServiceProducer interface using NATS as the underlying message broker. @@ -65,6 +78,10 @@ func (s *groupServiceProducerNatsJSON) InviteCreated(payload *GroupEventInviteCr return s.publish(GroupEventInviteCreated, payload) } +func (s *groupServiceProducerNatsJSON) InviteDeclined(payload *GroupEventInviteDeclinedPayload) error { + return s.publish(GroupEventInviteDeclined, payload) +} + func (s *groupServiceProducerNatsJSON) GroupCreated(payload *GroupEventGroupCreatedPayload) error { return s.publish(GroupEventGroupCreated, payload) } @@ -123,3 +140,39 @@ func (s *groupServiceProducerNatsJSON) publish(e GroupServiceEvent, payload inte return s.conn.Publish(e.SubjectName(), d) } + +func (s *groupServiceProducerNatsJSON) GroupReadyCheckStarted(payload *GroupEventReadyCheckStartedPayload) error { + return s.publish(GroupEventGroupReadyCheckStarted, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupReadyCheckMemberState(payload *GroupEventReadyCheckMemberStatePayload) error { + return s.publish(GroupEventGroupReadyCheckMemberState, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupReadyCheckFinished(payload *GroupEventReadyCheckFinishedPayload) error { + return s.publish(GroupEventGroupReadyCheckFinished, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberSubGroupChanged(payload *GroupEventMemberSubGroupChangedPayload) error { + return s.publish(GroupEventGroupMemberSubGroupChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberFlagsChanged(payload *GroupEventMemberFlagsChangedPayload) error { + return s.publish(GroupEventGroupMemberFlagsChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberStateChanged(payload *GroupEventMemberStateChangedPayload) error { + return s.publish(GroupEventGroupMemberStateChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberStatesChanged(payload *GroupEventMemberStatesChangedPayload) error { + return s.publish(GroupEventGroupMemberStatesChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupInstanceResetRequest(payload *GroupEventInstanceResetRequestPayload) error { + return s.publish(GroupEventGroupInstanceResetRequest, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupInstanceBindExtensionRequest(payload *GroupEventInstanceBindExtensionRequestPayload) error { + return s.publish(GroupEventGroupInstanceBindExtensionRequest, payload) +} diff --git a/shared/events/producer-guild.go b/shared/events/producer-guild.go index 446c5e1..e65681a 100644 --- a/shared/events/producer-guild.go +++ b/shared/events/producer-guild.go @@ -28,6 +28,9 @@ type GuildServiceProducer interface { GuildInfoUpdated(payload *GuildEventGuildInfoUpdatedPayload) error NewMessage(payload *GuildEventNewMessagePayload) error + + PetitionOffered(payload *GuildEventPetitionOfferedPayload) error + PetitionSigned(payload *GuildEventPetitionSignedPayload) error } type guildServiceProducerNatsJSON struct { @@ -98,6 +101,14 @@ func (s *guildServiceProducerNatsJSON) NewMessage(payload *GuildEventNewMessageP return s.publish(GuildEventNewMessage, payload) } +func (s *guildServiceProducerNatsJSON) PetitionOffered(payload *GuildEventPetitionOfferedPayload) error { + return s.publish(GuildEventPetitionOffered, payload) +} + +func (s *guildServiceProducerNatsJSON) PetitionSigned(payload *GuildEventPetitionSignedPayload) error { + return s.publish(GuildEventPetitionSigned, payload) +} + func (s *guildServiceProducerNatsJSON) publish(e GuildServiceEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: s.ver, diff --git a/shared/events/producer-matchmaking.go b/shared/events/producer-matchmaking.go index a87115f..8c5023c 100644 --- a/shared/events/producer-matchmaking.go +++ b/shared/events/producer-matchmaking.go @@ -11,6 +11,8 @@ type MatchmakingServiceProducer interface { JoinedQueue(payload *MatchmakingEventPlayersQueuedPayload) error InvitedToBGOrArena(payload *MatchmakingEventPlayersInvitedPayload) error InviteExpired(payload *MatchmakingEventPlayersInviteExpiredPayload) error + LfgStatusChanged(payload *MatchmakingEventLfgStatusChangedPayload) error + LfgProposalAccepted(payload *MatchmakingEventLfgProposalAcceptedPayload) error } type matchmakingServiceProducerNatsJSON struct { @@ -37,6 +39,14 @@ func (c *matchmakingServiceProducerNatsJSON) InviteExpired(payload *MatchmakingE return c.publish(MatchmakingEventPlayersInviteExpired, payload) } +func (c *matchmakingServiceProducerNatsJSON) LfgStatusChanged(payload *MatchmakingEventLfgStatusChangedPayload) error { + return c.publish(MatchmakingEventLfgStatusChanged, payload) +} + +func (c *matchmakingServiceProducerNatsJSON) LfgProposalAccepted(payload *MatchmakingEventLfgProposalAcceptedPayload) error { + return c.publish(MatchmakingEventLfgProposalAccepted, payload) +} + func (c *matchmakingServiceProducerNatsJSON) publish(e MatchmakingServiceEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: c.ver, diff --git a/shared/events/producer-serversregistry.go b/shared/events/producer-serversregistry.go index bcf23e1..4384bbd 100644 --- a/shared/events/producer-serversregistry.go +++ b/shared/events/producer-serversregistry.go @@ -2,6 +2,7 @@ package events import ( "encoding/json" + "time" "github.com/nats-io/nats.go" ) @@ -13,6 +14,8 @@ type ServerRegistryProducer interface { GSMapsReassigned(payload *ServerRegistryEventGSMapsReassignedPayload) error GSAdded(payload *ServerRegistryEventGSAddedPayload) error GSRemoved(payload *ServerRegistryEventGSRemovedPayload) error + MatchmakingRemovedUnhealthy(payload *ServerRegistryEventMatchmakingRemovedUnhealthyPayload) error + MatchmakingRecovered(payload *ServerRegistryEventMatchmakingRecoveredPayload) error } type serverRegistryProducerNatsJSON struct { @@ -32,6 +35,9 @@ func (s serverRegistryProducerNatsJSON) GatewayAdded(payload *ServerRegistryEven } func (s serverRegistryProducerNatsJSON) GatewayRemovedUnhealthy(payload *ServerRegistryEventGWRemovedUnhealthyPayload) error { + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return s.publish(ServerRegistryEventGWRemovedUnhealthy, payload) } @@ -47,6 +53,14 @@ func (s serverRegistryProducerNatsJSON) GSRemoved(payload *ServerRegistryEventGS return s.publish(ServerRegistryEventGSRemoved, payload) } +func (s serverRegistryProducerNatsJSON) MatchmakingRemovedUnhealthy(payload *ServerRegistryEventMatchmakingRemovedUnhealthyPayload) error { + return s.publish(ServerRegistryEventMatchmakingRemovedUnhealthy, payload) +} + +func (s serverRegistryProducerNatsJSON) MatchmakingRecovered(payload *ServerRegistryEventMatchmakingRecoveredPayload) error { + return s.publish(ServerRegistryEventMatchmakingRecovered, payload) +} + func (s *serverRegistryProducerNatsJSON) publish(e ServerRegistryEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: s.ver, diff --git a/shared/groupstatetrace/trace.go b/shared/groupstatetrace/trace.go new file mode 100644 index 0000000..c7944f3 --- /dev/null +++ b/shared/groupstatetrace/trace.go @@ -0,0 +1,137 @@ +package groupstatetrace + +import ( + "os" + "strconv" + "strings" + "sync" + "time" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +const ( + EnvGUIDs = "TC9_GROUP_STATE_TRACE_GUIDS" + EnvGUIDFile = "TC9_GROUP_STATE_TRACE_FILE" + Message = "TC9_GROUP_STATE_TRACE" +) + +type traceConfig struct { + raw string + all bool + guids map[uint64]struct{} +} + +var traceCache = struct { + sync.RWMutex + envRaw string + filePath string + loadedAt time.Time + cfg traceConfig +}{} + +func Enabled(memberGUIDs ...uint64) bool { + return currentConfig().matches(memberGUIDs...) +} + +func Event(logger *zerolog.Logger, stage string, memberGUIDs ...uint64) *zerolog.Event { + cfg := currentConfig() + if !cfg.matches(memberGUIDs...) { + return nil + } + + var event *zerolog.Event + if logger != nil { + event = logger.Info() + } else { + event = log.Info() + } + + return event. + Str("tc9Trace", "group-state"). + Str("traceStage", stage). + Str("traceGUIDs", cfg.raw) +} + +func currentConfig() traceConfig { + envRaw := os.Getenv(EnvGUIDs) + filePath := os.Getenv(EnvGUIDFile) + now := time.Now() + + traceCache.RLock() + if envRaw == traceCache.envRaw && filePath == traceCache.filePath && now.Sub(traceCache.loadedAt) < time.Second { + cfg := traceCache.cfg + traceCache.RUnlock() + return cfg + } + traceCache.RUnlock() + + raw := envRaw + if filePath != "" { + if data, err := os.ReadFile(filePath); err == nil { + raw = strings.Trim(envRaw+","+string(data), ", \t\r\n") + } + } + cfg := parseConfig(raw) + + traceCache.Lock() + traceCache.envRaw = envRaw + traceCache.filePath = filePath + traceCache.loadedAt = now + traceCache.cfg = cfg + traceCache.Unlock() + + return cfg +} + +func parseConfig(raw string) traceConfig { + cfg := traceConfig{ + raw: raw, + guids: map[uint64]struct{}{}, + } + + for _, token := range strings.FieldsFunc(raw, func(r rune) bool { + return r == ',' || r == ';' || r == ' ' || r == '\t' || r == '\n' + }) { + token = strings.TrimSpace(token) + if token == "" { + continue + } + if token == "*" { + cfg.all = true + continue + } + + guid, err := strconv.ParseUint(token, 10, 64) + if err != nil || guid == 0 { + continue + } + cfg.guids[guid] = struct{}{} + } + + return cfg +} + +func (cfg traceConfig) matches(memberGUIDs ...uint64) bool { + if cfg.raw == "" { + return false + } + if cfg.all { + return true + } + if len(cfg.guids) == 0 { + return false + } + + for _, guid := range memberGUIDs { + if guid == 0 { + continue + } + if _, ok := cfg.guids[guid]; ok { + return true + } + } + + return false +} diff --git a/shared/repo/charactersdb.go b/shared/repo/charactersdb.go index 1c805e5..b1dc772 100644 --- a/shared/repo/charactersdb.go +++ b/shared/repo/charactersdb.go @@ -3,6 +3,7 @@ package repo import ( "database/sql" "fmt" + "sort" ) // PreparedStatement represents prepared statement with id. @@ -16,6 +17,7 @@ type PreparedStatement interface { type CharactersDB interface { DBByRealm(realmID uint32) *sql.DB + RealmIDs() []uint32 SetDBForRealm(realmID uint32, db *sql.DB) PreparedStatement(realm uint32, stmt PreparedStatement) *sql.Stmt @@ -42,6 +44,17 @@ func (c *characterDBImpl) DBByRealm(realmID uint32) *sql.DB { return c.dbByReam[realmID].db } +func (c *characterDBImpl) RealmIDs() []uint32 { + realmIDs := make([]uint32, 0, len(c.dbByReam)) + for realmID := range c.dbByReam { + realmIDs = append(realmIDs, realmID) + } + sort.Slice(realmIDs, func(i, j int) bool { + return realmIDs[i] < realmIDs[j] + }) + return realmIDs +} + func (c *characterDBImpl) SetDBForRealm(realmID uint32, db *sql.DB) { c.dbByReam[realmID] = dbWithPreparedStmts{ db: db, diff --git a/shared/wow/arena/team_id.go b/shared/wow/arena/team_id.go new file mode 100644 index 0000000..13bba01 --- /dev/null +++ b/shared/wow/arena/team_id.go @@ -0,0 +1,24 @@ +package arena + +const ( + teamIDRealmShift = 24 + teamIDLowMask = uint32(0x00FFFFFF) +) + +func NewCrossrealmTeamID(realmID uint16, teamID uint32) uint32 { + if realmID == 0 || teamID == 0 { + return teamID + } + return uint32(realmID)<> teamIDRealmShift +} + +func TeamIDCounter(teamID uint32) uint32 { + if TeamIDRealmID(teamID) == 0 { + return teamID + } + return teamID & teamIDLowMask +} diff --git a/shared/wow/guid/player.go b/shared/wow/guid/player.go index e201aec..41e8c9a 100644 --- a/shared/wow/guid/player.go +++ b/shared/wow/guid/player.go @@ -5,6 +5,18 @@ type PlayerUnwrapped struct { LowGUID LowType } +// Player GUID convention: +// - Persistent ToCloud9 service keys use (realmID, low player DB guid). +// - Same-realm client/AzerothCore player ObjectGuid values are serialized as +// the low DB guid. +// - Foreign-realm client/AzerothCore player ObjectGuid values are serialized +// as realm-scoped player GUIDs: realmID << 32 | low DB guid. +// - Already encoded non-player ObjectGuid values are preserved unchanged. +// +// Use these helpers at service, gateway, and libsidecar boundaries instead of +// open-coding shifts/masks. Do not normalize already serialized client packets +// before forwarding them to the owning worldserver. + func NewPlayerUnwrappedFromRawGUID(g ObjectGuid) PlayerUnwrapped { // TODO: we probably should validate guid here return PlayerUnwrapped{ @@ -23,3 +35,58 @@ func NewPlayerUnwrapped(realm uint16, low uint32) PlayerUnwrapped { func (u PlayerUnwrapped) Wrap() ObjectGuid { return NewCrossrealmPlayerGUID(u.RealmID, u.LowGUID) } + +func PlayerRealmIDOrDefault(defaultRealmID uint32, playerGUID uint64) uint32 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return defaultRealmID + } + if realmID := uint32((playerGUID >> 32) & 0xffff); realmID != 0 { + return realmID + } + return defaultRealmID +} + +func PlayerLowGUID(playerGUID uint64) uint64 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return playerGUID + } + if playerGUID>>32 == 0 { + return playerGUID + } + return playerGUID & 0xffffffff +} + +func PlayerGUIDForRealm(groupRealmID, playerRealmID uint32, playerGUID uint64) uint64 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return playerGUID + } + + lowGUID := PlayerLowGUID(playerGUID) + if playerRealmID == 0 { + playerRealmID = PlayerRealmIDOrDefault(groupRealmID, playerGUID) + } + if playerRealmID == 0 || playerRealmID == groupRealmID { + return lowGUID + } + + return NewCrossrealmPlayerGUID(uint16(playerRealmID), LowType(lowGUID)).GetRawValue() +} + +func NormalizePlayerGUIDForRealm(defaultRealmID uint32, playerGUID uint64) uint64 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return playerGUID + } + realmID := uint32((playerGUID >> 32) & 0xffff) + if realmID == 0 || realmID == defaultRealmID { + return PlayerLowGUID(playerGUID) + } + return playerGUID +} + +func SamePlayer(defaultRealmA uint32, playerA uint64, defaultRealmB uint32, playerB uint64) bool { + if playerA == 0 || playerB == 0 { + return false + } + return PlayerRealmIDOrDefault(defaultRealmA, playerA) == PlayerRealmIDOrDefault(defaultRealmB, playerB) && + PlayerLowGUID(playerA) == PlayerLowGUID(playerB) +} diff --git a/shared/wow/power.go b/shared/wow/power.go new file mode 100644 index 0000000..1974180 --- /dev/null +++ b/shared/wow/power.go @@ -0,0 +1,50 @@ +package wow + +const ( + ClassWarrior uint8 = 1 + ClassRogue uint8 = 4 + ClassDeathKnight uint8 = 6 + + PowerTypeMana uint8 = 0 + PowerTypeRage uint8 = 1 + PowerTypeEnergy uint8 = 3 + PowerTypeRunicPower uint8 = 6 +) + +func FixedPrimaryPowerTypeForClass(classID uint8) (uint8, bool) { + switch classID { + case ClassWarrior: + return PowerTypeRage, true + case ClassRogue: + return PowerTypeEnergy, true + case ClassDeathKnight: + return PowerTypeRunicPower, true + default: + return PowerTypeMana, false + } +} + +func DefaultMaxPowerForClass(classID uint8) uint32 { + switch classID { + case ClassWarrior, ClassDeathKnight: + return 1000 + case ClassRogue: + return 100 + default: + return 0 + } +} + +func IsFixedClassInactivePowerType(classID, powerType uint8) bool { + expectedPowerType, fixed := FixedPrimaryPowerTypeForClass(classID) + if !fixed || powerType == expectedPowerType { + return false + } + + switch powerType { + case PowerTypeRage, PowerTypeEnergy, PowerTypeRunicPower: + return true + default: + return false + } +} From 6e5e093652664bf6b8ac4929dfab6890dcc5da26 Mon Sep 17 00:00:00 2001 From: VG-Prog Date: Fri, 22 May 2026 21:45:36 +0200 Subject: [PATCH 2/3] feat(Cluster/Discovery): Harden registry readiness Wire service discovery, map readiness, stale-safe health and metrics observers, degraded game-server health handling, gateway-scoped cleanup, and shared GUID allocation support. Registry and health code now distinguish world-loop degraded state from process or transport death while preserving live map ownership. --- apps/authserver/crypto/srp6/srp6.go | 31 +++- apps/authserver/service/realm.go | 26 ++- apps/authserver/session/authsession.go | 54 +++++- apps/guidserver/service/guid.go | 2 +- .../cmd/servers-registry/main.go | 24 ++- apps/servers-registry/config/config.go | 12 ++ .../mapbalancing/binpack/distributor.go | 24 +-- apps/servers-registry/repo/game-server.go | 6 +- .../repo/game-server_inmem.go | 7 + .../repo/game-server_redis.go | 55 ++++-- .../repo/gateway-server_redis.go | 70 ++++++-- .../server/registry-server-debug-logger.go | 5 + .../server/registry-server.go | 64 ++++++- apps/servers-registry/service/game-server.go | 104 ++++++++++- .../service/matchmaking-monitor.go | 165 ++++++++++++++++++ .../service/matchmaking-server.go | 149 ++++++++++++++++ shared/healthandmetrics/health-checker.go | 103 ++++++++++- shared/healthandmetrics/metrics-reader.go | 46 ++++- shared/healthandmetrics/server.go | 51 +++++- 19 files changed, 894 insertions(+), 104 deletions(-) create mode 100644 apps/servers-registry/service/matchmaking-monitor.go create mode 100644 apps/servers-registry/service/matchmaking-server.go diff --git a/apps/authserver/crypto/srp6/srp6.go b/apps/authserver/crypto/srp6/srp6.go index 400f37e..4206e24 100644 --- a/apps/authserver/crypto/srp6/srp6.go +++ b/apps/authserver/crypto/srp6/srp6.go @@ -30,7 +30,10 @@ type SRP6 struct { } func (s *SRP6) DataForClient() (B []byte, g []byte, N []byte, _s []byte) { - B, g, N, _s = s._B, bigIntToBytesLittleEndian(_g), bigIntToBytesLittleEndian(_N), s._s + B = fixedLittleEndianBytes(s._B, 32) + g = bigIntToBytesLittleEndian(_g) + N = fixedLittleEndianBytes(bigIntToBytesLittleEndian(_N), 32) + _s = fixedLittleEndianBytes(s._s, 32) return } @@ -41,7 +44,7 @@ func NewSRP(username string, salt []byte, verifier []byte) *SRP6 { b = randBytesProvider(b) _b := bigIntFromLittleEndian(b) - usrHash := sha1.Sum([]byte(username)) + usrHash := sha1.Sum([]byte(normalizeAccountName(username))) return &SRP6{ _I: usrHash[:], @@ -144,10 +147,20 @@ func _B(b, v *big.Int) []byte { } func ReconnectChallengeValid(username string, R1, R2, reconnectProof, K []byte) bool { - hash := sha1.Sum(slices.AppendBytes([]byte(username), R1, reconnectProof, K)) + hash := sha1.Sum(slices.AppendBytes([]byte(normalizeAccountName(username)), R1, reconnectProof, K)) return slices.SameBytes(R2, hash[:]) } +func normalizeAccountName(username string) string { + normalized := []rune(username) + for i, r := range normalized { + if r >= 'a' && r <= 'z' { + normalized[i] = r - ('a' - 'A') + } + } + return string(normalized) +} + func switchEndian(b []byte) []byte { r := make([]byte, len(b)) copy(r, b) @@ -161,6 +174,18 @@ func bigIntToBytesLittleEndian(i *big.Int) []byte { return switchEndian(i.Bytes()) } +func fixedLittleEndianBytes(b []byte, size int) []byte { + if len(b) == size { + out := make([]byte, size) + copy(out, b) + return out + } + + out := make([]byte, size) + copy(out, b) + return out +} + func bigIntFromLittleEndian(b []byte) *big.Int { u := &big.Int{} u.SetBytes(switchEndian(b)) diff --git a/apps/authserver/service/realm.go b/apps/authserver/service/realm.go index bd31f68..7eb53ed 100644 --- a/apps/authserver/service/realm.go +++ b/apps/authserver/service/realm.go @@ -2,6 +2,7 @@ package service import ( "context" + "time" "github.com/walkline/ToCloud9/apps/authserver/repo" "github.com/walkline/ToCloud9/gen/servers-registry/pb" @@ -12,6 +13,10 @@ const ( RealmFlagVersionMismatch = 0x1 RealmFlagOffline = 0x2 RealmFlagRecommended = 0x20 + + offlineRealmAddress = "0.0.0.0:0" + + realmGatewayLookupTimeout = 2 * time.Second ) type RealmListItem struct { @@ -54,17 +59,23 @@ func (r *realmServiceImpl) RealmListForAccount(ctx context.Context, account *rep realmIDs = append(realmIDs, realm.ID) } - gatewaysResp, err := r.servRegistry.GatewaysForRealms(ctx, &pb.GatewaysForRealmsRequest{ + gatewayCtx := ctx + var cancel context.CancelFunc + if deadline, ok := ctx.Deadline(); !ok || time.Until(deadline) > realmGatewayLookupTimeout { + gatewayCtx, cancel = context.WithTimeout(ctx, realmGatewayLookupTimeout) + defer cancel() + } + + gatewaysResp, err := r.servRegistry.GatewaysForRealms(gatewayCtx, &pb.GatewaysForRealmsRequest{ Api: "v1.0", RealmIDs: realmIDs, }) - if err != nil { - return nil, err - } gatewaysAddressesMap := map[uint32]string{} - for _, lb := range gatewaysResp.Gateways { - gatewaysAddressesMap[lb.RealmID] = lb.Address + if err == nil && gatewaysResp != nil { + for _, lb := range gatewaysResp.Gateways { + gatewaysAddressesMap[lb.RealmID] = lb.Address + } } chars, err := r.realmRepo.CountCharsPerRealmByAccountID(ctx, account.ID) @@ -80,8 +91,9 @@ func (r *realmServiceImpl) RealmListForAccount(ctx context.Context, account *rep result := []RealmListItem{} for _, realm := range realms { address, found := gatewaysAddressesMap[realm.ID] - if !found { + if !found || address == "" { realm.Flag |= RealmFlagOffline + address = offlineRealmAddress } else { realm.Flag &^= RealmFlagOffline } diff --git a/apps/authserver/session/authsession.go b/apps/authserver/session/authsession.go index 35b2a79..d7d1774 100644 --- a/apps/authserver/session/authsession.go +++ b/apps/authserver/session/authsession.go @@ -6,6 +6,7 @@ import ( "crypto/rand" "encoding/binary" "errors" + "fmt" "io" "io/ioutil" "net" @@ -56,6 +57,15 @@ type CommandData struct { Size int } +const ( + authChallengeLoginSizeOverhead = 30 + maxAuthChallengeLoginLen = 16 +) + +// Matches AzerothCore authserver's VersionChallenge constant for 3.3.5a auth +// challenge and reconnect challenge responses. +var authVersionChallenge = [16]byte{0xBA, 0xA3, 0x1E, 0x99, 0xA0, 0x0B, 0x21, 0x57, 0xFC, 0x37, 0x3F, 0xB3, 0x69, 0xCD, 0xD2, 0xF1} + var Commands = map[Command]Status{ CommandLogonChallenge: StatusChallenge, CommandLogonProof: StatusLogonProof, @@ -172,10 +182,13 @@ func (s *AuthSession) HandleReconnectChallenge() error { if err != nil { return err } + if err = validateAuthChallengeLogin(d.Size, d.ILen); err != nil { + return err + } login := make([]byte, d.ILen) - _, err = s.conn.Read(login) + _, err = io.ReadFull(s.conn, login) if err != nil { return err } @@ -189,6 +202,10 @@ func (s *AuthSession) HandleReconnectChallenge() error { if err != nil { return err } + if s.account == nil || len(s.account.SessionKeyAuth) == 0 { + s.logger.Debug().Msg("Reconnect challenge rejected: account not found or missing session key") + return s.Write(CommandReconnectChallenge, AuthResultUnkAccount) + } s.reconnectProof = make([]byte, 16) _, err = rand.Read(s.reconnectProof) @@ -202,7 +219,7 @@ func (s *AuthSession) HandleReconnectChallenge() error { CommandReconnectChallenge, AuthResultSuccess, s.reconnectProof, - []byte{0xBA, 0xA3, 0x1E, 0x99, 0xA0, 0x0B, 0x21, 0x57, 0xFC, 0x37, 0x3F, 0xB3, 0x69, 0xCD, 0xD2, 0xF1}, + authVersionChallenge[:], ) if err != nil { return err @@ -269,10 +286,13 @@ func (s *AuthSession) HandleLogonChallenge() error { if err != nil { return err } + if err = validateAuthChallengeLogin(d.Size, d.ILen); err != nil { + return err + } login := make([]byte, d.ILen) - _, err = s.conn.Read(login) + _, err = io.ReadFull(s.conn, login) if err != nil { return err } @@ -288,7 +308,7 @@ func (s *AuthSession) HandleLogonChallenge() error { } if s.account == nil { - return s.Write(CommandLogonProof, AuthResultUnkAccount, uint16(0)) + return s.Write([]byte{byte(CommandLogonChallenge), 0}, AuthResultUnkAccount) } s.srp = srp6.NewSRP(string(login), s.account.Salt, s.account.Verifier) @@ -303,7 +323,7 @@ func (s *AuthSession) HandleLogonChallenge() error { byte(32), N, _s, - []byte{0xBA, 0xA3, 0x1E, 0x99, 0xA0, 0x0B, 0x21, 0x57, 0xFC, 0x37, 0x3F, 0xB3, 0x69, 0xCD, 0xD2, 0xF1}, + authVersionChallenge[:], byte(0), ) if err != nil { @@ -441,8 +461,18 @@ func (s *AuthSession) Write(v ...interface{}) error { return s.write(s.conn, v...) } +func validateAuthChallengeLogin(size uint16, loginLen uint8) error { + if loginLen == 0 || loginLen > maxAuthChallengeLoginLen { + return fmt.Errorf("invalid auth challenge login length: %d", loginLen) + } + if int(size) != authChallengeLoginSizeOverhead+int(loginLen) { + return fmt.Errorf("invalid auth challenge size: %d for login length %d", size, loginLen) + } + return nil +} + func (s *AuthSession) write(writer io.Writer, v ...interface{}) error { - var err error + packet := new(bytes.Buffer) for i := range v { d := v[i] switch d.(type) { @@ -450,10 +480,20 @@ func (s *AuthSession) write(writer io.Writer, v ...interface{}) error { d = append([]byte(d.(string)), 0) } - err = binary.Write(writer, binary.LittleEndian, d) + err := binary.Write(packet, binary.LittleEndian, d) if err != nil { return err } } + if packet.Len() == 0 { + return nil + } + n, err := writer.Write(packet.Bytes()) + if err != nil { + return err + } + if n != packet.Len() { + return io.ErrShortWrite + } return nil } diff --git a/apps/guidserver/service/guid.go b/apps/guidserver/service/guid.go index a419710..3ad9a50 100644 --- a/apps/guidserver/service/guid.go +++ b/apps/guidserver/service/guid.go @@ -87,7 +87,7 @@ func NewGuidService(ctx context.Context, mysql repo.MaxGuidProvider, redisStorag return nil, err } - err = redisStorage.SetMaxGuidForItems(ctx, realmID, max) + err = redisStorage.SetMaxGuidForInstances(ctx, realmID, max) if err != nil { return nil, err } diff --git a/apps/servers-registry/cmd/servers-registry/main.go b/apps/servers-registry/cmd/servers-registry/main.go index 62220c9..9a6a3b4 100644 --- a/apps/servers-registry/cmd/servers-registry/main.go +++ b/apps/servers-registry/cmd/servers-registry/main.go @@ -26,6 +26,8 @@ import ( "github.com/walkline/ToCloud9/shared/healthandmetrics" ) +const gameServerMetricsReadTimeout = 6 * time.Second + func main() { mainContext, cancel := context.WithCancel(context.Background()) defer cancel() @@ -69,9 +71,10 @@ func main() { healthChecker := healthandmetrics.NewHealthChecker(time.Second*4, 4, healthandmetrics.NewHttpHealthCheckProcessor(time.Second*15)) go healthChecker.Start() - metricsConsumer := healthandmetrics.NewMetricsConsumer(time.Second*5, 3, healthandmetrics.NewHttpPrometheusMetricsReader(time.Second)) + metricsConsumer := healthandmetrics.NewMetricsConsumer(time.Second*5, 3, healthandmetrics.NewHttpPrometheusMetricsReader(gameServerMetricsReadTimeout)) go metricsConsumer.Start() + serverRegistryProducer := events.NewServerRegistryProducerNatsJSON(nc, "0.0.1") supportedRealms := conf.RealmsID gameServersService, err := service.NewGameServer( mainContext, @@ -79,7 +82,7 @@ func main() { healthChecker, metricsConsumer, binpack.NewBinPackBalancer(binpack.DefaultMapsWeight), // TODO: implement providing custom maps weight list. - events.NewServerRegistryProducerNatsJSON(nc, "0.0.1"), + serverRegistryProducer, supportedRealms, ) if err != nil { @@ -91,14 +94,27 @@ func main() { repo.NewGatewayRedisRepo(rdb), healthChecker, metricsConsumer, - events.NewServerRegistryProducerNatsJSON(nc, "0.0.1"), + serverRegistryProducer, []uint32{1}, ) if err != nil { log.Fatal().Err(err).Msg("can't create gateway service") } - registryService := server.NewServersRegistry(gameServersService, gatewayService) + matchmakingService := service.NewMatchmaking(healthChecker, serverRegistryProducer) + + if conf.MatchmakingServiceHealthCheckAddress != "" { + matchmakingMonitor := service.NewMatchmakingHealthMonitor( + conf.MatchmakingServiceAddress, + conf.MatchmakingServiceHealthCheckAddress, + time.Duration(conf.MatchmakingServiceHealthCheckIntervalMs)*time.Millisecond, + time.Duration(conf.MatchmakingServiceHealthCheckTimeoutMs)*time.Millisecond, + serverRegistryProducer, + ) + go matchmakingMonitor.Start(mainContext) + } + + registryService := server.NewServersRegistry(gameServersService, gatewayService, matchmakingService) if conf.LogLevel == zerolog.DebugLevel { registryService = server.NewServersRegistryDebugLoggerMiddleware(registryService, log.Logger) } diff --git a/apps/servers-registry/config/config.go b/apps/servers-registry/config/config.go index 4d31277..32ec969 100644 --- a/apps/servers-registry/config/config.go +++ b/apps/servers-registry/config/config.go @@ -17,6 +17,18 @@ type Config struct { // NatsURL is nats connection url NatsURL string `yaml:"natsUrl" env:"NATS_URL" env-default:"nats://nats:4222"` + // MatchmakingServiceAddress is address of matchmaking grpc service. It is used only for event context. + MatchmakingServiceAddress string `yaml:"matchmakingServiceAddress" env:"MATCHMAKING_SERVICE_ADDRESS" env-default:"localhost:8994"` + + // MatchmakingServiceHealthCheckAddress is address for matchmaking health checks. Empty disables monitoring. + MatchmakingServiceHealthCheckAddress string `yaml:"matchmakingServiceHealthCheckAddress" env:"MATCHMAKING_SERVICE_HEALTH_CHECK_ADDRESS" env-default:""` + + // MatchmakingServiceHealthCheckIntervalMs is the registry polling cadence for matchmaking health. + MatchmakingServiceHealthCheckIntervalMs uint32 `yaml:"matchmakingServiceHealthCheckIntervalMs" env:"MATCHMAKING_SERVICE_HEALTH_CHECK_INTERVAL_MS" env-default:"4000"` + + // MatchmakingServiceHealthCheckTimeoutMs is the http timeout for matchmaking health probes. + MatchmakingServiceHealthCheckTimeoutMs uint32 `yaml:"matchmakingServiceHealthCheckTimeoutMs" env:"MATCHMAKING_SERVICE_HEALTH_CHECK_TIMEOUT_MS" env-default:"15000"` + // RealmsIDs is id of realms that the system supports. RealmsID []uint32 `yaml:"realmsID" env:"REALMs_ID" env-default:"1"` } diff --git a/apps/servers-registry/mapbalancing/binpack/distributor.go b/apps/servers-registry/mapbalancing/binpack/distributor.go index 7b27bf1..b63580c 100644 --- a/apps/servers-registry/mapbalancing/binpack/distributor.go +++ b/apps/servers-registry/mapbalancing/binpack/distributor.go @@ -94,6 +94,9 @@ func (k *binpackBalancer) greedyBinPackBalancer(weights MapsWeight, servers []re } sort.Slice(mw, func(i, j int) bool { + if mw[i].weight == mw[j].weight { + return mw[i].mapID < mw[j].mapID + } return mw[i].weight > mw[j].weight }) @@ -112,25 +115,14 @@ func (k *binpackBalancer) greedyBinPackBalancer(weights MapsWeight, servers []re } } - if len(packing) > len(servers) { - lenDiff := len(servers) - len(packing) - for i := 0; i < lenDiff; i++ { - - for serversItr, j := 0, 0; j < lenDiff; j++ { - if serversItr >= len(servers) { - serversItr = 0 - } - - servers[serversItr].AssignedMapsToHandle = append(servers[serversItr].AssignedMapsToHandle, packing[i][j].mapID) - serversItr++ - } + for i := range packing { + serverIndex := i + if serverIndex >= len(servers) { + serverIndex = i % len(servers) } - packing = packing[:len(servers)] - } - for i := range packing { for j := range packing[i] { - servers[i].AssignedMapsToHandle = append(servers[i].AssignedMapsToHandle, packing[i][j].mapID) + servers[serverIndex].AssignedMapsToHandle = append(servers[serverIndex].AssignedMapsToHandle, packing[i][j].mapID) } } diff --git a/apps/servers-registry/repo/game-server.go b/apps/servers-registry/repo/game-server.go index 59c10ec..1b36f1c 100644 --- a/apps/servers-registry/repo/game-server.go +++ b/apps/servers-registry/repo/game-server.go @@ -66,9 +66,9 @@ func (g *GameServer) IsAllMapsAvailable() bool { func (g *GameServer) Copy() GameServer { cp := *g - copy(cp.AvailableMaps, g.AvailableMaps) - copy(cp.AssignedMapsToHandle, g.AssignedMapsToHandle) - copy(cp.AssignedButPendingMaps, g.AssignedButPendingMaps) + cp.AvailableMaps = append([]uint32(nil), g.AvailableMaps...) + cp.AssignedMapsToHandle = append([]uint32(nil), g.AssignedMapsToHandle...) + cp.AssignedButPendingMaps = append([]uint32(nil), g.AssignedButPendingMaps...) return cp } diff --git a/apps/servers-registry/repo/game-server_inmem.go b/apps/servers-registry/repo/game-server_inmem.go index 743ae09..8ae0657 100644 --- a/apps/servers-registry/repo/game-server_inmem.go +++ b/apps/servers-registry/repo/game-server_inmem.go @@ -22,6 +22,13 @@ func (g *gameServerInMemRepo) Upsert(ctx context.Context, server *GameServer) er server.ID = server.Address } + for i := range g.storage { + if g.storage[i].ID == server.ID { + g.storage[i] = *server + return nil + } + } + g.storage = append(g.storage, *server) return nil diff --git a/apps/servers-registry/repo/game-server_redis.go b/apps/servers-registry/repo/game-server_redis.go index ba9c864..08ad6c5 100644 --- a/apps/servers-registry/repo/game-server_redis.go +++ b/apps/servers-registry/repo/game-server_redis.go @@ -27,28 +27,34 @@ func (g *gameServerRedisRepo) Upsert(ctx context.Context, server *GameServer) er server.ID = g.generateID(server.Address) } - d, err := json.Marshal(server) + key := g.key(server.ID) + previous, err := g.serverByKey(ctx, key) if err != nil { return err } - key := g.key(server.ID) - status := g.rdb.Set(ctx, key, d, 0) - if status.Err() != nil { - return status.Err() + d, err := json.Marshal(server) + if err != nil { + return err } - res := g.rdb.SAdd(ctx, g.realmIndexKey(server.RealmID, server.IsCrossRealm), key) - if res.Err() != nil { - g.rdb.Del(ctx, key) - return res.Err() + newIndexKey := g.realmIndexKey(server.RealmID, server.IsCrossRealm) + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, key, d, 0) + pipe.SAdd(ctx, newIndexKey, key) + if previous != nil { + if oldIndexKey := g.realmIndexKey(previous.RealmID, previous.IsCrossRealm); oldIndexKey != newIndexKey { + pipe.SRem(ctx, oldIndexKey, key) + } } - return nil + _, err = pipe.Exec(ctx) + return err } func (g *gameServerRedisRepo) Update(ctx context.Context, id string, f func(*GameServer) *GameServer) error { - res := g.rdb.Get(ctx, g.key(id)) + oldKey := g.key(id) + res := g.rdb.Get(ctx, oldKey) if res.Err() != nil { return res.Err() } @@ -58,6 +64,8 @@ func (g *gameServerRedisRepo) Update(ctx context.Context, id string, f func(*Gam if err != nil { return err } + oldRealmID := v.RealmID + oldIsCrossRealm := v.IsCrossRealm newV := f(v) d, err := json.Marshal(newV) @@ -65,9 +73,22 @@ func (g *gameServerRedisRepo) Update(ctx context.Context, id string, f func(*Gam return err } - key := g.key(newV.ID) - status := g.rdb.Set(ctx, key, d, 0) - return status.Err() + newKey := g.key(newV.ID) + newIndexKey := g.realmIndexKey(newV.RealmID, newV.IsCrossRealm) + oldIndexKey := g.realmIndexKey(oldRealmID, oldIsCrossRealm) + + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, newKey, d, 0) + pipe.SAdd(ctx, newIndexKey, newKey) + if oldIndexKey != newIndexKey || oldKey != newKey { + pipe.SRem(ctx, oldIndexKey, oldKey) + } + if oldKey != newKey { + pipe.Del(ctx, oldKey) + } + + _, err = pipe.Exec(ctx) + return err } func (g *gameServerRedisRepo) Remove(ctx context.Context, id string) error { @@ -178,7 +199,11 @@ func (g *gameServerRedisRepo) listForRealmOrCrossRealm(ctx context.Context, real } func (g *gameServerRedisRepo) One(ctx context.Context, id string) (*GameServer, error) { - getRes := g.rdb.Get(ctx, g.key(id)) + return g.serverByKey(ctx, g.key(id)) +} + +func (g *gameServerRedisRepo) serverByKey(ctx context.Context, key string) (*GameServer, error) { + getRes := g.rdb.Get(ctx, key) if getRes.Err() != nil { if errors.Is(getRes.Err(), redis.Nil) { return nil, nil diff --git a/apps/servers-registry/repo/gateway-server_redis.go b/apps/servers-registry/repo/gateway-server_redis.go index d3c39c8..1616cae 100644 --- a/apps/servers-registry/repo/gateway-server_redis.go +++ b/apps/servers-registry/repo/gateway-server_redis.go @@ -25,28 +25,34 @@ func (g *gatewayRedisRepo) Add(ctx context.Context, server *GatewayServer) (*Gat server.HealthCheckAddr = strings.ToLower(server.HealthCheckAddr) server.ID = g.generateID(server.HealthCheckAddr) - d, err := json.Marshal(server) + key := g.key(server.ID) + previous, err := g.gatewayByKey(ctx, key) if err != nil { return nil, err } - key := g.key(server.ID) - status := g.rdb.Set(ctx, key, d, 0) - if status.Err() != nil { - return nil, status.Err() + d, err := json.Marshal(server) + if err != nil { + return nil, err } - res := g.rdb.SAdd(ctx, g.realmIndexKey(server.RealmID), key) - if res.Err() != nil { - g.rdb.Del(ctx, key) - return nil, res.Err() + newIndexKey := g.realmIndexKey(server.RealmID) + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, key, d, 0) + pipe.SAdd(ctx, newIndexKey, key) + if previous != nil { + if oldIndexKey := g.realmIndexKey(previous.RealmID); oldIndexKey != newIndexKey { + pipe.SRem(ctx, oldIndexKey, key) + } } - return server, nil + _, err = pipe.Exec(ctx) + return server, err } func (g *gatewayRedisRepo) Update(ctx context.Context, id string, f func(GatewayServer) GatewayServer) error { - res := g.rdb.Get(ctx, g.key(id)) + oldKey := g.key(id) + res := g.rdb.Get(ctx, oldKey) if res.Err() != nil { return res.Err() } @@ -56,6 +62,7 @@ func (g *gatewayRedisRepo) Update(ctx context.Context, id string, f func(Gateway if err != nil { return err } + oldRealmID := v.RealmID newV := f(*v) d, err := json.Marshal(newV) @@ -63,9 +70,22 @@ func (g *gatewayRedisRepo) Update(ctx context.Context, id string, f func(Gateway return err } - key := g.key(newV.ID) - status := g.rdb.Set(ctx, key, d, 0) - return status.Err() + newKey := g.key(newV.ID) + newIndexKey := g.realmIndexKey(newV.RealmID) + oldIndexKey := g.realmIndexKey(oldRealmID) + + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, newKey, d, 0) + pipe.SAdd(ctx, newIndexKey, newKey) + if oldIndexKey != newIndexKey || oldKey != newKey { + pipe.SRem(ctx, oldIndexKey, oldKey) + } + if oldKey != newKey { + pipe.Del(ctx, oldKey) + } + + _, err = pipe.Exec(ctx) + return err } func (g *gatewayRedisRepo) Remove(ctx context.Context, healthCheckAddress string) error { @@ -125,6 +145,28 @@ func (g *gatewayRedisRepo) ListByRealm(ctx context.Context, realmID uint32) ([]G return result, nil } +func (g *gatewayRedisRepo) gatewayByKey(ctx context.Context, key string) (*GatewayServer, error) { + getRes := g.rdb.Get(ctx, key) + if getRes.Err() != nil { + if errors.Is(getRes.Err(), redis.Nil) { + return nil, nil + } + return nil, getRes.Err() + } + + resBytes, err := getRes.Bytes() + if err != nil { + return nil, err + } + + obj := &GatewayServer{} + if err = json.Unmarshal(resBytes, obj); err != nil { + return nil, err + } + + return obj, nil +} + func (g *gatewayRedisRepo) realmIndexKey(realmID uint32) string { return fmt.Sprintf("realm:%d:gws", realmID) } diff --git a/apps/servers-registry/server/registry-server-debug-logger.go b/apps/servers-registry/server/registry-server-debug-logger.go index c8320ed..d37694c 100644 --- a/apps/servers-registry/server/registry-server-debug-logger.go +++ b/apps/servers-registry/server/registry-server-debug-logger.go @@ -118,3 +118,8 @@ func (s *serversRegistryDebugLoggerMiddleware) ListGatewaysForRealm(ctx context. resp, err = s.realService.ListGatewaysForRealm(ctx, request) return } + +func (s *serversRegistryDebugLoggerMiddleware) RegisterMatchmakingServer(ctx context.Context, request *pb.RegisterMatchmakingServerRequest) (*pb.RegisterMatchmakingServerResponse, error) { + // Logs already inside. + return s.realService.RegisterMatchmakingServer(ctx, request) +} diff --git a/apps/servers-registry/server/registry-server.go b/apps/servers-registry/server/registry-server.go index 8b2afde..65ab13b 100644 --- a/apps/servers-registry/server/registry-server.go +++ b/apps/servers-registry/server/registry-server.go @@ -3,6 +3,7 @@ package server import ( "context" "fmt" + "sort" "strconv" "strings" @@ -20,12 +21,14 @@ type serversRegistry struct { pb.UnimplementedServersRegistryServiceServer gService service.GameServer lbService service.Gateway + mmService service.Matchmaking } -func NewServersRegistry(gService service.GameServer, lbService service.Gateway) pb.ServersRegistryServiceServer { +func NewServersRegistry(gService service.GameServer, lbService service.Gateway, mmService service.Matchmaking) pb.ServersRegistryServiceServer { return &serversRegistry{ gService: gService, lbService: lbService, + mmService: mmService, } } @@ -69,6 +72,7 @@ func (s *serversRegistry) AvailableGameServersForMapAndRealm(ctx context.Context resultServers := make([]*pb.Server, 0, len(servers)) for i := range servers { resultServers = append(resultServers, &pb.Server{ + Id: servers[i].ID, Address: servers[i].Address, RealmID: servers[i].RealmID, IsCrossRealm: servers[i].IsCrossRealm, @@ -174,6 +178,7 @@ func (s *serversRegistry) RandomGameServerForRealm(ctx context.Context, request return &pb.RandomGameServerForRealmResponse{ Api: ver, GameServer: &pb.Server{ + Id: server.ID, Address: server.Address, RealmID: server.RealmID, }, @@ -227,6 +232,7 @@ func (s *serversRegistry) GatewaysForRealms(ctx context.Context, request *pb.Gat } servers = append(servers, &pb.Server{ + Id: server.ID, Address: server.Address, RealmID: server.RealmID, }) @@ -261,6 +267,34 @@ func (s *serversRegistry) ListGatewaysForRealm(ctx context.Context, request *pb. }, nil } +func (s *serversRegistry) RegisterMatchmakingServer(ctx context.Context, request *pb.RegisterMatchmakingServerRequest) (*pb.RegisterMatchmakingServerResponse, error) { + log.Info().Interface("request", request).Msg("New request to add matchmaking server") + + host := "localhost" + if p, ok := peer.FromContext(ctx); ok && p.Addr != nil { + host = removePortFromAddress(p.Addr.String()) + } + if request.PreferredHostName != "" { + host = request.PreferredHostName + } + + matchmakingServer := &service.MatchmakingServer{ + Address: fmt.Sprintf("%s:%d", host, request.ServicePort), + HealthCheckAddr: fmt.Sprintf("%s:%d", host, request.HealthPort), + StartedAtUnixMs: request.StartedAtUnixMs, + } + + server, err := s.mmService.Register(ctx, matchmakingServer) + if err != nil { + return nil, err + } + + return &pb.RegisterMatchmakingServerResponse{ + Api: ver, + Id: server.ID, + }, nil +} + func removePortFromAddress(address string) string { for i := len(address) - 1; i >= 0; i-- { if address[i] == ':' { @@ -272,20 +306,32 @@ func removePortFromAddress(address string) string { } func stringToAvailableMaps(s string) []uint32 { - v := strings.Split(s, ",") - if len(v) == 0 { - return []uint32{} - } + parts := strings.Split(s, ",") + seen := map[uint32]struct{}{} + result := make([]uint32, 0, len(parts)) + for _, raw := range parts { + token := strings.TrimSpace(raw) + if token == "" { + continue + } - result := make([]uint32, 0, len(v)) - for i := range v { - r, err := strconv.Atoi(v[i]) + r, err := strconv.ParseUint(token, 10, 32) if err != nil { + log.Warn().Str("availableMap", raw).Msg("ignoring invalid available map id") continue } - result = append(result, uint32(r)) + mapID := uint32(r) + if _, ok := seen[mapID]; ok { + continue + } + seen[mapID] = struct{}{} + result = append(result, mapID) } + sort.Slice(result, func(i, j int) bool { + return result[i] < result[j] + }) + return result } diff --git a/apps/servers-registry/service/game-server.go b/apps/servers-registry/service/game-server.go index b060372..1b80098 100644 --- a/apps/servers-registry/service/game-server.go +++ b/apps/servers-registry/service/game-server.go @@ -2,8 +2,11 @@ package service import ( "context" + "errors" "fmt" "math/rand" + "net" + "net/http" "sort" "github.com/rs/zerolog/log" @@ -100,7 +103,7 @@ func NewGameServer( func (g *gameServerImpl) Register(ctx context.Context, server *repo.GameServer) error { sort.Slice(server.AvailableMaps, func(i, j int) bool { - return server.AvailableMaps[i] <= server.AvailableMaps[j] + return server.AvailableMaps[i] < server.AvailableMaps[j] }) if err := g.checker.AddHealthCheckObject(server); err != nil { @@ -173,14 +176,26 @@ func (g *gameServerImpl) AvailableForMapAndRealm(ctx context.Context, mapID uint return nil, err } + hasExplicitMapServer := false + for _, server := range servers { + if !server.IsAllMapsAvailable() && containsMapID(server.AvailableMaps, mapID) { + hasExplicitMapServer = true + break + } + } + result := []repo.GameServer{} for _, server := range servers { + if hasExplicitMapServer && server.IsAllMapsAvailable() { + continue + } + if server.CanHandleMap(mapID) { result = append(result, server) } } - return append(result), nil + return result, nil } func (g *gameServerImpl) RandomServerForRealm(ctx context.Context, realmID uint32) (*repo.GameServer, error) { @@ -233,6 +248,7 @@ func (g *gameServerImpl) MapsLoadedForServer(ctx context.Context, serverID strin return nil, fmt.Errorf("game server not found") } + pendingBefore := len(server.AssignedButPendingMaps) newPendingMaps := []uint32{} for i := range server.AssignedButPendingMaps { hasMap := false @@ -248,11 +264,37 @@ func (g *gameServerImpl) MapsLoadedForServer(ctx context.Context, serverID strin } server.AssignedButPendingMaps = newPendingMaps + log.Info(). + Str("serverID", serverID). + Str("address", server.Address). + Str("grpcAddress", server.GRPCAddress). + Str("healthCheckAddress", server.HealthCheckAddr). + Uint32("realmID", server.RealmID). + Bool("isCrossRealm", server.IsCrossRealm). + Int("loadedMaps", len(maps)). + Int("pendingBefore", pendingBefore). + Int("pendingAfter", len(newPendingMaps)). + Msg("Game server maps marked ready") return server, g.r.Upsert(ctx, server) } func (g *gameServerImpl) onServerUnhealthy(server *repo.GameServer, err error) { + if isDegradedGameServerHealthError(err) { + log.Warn(). + Err(err). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Uint32("realmID", server.RealmID). + Bool("isCrossRealm", server.IsCrossRealm). + Msg("Game Server world-loop health degraded; preserving registered routing membership") + if addErr := g.checker.AddHealthCheckObject(server); addErr != nil { + log.Error().Err(addErr).Str("serverID", server.ID).Msg("can't re-add degraded game server to health checker") + } + return + } + log.Warn(). Err(err). Str("address", server.Address). @@ -304,6 +346,16 @@ func (g *gameServerImpl) onServerUnhealthy(server *repo.GameServer, err error) { } } +func isDegradedGameServerHealthError(err error) bool { + var statusErr *healthandmetrics.HTTPStatusError + if errors.As(err, &statusErr) { + return statusErr.StatusCode == http.StatusServiceUnavailable || statusErr.StatusCode == http.StatusGatewayTimeout + } + + var netErr net.Error + return errors.As(err, &netErr) && netErr.Timeout() +} + func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers []repo.GameServer) ([]repo.GameServer, error) { serversBefore := make([]repo.GameServer, len(servers)) for i, server := range servers { @@ -318,6 +370,7 @@ func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers [] ID: distributed[i].ID, Address: distributed[i].Address, RealmID: distributed[i].RealmID, + IsCrossRealm: distributed[i].IsCrossRealm, AvailableMaps: distributed[i].AvailableMaps, NewAssignedMapsToHandle: distributed[i].AssignedMapsToHandle, } @@ -331,12 +384,13 @@ func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers [] } for i := range distributed { - // Mark new maps as pending. for _, server := range res { if server.ID == distributed[i].ID { - // No need to have confirmation for assignment on startup. - if len(server.OldAssignedMapsToHandle) > 0 { - distributed[i].AssignedButPendingMaps = server.OnlyNewMaps() + for _, previousServer := range serversBefore { + if previousServer.ID == distributed[i].ID { + distributed[i].AssignedButPendingMaps = pendingMapsAfterReassignment(previousServer, server) + break + } } break } @@ -357,6 +411,44 @@ func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers [] return distributed, nil } +func pendingMapsAfterReassignment(previous repo.GameServer, reassigned events.GameServer) []uint32 { + pending := make([]uint32, 0, len(previous.AssignedButPendingMaps)+len(reassigned.NewAssignedMapsToHandle)) + seen := map[uint32]struct{}{} + + addPending := func(mapID uint32) { + if _, ok := seen[mapID]; ok { + return + } + seen[mapID] = struct{}{} + pending = append(pending, mapID) + } + + for _, mapID := range previous.AssignedButPendingMaps { + if containsMapID(reassigned.NewAssignedMapsToHandle, mapID) { + addPending(mapID) + } + } + + for _, mapID := range reassigned.OnlyNewMaps() { + addPending(mapID) + } + + sort.Slice(pending, func(i, j int) bool { + return pending[i] < pending[j] + }) + + return pending +} + +func containsMapID(maps []uint32, mapID uint32) bool { + for _, candidate := range maps { + if candidate == mapID { + return true + } + } + return false +} + func (g *gameServerImpl) onMetricsUpdate(server *repo.GameServer, m *healthandmetrics.MetricsRead) { err := g.r.Update(context.Background(), server.ID, func(s *repo.GameServer) *repo.GameServer { s.ActiveConnections = uint32(m.ActiveConnections) diff --git a/apps/servers-registry/service/matchmaking-monitor.go b/apps/servers-registry/service/matchmaking-monitor.go new file mode 100644 index 0000000..a3bef0b --- /dev/null +++ b/apps/servers-registry/service/matchmaking-monitor.go @@ -0,0 +1,165 @@ +package service + +import ( + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "time" + + "github.com/rs/zerolog/log" + + "github.com/walkline/ToCloud9/shared/events" + "github.com/walkline/ToCloud9/shared/healthandmetrics" +) + +const ( + defaultMatchmakingHealthCheckInterval = 4 * time.Second + defaultMatchmakingHealthCheckTimeout = 15 * time.Second +) + +type MatchmakingHealthMonitor struct { + serviceAddress string + healthCheckAddress string + interval time.Duration + client *http.Client + eventsProducer events.ServerRegistryProducer + + lastHealthy *bool + lastStartedAtUnixMs int64 +} + +type matchmakingHealthPayload struct { + StartedAtUnixMs int64 `json:"startedAtUnixMs"` +} + +func NewMatchmakingHealthMonitor( + serviceAddress string, + healthCheckAddress string, + interval time.Duration, + timeout time.Duration, + eventsProducer events.ServerRegistryProducer, +) *MatchmakingHealthMonitor { + if interval <= 0 { + interval = defaultMatchmakingHealthCheckInterval + } + if timeout <= 0 { + timeout = defaultMatchmakingHealthCheckTimeout + } + + return &MatchmakingHealthMonitor{ + serviceAddress: serviceAddress, + healthCheckAddress: healthCheckAddress, + interval: interval, + client: &http.Client{ + Timeout: timeout, + }, + eventsProducer: eventsProducer, + } +} + +func (m *MatchmakingHealthMonitor) Start(ctx context.Context) { + if m.healthCheckAddress == "" { + return + } + + m.checkOnce(ctx) + + ticker := time.NewTicker(m.interval) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + m.checkOnce(ctx) + case <-ctx.Done(): + return + } + } +} + +func (m *MatchmakingHealthMonitor) checkOnce(ctx context.Context) { + status, err := m.check(ctx) + if err != nil { + if m.lastHealthy == nil || *m.lastHealthy { + m.publishUnhealthy(err) + } + healthy := false + m.lastHealthy = &healthy + return + } + + if m.lastHealthy != nil && !*m.lastHealthy { + m.publishRecovered() + } else if m.lastHealthy != nil && + *m.lastHealthy && + status.StartedAtUnixMs != 0 && + m.lastStartedAtUnixMs != 0 && + status.StartedAtUnixMs != m.lastStartedAtUnixMs { + m.publishUnhealthy(fmt.Errorf("matchmaking service restarted")) + } + m.lastStartedAtUnixMs = status.StartedAtUnixMs + healthy := true + m.lastHealthy = &healthy +} + +func (m *MatchmakingHealthMonitor) check(ctx context.Context) (matchmakingHealthPayload, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, "http://"+m.healthCheckAddress+healthandmetrics.HealthCheckURL, nil) + if err != nil { + return matchmakingHealthPayload{}, err + } + + resp, err := m.client.Do(req) + if err != nil { + return matchmakingHealthPayload{}, err + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return matchmakingHealthPayload{}, fmt.Errorf("bad status code %d", resp.StatusCode) + } + + var status matchmakingHealthPayload + if err := json.NewDecoder(io.LimitReader(resp.Body, 4096)).Decode(&status); err != nil { + return matchmakingHealthPayload{}, nil + } + + return status, nil +} + +func (m *MatchmakingHealthMonitor) publishUnhealthy(err error) { + log.Warn(). + Err(err). + Str("address", m.serviceAddress). + Str("healthCheckAddress", m.healthCheckAddress). + Msg("Matchmaking service unhealthy") + + if produceErr := m.eventsProducer.MatchmakingRemovedUnhealthy(&events.ServerRegistryEventMatchmakingRemovedUnhealthyPayload{ + MatchmakingService: m.payload(), + Error: err.Error(), + }); produceErr != nil { + log.Error().Err(produceErr).Msg("can't produce unhealthy matchmaking event") + } +} + +func (m *MatchmakingHealthMonitor) publishRecovered() { + log.Info(). + Str("address", m.serviceAddress). + Str("healthCheckAddress", m.healthCheckAddress). + Msg("Matchmaking service recovered") + + if err := m.eventsProducer.MatchmakingRecovered(&events.ServerRegistryEventMatchmakingRecoveredPayload{ + MatchmakingService: m.payload(), + }); err != nil { + log.Error().Err(err).Msg("can't produce recovered matchmaking event") + } +} + +func (m *MatchmakingHealthMonitor) payload() events.MatchmakingService { + return events.MatchmakingService{ + Address: m.serviceAddress, + HealthCheckAddr: m.healthCheckAddress, + ObservedAtUnixMs: time.Now().UnixMilli(), + } +} diff --git a/apps/servers-registry/service/matchmaking-server.go b/apps/servers-registry/service/matchmaking-server.go new file mode 100644 index 0000000..2365c45 --- /dev/null +++ b/apps/servers-registry/service/matchmaking-server.go @@ -0,0 +1,149 @@ +package service + +import ( + "context" + "fmt" + "sync" + "time" + + "github.com/rs/zerolog/log" + + "github.com/walkline/ToCloud9/shared/events" + "github.com/walkline/ToCloud9/shared/healthandmetrics" +) + +type Matchmaking interface { + Register(ctx context.Context, server *MatchmakingServer) (*MatchmakingServer, error) +} + +type MatchmakingServer struct { + ID string + Address string + HealthCheckAddr string + StartedAtUnixMs int64 +} + +func (s *MatchmakingServer) HealthCheckAddress() string { + return s.HealthCheckAddr +} + +type matchmakingImpl struct { + checker healthandmetrics.HealthChecker + eProducer events.ServerRegistryProducer + + mu sync.Mutex + current *MatchmakingServer +} + +func NewMatchmaking(checker healthandmetrics.HealthChecker, eProducer events.ServerRegistryProducer) Matchmaking { + service := &matchmakingImpl{ + checker: checker, + eProducer: eProducer, + } + + checker.AddFailedObserver(func(object healthandmetrics.HealthCheckObject, err error) { + if server, ok := object.(*MatchmakingServer); ok { + service.onServerUnhealthy(server, err) + } + }) + + return service +} + +func (m *matchmakingImpl) Register(ctx context.Context, server *MatchmakingServer) (*MatchmakingServer, error) { + _ = ctx + + if server == nil { + return nil, fmt.Errorf("matchmaking server is nil") + } + if server.Address == "" { + return nil, fmt.Errorf("matchmaking server address is empty") + } + if server.HealthCheckAddr == "" { + return nil, fmt.Errorf("matchmaking health check address is empty") + } + if server.ID == "" { + server.ID = server.Address + } + + m.mu.Lock() + + if m.current != nil && sameMatchmakingInstance(m.current, server) { + if err := m.checker.AddHealthCheckObject(m.current); err != nil { + m.mu.Unlock() + return nil, err + } + current := m.current + m.mu.Unlock() + return current, nil + } + + restarted := m.current != nil + if m.current != nil { + if err := m.checker.RemoveHealthCheckObject(m.current); err != nil { + m.mu.Unlock() + return nil, err + } + } + + if err := m.checker.AddHealthCheckObject(server); err != nil { + m.mu.Unlock() + return nil, err + } + m.current = server + m.mu.Unlock() + + if restarted { + m.publishUnhealthy(server, fmt.Errorf("matchmaking service restarted")) + } + + log.Info(). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Int64("startedAtUnixMs", server.StartedAtUnixMs). + Msg("Registered matchmaking server") + + return server, nil +} + +func (m *matchmakingImpl) onServerUnhealthy(server *MatchmakingServer, err error) { + m.mu.Lock() + if m.current != server { + m.mu.Unlock() + return + } + m.current = nil + m.mu.Unlock() + + if removeErr := m.checker.RemoveHealthCheckObject(server); removeErr != nil { + log.Error().Err(removeErr).Msg("can't remove matchmaking from health checker") + } + + m.publishUnhealthy(server, err) +} + +func (m *matchmakingImpl) publishUnhealthy(server *MatchmakingServer, err error) { + log.Warn(). + Err(err). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Msg("Matchmaking service unhealthy") + + if produceErr := m.eProducer.MatchmakingRemovedUnhealthy(&events.ServerRegistryEventMatchmakingRemovedUnhealthyPayload{ + MatchmakingService: events.MatchmakingService{ + Address: server.Address, + HealthCheckAddr: server.HealthCheckAddr, + ObservedAtUnixMs: time.Now().UnixMilli(), + }, + Error: err.Error(), + }); produceErr != nil { + log.Error().Err(produceErr).Msg("can't produce unhealthy matchmaking event") + } +} + +func sameMatchmakingInstance(a, b *MatchmakingServer) bool { + return a.Address == b.Address && + a.HealthCheckAddr == b.HealthCheckAddr && + a.StartedAtUnixMs != 0 && + a.StartedAtUnixMs == b.StartedAtUnixMs +} diff --git a/shared/healthandmetrics/health-checker.go b/shared/healthandmetrics/health-checker.go index d7f7f7e..b425579 100644 --- a/shared/healthandmetrics/health-checker.go +++ b/shared/healthandmetrics/health-checker.go @@ -3,6 +3,7 @@ package healthandmetrics import ( "fmt" "net/http" + "reflect" "sync" "time" ) @@ -27,6 +28,16 @@ type HealthCheckProcessor interface { Check(HealthCheckObject) error } +const defaultHealthCheckFailureThreshold = 2 + +type HTTPStatusError struct { + StatusCode int +} + +func (e *HTTPStatusError) Error() string { + return fmt.Sprintf("bad status code %d", e.StatusCode) +} + type healthCheckResult struct { obj HealthCheckObject err error @@ -45,17 +56,23 @@ type healthChecker struct { successObservers []HealthCheckSuccessObserver failedObservers []HealthCheckFailedObserver + failureCountsMu sync.Mutex + failureCounts map[string]int + failureThreshold int + results chan healthCheckResult queue chan HealthCheckObject } func NewHealthChecker(delay time.Duration, processorsCount int, processor HealthCheckProcessor) HealthChecker { return &healthChecker{ - delay: delay, - processorsCount: processorsCount, - processor: processor, - results: make(chan healthCheckResult, 100), - queue: make(chan HealthCheckObject, 100), + delay: delay, + processorsCount: processorsCount, + processor: processor, + failureCounts: map[string]int{}, + failureThreshold: defaultHealthCheckFailureThreshold, + results: make(chan healthCheckResult, 100), + queue: make(chan HealthCheckObject, 100), } } @@ -63,14 +80,16 @@ func (h *healthChecker) AddHealthCheckObject(object HealthCheckObject) error { h.objectsMu.Lock() defer h.objectsMu.Unlock() - // Check if we already have this observable. - for _, o := range h.objects { + for i, o := range h.objects { if o.HealthCheckAddress() == object.HealthCheckAddress() { + h.objects[i] = object + h.resetFailureCount(object) return nil } } h.objects = append(h.objects, object) + h.resetFailureCount(object) return nil } @@ -80,11 +99,16 @@ func (h *healthChecker) RemoveHealthCheckObject(object HealthCheckObject) error for i := range h.objects { if h.objects[i].HealthCheckAddress() == object.HealthCheckAddress() { + if !sameHealthCheckObject(h.objects[i], object) { + return nil + } h.objects = append(h.objects[:i], h.objects[i+1:]...) + h.clearFailureCount(object) return nil } } + h.clearFailureCount(object) return nil } @@ -134,7 +158,15 @@ func (h *healthChecker) makeIteration() { } func (h *healthChecker) handleResult(result healthCheckResult) { + if !h.isCurrentHealthCheckObject(result.obj) { + return + } + if result.err != nil { + if h.recordFailure(result.obj) < h.failureThreshold { + return + } + h.RemoveHealthCheckObject(result.obj) h.observersMu.RLock() @@ -144,6 +176,8 @@ func (h *healthChecker) handleResult(result healthCheckResult) { observer(result.obj, result.err) } } else { + h.resetFailureCount(result.obj) + h.observersMu.RLock() defer h.observersMu.RUnlock() @@ -153,6 +187,57 @@ func (h *healthChecker) handleResult(result healthCheckResult) { } } +func (h *healthChecker) isCurrentHealthCheckObject(object HealthCheckObject) bool { + h.objectsMu.RLock() + defer h.objectsMu.RUnlock() + + for _, current := range h.objects { + if current.HealthCheckAddress() != object.HealthCheckAddress() { + continue + } + + return sameHealthCheckObject(current, object) + } + + return false +} + +func sameHealthCheckObject(a, b HealthCheckObject) bool { + if a == nil || b == nil { + return a == b + } + + aType := reflect.TypeOf(a) + if aType != reflect.TypeOf(b) || !aType.Comparable() { + return true + } + + return a == b +} + +func (h *healthChecker) recordFailure(object HealthCheckObject) int { + h.failureCountsMu.Lock() + defer h.failureCountsMu.Unlock() + + address := object.HealthCheckAddress() + h.failureCounts[address]++ + return h.failureCounts[address] +} + +func (h *healthChecker) resetFailureCount(object HealthCheckObject) { + h.failureCountsMu.Lock() + defer h.failureCountsMu.Unlock() + + h.failureCounts[object.HealthCheckAddress()] = 0 +} + +func (h *healthChecker) clearFailureCount(object HealthCheckObject) { + h.failureCountsMu.Lock() + defer h.failureCountsMu.Unlock() + + delete(h.failureCounts, object.HealthCheckAddress()) +} + func (h *healthChecker) process(processorsCount int) { for i := 0; i < processorsCount; i++ { go func() { @@ -184,8 +269,10 @@ func (h *httpHealthCheckProcessor) Check(object HealthCheckObject) error { return err } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { - return fmt.Errorf("bad status code %d", resp.StatusCode) + return &HTTPStatusError{StatusCode: resp.StatusCode} } return nil diff --git a/shared/healthandmetrics/metrics-reader.go b/shared/healthandmetrics/metrics-reader.go index 73a6245..0cbee32 100644 --- a/shared/healthandmetrics/metrics-reader.go +++ b/shared/healthandmetrics/metrics-reader.go @@ -4,6 +4,7 @@ import ( "fmt" "io" "net/http" + "reflect" "sync" "time" @@ -25,7 +26,7 @@ type MetricsRead struct { Delay99Percentile int DelayMax int - Raw []dto.MetricFamily + Raw []*dto.MetricFamily } type MetricsObserver func(MetricsObservable, *MetricsRead) @@ -67,9 +68,9 @@ func (m *metricsConsumerImpl) AddMetricsObservable(observable MetricsObservable) m.objectsMu.Lock() defer m.objectsMu.Unlock() - // Check if we already have this observable. - for _, object := range m.objects { + for i, object := range m.objects { if object.MetricsAddress() == observable.MetricsAddress() { + m.objects[i] = observable return nil } } @@ -84,6 +85,9 @@ func (m *metricsConsumerImpl) RemoveMetricsObservable(observable MetricsObservab for i := range m.objects { if m.objects[i].MetricsAddress() == observable.MetricsAddress() { + if !sameMetricsObservable(m.objects[i], observable) { + return nil + } m.objects = append(m.objects[:i], m.objects[i+1:]...) return nil } @@ -146,6 +150,10 @@ func (m *metricsConsumerImpl) makeIteration() { } func (m *metricsConsumerImpl) handleResult(result metricsReadResult) { + if !m.isCurrentMetricsObservable(result.Observable) { + return + } + if result.Err != nil { log.Error().Err(result.Err).Msgf("failed to read metrics for %s object", result.Observable.MetricsAddress()) return @@ -159,6 +167,34 @@ func (m *metricsConsumerImpl) handleResult(result metricsReadResult) { } } +func (m *metricsConsumerImpl) isCurrentMetricsObservable(observable MetricsObservable) bool { + m.objectsMu.RLock() + defer m.objectsMu.RUnlock() + + for _, current := range m.objects { + if current.MetricsAddress() != observable.MetricsAddress() { + continue + } + + return sameMetricsObservable(current, observable) + } + + return false +} + +func sameMetricsObservable(a, b MetricsObservable) bool { + if a == nil || b == nil { + return a == b + } + + aType := reflect.TypeOf(a) + if aType != reflect.TypeOf(b) || !aType.Comparable() { + return true + } + + return a == b +} + func NewMetricsConsumer(delay time.Duration, processorsCount int, reader MetricsReader) MetricsConsumer { return &metricsConsumerImpl{ delay: delay, @@ -192,7 +228,7 @@ func (h httpPrometheusMetricsReader) Read(observable MetricsObservable) (*Metric return nil, fmt.Errorf("bad status code %d", resp.StatusCode) } - metrics := []dto.MetricFamily{} + metrics := []*dto.MetricFamily{} dec := expfmt.NewDecoder(resp.Body, expfmt.NewFormat(expfmt.TypeTextPlain)) for { @@ -204,7 +240,7 @@ func (h httpPrometheusMetricsReader) Read(observable MetricsObservable) (*Metric if err != nil { return nil, err } - metrics = append(metrics, result) + metrics = append(metrics, &result) } results := MetricsRead{ diff --git a/shared/healthandmetrics/server.go b/shared/healthandmetrics/server.go index 9b8e4d3..7bfd5f6 100644 --- a/shared/healthandmetrics/server.go +++ b/shared/healthandmetrics/server.go @@ -2,39 +2,60 @@ package healthandmetrics import ( "context" + "encoding/json" + "fmt" "net/http" + "time" ) var ( HealthCheckURL = "/healthcheck" MetricsURL = "/metrics" - healthCheckOKPayload = []byte(`{"status":"OK"}`) + healthCheckOKPayload = "OK" ) type Server interface { ListenAndServe() error Shutdown(ctx context.Context) error Port() string + StartedAtUnixMs() int64 } +type HealthProbe func(context.Context) error + type server struct { http.Server - port string + port string + startedAtUnixMs int64 +} + +type healthCheckPayload struct { + Status string `json:"status"` + StartedAtUnixMs int64 `json:"startedAtUnixMs"` } func NewServer(port string, metricsHandler http.Handler) Server { - mux := http.NewServeMux() - mux.HandleFunc(HealthCheckURL, func(w http.ResponseWriter, r *http.Request) { - w.Write(healthCheckOKPayload) + return NewServerWithHealthProbe(port, metricsHandler, nil) +} + +func NewServerWithHealthProbe(port string, metricsHandler http.Handler, healthProbe HealthProbe) Server { + startedAtUnixMs := time.Now().UnixMilli() + payload, _ := json.Marshal(healthCheckPayload{ + Status: healthCheckOKPayload, + StartedAtUnixMs: startedAtUnixMs, }) + mux := http.NewServeMux() + mux.HandleFunc(HealthCheckURL, healthCheckHandler(payload, healthProbe)) + if metricsHandler != nil { mux.Handle(MetricsURL, metricsHandler) } return &server{ - port: port, + port: port, + startedAtUnixMs: startedAtUnixMs, Server: http.Server{ Addr: ":" + port, Handler: mux, @@ -42,6 +63,24 @@ func NewServer(port string, metricsHandler http.Handler) Server { } } +func healthCheckHandler(okPayload []byte, healthProbe HealthProbe) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if healthProbe != nil { + if err := healthProbe(r.Context()); err != nil { + w.WriteHeader(http.StatusServiceUnavailable) + _, _ = w.Write([]byte(fmt.Sprintf(`{"status":"UNHEALTHY","error":%q}`, err.Error()))) + return + } + } + + w.Write(okPayload) + } +} + func (s *server) Port() string { return s.port } + +func (s *server) StartedAtUnixMs() int64 { + return s.startedAtUnixMs +} From b8ddf29790ee5e4da6d56e507909328832449a09 Mon Sep 17 00:00:00 2001 From: VG-Prog Date: Fri, 22 May 2026 22:37:25 +0200 Subject: [PATCH 3/3] fix(Cluster/Discovery): Drain degraded game servers from placement Keep world-loop degraded game servers registered for ownership and existing lookups, but mark them as non-admitting so new player placement skips them. Clear the drain state on successful health recovery and fall back to healthy all-map nodes when an assigned owner is degraded. --- apps/servers-registry/repo/game-server.go | 5 ++ apps/servers-registry/service/game-server.go | 94 +++++++++++++++++++- 2 files changed, 95 insertions(+), 4 deletions(-) diff --git a/apps/servers-registry/repo/game-server.go b/apps/servers-registry/repo/game-server.go index 1b36f1c..cc61094 100644 --- a/apps/servers-registry/repo/game-server.go +++ b/apps/servers-registry/repo/game-server.go @@ -27,6 +27,7 @@ type GameServer struct { ActiveConnections uint32 Diff DiffData + HealthDegraded bool // AssignedMapsToHandle list of maps that loadbalancer algorithm assigned for this server. AssignedMapsToHandle []uint32 @@ -64,6 +65,10 @@ func (g *GameServer) IsAllMapsAvailable() bool { return len(g.AvailableMaps) == 0 } +func (g *GameServer) AcceptsNewPlayers() bool { + return !g.HealthDegraded +} + func (g *GameServer) Copy() GameServer { cp := *g cp.AvailableMaps = append([]uint32(nil), g.AvailableMaps...) diff --git a/apps/servers-registry/service/game-server.go b/apps/servers-registry/service/game-server.go index 1b80098..8e64ab1 100644 --- a/apps/servers-registry/service/game-server.go +++ b/apps/servers-registry/service/game-server.go @@ -58,6 +58,12 @@ func NewGameServer( } }) + checker.AddSuccessObserver(func(object healthandmetrics.HealthCheckObject) { + if gs, ok := object.(*repo.GameServer); ok { + service.onServerHealthy(gs) + } + }) + metrics.AddObserver(func(observable healthandmetrics.MetricsObservable, read *healthandmetrics.MetricsRead) { if gs, ok := observable.(*repo.GameServer); ok { service.onMetricsUpdate(gs, read) @@ -105,6 +111,7 @@ func (g *gameServerImpl) Register(ctx context.Context, server *repo.GameServer) sort.Slice(server.AvailableMaps, func(i, j int) bool { return server.AvailableMaps[i] < server.AvailableMaps[j] }) + server.HealthDegraded = false if err := g.checker.AddHealthCheckObject(server); err != nil { return err @@ -176,8 +183,9 @@ func (g *gameServerImpl) AvailableForMapAndRealm(ctx context.Context, mapID uint return nil, err } + admissionServers := gameServersAcceptingNewPlayers(servers) hasExplicitMapServer := false - for _, server := range servers { + for _, server := range admissionServers { if !server.IsAllMapsAvailable() && containsMapID(server.AvailableMaps, mapID) { hasExplicitMapServer = true break @@ -185,7 +193,7 @@ func (g *gameServerImpl) AvailableForMapAndRealm(ctx context.Context, mapID uint } result := []repo.GameServer{} - for _, server := range servers { + for _, server := range admissionServers { if hasExplicitMapServer && server.IsAllMapsAvailable() { continue } @@ -195,6 +203,22 @@ func (g *gameServerImpl) AvailableForMapAndRealm(ctx context.Context, mapID uint } } + if len(result) == 0 && hasDegradedMapOwner(servers, mapID) { + for _, server := range admissionServers { + if server.IsAllMapsAvailable() { + result = append(result, server) + } + } + if len(result) > 0 { + log.Warn(). + Uint32("mapID", mapID). + Uint32("realmID", realmID). + Bool("isCrossRealm", isCrossRealm). + Int("candidates", len(result)). + Msg("Using healthy all-map game servers while assigned owner is health-degraded") + } + } + return result, nil } @@ -203,6 +227,7 @@ func (g *gameServerImpl) RandomServerForRealm(ctx context.Context, realmID uint3 if err != nil { return nil, err } + servers = gameServersAcceptingNewPlayers(servers) if len(servers) == 0 { return nil, nil @@ -279,8 +304,48 @@ func (g *gameServerImpl) MapsLoadedForServer(ctx context.Context, serverID strin return server, g.r.Upsert(ctx, server) } +func (g *gameServerImpl) onServerHealthy(server *repo.GameServer) { + wasDegraded := false + err := g.r.Update(context.Background(), server.ID, func(s *repo.GameServer) *repo.GameServer { + wasDegraded = s.HealthDegraded + s.HealthDegraded = false + return s + }) + if err != nil { + log.Error(). + Err(err). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Msg("can't clear degraded game server health state") + return + } + if wasDegraded { + log.Info(). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Uint32("realmID", server.RealmID). + Bool("isCrossRealm", server.IsCrossRealm). + Msg("Game Server health recovered; accepting new player placement") + } +} + func (g *gameServerImpl) onServerUnhealthy(server *repo.GameServer, err error) { if isDegradedGameServerHealthError(err) { + updateErr := g.r.Update(context.Background(), server.ID, func(s *repo.GameServer) *repo.GameServer { + s.HealthDegraded = true + return s + }) + if updateErr != nil { + log.Error(). + Err(updateErr). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Msg("can't mark degraded game server as non-admitting") + } + log.Warn(). Err(err). Str("address", server.Address). @@ -288,8 +353,10 @@ func (g *gameServerImpl) onServerUnhealthy(server *repo.GameServer, err error) { Str("serverID", server.ID). Uint32("realmID", server.RealmID). Bool("isCrossRealm", server.IsCrossRealm). - Msg("Game Server world-loop health degraded; preserving registered routing membership") - if addErr := g.checker.AddHealthCheckObject(server); addErr != nil { + Msg("Game Server world-loop health degraded; preserving ownership but draining new player placement") + degraded := server.Copy() + degraded.HealthDegraded = true + if addErr := g.checker.AddHealthCheckObject(°raded); addErr != nil { log.Error().Err(addErr).Str("serverID", server.ID).Msg("can't re-add degraded game server to health checker") } return @@ -449,6 +516,25 @@ func containsMapID(maps []uint32, mapID uint32) bool { return false } +func gameServersAcceptingNewPlayers(servers []repo.GameServer) []repo.GameServer { + result := make([]repo.GameServer, 0, len(servers)) + for _, server := range servers { + if server.AcceptsNewPlayers() { + result = append(result, server) + } + } + return result +} + +func hasDegradedMapOwner(servers []repo.GameServer, mapID uint32) bool { + for _, server := range servers { + if server.HealthDegraded && server.CanHandleMap(mapID) { + return true + } + } + return false +} + func (g *gameServerImpl) onMetricsUpdate(server *repo.GameServer, m *healthandmetrics.MetricsRead) { err := g.r.Update(context.Background(), server.ID, func(s *repo.GameServer) *repo.GameServer { s.ActiveConnections = uint32(m.ActiveConnections)